blob: 07d95b93a35741455f87fd40eec31800c8f3c8ee [file] [log] [blame]
Dino Mycle8afbac12014-07-04 22:06:17 +05301
Padma, Santhosh Kumarb7f449f2016-01-11 18:55:44 +05302/* Copyright (c) 2012-2016 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
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +0530597 WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ = 330,
598 WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP = 331,
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +0530599 WLAN_HAL_MODIFY_ROAM_PARAMS_IND = 332,
Sunil Dutt8377a382014-05-26 21:18:04 +0530600 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700601}tHalHostMsgType;
602
Jeff Johnsone7245742012-09-05 17:12:55 -0700603/* Enumeration for Version */
604typedef enum
605{
606 WLAN_HAL_MSG_VERSION0 = 0,
607 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800608 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
609 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700610}tHalHostMsgVersion;
611
Jeff Johnson295189b2012-06-20 16:38:30 -0700612/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530613typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700614{
615 eANI_BOOLEAN_FALSE = 0,
616 eANI_BOOLEAN_TRUE,
617 eANI_BOOLEAN_OFF = 0,
618 eANI_BOOLEAN_ON = 1,
619 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
620} eAniBoolean;
621
622typedef enum
623{
624 eDRIVER_TYPE_PRODUCTION = 0,
625 eDRIVER_TYPE_MFG = 1,
626 eDRIVER_TYPE_DVT = 2,
627 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
628} tDriverType;
629
630typedef enum
631{
632 HAL_STOP_TYPE_SYS_RESET,
633 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
634 HAL_STOP_TYPE_RF_KILL,
635 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
636}tHalStopType;
637
638typedef enum
639{
640 eHAL_SYS_MODE_NORMAL,
641 eHAL_SYS_MODE_LEARN,
642 eHAL_SYS_MODE_SCAN,
643 eHAL_SYS_MODE_PROMISC,
644 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700645 eHAL_SYS_MODE_ROAM_SCAN,
646 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700647 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700648 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
649} eHalSysMode;
650
651typedef enum
652{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800653 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
654 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
655 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
656 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
657 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
658 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
659 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
660 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
661 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700662 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800663 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
664} eHalChanSwitchSource;
665
666typedef enum
667{
Jeff Johnson295189b2012-06-20 16:38:30 -0700668 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
669 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
670 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
671 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700672#ifdef WLAN_FEATURE_11AC
673 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
674 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
675 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
676 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
677 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
678 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
679 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
680#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700681 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
682}ePhyChanBondState;
683
684// Spatial Multiplexing(SM) Power Save mode
685typedef enum eSirMacHTMIMOPowerSaveState
686{
687 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
688 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
689 eSIR_HT_MIMO_PS_NA = 2, // reserved
690 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
691 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
692} tSirMacHTMIMOPowerSaveState;
693
694/* each station added has a rate mode which specifies the sta attributes */
695typedef enum eStaRateMode {
696 eSTA_TAURUS = 0,
697 eSTA_TITAN,
698 eSTA_POLARIS,
699 eSTA_11b,
700 eSTA_11bg,
701 eSTA_11a,
702 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700703#ifdef WLAN_FEATURE_11AC
704 eSTA_11ac,
705#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700706 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
707} tStaRateMode, *tpStaRateMode;
708
709#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
710#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
711#define SIR_NUM_POLARIS_RATES 3 //72,96,108
712
713#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
714
715
716typedef enum eSirBssType
717{
718 eSIR_INFRASTRUCTURE_MODE,
719 eSIR_INFRA_AP_MODE, //Added for softAP support
720 eSIR_IBSS_MODE,
721 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
722 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
723 eSIR_AUTO_MODE,
724 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
725} tSirBssType;
726
727typedef enum eSirNwType
728{
729 eSIR_11A_NW_TYPE,
730 eSIR_11B_NW_TYPE,
731 eSIR_11G_NW_TYPE,
732 eSIR_11N_NW_TYPE,
733 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
734} tSirNwType;
735
736typedef tANI_U16 tSirMacBeaconInterval;
737
738#define SIR_MAC_RATESET_EID_MAX 12
739
740typedef enum eSirMacHTOperatingMode
741{
742 eSIR_HT_OP_MODE_PURE, // No Protection
743 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
744 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
745 eSIR_HT_OP_MODE_MIXED, // Protection is required
746 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
747} tSirMacHTOperatingMode;
748
Jeff Johnson295189b2012-06-20 16:38:30 -0700749/// Encryption type enum used with peer
750typedef enum eAniEdType
751{
752 eSIR_ED_NONE,
753 eSIR_ED_WEP40,
754 eSIR_ED_WEP104,
755 eSIR_ED_TKIP,
756 eSIR_ED_CCMP,
757 eSIR_ED_WPI,
758 eSIR_ED_AES_128_CMAC,
759 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
760} tAniEdType;
761
762#define WLAN_MAX_KEY_RSC_LEN 16
763#define WLAN_WAPI_KEY_RSC_LEN 16
764
765/// MAX key length when ULA is used
766#define SIR_MAC_MAX_KEY_LENGTH 32
767#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
768
769/// Enum to specify whether key is used
770/// for TX only, RX only or both
771typedef enum eAniKeyDirection
772{
773 eSIR_TX_ONLY,
774 eSIR_RX_ONLY,
775 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700776 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700777 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
778} tAniKeyDirection;
779
780typedef enum eAniWepType
781{
782 eSIR_WEP_STATIC,
783 eSIR_WEP_DYNAMIC,
784 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
785} tAniWepType;
786
787typedef enum eSriLinkState {
788
789 eSIR_LINK_IDLE_STATE = 0,
790 eSIR_LINK_PREASSOC_STATE = 1,
791 eSIR_LINK_POSTASSOC_STATE = 2,
792 eSIR_LINK_AP_STATE = 3,
793 eSIR_LINK_IBSS_STATE = 4,
794
795 /* BT-AMP Case */
796 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
797 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
798 eSIR_LINK_BTAMP_AP_STATE = 7,
799 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530800
Jeff Johnson295189b2012-06-20 16:38:30 -0700801 /* Reserved for HAL Internal Use */
802 eSIR_LINK_LEARN_STATE = 9,
803 eSIR_LINK_SCAN_STATE = 10,
804 eSIR_LINK_FINISH_SCAN_STATE = 11,
805 eSIR_LINK_INIT_CAL_STATE = 12,
806 eSIR_LINK_FINISH_CAL_STATE = 13,
807#ifdef WLAN_FEATURE_P2P
808 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530809 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700810#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700811#ifdef WLAN_FEATURE_ROAM_OFFLOAD
812 eSIR_LINK_FT_PREASSOC_STATE = 16,
813#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700814 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
815} tSirLinkState;
816
817typedef enum
818{
819 HAL_SUMMARY_STATS_INFO = 0x00000001,
820 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
821 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
822 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
823 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530824 HAL_PER_STA_STATS_INFO = 0x00000020,
825 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700826}eHalStatsMask;
827
828/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530829typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700830{
831 BTAMP_EVENT_CONNECTION_START,
832 BTAMP_EVENT_CONNECTION_STOP,
833 BTAMP_EVENT_CONNECTION_TERMINATED,
834 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
835} tBtAmpEventType;
836
837//***************************************************************
838
839
840/*******************PE Statistics*************************/
841typedef enum
842{
843 PE_SUMMARY_STATS_INFO = 0x00000001,
844 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
845 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
846 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
847 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
848 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530849 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700850 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
851}ePEStatsMask;
852
Sunil Dutt8377a382014-05-26 21:18:04 +0530853
854/******************************LINK LAYER Statitics**********************/
855
856typedef int wifi_radio;
857typedef int wifi_channel;
858typedef int wifi_tx_rate;
859
860/* channel operating width */
861typedef enum {
862 WIFI_CHAN_WIDTH_20 = 0,
863 WIFI_CHAN_WIDTH_40 = 1,
864 WIFI_CHAN_WIDTH_80 = 2,
865 WIFI_CHAN_WIDTH_160 = 3,
866 WIFI_CHAN_WIDTH_80P80 = 4,
867 WIFI_CHAN_WIDTH_5 = 5,
868 WIFI_CHAN_WIDTH_10 = 6,
869} wifi_channel_width;
870
871typedef enum {
872 WIFI_DISCONNECTED = 0,
873 WIFI_AUTHENTICATING = 1,
874 WIFI_ASSOCIATING = 2,
875 WIFI_ASSOCIATED = 3,
876 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
877 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
878} wifi_connection_state;
879
880typedef enum {
881 WIFI_ROAMING_IDLE = 0,
882 WIFI_ROAMING_ACTIVE = 1,
883} wifi_roam_state;
884
885typedef enum {
886 WIFI_INTERFACE_STA = 0,
887 WIFI_INTERFACE_SOFTAP = 1,
888 WIFI_INTERFACE_IBSS = 2,
889 WIFI_INTERFACE_P2P_CLIENT = 3,
890 WIFI_INTERFACE_P2P_GO = 4,
891 WIFI_INTERFACE_NAN = 5,
892 WIFI_INTERFACE_MESH = 6,
893 } wifi_interface_mode;
894
895#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
896#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
897#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
898#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
899#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
900#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
901
902typedef PACKED_PRE struct PACKED_POST
903{
904 wifi_interface_mode mode; // interface mode
905 tANI_U8 mac_addr[6]; // interface mac address (self)
906 wifi_connection_state state; // connection state (valid for STA, CLI only)
907 wifi_roam_state roaming; // roaming state
908 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
909 tANI_U8 ssid[33]; // null terminated SSID
910 tANI_U8 bssid[6]; // bssid
911 tANI_U8 ap_country_str[3]; // country string advertised by AP
912 tANI_U8 country_str[3]; // country string for this association
913} wifi_interface_info;
914
915/* channel information */
916typedef PACKED_PRE struct PACKED_POST
917{
918 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
919 wifi_channel center_freq; // primary 20 MHz channel
920 wifi_channel center_freq0; // center frequency (MHz) first segment
921 wifi_channel center_freq1; // center frequency (MHz) second segment
922} wifi_channel_info;
923
924/* wifi rate info */
925typedef PACKED_PRE struct PACKED_POST
926{
927 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
928 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
929 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
930 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
931 // HT/VHT it would be mcs index
932 tANI_U32 reserved :16; // reserved
933 tANI_U32 bitrate; // units of 100 Kbps
934} wifi_rate;
935
936/* channel statistics */
937typedef PACKED_PRE struct PACKED_POST
938{
939 wifi_channel_info channel; // channel
940 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
941 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
942} wifi_channel_stats;
943
944/* radio statistics */
945typedef PACKED_PRE struct PACKED_POST
946{
947 wifi_radio radio; // wifi radio (if multiple radio supported)
948 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
949 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
950 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
951 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
952 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
953 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
954 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
955 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
956 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
957 tANI_U32 num_channels; // number of channels
958 wifi_channel_stats channels[1]; // channel statistics
959} wifi_radio_stat;
960
961/* per rate statistics */
962typedef PACKED_PRE struct PACKED_POST
963{
964 wifi_rate rate; // rate information *
965 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
966 tANI_U32 rx_mpdu; // number of received data pkts
967 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
968 tANI_U32 retries; // total number of data pkt retries *
969 tANI_U32 retries_short; // number of short data pkt retries
970 tANI_U32 retries_long; // number of long data pkt retries
971} wifi_rate_stat;
972
973/* access categories */
974typedef enum {
975 WIFI_AC_VO = 0,
976 WIFI_AC_VI = 1,
977 WIFI_AC_BE = 2,
978 WIFI_AC_BK = 3,
979 WIFI_AC_MAX = 4,
980} wifi_traffic_ac;
981
982/* wifi peer type */
983typedef enum
984{
985 WIFI_PEER_STA,
986 WIFI_PEER_AP,
987 WIFI_PEER_P2P_GO,
988 WIFI_PEER_P2P_CLIENT,
989 WIFI_PEER_NAN,
990 WIFI_PEER_TDLS,
991 WIFI_PEER_INVALID,
992} wifi_peer_type;
993
994/* per peer statistics */
995typedef PACKED_PRE struct PACKED_POST
996{
997 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
998 tANI_U8 peer_mac_address[6]; // mac address
999 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
1000 tANI_U32 num_rate; // number of rates
1001 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
1002} wifi_peer_info;
1003
1004/* per access category statistics */
1005typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301006{
1007 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
1008 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
1009 tANI_U32 rx_mpdu; // number of received unicast mpdus
1010 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
1011 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
1012 tANI_U32 rx_mcast; // number of received multicast data packets
1013 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
1014 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
1015 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
1016 tANI_U32 retries; // total number of data pkt retries
1017 tANI_U32 retries_short; // number of short data pkt retries
1018 tANI_U32 retries_long; // number of long data pkt retries
1019 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1020 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1021 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1022 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1023} wifi_wmm_ac_stat;
1024
Mukul Sharma03f86492015-10-20 16:10:13 +05301025typedef PACKED_PRE struct PACKED_POST
1026{
1027 tANI_U64 average_tsf_offset;
1028 tANI_U32 leaky_ap_avg_num_frames_leaked;
1029 tANI_U32 leaky_ap_guard_time;
1030 tANI_U32 leaky_ap_detected;
1031} wifi_iface_leaky_ap_info;
1032
Sunil Dutt8377a382014-05-26 21:18:04 +05301033/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1034typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301035{
1036 wifi_interface_info info; // current state of the interface
1037 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1038 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1039 tANI_U32 mgmt_action_rx; // action frames received count
1040 tANI_U32 mgmt_action_tx; // action frames transmit count
1041 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1042 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1043 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1044 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
Mukul Sharma03f86492015-10-20 16:10:13 +05301045 wifi_iface_leaky_ap_info leakyApInfo;
Sunil Dutt8377a382014-05-26 21:18:04 +05301046} wifi_iface_stat;
1047
1048/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1049typedef PACKED_PRE struct PACKED_POST
1050{
1051 tANI_U32 num_peers; // number of peers
1052 wifi_peer_info peer_info[1]; // per peer statistics
1053} wifi_peer_stat;
1054
1055/* wifi statistics bitmap for getting statistics */
1056#define WMI_LINK_STATS_RADIO 0x00000001
1057#define WMI_LINK_STATS_IFACE 0x00000002
1058#define WMI_LINK_STATS_ALL_PEER 0x00000004
1059#define WMI_LINK_STATS_PER_PEER 0x00000008
1060
1061/* wifi statistics bitmap for clearing statistics */
1062#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1063#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1064#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1065#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1066#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1067#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1068#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1069#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1070
1071
Jeff Johnson295189b2012-06-20 16:38:30 -07001072/*---------------------------------------------------------------------------
1073 Message definitons - All the messages below need to be packed
1074 ---------------------------------------------------------------------------*/
1075
1076#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1077#pragma pack(push, 1)
1078#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1079#pragma pack(1)
1080#else
1081#endif
1082
1083/// Definition for HAL API Version.
1084typedef PACKED_PRE struct PACKED_POST
1085{
1086 tANI_U8 revision;
1087 tANI_U8 version;
1088 tANI_U8 minor;
1089 tANI_U8 major;
1090} tWcnssWlanVersion, *tpWcnssWlanVersion;
1091
1092/// Definition for Encryption Keys
1093typedef PACKED_PRE struct PACKED_POST
1094{
1095 tANI_U8 keyId;
1096 tANI_U8 unicast; // 0 for multicast
1097 tAniKeyDirection keyDirection;
1098 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1099 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1100 tANI_U16 keyLength;
1101 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1102} tSirKeys, *tpSirKeys;
1103
1104
1105//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1106typedef PACKED_PRE struct PACKED_POST
1107{
1108 /*STA Index*/
1109 tANI_U16 staIdx;
1110
1111 /*Encryption Type used with peer*/
1112 tAniEdType encType;
1113
1114 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301115 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001116
1117 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1118 tANI_U8 defWEPIdx;
1119
Jeff Johnson295189b2012-06-20 16:38:30 -07001120 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301121 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1122
Jeff Johnson295189b2012-06-20 16:38:30 -07001123 /*Control for Replay Count, 1= Single TID based replay count on Tx
1124 0 = Per TID based replay count on TX */
1125 tANI_U8 singleTidRc;
1126
1127} tSetStaKeyParams, *tpSetStaKeyParams;
1128
1129
1130
1131/* 4-byte control message header used by HAL*/
1132typedef PACKED_PRE struct PACKED_POST
1133{
Jeff Johnsone7245742012-09-05 17:12:55 -07001134 tHalHostMsgType msgType:16;
1135 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001136 tANI_U32 msgLen;
1137} tHalMsgHeader, *tpHalMsgHeader;
1138
1139/* Config format required by HAL for each CFG item*/
1140typedef PACKED_PRE struct PACKED_POST
1141{
1142 /* Cfg Id. The Id required by HAL is exported by HAL
1143 * in shared header file between UMAC and HAL.*/
1144 tANI_U16 uCfgId;
1145
Dino Mycle8afbac12014-07-04 22:06:17 +05301146 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001147 * in the TLV format.*/
1148 tANI_U16 uCfgLen;
1149
1150 /* Padding bytes for unaligned address's */
1151 tANI_U16 uCfgPadBytes;
1152
1153 /* Reserve bytes for making cfgVal to align address */
1154 tANI_U16 uCfgReserve;
1155
1156 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1157 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1158} tHalCfg, *tpHalCfg;
1159
1160/*---------------------------------------------------------------------------
1161 WLAN_HAL_START_REQ
1162---------------------------------------------------------------------------*/
1163
1164typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1165{
1166 /* Drive Type - Production or FTM etc */
1167 tDriverType driverType;
1168
1169 /*Length of the config buffer*/
1170 tANI_U32 uConfigBufferLen;
1171
Dino Mycle8afbac12014-07-04 22:06:17 +05301172 /* Following this there is a TLV formatted buffer of length
1173 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001174 * The TLV is expected to be formatted like this:
1175 * 0 15 31 31+CFG_LEN-1 length-1
1176 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1177 */
1178} tHalMacStartParameters, *tpHalMacStartParameters;
1179
1180typedef PACKED_PRE struct PACKED_POST
1181{
1182 /* Note: The length specified in tHalMacStartReqMsg messages should be
1183 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1184 tHalMsgHeader header;
1185 tHalMacStartParameters startReqParams;
1186} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1187
1188/*---------------------------------------------------------------------------
1189 WLAN_HAL_START_RSP
1190---------------------------------------------------------------------------*/
1191
1192typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1193{
1194 /*success or failure */
1195 tANI_U16 status;
1196
1197 /*Max number of STA supported by the device*/
1198 tANI_U8 ucMaxStations;
1199
1200 /*Max number of BSS supported by the device*/
1201 tANI_U8 ucMaxBssids;
1202
1203 /*API Version */
1204 tWcnssWlanVersion wcnssWlanVersion;
1205
1206 /*CRM build information */
1207 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1208
1209 /*hardware/chipset/misc version information */
1210 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1211
1212} tHalMacStartRspParams, *tpHalMacStartRspParams;
1213
1214typedef PACKED_PRE struct PACKED_POST
1215{
1216 tHalMsgHeader header;
1217 tHalMacStartRspParams startRspParams;
1218} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1219
1220/*---------------------------------------------------------------------------
1221 WLAN_HAL_STOP_REQ
1222---------------------------------------------------------------------------*/
1223
1224typedef PACKED_PRE struct PACKED_POST
1225{
1226 /*The reason for which the device is being stopped*/
1227 tHalStopType reason;
1228
1229}tHalMacStopReqParams, *tpHalMacStopReqParams;
1230
1231typedef PACKED_PRE struct PACKED_POST
1232{
1233 tHalMsgHeader header;
1234 tHalMacStopReqParams stopReqParams;
1235} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1236
1237/*---------------------------------------------------------------------------
1238 WLAN_HAL_STOP_RSP
1239---------------------------------------------------------------------------*/
1240
1241typedef PACKED_PRE struct PACKED_POST
1242{
1243 /*success or failure */
1244 tANI_U32 status;
1245
1246}tHalMacStopRspParams, *tpHalMacStopRspParams;
1247
1248typedef PACKED_PRE struct PACKED_POST
1249{
1250 tHalMsgHeader header;
1251 tHalMacStopRspParams stopRspParams;
1252} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1253
1254/*---------------------------------------------------------------------------
1255 WLAN_HAL_UPDATE_CFG_REQ
1256---------------------------------------------------------------------------*/
1257
1258typedef PACKED_PRE struct PACKED_POST
1259{
1260 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1261 tANI_U32 uConfigBufferLen;
1262
Dino Mycle8afbac12014-07-04 22:06:17 +05301263 /* Following this there is a TLV formatted buffer of length
1264 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001265 * The TLV is expected to be formatted like this:
1266 * 0 15 31 31+CFG_LEN-1 length-1
1267 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1268 */
1269} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1270
1271typedef PACKED_PRE struct PACKED_POST
1272{
1273 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1274 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1275 tHalMsgHeader header;
1276 tHalUpdateCfgReqParams updateCfgReqParams;
1277} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1278
1279/*---------------------------------------------------------------------------
1280 WLAN_HAL_UPDATE_CFG_RSP
1281---------------------------------------------------------------------------*/
1282
1283typedef PACKED_PRE struct PACKED_POST
1284{
1285 /* success or failure */
1286 tANI_U32 status;
1287
1288}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1289
1290typedef PACKED_PRE struct PACKED_POST
1291{
1292 tHalMsgHeader header;
1293 tHalUpdateCfgRspParams updateCfgRspParams;
1294} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1295
1296/*---------------------------------------------------------------------------
1297 WLAN_HAL_INIT_SCAN_REQ
1298---------------------------------------------------------------------------*/
1299
1300/// Frame control field format (2 bytes)
1301typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1302{
1303
1304#ifndef ANI_LITTLE_BIT_ENDIAN
1305
1306 tANI_U8 subType :4;
1307 tANI_U8 type :2;
1308 tANI_U8 protVer :2;
1309
1310 tANI_U8 order :1;
1311 tANI_U8 wep :1;
1312 tANI_U8 moreData :1;
1313 tANI_U8 powerMgmt :1;
1314 tANI_U8 retry :1;
1315 tANI_U8 moreFrag :1;
1316 tANI_U8 fromDS :1;
1317 tANI_U8 toDS :1;
1318
1319#else
1320
1321 tANI_U8 protVer :2;
1322 tANI_U8 type :2;
1323 tANI_U8 subType :4;
1324
1325 tANI_U8 toDS :1;
1326 tANI_U8 fromDS :1;
1327 tANI_U8 moreFrag :1;
1328 tANI_U8 retry :1;
1329 tANI_U8 powerMgmt :1;
1330 tANI_U8 moreData :1;
1331 tANI_U8 wep :1;
1332 tANI_U8 order :1;
1333
1334#endif
1335
1336} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1337
1338/// Sequence control field
1339typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1340{
1341 tANI_U8 fragNum : 4;
1342 tANI_U8 seqNumLo : 4;
1343 tANI_U8 seqNumHi : 8;
1344} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1345
1346/// Management header format
1347typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1348{
1349 tSirMacFrameCtl fc;
1350 tANI_U8 durationLo;
1351 tANI_U8 durationHi;
1352 tANI_U8 da[6];
1353 tANI_U8 sa[6];
1354 tANI_U8 bssId[6];
1355 tSirMacSeqCtl seqControl;
1356} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1357
1358/// Scan Entry to hold active BSS idx's
1359typedef __ani_attr_pre_packed struct sSirScanEntry
1360{
1361 tANI_U8 bssIdx[HAL_NUM_BSSID];
1362 tANI_U8 activeBSScnt;
1363}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1364
1365typedef PACKED_PRE struct PACKED_POST {
1366
1367 /*LEARN - AP Role
1368 SCAN - STA Role*/
1369 eHalSysMode scanMode;
1370
1371 /*BSSID of the BSS*/
1372 tSirMacAddr bssid;
1373
1374 /*Whether BSS needs to be notified*/
1375 tANI_U8 notifyBss;
1376
1377 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1378 CTS to Self). Must always be a valid frame type.*/
1379 tANI_U8 frameType;
1380
1381 /*UMAC has the option of passing the MAC frame to be used for notifying
1382 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1383 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1384 frameType.*/
1385 tANI_U8 frameLength;
1386
Dino Mycle8afbac12014-07-04 22:06:17 +05301387 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001388 is non-zero. */
1389 tSirMacMgmtHdr macMgmtHdr;
1390
1391 /*Entry to hold number of active BSS idx's*/
1392 tSirScanEntry scanEntry;
1393
1394} tInitScanParams, * tpInitScanParams;
1395
1396typedef PACKED_PRE struct PACKED_POST
1397{
1398 tHalMsgHeader header;
1399 tInitScanParams initScanParams;
1400} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1401
1402typedef PACKED_PRE struct PACKED_POST {
1403
1404 /*LEARN - AP Role
1405 SCAN - STA Role*/
1406 eHalSysMode scanMode;
1407
1408 /*BSSID of the BSS*/
1409 tSirMacAddr bssid;
1410
1411 /*Whether BSS needs to be notified*/
1412 tANI_U8 notifyBss;
1413
1414 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1415 CTS to Self). Must always be a valid frame type.*/
1416 tANI_U8 frameType;
1417
1418 /*UMAC has the option of passing the MAC frame to be used for notifying
1419 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1420 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1421 frameType.*/
1422 tANI_U8 frameLength;
1423
Dino Mycle8afbac12014-07-04 22:06:17 +05301424 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001425 is non-zero. */
1426 tSirMacMgmtHdr macMgmtHdr;
1427
1428 /*Entry to hold number of active BSS idx's*/
1429 tSirScanEntry scanEntry;
1430
1431 /* Single NoA usage in Scanning */
1432 tANI_U8 useNoA;
1433
1434 /* Indicates the scan duration (in ms) */
1435 tANI_U16 scanDuration;
1436
1437} tInitScanConParams, * tpInitScanConParams;
1438
1439typedef PACKED_PRE struct PACKED_POST
1440{
1441 tHalMsgHeader header;
1442 tInitScanConParams initScanParams;
1443} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1444
1445
1446/*---------------------------------------------------------------------------
1447 WLAN_HAL_INIT_SCAN_RSP
1448---------------------------------------------------------------------------*/
1449
1450typedef PACKED_PRE struct PACKED_POST
1451{
1452 /*success or failure */
1453 tANI_U32 status;
1454
1455}tHalInitScanRspParams, *tpHalInitScanRspParams;
1456
1457typedef PACKED_PRE struct PACKED_POST
1458{
1459 tHalMsgHeader header;
1460 tHalInitScanRspParams initScanRspParams;
1461} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1462
1463/*---------------------------------------------------------------------------
1464 WLAN_HAL_START_SCAN_REQ
1465---------------------------------------------------------------------------*/
1466
Dino Mycle8afbac12014-07-04 22:06:17 +05301467typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001468{
1469 /*Indicates the channel to scan*/
1470 tANI_U8 scanChannel;
1471
1472 } tStartScanParams, * tpStartScanParams;
1473
1474typedef PACKED_PRE struct PACKED_POST
1475{
1476 tHalMsgHeader header;
1477 tStartScanParams startScanParams;
1478} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1479
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001480typedef PACKED_PRE struct PACKED_POST
1481{
1482 tHalMsgHeader header;
1483} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1484
Jeff Johnson295189b2012-06-20 16:38:30 -07001485/*---------------------------------------------------------------------------
1486 WLAN_HAL_START_SCAN_RSP
1487---------------------------------------------------------------------------*/
1488
1489typedef PACKED_PRE struct PACKED_POST
1490{
1491 /*success or failure */
1492 tANI_U32 status;
1493
1494 tANI_U32 startTSF[2];
1495 tPowerdBm txMgmtPower;
1496
1497}tHalStartScanRspParams, *tpHalStartScanRspParams;
1498
1499typedef PACKED_PRE struct PACKED_POST
1500{
1501 tHalMsgHeader header;
1502 tHalStartScanRspParams startScanRspParams;
1503} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1504
1505/*---------------------------------------------------------------------------
1506 WLAN_HAL_END_SCAN_REQ
1507---------------------------------------------------------------------------*/
1508
1509typedef PACKED_PRE struct PACKED_POST
1510{
1511 /*Indicates the channel to stop scanning. Not used really. But retained
1512 for symmetry with "start Scan" message. It can also help in error
1513 check if needed.*/
1514 tANI_U8 scanChannel;
1515
1516} tEndScanParams, *tpEndScanParams;
1517
1518typedef PACKED_PRE struct PACKED_POST
1519{
1520 tHalMsgHeader header;
1521 tEndScanParams endScanParams;
1522} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1523
1524/*---------------------------------------------------------------------------
1525 WLAN_HAL_END_SCAN_RSP
1526---------------------------------------------------------------------------*/
1527
1528typedef PACKED_PRE struct PACKED_POST
1529{
1530 /*success or failure */
1531 tANI_U32 status;
1532
1533}tHalEndScanRspParams, *tpHalEndScanRspParams;
1534
1535typedef PACKED_PRE struct PACKED_POST
1536{
1537 tHalMsgHeader header;
1538 tHalEndScanRspParams endScanRspParams;
1539} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1540
1541/*---------------------------------------------------------------------------
1542 WLAN_HAL_FINISH_SCAN_REQ
1543---------------------------------------------------------------------------*/
1544
1545typedef PACKED_PRE struct PACKED_POST
1546{
1547 /* Identifies the operational state of the AP/STA
1548 * LEARN - AP Role SCAN - STA Role */
1549 eHalSysMode scanMode;
1550
1551 /*Operating channel to tune to.*/
1552 tANI_U8 currentOperChannel;
1553
1554 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1555 40 MHz extension channel in combination with the control channel*/
1556 ePhyChanBondState cbState;
1557
1558 /*BSSID of the BSS*/
1559 tSirMacAddr bssid;
1560
1561 /*Whether BSS needs to be notified*/
1562 tANI_U8 notifyBss;
1563
1564 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1565 CTS to Self). Must always be a valid frame type.*/
1566 tANI_U8 frameType;
1567
1568 /*UMAC has the option of passing the MAC frame to be used for notifying
1569 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1570 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1571 frameType.*/
1572 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301573
1574 /*Following the framelength there is a MAC frame buffer if frameLength
1575 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001576 tSirMacMgmtHdr macMgmtHdr;
1577
1578 /*Entry to hold number of active BSS idx's*/
1579 tSirScanEntry scanEntry;
1580
1581} tFinishScanParams, *tpFinishScanParams;
1582
1583typedef PACKED_PRE struct PACKED_POST
1584{
1585 tHalMsgHeader header;
1586 tFinishScanParams finishScanParams;
1587} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1588
1589/*---------------------------------------------------------------------------
1590 WLAN_HAL_FINISH_SCAN_RSP
1591---------------------------------------------------------------------------*/
1592
1593typedef PACKED_PRE struct PACKED_POST
1594{
1595 /*success or failure */
1596 tANI_U32 status;
1597
1598}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1599
1600typedef PACKED_PRE struct PACKED_POST
1601{
1602 tHalMsgHeader header;
1603 tHalFinishScanRspParams finishScanRspParams;
1604} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1605
Srinivas Dasari42584632014-11-26 20:37:19 +05301606typedef PACKED_PRE struct PACKED_POST
1607{
1608 tSetStaKeyParams keyParams;
1609 uint8 pn[6];
1610} tHalEncConfigParams;
1611
1612typedef PACKED_PRE struct PACKED_POST
1613{
1614 uint16 length;
1615 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1616} tHalDisaPayload;
1617
1618typedef PACKED_PRE struct PACKED_POST
1619{
1620#ifdef BYTE_ORDER_BIG_ENDIAN
1621 uint8 reserved1 : 1;
1622 uint8 ackpolicy : 2;
1623 uint8 eosp : 1;
1624 uint8 tid : 4;
1625
1626 uint8 appsbufferstate : 8;
1627#else
1628 uint8 appsbufferstate : 8;
1629
1630 uint8 tid : 4;
1631 uint8 eosp : 1;
1632 uint8 ackpolicy : 2;
1633 uint8 reserved1 : 1;
1634#endif
1635} tHalQosCtrlFieldType;
1636
1637typedef PACKED_PRE struct PACKED_POST
1638 {
1639#ifdef BYTE_ORDER_BIG_ENDIAN
1640 uint16 subtype : 4;
1641 uint16 type : 2;
1642 uint16 protocol : 2;
1643
1644 uint16 order : 1;
1645 uint16 wep : 1;
1646 uint16 moredata : 1;
1647 uint16 pm : 1;
1648 uint16 retry : 1;
1649 uint16 morefrag : 1;
1650 uint16 fromds : 1;
1651 uint16 tods : 1;
1652#else
1653
1654 uint16 tods : 1;
1655 uint16 fromds : 1;
1656 uint16 morefrag : 1;
1657 uint16 retry : 1;
1658 uint16 pm : 1;
1659 uint16 moredata : 1;
1660 uint16 wep : 1;
1661 uint16 order : 1;
1662
1663 uint16 protocol : 2;
1664 uint16 type : 2;
1665 uint16 subtype : 4;
1666#endif
1667} tHalFrmCtrlType;
1668
1669typedef PACKED_PRE struct PACKED_POST
1670{
1671 /* Frame control field */
1672 tHalFrmCtrlType fc;
1673 /* Duration ID */
1674 uint16 usDurationId;
1675 /* Address 1 field */
1676 uint8 vA1[HAL_MAC_ADDR_LEN];
1677 /* Address 2 field */
1678 uint8 vA2[HAL_MAC_ADDR_LEN];
1679 /* Address 3 field */
1680 uint8 vA3[HAL_MAC_ADDR_LEN];
1681 /* Sequence control field */
1682 uint16 seqNum;
1683 /* Optional A4 address */
1684 uint8 optvA4[HAL_MAC_ADDR_LEN];
1685 /* Optional QOS control field */
1686 tHalQosCtrlFieldType usQosCtrl;
1687} tHal80211Header;
1688
1689typedef PACKED_PRE struct PACKED_POST
1690{
1691 tHal80211Header macHeader;
1692 tHalEncConfigParams encParams;
1693 tHalDisaPayload data;
1694} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1695
1696typedef PACKED_PRE struct PACKED_POST
1697{
1698 tHalMsgHeader header;
1699 tSetEncryptedDataParams encryptedDataParams;
1700} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1701
1702typedef PACKED_PRE struct PACKED_POST
1703{
1704 tANI_U32 status;
1705 tHalDisaPayload encryptedPayload;
1706} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1707
1708typedef PACKED_PRE struct PACKED_POST
1709{
1710 tHalMsgHeader header;
1711 tSetEncryptedDataRspParams encryptedDataRspParams;
1712} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1713
Jeff Johnson295189b2012-06-20 16:38:30 -07001714/*---------------------------------------------------------------------------
1715 WLAN_HAL_CONFIG_STA_REQ
1716---------------------------------------------------------------------------*/
1717
1718typedef PACKED_PRE struct PACKED_POST {
1719 /*
1720 * For Self STA Entry: this represents Self Mode.
1721 * For Peer Stations, this represents the mode of the peer.
1722 * On Station:
1723 * --this mode is updated when PE adds the Self Entry.
1724 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1725 * ON AP:
1726 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1727 * to indicate the self mode of the AP.
1728 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1729 */
1730
1731 tStaRateMode opRateMode;
1732 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1733 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1734 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1735 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1736 tANI_U16 reserved;
1737
1738 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1739 //First 26 bits are reserved for those Titan rates and
1740 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1741 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1742
1743 /*
1744 * 0-76 bits used, remaining reserved
1745 * bits 0-15 and 32 should be set.
1746 */
1747 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1748
1749 /*
1750 * RX Highest Supported Data Rate defines the highest data
1751 * rate that the STA is able to receive, in unites of 1Mbps.
1752 * This value is derived from "Supported MCS Set field" inside
1753 * the HT capability element.
1754 */
1755 tANI_U16 rxHighestDataRate;
1756
1757} tSirSupportedRates, *tpSirSupportedRates;
1758
1759typedef PACKED_PRE struct PACKED_POST
1760{
1761 /*BSSID of STA*/
1762 tSirMacAddr bssId;
1763
1764 /*ASSOC ID, as assigned by UMAC*/
1765 tANI_U16 assocId;
1766
1767 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1768 tANI_U8 staType;
1769
1770 /*Short Preamble Supported.*/
1771 tANI_U8 shortPreambleSupported;
1772
1773 /*MAC Address of STA*/
1774 tSirMacAddr staMac;
1775
1776 /*Listen interval of the STA*/
1777 tANI_U16 listenInterval;
1778
1779 /*Support for 11e/WMM*/
1780 tANI_U8 wmmEnabled;
1781
1782 /*11n HT capable STA*/
1783 tANI_U8 htCapable;
1784
1785 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1786 tANI_U8 txChannelWidthSet;
1787
1788 /*RIFS mode 0 - NA, 1 - Allowed */
1789 tANI_U8 rifsMode;
1790
Dino Mycle8afbac12014-07-04 22:06:17 +05301791 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001792 0 - No Support, 1 - Supported
1793 SG - there is global field */
1794 tANI_U8 lsigTxopProtection;
1795
1796 /*Max Ampdu Size supported by STA. TPE programming.
1797 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1798 tANI_U8 maxAmpduSize;
1799
1800 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1801 tANI_U8 maxAmpduDensity;
1802
1803 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1804 tANI_U8 maxAmsduSize;
1805
1806 /*Short GI support for 40Mhz packets*/
1807 tANI_U8 fShortGI40Mhz;
1808
1809 /*Short GI support for 20Mhz packets*/
1810 tANI_U8 fShortGI20Mhz;
1811
Jeff Johnson295189b2012-06-20 16:38:30 -07001812 /*Robust Management Frame (RMF) enabled/disabled*/
1813 tANI_U8 rmfEnabled;
1814
1815 /* The unicast encryption type in the association */
1816 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001817
1818 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001819 will set this flag in case of RE-ASSOC, where we want to reuse the old
1820 STA ID. 0 = Add, 1 = Update*/
1821 tANI_U8 action;
1822
1823 /*U-APSD Flags: 1b per AC. Encoded as follows:
1824 b7 b6 b5 b4 b3 b2 b1 b0 =
1825 X X X X BE BK VI VO */
1826 tANI_U8 uAPSD;
1827
1828 /*Max SP Length*/
1829 tANI_U8 maxSPLen;
1830
1831 /*11n Green Field preamble support
1832 0 - Not supported, 1 - Supported */
1833 tANI_U8 greenFieldCapable;
1834
1835 /*MIMO Power Save mode*/
1836 tSirMacHTMIMOPowerSaveState mimoPS;
1837
1838 /*Delayed BA Support*/
1839 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001840
Jeff Johnson295189b2012-06-20 16:38:30 -07001841 /*Max AMPDU duration in 32us*/
1842 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001843
Jeff Johnson295189b2012-06-20 16:38:30 -07001844 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1845 it to 0 if AP does not support it. This indication is sent to HAL and
1846 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1847 tANI_U8 fDsssCckMode40Mhz;
1848
1849 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1850 Retained for backward compalibity with existing HAL code*/
1851 tANI_U8 staIdx;
1852
1853 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1854 Retained for backward compalibity with existing HAL code*/
1855 tANI_U8 bssIdx;
1856
1857 tANI_U8 p2pCapableSta;
1858
Jeff Johnsone7245742012-09-05 17:12:55 -07001859 /*Reserved to align next field on a dword boundary*/
1860 tANI_U8 reserved;
1861
1862 /*These rates are the intersection of peer and self capabilities.*/
1863 tSirSupportedRates supportedRates;
1864
Jeff Johnson295189b2012-06-20 16:38:30 -07001865} tConfigStaParams, *tpConfigStaParams;
1866
Jeff Johnsone7245742012-09-05 17:12:55 -07001867/*------------------------------------------------------------------------
1868 * WLAN_HAL_CONFIG_STA_REQ
1869 * ----------------------------------------------------------------------*/
1870
1871typedef PACKED_PRE struct PACKED_POST {
1872 /*
1873 * For Self STA Entry: this represents Self Mode.
1874 * For Peer Stations, this represents the mode of the peer.
1875 * On Station:
1876 * --this mode is updated when PE adds the Self Entry.
1877 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1878 * ON AP:
1879 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1880 * to indicate the self mode of the AP.
1881 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1882 */
1883
1884 tStaRateMode opRateMode;
1885 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1886 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1887 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1888 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1889 tANI_U16 reserved;
1890
1891 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1892 //First 26 bits are reserved for those Titan rates and
1893 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1894 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1895
1896 /*
1897 * 0-76 bits used, remaining reserved
1898 * bits 0-15 and 32 should be set.
1899 */
1900 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1901
1902 /*
1903 * RX Highest Supported Data Rate defines the highest data
1904 * rate that the STA is able to receive, in unites of 1Mbps.
1905 * This value is derived from "Supported MCS Set field" inside
1906 * the HT capability element.
1907 */
1908 tANI_U16 rxHighestDataRate;
1909
1910 /* Indicates the Maximum MCS that can be received for each number
1911 * of spacial streams */
1912 tANI_U16 vhtRxMCSMap;
1913
1914 /*Indicate the highest VHT data rate that the STA is able to receive*/
1915 tANI_U16 vhtRxHighestDataRate;
1916
1917 /* Indicates the Maximum MCS that can be transmitted for each number
1918 * of spacial streams */
1919 tANI_U16 vhtTxMCSMap;
1920
1921 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1922 tANI_U16 vhtTxHighestDataRate;
1923
1924} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1925
1926typedef PACKED_PRE struct PACKED_POST
1927{
1928 /*BSSID of STA*/
1929 tSirMacAddr bssId;
1930
1931 /*ASSOC ID, as assigned by UMAC*/
1932 tANI_U16 assocId;
1933
1934 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1935 tANI_U8 staType;
1936
1937 /*Short Preamble Supported.*/
1938 tANI_U8 shortPreambleSupported;
1939
1940 /*MAC Address of STA*/
1941 tSirMacAddr staMac;
1942
1943 /*Listen interval of the STA*/
1944 tANI_U16 listenInterval;
1945
1946 /*Support for 11e/WMM*/
1947 tANI_U8 wmmEnabled;
1948
1949 /*11n HT capable STA*/
1950 tANI_U8 htCapable;
1951
1952 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1953 tANI_U8 txChannelWidthSet;
1954
1955 /*RIFS mode 0 - NA, 1 - Allowed */
1956 tANI_U8 rifsMode;
1957
1958 /*L-SIG TXOP Protection mechanism
1959 0 - No Support, 1 - Supported
1960 SG - there is global field */
1961 tANI_U8 lsigTxopProtection;
1962
1963 /*Max Ampdu Size supported by STA. TPE programming.
1964 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1965 tANI_U8 maxAmpduSize;
1966
1967 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1968 tANI_U8 maxAmpduDensity;
1969
1970 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1971 tANI_U8 maxAmsduSize;
1972
1973 /*Short GI support for 40Mhz packets*/
1974 tANI_U8 fShortGI40Mhz;
1975
1976 /*Short GI support for 20Mhz packets*/
1977 tANI_U8 fShortGI20Mhz;
1978
1979 /*Robust Management Frame (RMF) enabled/disabled*/
1980 tANI_U8 rmfEnabled;
1981
1982 /* The unicast encryption type in the association */
1983 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301984
1985 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001986 will set this flag in case of RE-ASSOC, where we want to reuse the old
1987 STA ID. 0 = Add, 1 = Update*/
1988 tANI_U8 action;
1989
1990 /*U-APSD Flags: 1b per AC. Encoded as follows:
1991 b7 b6 b5 b4 b3 b2 b1 b0 =
1992 X X X X BE BK VI VO */
1993 tANI_U8 uAPSD;
1994
1995 /*Max SP Length*/
1996 tANI_U8 maxSPLen;
1997
1998 /*11n Green Field preamble support
1999 0 - Not supported, 1 - Supported */
2000 tANI_U8 greenFieldCapable;
2001
2002 /*MIMO Power Save mode*/
2003 tSirMacHTMIMOPowerSaveState mimoPS;
2004
2005 /*Delayed BA Support*/
2006 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05302007
Jeff Johnsone7245742012-09-05 17:12:55 -07002008 /*Max AMPDU duration in 32us*/
2009 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05302010
Jeff Johnsone7245742012-09-05 17:12:55 -07002011 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
2012 it to 0 if AP does not support it. This indication is sent to HAL and
2013 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
2014 tANI_U8 fDsssCckMode40Mhz;
2015
2016 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
2017 Retained for backward compalibity with existing HAL code*/
2018 tANI_U8 staIdx;
2019
2020 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
2021 Retained for backward compalibity with existing HAL code*/
2022 tANI_U8 bssIdx;
2023
2024 tANI_U8 p2pCapableSta;
2025
2026 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002027 tANI_U8 htLdpcEnabled:1;
2028 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002029 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302030 tANI_U8 vhtTxMUBformeeCapable:1;
2031 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002032
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002033 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002034 tSirSupportedRates_V1 supportedRates;
2035
2036 tANI_U8 vhtCapable;
2037 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002038
Jeff Johnsone7245742012-09-05 17:12:55 -07002039} tConfigStaParams_V1, *tpConfigStaParams_V1;
2040
Jeff Johnson295189b2012-06-20 16:38:30 -07002041typedef PACKED_PRE struct PACKED_POST
2042{
2043 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002044 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002045 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002046 tConfigStaParams_V1 configStaParams_V1;
2047 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002048} tConfigStaReqMsg, *tpConfigStaReqMsg;
2049
2050/*---------------------------------------------------------------------------
2051 WLAN_HAL_CONFIG_STA_RSP
2052---------------------------------------------------------------------------*/
2053
2054typedef PACKED_PRE struct PACKED_POST
2055{
2056 /*success or failure */
2057 tANI_U32 status;
2058
2059 /* Station index; valid only when 'status' field value SUCCESS */
2060 tANI_U8 staIdx;
2061
2062 /* BSSID Index of BSS to which the station is associated */
2063 tANI_U8 bssIdx;
2064
2065 /* DPU Index for PTK */
2066 tANI_U8 dpuIndex;
2067
Dino Mycle8afbac12014-07-04 22:06:17 +05302068 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002069 tANI_U8 bcastDpuIndex;
2070
2071 /*DPU Index for IGTK */
2072 tANI_U8 bcastMgmtDpuIdx;
2073
2074 /*PTK DPU signature*/
2075 tANI_U8 ucUcastSig;
2076
2077 /*GTK DPU isignature*/
2078 tANI_U8 ucBcastSig;
2079
2080 /* IGTK DPU signature*/
2081 tANI_U8 ucMgmtSig;
2082
2083 tANI_U8 p2pCapableSta;
2084
2085}tConfigStaRspParams, *tpConfigStaRspParams;
2086
2087typedef PACKED_PRE struct PACKED_POST
2088{
2089 tHalMsgHeader header;
2090 tConfigStaRspParams configStaRspParams;
2091}tConfigStaRspMsg, *tpConfigStaRspMsg;
2092
2093/*---------------------------------------------------------------------------
2094 WLAN_HAL_DELETE_STA_REQ
2095---------------------------------------------------------------------------*/
2096
2097/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302098typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002099{
2100 /* Index of STA to delete */
2101 tANI_U8 staIdx;
2102} tDeleteStaParams, *tpDeleteStaParams;
2103
2104/* Delete STA Request message*/
2105typedef PACKED_PRE struct PACKED_POST
2106{
2107 tHalMsgHeader header;
2108 tDeleteStaParams delStaParams;
2109} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2110
2111/*---------------------------------------------------------------------------
2112 WLAN_HAL_DELETE_STA_RSP
2113---------------------------------------------------------------------------*/
2114
2115/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302116typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002117{
2118 /*success or failure */
2119 tANI_U32 status;
2120
2121 /* Index of STA deleted */
2122 tANI_U8 staId;
2123} tDeleteStaRspParams, *tpDeleteStaRspParams;
2124
2125/* Delete STA Response message*/
2126typedef PACKED_PRE struct PACKED_POST
2127{
2128 tHalMsgHeader header;
2129 tDeleteStaRspParams delStaRspParams;
2130} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2131
2132/*---------------------------------------------------------------------------
2133 WLAN_HAL_CONFIG_BSS_REQ
2134---------------------------------------------------------------------------*/
2135
2136//12 Bytes long because this structure can be used to represent rate
2137//and extended rate set IEs. The parser assume this to be at least 12
2138typedef __ani_attr_pre_packed struct sSirMacRateSet
2139{
2140 tANI_U8 numRates;
2141 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2142} __ani_attr_packed tSirMacRateSet;
2143
2144// access category record
2145typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2146{
2147#ifndef ANI_LITTLE_BIT_ENDIAN
2148 tANI_U8 rsvd : 1;
2149 tANI_U8 aci : 2;
2150 tANI_U8 acm : 1;
2151 tANI_U8 aifsn : 4;
2152#else
2153 tANI_U8 aifsn : 4;
2154 tANI_U8 acm : 1;
2155 tANI_U8 aci : 2;
2156 tANI_U8 rsvd : 1;
2157#endif
2158} __ani_attr_packed tSirMacAciAifsn;
2159
2160// contention window size
2161typedef __ani_attr_pre_packed struct sSirMacCW
2162{
2163#ifndef ANI_LITTLE_BIT_ENDIAN
2164 tANI_U8 max : 4;
2165 tANI_U8 min : 4;
2166#else
2167 tANI_U8 min : 4;
2168 tANI_U8 max : 4;
2169#endif
2170} __ani_attr_packed tSirMacCW;
2171
2172typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2173{
2174 tSirMacAciAifsn aci;
2175 tSirMacCW cw;
2176 tANI_U16 txoplimit;
2177} __ani_attr_packed tSirMacEdcaParamRecord;
2178
2179typedef __ani_attr_pre_packed struct sSirMacSSid
2180{
2181 tANI_U8 length;
2182 tANI_U8 ssId[32];
2183} __ani_attr_packed tSirMacSSid;
2184
2185// Concurrency role. These are generic IDs that identify the various roles
2186// in the software system.
2187typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302188 HAL_STA_MODE=0,
2189 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002190 HAL_P2P_CLIENT_MODE,
2191 HAL_P2P_GO_MODE,
2192 HAL_MONITOR_MODE,
2193} tHalConMode;
2194
2195//This is a bit pattern to be set for each mode
2196//bit 0 - sta mode
2197//bit 1 - ap mode
2198//bit 2 - p2p client mode
2199//bit 3 - p2p go mode
2200typedef enum
2201{
Dino Mycle8afbac12014-07-04 22:06:17 +05302202 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002203 HAL_SAP=2,
2204 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2205 HAL_P2P_CLIENT=4,
2206 HAL_P2P_GO=8,
2207 HAL_MAX_CONCURRENCY_PERSONA=4
2208} tHalConcurrencyMode;
2209
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002210// IFACE PERSONA for different Operating modes
2211typedef enum
2212{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002213 HAL_IFACE_UNKNOWN=0,
2214 HAL_IFACE_STA_MODE=1,
2215 HAL_IFACE_P2P_MODE=2,
2216 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002217} tHalIfacePersona;
2218
Jeff Johnson295189b2012-06-20 16:38:30 -07002219typedef PACKED_PRE struct PACKED_POST
2220{
2221 /* BSSID */
2222 tSirMacAddr bssId;
2223
Jeff Johnson295189b2012-06-20 16:38:30 -07002224 /* Self Mac Address */
2225 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002226
2227 /* BSS type */
2228 tSirBssType bssType;
2229
2230 /*Operational Mode: AP =0, STA = 1*/
2231 tANI_U8 operMode;
2232
2233 /*Network Type*/
2234 tSirNwType nwType;
2235
2236 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2237 tANI_U8 shortSlotTimeSupported;
2238
2239 /*Co-exist with 11a STA*/
2240 tANI_U8 llaCoexist;
2241
2242 /*Co-exist with 11b STA*/
2243 tANI_U8 llbCoexist;
2244
2245 /*Co-exist with 11g STA*/
2246 tANI_U8 llgCoexist;
2247
2248 /*Coexistence with 11n STA*/
2249 tANI_U8 ht20Coexist;
2250
2251 /*Non GF coexist flag*/
2252 tANI_U8 llnNonGFCoexist;
2253
2254 /*TXOP protection support*/
2255 tANI_U8 fLsigTXOPProtectionFullSupport;
2256
2257 /*RIFS mode*/
2258 tANI_U8 fRIFSMode;
2259
2260 /*Beacon Interval in TU*/
2261 tSirMacBeaconInterval beaconInterval;
2262
2263 /*DTIM period*/
2264 tANI_U8 dtimPeriod;
2265
2266 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2267 tANI_U8 txChannelWidthSet;
2268
2269 /*Operating channel*/
2270 tANI_U8 currentOperChannel;
2271
2272 /*Extension channel for channel bonding*/
2273 tANI_U8 currentExtChannel;
2274
2275 /*Reserved to align next field on a dword boundary*/
2276 tANI_U8 reserved;
2277
Jeff Johnsone7245742012-09-05 17:12:55 -07002278 /*SSID of the BSS*/
2279 tSirMacSSid ssId;
2280
2281 /*HAL should update the existing BSS entry, if this flag is set.
2282 UMAC will set this flag in case of reassoc, where we want to resue the
2283 the old BSSID and still return success 0 = Add, 1 = Update*/
2284 tANI_U8 action;
2285
2286 /* MAC Rate Set */
2287 tSirMacRateSet rateSet;
2288
2289 /*Enable/Disable HT capabilities of the BSS*/
2290 tANI_U8 htCapable;
2291
2292 // Enable/Disable OBSS protection
2293 tANI_U8 obssProtEnabled;
2294
2295 /*RMF enabled/disabled*/
2296 tANI_U8 rmfEnabled;
2297
2298 /*HT Operating Mode operating mode of the 802.11n STA*/
2299 tSirMacHTOperatingMode htOperMode;
2300
2301 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2302 tANI_U8 dualCTSProtection;
2303
2304 /* Probe Response Max retries */
2305 tANI_U8 ucMaxProbeRespRetryLimit;
2306
2307 /* To Enable Hidden ssid */
2308 tANI_U8 bHiddenSSIDEn;
2309
2310 /* To Enable Disable FW Proxy Probe Resp */
2311 tANI_U8 bProxyProbeRespEn;
2312
2313 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2314 EDCA params or might not desire to apply EDCA params during config BSS.
2315 0 implies Not Valid ; Non-Zero implies valid*/
2316 tANI_U8 edcaParamsValid;
2317
2318 /*EDCA Parameters for Best Effort Access Category*/
2319 tSirMacEdcaParamRecord acbe;
2320
2321 /*EDCA Parameters forBackground Access Category*/
2322 tSirMacEdcaParamRecord acbk;
2323
2324 /*EDCA Parameters for Video Access Category*/
2325 tSirMacEdcaParamRecord acvi;
2326
2327 /*EDCA Parameters for Voice Access Category*/
2328 tSirMacEdcaParamRecord acvo;
2329
2330#ifdef WLAN_FEATURE_VOWIFI_11R
2331 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2332 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2333#endif
2334
2335 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2336 tANI_U8 halPersona;
2337
2338 tANI_U8 bSpectrumMgtEnable;
2339
2340 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2341 tANI_S8 txMgmtPower;
2342 /*maxTxPower has max power to be used after applying the power constraint if any */
2343 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002344 /*Context of the station being added in HW
2345 Add a STA entry for "itself" -
2346 On AP - Add the AP itself in an "STA context"
2347 On STA - Add the AP to which this STA is joining in an "STA context" */
2348 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002349} tConfigBssParams, * tpConfigBssParams;
2350
2351
2352/*--------------------------------------------------------------------------
2353 * WLAN_HAL_CONFIG_BSS_REQ
2354 *--------------------------------------------------------------------------*/
2355typedef PACKED_PRE struct PACKED_POST
2356{
2357 /* BSSID */
2358 tSirMacAddr bssId;
2359
Jeff Johnsone7245742012-09-05 17:12:55 -07002360 /* Self Mac Address */
2361 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002362
2363 /* BSS type */
2364 tSirBssType bssType;
2365
2366 /*Operational Mode: AP =0, STA = 1*/
2367 tANI_U8 operMode;
2368
2369 /*Network Type*/
2370 tSirNwType nwType;
2371
2372 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2373 tANI_U8 shortSlotTimeSupported;
2374
2375 /*Co-exist with 11a STA*/
2376 tANI_U8 llaCoexist;
2377
2378 /*Co-exist with 11b STA*/
2379 tANI_U8 llbCoexist;
2380
2381 /*Co-exist with 11g STA*/
2382 tANI_U8 llgCoexist;
2383
2384 /*Coexistence with 11n STA*/
2385 tANI_U8 ht20Coexist;
2386
2387 /*Non GF coexist flag*/
2388 tANI_U8 llnNonGFCoexist;
2389
2390 /*TXOP protection support*/
2391 tANI_U8 fLsigTXOPProtectionFullSupport;
2392 /*RIFS mode*/
2393 tANI_U8 fRIFSMode;
2394
2395 /*Beacon Interval in TU*/
2396 tSirMacBeaconInterval beaconInterval;
2397
2398 /*DTIM period*/
2399 tANI_U8 dtimPeriod;
2400
2401 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2402 tANI_U8 txChannelWidthSet;
2403
2404 /*Operating channel*/
2405 tANI_U8 currentOperChannel;
2406
2407 /*Extension channel for channel bonding*/
2408 tANI_U8 currentExtChannel;
2409
2410 /*Reserved to align next field on a dword boundary*/
2411 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002412
2413 /*SSID of the BSS*/
2414 tSirMacSSid ssId;
2415
2416 /*HAL should update the existing BSS entry, if this flag is set.
2417 UMAC will set this flag in case of reassoc, where we want to resue the
2418 the old BSSID and still return success 0 = Add, 1 = Update*/
2419 tANI_U8 action;
2420
2421 /* MAC Rate Set */
2422 tSirMacRateSet rateSet;
2423
2424 /*Enable/Disable HT capabilities of the BSS*/
2425 tANI_U8 htCapable;
2426
2427 // Enable/Disable OBSS protection
2428 tANI_U8 obssProtEnabled;
2429
2430 /*RMF enabled/disabled*/
2431 tANI_U8 rmfEnabled;
2432
2433 /*HT Operating Mode operating mode of the 802.11n STA*/
2434 tSirMacHTOperatingMode htOperMode;
2435
2436 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2437 tANI_U8 dualCTSProtection;
2438
2439 /* Probe Response Max retries */
2440 tANI_U8 ucMaxProbeRespRetryLimit;
2441
2442 /* To Enable Hidden ssid */
2443 tANI_U8 bHiddenSSIDEn;
2444
2445 /* To Enable Disable FW Proxy Probe Resp */
2446 tANI_U8 bProxyProbeRespEn;
2447
Dino Mycle8afbac12014-07-04 22:06:17 +05302448 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2449 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002450 0 implies Not Valid ; Non-Zero implies valid*/
2451 tANI_U8 edcaParamsValid;
2452
2453 /*EDCA Parameters for Best Effort Access Category*/
2454 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302455
Jeff Johnson295189b2012-06-20 16:38:30 -07002456 /*EDCA Parameters forBackground Access Category*/
2457 tSirMacEdcaParamRecord acbk;
2458
2459 /*EDCA Parameters for Video Access Category*/
2460 tSirMacEdcaParamRecord acvi;
2461
2462 /*EDCA Parameters for Voice Access Category*/
2463 tSirMacEdcaParamRecord acvo;
2464
2465#ifdef WLAN_FEATURE_VOWIFI_11R
2466 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2467 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2468#endif
2469
Dino Mycle8afbac12014-07-04 22:06:17 +05302470 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002471 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302472
Jeff Johnson295189b2012-06-20 16:38:30 -07002473 tANI_U8 bSpectrumMgtEnable;
2474
2475 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2476 tANI_S8 txMgmtPower;
2477 /*maxTxPower has max power to be used after applying the power constraint if any */
2478 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002479 /*Context of the station being added in HW
2480 Add a STA entry for "itself" -
2481 On AP - Add the AP itself in an "STA context"
2482 On STA - Add the AP to which this STA is joining in an "STA context" */
2483 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302484
Jeff Johnsone7245742012-09-05 17:12:55 -07002485 tANI_U8 vhtCapable;
2486 tANI_U8 vhtTxChannelWidthSet;
2487} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002488
2489typedef PACKED_PRE struct PACKED_POST
2490{
2491 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002492 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002493 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002494 tConfigBssParams_V1 configBssParams_V1;
2495 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002496} tConfigBssReqMsg, *tpConfigBssReqMsg;
2497
2498/*---------------------------------------------------------------------------
2499 WLAN_HAL_CONFIG_BSS_RSP
2500---------------------------------------------------------------------------*/
2501
2502typedef PACKED_PRE struct PACKED_POST
2503{
2504 /* Success or Failure */
2505 tANI_U32 status;
2506
2507 /* BSS index allocated by HAL */
2508 tANI_U8 bssIdx;
2509
2510 /* DPU descriptor index for PTK */
2511 tANI_U8 dpuDescIndx;
2512
2513 /* PTK DPU signature */
2514 tANI_U8 ucastDpuSignature;
2515
2516 /* DPU descriptor index for GTK*/
2517 tANI_U8 bcastDpuDescIndx;
2518
2519 /* GTK DPU signature */
2520 tANI_U8 bcastDpuSignature;
2521
2522 /*DPU descriptor for IGTK*/
2523 tANI_U8 mgmtDpuDescIndx;
2524
2525 /* IGTK DPU signature */
2526 tANI_U8 mgmtDpuSignature;
2527
2528 /* Station Index for BSS entry*/
2529 tANI_U8 bssStaIdx;
2530
2531 /* Self station index for this BSS */
2532 tANI_U8 bssSelfStaIdx;
2533
2534 /* Bcast station for buffering bcast frames in AP role */
2535 tANI_U8 bssBcastStaIdx;
2536
2537 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2538 tSirMacAddr staMac;
2539
2540 /*HAL fills in the tx power used for mgmt frames in this field. */
2541 tANI_S8 txMgmtPower;
2542
2543} tConfigBssRspParams, * tpConfigBssRspParams;
2544
2545typedef PACKED_PRE struct PACKED_POST
2546{
2547 tHalMsgHeader header;
2548 tConfigBssRspParams configBssRspParams;
2549} tConfigBssRspMsg, *tpConfigBssRspMsg;
2550
2551/*---------------------------------------------------------------------------
2552 WLAN_HAL_DELETE_BSS_REQ
2553---------------------------------------------------------------------------*/
2554
2555typedef PACKED_PRE struct PACKED_POST
2556{
2557 /* BSS index to be deleted */
2558 tANI_U8 bssIdx;
2559
2560} tDeleteBssParams, *tpDeleteBssParams;
2561
2562typedef PACKED_PRE struct PACKED_POST
2563{
2564 tHalMsgHeader header;
2565 tDeleteBssParams deleteBssParams;
2566} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2567
2568/*---------------------------------------------------------------------------
2569 WLAN_HAL_DELETE_BSS_RSP
2570---------------------------------------------------------------------------*/
2571
2572typedef PACKED_PRE struct PACKED_POST
2573{
2574 /* Success or Failure */
2575 tANI_U32 status;
2576
2577 /* BSS index that has been deleted */
2578 tANI_U8 bssIdx;
2579
2580} tDeleteBssRspParams, *tpDeleteBssRspParams;
2581
2582typedef PACKED_PRE struct PACKED_POST
2583{
2584 tHalMsgHeader header;
2585 tDeleteBssRspParams deleteBssRspParams;
2586} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2587
2588/*---------------------------------------------------------------------------
2589 WLAN_HAL_JOIN_REQ
2590---------------------------------------------------------------------------*/
2591
2592typedef PACKED_PRE struct PACKED_POST
2593{
2594 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302595 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002596
2597 /*Indicates the channel to switch to.*/
2598 tANI_U8 ucChannel;
2599
2600 /* Self STA MAC */
2601 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302602
Jeff Johnson295189b2012-06-20 16:38:30 -07002603 /*Local power constraint*/
2604 tANI_U8 ucLocalPowerConstraint;
2605
2606 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002607 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002608
2609 /*link State*/
2610 tSirLinkState linkState;
2611
2612 /* Max TX power */
2613 tANI_S8 maxTxPower;
2614
2615} tHalJoinReqParams, *tpHalJoinReqParams;
2616
2617typedef PACKED_PRE struct PACKED_POST
2618{
2619 tHalMsgHeader header;
2620 tHalJoinReqParams joinReqParams;
2621} tHalJoinReqMsg, *tpHalJoinReqMsg;
2622
2623/*---------------------------------------------------------------------------
2624 WLAN_HAL_JOIN_RSP
2625---------------------------------------------------------------------------*/
2626
2627typedef PACKED_PRE struct PACKED_POST
2628{
2629 /*success or failure */
2630 tANI_U32 status;
2631
2632 /* HAL fills in the tx power used for mgmt frames in this field */
2633 tPowerdBm txMgmtPower;
2634
2635}tHalJoinRspParams, *tpHalJoinRspParams;
2636
2637typedef PACKED_PRE struct PACKED_POST
2638{
2639 tHalMsgHeader header;
2640 tHalJoinRspParams joinRspParams;
2641}tHalJoinRspMsg, *tpHalJoinRspMsg;
2642
2643/*---------------------------------------------------------------------------
2644 WLAN_HAL_POST_ASSOC_REQ
2645---------------------------------------------------------------------------*/
2646
2647typedef PACKED_PRE struct PACKED_POST
2648{
2649 tConfigStaParams configStaParams;
2650 tConfigBssParams configBssParams;
2651} tPostAssocReqParams, *tpPostAssocReqParams;
2652
2653typedef PACKED_PRE struct PACKED_POST
2654{
2655 tHalMsgHeader header;
2656 tPostAssocReqParams postAssocReqParams;
2657} tPostAssocReqMsg, *tpPostAssocReqMsg;
2658
2659/*---------------------------------------------------------------------------
2660 WLAN_HAL_POST_ASSOC_RSP
2661---------------------------------------------------------------------------*/
2662
2663typedef PACKED_PRE struct PACKED_POST
2664{
2665 tConfigStaRspParams configStaRspParams;
2666 tConfigBssRspParams configBssRspParams;
2667} tPostAssocRspParams, *tpPostAssocRspParams;
2668
2669typedef PACKED_PRE struct PACKED_POST
2670{
2671 tHalMsgHeader header;
2672 tPostAssocRspParams postAssocRspParams;
2673} tPostAssocRspMsg, *tpPostAssocRspMsg;
2674
2675/*---------------------------------------------------------------------------
2676 WLAN_HAL_SET_BSSKEY_REQ
2677---------------------------------------------------------------------------*/
2678
2679/*
2680 * This is used by PE to create a set of WEP keys for a given BSS.
2681 */
2682typedef PACKED_PRE struct PACKED_POST
2683{
2684 /*BSS Index of the BSS*/
2685 tANI_U8 bssIdx;
2686
2687 /*Encryption Type used with peer*/
2688 tAniEdType encType;
2689
2690 /*Number of keys*/
2691 tANI_U8 numKeys;
2692
2693 /*Array of keys.*/
2694 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302695
Jeff Johnson295189b2012-06-20 16:38:30 -07002696 /*Control for Replay Count, 1= Single TID based replay count on Tx
2697 0 = Per TID based replay count on TX */
2698 tANI_U8 singleTidRc;
2699} tSetBssKeyParams, *tpSetBssKeyParams;
2700
2701typedef PACKED_PRE struct PACKED_POST
2702{
2703 tHalMsgHeader header;
2704 tSetBssKeyParams setBssKeyParams;
2705} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2706
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002707/* tagged version of set bss key */
2708typedef PACKED_PRE struct PACKED_POST
2709{
2710 tSetBssKeyReqMsg Msg;
2711 uint32 Tag;
2712} tSetBssKeyReqMsgTagged;
2713
Jeff Johnson295189b2012-06-20 16:38:30 -07002714/*---------------------------------------------------------------------------
2715 WLAN_HAL_SET_BSSKEY_RSP
2716---------------------------------------------------------------------------*/
2717typedef PACKED_PRE struct PACKED_POST
2718{
2719 /*success or failure */
2720 tANI_U32 status;
2721
2722} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2723
2724typedef PACKED_PRE struct PACKED_POST
2725{
2726 tHalMsgHeader header;
2727 tSetBssKeyRspParams setBssKeyRspParams;
2728} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2729
2730/*---------------------------------------------------------------------------
2731 WLAN_HAL_SET_STAKEY_REQ,
2732---------------------------------------------------------------------------*/
2733
2734/*
2735 * This is used by PE to configure the key information on a given station.
2736 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2737 * a preconfigured key from a BSS the station assoicated with; otherwise
2738 * a new key descriptor is created based on the key field.
2739 */
2740
2741typedef PACKED_PRE struct PACKED_POST
2742{
2743 tHalMsgHeader header;
2744 tSetStaKeyParams setStaKeyParams;
2745} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2746
2747/*---------------------------------------------------------------------------
2748 WLAN_HAL_SET_STAKEY_RSP,
2749---------------------------------------------------------------------------*/
2750typedef PACKED_PRE struct PACKED_POST
2751{
2752 /*success or failure */
2753 tANI_U32 status;
2754
2755} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2756
2757typedef PACKED_PRE struct PACKED_POST
2758{
2759 tHalMsgHeader header;
2760 tSetStaKeyRspParams setStaKeyRspParams;
2761} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2762
2763/*---------------------------------------------------------------------------
2764 WLAN_HAL_RMV_BSSKEY_REQ,
2765---------------------------------------------------------------------------*/
2766/*
2767 * This is used by PE to remove keys for a given BSS.
2768 */
2769typedef PACKED_PRE struct PACKED_POST
2770
2771{
2772 /*BSS Index of the BSS*/
2773 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302774
Jeff Johnson295189b2012-06-20 16:38:30 -07002775 /*Encryption Type used with peer*/
2776 tAniEdType encType;
2777
2778 /*Key Id*/
2779 tANI_U8 keyId;
2780
2781 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2782 tAniWepType wepType;
2783
2784} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2785
2786typedef PACKED_PRE struct PACKED_POST
2787{
2788 tHalMsgHeader header;
2789 tRemoveBssKeyParams removeBssKeyParams;
2790} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2791
2792/*---------------------------------------------------------------------------
2793 WLAN_HAL_RMV_BSSKEY_RSP,
2794---------------------------------------------------------------------------*/
2795typedef PACKED_PRE struct PACKED_POST
2796{
2797 /*success or failure */
2798 tANI_U32 status;
2799
2800} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2801
2802typedef PACKED_PRE struct PACKED_POST
2803{
2804 tHalMsgHeader header;
2805 tRemoveBssKeyRspParams removeBssKeyRspParams;
2806} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2807
2808/*---------------------------------------------------------------------------
2809 WLAN_HAL_RMV_STAKEY_REQ,
2810---------------------------------------------------------------------------*/
2811/*
2812 * This is used by PE to Remove the key information on a given station.
2813 */
2814typedef PACKED_PRE struct PACKED_POST
2815{
2816 /*STA Index*/
2817 tANI_U16 staIdx;
2818
2819 /*Encryption Type used with peer*/
2820 tAniEdType encType;
2821
2822 /*Key Id*/
2823 tANI_U8 keyId;
2824
2825 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2826 the same key is used for both broadcast and unicast.*/
2827 tANI_BOOLEAN unicast;
2828
2829} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2830
2831typedef PACKED_PRE struct PACKED_POST
2832{
2833 tHalMsgHeader header;
2834 tRemoveStaKeyParams removeStaKeyParams;
2835} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2836
2837/*---------------------------------------------------------------------------
2838 WLAN_HAL_RMV_STAKEY_RSP,
2839---------------------------------------------------------------------------*/
2840typedef PACKED_PRE struct PACKED_POST
2841{
2842 /*success or failure */
2843 tANI_U32 status;
2844} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2845
2846typedef PACKED_PRE struct PACKED_POST
2847{
2848 tHalMsgHeader header;
2849 tRemoveStaKeyRspParams removeStaKeyRspParams;
2850} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2851
Jeff Johnsone7245742012-09-05 17:12:55 -07002852#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002853
Jeff Johnsone7245742012-09-05 17:12:55 -07002854#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002855#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002856#endif
2857
2858#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002859#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002860#endif
2861
2862/*-------------------------------------------------------------------------
2863WLAN_HAL_START_OEM_DATA_REQ
2864--------------------------------------------------------------------------*/
2865typedef PACKED_PRE struct PACKED_POST
2866{
2867 tANI_U32 status;
2868 tSirMacAddr selfMacAddr;
2869 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2870} tStartOemDataReqParams, *tpStartOemDataReqParams;
2871
2872typedef PACKED_PRE struct PACKED_POST
2873{
2874 tHalMsgHeader header;
2875 tStartOemDataReqParams startOemDataReqParams;
2876} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2877
2878/*-------------------------------------------------------------------------
2879WLAN_HAL_START_OEM_DATA_RSP
2880--------------------------------------------------------------------------*/
2881
2882typedef PACKED_PRE struct PACKED_POST
2883{
2884 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2885} tStartOemDataRspParams, *tpStartOemDataRspParams;
2886
2887typedef PACKED_PRE struct PACKED_POST
2888{
2889 tHalMsgHeader header;
2890 tStartOemDataRspParams startOemDataRspParams;
2891} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2892
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302893#ifndef NEW_OEM_DATA_REQ_SIZE
2894#define NEW_OEM_DATA_REQ_SIZE 292
2895#endif
2896
2897#ifndef NEW_OEM_DATA_RSP_SIZE
2898#define NEW_OEM_DATA_RSP_SIZE 2100
2899#endif
2900
2901/*-------------------------------------------------------------------------
2902WLAN_HAL_START_OEM_DATA_REQ_IND_NEW------------------------------------
2903--------------------------------------------------------------------------*/
2904typedef PACKED_PRE struct PACKED_POST
2905{
Padma, Santhosh Kumarb7f449f2016-01-11 18:55:44 +05302906 tSirMacAddr selfMacAddr;
2907 tANI_U8 reserved[2];
Padma, Santhosh Kumar002b9e22015-10-20 17:39:57 +05302908 tANI_U8 oemDataReq[NEW_OEM_DATA_REQ_SIZE];
2909} tStartOemDataReqParamsNew, *tpStartOemDataReqParamsNew;
2910
2911typedef PACKED_PRE struct PACKED_POST
2912{
2913 tHalMsgHeader header;
2914 tStartOemDataReqParamsNew startOemDataReqParams;
2915} tStartOemDataReqMsgNew, *tpStartOemDataReqMsgNew;
2916
2917/*-------------------------------------------------------------------------
2918WLAN_HAL_START_OEM_DATA_RSP_IND_NEW------------------------------------
2919--------------------------------------------------------------------------*/
2920typedef PACKED_PRE struct PACKED_POST
2921{
2922 tANI_U8 oemDataRsp[NEW_OEM_DATA_RSP_SIZE];
2923} tStartOemDataRspParamsNew, *tpStartOemDataRspParamsNew;
2924
2925typedef PACKED_PRE struct PACKED_POST
2926{
2927 tHalMsgHeader header;
2928 tStartOemDataRspParamsNew startOemDataReqParams;
2929} tStartOemDataRspMsgNew, *tpStartOemDataRspMsgNew;
2930
Jeff Johnsone7245742012-09-05 17:12:55 -07002931#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002932
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002933/*---------------------------------------------------------------------------
2934WLAN_HAL_CH_SWITCH_V1_REQ
2935---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002936
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002937typedef PACKED_PRE struct PACKED_POST
2938{
2939 /* Channel number */
2940 tANI_U8 channelNumber;
2941
2942 /* Local power constraint */
2943 tANI_U8 localPowerConstraint;
2944
2945 /*Secondary channel offset */
2946 ePhyChanBondState secondaryChannelOffset;
2947
2948 //HAL fills in the tx power used for mgmt frames in this field.
2949 tPowerdBm txMgmtPower;
2950
2951 /* Max TX power */
2952 tPowerdBm maxTxPower;
2953
2954 /* Self STA MAC */
2955 tSirMacAddr selfStaMacAddr;
2956
2957 /*VO WIFI comment: BSSID needed to identify session. As the request has
2958 * power constraints, this should be applied only to that session
2959 * Since MTU timing and EDCA are sessionized, this struct needs to be
2960 * sessionized and bssid needs to be out of the VOWifi feature flag
2961 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002962 * mantain backward compatbility
2963 * by way of ignoring if using new host/old FW or old host/new FW since
2964 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002965 */
2966 tSirMacAddr bssId;
2967
2968 /* Source of Channel Switch */
2969 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002970
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002971} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2972
2973typedef PACKED_PRE struct PACKED_POST
2974{
2975 tHalMsgHeader header;
2976 tSwitchChannelParams_V1 switchChannelParams_V1;
2977} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2978
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002979/*---------------------------------------------------------------------------
2980WLAN_HAL_CH_SWITCH_V1_RSP
2981---------------------------------------------------------------------------*/
2982
2983typedef PACKED_PRE struct PACKED_POST
2984{
2985 /* Status */
2986 tANI_U32 status;
2987
2988 /* Channel number - same as in request*/
2989 tANI_U8 channelNumber;
2990
2991 /* HAL fills in the tx power used for mgmt frames in this field */
2992 tPowerdBm txMgmtPower;
2993
2994 /* BSSID needed to identify session - same as in request*/
2995 tSirMacAddr bssId;
2996
2997 /* Source of Channel Switch */
2998 eHalChanSwitchSource channelSwitchSrc;
2999
3000} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
3001
3002typedef PACKED_PRE struct PACKED_POST
3003{
3004 tHalMsgHeader header;
3005 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
3006} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07003007
3008/*---------------------------------------------------------------------------
3009WLAN_HAL_CH_SWITCH_REQ
3010---------------------------------------------------------------------------*/
3011
3012typedef PACKED_PRE struct PACKED_POST
3013{
3014 /* Channel number */
3015 tANI_U8 channelNumber;
3016
3017 /* Local power constraint */
3018 tANI_U8 localPowerConstraint;
3019
3020 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07003021 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003022
3023 //HAL fills in the tx power used for mgmt frames in this field.
3024 tPowerdBm txMgmtPower;
3025
3026 /* Max TX power */
3027 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05303028
Jeff Johnson295189b2012-06-20 16:38:30 -07003029 /* Self STA MAC */
3030 tSirMacAddr selfStaMacAddr;
3031
3032 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
3033 this should be applied only to that session*/
3034 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
3035 * bssid needs to be out of the VOWifi feature flag */
3036 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
3037 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
3038 */
3039 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303040
Jeff Johnson295189b2012-06-20 16:38:30 -07003041}tSwitchChannelParams, *tpSwitchChannelParams;
3042
3043typedef PACKED_PRE struct PACKED_POST
3044{
3045 tHalMsgHeader header;
3046 tSwitchChannelParams switchChannelParams;
3047} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
3048
3049/*---------------------------------------------------------------------------
3050WLAN_HAL_CH_SWITCH_RSP
3051---------------------------------------------------------------------------*/
3052
3053typedef PACKED_PRE struct PACKED_POST
3054{
3055 /* Status */
3056 tANI_U32 status;
3057
3058 /* Channel number - same as in request*/
3059 tANI_U8 channelNumber;
3060
3061 /* HAL fills in the tx power used for mgmt frames in this field */
3062 tPowerdBm txMgmtPower;
3063
3064 /* BSSID needed to identify session - same as in request*/
3065 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303066
Jeff Johnson295189b2012-06-20 16:38:30 -07003067}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3068
3069typedef PACKED_PRE struct PACKED_POST
3070{
3071 tHalMsgHeader header;
3072 tSwitchChannelRspParams switchChannelRspParams;
3073} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3074
3075/*---------------------------------------------------------------------------
3076WLAN_HAL_UPD_EDCA_PARAMS_REQ
3077---------------------------------------------------------------------------*/
3078
3079typedef PACKED_PRE struct PACKED_POST
3080{
3081 /*BSS Index*/
3082 tANI_U16 bssIdx;
3083
3084 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303085 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003086
3087 /* Background */
3088 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303089
Jeff Johnson295189b2012-06-20 16:38:30 -07003090 /* Video */
3091 tSirMacEdcaParamRecord acvi;
3092
3093 /* Voice */
3094 tSirMacEdcaParamRecord acvo;
3095
3096} tEdcaParams, *tpEdcaParams;
3097
3098typedef PACKED_PRE struct PACKED_POST
3099{
3100 tHalMsgHeader header;
3101 tEdcaParams edcaParams;
3102} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3103
3104/*---------------------------------------------------------------------------
3105WLAN_HAL_UPD_EDCA_PARAMS_RSP
3106---------------------------------------------------------------------------*/
3107typedef PACKED_PRE struct PACKED_POST
3108{
3109 /*success or failure */
3110 tANI_U32 status;
3111} tEdcaRspParams, *tpEdcaRspParams;
3112
3113typedef PACKED_PRE struct PACKED_POST
3114{
3115 tHalMsgHeader header;
3116 tEdcaRspParams edcaRspParams;
3117} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3118
3119
3120
3121/*---------------------------------------------------------------------------
3122 * WLAN_HAL_GET_STATS_REQ
3123 *--------------------------------------------------------------------------*/
3124typedef PACKED_PRE struct PACKED_POST
3125
3126{
3127 /* Index of STA to which the statistics */
3128 tANI_U16 staIdx;
3129
3130 /* Encryption mode */
3131 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303132
Jeff Johnson295189b2012-06-20 16:38:30 -07003133 /* status */
3134 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303135
Jeff Johnson295189b2012-06-20 16:38:30 -07003136 /* Statistics */
3137 tANI_U32 sendBlocks;
3138 tANI_U32 recvBlocks;
3139 tANI_U32 replays;
3140 tANI_U8 micErrorCnt;
3141 tANI_U32 protExclCnt;
3142 tANI_U16 formatErrCnt;
3143 tANI_U16 unDecryptableCnt;
3144 tANI_U32 decryptErrCnt;
3145 tANI_U32 decryptOkCnt;
3146} tDpuStatsParams, * tpDpuStatsParams;
3147
3148typedef PACKED_PRE struct PACKED_POST
3149{
3150 /* Valid STA Idx for per STA stats request */
3151 tANI_U32 staId;
3152
3153 /* Categories of stats requested as specified in eHalStatsMask*/
3154 tANI_U32 statsMask;
3155}tHalStatsReqParams, *tpHalStatsReqParams;
3156
3157typedef PACKED_PRE struct PACKED_POST
3158{
3159 tHalMsgHeader header;
3160 tHalStatsReqParams statsReqParams;
3161} tHalStatsReqMsg, *tpHalStatsReqMsg;
3162
3163/*---------------------------------------------------------------------------
3164 * WLAN_HAL_GET_STATS_RSP
3165 *--------------------------------------------------------------------------*/
3166
3167typedef PACKED_PRE struct PACKED_POST
3168{
3169 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3170 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3171 // station successfully transmitted after more than one retransmission attempt
3172
Dino Mycle8afbac12014-07-04 22:06:17 +05303173 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3174 //(with and without retries, including multi-cast, broadcast)
3175 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3176 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003177 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3178 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3179 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3180 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 +05303181 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3182 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 -07003183 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3184 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 +05303185 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3186 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003187 //to provide this.
3188}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3189
3190
3191// defines tx_rate_flags
3192typedef enum eTxRateInfo
3193{
3194 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3195 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3196 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3197 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003198 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3199 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3200 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3201 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3202 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3203 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3204} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003205
3206
3207typedef PACKED_PRE struct PACKED_POST
3208{
Dino Mycle8afbac12014-07-04 22:06:17 +05303209 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 -07003210 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303211 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 -07003212 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303213 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3214 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003215 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303216 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3217 //for eg: if it is 10.5dBm, the value would be 105
3218 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3219 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003220
Dino Mycle8afbac12014-07-04 22:06:17 +05303221 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3222 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003223 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303224 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3225 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003226}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3227
3228typedef PACKED_PRE struct PACKED_POST
3229{
Dino Mycle8afbac12014-07-04 22:06:17 +05303230 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3231 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003232 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303233 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 -07003234 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303235 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 -07003236 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303237 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 -07003238 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303239 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 -07003240 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303241 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 -07003242 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303243 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 -07003244 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303245 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 -07003246 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303247 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 -07003248 //decrypted
3249 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3250
3251}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303252
Jeff Johnson295189b2012-06-20 16:38:30 -07003253typedef PACKED_PRE struct PACKED_POST
3254{
3255 tAniGlobalSecurityStats ucStats;
3256 tAniGlobalSecurityStats mcbcStats;
3257}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3258
3259typedef PACKED_PRE struct PACKED_POST
3260{
Dino Mycle8afbac12014-07-04 22:06:17 +05303261 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3262 //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 -07003263 //address 1 field
3264 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 +05303265 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 -07003266 //primary channel
3267 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 +05303268 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 -07003269 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303270 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3271 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003272 //decoded correctly
3273}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3274
3275typedef PACKED_PRE struct PACKED_POST
3276{
Dino Mycle8afbac12014-07-04 22:06:17 +05303277 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 -07003278 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303279 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3280 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 -07003281 //is transmitted
3282}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3283
Sushant Kaushik33200572015-08-05 16:46:20 +05303284// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3285typedef PACKED_PRE struct PACKED_POST
3286{
3287 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05303288 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05303289 tANI_U32 reserved;
3290 tANI_U32 reserved1;
3291}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3292
Jeff Johnson295189b2012-06-20 16:38:30 -07003293typedef PACKED_PRE struct PACKED_POST
3294{
3295 /* Success or Failure */
3296 tANI_U32 status;
3297
3298 /* STA Idx */
3299 tANI_U32 staId;
3300
3301 /* Categories of STATS being returned as per eHalStatsMask*/
3302 tANI_U32 statsMask;
3303
3304 /* message type is same as the request type */
3305 tANI_U16 msgType;
3306
3307 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303308 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003309
3310} tHalStatsRspParams, *tpHalStatsRspParams;
3311
3312
3313
3314typedef PACKED_PRE struct PACKED_POST
3315{
3316 tHalMsgHeader header;
3317 tHalStatsRspParams statsRspParams;
3318} tHalStatsRspMsg, *tpHalStatsRspMsg;
3319
Abhishek Singhbc310882015-05-22 15:17:02 +05303320 /*---------------------------------------------------------------------------
3321 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3322 *---------------------------------------------------------------------------*/
3323typedef PACKED_PRE struct PACKED_POST
3324{
3325 tANI_U32 rtsCtsValue;
3326}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3327
3328typedef PACKED_PRE struct PACKED_POST
3329{
3330 tHalMsgHeader header;
3331 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3332} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3333
Jeff Johnson295189b2012-06-20 16:38:30 -07003334/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303335 * WLAN_HAL_FW_STATS_REQ
3336 *---------------------------------------------------------------------------*/
3337 typedef PACKED_PRE struct PACKED_POST
3338{
3339 tANI_U32 type;
3340}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3341
3342typedef PACKED_PRE struct PACKED_POST
3343{
3344 tHalMsgHeader header;
3345 tHalfwStatsReqParams fwstatsReqParams;
3346} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3347
3348/*---------------------------------------------------------------------------
3349 * WLAN_HAL_FW_STATS_RSP
3350 *---------------------------------------------------------------------------*/
3351 typedef PACKED_PRE struct PACKED_POST
3352{
3353 tANI_U32 type;
3354 tANI_U32 length;
3355 tANI_U8 data[1];
3356
3357}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3358
3359typedef PACKED_PRE struct PACKED_POST
3360{
3361 tHalMsgHeader header;
3362 tHalfwStatsRspParams fwstatsRspParams;
3363} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3364
3365typedef enum
3366{
3367 FW_UBSP_STATS = 1,
3368} fwstatstype;
3369
3370
3371/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003372 * WLAN_HAL_SET_LINK_ST_REQ
3373 *--------------------------------------------------------------------------*/
3374typedef PACKED_PRE struct PACKED_POST
3375{
3376 tSirMacAddr bssid;
3377 tSirLinkState state;
3378 tSirMacAddr selfMacAddr;
3379} tLinkStateParams, *tpLinkStateParams;
3380
3381typedef PACKED_PRE struct PACKED_POST
3382{
3383 tHalMsgHeader header;
3384 tLinkStateParams linkStateParams;
3385} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3386
3387/*---------------------------------------------------------------------------
3388 * WLAN_HAL_SET_LINK_ST_RSP
3389 *--------------------------------------------------------------------------*/
3390
3391typedef PACKED_PRE struct PACKED_POST
3392{
3393 /*success or failure */
3394 tANI_U32 status;
3395} tLinkStateRspParams, *tpLinkStateRspParams;
3396
3397typedef PACKED_PRE struct PACKED_POST
3398{
3399 tHalMsgHeader header;
3400 tLinkStateRspParams linkStateRspParams;
3401} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3402
3403/*---------------------------------------------------------------------------
3404 * WLAN_HAL_ADD_TS_REQ
3405 *--------------------------------------------------------------------------*/
3406
3407/* TSPEC Params */
3408typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3409{
Jeff Johnson295189b2012-06-20 16:38:30 -07003410 tANI_U16 trafficType : 1;
3411 tANI_U16 tsid : 4;
3412 tANI_U16 direction : 2;
3413 tANI_U16 accessPolicy : 2;
3414 tANI_U16 aggregation : 1;
3415 tANI_U16 psb : 1;
3416 tANI_U16 userPrio : 3;
3417 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003418} __ani_attr_packed tSirMacTSInfoTfc;
3419
3420/* Flag to schedule the traffic type */
3421typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3422{
Jeff Johnson295189b2012-06-20 16:38:30 -07003423 tANI_U8 schedule : 1;
3424 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003425} __ani_attr_packed tSirMacTSInfoSch;
3426
3427/* Traffic and scheduling info */
3428typedef __ani_attr_pre_packed struct sSirMacTSInfo
3429{
3430 tSirMacTSInfoTfc traffic;
3431 tSirMacTSInfoSch schedule;
3432} __ani_attr_packed tSirMacTSInfo;
3433
3434/* Information elements */
3435typedef __ani_attr_pre_packed struct sSirMacTspecIE
3436{
3437 tANI_U8 type;
3438 tANI_U8 length;
3439 tSirMacTSInfo tsinfo;
3440 tANI_U16 nomMsduSz;
3441 tANI_U16 maxMsduSz;
3442 tANI_U32 minSvcInterval;
3443 tANI_U32 maxSvcInterval;
3444 tANI_U32 inactInterval;
3445 tANI_U32 suspendInterval;
3446 tANI_U32 svcStartTime;
3447 tANI_U32 minDataRate;
3448 tANI_U32 meanDataRate;
3449 tANI_U32 peakDataRate;
3450 tANI_U32 maxBurstSz;
3451 tANI_U32 delayBound;
3452 tANI_U32 minPhyRate;
3453 tANI_U16 surplusBw;
3454 tANI_U16 mediumTime;
3455}__ani_attr_packed tSirMacTspecIE;
3456
3457typedef PACKED_PRE struct PACKED_POST
3458{
3459 /* Station Index */
3460 tANI_U16 staIdx;
3461
3462 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3463 tANI_U16 tspecIdx;
3464
3465 /* To program TPE with required parameters */
3466 tSirMacTspecIE tspec;
3467
3468 /* U-APSD Flags: 1b per AC. Encoded as follows:
3469 b7 b6 b5 b4 b3 b2 b1 b0 =
3470 X X X X BE BK VI VO */
3471 tANI_U8 uAPSD;
3472
3473 /* These parameters are for all the access categories */
3474 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3475 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3476 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303477
Jeff Johnson295189b2012-06-20 16:38:30 -07003478} tAddTsParams, *tpAddTsParams;
3479
3480typedef PACKED_PRE struct PACKED_POST
3481{
3482 tHalMsgHeader header;
3483 tAddTsParams addTsParams;
3484} tAddTsReqMsg, *tpAddTsReqMsg;
3485
3486/*---------------------------------------------------------------------------
3487 * WLAN_HAL_ADD_TS_RSP
3488 *--------------------------------------------------------------------------*/
3489
3490typedef PACKED_PRE struct PACKED_POST
3491{
3492 /*success or failure */
3493 tANI_U32 status;
3494} tAddTsRspParams, *tpAddTsRspParams;
3495
3496typedef PACKED_PRE struct PACKED_POST
3497{
3498 tHalMsgHeader header;
3499 tAddTsRspParams addTsRspParams;
3500} tAddTsRspMsg, *tpAddTsRspMsg;
3501
3502
3503/*---------------------------------------------------------------------------
3504 * WLAN_HAL_DEL_TS_REQ
3505 *--------------------------------------------------------------------------*/
3506
3507typedef PACKED_PRE struct PACKED_POST
3508{
3509 /* Station Index */
3510 tANI_U16 staIdx;
3511
3512 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3513 tANI_U16 tspecIdx;
3514
3515 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303516 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003517
3518} tDelTsParams, *tpDelTsParams;
3519
3520typedef PACKED_PRE struct PACKED_POST
3521{
3522 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303523 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003524} tDelTsReqMsg, *tpDelTsReqMsg;
3525
3526/*---------------------------------------------------------------------------
3527 * WLAN_HAL_DEL_TS_RSP
3528 *--------------------------------------------------------------------------*/
3529
3530typedef PACKED_PRE struct PACKED_POST
3531{
3532 /*success or failure */
3533 tANI_U32 status;
3534} tDelTsRspParams, *tpDelTsRspParams;
3535
3536typedef PACKED_PRE struct PACKED_POST
3537{
3538 tHalMsgHeader header;
3539 tDelTsRspParams delTsRspParams;
3540} tDelTsRspMsg, *tpDelTsRspMsg;
3541
3542/* End of TSpec Parameters */
3543
3544/* Start of BLOCK ACK related Parameters */
3545
3546/*---------------------------------------------------------------------------
3547 * WLAN_HAL_ADD_BA_SESSION_REQ
3548 *--------------------------------------------------------------------------*/
3549
3550typedef PACKED_PRE struct PACKED_POST
3551{
3552 /* Station Index */
3553 tANI_U16 staIdx;
3554
3555 /* Peer MAC Address */
3556 tSirMacAddr peerMacAddr;
3557
3558 /* ADDBA Action Frame dialog token
3559 HAL will not interpret this object */
3560 tANI_U8 baDialogToken;
3561
3562 /* TID for which the BA is being setup
3563 This identifies the TC or TS of interest */
3564 tANI_U8 baTID;
3565
3566 /* 0 - Delayed BA (Not supported)
3567 1 - Immediate BA */
3568 tANI_U8 baPolicy;
3569
3570 /* Indicates the number of buffers for this TID (baTID)
3571 NOTE - This is the requested buffer size. When this
3572 is processed by HAL and subsequently by HDD, it is
3573 possible that HDD may change this buffer size. Any
3574 change in the buffer size should be noted by PE and
3575 advertized appropriately in the ADDBA response */
3576 tANI_U16 baBufferSize;
3577
3578 /* BA timeout in TU's 0 means no timeout will occur */
3579 tANI_U16 baTimeout;
3580
3581 /* b0..b3 - Fragment Number - Always set to 0
3582 b4..b15 - Starting Sequence Number of first MSDU
3583 for which this BA is setup */
3584 tANI_U16 baSSN;
3585
3586 /* ADDBA direction
3587 1 - Originator
3588 0 - Recipient */
3589 tANI_U8 baDirection;
3590} tAddBASessionParams, *tpAddBASessionParams;
3591
3592typedef PACKED_PRE struct PACKED_POST
3593{
3594 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303595 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003596}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3597
3598/*---------------------------------------------------------------------------
3599 * WLAN_HAL_ADD_BA_SESSION_RSP
3600 *--------------------------------------------------------------------------*/
3601
3602typedef PACKED_PRE struct PACKED_POST
3603{
3604 /*success or failure */
3605 tANI_U32 status;
3606
3607 /* Dialog token */
3608 tANI_U8 baDialogToken;
3609
3610 /* TID for which the BA session has been setup */
3611 tANI_U8 baTID;
3612
3613 /* BA Buffer Size allocated for the current BA session */
3614 tANI_U8 baBufferSize;
3615
3616 tANI_U8 baSessionID;
3617
3618 /* Reordering Window buffer */
3619 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303620
Jeff Johnson295189b2012-06-20 16:38:30 -07003621 /*Station Index to id the sta */
3622 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303623
Jeff Johnson295189b2012-06-20 16:38:30 -07003624 /* Starting Sequence Number */
3625 tANI_U16 SSN;
3626} tAddBASessionRspParams, *tpAddBASessionRspParams;
3627
3628typedef PACKED_PRE struct PACKED_POST
3629{
3630 tHalMsgHeader header;
3631 tAddBASessionRspParams addBASessionRspParams;
3632} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3633
3634/*---------------------------------------------------------------------------
3635 * WLAN_HAL_ADD_BA_REQ
3636 *--------------------------------------------------------------------------*/
3637
3638typedef PACKED_PRE struct PACKED_POST
3639{
3640 /* Session Id */
3641 tANI_U8 baSessionID;
3642
3643 /* Reorder Window Size */
3644 tANI_U8 winSize;
3645
3646#ifdef FEATURE_ON_CHIP_REORDERING
3647 tANI_BOOLEAN isReorderingDoneOnChip;
3648#endif
3649} tAddBAParams, *tpAddBAParams;
3650
3651typedef PACKED_PRE struct PACKED_POST
3652{
3653 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303654 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003655} tAddBAReqMsg, *tpAddBAReqMsg;
3656
3657
3658/*---------------------------------------------------------------------------
3659 * WLAN_HAL_ADD_BA_RSP
3660 *--------------------------------------------------------------------------*/
3661
3662typedef PACKED_PRE struct PACKED_POST
3663{
3664 /*success or failure */
3665 tANI_U32 status;
3666
3667 /* Dialog token */
3668 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303669
Jeff Johnson295189b2012-06-20 16:38:30 -07003670} tAddBARspParams, *tpAddBARspParams;
3671
3672typedef PACKED_PRE struct PACKED_POST
3673{
3674 tHalMsgHeader header;
3675 tAddBARspParams addBARspParams;
3676} tAddBARspMsg, *tpAddBARspMsg;
3677
3678
3679/*---------------------------------------------------------------------------
3680 * WLAN_HAL_TRIGGER_BA_REQ
3681 *--------------------------------------------------------------------------*/
3682
3683
3684typedef struct sAddBaInfo
3685{
3686 tANI_U16 fBaEnable : 1;
3687 tANI_U16 startingSeqNum: 12;
3688 tANI_U16 reserved : 3;
3689}tAddBaInfo, *tpAddBaInfo;
3690
3691typedef struct sTriggerBaRspCandidate
3692{
3693 tSirMacAddr staAddr;
3694 tAddBaInfo baInfo[STACFG_MAX_TC];
3695}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3696
3697typedef struct sTriggerBaCandidate
3698{
3699 tANI_U8 staIdx;
3700 tANI_U8 tidBitmap;
3701}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3702
3703typedef PACKED_PRE struct PACKED_POST
3704{
3705 /* Session Id */
3706 tANI_U8 baSessionID;
3707
Dino Mycle8afbac12014-07-04 22:06:17 +05303708 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003709 * Candidate List(tTriggerBaCandidate)
3710 */
3711 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303712
Jeff Johnson295189b2012-06-20 16:38:30 -07003713} tTriggerBAParams, *tpTriggerBAParams;
3714
3715typedef PACKED_PRE struct PACKED_POST
3716{
3717 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303718 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003719} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3720
3721
3722/*---------------------------------------------------------------------------
3723 * WLAN_HAL_TRIGGER_BA_RSP
3724 *--------------------------------------------------------------------------*/
3725
3726typedef PACKED_PRE struct PACKED_POST
3727{
Dino Mycle8afbac12014-07-04 22:06:17 +05303728
Jeff Johnson295189b2012-06-20 16:38:30 -07003729 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303730 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003731
3732 /* success or failure */
3733 tANI_U32 status;
3734
Dino Mycle8afbac12014-07-04 22:06:17 +05303735 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003736 * Rsp Candidate List(tTriggerRspBaCandidate)
3737 */
3738 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303739
Jeff Johnson295189b2012-06-20 16:38:30 -07003740
3741} tTriggerBARspParams, *tpTriggerBARspParams;
3742
3743typedef PACKED_PRE struct PACKED_POST
3744{
3745 tHalMsgHeader header;
3746 tTriggerBARspParams triggerBARspParams;
3747} tTriggerBARspMsg, *tpTriggerBARspMsg;
3748
3749/*---------------------------------------------------------------------------
3750 * WLAN_HAL_DEL_BA_REQ
3751 *--------------------------------------------------------------------------*/
3752
3753typedef PACKED_PRE struct PACKED_POST
3754{
3755 /* Station Index */
3756 tANI_U16 staIdx;
3757
3758 /* TID for which the BA session is being deleted */
3759 tANI_U8 baTID;
3760
3761 /* DELBA direction
3762 1 - Originator
3763 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303764 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003765} tDelBAParams, *tpDelBAParams;
3766
3767typedef PACKED_PRE struct PACKED_POST
3768{
3769 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303770 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003771} tDelBAReqMsg, *tpDelBAReqMsg;
3772
3773/*---------------------------------------------------------------------------
3774 * WLAN_HAL_DEL_BA_RSP
3775 *--------------------------------------------------------------------------*/
3776
3777typedef PACKED_PRE struct PACKED_POST
3778{
3779 /* success or failure */
3780 tANI_U32 status;
3781} tDelBARspParams, *tpDelBARspParams;
3782
3783typedef PACKED_PRE struct PACKED_POST
3784{
3785 tHalMsgHeader header;
3786 tDelBARspParams delBARspParams;
3787} tDelBARspMsg, *tpDelBARspMsg;
3788
3789
Jeff Johnson295189b2012-06-20 16:38:30 -07003790/*---------------------------------------------------------------------------
3791 * WLAN_HAL_TSM_STATS_REQ
3792 *--------------------------------------------------------------------------*/
3793typedef PACKED_PRE struct PACKED_POST
3794{
3795 /* Traffic Id */
3796 tANI_U8 tsmTID;
3797
3798 tSirMacAddr bssId;
3799} tTsmStatsParams, *tpTsmStatsParams;
3800
3801typedef PACKED_PRE struct PACKED_POST
3802{
3803 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303804 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003805} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3806
3807
3808/*---------------------------------------------------------------------------
3809 * WLAN_HAL_TSM_STATS_RSP
3810 *--------------------------------------------------------------------------*/
3811typedef PACKED_PRE struct PACKED_POST
3812{
3813 /*success or failure */
3814 tANI_U32 status;
3815
Dino Mycle8afbac12014-07-04 22:06:17 +05303816 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003817 tANI_U16 UplinkPktQueueDly;
3818
Dino Mycle8afbac12014-07-04 22:06:17 +05303819 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003820 tANI_U16 UplinkPktQueueDlyHist[4];
3821
Dino Mycle8afbac12014-07-04 22:06:17 +05303822 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003823 tANI_U32 UplinkPktTxDly;
3824
Dino Mycle8afbac12014-07-04 22:06:17 +05303825 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003826 tANI_U16 UplinkPktLoss;
3827
Dino Mycle8afbac12014-07-04 22:06:17 +05303828 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003829 tANI_U16 UplinkPktCount;
3830
Dino Mycle8afbac12014-07-04 22:06:17 +05303831 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003832 tANI_U8 RoamingCount;
3833
Dino Mycle8afbac12014-07-04 22:06:17 +05303834 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003835 tANI_U16 RoamingDly;
3836} tTsmStatsRspParams, *tpTsmStatsRspParams;
3837
3838typedef PACKED_PRE struct PACKED_POST
3839{
3840 tHalMsgHeader header;
3841 tTsmStatsRspParams tsmStatsRspParams;
3842} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3843
3844
Jeff Johnson295189b2012-06-20 16:38:30 -07003845/*---------------------------------------------------------------------------
3846 * WLAN_HAL_SET_KEYDONE_MSG
3847 *--------------------------------------------------------------------------*/
3848
3849typedef PACKED_PRE struct PACKED_POST
3850{
3851 /*bssid of the keys */
3852 tANI_U8 bssidx;
3853 tANI_U8 encType;
3854} tSetKeyDoneParams, *tpSetKeyDoneParams;
3855
3856typedef PACKED_PRE struct PACKED_POST
3857{
3858 tHalMsgHeader header;
3859 tSetKeyDoneParams setKeyDoneParams;
3860} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3861
3862/*---------------------------------------------------------------------------
3863 * WLAN_HAL_DOWNLOAD_NV_REQ
3864 *--------------------------------------------------------------------------*/
3865typedef PACKED_PRE struct PACKED_POST
3866{
3867 /* Fragment sequence number of the NV Image. Note that NV Image might not
3868 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303869 * can hence choose to chop the NV blob into multiple fragments starting with
3870 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003871 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3872 * concatenated together by HAL without any padding bytes in between.*/
3873 tANI_U16 fragNumber;
3874
3875 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303876 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003877 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3878 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3879 tANI_U16 isLastFragment;
3880
3881 /* NV Image size (number of bytes) */
3882 tANI_U32 nvImgBufferSize;
3883
3884 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3885 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3886} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3887
3888typedef PACKED_PRE struct PACKED_POST
3889{
3890 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3891 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3892 tHalMsgHeader header;
3893 tHalNvImgDownloadReqParams nvImageReqParams;
3894} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3895
3896/*---------------------------------------------------------------------------
3897 * WLAN_HAL_DOWNLOAD_NV_RSP
3898 *--------------------------------------------------------------------------*/
3899typedef PACKED_PRE struct PACKED_POST
3900{
3901 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3902 * after each fragment */
3903 tANI_U32 status;
3904} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3905
3906typedef PACKED_PRE struct PACKED_POST
3907{
3908 tHalMsgHeader header;
3909 tHalNvImgDownloadRspParams nvImageRspParams;
3910} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3911
3912/*---------------------------------------------------------------------------
3913 * WLAN_HAL_STORE_NV_IND
3914 *--------------------------------------------------------------------------*/
3915typedef PACKED_PRE struct PACKED_POST
3916{
3917 /* NV Item */
3918 eNvTable tableID;
3919
3920 /* Size of NV Blob */
3921 tANI_U32 nvBlobSize;
3922
Dino Mycle8afbac12014-07-04 22:06:17 +05303923 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003924 * NV blob i.e. uint8[nvBlobSize] */
3925} tHalNvStoreParams, *tpHalNvStoreParams;
3926
3927typedef PACKED_PRE struct PACKED_POST
3928{
3929 /* Note: The length specified in tHalNvStoreInd messages should be
3930 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3931 tHalMsgHeader header;
3932 tHalNvStoreParams nvStoreParams;
3933} tHalNvStoreInd, *tpHalNvStoreInd;
3934
3935/* End of Block Ack Related Parameters */
3936
3937/*---------------------------------------------------------------------------
3938 * WLAN_HAL_MIC_FAILURE_IND
3939 *--------------------------------------------------------------------------*/
3940
3941#define SIR_CIPHER_SEQ_CTR_SIZE 6
3942
3943typedef PACKED_PRE struct PACKED_POST
3944{
Dino Mycle8afbac12014-07-04 22:06:17 +05303945 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003946 tSirMacAddr taMacAddr; //transmitter address
3947 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303948 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003949 tANI_U8 IV1; // first byte of IV
3950 tANI_U8 keyId; // second byte of IV
3951 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3952 tSirMacAddr rxMacAddr; // receive address
3953} tSirMicFailureInfo, *tpSirMicFailureInfo;
3954
3955/* Definition for MIC failure indication
3956 MAC reports this each time a MIC failure occures on Rx TKIP packet
3957 */
3958typedef PACKED_PRE struct PACKED_POST
3959{
3960 tSirMacAddr bssId; // BSSID
3961 tSirMicFailureInfo info;
3962} tSirMicFailureInd, *tpSirMicFailureInd;
3963
3964typedef PACKED_PRE struct PACKED_POST
3965{
3966 tHalMsgHeader header;
3967 tSirMicFailureInd micFailureInd;
3968} tMicFailureIndMsg, *tpMicFailureIndMsg;
3969
Mohit Khanna4a70d262012-09-11 16:30:12 -07003970typedef PACKED_PRE struct PACKED_POST
3971{
3972 tANI_U16 opMode;
3973 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303974}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003975
3976typedef PACKED_PRE struct PACKED_POST
3977{
3978 tHalMsgHeader header;
3979 tUpdateVHTOpMode updateVhtOpMode;
3980} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3981
3982typedef PACKED_PRE struct PACKED_POST
3983{
3984 tANI_U32 status;
3985} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3986
3987typedef PACKED_PRE struct PACKED_POST
3988{
3989 tHalMsgHeader header;
3990 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3991} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3992
Jeff Johnson295189b2012-06-20 16:38:30 -07003993/*---------------------------------------------------------------------------
3994 * WLAN_HAL_UPDATE_BEACON_REQ
3995 *--------------------------------------------------------------------------*/
3996typedef PACKED_PRE struct PACKED_POST
3997{
3998
3999 tANI_U8 bssIdx;
4000
4001 //shortPreamble mode. HAL should update all the STA rates when it
4002 //receives this message
4003 tANI_U8 fShortPreamble;
4004 //short Slot time.
4005 tANI_U8 fShortSlotTime;
4006 //Beacon Interval
4007 tANI_U16 beaconInterval;
4008 //Protection related
4009 tANI_U8 llaCoexist;
4010 tANI_U8 llbCoexist;
4011 tANI_U8 llgCoexist;
4012 tANI_U8 ht20MhzCoexist;
4013 tANI_U8 llnNonGFCoexist;
4014 tANI_U8 fLsigTXOPProtectionFullSupport;
4015 tANI_U8 fRIFSMode;
4016
4017 tANI_U16 paramChangeBitmap;
4018}tUpdateBeaconParams, *tpUpdateBeaconParams;
4019
4020
4021typedef PACKED_PRE struct PACKED_POST
4022{
4023 tHalMsgHeader header;
4024 tUpdateBeaconParams updateBeaconParam;
4025} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
4026
4027/*---------------------------------------------------------------------------
4028 * WLAN_HAL_UPDATE_BEACON_RSP
4029 *--------------------------------------------------------------------------*/
4030typedef PACKED_PRE struct PACKED_POST
4031{
4032 tANI_U32 status;
4033} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
4034
4035typedef PACKED_PRE struct PACKED_POST
4036{
4037 tHalMsgHeader header;
4038 tUpdateBeaconRspParams updateBeaconRspParam;
4039} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
4040
4041/*---------------------------------------------------------------------------
4042 * WLAN_HAL_SEND_BEACON_REQ
4043 *--------------------------------------------------------------------------*/
4044typedef PACKED_PRE struct PACKED_POST
4045{
4046 tANI_U32 beaconLength; //length of the template.
4047 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
4048 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004049 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07004050 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
4051}tSendBeaconParams, *tpSendBeaconParams;
4052
4053
4054typedef PACKED_PRE struct PACKED_POST
4055{
4056 tHalMsgHeader header;
4057 tSendBeaconParams sendBeaconParam;
4058}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
4059
4060/*---------------------------------------------------------------------------
4061 * WLAN_HAL_SEND_BEACON_RSP
4062 *--------------------------------------------------------------------------*/
4063typedef PACKED_PRE struct PACKED_POST
4064{
4065 tANI_U32 status;
4066} tSendBeaconRspParams, *tpSendBeaconRspParams;
4067
4068typedef PACKED_PRE struct PACKED_POST
4069{
4070 tHalMsgHeader header;
4071 tSendBeaconRspParams sendBeaconRspParam;
4072} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4073
4074#ifdef FEATURE_5GHZ_BAND
4075
4076/*---------------------------------------------------------------------------
4077 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4078 *--------------------------------------------------------------------------*/
4079typedef PACKED_PRE struct PACKED_POST
4080{
4081 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304082 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004083}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4084
4085
4086typedef PACKED_PRE struct PACKED_POST
4087{
4088 /* Link Parameters */
4089 tSirEnableRadarInfoType EnableRadarInfo;
4090}tEnableRadarReqParams, *tpEnableRadarReqParams;
4091
4092typedef PACKED_PRE struct PACKED_POST
4093{
4094 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304095 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004096}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4097
4098/*---------------------------------------------------------------------------
4099 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4100 *--------------------------------------------------------------------------*/
4101
4102typedef PACKED_PRE struct PACKED_POST
4103{
4104 /* Link Parameters */
4105 tSirMacAddr BSSID;
4106 /* success or failure */
4107 tANI_U32 status;
4108}tEnableRadarRspParams, *tpEnableRadarRspParams;
4109
4110typedef PACKED_PRE struct PACKED_POST
4111{
4112 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304113 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004114}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4115
4116/*---------------------------------------------------------------------------
4117 *WLAN_HAL_RADAR_DETECT_INTR_IND
4118 *--------------------------------------------------------------------------*/
4119
4120typedef PACKED_PRE struct PACKED_POST
4121{
4122 tANI_U8 radarDetChannel;
4123}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4124
4125typedef PACKED_PRE struct PACKED_POST
4126{
4127 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304128 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004129}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4130
4131/*---------------------------------------------------------------------------
4132 *WLAN_HAL_RADAR_DETECT_IND
4133 *-------------------------------------------------------------------------*/
4134typedef PACKED_PRE struct PACKED_POST
4135{
4136 /*channel number in which the RADAR detected*/
4137 tANI_U8 channelNumber;
4138
4139 /*RADAR pulse width*/
4140 tANI_U16 radarPulseWidth; // in usecond
4141
4142 /*Number of RADAR pulses */
4143 tANI_U16 numRadarPulse;
4144}tRadarDetectIndParams,*tpRadarDetectIndParams;
4145
4146typedef PACKED_PRE struct PACKED_POST
4147{
4148 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304149 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004150}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4151
4152
4153/*---------------------------------------------------------------------------
4154 *WLAN_HAL_GET_TPC_REPORT_REQ
4155 *-------------------------------------------------------------------------*/
4156typedef PACKED_PRE struct PACKED_POST
4157{
4158 tSirMacAddr sta;
4159 tANI_U8 dialogToken;
4160 tANI_U8 txpower;
4161}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4162
4163
4164typedef PACKED_PRE struct PACKED_POST
4165{
4166 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304167 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004168}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4169
4170/*---------------------------------------------------------------------------
4171 * WLAN_HAL_GET_TPC_REPORT_RSP
4172 *--------------------------------------------------------------------------*/
4173
4174typedef PACKED_PRE struct PACKED_POST
4175{
4176 /* success or failure */
4177 tANI_U32 status;
4178}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4179
4180typedef PACKED_PRE struct PACKED_POST
4181{
4182 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304183 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004184}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4185
4186#endif
4187
Jeff Johnson295189b2012-06-20 16:38:30 -07004188/*---------------------------------------------------------------------------
4189 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4190 *-------------------------------------------------------------------------*/
4191typedef PACKED_PRE struct PACKED_POST
4192{
4193 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4194 tANI_U32 probeRespTemplateLen;
4195 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4196 tSirMacAddr bssId;
4197
4198}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4199
4200typedef PACKED_PRE struct PACKED_POST
4201{
4202 tHalMsgHeader header;
4203 tSendProbeRespReqParams sendProbeRespReqParams ;
4204}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4205
4206/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304207 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004208 *--------------------------------------------------------------------------*/
4209
4210typedef PACKED_PRE struct PACKED_POST
4211{
4212 /* success or failure */
4213 tANI_U32 status;
4214}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4215
4216typedef PACKED_PRE struct PACKED_POST
4217{
4218 tHalMsgHeader header;
4219 tSendProbeRespRspParams sendProbeRespRspParams;
4220}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4221
4222
4223/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304224 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004225 *--------------------------------------------------------------------------*/
4226
4227typedef PACKED_PRE struct PACKED_POST
4228{
4229 /* success or failure */
4230 tANI_U32 status;
4231}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4232
4233typedef PACKED_PRE struct PACKED_POST
4234{
4235 tHalMsgHeader header;
4236 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4237}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4238
4239/*---------------------------------------------------------------------------
4240 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4241 *--------------------------------------------------------------------------*/
4242
4243typedef PACKED_PRE struct PACKED_POST
4244{
4245 tANI_U16 assocId;
4246 tANI_U16 staId;
4247 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4248 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004249 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304250 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004251
4252}tDeleteStaContextParams, *tpDeleteStaContextParams;
4253
4254
4255typedef PACKED_PRE struct PACKED_POST
4256{
4257 tHalMsgHeader header;
4258 tDeleteStaContextParams deleteStaContextParams;
4259}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4260
Anand Kumar012623a2013-01-11 17:00:00 -08004261typedef PACKED_PRE struct PACKED_POST
4262{
4263 tHalMsgHeader header;
4264 tANI_U8 assocId;
4265 tANI_U8 staIdx;
4266 tANI_U8 bssIdx;
4267 tANI_U8 uReasonCode;
4268 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004269#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4270 tANI_U8 staAddr[6];
4271 tANI_U8 bssId[6];
4272#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004273} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004274
4275/*---------------------------------------------------------------------------
4276 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4277 *--------------------------------------------------------------------------*/
4278
4279typedef PACKED_PRE struct PACKED_POST
4280{
4281 tBtAmpEventType btAmpEventType;
4282
4283}tBtAmpEventParams, *tpBtAmpEventParams;
4284
4285
4286
4287typedef PACKED_PRE struct PACKED_POST
4288{
4289 tHalMsgHeader header;
4290 tBtAmpEventParams btAmpEventParams;
4291}tBtAmpEventMsg, *tpBtAmpEventMsg;
4292
4293/*---------------------------------------------------------------------------
4294*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4295*--------------------------------------------------------------------------*/
4296
4297typedef PACKED_PRE struct PACKED_POST
4298{
4299 /* success or failure */
4300 tANI_U32 status;
4301}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4302
4303typedef PACKED_PRE struct PACKED_POST
4304{
4305 tHalMsgHeader header;
4306 tBtAmpEventRspParams btAmpEventRspParams;
4307}tBtAmpEventRsp, *tpBtAmpEventRsp;
4308
4309
4310/*---------------------------------------------------------------------------
4311 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4312 *--------------------------------------------------------------------------*/
4313
4314typedef PACKED_PRE struct PACKED_POST
4315{
4316 // Station Index. originates from HAL
4317 tANI_U8 ucSTAId;
4318
4319 // TID for which the transmit queue is being flushed
4320 tANI_U8 ucTid;
4321
4322}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4323
4324
4325typedef PACKED_PRE struct PACKED_POST
4326{
4327 tHalMsgHeader header;
4328 tTlHalFlushAcParams tlHalFlushAcParam;
4329}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4330
4331/*---------------------------------------------------------------------------
4332*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4333*--------------------------------------------------------------------------*/
4334
4335typedef PACKED_PRE struct PACKED_POST
4336{
4337 // Station Index. originates from HAL
4338 tANI_U8 ucSTAId;
4339
4340 // TID for which the transmit queue is being flushed
4341 tANI_U8 ucTid;
4342
4343 /* success or failure */
4344 tANI_U32 status;
4345}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4346
4347typedef PACKED_PRE struct PACKED_POST
4348{
4349 tHalMsgHeader header;
4350 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4351}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4352
4353/*---------------------------------------------------------------------------
4354 * WLAN_HAL_ENTER_IMPS_REQ
4355 *--------------------------------------------------------------------------*/
4356typedef PACKED_PRE struct PACKED_POST
4357{
4358 tHalMsgHeader header;
4359} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4360
4361/*---------------------------------------------------------------------------
4362 * WLAN_HAL_EXIT_IMPS_REQ
4363 *--------------------------------------------------------------------------*/
4364typedef PACKED_PRE struct PACKED_POST
4365{
4366 tHalMsgHeader header;
4367} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4368
4369/*---------------------------------------------------------------------------
4370 * WLAN_HAL_ENTER_BMPS_REQ
4371 *--------------------------------------------------------------------------*/
4372
4373typedef PACKED_PRE struct PACKED_POST
4374{
4375 tANI_U8 bssIdx;
4376 //TBTT value derived from the last beacon
4377#ifndef BUILD_QWPTTSTATIC
4378 tANI_U64 tbtt;
4379#endif
4380 tANI_U8 dtimCount;
4381 //DTIM period given to HAL during association may not be valid,
4382 //if association is based on ProbeRsp instead of beacon.
4383 tANI_U8 dtimPeriod;
4384
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004385 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004386 tANI_U32 rssiFilterPeriod;
4387 tANI_U32 numBeaconPerRssiAverage;
4388 tANI_U8 bRssiFilterEnable;
4389
4390} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4391
4392
4393typedef PACKED_PRE struct PACKED_POST
4394{
4395 tHalMsgHeader header;
4396 tHalEnterBmpsReqParams enterBmpsReq;
4397} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4398
4399/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304400 * WLAN_HAL_PRINT_REG_INFO_IND
4401 *--------------------------------------------------------------------------*/
4402typedef PACKED_PRE struct PACKED_POST
4403{
4404 uint32 regAddr;
4405 uint32 regValue;
4406} tHalRegDebugInfo, *tpRegDebugInfo;
4407
4408typedef PACKED_PRE struct PACKED_POST
4409{
4410 uint32 regCount;
4411 uint32 scenario;
4412 uint32 reasonCode;
4413} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4414
4415typedef PACKED_PRE struct PACKED_POST
4416{
4417 tHalMsgHeader header;
4418 tHalRegDebugInfoParams regParams;
4419} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4420
4421/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004422 * WLAN_HAL_EXIT_BMPS_REQ
4423 *--------------------------------------------------------------------------*/
4424typedef PACKED_PRE struct PACKED_POST
4425{
4426 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004427 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004428} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4429
4430typedef PACKED_PRE struct PACKED_POST
4431{
4432 tHalMsgHeader header;
4433 tHalExitBmpsReqParams exitBmpsReqParams;
4434} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4435
4436/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004437 * WLAN_HAL_MISSED_BEACON_IND
4438 *--------------------------------------------------------------------------*/
4439typedef PACKED_PRE struct PACKED_POST
4440{
4441 tANI_U8 bssIdx;
4442} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4443
4444typedef PACKED_PRE struct PACKED_POST
4445{
4446 tHalMsgHeader header;
4447 tHalMissedBeaconIndParams missedBeaconIndParams;
4448} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4449
4450/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004451 * WLAN_HAL_ADD_BCN_FILTER_REQ
4452 *--------------------------------------------------------------------------*/
4453/* Beacon Filtering data structures */
4454typedef PACKED_PRE struct PACKED_POST
4455{
4456 tANI_U8 offset;
4457 tANI_U8 value;
4458 tANI_U8 bitMask;
4459 tANI_U8 ref;
4460} tEidByteInfo, *tpEidByteInfo;
4461
Dino Mycle8afbac12014-07-04 22:06:17 +05304462typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004463{
4464 tANI_U16 capabilityInfo;
4465 tANI_U16 capabilityMask;
4466 tANI_U16 beaconInterval;
4467 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004468 tANI_U8 bssIdx;
4469 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004470} tBeaconFilterMsg, *tpBeaconFilterMsg;
4471
4472/* The above structure would be followed by multiple of below mentioned structure */
4473typedef PACKED_PRE struct PACKED_POST
4474{
4475 tANI_U8 elementId;
4476 tANI_U8 checkIePresence;
4477 tEidByteInfo byte;
4478} tBeaconFilterIe, *tpBeaconFilterIe;
4479
4480typedef PACKED_PRE struct PACKED_POST
4481{
4482 tHalMsgHeader header;
4483 tBeaconFilterMsg addBcnFilterParams;
4484} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4485
4486/*---------------------------------------------------------------------------
4487 * WLAN_HAL_REM_BCN_FILTER_REQ
4488 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304489typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004490{
4491 tANI_U8 ucIeCount;
4492 tANI_U8 ucRemIeId[1];
4493} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4494
4495typedef PACKED_PRE struct PACKED_POST
4496{
4497 tHalMsgHeader header;
4498 tRemBeaconFilterMsg remBcnFilterParams;
4499} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4500
4501/*---------------------------------------------------------------------------
4502 * WLAN_HAL_HOST_OFFLOAD_REQ
4503 *--------------------------------------------------------------------------*/
4504#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4505#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4506#define HAL_IPV6_NS_OFFLOAD 2
4507#define HAL_IPV6_ADDR_LEN 16
4508#define HAL_MAC_ADDR_LEN 6
4509#define HAL_OFFLOAD_DISABLE 0
4510#define HAL_OFFLOAD_ENABLE 1
4511#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004512#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004513#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004514#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004515
4516typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4517{
4518 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4519 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4520 //Only support 2 possible Network Advertisement IPv6 address
4521 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4522 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4523 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4524 tANI_U8 srcIPv6AddrValid : 1;
4525 tANI_U8 targetIPv6Addr1Valid : 1;
4526 tANI_U8 targetIPv6Addr2Valid : 1;
4527 tANI_U8 reserved1 : 5;
4528 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004529 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004530 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004531} tHalNSOffloadParams;
4532
4533typedef PACKED_PRE struct PACKED_POST
4534{
4535 tANI_U8 offloadType;
4536 tANI_U8 enableOrDisable;
4537 PACKED_PRE union PACKED_POST
4538 {
4539 tANI_U8 hostIpv4Addr [4];
4540 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4541 } params;
4542} tHalHostOffloadReq, *tpHalHostOffloadReq;
4543
4544typedef PACKED_PRE struct PACKED_POST
4545{
4546 tHalMsgHeader header;
4547 tHalHostOffloadReq hostOffloadParams;
4548 tHalNSOffloadParams nsOffloadParams;
4549} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4550
Leo Chang397deb72013-08-22 11:33:16 -07004551
4552#ifdef FEATURE_WLAN_LPHB
4553typedef enum
4554{
4555 WIFI_HB_SET_ENABLE = 0x0001,
4556 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4557 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4558 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4559 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4560 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4561}tLowPowerHeartBeatCmdType ;
4562
4563#define MAX_FLITER_SIZE 64
4564/*---------------------------------------------------------------------------
4565 *FEATURE_WLAN_LPHB REQ
4566 *--------------------------------------------------------------------------*/
4567typedef PACKED_PRE struct PACKED_POST
4568{
4569 uint32 hostIpv4Addr;
4570 uint32 destIpv4Addr;
4571 uint16 hostPort;
4572 uint16 destPort;
4573 uint16 timeOutSec; // in seconds
4574 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004575 uint16 timePeriodSec; // in seconds
4576 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004577} tlowPowerHeartBeatParamsTcpStruct;
4578
4579typedef PACKED_PRE struct PACKED_POST
4580{
4581 uint32 hostIpv4Addr;
4582 uint32 destIpv4Addr;
4583 uint16 hostPort;
4584 uint16 destPort;
4585 uint16 timePeriodSec;// in seconds
4586 uint16 timeOutSec; // in seconds
4587 tSirMacAddr gatewayMacAddr;
4588} tlowPowerHeartBeatParamsUdpStruct;
4589
4590typedef PACKED_PRE struct PACKED_POST
4591{
4592 uint32 offset;
4593 uint32 filterLength;
4594 uint8 filter[MAX_FLITER_SIZE];
4595} tlowPowerHeartBeatFilterStruct;
4596
4597typedef PACKED_PRE struct PACKED_POST
4598{
4599 uint8 heartBeatEnable;
4600 uint8 heartBeatType; //TCP or UDP
4601} tlowPowerHeartBeatEnableStruct;
4602
4603typedef PACKED_PRE struct PACKED_POST
4604{
4605 uint8 dummy;
4606} tlowPowerHeartBeatNetworkInfoStruct;
4607
4608
4609typedef PACKED_PRE struct PACKED_POST
4610{
4611 uint8 sessionIdx;
4612 uint16 lowPowerHeartBeatCmdType;
4613 PACKED_PRE union PACKED_PRO
4614 {
4615 tlowPowerHeartBeatEnableStruct control;
4616 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4617 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4618 tlowPowerHeartBeatParamsUdpStruct udpParams;
4619 tlowPowerHeartBeatNetworkInfoStruct info;
4620 }options;
4621} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4622
4623
4624typedef PACKED_PRE struct PACKED_POST
4625{
4626 tHalMsgHeader header;
4627 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4628} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4629
4630/*---------------------------------------------------------------------------
4631 * FEATURE_WLAN_LPHB RSP
4632 *--------------------------------------------------------------------------*/
4633
4634typedef PACKED_PRE struct PACKED_POST
4635{
4636 /* success or failure */
4637 uint8 sessionIdx;
4638 uint32 status;
4639 uint16 lowPowerHeartBeatCmdType;
4640}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4641
4642typedef PACKED_PRE struct PACKED_POST
4643{
4644 tHalMsgHeader header;
4645 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4646}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4647
4648
4649/*---------------------------------------------------------------------------
4650 * FEATURE_WLAN_LPHB IND
4651 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004652#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4653#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4654
4655#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4656#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004657#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004658
Kumar Anandea78e792013-10-10 23:47:01 -07004659
4660#define WIFI_LPHB_PROTO_UDP 0x01
4661#define WIFI_LPHB_PROTO_TCP 0x02
4662
Leo Chang397deb72013-08-22 11:33:16 -07004663typedef PACKED_PRE struct PACKED_POST
4664{
4665 uint8 bssIdx;
4666 uint8 sessionIdx;
4667 uint8 protocolType; /*TCP or UDP*/
4668 uint8 eventReason;
4669
4670}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4671
4672typedef PACKED_PRE struct PACKED_POST
4673{
4674 tHalMsgHeader header;
4675 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4676}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4677
4678#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004679
4680#ifdef FEATURE_WLAN_BATCH_SCAN
4681
4682/*---------------------------------------------------------------------------
4683 * WLAN_HAL_BATCHSCAN_SET_REQ
4684 *--------------------------------------------------------------------------*/
4685typedef PACKED_PRE struct PACKED_POST
4686{
4687 /* Scan Frerquency - default to 30Sec*/
4688 tANI_U32 scanInterval;
4689 tANI_U32 numScan2Batch;
4690 tANI_U32 bestNetworks;
4691 tANI_U8 rfBand;
4692 tANI_U8 rtt;
4693} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4694
4695typedef PACKED_PRE struct PACKED_POST
4696{
4697 tHalMsgHeader header;
4698 tHalBatchScanSetParams batchScanParams;
4699} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4700
4701/*---------------------------------------------------------------------------
4702 * WLAN_HAL_BATCHSCAN_SET_RSP
4703 *--------------------------------------------------------------------------*/
4704typedef PACKED_PRE struct PACKED_POST
4705{
4706 tANI_U32 supportedMscan;
4707} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4708
4709typedef PACKED_PRE struct PACKED_POST
4710{
4711 tHalMsgHeader header;
4712 tHalBatchScanSetRspParam setBatchScanRspParam;
4713} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4714
4715/*---------------------------------------------------------------------------
4716* WLAN_HAL_BATCHSCAN_STOP_IND
4717*--------------------------------------------------------------------------*/
4718typedef PACKED_PRE struct PACKED_POST
4719{
4720 tANI_U32 param;
4721} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4722
4723typedef PACKED_PRE struct PACKED_POST
4724{
4725 tHalMsgHeader header;
4726 tHalBatchScanStopIndParam param;
4727} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4728
4729/*---------------------------------------------------------------------------
4730* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4731*--------------------------------------------------------------------------*/
4732typedef PACKED_PRE struct PACKED_POST
4733{
4734 tANI_U32 param;
4735} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4736
4737typedef PACKED_PRE struct PACKED_POST
4738{
4739 tHalMsgHeader header;
4740 tHalBatchScanTriggerResultParam param;
4741} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4742
4743/*---------------------------------------------------------------------------
4744 * WLAN_HAL_BATCHSCAN_GET_RSP
4745 *--------------------------------------------------------------------------*/
4746typedef PACKED_PRE struct PACKED_POST
4747{
4748 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004749 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004750 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304751 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004752 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4753 tANI_U32 timestamp;
4754} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4755
4756typedef PACKED_PRE struct PACKED_POST
4757{
4758 tANI_U32 scanId; /* Scan List ID. */
4759 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4760 tANI_U32 numNetworksInScanList;
4761 /* Variable data ptr: Number of AP in Scan List */
4762 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4763 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4764 tANI_U8 scanList[1];
4765} tHalBatchScanList, *tpHalBatchScanList;
4766
4767typedef PACKED_PRE struct PACKED_POST
4768{
4769 tANI_U32 timestamp;
4770 tANI_U32 numScanLists;
4771 boolean isLastResult;
4772 /* Variable Data ptr: Number of Scan Lists*/
4773 /* following isLastResult is data of type tHalBatchScanList
4774 * of sizeof(tHalBatchScanList) * numScanLists*/
4775 tANI_U8 scanResults[1];
4776} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4777
4778typedef PACKED_PRE struct PACKED_POST
4779{
4780 tHalMsgHeader header;
4781 tHalBatchScanResultIndParam resultIndMsgParam;
4782} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4783
4784#endif
4785
Jeff Johnson295189b2012-06-20 16:38:30 -07004786/*---------------------------------------------------------------------------
4787 * WLAN_HAL_KEEP_ALIVE_REQ
4788 *--------------------------------------------------------------------------*/
4789/* Packet Types. */
4790#define HAL_KEEP_ALIVE_NULL_PKT 1
4791#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4792
4793/* Enable or disable keep alive */
4794#define HAL_KEEP_ALIVE_DISABLE 0
4795#define HAL_KEEP_ALIVE_ENABLE 1
4796
4797/* Keep Alive request. */
4798typedef PACKED_PRE struct PACKED_POST
4799{
4800 tANI_U8 packetType;
4801 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304802 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004803 tHalIpv4Addr destIpv4Addr;
4804 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004805 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004806} tHalKeepAliveReq, *tpHalKeepAliveReq;
4807
4808typedef PACKED_PRE struct PACKED_POST
4809{
4810 tHalMsgHeader header;
4811 tHalKeepAliveReq KeepAliveParams;
4812} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4813
4814/*---------------------------------------------------------------------------
4815 * WLAN_HAL_SET_RSSI_THRESH_REQ
4816 *--------------------------------------------------------------------------*/
4817typedef PACKED_PRE struct PACKED_POST
4818{
4819 tANI_S8 ucRssiThreshold1 : 8;
4820 tANI_S8 ucRssiThreshold2 : 8;
4821 tANI_S8 ucRssiThreshold3 : 8;
4822 tANI_U8 bRssiThres1PosNotify : 1;
4823 tANI_U8 bRssiThres1NegNotify : 1;
4824 tANI_U8 bRssiThres2PosNotify : 1;
4825 tANI_U8 bRssiThres2NegNotify : 1;
4826 tANI_U8 bRssiThres3PosNotify : 1;
4827 tANI_U8 bRssiThres3NegNotify : 1;
4828 tANI_U8 bReserved10 : 2;
4829} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304830
Jeff Johnson295189b2012-06-20 16:38:30 -07004831typedef PACKED_PRE struct PACKED_POST
4832{
4833 tHalMsgHeader header;
4834 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004835} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004836
4837/*---------------------------------------------------------------------------
4838 * WLAN_HAL_ENTER_UAPSD_REQ
4839 *--------------------------------------------------------------------------*/
4840typedef PACKED_PRE struct PACKED_POST
4841{
4842 tANI_U8 bkDeliveryEnabled:1;
4843 tANI_U8 beDeliveryEnabled:1;
4844 tANI_U8 viDeliveryEnabled:1;
4845 tANI_U8 voDeliveryEnabled:1;
4846 tANI_U8 bkTriggerEnabled:1;
4847 tANI_U8 beTriggerEnabled:1;
4848 tANI_U8 viTriggerEnabled:1;
4849 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004850 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004851} tUapsdReqParams, *tpUapsdReqParams;
4852
4853typedef PACKED_PRE struct PACKED_POST
4854{
4855 tHalMsgHeader header;
4856 tUapsdReqParams enterUapsdParams;
4857} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4858
4859/*---------------------------------------------------------------------------
4860 * WLAN_HAL_EXIT_UAPSD_REQ
4861 *--------------------------------------------------------------------------*/
4862typedef PACKED_PRE struct PACKED_POST
4863{
4864 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004865 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004866} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4867
Kumar Anandea78e792013-10-10 23:47:01 -07004868#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4869#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004870/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004871 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4872 *--------------------------------------------------------------------------*/
4873typedef PACKED_PRE struct PACKED_POST
4874{
4875 tANI_U32 selfStaIdx:8;
4876 tANI_U32 ucPtrnId:8; // Pattern ID
4877 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4878 tANI_U32 uPtrnIntervalMs; // In msec
4879 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4880} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4881
4882typedef PACKED_PRE struct PACKED_POST
4883{
4884 tHalMsgHeader header;
4885 tHalAddPeriodicTxPtrn ptrnParams;
4886} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4887
4888/*---------------------------------------------------------------------------
4889 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4890 *--------------------------------------------------------------------------*/
4891typedef PACKED_PRE struct PACKED_POST
4892{
4893 tANI_U32 selfStaIdx:8;
4894 tANI_U32 rsvd:24;
4895 /* Bitmap of pattern IDs that needs to be deleted */
4896 tANI_U32 uPatternIdBitmap;
4897} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4898
4899typedef PACKED_PRE struct PACKED_POST
4900{
4901 tHalMsgHeader header;
4902 tHalDelPeriodicTxPtrn ptrnParams;
4903} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4904
4905/*---------------------------------------------------------------------------
4906 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4907 *--------------------------------------------------------------------------*/
4908typedef PACKED_PRE struct PACKED_POST
4909{
4910 /* Type of Failure indication */
4911 tANI_U32 bssIdx:8;
4912 tANI_U32 selfStaIdx:8;
4913 tANI_U32 rsvd:16;
4914 tANI_U32 status;
4915 tANI_U32 patternIdBitmap;
4916} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4917
4918typedef PACKED_PRE struct PACKED_POST
4919{
4920 tHalMsgHeader header;
4921 tHalPeriodicTxPtrnFwInd fwIndParams;
4922} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4923
4924/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004925 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4926 *--------------------------------------------------------------------------*/
4927#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4928#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4929
4930typedef PACKED_PRE struct PACKED_POST
4931{
4932 tANI_U8 ucPatternId; // Pattern ID
4933 // Pattern byte offset from beginning of the 802.11 packet to start of the
4934 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304935 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004936 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4937 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4938 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4939 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4940 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4941 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004942 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004943} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4944
4945typedef PACKED_PRE struct PACKED_POST
4946{
4947 tHalMsgHeader header;
4948 tHalWowlAddBcastPtrn ptrnParams;
4949} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304950
Jeff Johnsone7245742012-09-05 17:12:55 -07004951
4952
Jeff Johnson295189b2012-06-20 16:38:30 -07004953/*---------------------------------------------------------------------------
4954 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4955 *--------------------------------------------------------------------------*/
4956typedef PACKED_PRE struct PACKED_POST
4957{
4958 /* Pattern ID of the wakeup pattern to be deleted */
4959 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004960 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004961} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4962
4963typedef PACKED_PRE struct PACKED_POST
4964{
4965 tHalMsgHeader header;
4966 tHalWowlDelBcastPtrn ptrnParams;
4967} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4968
4969/*---------------------------------------------------------------------------
4970 * WLAN_HAL_ENTER_WOWL_REQ
4971 *--------------------------------------------------------------------------*/
4972typedef PACKED_PRE struct PACKED_POST
4973{
4974 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304975 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004976
4977 /* Magic pattern */
4978 tSirMacAddr magicPtrn;
4979
Dino Mycle8afbac12014-07-04 22:06:17 +05304980 /* Enables/disables packet pattern filtering in firmware.
4981 Enabling this flag enables broadcast pattern matching
4982 in Firmware. If unicast pattern matching is also desired,
4983 ucUcastPatternFilteringEnable flag must be set tot true
4984 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004985 */
4986 tANI_U8 ucPatternFilteringEnable;
4987
Dino Mycle8afbac12014-07-04 22:06:17 +05304988 /* Enables/disables unicast packet pattern filtering.
4989 This flag specifies whether we want to do pattern match
4990 on unicast packets as well and not just broadcast packets.
4991 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004992 (main controlling flag) is set to false
4993 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304994 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004995
Dino Mycle8afbac12014-07-04 22:06:17 +05304996 /* This configuration is valid only when magicPktEnable=1.
4997 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004998 * Channel Switch Action Frame.
4999 */
5000 tANI_U8 ucWowChnlSwitchRcv;
5001
Dino Mycle8afbac12014-07-04 22:06:17 +05305002 /* This configuration is valid only when magicPktEnable=1.
5003 * It requests hardware to wake up when it receives the
5004 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005005 */
5006 tANI_U8 ucWowDeauthRcv;
5007
Dino Mycle8afbac12014-07-04 22:06:17 +05305008 /* This configuration is valid only when magicPktEnable=1.
5009 * It requests hardware to wake up when it receives the
5010 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07005011 */
5012 tANI_U8 ucWowDisassocRcv;
5013
Dino Mycle8afbac12014-07-04 22:06:17 +05305014 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005015 * It requests hardware to wake up when it has missed
5016 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05305017 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07005018 */
5019 tANI_U8 ucWowMaxMissedBeacons;
5020
Dino Mycle8afbac12014-07-04 22:06:17 +05305021 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07005022 * This is a timeout value in units of microsec. It requests
5023 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05305024 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07005025 */
5026 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05305027
Jeff Johnson295189b2012-06-20 16:38:30 -07005028 /* This configuration directs the WoW packet filtering to look for EAP-ID
5029 * requests embedded in EAPOL frames and use this as a wake source.
5030 */
5031 tANI_U8 ucWoWEAPIDRequestEnable;
5032
5033 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
5034 * requests and use this as a wake source.
5035 */
5036 tANI_U8 ucWoWEAPOL4WayEnable;
5037
5038 /* This configuration allows a host wakeup on an network scan offload match.
5039 */
5040 tANI_U8 ucWowNetScanOffloadMatch;
5041
5042 /* This configuration allows a host wakeup on any GTK rekeying error.
5043 */
5044 tANI_U8 ucWowGTKRekeyError;
5045
5046 /* This configuration allows a host wakeup on BSS connection loss.
5047 */
5048 tANI_U8 ucWoWBSSConnLoss;
5049
Jeff Johnsone7245742012-09-05 17:12:55 -07005050 tANI_U8 bssIdx;
5051
Jeff Johnson295189b2012-06-20 16:38:30 -07005052} tHalWowlEnterParams, *tpHalWowlEnterParams;
5053
5054typedef PACKED_PRE struct PACKED_POST
5055{
5056 tHalMsgHeader header;
5057 tHalWowlEnterParams enterWowlParams;
5058} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5059
5060/*---------------------------------------------------------------------------
5061 * WLAN_HAL_EXIT_WOWL_REQ
5062 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005063
Jeff Johnson295189b2012-06-20 16:38:30 -07005064typedef PACKED_PRE struct PACKED_POST
5065{
Jeff Johnsone7245742012-09-05 17:12:55 -07005066 tANI_U8 bssIdx;
5067
5068} tHalWowlExitParams, *tpHalWowlExitParams;
5069
5070typedef PACKED_PRE struct PACKED_POST
5071{
5072 tHalMsgHeader header;
5073 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005074} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5075
5076/*---------------------------------------------------------------------------
5077 * WLAN_HAL_GET_RSSI_REQ
5078 *--------------------------------------------------------------------------*/
5079typedef PACKED_PRE struct PACKED_POST
5080{
5081 tHalMsgHeader header;
5082} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5083
Anand Kumar012623a2013-01-11 17:00:00 -08005084typedef PACKED_PRE struct PACKED_POST
5085{
5086 /* Valid STA Idx for per STA stats request */
5087 tANI_U32 staId;
5088
5089}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5090
5091
5092/*---------------------------------------------------------------------------
5093 * WLAN_HAL_GET_ROAM_RSSI_REQ
5094 *--------------------------------------------------------------------------*/
5095typedef PACKED_PRE struct PACKED_POST
5096{
5097 tHalMsgHeader header;
5098 tHalRoamRssiReqParams roamRssiReqParams;
5099} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5100
5101
Jeff Johnson295189b2012-06-20 16:38:30 -07005102/*---------------------------------------------------------------------------
5103 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5104 *--------------------------------------------------------------------------*/
5105typedef PACKED_PRE struct PACKED_POST {
5106 tANI_U8 staidx; // STA index
5107 tANI_U8 ac; // Access Category
5108 tANI_U8 up; // User Priority
5109 tANI_U32 srvInterval; // Service Interval
5110 tANI_U32 susInterval; // Suspend Interval
5111 tANI_U32 delayInterval; // Delay Interval
5112} tUapsdInfo, tpUapsdInfo;
5113
5114typedef PACKED_PRE struct PACKED_POST
5115{
5116 tHalMsgHeader header;
5117 tUapsdInfo enableUapsdAcParams;
5118} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5119
5120/*---------------------------------------------------------------------------
5121 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5122 *--------------------------------------------------------------------------*/
5123typedef PACKED_PRE struct PACKED_POST {
5124 tANI_U8 setMcstBcstFilterSetting;
5125 tANI_U8 setMcstBcstFilter;
5126} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5127
5128typedef PACKED_PRE struct PACKED_POST
5129{
5130 tHalMsgHeader header;
5131 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5132} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5133
5134/*---------------------------------------------------------------------------
5135 * WLAN_HAL_ENTER_IMPS_RSP
5136 *--------------------------------------------------------------------------*/
5137typedef PACKED_PRE struct PACKED_POST
5138{
5139 /* success or failure */
5140 tANI_U32 status;
5141} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5142
5143typedef PACKED_PRE struct PACKED_POST
5144{
5145 tHalMsgHeader header;
5146 tHalEnterImpsRspParams enterImpsRspParams;
5147} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5148
5149/*---------------------------------------------------------------------------
5150 * WLAN_HAL_EXIT_IMPS_RSP
5151 *--------------------------------------------------------------------------*/
5152typedef PACKED_PRE struct PACKED_POST
5153{
5154 /* success or failure */
5155 tANI_U32 status;
5156} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5157
5158typedef PACKED_PRE struct PACKED_POST
5159{
5160 tHalMsgHeader header;
5161 tHalExitImpsRspParams exitImpsRspParams;
5162} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5163
5164/*---------------------------------------------------------------------------
5165 * WLAN_HAL_ENTER_BMPS_RSP
5166 *--------------------------------------------------------------------------*/
5167typedef PACKED_PRE struct PACKED_POST
5168{
5169 /* success or failure */
5170 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005171 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005172} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5173
5174typedef PACKED_PRE struct PACKED_POST
5175{
5176 tHalMsgHeader header;
5177 tHalEnterBmpsRspParams enterBmpsRspParams;
5178} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5179
5180/*---------------------------------------------------------------------------
5181 * WLAN_HAL_EXIT_BMPS_RSP
5182 *--------------------------------------------------------------------------*/
5183typedef PACKED_PRE struct PACKED_POST
5184{
5185 /* success or failure */
5186 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005187 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005188} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5189
5190typedef PACKED_PRE struct PACKED_POST
5191{
5192 tHalMsgHeader header;
5193 tHalExitBmpsRspParams exitBmpsRspParams;
5194} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5195
5196/*---------------------------------------------------------------------------
5197 * WLAN_HAL_ENTER_UAPSD_RSP
5198 *--------------------------------------------------------------------------*/
5199typedef PACKED_PRE struct PACKED_POST
5200{
5201 /* success or failure */
5202 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005203 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005204}tUapsdRspParams, *tpUapsdRspParams;
5205
5206typedef PACKED_PRE struct PACKED_POST
5207{
5208 tHalMsgHeader header;
5209 tUapsdRspParams enterUapsdRspParams;
5210} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5211
5212/*---------------------------------------------------------------------------
5213 * WLAN_HAL_EXIT_UAPSD_RSP
5214 *--------------------------------------------------------------------------*/
5215typedef PACKED_PRE struct PACKED_POST
5216{
5217 /* success or failure */
5218 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005219 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005220} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5221
5222typedef PACKED_PRE struct PACKED_POST
5223{
5224 tHalMsgHeader header;
5225 tHalExitUapsdRspParams exitUapsdRspParams;
5226} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5227
5228/*---------------------------------------------------------------------------
5229 * WLAN_HAL_RSSI_NOTIFICATION_IND
5230 *--------------------------------------------------------------------------*/
5231typedef PACKED_PRE struct PACKED_POST
5232{
5233 tANI_U32 bRssiThres1PosCross : 1;
5234 tANI_U32 bRssiThres1NegCross : 1;
5235 tANI_U32 bRssiThres2PosCross : 1;
5236 tANI_U32 bRssiThres2NegCross : 1;
5237 tANI_U32 bRssiThres3PosCross : 1;
5238 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005239 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005240 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005241 tANI_U32 isBTCoexCompromise : 1;
5242 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005243 tANI_S8 refRssiThreshold1;
5244 tANI_S8 refRssiThreshold2;
5245 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005246} tHalRSSINotification, *tpHalRSSINotification;
5247
5248typedef PACKED_PRE struct PACKED_POST
5249{
5250 tHalMsgHeader header;
5251 tHalRSSINotification rssiNotificationParams;
5252} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5253
5254/*---------------------------------------------------------------------------
5255 * WLAN_HAL_GET_RSSI_RSP
5256 *--------------------------------------------------------------------------*/
5257typedef PACKED_PRE struct PACKED_POST
5258{
5259 /* success or failure */
5260 tANI_U32 status;
5261 tANI_S8 rssi;
5262} tHalGetRssiParams, *tpHalGetRspParams;
5263
5264typedef PACKED_PRE struct PACKED_POST
5265{
5266 tHalMsgHeader header;
5267 tHalGetRssiParams rssiRspParams;
5268} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5269
5270/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005271 * WLAN_HAL_GET_ROAM_RSSI_RSP
5272 *--------------------------------------------------------------------------*/
5273typedef PACKED_PRE struct PACKED_POST
5274{
5275 /* success or failure */
5276 tANI_U32 status;
5277
5278 tANI_U8 staId;
5279 tANI_S8 rssi;
5280} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5281
5282typedef PACKED_PRE struct PACKED_POST
5283{
5284 tHalMsgHeader header;
5285 tHalGetRoamRssiParams roamRssiRspParams;
5286} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5287
5288/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005289 * WLAN_HAL_ENTER_WOWL_RSP
5290 *--------------------------------------------------------------------------*/
5291typedef PACKED_PRE struct PACKED_POST
5292{
5293 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005294 tANI_U32 status;
5295 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005296} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5297
5298typedef PACKED_PRE struct PACKED_POST
5299{
5300 tHalMsgHeader header;
5301 tHalEnterWowlRspParams enterWowlRspParams;
5302} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5303
5304/*---------------------------------------------------------------------------
5305 * WLAN_HAL_EXIT_WOWL_RSP
5306 *--------------------------------------------------------------------------*/
5307typedef PACKED_PRE struct PACKED_POST
5308{
5309 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005310 tANI_U32 status;
5311 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005312} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5313
5314typedef PACKED_PRE struct PACKED_POST
5315{
5316 tHalMsgHeader header;
5317 tHalExitWowlRspParams exitWowlRspParams;
5318} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5319
5320/*---------------------------------------------------------------------------
5321 * WLAN_HAL_ADD_BCN_FILTER_RSP
5322 *--------------------------------------------------------------------------*/
5323typedef PACKED_PRE struct PACKED_POST
5324{
5325 /* success or failure */
5326 tANI_U32 status;
5327} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5328
5329typedef PACKED_PRE struct PACKED_POST
5330{
5331 tHalMsgHeader header;
5332 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5333} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5334
5335/*---------------------------------------------------------------------------
5336 * WLAN_HAL_REM_BCN_FILTER_RSP
5337 *--------------------------------------------------------------------------*/
5338typedef PACKED_PRE struct PACKED_POST
5339{
5340 /* success or failure */
5341 tANI_U32 status;
5342} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5343
5344typedef PACKED_PRE struct PACKED_POST
5345{
5346 tHalMsgHeader header;
5347 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5348} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5349
5350/*---------------------------------------------------------------------------
5351 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5352 *--------------------------------------------------------------------------*/
5353typedef PACKED_PRE struct PACKED_POST
5354{
5355 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005356 tANI_U32 status;
5357 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005358} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5359
5360typedef PACKED_PRE struct PACKED_POST
5361{
5362 tHalMsgHeader header;
5363 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5364} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5365
5366/*---------------------------------------------------------------------------
5367 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5368 *--------------------------------------------------------------------------*/
5369typedef PACKED_PRE struct PACKED_POST
5370{
5371 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005372 tANI_U32 status;
5373 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005374} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5375
5376typedef PACKED_PRE struct PACKED_POST
5377{
5378 tHalMsgHeader header;
5379 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5380} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5381
5382/*---------------------------------------------------------------------------
5383 * WLAN_HAL_HOST_OFFLOAD_RSP
5384 *--------------------------------------------------------------------------*/
5385typedef PACKED_PRE struct PACKED_POST
5386{
5387 /* success or failure */
5388 tANI_U32 status;
5389} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5390
5391typedef PACKED_PRE struct PACKED_POST
5392{
5393 tHalMsgHeader header;
5394 tHalHostOffloadRspParams hostOffloadRspParams;
5395} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5396
5397/*---------------------------------------------------------------------------
5398 * WLAN_HAL_KEEP_ALIVE_RSP
5399 *--------------------------------------------------------------------------*/
5400typedef PACKED_PRE struct PACKED_POST
5401{
5402 /* success or failure */
5403 tANI_U32 status;
5404} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5405
5406typedef PACKED_PRE struct PACKED_POST
5407{
5408 tHalMsgHeader header;
5409 tHalKeepAliveRspParams keepAliveRspParams;
5410} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5411
5412/*---------------------------------------------------------------------------
5413 * WLAN_HAL_SET_RSSI_THRESH_RSP
5414 *--------------------------------------------------------------------------*/
5415typedef PACKED_PRE struct PACKED_POST
5416{
5417 /* success or failure */
5418 tANI_U32 status;
5419} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5420
5421typedef PACKED_PRE struct PACKED_POST
5422{
5423 tHalMsgHeader header;
5424 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5425} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5426
5427/*---------------------------------------------------------------------------
5428 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5429 *--------------------------------------------------------------------------*/
5430typedef PACKED_PRE struct PACKED_POST
5431{
5432 /* success or failure */
5433 tANI_U32 status;
5434} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5435
5436typedef PACKED_PRE struct PACKED_POST
5437{
5438 tHalMsgHeader header;
5439 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5440} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5441
5442/*---------------------------------------------------------------------------
5443 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5444 *--------------------------------------------------------------------------*/
5445typedef PACKED_PRE struct PACKED_POST
5446{
5447 /* success or failure */
5448 tANI_U32 status;
5449} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5450
5451typedef PACKED_PRE struct PACKED_POST
5452{
5453 tHalMsgHeader header;
5454 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5455} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5456
5457/*---------------------------------------------------------------------------
5458 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5459 *--------------------------------------------------------------------------*/
5460
5461typedef PACKED_PRE struct PACKED_POST
5462{
5463 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5464 //the request has power constraints, this should be applied only to that session
5465 tSirMacAddr selfStaMacAddr;
5466 //In request,
5467 //power == MaxTx power to be used.
5468 tPowerdBm power;
5469
5470}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5471
5472
5473typedef PACKED_PRE struct PACKED_POST
5474{
5475 tHalMsgHeader header;
5476 tSetMaxTxPwrParams setMaxTxPwrParams;
5477}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5478
5479/*---------------------------------------------------------------------------
5480*WLAN_HAL_SET_MAX_TX_POWER_RSP
5481*--------------------------------------------------------------------------*/
5482
5483typedef PACKED_PRE struct PACKED_POST
5484{
5485 //power == tx power used for management frames.
5486 tPowerdBm power;
5487
5488 /* success or failure */
5489 tANI_U32 status;
5490}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5491
5492typedef PACKED_PRE struct PACKED_POST
5493{
5494 tHalMsgHeader header;
5495 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5496}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5497
Kumar Anandea78e792013-10-10 23:47:01 -07005498
Jeff Johnson295189b2012-06-20 16:38:30 -07005499/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005500 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5501 *--------------------------------------------------------------------------*/
5502
5503/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5504typedef enum
5505{
5506 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5507 // For 2.4GHz or 5GHz bands
5508 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5509 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5510 // End of valid enums
5511 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5512}tHalSetMaxTxPwrBandInfo;
5513
5514typedef PACKED_PRE struct PACKED_POST
5515{
5516 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005517 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005518}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5519
Kumar Anandea78e792013-10-10 23:47:01 -07005520
Arif Hussain36fda162013-08-30 14:46:57 -07005521typedef PACKED_PRE struct PACKED_POST
5522{
5523 tHalMsgHeader header;
5524 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5525}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5526
5527/*---------------------------------------------------------------------------
5528*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5529*--------------------------------------------------------------------------*/
5530
5531typedef PACKED_PRE struct PACKED_POST
5532{
5533 //power == tx power used for management frames.
5534 tPowerdBm power;
5535
5536 /* success or failure */
5537 tANI_U32 status;
5538}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5539
5540typedef PACKED_PRE struct PACKED_POST
5541{
5542 tHalMsgHeader header;
5543 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5544}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5545
5546/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005547 *WLAN_HAL_SET_TX_POWER_REQ
5548 *--------------------------------------------------------------------------*/
5549
5550typedef PACKED_PRE struct PACKED_POST
5551{
5552 /* TX Power in milli watts */
5553 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005554 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005555}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5556
5557
5558typedef PACKED_PRE struct PACKED_POST
5559{
5560 tHalMsgHeader header;
5561 tSetTxPwrReqParams setTxPwrReqParams;
5562}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5563
5564/*---------------------------------------------------------------------------
5565*WLAN_HAL_SET_TX_POWER_RSP
5566*--------------------------------------------------------------------------*/
5567
5568typedef PACKED_PRE struct PACKED_POST
5569{
5570 /* success or failure */
5571 tANI_U32 status;
5572}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5573
5574typedef PACKED_PRE struct PACKED_POST
5575{
5576 tHalMsgHeader header;
5577 tSetTxPwrRspParams setTxPwrRspParams;
5578}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5579
5580/*---------------------------------------------------------------------------
5581 *WLAN_HAL_GET_TX_POWER_REQ
5582 *--------------------------------------------------------------------------*/
5583
5584typedef PACKED_PRE struct PACKED_POST
5585{
5586 tANI_U8 staId;
5587}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5588
5589typedef PACKED_PRE struct PACKED_POST
5590{
5591 tHalMsgHeader header;
5592 tGetTxPwrReqParams getTxPwrReqParams;
5593}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5594
5595/*---------------------------------------------------------------------------
5596*WLAN_HAL_GET_TX_POWER_RSP
5597*--------------------------------------------------------------------------*/
5598
5599typedef PACKED_PRE struct PACKED_POST
5600{
5601 /* success or failure */
5602 tANI_U32 status;
5603
5604 /* TX Power in milli watts */
5605 tANI_U32 txPower;
5606}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5607
5608typedef PACKED_PRE struct PACKED_POST
5609{
5610 tHalMsgHeader header;
5611 tGetTxPwrRspParams getTxPwrRspParams;
5612}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5613
5614#ifdef WLAN_FEATURE_P2P
5615/*---------------------------------------------------------------------------
5616 *WLAN_HAL_SET_P2P_GONOA_REQ
5617 *--------------------------------------------------------------------------*/
5618
5619typedef PACKED_PRE struct PACKED_POST
5620{
5621 tANI_U8 opp_ps;
5622 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305623 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005624 tANI_U32 duration;
5625 tANI_U32 interval;
5626 tANI_U32 single_noa_duration;
5627 tANI_U8 psSelection;
5628}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5629
5630
5631typedef PACKED_PRE struct PACKED_POST
5632{
5633 tHalMsgHeader header;
5634 tSetP2PGONOAParams setP2PGONOAParams;
5635}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5636
5637/*---------------------------------------------------------------------------
5638*WLAN_HAL_SET_P2P_GONOA_RSP
5639*--------------------------------------------------------------------------*/
5640
5641typedef PACKED_PRE struct PACKED_POST
5642{
5643 /* success or failure */
5644 tANI_U32 status;
5645}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5646
5647typedef PACKED_PRE struct PACKED_POST
5648{
5649 tHalMsgHeader header;
5650 tSetP2PGONOARspParams setP2PGONOARspParams;
5651}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5652#endif
5653
5654/*---------------------------------------------------------------------------
5655 *WLAN_HAL_ADD_SELF_STA_REQ
5656 *--------------------------------------------------------------------------*/
5657
5658typedef PACKED_PRE struct PACKED_POST
5659{
5660 tSirMacAddr selfMacAddr;
5661 tANI_U32 status;
5662}tAddStaSelfParams, *tpAddStaSelfParams;
5663
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005664typedef PACKED_PRE struct PACKED_POST
5665{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005666 tHalMsgHeader header;
5667 tAddStaSelfParams addStaSelfParams;
5668}tAddStaSelfReq, *tpAddStaSelfReq;
5669
5670/* This V1 structure carries additionally the IFACE PERSONA
5671 of the interface as compared to the legacy control
5672 message */
5673typedef PACKED_PRE struct PACKED_POST
5674{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005675 tSirMacAddr selfMacAddr;
5676 tANI_U32 status;
5677 tHalIfacePersona iface_persona;
5678}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005679
5680typedef PACKED_PRE struct PACKED_POST
5681{
5682 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005683 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005684}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005685
5686/*---------------------------------------------------------------------------
5687*WLAN_HAL_ADD_SELF_STA_RSP
5688*--------------------------------------------------------------------------*/
5689
5690typedef PACKED_PRE struct PACKED_POST
5691{
5692 /* success or failure */
5693 tANI_U32 status;
5694
5695 /*Self STA Index */
5696 tANI_U8 selfStaIdx;
5697
5698 /* DPU Index (IGTK, PTK, GTK all same) */
5699 tANI_U8 dpuIdx;
5700
5701 /* DPU Signature */
5702 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305703
Jeff Johnson295189b2012-06-20 16:38:30 -07005704}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5705
5706typedef PACKED_PRE struct PACKED_POST
5707{
5708 tHalMsgHeader header;
5709 tAddStaSelfRspParams addStaSelfRspParams;
5710}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5711
5712
5713/*---------------------------------------------------------------------------
5714 WLAN_HAL_DEL_STA_SELF_REQ
5715---------------------------------------------------------------------------*/
5716
5717typedef PACKED_PRE struct PACKED_POST
5718{
5719 tSirMacAddr selfMacAddr;
5720
5721}tDelStaSelfParams, *tpDelStaSelfParams;
5722
5723typedef PACKED_PRE struct PACKED_POST
5724{
5725 tHalMsgHeader header;
5726 tDelStaSelfParams delStaSelfParams;
5727} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5728
5729
5730/*---------------------------------------------------------------------------
5731 WLAN_HAL_DEL_STA_SELF_RSP
5732---------------------------------------------------------------------------*/
5733
5734typedef PACKED_PRE struct PACKED_POST
5735{
5736 /*success or failure */
5737 tANI_U32 status;
5738
5739 tSirMacAddr selfMacAddr;
5740}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5741
5742typedef PACKED_PRE struct PACKED_POST
5743{
5744 tHalMsgHeader header;
5745 tDelStaSelfRspParams delStaSelfRspParams;
5746} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5747
5748
5749#ifdef WLAN_FEATURE_VOWIFI_11R
5750
5751/*---------------------------------------------------------------------------
5752 *WLAN_HAL_AGGR_ADD_TS_REQ
5753 *--------------------------------------------------------------------------*/
5754
5755typedef PACKED_PRE struct PACKED_POST
5756{
5757 /* Station Index */
5758 tANI_U16 staIdx;
5759
5760 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5761 /* This will carry the bitmap with the bit positions representing different AC.s*/
5762 tANI_U16 tspecIdx;
5763
5764 /* Tspec info per AC To program TPE with required parameters */
5765 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5766
5767 /* U-APSD Flags: 1b per AC. Encoded as follows:
5768 b7 b6 b5 b4 b3 b2 b1 b0 =
5769 X X X X BE BK VI VO */
5770 tANI_U8 uAPSD;
5771
5772 /* These parameters are for all the access categories */
5773 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5774 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5775 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5776
5777}tAggrAddTsParams, *tpAggrAddTsParams;
5778
5779
5780typedef PACKED_PRE struct PACKED_POST
5781{
5782 tHalMsgHeader header;
5783 tAggrAddTsParams aggrAddTsParam;
5784}tAggrAddTsReq, *tpAggrAddTsReq;
5785
5786/*---------------------------------------------------------------------------
5787*WLAN_HAL_AGGR_ADD_TS_RSP
5788*--------------------------------------------------------------------------*/
5789
5790typedef PACKED_PRE struct PACKED_POST
5791{
5792 /* success or failure */
5793 tANI_U32 status0;
5794 /* FIXME PRIMA for future use for 11R */
5795 tANI_U32 status1;
5796}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5797
5798typedef PACKED_PRE struct PACKED_POST
5799{
5800 tHalMsgHeader header;
5801 tAggrAddTsRspParams aggrAddTsRspParam;
5802}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5803
5804#endif
5805
5806/*---------------------------------------------------------------------------
5807 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5808 *--------------------------------------------------------------------------*/
5809typedef PACKED_PRE struct PACKED_POST
5810{
5811 tANI_U8 isAppsCpuAwake;
5812} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5813
5814typedef PACKED_PRE struct PACKED_POST
5815{
5816 tHalMsgHeader header;
5817 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5818} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5819
5820/*---------------------------------------------------------------------------
5821 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5822 *--------------------------------------------------------------------------*/
5823typedef PACKED_PRE struct PACKED_POST
5824{
5825 /* success or failure */
5826 tANI_U32 status;
5827} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5828
5829typedef PACKED_PRE struct PACKED_POST
5830{
5831 tHalMsgHeader header;
5832 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5833} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5834/*---------------------------------------------------------------------------
5835 * WLAN_HAL_DUMP_COMMAND_REQ
5836 *--------------------------------------------------------------------------*/
5837
5838typedef PACKED_PRE struct PACKED_POST
5839{
5840 tANI_U32 argument1;
5841 tANI_U32 argument2;
5842 tANI_U32 argument3;
5843 tANI_U32 argument4;
5844 tANI_U32 argument5;
5845
5846}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5847
5848typedef PACKED_PRE struct PACKED_POST
5849{
5850 tHalMsgHeader header;
5851 tHalDumpCmdReqParams dumpCmdReqParams;
5852} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5853
5854/*---------------------------------------------------------------------------
5855 * WLAN_HAL_DUMP_COMMAND_RSP
5856 *--------------------------------------------------------------------------*/
5857
5858typedef PACKED_PRE struct PACKED_POST
5859{
5860 /* success or failure */
5861 tANI_U32 status;
5862 /*Length of the responce message*/
5863 tANI_U32 rspLength;
5864 /*FiXME: Currently considering the the responce will be less than 100bytes */
5865 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305866
Jeff Johnson295189b2012-06-20 16:38:30 -07005867} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5868
5869typedef PACKED_PRE struct PACKED_POST
5870{
5871 tHalMsgHeader header;
5872 tHalDumpCmdRspParams dumpCmdRspParams;
5873} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5874
5875/*---------------------------------------------------------------------------
5876 *WLAN_HAL_COEX_IND
5877 *-------------------------------------------------------------------------*/
5878#define WLAN_COEX_IND_DATA_SIZE (4)
5879#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5880#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005881#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5882#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005883#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5884#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305885#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5886#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305887#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005888
5889typedef PACKED_PRE struct PACKED_POST
5890{
5891 /*Coex Indication Type*/
5892 tANI_U32 coexIndType;
5893
5894 /*Coex Indication Data*/
5895 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5896}tCoexIndParams,*tpCoexIndParams;
5897
5898typedef PACKED_PRE struct PACKED_POST
5899{
5900 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305901 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005902}tCoexIndMsg, *tpCoexIndMsg;
5903
5904/*---------------------------------------------------------------------------
5905 *WLAN_HAL_OTA_TX_COMPL_IND
5906 *-------------------------------------------------------------------------*/
5907
5908typedef PACKED_PRE struct PACKED_POST
5909{
5910 /*Tx Complete Indication Success or Failure*/
5911 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305912 /* Dialog token */
5913 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005914}tTxComplParams,*tpTxComplParams;
5915
5916typedef PACKED_PRE struct PACKED_POST
5917{
5918 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305919 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005920}tTxComplIndMsg, *tpTxComplIndMsg;
5921
5922/*---------------------------------------------------------------------------
5923 * WLAN_HAL_HOST_SUSPEND_IND
5924 *-------------------------------------------------------------------------*/
5925
5926typedef PACKED_PRE struct PACKED_POST
5927{
5928 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305929 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005930}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5931
5932typedef PACKED_PRE struct PACKED_POST
5933{
5934 tHalMsgHeader header;
5935 tHalWlanHostSuspendIndParam suspendIndParams;
5936}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5937
5938/*---------------------------------------------------------------------------
5939 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5940 *-------------------------------------------------------------------------*/
5941
5942typedef PACKED_PRE struct PACKED_POST
5943{
5944 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305945 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005946}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5947
5948typedef PACKED_PRE struct PACKED_POST
5949{
5950 tHalMsgHeader header;
5951 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5952}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5953
5954#ifdef WLAN_FEATURE_P2P
5955/*---------------------------------------------------------------------------
5956 *WLAN_HAL_NOA_ATTR_IND
5957 *-------------------------------------------------------------------------*/
5958
5959typedef PACKED_PRE struct PACKED_POST
5960{
5961 tANI_U8 index ;
5962 tANI_U8 oppPsFlag ;
5963 tANI_U16 ctWin ;
5964
5965 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005966 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005967 tANI_U32 uNoa1Duration;
5968 tANI_U32 uNoa1Interval;
5969 tANI_U32 uNoa1StartTime;
5970
5971 tANI_U16 uNoa2IntervalCnt;
5972 tANI_U16 rsvd2;
5973 tANI_U32 uNoa2Duration;
5974 tANI_U32 uNoa2Interval;
5975 tANI_U32 uNoa2StartTime;
5976
5977 tANI_U32 status;
5978}tNoaAttrIndParams, *tpNoaAttrIndParams;
5979
5980typedef PACKED_PRE struct PACKED_POST
5981{
5982 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305983 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005984}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005985
5986/*---------------------------------------------------------------------------
5987 *WLAN_HAL_NOA_START_IND
5988 *-------------------------------------------------------------------------*/
5989
5990typedef PACKED_PRE struct PACKED_POST
5991{
5992 tANI_U32 status;
5993 tANI_U32 bssIdx;
5994}tNoaStartIndParams, *tpNoaStartIndParams;
5995
5996typedef PACKED_PRE struct PACKED_POST
5997{
5998 tHalMsgHeader header;
5999 tNoaStartIndParams noaStartIndParams;
6000}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07006001#endif
6002
6003/*---------------------------------------------------------------------------
6004 * WLAN_HAL_HOST_RESUME_REQ
6005 *-------------------------------------------------------------------------*/
6006
6007typedef PACKED_PRE struct PACKED_POST
6008{
6009 tANI_U8 configuredMcstBcstFilterSetting;
6010}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
6011
6012typedef PACKED_PRE struct PACKED_POST
6013{
6014 tHalMsgHeader header;
6015 tHalWlanHostResumeReqParam resumeReqParams;
6016}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
6017
6018/*---------------------------------------------------------------------------
6019 * WLAN_HAL_HOST_RESUME_RSP
6020 *--------------------------------------------------------------------------*/
6021typedef PACKED_PRE struct PACKED_POST
6022{
6023 /* success or failure */
6024 tANI_U32 status;
6025} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
6026
6027typedef PACKED_PRE struct PACKED_POST
6028{
6029 tHalMsgHeader header;
6030 tHalHostResumeRspParams hostResumeRspParams;
6031} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
6032
Anand Kumar012623a2013-01-11 17:00:00 -08006033typedef PACKED_PRE struct PACKED_POST
6034{
6035 tANI_U16 staIdx;
6036 // Peer MAC Address, whose BA session has timed out
6037 tSirMacAddr peerMacAddr;
6038 // TID for which a BA session timeout is being triggered
6039 tANI_U8 baTID;
6040 // DELBA direction
6041 // 1 - Originator
6042 // 0 - Recipient
6043 tANI_U8 baDirection;
6044 tANI_U32 reasonCode;
6045 tSirMacAddr bssId; // TO SUPPORT BT-AMP
6046} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
6047
6048typedef PACKED_PRE struct PACKED_POST
6049{
6050 tHalMsgHeader header;
6051 tHalWlanDelBaIndMsg hostdelBaParam;
6052} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
6053
Jeff Johnson295189b2012-06-20 16:38:30 -07006054/*---------------------------------------------------------------------------
6055 *PNO Messages
6056 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006057/* Max number of channels that a network can be found on*/
6058/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6059 * be changed at same time
6060 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006061#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006062
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306063/*Max number of channels that a network can be found on*/
6064#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6065
Jeff Johnson295189b2012-06-20 16:38:30 -07006066/*Maximum numbers of networks supported by PNO*/
6067#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6068
6069/*The number of scan time intervals that can be programmed into PNO*/
6070#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6071
6072/*Maximum size of the probe template*/
6073#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6074
Dino Mycle8afbac12014-07-04 22:06:17 +05306075/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006076 Immediate - scanning will start immediately and PNO procedure will
6077 be repeated based on timer
6078 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006079 Resume - scanning will start on system resume
6080 Delay - start the scan timer to trigger PNO scan
6081 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006082typedef enum
6083{
6084 ePNO_MODE_IMMEDIATE,
6085 ePNO_MODE_ON_SUSPEND,
6086 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306087 ePNO_MODE_DELAY,
6088 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006089 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6090} ePNOMode;
6091
6092/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306093typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006094{
Dino Mycle8afbac12014-07-04 22:06:17 +05306095 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006096 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306097
Jeff Johnson295189b2012-06-20 16:38:30 -07006098 // Upper layer authentication types
6099 eAUTH_TYPE_WPA = 2,
6100 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306101
Jeff Johnson295189b2012-06-20 16:38:30 -07006102 eAUTH_TYPE_RSN = 4,
6103 eAUTH_TYPE_RSN_PSK = 5,
6104 eAUTH_TYPE_FT_RSN = 6,
6105 eAUTH_TYPE_FT_RSN_PSK = 7,
6106 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6107 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006108 eAUTH_TYPE_CCKM_WPA = 10,
6109 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306110 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6111 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306112
Jeff Johnson295189b2012-06-20 16:38:30 -07006113 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6114
6115}tAuthType;
6116
6117/* Encryption type */
6118typedef enum eEdType
6119{
6120 eED_ANY = 0,
6121 eED_NONE = 1,
6122 eED_WEP = 2,
6123 eED_TKIP = 3,
6124 eED_CCMP = 4,
6125 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306126
Jeff Johnson295189b2012-06-20 16:38:30 -07006127 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6128} tEdType;
6129
6130/* SSID broadcast type */
6131typedef enum eSSIDBcastType
6132{
6133 eBCAST_UNKNOWN = 0,
6134 eBCAST_NORMAL = 1,
6135 eBCAST_HIDDEN = 2,
6136
6137 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6138} tSSIDBcastType;
6139
Dino Mycle8afbac12014-07-04 22:06:17 +05306140/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006141 The network description for which PNO will have to look for
6142*/
6143typedef PACKED_PRE struct PACKED_POST
6144{
6145 /*SSID of the BSS*/
6146 tSirMacSSid ssId;
6147
6148 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306149 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006150
6151 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306152 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006153
Dino Mycle8afbac12014-07-04 22:06:17 +05306154 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006155 0 - if all channels */
6156 tANI_U8 ucChannelCount;
6157 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6158
6159 /*Indicates the RSSI threshold for the network to be considered*/
6160 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306161}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006162
6163typedef PACKED_PRE struct PACKED_POST
6164{
6165 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306166 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006167
Dino Mycle8afbac12014-07-04 22:06:17 +05306168 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006169 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306170 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006171
Dino Mycle8afbac12014-07-04 22:06:17 +05306172 /*e.g: 2 3
6173 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006174 - it will wait 2s between consecutive scans for 3 times
6175 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306176}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006177
Dino Mycle8afbac12014-07-04 22:06:17 +05306178/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006179 The network parameters to be sent to the PNO algorithm
6180*/
6181typedef PACKED_PRE struct PACKED_POST
6182{
6183 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306184 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006185
Dino Mycle8afbac12014-07-04 22:06:17 +05306186 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006187 two consecutive scan procedures
6188 If the desired is for a uniform timer that fires always at the exact same
6189 interval - one single value is to be set
6190 If there is a desire for a more complex - telescopic like timer multiple
6191 values can be set - once PNO reaches the end of the array it will
6192 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306193 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006194
6195}tScanTimersType;
6196
6197typedef PACKED_PRE struct PACKED_POST {
6198
6199 /*Enable PNO*/
6200 tANI_U32 enable;
6201
6202 /*Immediate, On Suspend, On Resume*/
6203 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306204
Jeff Johnson295189b2012-06-20 16:38:30 -07006205 /*Number of networks sent for PNO*/
6206 tANI_U32 ucNetworksCount;
6207
6208 /*The networks that PNO needs to look for*/
6209 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6210
6211 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306212 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006213
6214 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306215 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006216 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6217
6218 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306219 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006220 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6221
6222} tPrefNetwListParams, * tpPrefNetwListParams;
6223
6224/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306225 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006226*/
6227typedef PACKED_PRE struct PACKED_POST
6228{
6229 tHalMsgHeader header;
6230 tPrefNetwListParams prefNetwListParams;
6231} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6232
6233
Dino Mycle8afbac12014-07-04 22:06:17 +05306234/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006235 The network description for which PNO will have to look for
6236*/
6237typedef PACKED_PRE struct PACKED_POST
6238{
6239 /*SSID of the BSS*/
6240 tSirMacSSid ssId;
6241
6242 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306243 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006244
6245 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306246 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006247
6248 /*SSID broadcast type, normal, hidden or unknown*/
6249 tSSIDBcastType bcastNetworkType;
6250
Dino Mycle8afbac12014-07-04 22:06:17 +05306251 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006252 0 - if all channels */
6253 tANI_U8 ucChannelCount;
6254 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6255
6256 /*Indicates the RSSI threshold for the network to be considered*/
6257 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306258}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006259
6260typedef PACKED_PRE struct PACKED_POST {
6261
6262 /*Enable PNO*/
6263 tANI_U32 enable;
6264
6265 /*Immediate, On Suspend, On Resume*/
6266 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306267
Jeff Johnson295189b2012-06-20 16:38:30 -07006268 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306269 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006270
6271 /*The networks that PNO needs to look for*/
6272 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6273
6274 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306275 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006276
6277 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306278 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006279 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6280
6281 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306282 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006283 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6284
6285} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6286
6287/*
6288 Preferred network list request new
6289*/
6290typedef PACKED_PRE struct PACKED_POST
6291{
6292 tHalMsgHeader header;
6293 tPrefNetwListParamsNew prefNetwListParams;
6294} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6295
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006296#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6297typedef PACKED_PRE struct PACKED_POST
6298{
6299 tSirMacSSid ssId;
6300 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6301 tANI_U32 authentication;
6302 tEdType encryption;
6303 tEdType mcencryption;
6304 tANI_U8 ChannelCount;
6305 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6306}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006307
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006308typedef PACKED_PRE struct PACKED_POST
6309{
6310 tANI_U8 mdiePresent;
6311 tANI_U16 mobilityDomain;
6312}tMobilityDomainInfo;
6313
6314typedef PACKED_PRE struct PACKED_POST {
6315 eAniBoolean RoamScanOffloadEnabled;
6316 tANI_S8 LookupThreshold;
6317 tANI_U8 RoamRssiDiff;
6318 tANI_U8 ChannelCacheType;
6319 tANI_U8 Command;
6320 tANI_U8 StartScanReason;
6321 tANI_U16 NeighborScanTimerPeriod;
6322 tANI_U16 NeighborRoamScanRefreshPeriod;
6323 tANI_U16 NeighborScanChannelMinTime;
6324 tANI_U16 NeighborScanChannelMaxTime;
6325 tANI_U16 EmptyRefreshScanPeriod;
6326 tANI_U8 ValidChannelCount;
6327 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006328 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006329
6330 tANI_U16 us24GProbeSize;
6331 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6332 tANI_U16 us5GProbeSize;
6333 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6334 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006335 tANI_U8 nProbes;
6336 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006337 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006338 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006339 tANI_U8 RoamOffloadEnabled;
6340 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6341 tANI_U8 Prefer5GHz;
6342 tANI_U8 RoamRssiCatGap;
6343 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006344 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6345 tRoamNetworkType ConnectedNetwork;
6346 tMobilityDomainInfo MDID;
6347} tRoamCandidateListParams, * tpRoamCandidateListParams;
6348
6349typedef PACKED_PRE struct PACKED_POST
6350{
Kumar Anandea78e792013-10-10 23:47:01 -07006351 tHalMsgHeader header;
6352 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006353} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6354
6355typedef PACKED_PRE struct PACKED_POST
6356{
Kumar Anandea78e792013-10-10 23:47:01 -07006357 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006358
Kumar Anandea78e792013-10-10 23:47:01 -07006359 /* status of the request - just to indicate that PNO has acknowledged
6360 * the request and will start scanning */
6361 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006362} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6363#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006364
6365/*
6366 Preferred network list response
6367*/
6368typedef PACKED_PRE struct PACKED_POST
6369{
6370 tHalMsgHeader header;
6371
6372 /* status of the request - just to indicate that PNO has acknowledged
6373 * the request and will start scanning*/
6374 tANI_U32 status;
6375} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6376
6377/*
6378 Preferred network indication parameters
6379*/
6380typedef PACKED_PRE struct PACKED_POST {
6381
6382 /*Network that was found with the highest RSSI*/
6383 tSirMacSSid ssId;
6384
6385 /*Indicates the RSSI */
6386 tANI_U8 rssi;
6387
6388 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6389 tANI_U16 frameLength;
6390
6391} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6392
6393/*
6394 Preferred network found indication
6395*/
6396typedef PACKED_PRE struct PACKED_POST {
6397
6398 tHalMsgHeader header;
6399 tPrefNetwFoundParams prefNetwFoundParams;
6400} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6401
6402
6403typedef PACKED_PRE struct PACKED_POST {
6404
6405 /*RSSI Threshold*/
6406 tANI_U8 ucRssiThreshold;
6407
6408} tRssiFilterParams, * tpRssiFilterParams;
6409
Jeff Johnson295189b2012-06-20 16:38:30 -07006410/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306411 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006412*/
6413typedef PACKED_PRE struct PACKED_POST
6414{
6415 tHalMsgHeader header;
6416 tRssiFilterParams prefRSSIFilterParams;
6417} tSetRssiFilterReq, *tpSetRssiFilterReq;
6418
6419/*
6420 Set RSSI filter resp
6421*/
6422typedef PACKED_PRE struct PACKED_POST{
6423 tHalMsgHeader header;
6424 /*status of the request */
6425 tANI_U32 status;
6426} tSetRssiFilterResp, *tpSetRssiFilterResp;
6427/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306428 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006429*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306430typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006431{
6432
6433 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306434 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006435
6436 /*Lets PNO know that host has determined the regulatory domain*/
6437 tANI_U8 b11dResolved;
6438
6439 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306440 tANI_U8 ucChannelCount;
6441 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006442
6443 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306444 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006445
6446 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306447 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006448
6449 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306450 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006451
6452 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306453 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006454
6455 /*Cb State*/
6456 ePhyChanBondState cbState;
6457
6458} tUpdateScanParams, * tpUpdateScanParams;
6459
6460/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306461 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306462*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306463typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306464{
6465
6466 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306467 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306468
6469 /*Lets PNO know that host has determined the regulatory domain*/
6470 tANI_U8 b11dResolved;
6471
6472 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306473 tANI_U8 ucChannelCount;
6474 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306475
6476 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306477 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306478
6479 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306480 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306481
6482 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306483 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306484
6485 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306486 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306487
6488 /*Cb State*/
6489 ePhyChanBondState cbState;
6490
6491} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6492
6493/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006494 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306495 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006496*/
6497typedef PACKED_PRE struct PACKED_POST{
6498
6499 tHalMsgHeader header;
6500 tUpdateScanParams scanParams;
6501} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6502
6503/*
6504 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306505 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006506*/
6507typedef PACKED_PRE struct PACKED_POST{
6508
6509 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306510 tUpdateScanParamsEx scanParams;
6511} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6512
6513/*
6514 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306515 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306516*/
6517typedef PACKED_PRE struct PACKED_POST{
6518
6519 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006520
6521 /*status of the request */
6522 tANI_U32 status;
6523
6524} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6525
6526/*---------------------------------------------------------------------------
6527 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6528 *--------------------------------------------------------------------------*/
6529typedef PACKED_PRE struct PACKED_POST
6530{
6531 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6532 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6533 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6534 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6535} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6536
6537typedef PACKED_PRE struct PACKED_POST
6538{
6539 tHalMsgHeader header;
6540 tHalTxPerTrackingReqParam txPerTrackingParams;
6541} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6542
6543/*---------------------------------------------------------------------------
6544 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6545 *--------------------------------------------------------------------------*/
6546typedef PACKED_PRE struct PACKED_POST
6547{
6548 /* success or failure */
6549 tANI_U32 status;
6550} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6551
6552typedef PACKED_PRE struct PACKED_POST
6553{
6554 tHalMsgHeader header;
6555 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6556} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6557
6558/*---------------------------------------------------------------------------
6559 * WLAN_HAL_TX_PER_HIT_IND
6560 *--------------------------------------------------------------------------*/
6561typedef PACKED_PRE struct PACKED_POST
6562{
6563 tHalMsgHeader header;
6564}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6565
6566/*---------------------------------------------------------------------------
6567 *******************Packet Filtering Definitions Begin*******************
6568 *--------------------------------------------------------------------------*/
6569#define HAL_PROTOCOL_DATA_LEN 8
6570#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6571#define HAL_MAX_NUM_FILTERS 20
6572#define HAL_MAX_CMP_PER_FILTER 10
6573
6574typedef enum
6575{
6576 HAL_RCV_FILTER_TYPE_INVALID,
6577 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6578 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6579 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6580}tHalReceivePacketFilterType;
6581
Dino Mycle8afbac12014-07-04 22:06:17 +05306582typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006583{
6584 HAL_FILTER_PROTO_TYPE_INVALID,
6585 HAL_FILTER_PROTO_TYPE_MAC,
6586 HAL_FILTER_PROTO_TYPE_ARP,
6587 HAL_FILTER_PROTO_TYPE_IPV4,
6588 HAL_FILTER_PROTO_TYPE_IPV6,
6589 HAL_FILTER_PROTO_TYPE_UDP,
6590 HAL_FILTER_PROTO_TYPE_MAX
6591}tHalRcvPktFltProtocolType;
6592
Dino Mycle8afbac12014-07-04 22:06:17 +05306593typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006594{
6595 HAL_FILTER_CMP_TYPE_INVALID,
6596 HAL_FILTER_CMP_TYPE_EQUAL,
6597 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6598 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6599 HAL_FILTER_CMP_TYPE_MAX
6600}tHalRcvPktFltCmpFlagType;
6601
Dino Mycle8afbac12014-07-04 22:06:17 +05306602typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006603{
6604 tANI_U8 protocolLayer;
6605 tANI_U8 cmpFlag;
6606 tANI_U16 dataLength; /* Length of the data to compare */
6607 tANI_U8 dataOffset; /* from start of the respective frame header */
6608 tANI_U8 reserved; /* Reserved field */
6609 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6610 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6611}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6612
6613typedef PACKED_PRE struct PACKED_POST
6614{
6615 tANI_U8 filterId;
6616 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306617 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006618 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006619 tHalRcvPktFilterParams paramsData[1];
6620}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6621
6622typedef PACKED_PRE struct PACKED_POST
6623{
Jeff Johnsone7245742012-09-05 17:12:55 -07006624 tANI_U8 filterId;
6625 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306626 tANI_U8 numParams;
6627 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006628 tANI_U8 bssIdx;
6629 tHalRcvPktFilterParams paramsData[1];
6630}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6631
6632typedef PACKED_PRE struct PACKED_POST
6633{
Jeff Johnson295189b2012-06-20 16:38:30 -07006634 tHalMsgHeader header;
6635 tHalRcvPktFilterCfgType pktFilterCfg;
6636} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6637
Jeff Johnsone7245742012-09-05 17:12:55 -07006638typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006639{
6640 tANI_U8 dataOffset; /* from start of the respective frame header */
6641 tANI_U32 cMulticastAddr;
6642 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006643 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006644} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6645
6646typedef PACKED_PRE struct PACKED_POST
6647{
6648 /* success or failure */
6649 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006650 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006651} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6652
6653typedef PACKED_PRE struct PACKED_POST
6654{
6655 tHalMsgHeader header;
6656 tHalSetPktFilterRspParams pktFilterRspParams;
6657} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6658
Jeff Johnsone7245742012-09-05 17:12:55 -07006659typedef PACKED_PRE struct PACKED_POST
6660{
6661 tANI_U8 bssIdx;
6662} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006663
6664typedef PACKED_PRE struct PACKED_POST
6665{
6666 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006667 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006668} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6669
Jeff Johnsone7245742012-09-05 17:12:55 -07006670
Jeff Johnson295189b2012-06-20 16:38:30 -07006671typedef PACKED_PRE struct PACKED_POST
6672{
6673 tANI_U8 filterId;
6674 tANI_U32 matchCnt;
6675} tHalRcvFltPktMatchCnt;
6676typedef PACKED_PRE struct PACKED_POST
6677{
6678 /* Success or Failure */
6679 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306680 tANI_U32 matchCnt;
6681 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006682 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006683} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6684
6685typedef PACKED_PRE struct PACKED_POST
6686{
6687 tHalMsgHeader header;
6688 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6689} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6690
6691typedef PACKED_PRE struct PACKED_POST
6692{
6693 tANI_U32 status; /* only valid for response message */
6694 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006695 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006696}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6697
6698typedef PACKED_PRE struct PACKED_POST
6699{
6700 tHalMsgHeader header;
6701 tHalRcvFltPktClearParam filterClearParam;
6702} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6703
6704typedef PACKED_PRE struct PACKED_POST
6705{
6706 tHalMsgHeader header;
6707 tHalRcvFltPktClearParam filterClearParam;
6708} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6709
6710typedef PACKED_PRE struct PACKED_POST
6711{
Dino Mycle8afbac12014-07-04 22:06:17 +05306712 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006713 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006714}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6715
6716typedef PACKED_PRE struct PACKED_POST
6717{
6718 tHalMsgHeader header;
6719 tHalRcvFltMcAddrListType mcAddrList;
6720} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6721
6722typedef PACKED_PRE struct PACKED_POST
6723{
6724 tHalMsgHeader header;
6725 tHalRcvFltPktSetMcListRspType rspParam;
6726} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6727
6728
6729/*---------------------------------------------------------------------------
6730 *******************Packet Filtering Definitions End*******************
6731 *--------------------------------------------------------------------------*/
6732
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006733/*
6734 * There are two versions of this message
6735 * Version 1 : Base version
6736 * Current version : Base version + Max LI modulated DTIM
6737 */
6738typedef PACKED_PRE struct PACKED_POST
6739{
6740 /* Ignore DTIM */
6741 tANI_U32 uIgnoreDTIM;
6742
6743 /*DTIM Period*/
6744 tANI_U32 uDTIMPeriod;
6745
6746 /* Listen Interval */
6747 tANI_U32 uListenInterval;
6748
6749 /* Broadcast Multicast Filter */
6750 tANI_U32 uBcastMcastFilter;
6751
6752 /* Beacon Early Termination */
6753 tANI_U32 uEnableBET;
6754
6755 /* Beacon Early Termination Interval */
6756 tANI_U32 uBETInterval;
6757}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6758
6759typedef PACKED_PRE struct PACKED_POST
6760{
6761 tHalMsgHeader header;
6762 tSetPowerParamsVer1Type powerParams;
6763} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6764
Jeff Johnson295189b2012-06-20 16:38:30 -07006765typedef PACKED_PRE struct PACKED_POST
6766{
6767 /* Ignore DTIM */
6768 tANI_U32 uIgnoreDTIM;
6769
6770 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306771 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006772
6773 /* Listen Interval */
6774 tANI_U32 uListenInterval;
6775
6776 /* Broadcast Multicast Filter */
6777 tANI_U32 uBcastMcastFilter;
6778
6779 /* Beacon Early Termination */
6780 tANI_U32 uEnableBET;
6781
6782 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306783 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006784
6785 /* MAX LI for modulated DTIM */
6786 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006787}tSetPowerParamsType, *tpSetPowerParamsType;
6788
6789typedef PACKED_PRE struct PACKED_POST
6790{
6791 tHalMsgHeader header;
6792 tSetPowerParamsType powerParams;
6793} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6794
6795typedef PACKED_PRE struct PACKED_POST{
6796
6797 tHalMsgHeader header;
6798
6799 /*status of the request */
6800 tANI_U32 status;
6801
6802} tSetPowerParamsResp, *tpSetPowerParamsResp;
6803
6804/*---------------------------------------------------------------------------
6805 ****************Capability bitmap exchange definitions and macros starts*************
6806 *--------------------------------------------------------------------------*/
6807
Anand Kumar012623a2013-01-11 17:00:00 -08006808typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006809 MCC = 0,
6810 P2P = 1,
6811 DOT11AC = 2,
6812 SLM_SESSIONIZATION = 3,
6813 DOT11AC_OPMODE = 4,
6814 SAP32STA = 5,
6815 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006816 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006817 WLANACTIVE_OFFLOAD = 8,
6818 BEACON_OFFLOAD = 9,
6819 SCAN_OFFLOAD = 10,
6820 ROAM_OFFLOAD = 11,
6821 BCN_MISS_OFFLOAD = 12,
6822 STA_POWERSAVE = 13,
6823 STA_ADVANCED_PWRSAVE = 14,
6824 AP_UAPSD = 15,
6825 AP_DFS = 16,
6826 BLOCKACK = 17,
6827 PHY_ERR = 18,
6828 BCN_FILTER = 19,
6829 RTT = 20,
6830 RATECTRL = 21,
6831 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006832 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006833 SPECULATIVE_PS_POLL = 24,
6834 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006835 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006836 WLAN_SCAN_OFFLOAD = 27,
6837 WLAN_PERIODIC_TX_PTRN = 28,
6838 ADVANCE_TDLS = 29,
6839 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306840 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306841 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306842 CH_SWITCH_V1 = 33,
6843 HT40_OBSS_SCAN = 34,
6844 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006845 WLAN_MCADDR_FLT = 36,
6846 WLAN_CH144 = 37,
6847 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306848 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306849 LINK_LAYER_STATS_MEAS = 40,
6850 MU_MIMO = 41,
6851 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306852 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306853 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306854 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306855 DISA = 46,
6856 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306857 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306858 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306859 TDLS_OFF_CHANNEL = 51,
Padma, Santhosh Kumarcfbcf942015-12-08 16:07:47 +05306860 RTT3 = 52,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306861 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306862 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306863 LOGGING_ENHANCEMENT = 55,
Padma, Santhosh Kumar2ac54992015-10-12 18:20:58 +05306864 EXT_SCAN_ENHANCED = 56,
c_manjeecfd1efb2015-09-25 19:32:34 +05306865 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306866 PER_PKT_STATS_SUPPORTED = 58,
Mukul Sharma03f86492015-10-20 16:10:13 +05306867 EXT_LL_STAT = 60,
Arun Khandavalliafc16432015-10-16 20:11:31 +05306868 WIFI_CONFIG = 61,
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05306869 ANTENNA_DIVERSITY_SELECTION = 62,
Kumar Anandea78e792013-10-10 23:47:01 -07006870 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006871} placeHolderInCapBitmap;
6872
Jeff Johnson295189b2012-06-20 16:38:30 -07006873typedef PACKED_PRE struct PACKED_POST{
6874
6875 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006876} tWlanFeatCaps, *tpWlanFeatCaps;
6877
6878typedef PACKED_PRE struct PACKED_POST{
6879
Dino Mycle8afbac12014-07-04 22:06:17 +05306880 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006881 tWlanFeatCaps wlanFeatCaps;
6882
6883} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6884
Jeff Johnsone7245742012-09-05 17:12:55 -07006885#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6886#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006887#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006888#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006889#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006890#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006891#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006892#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306893#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306894#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306895#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306896#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306897#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006898
Jeff Johnsone7245742012-09-05 17:12:55 -07006899tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6900
Jeff Johnson295189b2012-06-20 16:38:30 -07006901#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006902 if ((b)<=127) { \
6903 arr_index = (b)/32; \
6904 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006905 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006906 (a)->featCaps[arr_index] |= (1<<bit_index); \
6907 } \
6908 }
6909#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006910 if ((b)<=127) { \
6911 arr_index = (b)/32; \
6912 bit_index = (b)%32; \
6913 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006914 } \
6915 }
6916#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006917 if ((b)<=127) { \
6918 arr_index = (b)/32; \
6919 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006920 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006921 } \
6922 }
6923
6924/*---------------------------------------------------------------------------
6925 * WLAN_HAL_WAKE_REASON_IND
6926 *--------------------------------------------------------------------------*/
6927
6928/* status codes to help debug rekey failures */
6929typedef enum
6930{
6931 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6932 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6933 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6934 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6935 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6936 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6937 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6938 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6939 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6940 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6941
6942 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6943} tGTKRekeyStatus;
6944
6945/* wake reason types */
6946typedef enum
6947{
6948 WLAN_HAL_WAKE_REASON_NONE = 0,
6949 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6950 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6951 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6952 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6953 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6954 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6955 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6956} tWakeReasonType;
6957
6958/*
6959 Wake Packet which is saved at tWakeReasonParams.DataStart
6960 This data is sent for any wake reasons that involve a packet-based wakeup :
6961
6962 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6963 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6964 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6965 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6966 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6967
6968 The information is provided to the host for auditing and debug purposes
6969
6970*/
6971
6972/*
6973 Wake reason indication parameters
6974*/
6975typedef PACKED_PRE struct PACKED_POST
6976{
6977 uint32 ulReason; /* see tWakeReasonType */
6978 uint32 ulReasonArg; /* argument specific to the reason type */
6979 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6980 HAL truncates the data (i.e. data packets) this length
6981 will be less than the actual length */
6982 uint32 ulActualDataLen; /* actual length of data */
6983 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6984 see specific wake type */
6985} tWakeReasonParams, *tpWakeReasonParams;
6986
6987/*
6988 Wake reason indication
6989*/
6990typedef PACKED_PRE struct PACKED_POST
6991{
6992 tHalMsgHeader header;
6993 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006994 tANI_U32 uBssIdx : 8;
6995 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006996} tHalWakeReasonInd, *tpHalWakeReasonInd;
6997
6998/*---------------------------------------------------------------------------
6999* WLAN_HAL_GTK_OFFLOAD_REQ
7000*--------------------------------------------------------------------------*/
7001
7002#define HAL_GTK_KEK_BYTES 16
7003#define HAL_GTK_KCK_BYTES 16
7004
7005#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
7006
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007007#define GTK_SET_BSS_KEY_TAG 0x1234AA55
7008
Jeff Johnson295189b2012-06-20 16:38:30 -07007009typedef PACKED_PRE struct PACKED_POST
7010{
7011 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05307012 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07007013 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
7014 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07007015 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007016} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
7017
7018typedef PACKED_PRE struct PACKED_POST
7019{
7020 tHalMsgHeader header;
7021 tHalGtkOffloadReqParams gtkOffloadReqParams;
7022} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
7023
7024/*---------------------------------------------------------------------------
7025* WLAN_HAL_GTK_OFFLOAD_RSP
7026*--------------------------------------------------------------------------*/
7027typedef PACKED_PRE struct PACKED_POST
7028{
7029 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07007030 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007031} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
7032
7033typedef PACKED_PRE struct PACKED_POST
7034{
7035 tHalMsgHeader header;
7036 tHalGtkOffloadRspParams gtkOffloadRspParams;
7037} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
7038
7039
7040/*---------------------------------------------------------------------------
7041* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
7042*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07007043typedef PACKED_PRE struct PACKED_POST
7044{
7045 tANI_U8 bssIdx;
7046
7047} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007048
7049typedef PACKED_PRE struct PACKED_POST
7050{
7051 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07007052 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007053} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
7054
7055/*---------------------------------------------------------------------------
7056* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
7057*--------------------------------------------------------------------------*/
7058typedef PACKED_PRE struct PACKED_POST
7059{
7060 tANI_U32 ulStatus; /* success or failure */
7061 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7062 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7063 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7064 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7065 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007066 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007067} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7068
7069typedef PACKED_PRE struct PACKED_POST
7070{
7071 tHalMsgHeader header;
7072 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7073} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7074
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007075/*---------------------------------------------------------------------------
7076* WLAN_HAL_DHCP_IND
7077*--------------------------------------------------------------------------*/
7078typedef PACKED_PRE struct PACKED_POST
7079{
7080 /*Indicates the device mode which indicates about the DHCP activity */
7081 tANI_U8 device_mode;
7082 tSirMacAddr macAddr;
7083} tDHCPInfo, *tpDHCPInfo;
7084
7085typedef PACKED_PRE struct PACKED_POST
7086{
7087 tHalMsgHeader header;
7088 tANI_U32 status; /* success or failure */
7089} tDHCPIndStatus, *tpDHCPIndstatus;
7090
Jeff Johnson295189b2012-06-20 16:38:30 -07007091/*
7092 Thermal Mitigation mode of operation.
7093 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7094 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7095 reducing transmit power
7096 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7097*/
7098typedef enum
7099{
7100 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7101 HAL_THERMAL_MITIGATION_MODE_0,
7102 HAL_THERMAL_MITIGATION_MODE_1,
7103 HAL_THERMAL_MITIGATION_MODE_2,
7104 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7105}tHalThermalMitigationModeType;
7106//typedef tANI_S16 tHalThermalMitigationModeType;
7107
7108/*
7109 Thermal Mitigation level.
7110 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7111 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7112
7113 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7114 level indicates normal mode of operation
7115 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7116 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7117 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7118 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7119*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307120typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007121{
7122 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7123 HAL_THERMAL_MITIGATION_LEVEL_0,
7124 HAL_THERMAL_MITIGATION_LEVEL_1,
7125 HAL_THERMAL_MITIGATION_LEVEL_2,
7126 HAL_THERMAL_MITIGATION_LEVEL_3,
7127 HAL_THERMAL_MITIGATION_LEVEL_4,
7128 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7129}tHalThermalMitigationLevelType;
7130//typedef tANI_S16 tHalThermalMitigationLevelType;
7131
7132typedef PACKED_PRE struct PACKED_POST
7133{
7134 /* Thermal Mitigation Operation Mode */
7135 tHalThermalMitigationModeType thermalMitMode;
7136
7137 /* Thermal Mitigation Level */
7138 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307139
Jeff Johnson295189b2012-06-20 16:38:30 -07007140}tSetThermalMitgationType, *tpSetThermalMitgationType;
7141
7142/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7143typedef PACKED_PRE struct PACKED_POST
7144{
7145 tHalMsgHeader header;
7146 tSetThermalMitgationType thermalMitParams;
7147} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7148
7149typedef PACKED_PRE struct PACKED_POST{
7150
7151 tHalMsgHeader header;
7152
7153 /*status of the request */
7154 tANI_U32 status;
7155
7156} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7157
Dino Mycle8afbac12014-07-04 22:06:17 +05307158/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007159provided to FW from Host via periodic messages */
7160typedef PACKED_PRE struct PACKED_POST {
7161 /* TX stats */
7162 uint32 txBytesPushed;
7163 uint32 txPacketsPushed;
7164
7165 /* RX stats */
7166 uint32 rxBytesRcvd;
7167 uint32 rxPacketsRcvd;
7168 uint32 rxTimeTotal;
7169} tStaStatsClassB, *tpStaStatsClassB;
7170
7171typedef PACKED_PRE struct PACKED_POST {
7172
7173 /* Duration over which this stats was collected */
7174 tANI_U32 duration;
7175
7176 /* Per STA Stats */
7177 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7178} tStatsClassBIndParams, *tpStatsClassBIndParams;
7179
7180typedef PACKED_PRE struct PACKED_POST {
7181
7182 tHalMsgHeader header;
7183
7184 /* Class B Stats */
7185 tStatsClassBIndParams statsClassBIndParams;
7186} tStatsClassBInd, *tpStatsClassBInd;
7187
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307188/*Wifi Proximity paramters in AP mode*/
7189#ifdef FEATURE_WIFI_PROXIMITY
7190
7191typedef PACKED_PRE struct PACKED_POST{
7192
7193 tANI_U8 wifiProximityChannel;
7194 tANI_U32 wifiProximityDuration;
7195 tANI_U32 wifiProximityInterval;
7196 tANI_U32 wifiProximityMode;
7197 tANI_U32 wifiProximityStatus;
7198 tSirMacAddr bssId;
7199 tSirMacSSid ssId;
7200
7201} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7202
7203typedef PACKED_PRE struct PACKED_POST
7204{
7205 tHalMsgHeader header;
7206
7207 tSetWifiProximityReqParam wifiProximityReqParams;
7208
7209}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7210
7211/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7212typedef PACKED_PRE struct PACKED_POST{
7213
7214 tHalMsgHeader header;
7215
7216 /*status of the request */
7217 tANI_U32 status;
7218
7219} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7220
7221#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007222
7223#ifdef FEATURE_SPECULATIVE_PS_POLL
7224/*---------------------------------------------------------------------------
7225 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7226 *--------------------------------------------------------------------------*/
7227typedef PACKED_PRE struct PACKED_POST
7228{
7229 tANI_U8 bssIdx;
7230 tANI_U16 serviceInterval;
7231 tANI_U16 suspendInterval;
7232 tANI_U8 acMask;
7233} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7234
7235typedef PACKED_PRE struct PACKED_POST
7236{
7237 tHalMsgHeader header;
7238 tHalStartSpecPsPollReqParams specPsPollReq;
7239} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7240
7241/*---------------------------------------------------------------------------
7242 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7243 *--------------------------------------------------------------------------*/
7244typedef PACKED_PRE struct PACKED_POST
7245{
7246 /* success or failure */
7247 tANI_U32 status;
7248 tANI_U8 bssIdx;
7249} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7250
7251typedef PACKED_PRE struct PACKED_POST
7252{
7253 tHalMsgHeader header;
7254 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7255} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7256
7257/*---------------------------------------------------------------------------
7258 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7259 *--------------------------------------------------------------------------*/
7260typedef PACKED_PRE struct PACKED_POST
7261{
7262 tHalMsgHeader header;
7263 tANI_U8 bssIdx;
7264} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7265#endif
7266
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307267#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307268#define HAL_MAX_SUPP_CHANNELS 128
7269#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307270/*---------------------------------------------------------------------------
7271 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7272 *-------------------------------------------------------------------------*/
7273typedef PACKED_PRE struct PACKED_POST
7274{
7275 /*STA Index*/
7276 tANI_U16 staIdx;
7277
7278 /* if this is 1, self is initiator and peer is reponder */
7279 tANI_U8 bIsResponder;
7280
7281 /* QoS Info */
7282 tANI_U8 acVOUAPSDFlag:1;
7283 tANI_U8 acVIUAPSDFlag:1;
7284 tANI_U8 acBKUAPSDFlag:1;
7285 tANI_U8 acBEUAPSDFlag:1;
7286 tANI_U8 aAck:1;
7287 tANI_U8 maxServicePeriodLength:2;
7288 tANI_U8 moreDataAck:1;
7289
7290 /*TDLS Peer U-APSD Buffer STA Support*/
7291 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007292
7293 /*TDLS off channel related params */
7294 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307295 tANI_U8 peerCurrOperClass;
7296 tANI_U8 selfCurrOperClass;
7297 tANI_U8 validChannelsLen;
7298 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7299 tANI_U8 validOperClassesLen;
7300 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307301}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7302
7303typedef PACKED_PRE struct PACKED_POST
7304{
7305 tHalMsgHeader header;
7306 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7307} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7308
7309/*---------------------------------------------------------------------------
7310 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7311 *-------------------------------------------------------------------------*/
7312
7313typedef PACKED_PRE struct PACKED_POST
7314{
7315 tANI_U32 status;
7316
7317 /*STA Index*/
7318 tANI_U16 staIdx;
7319} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7320
7321typedef PACKED_PRE struct PACKED_POST
7322{
7323 tHalMsgHeader header;
7324 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7325} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307326/*---------------------------------------------------------------------------
7327 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7328 + *-------------------------------------------------------------------------*/
7329typedef PACKED_PRE struct PACKED_POST
7330{
7331 /*STA Index*/
7332 tANI_U16 staIdx;
7333 /* if this is 1, self is initiator otherwise responder only*/
7334 tANI_U8 isOffchannelInitiator;
7335 /*TDLS off channel related params */
7336 tANI_U8 targetOperClass;
7337 tANI_U8 targetChannel;
7338 tANI_U8 secondaryChannelOffset;
7339 tANI_U8 reserved[32];
7340}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7341
7342typedef PACKED_PRE struct PACKED_POST
7343{
7344 tHalMsgHeader header;
7345 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7346} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7347/*---------------------------------------------------------------------------
7348 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7349 *-------------------------------------------------------------------------*/
7350
7351typedef PACKED_PRE struct PACKED_POST
7352{
7353 tANI_U32 status;
7354 /*STA Index*/
7355 tANI_U16 staIdx;
7356} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7357
7358typedef PACKED_PRE struct PACKED_POST
7359{
7360 tHalMsgHeader header;
7361 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7362} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7363
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307364
7365/*---------------------------------------------------------------------------
7366 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7367 *-------------------------------------------------------------------------*/
7368typedef PACKED_PRE struct PACKED_POST
7369{
7370 /*STA Index*/
7371 tANI_U16 staIdx;
7372}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7373
7374typedef PACKED_PRE struct PACKED_POST
7375{
7376 tHalMsgHeader header;
7377 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7378} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7379
7380/*---------------------------------------------------------------------------
7381 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7382 *-------------------------------------------------------------------------*/
7383
7384typedef PACKED_PRE struct PACKED_POST
7385{
7386 tANI_U32 status;
7387
7388 /*STA Index*/
7389 tANI_U16 staIdx;
7390} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7391
7392typedef PACKED_PRE struct PACKED_POST
7393{
7394 tHalMsgHeader header;
7395 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7396} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7397
7398/*---------------------------------------------------------------------------
7399 *WLAN_HAL_TDLS_IND
7400 *--------------------------------------------------------------------------*/
7401
7402typedef PACKED_PRE struct PACKED_POST
7403{
7404 tANI_U16 assocId;
7405 tANI_U16 staIdx;
7406 tANI_U16 status;
7407 tANI_U16 reasonCode;
7408}tTdlsIndParams, *tpTdlsIndParams;
7409
7410
7411typedef PACKED_PRE struct PACKED_POST
7412{
7413 tHalMsgHeader header;
7414 tTdlsIndParams tdlsIndParams;
7415}tTdlsIndMsg, *tpTdlsIndMsg;
7416
7417#endif
7418
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007419/*---------------------------------------------------------------------------
7420 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7421 *--------------------------------------------------------------------------*/
7422
7423typedef PACKED_PRE struct PACKED_POST
7424{
7425 tANI_U8 bssIdx;
7426 tANI_U8 staIdx;
7427 tSirMacAddr staAddr;
7428}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7429
7430
7431typedef PACKED_PRE struct PACKED_POST
7432{
7433 tHalMsgHeader header;
7434 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7435}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7436
7437
Kumar Anandea78e792013-10-10 23:47:01 -07007438/*********** Scan Offload Related Structures *************/
7439#define HAL_NUM_SCAN_SSID 10
7440#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007441
Kumar Anandea78e792013-10-10 23:47:01 -07007442/*
7443 * Enumetation to indicate scan type (active/passive)
7444 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007445typedef enum
7446{
Kumar Anandea78e792013-10-10 23:47:01 -07007447 eSIR_PASSIVE_SCAN,
7448 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7449} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007450
7451typedef PACKED_PRE struct PACKED_POST
7452{
Kumar Anandea78e792013-10-10 23:47:01 -07007453 tANI_U8 numBssid;
7454 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7455 tANI_U8 numSsid;
7456 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7457 tANI_BOOLEAN hiddenSsid;
7458 tSirMacAddr selfMacAddr;
7459 tSirBssType bssType;
7460 tSirScanType scanType;
7461 tANI_U32 minChannelTime;
7462 tANI_U32 maxChannelTime;
7463 tANI_BOOLEAN p2pSearch;
7464 tANI_U8 channelCount;
7465 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7466 tANI_U16 ieFieldLen;
7467 tANI_U8 ieField[1];
7468}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007469
7470/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007471 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007472 *-------------------------------------------------------------------------*/
7473typedef PACKED_PRE struct PACKED_POST
7474{
Kumar Anandf53016f2013-09-04 15:15:53 -07007475 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007476 tScanOffloadReqType scanOffloadParams;
7477} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007478
7479/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007480 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007481 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007482typedef PACKED_PRE struct PACKED_POST
7483{
7484 tHalMsgHeader header;
7485
7486 /*status of the request - just to indicate SO has acknowledged
7487 * * the request and will start scanning*/
7488 tANI_U32 status;
7489} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7490
7491/*---------------------------------------------------------------------------
7492 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7493 *-------------------------------------------------------------------------*/
7494typedef PACKED_PRE struct PACKED_POST
7495{
7496 tHalMsgHeader header;
7497} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7498
7499/*---------------------------------------------------------------------------
7500 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7501 *-------------------------------------------------------------------------*/
7502typedef PACKED_PRE struct PACKED_POST
7503{
7504 tHalMsgHeader header;
7505
7506 /*status of the request - just to indicate SO has acknowledged
7507 the request and will start scanning*/
7508 tANI_U32 status;
7509} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7510
7511/*
7512 * Enumetation of scan events indicated by firmware to the host
7513 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007514typedef enum
7515{
Kumar Anandea78e792013-10-10 23:47:01 -07007516 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7517 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7518 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7519 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7520 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7521 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7522 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7523 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7524 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7525} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007526
7527typedef PACKED_PRE struct PACKED_POST
7528{
Kumar Anandea78e792013-10-10 23:47:01 -07007529 tScanEventType event;
7530 tANI_U32 channel;
7531 tANI_U32 scanId;
7532} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007533
Kumar Anandea78e792013-10-10 23:47:01 -07007534/*---------------------------------------------------------------------------
7535 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7536 *-------------------------------------------------------------------------*/
7537typedef PACKED_PRE struct PACKED_POST
7538{
7539 tHalMsgHeader header;
7540 tScanOffloadEventInfo scanOffloadInd;
7541} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007542
Kumar Anandea78e792013-10-10 23:47:01 -07007543typedef PACKED_PRE struct PACKED_POST {
7544 /** primary 20 MHz channel frequency in mhz */
7545 tANI_U32 mhz;
7546 /** Center frequency 1 in MHz*/
7547 tANI_U32 band_center_freq1;
7548 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7549 tANI_U32 band_center_freq2;
7550 /* The first 26 bits are a bit mask to indicate any channel flags,
7551 (see WLAN_HAL_CHAN_FLAG*)
7552 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7553 tANI_U32 channel_info;
7554 /** contains min power, max power, reg power and reg class id. */
7555 tANI_U32 reg_info_1;
7556 /** contains antennamax */
7557 tANI_U32 reg_info_2;
7558} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007559
Kumar Anandf53016f2013-09-04 15:15:53 -07007560
Kumar Anandea78e792013-10-10 23:47:01 -07007561typedef enum {
7562 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7563 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7564 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7565 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7566 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7567 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7568 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7569 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7570 WLAN_HAL_MODE_11AC_VHT20 = 8,
7571 WLAN_HAL_MODE_11AC_VHT40 = 9,
7572 WLAN_HAL_MODE_11AC_VHT80 = 10,
7573 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7574 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7575 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7576 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007577
Kumar Anandea78e792013-10-10 23:47:01 -07007578} tChannelPhyModeType;
7579
7580#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7581#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7582#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7583#define WLAN_HAL_CHAN_AP_DISABLED 9
7584#define WLAN_HAL_CHAN_FLAG_DFS 10
7585#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7586#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007587#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7588
7589#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007590 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007591 } while(0)
7592
7593#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007594 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007595
7596#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7597 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7598 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7599 } while(0)
7600#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7601
7602#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7603 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7604 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7605 } while(0)
7606#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7607
7608#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7609 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7610 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7611 } while(0)
7612#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7613#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7614 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7615 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7616 } while(0)
7617#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7618
7619#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7620 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7621 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7622 } while(0)
7623#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7624
7625#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7626 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7627 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7628 } while(0)
7629#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 -07007630
7631typedef PACKED_PRE struct PACKED_POST
7632{
7633 tANI_U8 numChan;
7634 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7635} tUpdateChannelReqType;
7636
7637/*---------------------------------------------------------------------------
7638 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7639 *-------------------------------------------------------------------------*/
7640typedef PACKED_PRE struct PACKED_POST
7641{
7642 tHalMsgHeader header;
7643 tUpdateChannelReqType updateChannelParams;
7644} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7645
7646/*---------------------------------------------------------------------------
7647 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7648 *-------------------------------------------------------------------------*/
7649typedef PACKED_PRE struct PACKED_POST
7650{
7651 tHalMsgHeader header;
7652
7653 /*status of the request - just to indicate SO has acknowledged
7654 * * the request and will start scanning*/
7655 tANI_U32 status;
7656} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7657
7658
7659/*---------------------------------------------------------------------------
7660* WLAN_HAL_TX_FAIL_IND
7661*--------------------------------------------------------------------------*/
7662// Northbound indication from FW to host on weak link detection
7663typedef PACKED_PRE struct PACKED_POST
7664{
7665 // Sequence number increases by 1 whenever the device driver
7666 // sends a notification event. This is cleared as 0 when the
7667 // JOIN IBSS commamd is issued
7668 tANI_U16 seqNo;
7669 tANI_U16 staId;
7670 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7671} tHalTXFailIndParams, *tpHalTXFailIndParams;
7672
7673typedef PACKED_PRE struct PACKED_POST
7674{
7675 tHalMsgHeader header;
7676 tHalTXFailIndParams txFailIndParams;
7677} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7678
7679/*---------------------------------------------------------------------------
7680* WLAN_HAL_TX_FAIL_MONITOR_IND
7681*--------------------------------------------------------------------------*/
7682// Southbound message from Host to monitor the Tx failures
7683typedef PACKED_PRE struct PACKED_POST
7684{
7685 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7686 tANI_U8 tx_fail_count;
7687} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7688
7689typedef PACKED_PRE struct PACKED_POST
7690{
7691 tHalMsgHeader header;
7692 tTXFailMonitorInfo txFailMonitor;
7693} tTXFailMonitorInd, *tpTXFailMonitorInd;
7694
7695/*---------------------------------------------------------------------------
7696* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7697*--------------------------------------------------------------------------*/
7698typedef PACKED_PRE struct PACKED_POST
7699{
7700 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7701 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7702} tDestIpNextHopMacPair;
7703
7704typedef PACKED_PRE struct PACKED_POST
7705{
7706 tANI_U8 numEntries;
7707 tDestIpNextHopMacPair destIpMacPair[1];
7708} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007709
7710typedef PACKED_PRE struct PACKED_POST
7711{
7712 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007713 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7714} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007715
Kumar Anandf53016f2013-09-04 15:15:53 -07007716/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007717 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7718 *-------------------------------------------------------------------------*/
7719typedef enum
7720{
7721 /* reassociation is done, but couldn't finish security handshake */
7722 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7723
7724 /* roam has successfully completed by firmware */
7725 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7726
7727 /* UNKONW error */
7728 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7729}tHalRoamOffloadRoamAuthStatus;
7730
7731typedef enum
7732{
7733 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7734 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7735 WLAN_HAL_ROAM_TYPE_OKC,
7736 WLAN_HAL_ROAM_TYPE_CCKM,
7737 WLAN_HAL_ROAM_TYPE_FT,
7738 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7739} tHalRoamOffloadType;
7740
7741typedef PACKED_PRE struct PACKED_POST
7742{
7743 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7744 tANI_U16 beaconProbeRespOffset;
7745
7746 /* Length of beaon / probe resp. */
7747 tANI_U16 beaconProbeRespLength;
7748
7749 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7750 tANI_U16 reassocRespOffset;
7751
7752 /* Length of reassoc resp. */
7753 tANI_U16 reassocRespLength;
7754
7755 /* 0 for probe response frame, 1 for beacon frame, */
7756 tANI_U8 isBeacon;
7757
7758 /* staIdx of old AP */
7759 tANI_U8 oldStaIdx;
7760
7761 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7762 tConfigBssRspParams */
7763 /* bssIdx of new roamed AP */
7764 tANI_U8 bssIdx;
7765
7766 /* DPU descriptor index for PTK */
7767 tANI_U8 dpuDescIndx;
7768
7769 /* PTK DPU signature */
7770 tANI_U8 ucastDpuSignature;
7771
7772 /* DPU descriptor index for GTK*/
7773 tANI_U8 bcastDpuDescIndx;
7774
7775 /* GTK DPU signature */
7776 tANI_U8 bcastDpuSignature;
7777
7778 /*DPU descriptor for IGTK*/
7779 tANI_U8 mgmtDpuDescIndx;
7780
7781 /* IGTK DPU signature */
7782 tANI_U8 mgmtDpuSignature;
7783
7784 /* Station Index for BSS entry*/
7785 tANI_U8 staIdx;
7786
7787 /* Self station index for this BSS */
7788 tANI_U8 selfStaIdx;
7789
7790 /* Bcast station for buffering bcast frames in AP role */
7791 tANI_U8 bcastStaIdx;
7792
7793 /* MAC address of roamed AP */
7794 tSirMacAddr bssid;
7795
7796 /*HAL fills in the tx power used for mgmt frames in this field. */
7797 tANI_S8 txMgmtPower;
7798
7799 /* success or failure */
7800 tHalRoamOffloadRoamAuthStatus authStatus;
7801
7802 /* TODO : add more info as needed */
7803
7804 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7805 /* Beacon or probe resp from new AP. This is in 802.11
7806 frame format starting with MAC header. */
7807 /* Up to beaconProbeRespLength */
7808
7809 /* reassocRespOffset points to starting of reassoc resp frame */
7810 /* Reassoc resp from new AP. This is in 802.11
7811 frame format starting with MAC header. */
7812 /* Up to reassocRespLength */
7813
7814} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7815
7816
7817typedef PACKED_PRE struct PACKED_POST
7818{
7819 tHalMsgHeader header;
7820 tHalRoamOffloadSynchIndParams params;
7821} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7822
7823/*---------------------------------------------------------------------------
7824 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7825 *-------------------------------------------------------------------------*/
7826typedef PACKED_PRE struct PACKED_POST
7827{
7828 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7829 tSirMacAddr bssid;
7830} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7831
7832typedef PACKED_PRE struct PACKED_POST
7833{
7834 tHalMsgHeader header;
7835 tHalRoamOffloadSynchCnfParams params;
7836} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7837
7838
7839/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007840 WLAN_HAL_RATE_UPDATE_IND
7841 *-------------------------------------------------------------------------*/
7842
7843typedef PACKED_PRE struct PACKED_POST
7844{
7845 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7846 tANI_S32 ucastDataRate; //unit Mbpsx10
7847
7848 /* TX flag to differentiate between HT20, HT40 etc */
7849 tTxRateInfoFlags ucastDataRateTxFlag;
7850
7851 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7852 tSirMacAddr bssid;
7853
7854 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7855 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7856
7857 /* TX flag to differentiate between HT20, HT40 etc */
7858 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7859
7860 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7861 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7862
7863 /* TX flag to differentiate between HT20, HT40 etc */
7864 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7865
7866 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7867 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7868
7869 /* TX flag to differentiate between HT20, HT40 etc */
7870 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7871
7872} tHalRateUpdateParams, *tpHalRateUpdateParams;
7873
7874typedef PACKED_PRE struct PACKED_POST
7875{
7876 tHalMsgHeader header;
7877 tHalRateUpdateParams halRateUpdateParams;
7878} tHalRateUpdateInd, * tpHalRateUpdateInd;
7879
7880/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307881 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7882 *-------------------------------------------------------------------------*/
7883
Abhishek Singhe0443152015-06-18 10:07:43 +05307884#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307885
7886typedef PACKED_PRE struct PACKED_POST
7887{
7888 tANI_U32 startFreq;
7889 tANI_U32 endFreq;
7890} tHalFreqRange, *tpHalFreqRange;
7891
7892typedef PACKED_PRE struct PACKED_POST
7893{
7894 tANI_U32 avoidCnt;
7895 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7896} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7897
7898typedef PACKED_PRE struct PACKED_POST
7899{
7900 tHalMsgHeader header;
7901 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7902} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7903
7904/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307905 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007906 *-------------------------------------------------------------------------*/
7907
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307908typedef enum
7909{
7910 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7911 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7912 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7913}tHT40OBssScanCmdType;
7914
7915typedef PACKED_PRE struct PACKED_POST
7916{
7917 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007918
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307919 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007920 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7921 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7922 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7923 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7924 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7925 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7926 tANI_U16 OBSSScanActivityThreshold;
7927
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307928 tANI_U8 selfStaIdx;
7929 tANI_U8 bssIdx;
7930 tANI_U8 fortyMHZIntolerent;
7931 tANI_U8 channelCount;
7932 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7933 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007934
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307935 tANI_U16 ieFieldLen;
7936 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7937}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7938
7939typedef PACKED_PRE struct PACKED_POST
7940{
7941 tHalMsgHeader header;
7942 tHT40ObssScanIndType scanHT40ObssScanParams;
7943} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7944
7945/*---------------------------------------------------------------------------
7946 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7947 *-------------------------------------------------------------------------*/
7948typedef PACKED_PRE struct PACKED_POST
7949{
7950 tHalMsgHeader header;
7951 tANI_U8 bssIdx;
7952} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307953
7954/*---------------------------------------------------------------------------
7955 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7956 *-------------------------------------------------------------------------*/
7957
7958typedef PACKED_PRE struct PACKED_POST
7959{
7960 /* Valid BSS Idx for beacon miss rate */
7961 tANI_U8 bssIdx;
7962
7963}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7964
7965typedef PACKED_PRE struct PACKED_POST
7966{
7967 tHalMsgHeader header;
7968 tHalBcnMissRateReqParams bcnMissRateReqParams;
7969} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7970
7971/*---------------------------------------------------------------------------
7972 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7973 *-------------------------------------------------------------------------*/
7974
7975typedef PACKED_PRE struct PACKED_POST
7976{
7977 tANI_U32 status;
7978 tANI_U32 bcnMissCnt;
7979}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7980
7981typedef PACKED_PRE struct PACKED_POST
7982{
7983 tHalMsgHeader header;
7984 tHalBcnMissRateRspParams bcnMissRateRspParams;
7985}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7986
Sunil Dutt8377a382014-05-26 21:18:04 +05307987/*--------------------------------------------------------------------------
7988* WLAN_HAL_LL_SET_STATS_REQ
7989*---------------------------------------------------------------------------*/
7990
7991typedef PACKED_PRE struct PACKED_POST
7992{
7993 tANI_U32 req_id;
7994 tANI_U8 sta_id;
7995 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7996 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7997} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7998
7999typedef PACKED_PRE struct PACKED_POST
8000{
8001 tHalMsgHeader header;
8002 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
8003} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
8004
8005/*---------------------------------------------------------------------------
8006 WLAN_HAL_LL_SET_STATS_RSP
8007---------------------------------------------------------------------------*/
8008
8009typedef PACKED_PRE struct PACKED_POST
8010{
8011 tANI_U32 status;
8012 tANI_U32 resp_id;
8013 tANI_U8 iface_id;
8014} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
8015
8016typedef PACKED_PRE struct PACKED_POST
8017{
8018 tHalMsgHeader header;
8019 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
8020} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
8021
8022/*---------------------------------------------------------------------------
8023 WLAN_HAL_LL_GET_STATS_REQ
8024---------------------------------------------------------------------------*/
8025
8026typedef PACKED_PRE struct PACKED_POST
8027{
8028 tANI_U32 req_id;
8029 tANI_U8 sta_id;
8030 tANI_U32 param_id_mask;
8031} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
8032
8033typedef PACKED_PRE struct PACKED_POST
8034{
8035 tHalMsgHeader header;
8036 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
8037} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
8038
8039/*---------------------------------------------------------------------------
8040 WLAN_HAL_LL_GET_STATS_RSP
8041---------------------------------------------------------------------------*/
8042typedef PACKED_PRE struct PACKED_POST
8043{
8044 tANI_U32 status;
8045 tANI_U32 resp_id;
8046 tANI_U8 iface_id;
8047} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
8048
8049typedef PACKED_PRE struct PACKED_POST
8050{
8051 tHalMsgHeader header;
8052 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
8053} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
8054
8055/*---------------------------------------------------------------------------
8056 WLAN_HAL_LL_CLEAR_STATS_REQ
8057---------------------------------------------------------------------------*/
8058typedef PACKED_PRE struct PACKED_POST
8059{
8060 tANI_U32 req_id;
8061 tANI_U8 sta_id;
8062 tANI_U32 stats_clear_req_mask;
8063 tANI_U8 stop_req;
8064} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8065
8066typedef PACKED_PRE struct PACKED_POST
8067{
8068 tHalMsgHeader header;
8069 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8070} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8071
8072/*---------------------------------------------------------------------------
8073 WLAN_HAL_LL_CLEAR_STATS_RSP
8074---------------------------------------------------------------------------*/
8075typedef PACKED_PRE struct PACKED_POST
8076{
8077 tANI_U32 status;
8078 tANI_U8 sta_id;
8079 tANI_U32 resp_id;
8080 tANI_U32 stats_clear_rsp_mask;
8081 tANI_U8 stop_req_status;
8082} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8083
8084typedef PACKED_PRE struct PACKED_POST
8085{
8086 tHalMsgHeader header;
8087 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8088} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8089
8090/*---------------------------------------------------------------------------
8091 WLAN_HAL_LL_NOTIFY_STATS
8092---------------------------------------------------------------------------*/
8093
8094typedef PACKED_PRE struct PACKED_POST
8095{
8096 tHalMsgHeader header;
8097 tANI_U32 param_id;
8098 tANI_U8 iface_id;
8099 tANI_U32 resp_id;
8100 tANI_U32 more_result_to_follow;
8101 tANI_U8 result[1];
8102} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008103
Dino Mycle108eff22014-06-10 09:36:44 +05308104/*---------------------------------------------------------------------------
8105 * WLAN_HAL_EXT_SCAN_START_REQ
8106 *-------------------------------------------------------------------------*/
8107
Dino Mycle8afbac12014-07-04 22:06:17 +05308108typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308109{
8110 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8111 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8112 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8113 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8114 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8115 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8116 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308117 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308118} tExtScanChannelBandMask;
8119
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308120#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8121#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8122
8123#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8124
8125#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8126#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8127#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8128#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8129
Dino Mycle108eff22014-06-10 09:36:44 +05308130typedef PACKED_PRE struct PACKED_POST
8131{
8132 tANI_U32 channel; // frequency
8133 tANI_U32 dwellTimeMs; // dwell time hint
8134 tANI_U8 passive; // 0 => active,
8135 // 1 => passive scan; ignored for DFS
8136}tExtScanChannelSpec, *tpExtScanChannelSpec;
8137
8138typedef PACKED_PRE struct PACKED_POST
8139 {
8140 /* bucket index, 0 based */
8141 tANI_U8 bucketId;
8142 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8143 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308144 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308145 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308146 /* This is a bit field; which defines following bits -
8147 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8148 is % full
8149 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8150 after scan
8151 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8152 (beacons/probe responses + IEs) in real time to HAL, in addition
8153 to completion events
8154 Note: To keep backward compatibility, fire completion events
8155 regardless of REPORT_EVENTS_EACH_SCAN.
8156 * REPORT_EVENTS_NO_BATCH => controls batching,
8157 0 => batching, 1 => no batching
8158 */
Dino Mycle108eff22014-06-10 09:36:44 +05308159 tANI_U8 reportEvents;
8160 /* number of channels */
8161 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308162 // new Exponential Scan params
8163 tANI_U32 max_period;
8164 tANI_U32 exponent;
8165 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308166 /* if channels to scan. In the TLV channelList[] */
8167 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8168}tExtScanBucketData, *tpExtScanBucketData;
8169
8170typedef PACKED_PRE struct PACKED_POST
8171{
8172 tANI_U32 requestId;
8173 tANI_U8 sessionId;
8174 /* Base period (milliseconds) used by scan buckets to define periodicity
8175 of the scans */
8176 tANI_U32 basePeriod;
8177 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8178 (keep the most significant, i.e. stronger RSSI) */
8179 tANI_U32 maxApPerScan;
8180 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308181 tANI_U32 reportThresholdPercent;
8182 /* in number of scans, wake up AP after these many scans */
8183 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308184 /* This will be off channel minimum time */
8185 tANI_U16 neighborScanChannelMinTime;
8186 /* This will be out off channel max time */
8187 tANI_U16 neighborScanChannelMaxTime;
8188 /* This will be the home (BSS) channel time */
8189 tANI_U16 homeAwayTime;
8190 /* number of buckets (maximum 8) */
8191 tANI_U8 numBuckets;
8192 /* Buckets data */
8193 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8194} tHalExtScanStartReq, *tpHalExtScanStartReq;
8195
8196typedef PACKED_PRE struct PACKED_POST
8197{
8198 tHalMsgHeader header;
8199 tHalExtScanStartReq extScanStartReq;
8200}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8201
8202/*---------------------------------------------------------------------------
8203 * WLAN_HAL_EXT_SCAN_START_RSP
8204 *-------------------------------------------------------------------------*/
8205
8206typedef PACKED_PRE struct PACKED_POST
8207{
8208 tANI_U32 requestId;
8209 tANI_U32 status;
8210}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8211
8212typedef PACKED_PRE struct PACKED_POST
8213{
8214 tHalMsgHeader header;
8215 tHalExtScanStartRsp extScanStartRsp;
8216}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8217
8218/*---------------------------------------------------------------------------
8219 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8220 *-------------------------------------------------------------------------*/
8221
8222typedef PACKED_PRE struct PACKED_POST
8223{
8224 tANI_U32 requestId;
8225 tANI_U8 sessionId;
8226}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8227
8228typedef PACKED_PRE struct PACKED_POST
8229{
8230 tHalMsgHeader header;
8231 tHalExtScanGetCapReq extScanGetCapReq;
8232}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8233
8234/*---------------------------------------------------------------------------
8235 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8236 *-------------------------------------------------------------------------*/
8237
8238typedef PACKED_PRE struct PACKED_POST
8239{
8240 tANI_U32 requestId;
8241 tANI_U32 status;
8242
8243 tANI_U32 scanCacheSize;
8244 tANI_U32 scanBuckets;
8245 tANI_U32 maxApPerScan;
8246 tANI_U32 maxRssiSampleSize;
8247 tANI_U32 maxScanReportingThreshold;
8248
8249 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308250 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308251
8252 tANI_U32 maxBssidHistoryEntries;
8253}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8254
8255typedef PACKED_PRE struct PACKED_POST
8256{
8257 tHalMsgHeader header;
8258 tHalExtScanGetCapRsp extScanGetCapRsp;
8259}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8260
8261/*---------------------------------------------------------------------------
8262 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8263 *-------------------------------------------------------------------------*/
8264
8265typedef PACKED_PRE struct PACKED_POST
8266{
8267 tANI_U32 requestId;
8268 tANI_U8 sessionId;
8269 /*
8270 * 1 return cached results and flush it
8271 * 0 return cached results and do not flush
8272 */
8273 tANI_BOOLEAN flush;
8274}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8275
8276typedef PACKED_PRE struct PACKED_POST
8277{
8278 tHalMsgHeader header;
8279 tHalExtScanGetScanReq getScanReq;
8280}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8281
8282/*---------------------------------------------------------------------------
8283 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8284 *-------------------------------------------------------------------------*/
8285
8286typedef PACKED_PRE struct PACKED_POST
8287{
8288 tANI_U32 requestId;
8289 tANI_U32 status;
8290}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8291
8292typedef PACKED_PRE struct PACKED_POST
8293{
8294 tHalMsgHeader header;
8295 tHalExtScanGetScanRsp getScanRsp;
8296}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8297
8298/*---------------------------------------------------------------------------
8299 * WLAN_HAL_EXT_SCAN_RESULT_IND
8300 *-------------------------------------------------------------------------*/
8301
8302typedef PACKED_PRE struct PACKED_POST
8303{
8304 tANI_U64 ts; // time of discovery
8305 tANI_U8 ssid[32+1]; // null terminated SSID
8306 tSirMacAddr bssid; // BSSID
8307 tANI_U32 channel; // channel frequency in MHz
8308 tANI_S32 rssi; // RSSI in dBm
8309 tANI_U32 rtt; // RTT in nanoseconds - not expected
8310 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308311 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308312 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308313 tANI_U16 ieLength; // size of the ie_data blob
8314 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308315} tHalExtScanResultParams, *tpHalExtScanResultParams;
8316
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308317/* Get the GSCAN cached scan results */
8318typedef struct {
8319 tANI_U16 scan_id; // a unique identifier for the scan unit
8320 tANI_U8 flags; // a bitmask with additional
8321 // information about scan
8322 tANI_U8 num_results; // number of bssids retrieved by the scan
8323 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8324 // scan results - one for each bssid
8325} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8326
Dino Mycle108eff22014-06-10 09:36:44 +05308327typedef PACKED_PRE struct PACKED_POST
8328{
8329 tHalMsgHeader header;
8330 tANI_U32 requestId;
8331 tANI_U32 scanResultSize;
8332 tANI_BOOLEAN moreData;
8333 tANI_U8 extScanResult[1];
8334}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8335
8336/*---------------------------------------------------------------------------
8337 * WLAN_HAL_EXT_SCAN_STOP_REQ
8338 *-------------------------------------------------------------------------*/
8339
8340typedef PACKED_PRE struct PACKED_POST
8341{
8342 tANI_U32 requestId;
8343 tANI_U8 sessionId;
8344}tHalExtScanStopReq, *tpHalExtScanStopReq;
8345
8346typedef PACKED_PRE struct PACKED_POST
8347{
8348 tHalMsgHeader header;
8349 tHalExtScanStopReq extScanStopReq;
8350}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8351
8352/*---------------------------------------------------------------------------
8353 * WLAN_HAL_EXT_SCAN_STOP_RSP
8354 *-------------------------------------------------------------------------*/
8355
8356typedef PACKED_PRE struct PACKED_POST
8357{
8358 tANI_U32 requestId;
8359 tANI_U32 status;
8360}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8361
8362typedef PACKED_PRE struct PACKED_POST
8363{
8364 tHalMsgHeader header;
8365 tHalExtScanStopRsp extScanStopRsp;
8366}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8367
8368/*---------------------------------------------------------------------------
8369 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8370 *-------------------------------------------------------------------------*/
8371
Dino Mycle8afbac12014-07-04 22:06:17 +05308372typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308373{
8374 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8375 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308376 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308377} tHalExtScanProgressEventType;
8378
8379typedef PACKED_PRE struct PACKED_POST
8380{
8381 tANI_U32 requestId;
8382 tANI_U32 status;
8383 tHalExtScanProgressEventType extScanEventType;
8384}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8385
8386typedef PACKED_PRE struct PACKED_POST
8387{
8388 tHalMsgHeader header;
8389 tHalExtScanProgressInd extScanProgressInd;
8390}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8391
8392/*---------------------------------------------------------------------------
8393 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8394 *-------------------------------------------------------------------------*/
8395
8396typedef PACKED_PRE struct PACKED_POST
8397{
8398 tANI_U32 requestId;
8399 tANI_U32 numOfScanResAvailable;
8400}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8401
8402typedef PACKED_PRE struct PACKED_POST
8403{
8404 tHalMsgHeader header;
8405 tHalExtScanResAvailableInd extScanResAvailableInd;
8406}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8407
Dino Mycle108eff22014-06-10 09:36:44 +05308408typedef PACKED_PRE struct PACKED_POST
8409{
8410 /* AP BSSID */
8411 tSirMacAddr bssid;
8412 /* low threshold - used in L for significant_change - not used in L for
8413 hotlist*/
8414 tANI_S32 lowRssiThreshold;
8415 /* high threshold - used in L for significant rssi - used in L for hotlist */
8416 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308417} tApThresholdParams, *tpApThresholdParams;
8418
Dino Mycle108eff22014-06-10 09:36:44 +05308419/*---------------------------------------------------------------------------
8420 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8421 *-------------------------------------------------------------------------*/
8422
8423typedef PACKED_PRE struct PACKED_POST
8424{
8425 tANI_U32 requestId;
8426 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308427 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308428 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308429 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308430 // hotlist APs
8431 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8432} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8433
8434typedef PACKED_PRE struct PACKED_POST
8435{
8436 tHalMsgHeader header;
8437 tHalBssidHotlistSetReq bssidHotlistSetReq;
8438}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8439
8440/*---------------------------------------------------------------------------
8441 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8442 *-------------------------------------------------------------------------*/
8443
8444typedef PACKED_PRE struct PACKED_POST
8445{
8446 tANI_U32 requestId;
8447 tANI_U32 status;
8448}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8449
8450typedef PACKED_PRE struct PACKED_POST
8451{
8452 tHalMsgHeader header;
8453 tHalHotlistSetRsp hotlistSetRsp;
8454}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8455
8456/*---------------------------------------------------------------------------
8457 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8458 *-------------------------------------------------------------------------*/
8459
8460typedef PACKED_PRE struct PACKED_POST
8461{
8462 tANI_U32 requestId;
8463}tHalHotlistResetReq, *tpHalHotlistResetReq;
8464
8465typedef PACKED_PRE struct PACKED_POST
8466{
8467 tHalMsgHeader header;
8468 tHalHotlistResetReq hotlistResetReq;
8469}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8470
8471/*---------------------------------------------------------------------------
8472 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8473 *-------------------------------------------------------------------------*/
8474
8475typedef PACKED_PRE struct PACKED_POST
8476{
8477 tANI_U32 requestId;
8478 tANI_U32 status;
8479}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8480
8481typedef PACKED_PRE struct PACKED_POST
8482{
8483 tHalMsgHeader header;
8484 tHalHotlistResetRsp hotlistResetRsp;
8485}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8486
8487/*---------------------------------------------------------------------------
8488 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8489 *-------------------------------------------------------------------------*/
8490
8491typedef PACKED_PRE struct PACKED_POST
8492{
8493 tHalMsgHeader header;
8494 tANI_U32 requestId;
8495 tANI_U32 numHotlistBss;
8496 tANI_BOOLEAN moreData;
8497 tANI_U8 bssHotlist[1];
8498}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8499
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308500/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308501 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8502 *-------------------------------------------------------------------------*/
8503
8504typedef PACKED_PRE struct PACKED_POST
8505{
8506 /* SSID */
8507 char ssid [32+1];
8508 /* low threshold - used in L for significant_change - not used in L for
8509 hotlist*/
8510 tANI_S32 lowRssiThreshold;
8511 /* high threshold - used in L for significant rssi - used in L for hotlist */
8512 tANI_S32 highRssiThreshold;
8513 /* band */
8514 tANI_U32 band;
8515 } tSsidThresholdParams, *tpSsidThresholdParams;
8516
8517
8518typedef PACKED_PRE struct PACKED_POST
8519{
8520 tANI_U32 requestId;
8521 tANI_U8 sessionId;
8522 tANI_U32 lostSsidSampleSize;
8523 // number of hotlist SSIDs
8524 tANI_U32 numSsid;
8525 // hotlist SSIDs
8526 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8527} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8528
8529typedef PACKED_PRE struct PACKED_POST
8530{
8531 tHalMsgHeader header;
8532 tHalSsidHotlistSetReq ssidHotlistSetReq;
8533}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8534
8535/*---------------------------------------------------------------------------
8536 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8537 *-------------------------------------------------------------------------*/
8538typedef PACKED_PRE struct PACKED_POST
8539{
8540 tANI_U32 requestId;
8541 tANI_U32 status;
8542}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8543
8544typedef PACKED_PRE struct PACKED_POST
8545{
8546 tHalMsgHeader header;
8547 tHalSsidHotlistSetRsp hotlistSetRsp;
8548}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8549
8550/*---------------------------------------------------------------------------
8551 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8552 *-------------------------------------------------------------------------*/
8553
8554typedef PACKED_PRE struct PACKED_POST
8555{
8556 tANI_U32 requestId;
8557}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8558
8559typedef PACKED_PRE struct PACKED_POST
8560{
8561 tHalMsgHeader header;
8562 tHalSsidHotlistResetReq hotlistResetReq;
8563}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8564
8565/*---------------------------------------------------------------------------
8566 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8567 *-------------------------------------------------------------------------*/
8568
8569typedef PACKED_PRE struct PACKED_POST
8570{
8571 tANI_U32 requestId;
8572 tANI_U32 status;
8573}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8574
8575typedef PACKED_PRE struct PACKED_POST
8576{
8577 tHalMsgHeader header;
8578 tHalSsidHotlistResetRsp hotlistResetRsp;
8579}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8580
8581/*---------------------------------------------------------------------------
8582 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8583 *-------------------------------------------------------------------------*/
8584
8585typedef PACKED_PRE struct PACKED_POST
8586{
8587 tHalMsgHeader header;
8588 tANI_U32 requestId;
8589 tANI_BOOLEAN ssid_found;
8590 tANI_U32 numHotlistSsid;
8591 tANI_BOOLEAN moreData;
8592 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8593}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8594
8595/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308596 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8597 *-------------------------------------------------------------------------*/
8598
8599typedef PACKED_PRE struct PACKED_POST
8600{
8601 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8602 tANI_U32 reserved; //reserved for future use
8603}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8604
8605typedef PACKED_PRE struct PACKED_POST
8606{
8607 tHalMsgHeader header;
8608 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8609}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8610
8611/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308612 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8613 *--------------------------------------------------------------------------*/
8614typedef PACKED_PRE struct PACKED_POST
8615{
8616 tANI_U8 macAddr[6];
8617 tANI_U32 reserved1;
8618 tANI_U32 reserved2;
8619}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8620
8621typedef PACKED_PRE struct PACKED_POST
8622{
8623 tHalMsgHeader header;
8624 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8625} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8626
8627/*---------------------------------------------------------------------------
8628* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8629*-------------------------------------------------------------------------*/
8630
8631typedef PACKED_PRE struct PACKED_POST
8632{
8633 tANI_U32 status;
8634 tANI_U32 reserved1;
8635} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8636
8637typedef PACKED_PRE struct PACKED_POST
8638{
8639 tHalMsgHeader header;
8640 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8641} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308642/*---------------------------------------------------------------------------
8643 *WLAN_HAL_GET_FRAME_LOG_REQ
8644 *--------------------------------------------------------------------------*/
8645typedef PACKED_PRE struct PACKED_POST
8646{
8647 tANI_U8 flags;
8648}tGetFrameLogReqType, * tpGetFrameLogReqType;
8649
8650typedef PACKED_PRE struct PACKED_POST
8651{
8652 tHalMsgHeader header;
8653 tGetFrameLogReqType tGetFrameLogReqParams;
8654} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8655
8656/*---------------------------------------------------------------------------
8657 * WLAN_HAL_GET_FRAME_LOG_RSP
8658 *-------------------------------------------------------------------------*/
8659typedef PACKED_PRE struct PACKED_POST
8660{
8661 tANI_U32 status;
8662} tGetFrameLogResp, * tpGetFrameLogResp;
8663
8664typedef PACKED_PRE struct PACKED_POST
8665{
8666 tHalMsgHeader header;
8667 tGetFrameLogResp tGetFrameLogRespParams;
8668} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8669
8670/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308671 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8672 *-------------------------------------------------------------------------*/
8673typedef PACKED_PRE struct PACKED_POST
8674{
8675 tANI_U32 reasonCode;
8676}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8677
8678typedef PACKED_PRE struct PACKED_POST
8679{
8680 tHalMsgHeader header;
8681 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8682}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8683
8684/*---------------------------------------------------------------------------
8685 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8686 *-------------------------------------------------------------------------*/
8687typedef PACKED_PRE struct PACKED_POST
8688{ tANI_U32 status;
8689}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8690
8691typedef PACKED_PRE struct PACKED_POST
8692{
8693 tHalMsgHeader header;
8694 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8695}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8696
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308697/*---------------------------------------------------------------------------
8698 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8699 *-------------------------------------------------------------------------*/
8700typedef PACKED_PRE struct PACKED_POST
8701{
8702 tANI_U8 bssIdx;
8703 tANI_U8 rssi;
8704 tSirMacAddr selfMacAddr;
8705 tANI_U32 linkFlCnt;
8706 tANI_U32 linkFlTx;
8707 tANI_U32 lastDataRate;
8708 tANI_U32 rsvd1;
8709 tANI_U32 rsvd2;
8710}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8711
8712typedef PACKED_PRE struct PACKED_POST
8713{
8714 tHalMsgHeader header;
8715 tHalLostLinkParametersIndParams lostLinkParameters;
8716}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308717
8718
8719/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308720 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308721 *--------------------------------------------------------------------------*/
8722typedef PACKED_PRE struct PACKED_POST
8723{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308724 /* BIT0 - enable frame logging
8725 * BIT1 - enableBMUHWtracing
8726 * BIT2 - enableQXDMlogging
8727 * BIT3 - enableUElogDpuTxp
8728 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308729 tANI_U8 enableFlag;
8730 tANI_U8 frameType;
8731 tANI_U8 frameSize;
8732 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308733 /* Host mem address to be used as logmailbox */
8734 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308735 /* firmware will wakeup the host to send logs always */
8736 tANI_U8 continuousFrameLogging;
8737 /* Logging mail box version */
8738 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308739 /* Max ring size in firmware to log msgs when host is suspended state */
8740 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308741 /* when firmware log reaches this threshold and
8742 * if host is awake it will push the logs.
8743 */
8744 tANI_U8 minLogBuffSize;
8745 /* Reserved for future purpose */
8746 tANI_U32 reserved0;
8747 tANI_U32 reserved1;
8748 tANI_U32 reserved2;
8749}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308750
8751typedef PACKED_PRE struct PACKED_POST
8752{
8753 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308754 tFWLoggingInitReqType tFWLoggingInitReqParams;
8755} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308756
8757/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308758 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308759 *-------------------------------------------------------------------------*/
8760typedef PACKED_PRE struct PACKED_POST
8761{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308762 tANI_U32 status;
8763 /* FW mail box address */
8764 tANI_U64 logMailBoxAddr;
8765 /* Logging mail box version */
8766 tANI_U8 logMailBoxVer;
8767 /* Qshrink is enabled */
8768 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05308769 /* fw_dump_max_size is used to tell fwr mem dump size */
8770 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308771 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308772 tANI_U32 reserved1;
8773 tANI_U32 reserved2;
8774} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308775
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05308776
8777typedef PACKED_PRE struct PACKED_POST {
8778 tANI_U32 request_id;
8779 tSirMacAddr bssId;
8780 tANI_S8 min_rssi;
8781 tANI_S8 max_rssi;
8782} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
8783
8784typedef PACKED_PRE struct PACKED_POST
8785{
8786 tHalMsgHeader header;
8787 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
8788}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
8789
8790//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
8791typedef PACKED_PRE struct PACKED_POST {
8792 tANI_U32 request_id;
8793 tANI_U32 status;
8794} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
8795
8796typedef PACKED_PRE struct PACKED_POST
8797{
8798 tHalMsgHeader header;
8799 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
8800}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
8801
8802//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
8803typedef PACKED_PRE struct PACKED_POST
8804{
8805 tANI_U32 request_id;
8806 tSirMacAddr bssId;
8807 tANI_S8 rssi;
8808} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
8809
8810typedef PACKED_PRE struct PACKED_POST
8811{
8812 tHalMsgHeader header;
8813 tHalRssiMonitorIndParams RssiMonitorIndParams;
8814}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
8815
8816
8817//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
8818typedef PACKED_PRE struct PACKED_POST {
8819 tANI_U32 request_id;
8820 tSirMacAddr bssId;
8821} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
8822
8823typedef PACKED_PRE struct PACKED_POST
8824{
8825 tHalMsgHeader header;
8826 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
8827}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
8828
8829//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
8830typedef PACKED_PRE struct PACKED_POST {
8831 tANI_U32 request_id;
8832 tANI_U32 status;
8833} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
8834
8835typedef PACKED_PRE struct PACKED_POST
8836{
8837 tHalMsgHeader header;
8838 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
8839}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
8840
8841
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308842typedef PACKED_PRE struct PACKED_POST
8843{
8844 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308845 tFWLoggingInitResp tFWLoggingInitRespParams;
8846} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
8847
8848/*---------------------------------------------------------------------------
8849 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
8850 *-------------------------------------------------------------------------*/
8851typedef PACKED_PRE struct PACKED_POST
8852{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05308853 tANI_U16 status;
8854 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308855 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8856 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8857} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
8858
8859typedef PACKED_PRE struct PACKED_POST
8860{
8861 tHalMsgHeader header;
8862 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
8863} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
8864
8865/*---------------------------------------------------------------------------
8866 * Logging mail box structure
8867 *-------------------------------------------------------------------------*/
8868
8869#define MAILBOX_VERSION_V1 0x1
8870
8871typedef PACKED_PRE struct PACKED_POST
8872{
8873 /* Logging mail box version */
8874 tANI_U8 logMbVersion;
8875 /* Current logging buffer address */
8876 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8877 /* Current logging buffer length */
8878 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8879 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
8880 tANI_U16 reasonCode;
8881 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
8882 tANI_U8 logType;
8883 /* Indicate if Last segment of log is received*/
8884 tANI_BOOLEAN done;
8885}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308886
Katya Nigamf0511f62015-05-05 16:40:57 +05308887/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05308888 *WLAN_HAL_FW_MEMORY_DUMP_REQ
8889 *--------------------------------------------------------------------------*/
8890typedef PACKED_PRE struct PACKED_POST
8891{
8892 tANI_U32 reserved;
8893}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
8894
8895typedef PACKED_PRE struct PACKED_POST
8896{
8897 tHalMsgHeader header;
8898 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
8899} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
8900
8901/*---------------------------------------------------------------------------
8902 * WLAN_HAL_FW_MEMORY_DUMP_RSP
8903 *-------------------------------------------------------------------------*/
8904typedef PACKED_PRE struct PACKED_POST
8905{
8906 tANI_U32 status;
8907} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
8908
8909typedef PACKED_PRE struct PACKED_POST
8910{
8911 tHalMsgHeader header;
8912 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
8913} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
8914
8915
8916/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05308917* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
8918*-------------------------------------------------------------------------*/
8919
8920/* only 1 filter is supported as of now */
8921#define NUM_FILTERS_SUPPORTED 1
8922
8923typedef PACKED_PRE struct PACKED_POST
8924{
8925 tSirMacAddr macAddr;
8926 tANI_U8 isA1filteringNeeded;
8927 tANI_U8 isA2filteringNeeded;
8928 tANI_U8 isA3filteringNeeded;
8929}tHalMacFilter, *tpHalMacFilter;
8930
8931typedef PACKED_PRE struct PACKED_POST
8932{
8933 tANI_U8 channelNumber;
8934 ePhyChanBondState cbState;
8935
8936 tANI_U32 maxAmpduLen;
8937 tANI_U32 maxMpduInAmpduLen;
8938
8939 tANI_U8 crcCheckEnabled;
8940
8941 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
8942 tANI_U8 numMacFilters;
8943 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
8944
8945 /* Each bit position maps to IEEE convention of typeSubtype */
8946 tANI_U64 typeSubtypeBitmap;
8947
8948 tANI_U64 reserved;
8949
8950}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
8951
8952typedef PACKED_PRE struct PACKED_POST
8953{
8954 tHalMsgHeader header;
8955 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
8956}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
8957
8958
8959/*---------------------------------------------------------------------------
8960* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
8961*-------------------------------------------------------------------------*/
8962
8963typedef PACKED_PRE struct PACKED_POST
8964{
8965 tANI_U32 status;
8966}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
8967
8968typedef PACKED_PRE struct PACKED_POST
8969{
8970 tHalMsgHeader header;
8971 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
8972}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
8973
8974/*---------------------------------------------------------------------------
8975* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
8976*-------------------------------------------------------------------------*/
8977
8978typedef PACKED_PRE struct PACKED_POST
8979{
8980 tHalMsgHeader header;
8981 tANI_U8 resetConfiguration;
8982}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
8983
8984/*---------------------------------------------------------------------------
8985* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
8986*-------------------------------------------------------------------------*/
8987
8988typedef PACKED_PRE struct PACKED_POST
8989{
8990 tANI_U32 status;
8991}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
8992
8993typedef PACKED_PRE struct PACKED_POST
8994{
8995 tHalMsgHeader header;
8996 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
8997}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
8998
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05308999typedef PACKED_PRE struct PACKED_POST
9000{
9001 tANI_U8 status;
9002}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
9003
Arun Khandavalliafc16432015-10-16 20:11:31 +05309004typedef PACKED_PRE struct PACKED_POST
9005{
9006 tANI_U8 paramType;
9007 tANI_U32 paramValue;
9008 tSirMacAddr bssid;
9009} tSetWifiConfigParams, *tpSetWifiConfigParams;
9010
9011typedef PACKED_PRE struct PACKED_POST
9012{
9013 tHalMsgHeader header;
9014 tSetWifiConfigParams wifiConfigParams;
9015} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
9016
9017typedef PACKED_PRE struct PACKED_POST {
9018 tANI_U32 status;
9019} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
9020
9021typedef PACKED_PRE struct PACKED_POST
9022{
9023 tHalMsgHeader header;
9024
9025 tHalSetWifiConfigRspParams setWifiConfigRspParams;
9026} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
9027
Mahesh A Saptasagarf5ebe412015-12-18 19:01:44 +05309028/*---------------------------------------------------------------------------
9029* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
9030*-------------------------------------------------------------------------*/
9031typedef PACKED_PRE struct PACKED_POST
9032{
9033 tANI_U32 reserved;
9034} tHalAntennaDiversitySelectionReqParams, *tpHalAntennaDiversitySelectionReqParams;
9035
9036typedef PACKED_PRE struct PACKED_POST
9037{
9038 tHalMsgHeader header;
9039 tHalAntennaDiversitySelectionReqParams AntDivSelReqParams;
9040}tHalAntennaDiversitySelectionReqMsg;
9041
9042/*---------------------------------------------------------------------------
9043* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP
9044*-------------------------------------------------------------------------*/
9045
9046typedef PACKED_PRE struct PACKED_POST
9047{
9048 tANI_U16 status;
9049 tANI_U32 selectedAntennaId;
9050 tANI_U32 reserved;
9051} tHalAntennaDiversitySelectionRspParams, *tpHalAntennaDiversitySelectionRspParams;
9052
Mahesh A Saptasagarbdad5eb2016-02-04 19:25:25 +05309053/* WDI_MODIFY_ROAM_PARAMS_IND */
9054typedef PACKED_PRE struct PACKED_POST {
9055 tANI_U8 param;
9056 tANI_U32 value;
9057} tHalModifyRoamParamsIndParams, *tpHalModifyRoamParamsIndParams;
9058
9059typedef PACKED_PRE struct PACKED_POST
9060{
9061 tHalMsgHeader header;
9062 tHalModifyRoamParamsIndParams modifyRoamParamsReqParams;
9063} tHalModifyRoamParamsInd, *tpHalModifyRoamParamsInd;
9064
Jeff Johnson295189b2012-06-20 16:38:30 -07009065#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
9066#pragma pack(pop)
9067#elif defined(__ANI_COMPILER_PRAGMA_PACK)
9068#else
9069#endif
9070
9071#endif /* _WLAN_HAL_MSG_H_ */