blob: 11b231b5d149db3c64efb4fca52f5df00d83fb0d [file] [log] [blame]
Dino Mycle8afbac12014-07-04 22:06:17 +05301
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05302/* Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
Amar Singhalb41c45b2014-03-21 14:44:14 -07003* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
Dino Mycle8afbac12014-07-04 22:06:17 +05304
Amar Singhalb41c45b2014-03-21 14:44:14 -07005*
6*
7* Permission to use, copy, modify, and/or distribute this software for
8* any purpose with or without fee is hereby granted, provided that the
9* above copyright notice and this permission notice appear in all
10* copies.
11*
12* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19* PERFORMANCE OF THIS SOFTWARE.
20*/
Prakash Dhavali0573c4d2014-02-12 13:19:04 -080021
22/*
Amar Singhalb41c45b2014-03-21 14:44:14 -070023* This file was originally distributed by Qualcomm Atheros, Inc.
24* under proprietary terms before Copyright ownership was assigned
25* to the Linux Foundation.
26*/
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070027
Jeff Johnson295189b2012-06-20 16:38:30 -070028/*==========================================================================
29 *
30 * @file: wlan_hal_msg.h
31 *
32 * @brief: Exports and types for messages sent to HAL from WDI
33 *
34 * @author: Kumar Anand
35 *
Jeff Johnson295189b2012-06-20 16:38:30 -070036 *
37 *=========================================================================*/
38
39#ifndef _WLAN_HAL_MSG_H_
40#define _WLAN_HAL_MSG_H_
41
42#include "halLegacyPalTypes.h"
43#include "halCompiler.h"
44#include "wlan_qct_dev_defs.h"
45#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080046
Jeff Johnson295189b2012-06-20 16:38:30 -070047/*---------------------------------------------------------------------------
48 API VERSIONING INFORMATION
49
50 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
51 The MAJOR is incremented for major product/architecture changes
52 (and then MINOR/VERSION/REVISION are zeroed)
53 The MINOR is incremented for minor product/architecture changes
54 (and then VERSION/REVISION are zeroed)
55 The VERSION is incremented if a significant API change occurs
56 (and then REVISION is zeroed)
57 The REVISION is incremented if an insignificant API change occurs
58 or if a new API is added
59 All values are in the range 0..255 (ie they are 8-bit values)
60 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070061#define WLAN_HAL_VER_MAJOR 1
Kumar Anandea78e792013-10-10 23:47:01 -070062#define WLAN_HAL_VER_MINOR 5
Jeff Johnson295189b2012-06-20 16:38:30 -070063#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080064#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070065
66/*---------------------------------------------------------------------------
67 Commom Type definitons
68 ---------------------------------------------------------------------------*/
69
Srinivas Dasari42584632014-11-26 20:37:19 +053070#define DISA_MAX_PAYLOAD_SIZE 1600
71
Jeff Johnson295189b2012-06-20 16:38:30 -070072//This is to force compiler to use the maximum of an int ( 4 bytes )
73#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070074#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070075
76//Max no. of transmit categories
77#define STACFG_MAX_TC 8
78
79//The maximum value of access category
80#define WLAN_HAL_MAX_AC 4
81
82typedef tANI_U8 tSirMacAddr[6];
83typedef tANI_U8 tHalIpv4Addr[4];
84
85#define HAL_MAC_ADDR_LEN 6
86#define HAL_IPV4_ADDR_LEN 4
87
Amar Singhalb41c45b2014-03-21 14:44:14 -070088#define WLAN_HAL_STA_INVALID_IDX 0xFF
Jeff Johnson295189b2012-06-20 16:38:30 -070089#define WLAN_HAL_BSS_INVALID_IDX 0xFF
90
91//Default Beacon template size
Dino Mycle8afbac12014-07-04 22:06:17 +053092#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070093
Kumar Anandea78e792013-10-10 23:47:01 -070094
95//Max Tx Data Rate samples
96#define MAX_TX_RATE_SAMPLES 10
97//Max Beacon Rssi samples
98#define MAX_BCN_RSSI_SAMPLES 10
99
Dino Mycle8afbac12014-07-04 22:06:17 +0530100//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -0700101#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
102#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
103#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
104#define PARAM_llACOEXIST_CHANGED (1 << 3)
105#define PARAM_llBCOEXIST_CHANGED (1 << 4)
106#define PARAM_llGCOEXIST_CHANGED (1 << 5)
107#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
108#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
109#define PARAM_RIFS_MODE_CHANGED (1<<8)
110#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
111#define PARAM_OBSS_MODE_CHANGED (1<<10)
112#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
113 PARAM_llGCOEXIST_CHANGED|PARAM_HT20MHZCOEXIST_CHANGED|PARAM_NON_GF_DEVICES_PRESENT_CHANGED|PARAM_RIFS_MODE_CHANGED|PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED| PARAM_OBSS_MODE_CHANGED)
114
115/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530116#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700117
118/*Version string max length (including NUL) */
119#define WLAN_HAL_VERSION_LENGTH 64
120
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530121#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
Amar Singhalb41c45b2014-03-21 14:44:14 -0700122/* 80 is actually NUM_RF_CHANNELS_V2, but beyond V2, this number will be ignored by FW */
Varun Reddy Yeturu94d94c12014-02-06 11:12:56 -0800123#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS 80
Amar Singhalb41c45b2014-03-21 14:44:14 -0700124#define WLAN_HAL_ROAM_SACN_PMK_SIZE 32
125#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 20
Yue Maab3ccfc2013-08-14 17:19:08 -0700126
Dino Mycle108eff22014-06-10 09:36:44 +0530127#define WLAN_HAL_EXT_SCAN_MAX_CHANNELS 16
128#define WLAN_HAL_EXT_SCAN_MAX_BUCKETS 16
129#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS 128
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +0530130#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +0530131
Dino Mycle108eff22014-06-10 09:36:44 +0530132#define WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE 8
133
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530134/* For Logging enhancement feature currently max 2 address will be passed */
135/* In future we may pass 3 address and length in suspend mode corner case */
136#define MAX_NUM_OF_BUFFER 3
137
138/* Log types */
139typedef enum
140{
141 MGMT_FRAME_LOGS = 0,
142 QXDM_LOGGING = 1,
Sachin Ahujac08f72a2015-09-22 15:25:47 +0530143 FW_MEMORY_DUMP = 2,
144 FATAL_EVENT = 3
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530145}tHalFrameLoggingType;
146
147/* Log size */
148typedef enum
149{
150 LOG_SIZE_4K = 0,
151 LOG_SIZE_8K = 1,
152 LOG_SIZE_12K = 2,
153 LOG_SIZE_16K = 3,
154 LOG_SIZE_32K = 4,
155 LOG_SIZE_64K = 5,
156 LOG_SIZE_96K = 6
157}tHalLogBuffSize;
158
Jeff Johnson295189b2012-06-20 16:38:30 -0700159/* Message types for messages exchanged between WDI and HAL */
Dino Mycle8afbac12014-07-04 22:06:17 +0530160typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700161{
162 //Init/De-Init
163 WLAN_HAL_START_REQ = 0,
164 WLAN_HAL_START_RSP = 1,
165 WLAN_HAL_STOP_REQ = 2,
166 WLAN_HAL_STOP_RSP = 3,
167
168 //Scan
169 WLAN_HAL_INIT_SCAN_REQ = 4,
170 WLAN_HAL_INIT_SCAN_RSP = 5,
171 WLAN_HAL_START_SCAN_REQ = 6,
172 WLAN_HAL_START_SCAN_RSP = 7 ,
173 WLAN_HAL_END_SCAN_REQ = 8,
174 WLAN_HAL_END_SCAN_RSP = 9,
175 WLAN_HAL_FINISH_SCAN_REQ = 10,
176 WLAN_HAL_FINISH_SCAN_RSP = 11,
177
178 // HW STA configuration/deconfiguration
179 WLAN_HAL_CONFIG_STA_REQ = 12,
180 WLAN_HAL_CONFIG_STA_RSP = 13,
181 WLAN_HAL_DELETE_STA_REQ = 14,
182 WLAN_HAL_DELETE_STA_RSP = 15,
183 WLAN_HAL_CONFIG_BSS_REQ = 16,
184 WLAN_HAL_CONFIG_BSS_RSP = 17,
185 WLAN_HAL_DELETE_BSS_REQ = 18,
186 WLAN_HAL_DELETE_BSS_RSP = 19,
187
188 //Infra STA asscoiation
189 WLAN_HAL_JOIN_REQ = 20,
190 WLAN_HAL_JOIN_RSP = 21,
191 WLAN_HAL_POST_ASSOC_REQ = 22,
192 WLAN_HAL_POST_ASSOC_RSP = 23,
193
194 //Security
195 WLAN_HAL_SET_BSSKEY_REQ = 24,
196 WLAN_HAL_SET_BSSKEY_RSP = 25,
197 WLAN_HAL_SET_STAKEY_REQ = 26,
198 WLAN_HAL_SET_STAKEY_RSP = 27,
199 WLAN_HAL_RMV_BSSKEY_REQ = 28,
200 WLAN_HAL_RMV_BSSKEY_RSP = 29,
201 WLAN_HAL_RMV_STAKEY_REQ = 30,
202 WLAN_HAL_RMV_STAKEY_RSP = 31,
203
204 //Qos Related
205 WLAN_HAL_ADD_TS_REQ = 32,
206 WLAN_HAL_ADD_TS_RSP = 33,
207 WLAN_HAL_DEL_TS_REQ = 34,
208 WLAN_HAL_DEL_TS_RSP = 35,
209 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
210 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
211 WLAN_HAL_ADD_BA_REQ = 38,
212 WLAN_HAL_ADD_BA_RSP = 39,
213 WLAN_HAL_DEL_BA_REQ = 40,
214 WLAN_HAL_DEL_BA_RSP = 41,
215
216 WLAN_HAL_CH_SWITCH_REQ = 42,
217 WLAN_HAL_CH_SWITCH_RSP = 43,
218 WLAN_HAL_SET_LINK_ST_REQ = 44,
219 WLAN_HAL_SET_LINK_ST_RSP = 45,
220 WLAN_HAL_GET_STATS_REQ = 46,
221 WLAN_HAL_GET_STATS_RSP = 47,
222 WLAN_HAL_UPDATE_CFG_REQ = 48,
223 WLAN_HAL_UPDATE_CFG_RSP = 49,
224
225 WLAN_HAL_MISSED_BEACON_IND = 50,
226 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
227 WLAN_HAL_MIC_FAILURE_IND = 52,
228 WLAN_HAL_FATAL_ERROR_IND = 53,
229 WLAN_HAL_SET_KEYDONE_MSG = 54,
Dino Mycle8afbac12014-07-04 22:06:17 +0530230
Jeff Johnson295189b2012-06-20 16:38:30 -0700231 //NV Interface
232 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
233 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
234
235 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
236 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
237 WLAN_HAL_TRIGGER_BA_REQ = 59,
238 WLAN_HAL_TRIGGER_BA_RSP = 60,
239 WLAN_HAL_UPDATE_BEACON_REQ = 61,
240 WLAN_HAL_UPDATE_BEACON_RSP = 62,
241 WLAN_HAL_SEND_BEACON_REQ = 63,
242 WLAN_HAL_SEND_BEACON_RSP = 64,
243
244 WLAN_HAL_SET_BCASTKEY_REQ = 65,
245 WLAN_HAL_SET_BCASTKEY_RSP = 66,
246 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
247 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
248 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Dino Mycle8afbac12014-07-04 22:06:17 +0530249
Jeff Johnson295189b2012-06-20 16:38:30 -0700250 // PTT interface support
251 WLAN_HAL_PROCESS_PTT_REQ = 70,
252 WLAN_HAL_PROCESS_PTT_RSP = 71,
Dino Mycle8afbac12014-07-04 22:06:17 +0530253
Jeff Johnson295189b2012-06-20 16:38:30 -0700254 // BTAMP related events
255 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
256 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
257 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
258 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
259
260 WLAN_HAL_ENTER_IMPS_REQ = 76,
261 WLAN_HAL_EXIT_IMPS_REQ = 77,
262 WLAN_HAL_ENTER_BMPS_REQ = 78,
263 WLAN_HAL_EXIT_BMPS_REQ = 79,
264 WLAN_HAL_ENTER_UAPSD_REQ = 80,
265 WLAN_HAL_EXIT_UAPSD_REQ = 81,
266 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
267 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
268 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
269 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
270 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
271 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
272 WLAN_HAL_ENTER_WOWL_REQ = 88,
273 WLAN_HAL_EXIT_WOWL_REQ = 89,
274 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
275 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
276 WLAN_HAL_GET_RSSI_REQ = 92,
277 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
278 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
279
280 WLAN_HAL_ENTER_IMPS_RSP = 95,
281 WLAN_HAL_EXIT_IMPS_RSP = 96,
282 WLAN_HAL_ENTER_BMPS_RSP = 97,
283 WLAN_HAL_EXIT_BMPS_RSP = 98,
284 WLAN_HAL_ENTER_UAPSD_RSP = 99,
285 WLAN_HAL_EXIT_UAPSD_RSP = 100,
286 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
287 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
288 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
289 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
290 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
291 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
292 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
293 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
294 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
295 WLAN_HAL_ENTER_WOWL_RSP = 110,
296 WLAN_HAL_EXIT_WOWL_RSP = 111,
297 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
298 WLAN_HAL_GET_RSSI_RSP = 113,
299 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
300
301 //11k related events
302 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
303 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
304
305 //11R related msgs
306 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
307 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
308
309 //P2P WLAN_FEATURE_P2P
310 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
311 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Dino Mycle8afbac12014-07-04 22:06:17 +0530312
Jeff Johnson295189b2012-06-20 16:38:30 -0700313 //WLAN Dump commands
314 WLAN_HAL_DUMP_COMMAND_REQ = 121,
315 WLAN_HAL_DUMP_COMMAND_RSP = 122,
316
Jeff Johnsone7245742012-09-05 17:12:55 -0700317 //OEM_DATA FEATURE SUPPORT
318 WLAN_HAL_START_OEM_DATA_REQ = 123,
319 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700320
321 //ADD SELF STA REQ and RSP
322 WLAN_HAL_ADD_STA_SELF_REQ = 125,
323 WLAN_HAL_ADD_STA_SELF_RSP = 126,
324
325 //DEL SELF STA SUPPORT
326 WLAN_HAL_DEL_STA_SELF_REQ = 127,
327 WLAN_HAL_DEL_STA_SELF_RSP = 128,
328
329 // Coex Indication
330 WLAN_HAL_COEX_IND = 129,
331
Dino Mycle8afbac12014-07-04 22:06:17 +0530332 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700333 WLAN_HAL_OTA_TX_COMPL_IND = 130,
334
335 //Host Suspend/resume messages
336 WLAN_HAL_HOST_SUSPEND_IND = 131,
337 WLAN_HAL_HOST_RESUME_REQ = 132,
338 WLAN_HAL_HOST_RESUME_RSP = 133,
339
340 WLAN_HAL_SET_TX_POWER_REQ = 134,
341 WLAN_HAL_SET_TX_POWER_RSP = 135,
342 WLAN_HAL_GET_TX_POWER_REQ = 136,
343 WLAN_HAL_GET_TX_POWER_RSP = 137,
344
345 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Dino Mycle8afbac12014-07-04 22:06:17 +0530346
Jeff Johnson295189b2012-06-20 16:38:30 -0700347 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
348 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
349 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
350 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
351 WLAN_HAL_RADAR_DETECT_IND = 143,
352 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
353 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Dino Mycle8afbac12014-07-04 22:06:17 +0530354 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700355
356 /*PNO messages*/
357 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
358 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
359 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
360 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
361 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
362 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Dino Mycle8afbac12014-07-04 22:06:17 +0530363 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700364
365 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
366 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
367 WLAN_HAL_TX_PER_HIT_IND = 156,
Dino Mycle8afbac12014-07-04 22:06:17 +0530368
Jeff Johnson295189b2012-06-20 16:38:30 -0700369 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Dino Mycle8afbac12014-07-04 22:06:17 +0530370 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700371
372 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Dino Mycle8afbac12014-07-04 22:06:17 +0530373 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700374 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Dino Mycle8afbac12014-07-04 22:06:17 +0530375 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700376 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Dino Mycle8afbac12014-07-04 22:06:17 +0530377 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
378 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700379 * Host and Riva code is in sync*/
380 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Dino Mycle8afbac12014-07-04 22:06:17 +0530381
Jeff Johnson295189b2012-06-20 16:38:30 -0700382 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
383 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
384
385 WLAN_HAL_TSM_STATS_REQ = 168,
386 WLAN_HAL_TSM_STATS_RSP = 169,
387
388 // wake reason indication (WOW)
389 WLAN_HAL_WAKE_REASON_IND = 170,
Dino Mycle8afbac12014-07-04 22:06:17 +0530390 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700391 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
392 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
393 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
394 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
395
396 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
397 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
398 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
399
400 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
401 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
402
Anand Kumar012623a2013-01-11 17:00:00 -0800403 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
404 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800405
Anand Kumar012623a2013-01-11 17:00:00 -0800406 WLAN_HAL_P2P_NOA_START_IND = 184,
407
408 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
409 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Dino Mycle8afbac12014-07-04 22:06:17 +0530410
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800411 WLAN_HAL_CLASS_B_STATS_IND = 187,
412 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800413 WLAN_HAL_DHCP_START_IND = 189,
414 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700415 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
416 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530417 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
418 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700419
420 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
421 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
422 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
423
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530424 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
425 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
426 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
427 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
428 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700429 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700430
Kumar Anandf53016f2013-09-04 15:15:53 -0700431 /* Scan Offload APIs */
432 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
433 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
434 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
435 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
436 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
437 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
438 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
439
Leo Chang397deb72013-08-22 11:33:16 -0700440 /* APIs to offload TCP/UDP Heartbeat handshakes */
441 WLAN_HAL_LPHB_CFG_REQ = 211,
442 WLAN_HAL_LPHB_CFG_RSP = 212,
443 WLAN_HAL_LPHB_IND = 213,
444
Yue Maab3ccfc2013-08-14 17:19:08 -0700445 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
446 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
447 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530448
Kumar Anandf53016f2013-09-04 15:15:53 -0700449 // Events to set Per-Band Tx Power Limit
450 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
451 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
452
453 /* Reliable Multicast using Leader Based Protocol */
454 WLAN_HAL_LBP_LEADER_REQ = 219,
455 WLAN_HAL_LBP_LEADER_RSP = 220,
456 WLAN_HAL_LBP_UPDATE_IND = 221,
457
krunal soni2a4728d2013-09-20 21:56:50 -0700458 /* Batchscan */
459 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
460 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
461 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
462 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
463 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
464
465 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
466 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
467
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700468 WLAN_HAL_RATE_UPDATE_IND = 229,
469
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530470 /* Tx Fail for weak link notification */
471 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
472 WLAN_HAL_TX_FAIL_IND = 231,
473
474 /* Multi-hop IP routing offload */
475 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
476
Amar Singhalb41c45b2014-03-21 14:44:14 -0700477 /* Channel avoidance for LTE Coex */
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530478 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800479
Amar Singhalb41c45b2014-03-21 14:44:14 -0700480 /* Fast Roam Offload Synchup request protocol */
481 /* TODO_LFR3 : change this value accordingly before final check-in */
482 WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
483 WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
484
485 WLAN_HAL_MOTION_START_EVENT_REQ = 250,
486 WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
487
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800488 /* Channel Switch Request version 1 */
489 WLAN_HAL_CH_SWITCH_V1_REQ = 252,
490 WLAN_HAL_CH_SWITCH_V1_RSP = 253,
491
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530492 /* 2G4 HT40 OBSS scan */
493 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700494 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
495
496 /* WLAN NAN Messages */
497 WLAN_HAL_NAN_FIRST = 256,
498 WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
499 WLAN_HAL_NAN_RSP = 257,
500 WLAN_HAL_NAN_EVT = 258,
501 WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
c_hpothu80c30472014-04-14 19:04:48 +0530502 WLAN_HAL_PRINT_REG_INFO_IND = 259,
503
c_hpothua047e572014-05-01 15:03:11 +0530504 WLAN_HAL_GET_BCN_MISS_RATE_REQ = 260,
505 WLAN_HAL_GET_BCN_MISS_RATE_RSP = 261,
506
Sunil Dutt8377a382014-05-26 21:18:04 +0530507 /* WLAN LINK LAYER STATS Messages */
508 WLAN_HAL_LL_SET_STATS_REQ = 262,
509 WLAN_HAL_LL_SET_STATS_RSP = 263,
510 WLAN_HAL_LL_GET_STATS_REQ = 264,
511 WLAN_HAL_LL_GET_STATS_RSP = 265,
512 WLAN_HAL_LL_CLEAR_STATS_REQ = 266,
513 WLAN_HAL_LL_CLEAR_STATS_RSP = 267,
514 WLAN_HAL_LL_NOTIFY_STATS = 268,
Dino Mycle8afbac12014-07-04 22:06:17 +0530515 WLAN_HAL_LL_LAST = WLAN_HAL_LL_NOTIFY_STATS,
Dino Mycle108eff22014-06-10 09:36:44 +0530516
Dino Mycle8afbac12014-07-04 22:06:17 +0530517 /* WLAN EXT_SCAN Messages */
518 WLAN_HAL_EXT_SCAN_START_REQ = 269,
519 WLAN_HAL_EXT_SCAN_START_RSP = 270,
520 WLAN_HAL_EXT_SCAN_GET_CAP_REQ = 271,
521 WLAN_HAL_EXT_SCAN_GET_CAP_RSP = 272,
522 WLAN_HAL_EXT_SCAN_STOP_REQ = 273,
523 WLAN_HAL_EXT_SCAN_STOP_RSP = 274,
524 WLAN_HAL_EXT_SCAN_GET_SCAN_REQ = 275,
525 WLAN_HAL_EXT_SCAN_GET_SCAN_RSP = 276,
Dino Mycle108eff22014-06-10 09:36:44 +0530526
527 WLAN_HAL_BSSID_HOTLIST_SET_REQ = 277,
528 WLAN_HAL_BSSID_HOTLIST_SET_RSP = 278,
529 WLAN_HAL_BSSID_HOTLIST_RESET_REQ = 279,
530 WLAN_HAL_BSSID_HOTLIST_RESET_RSP = 280,
531
532 WLAN_HAL_SIG_RSSI_SET_REQ = 281,
533 WLAN_HAL_SIG_RSSI_SET_RSP = 282,
534 WLAN_HAL_SIG_RSSI_RESET_REQ = 283,
535 WLAN_HAL_SIG_RSSI_RESET_RSP = 284,
536
Dino Mycle8afbac12014-07-04 22:06:17 +0530537 WLAN_HAL_EXT_SCAN_RESULT_IND = 285,
Dino Mycle108eff22014-06-10 09:36:44 +0530538 WLAN_HAL_BSSID_HOTLIST_RESULT_IND = 286,
539 WLAN_HAL_SIG_RSSI_RESULT_IND = 287,
Dino Mycle8afbac12014-07-04 22:06:17 +0530540 WLAN_HAL_EXT_SCAN_PROGRESS_IND = 288,
541 WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND = 289,
Atul Mittal53419ed2014-08-03 19:41:23 +0530542 WLAN_HAL_TDLS_CHAN_SWITCH_REQ = 290,
543 WLAN_HAL_TDLS_CHAN_SWITCH_RSP = 291,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +0530544 WLAN_HAL_MAC_SPOOFED_SCAN_REQ = 292,
545 WLAN_HAL_MAC_SPOOFED_SCAN_RSP = 293,
Srinivas Dasari42584632014-11-26 20:37:19 +0530546 /* LGE DISA encrypt-decrypt Messages */
547 WLAN_HAL_ENCRYPT_DATA_REQ = 294,
548 WLAN_HAL_ENCRYPT_DATA_RSP = 295,
Sunil Dutt8377a382014-05-26 21:18:04 +0530549
Abhishek Singh725c1582014-11-24 11:47:48 +0530550 WLAN_HAL_FW_STATS_REQ = 296,
551 WLAN_HAL_FW_STATS_RSP = 297,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530552 WLAN_HAL_FW_LOGGING_INIT_REQ = 298,
553 WLAN_HAL_FW_LOGGING_INIT_RSP = 299,
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +0530554 WLAN_HAL_GET_FRAME_LOG_REQ = 300,
555 WLAN_HAL_GET_FRAME_LOG_RSP = 301,
Abhishek Singh725c1582014-11-24 11:47:48 +0530556
Abhishek Singhbc310882015-05-22 15:17:02 +0530557 /* Monitor Mode */
558 WLAN_HAL_ENABLE_MONITOR_MODE_REQ = 302,
559 WLAN_HAL_ENABLE_MONITOR_MODE_RSP = 303,
560
561 WLAN_HAL_DISABLE_MONITOR_MODE_REQ = 304,
562 WLAN_HAL_DISABLE_MONITOR_MODE_RSP = 305,
Katya Nigamf0511f62015-05-05 16:40:57 +0530563
Abhishek Singhbc310882015-05-22 15:17:02 +0530564 WLAN_HAL_SET_RTS_CTS_HTVHT_IND = 306,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530565 // FW Logging
566 WLAN_HAL_FATAL_EVENT_LOGGING_REQ = 307,
567 WLAN_HAL_FATAL_EVENT_LOGGING_RSP = 308,
568 WLAN_HAL_FW_MEMORY_DUMP_REQ = 309,
569 WLAN_HAL_FW_MEMORY_DUMP_RSP = 310,
570 WLAN_HAL_FW_LOGGING_DXE_DONE_IND = 311,
Sachin Ahuja75c1fd72015-08-28 15:46:46 +0530571 WLAN_HAL_LOST_LINK_PARAMETERS_IND = 312,
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +0530572 WLAN_HAL_SEND_FREQ_RANGE_CONTROL_IND = 313,
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +0530573
574 WLAN_HAL_SSID_HOTLIST_SET_REQ = 314,
575 WLAN_HAL_SSID_HOTLIST_SET_RSP = 315,
576 WLAN_HAL_SSID_HOTLIST_RESET_REQ = 316,
577 WLAN_HAL_SSID_HOTLIST_RESET_RSP = 317,
578
579 WLAN_HAL_SSID_HOTLIST_RESULT_IND = 318,
580
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +0530581 /* WFD Session Information to start/stop Scan */
582 WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ = 319,
583
Gupta, Kapil042e9fb2015-09-30 13:34:22 +0530584 WLAN_HAL_START_RSSI_MONITORING_REQ = 321,
585 WLAN_HAL_START_RSSI_MONITORING_RSP = 322,
586 WLAN_HAL_RSSI_MONITORING_IND = 323,
587 WLAN_HAL_STOP_RSSI_MONITORING_REQ = 324,
588 WLAN_HAL_STOP_RSSI_MONITORING_RSP = 325,
589
Arun Khandavalliafc16432015-10-16 20:11:31 +0530590 WLAN_HAL_WIFI_CONFIG_SET_PARAMS_REQ = 328,
591 WLAN_HAL_WIFI_CONFIG_SET_PARAMS_RSP = 329,
592
Sunil Dutt8377a382014-05-26 21:18:04 +0530593 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700594}tHalHostMsgType;
595
Jeff Johnsone7245742012-09-05 17:12:55 -0700596/* Enumeration for Version */
597typedef enum
598{
599 WLAN_HAL_MSG_VERSION0 = 0,
600 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800601 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
602 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700603}tHalHostMsgVersion;
604
Jeff Johnson295189b2012-06-20 16:38:30 -0700605/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530606typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700607{
608 eANI_BOOLEAN_FALSE = 0,
609 eANI_BOOLEAN_TRUE,
610 eANI_BOOLEAN_OFF = 0,
611 eANI_BOOLEAN_ON = 1,
612 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
613} eAniBoolean;
614
615typedef enum
616{
617 eDRIVER_TYPE_PRODUCTION = 0,
618 eDRIVER_TYPE_MFG = 1,
619 eDRIVER_TYPE_DVT = 2,
620 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
621} tDriverType;
622
623typedef enum
624{
625 HAL_STOP_TYPE_SYS_RESET,
626 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
627 HAL_STOP_TYPE_RF_KILL,
628 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
629}tHalStopType;
630
631typedef enum
632{
633 eHAL_SYS_MODE_NORMAL,
634 eHAL_SYS_MODE_LEARN,
635 eHAL_SYS_MODE_SCAN,
636 eHAL_SYS_MODE_PROMISC,
637 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700638 eHAL_SYS_MODE_ROAM_SCAN,
639 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700640 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700641 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
642} eHalSysMode;
643
644typedef enum
645{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800646 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
647 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
648 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
649 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
650 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
651 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
652 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
653 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
654 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700655 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800656 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
657} eHalChanSwitchSource;
658
659typedef enum
660{
Jeff Johnson295189b2012-06-20 16:38:30 -0700661 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
662 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
663 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
664 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700665#ifdef WLAN_FEATURE_11AC
666 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
667 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
668 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
669 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
670 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
671 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
672 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
673#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700674 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
675}ePhyChanBondState;
676
677// Spatial Multiplexing(SM) Power Save mode
678typedef enum eSirMacHTMIMOPowerSaveState
679{
680 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
681 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
682 eSIR_HT_MIMO_PS_NA = 2, // reserved
683 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
684 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
685} tSirMacHTMIMOPowerSaveState;
686
687/* each station added has a rate mode which specifies the sta attributes */
688typedef enum eStaRateMode {
689 eSTA_TAURUS = 0,
690 eSTA_TITAN,
691 eSTA_POLARIS,
692 eSTA_11b,
693 eSTA_11bg,
694 eSTA_11a,
695 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700696#ifdef WLAN_FEATURE_11AC
697 eSTA_11ac,
698#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700699 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
700} tStaRateMode, *tpStaRateMode;
701
702#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
703#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
704#define SIR_NUM_POLARIS_RATES 3 //72,96,108
705
706#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
707
708
709typedef enum eSirBssType
710{
711 eSIR_INFRASTRUCTURE_MODE,
712 eSIR_INFRA_AP_MODE, //Added for softAP support
713 eSIR_IBSS_MODE,
714 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
715 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
716 eSIR_AUTO_MODE,
717 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
718} tSirBssType;
719
720typedef enum eSirNwType
721{
722 eSIR_11A_NW_TYPE,
723 eSIR_11B_NW_TYPE,
724 eSIR_11G_NW_TYPE,
725 eSIR_11N_NW_TYPE,
726 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
727} tSirNwType;
728
729typedef tANI_U16 tSirMacBeaconInterval;
730
731#define SIR_MAC_RATESET_EID_MAX 12
732
733typedef enum eSirMacHTOperatingMode
734{
735 eSIR_HT_OP_MODE_PURE, // No Protection
736 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
737 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
738 eSIR_HT_OP_MODE_MIXED, // Protection is required
739 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
740} tSirMacHTOperatingMode;
741
Jeff Johnson295189b2012-06-20 16:38:30 -0700742/// Encryption type enum used with peer
743typedef enum eAniEdType
744{
745 eSIR_ED_NONE,
746 eSIR_ED_WEP40,
747 eSIR_ED_WEP104,
748 eSIR_ED_TKIP,
749 eSIR_ED_CCMP,
750 eSIR_ED_WPI,
751 eSIR_ED_AES_128_CMAC,
752 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
753} tAniEdType;
754
755#define WLAN_MAX_KEY_RSC_LEN 16
756#define WLAN_WAPI_KEY_RSC_LEN 16
757
758/// MAX key length when ULA is used
759#define SIR_MAC_MAX_KEY_LENGTH 32
760#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
761
762/// Enum to specify whether key is used
763/// for TX only, RX only or both
764typedef enum eAniKeyDirection
765{
766 eSIR_TX_ONLY,
767 eSIR_RX_ONLY,
768 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700769 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700770 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
771} tAniKeyDirection;
772
773typedef enum eAniWepType
774{
775 eSIR_WEP_STATIC,
776 eSIR_WEP_DYNAMIC,
777 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
778} tAniWepType;
779
780typedef enum eSriLinkState {
781
782 eSIR_LINK_IDLE_STATE = 0,
783 eSIR_LINK_PREASSOC_STATE = 1,
784 eSIR_LINK_POSTASSOC_STATE = 2,
785 eSIR_LINK_AP_STATE = 3,
786 eSIR_LINK_IBSS_STATE = 4,
787
788 /* BT-AMP Case */
789 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
790 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
791 eSIR_LINK_BTAMP_AP_STATE = 7,
792 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530793
Jeff Johnson295189b2012-06-20 16:38:30 -0700794 /* Reserved for HAL Internal Use */
795 eSIR_LINK_LEARN_STATE = 9,
796 eSIR_LINK_SCAN_STATE = 10,
797 eSIR_LINK_FINISH_SCAN_STATE = 11,
798 eSIR_LINK_INIT_CAL_STATE = 12,
799 eSIR_LINK_FINISH_CAL_STATE = 13,
800#ifdef WLAN_FEATURE_P2P
801 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530802 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700803#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700804#ifdef WLAN_FEATURE_ROAM_OFFLOAD
805 eSIR_LINK_FT_PREASSOC_STATE = 16,
806#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700807 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
808} tSirLinkState;
809
810typedef enum
811{
812 HAL_SUMMARY_STATS_INFO = 0x00000001,
813 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
814 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
815 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
816 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530817 HAL_PER_STA_STATS_INFO = 0x00000020,
818 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700819}eHalStatsMask;
820
821/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530822typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700823{
824 BTAMP_EVENT_CONNECTION_START,
825 BTAMP_EVENT_CONNECTION_STOP,
826 BTAMP_EVENT_CONNECTION_TERMINATED,
827 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
828} tBtAmpEventType;
829
830//***************************************************************
831
832
833/*******************PE Statistics*************************/
834typedef enum
835{
836 PE_SUMMARY_STATS_INFO = 0x00000001,
837 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
838 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
839 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
840 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
841 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530842 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700843 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
844}ePEStatsMask;
845
Sunil Dutt8377a382014-05-26 21:18:04 +0530846
847/******************************LINK LAYER Statitics**********************/
848
849typedef int wifi_radio;
850typedef int wifi_channel;
851typedef int wifi_tx_rate;
852
853/* channel operating width */
854typedef enum {
855 WIFI_CHAN_WIDTH_20 = 0,
856 WIFI_CHAN_WIDTH_40 = 1,
857 WIFI_CHAN_WIDTH_80 = 2,
858 WIFI_CHAN_WIDTH_160 = 3,
859 WIFI_CHAN_WIDTH_80P80 = 4,
860 WIFI_CHAN_WIDTH_5 = 5,
861 WIFI_CHAN_WIDTH_10 = 6,
862} wifi_channel_width;
863
864typedef enum {
865 WIFI_DISCONNECTED = 0,
866 WIFI_AUTHENTICATING = 1,
867 WIFI_ASSOCIATING = 2,
868 WIFI_ASSOCIATED = 3,
869 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
870 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
871} wifi_connection_state;
872
873typedef enum {
874 WIFI_ROAMING_IDLE = 0,
875 WIFI_ROAMING_ACTIVE = 1,
876} wifi_roam_state;
877
878typedef enum {
879 WIFI_INTERFACE_STA = 0,
880 WIFI_INTERFACE_SOFTAP = 1,
881 WIFI_INTERFACE_IBSS = 2,
882 WIFI_INTERFACE_P2P_CLIENT = 3,
883 WIFI_INTERFACE_P2P_GO = 4,
884 WIFI_INTERFACE_NAN = 5,
885 WIFI_INTERFACE_MESH = 6,
886 } wifi_interface_mode;
887
888#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
889#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
890#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
891#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
892#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
893#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
894
895typedef PACKED_PRE struct PACKED_POST
896{
897 wifi_interface_mode mode; // interface mode
898 tANI_U8 mac_addr[6]; // interface mac address (self)
899 wifi_connection_state state; // connection state (valid for STA, CLI only)
900 wifi_roam_state roaming; // roaming state
901 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
902 tANI_U8 ssid[33]; // null terminated SSID
903 tANI_U8 bssid[6]; // bssid
904 tANI_U8 ap_country_str[3]; // country string advertised by AP
905 tANI_U8 country_str[3]; // country string for this association
906} wifi_interface_info;
907
908/* channel information */
909typedef PACKED_PRE struct PACKED_POST
910{
911 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
912 wifi_channel center_freq; // primary 20 MHz channel
913 wifi_channel center_freq0; // center frequency (MHz) first segment
914 wifi_channel center_freq1; // center frequency (MHz) second segment
915} wifi_channel_info;
916
917/* wifi rate info */
918typedef PACKED_PRE struct PACKED_POST
919{
920 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
921 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
922 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
923 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
924 // HT/VHT it would be mcs index
925 tANI_U32 reserved :16; // reserved
926 tANI_U32 bitrate; // units of 100 Kbps
927} wifi_rate;
928
929/* channel statistics */
930typedef PACKED_PRE struct PACKED_POST
931{
932 wifi_channel_info channel; // channel
933 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
934 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
935} wifi_channel_stats;
936
937/* radio statistics */
938typedef PACKED_PRE struct PACKED_POST
939{
940 wifi_radio radio; // wifi radio (if multiple radio supported)
941 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
942 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
943 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
944 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
945 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
946 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
947 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
948 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
949 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
950 tANI_U32 num_channels; // number of channels
951 wifi_channel_stats channels[1]; // channel statistics
952} wifi_radio_stat;
953
954/* per rate statistics */
955typedef PACKED_PRE struct PACKED_POST
956{
957 wifi_rate rate; // rate information *
958 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
959 tANI_U32 rx_mpdu; // number of received data pkts
960 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
961 tANI_U32 retries; // total number of data pkt retries *
962 tANI_U32 retries_short; // number of short data pkt retries
963 tANI_U32 retries_long; // number of long data pkt retries
964} wifi_rate_stat;
965
966/* access categories */
967typedef enum {
968 WIFI_AC_VO = 0,
969 WIFI_AC_VI = 1,
970 WIFI_AC_BE = 2,
971 WIFI_AC_BK = 3,
972 WIFI_AC_MAX = 4,
973} wifi_traffic_ac;
974
975/* wifi peer type */
976typedef enum
977{
978 WIFI_PEER_STA,
979 WIFI_PEER_AP,
980 WIFI_PEER_P2P_GO,
981 WIFI_PEER_P2P_CLIENT,
982 WIFI_PEER_NAN,
983 WIFI_PEER_TDLS,
984 WIFI_PEER_INVALID,
985} wifi_peer_type;
986
987/* per peer statistics */
988typedef PACKED_PRE struct PACKED_POST
989{
990 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
991 tANI_U8 peer_mac_address[6]; // mac address
992 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
993 tANI_U32 num_rate; // number of rates
994 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
995} wifi_peer_info;
996
997/* per access category statistics */
998typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530999{
1000 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
1001 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
1002 tANI_U32 rx_mpdu; // number of received unicast mpdus
1003 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
1004 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
1005 tANI_U32 rx_mcast; // number of received multicast data packets
1006 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
1007 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
1008 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
1009 tANI_U32 retries; // total number of data pkt retries
1010 tANI_U32 retries_short; // number of short data pkt retries
1011 tANI_U32 retries_long; // number of long data pkt retries
1012 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1013 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1014 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1015 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1016} wifi_wmm_ac_stat;
1017
Mukul Sharma03f86492015-10-20 16:10:13 +05301018typedef PACKED_PRE struct PACKED_POST
1019{
1020 tANI_U64 average_tsf_offset;
1021 tANI_U32 leaky_ap_avg_num_frames_leaked;
1022 tANI_U32 leaky_ap_guard_time;
1023 tANI_U32 leaky_ap_detected;
1024} wifi_iface_leaky_ap_info;
1025
Sunil Dutt8377a382014-05-26 21:18:04 +05301026/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1027typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301028{
1029 wifi_interface_info info; // current state of the interface
1030 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1031 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1032 tANI_U32 mgmt_action_rx; // action frames received count
1033 tANI_U32 mgmt_action_tx; // action frames transmit count
1034 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1035 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1036 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1037 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
Mukul Sharma03f86492015-10-20 16:10:13 +05301038 wifi_iface_leaky_ap_info leakyApInfo;
Sunil Dutt8377a382014-05-26 21:18:04 +05301039} wifi_iface_stat;
1040
1041/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1042typedef PACKED_PRE struct PACKED_POST
1043{
1044 tANI_U32 num_peers; // number of peers
1045 wifi_peer_info peer_info[1]; // per peer statistics
1046} wifi_peer_stat;
1047
1048/* wifi statistics bitmap for getting statistics */
1049#define WMI_LINK_STATS_RADIO 0x00000001
1050#define WMI_LINK_STATS_IFACE 0x00000002
1051#define WMI_LINK_STATS_ALL_PEER 0x00000004
1052#define WMI_LINK_STATS_PER_PEER 0x00000008
1053
1054/* wifi statistics bitmap for clearing statistics */
1055#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1056#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1057#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1058#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1059#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1060#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1061#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1062#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1063
1064
Jeff Johnson295189b2012-06-20 16:38:30 -07001065/*---------------------------------------------------------------------------
1066 Message definitons - All the messages below need to be packed
1067 ---------------------------------------------------------------------------*/
1068
1069#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1070#pragma pack(push, 1)
1071#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1072#pragma pack(1)
1073#else
1074#endif
1075
1076/// Definition for HAL API Version.
1077typedef PACKED_PRE struct PACKED_POST
1078{
1079 tANI_U8 revision;
1080 tANI_U8 version;
1081 tANI_U8 minor;
1082 tANI_U8 major;
1083} tWcnssWlanVersion, *tpWcnssWlanVersion;
1084
1085/// Definition for Encryption Keys
1086typedef PACKED_PRE struct PACKED_POST
1087{
1088 tANI_U8 keyId;
1089 tANI_U8 unicast; // 0 for multicast
1090 tAniKeyDirection keyDirection;
1091 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1092 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1093 tANI_U16 keyLength;
1094 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1095} tSirKeys, *tpSirKeys;
1096
1097
1098//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1099typedef PACKED_PRE struct PACKED_POST
1100{
1101 /*STA Index*/
1102 tANI_U16 staIdx;
1103
1104 /*Encryption Type used with peer*/
1105 tAniEdType encType;
1106
1107 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301108 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001109
1110 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1111 tANI_U8 defWEPIdx;
1112
Jeff Johnson295189b2012-06-20 16:38:30 -07001113 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301114 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1115
Jeff Johnson295189b2012-06-20 16:38:30 -07001116 /*Control for Replay Count, 1= Single TID based replay count on Tx
1117 0 = Per TID based replay count on TX */
1118 tANI_U8 singleTidRc;
1119
1120} tSetStaKeyParams, *tpSetStaKeyParams;
1121
1122
1123
1124/* 4-byte control message header used by HAL*/
1125typedef PACKED_PRE struct PACKED_POST
1126{
Jeff Johnsone7245742012-09-05 17:12:55 -07001127 tHalHostMsgType msgType:16;
1128 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001129 tANI_U32 msgLen;
1130} tHalMsgHeader, *tpHalMsgHeader;
1131
1132/* Config format required by HAL for each CFG item*/
1133typedef PACKED_PRE struct PACKED_POST
1134{
1135 /* Cfg Id. The Id required by HAL is exported by HAL
1136 * in shared header file between UMAC and HAL.*/
1137 tANI_U16 uCfgId;
1138
Dino Mycle8afbac12014-07-04 22:06:17 +05301139 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001140 * in the TLV format.*/
1141 tANI_U16 uCfgLen;
1142
1143 /* Padding bytes for unaligned address's */
1144 tANI_U16 uCfgPadBytes;
1145
1146 /* Reserve bytes for making cfgVal to align address */
1147 tANI_U16 uCfgReserve;
1148
1149 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1150 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1151} tHalCfg, *tpHalCfg;
1152
1153/*---------------------------------------------------------------------------
1154 WLAN_HAL_START_REQ
1155---------------------------------------------------------------------------*/
1156
1157typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1158{
1159 /* Drive Type - Production or FTM etc */
1160 tDriverType driverType;
1161
1162 /*Length of the config buffer*/
1163 tANI_U32 uConfigBufferLen;
1164
Dino Mycle8afbac12014-07-04 22:06:17 +05301165 /* Following this there is a TLV formatted buffer of length
1166 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001167 * The TLV is expected to be formatted like this:
1168 * 0 15 31 31+CFG_LEN-1 length-1
1169 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1170 */
1171} tHalMacStartParameters, *tpHalMacStartParameters;
1172
1173typedef PACKED_PRE struct PACKED_POST
1174{
1175 /* Note: The length specified in tHalMacStartReqMsg messages should be
1176 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1177 tHalMsgHeader header;
1178 tHalMacStartParameters startReqParams;
1179} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1180
1181/*---------------------------------------------------------------------------
1182 WLAN_HAL_START_RSP
1183---------------------------------------------------------------------------*/
1184
1185typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1186{
1187 /*success or failure */
1188 tANI_U16 status;
1189
1190 /*Max number of STA supported by the device*/
1191 tANI_U8 ucMaxStations;
1192
1193 /*Max number of BSS supported by the device*/
1194 tANI_U8 ucMaxBssids;
1195
1196 /*API Version */
1197 tWcnssWlanVersion wcnssWlanVersion;
1198
1199 /*CRM build information */
1200 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1201
1202 /*hardware/chipset/misc version information */
1203 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1204
1205} tHalMacStartRspParams, *tpHalMacStartRspParams;
1206
1207typedef PACKED_PRE struct PACKED_POST
1208{
1209 tHalMsgHeader header;
1210 tHalMacStartRspParams startRspParams;
1211} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1212
1213/*---------------------------------------------------------------------------
1214 WLAN_HAL_STOP_REQ
1215---------------------------------------------------------------------------*/
1216
1217typedef PACKED_PRE struct PACKED_POST
1218{
1219 /*The reason for which the device is being stopped*/
1220 tHalStopType reason;
1221
1222}tHalMacStopReqParams, *tpHalMacStopReqParams;
1223
1224typedef PACKED_PRE struct PACKED_POST
1225{
1226 tHalMsgHeader header;
1227 tHalMacStopReqParams stopReqParams;
1228} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1229
1230/*---------------------------------------------------------------------------
1231 WLAN_HAL_STOP_RSP
1232---------------------------------------------------------------------------*/
1233
1234typedef PACKED_PRE struct PACKED_POST
1235{
1236 /*success or failure */
1237 tANI_U32 status;
1238
1239}tHalMacStopRspParams, *tpHalMacStopRspParams;
1240
1241typedef PACKED_PRE struct PACKED_POST
1242{
1243 tHalMsgHeader header;
1244 tHalMacStopRspParams stopRspParams;
1245} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1246
1247/*---------------------------------------------------------------------------
1248 WLAN_HAL_UPDATE_CFG_REQ
1249---------------------------------------------------------------------------*/
1250
1251typedef PACKED_PRE struct PACKED_POST
1252{
1253 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1254 tANI_U32 uConfigBufferLen;
1255
Dino Mycle8afbac12014-07-04 22:06:17 +05301256 /* Following this there is a TLV formatted buffer of length
1257 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001258 * The TLV is expected to be formatted like this:
1259 * 0 15 31 31+CFG_LEN-1 length-1
1260 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1261 */
1262} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1263
1264typedef PACKED_PRE struct PACKED_POST
1265{
1266 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1267 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1268 tHalMsgHeader header;
1269 tHalUpdateCfgReqParams updateCfgReqParams;
1270} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1271
1272/*---------------------------------------------------------------------------
1273 WLAN_HAL_UPDATE_CFG_RSP
1274---------------------------------------------------------------------------*/
1275
1276typedef PACKED_PRE struct PACKED_POST
1277{
1278 /* success or failure */
1279 tANI_U32 status;
1280
1281}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1282
1283typedef PACKED_PRE struct PACKED_POST
1284{
1285 tHalMsgHeader header;
1286 tHalUpdateCfgRspParams updateCfgRspParams;
1287} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1288
1289/*---------------------------------------------------------------------------
1290 WLAN_HAL_INIT_SCAN_REQ
1291---------------------------------------------------------------------------*/
1292
1293/// Frame control field format (2 bytes)
1294typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1295{
1296
1297#ifndef ANI_LITTLE_BIT_ENDIAN
1298
1299 tANI_U8 subType :4;
1300 tANI_U8 type :2;
1301 tANI_U8 protVer :2;
1302
1303 tANI_U8 order :1;
1304 tANI_U8 wep :1;
1305 tANI_U8 moreData :1;
1306 tANI_U8 powerMgmt :1;
1307 tANI_U8 retry :1;
1308 tANI_U8 moreFrag :1;
1309 tANI_U8 fromDS :1;
1310 tANI_U8 toDS :1;
1311
1312#else
1313
1314 tANI_U8 protVer :2;
1315 tANI_U8 type :2;
1316 tANI_U8 subType :4;
1317
1318 tANI_U8 toDS :1;
1319 tANI_U8 fromDS :1;
1320 tANI_U8 moreFrag :1;
1321 tANI_U8 retry :1;
1322 tANI_U8 powerMgmt :1;
1323 tANI_U8 moreData :1;
1324 tANI_U8 wep :1;
1325 tANI_U8 order :1;
1326
1327#endif
1328
1329} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1330
1331/// Sequence control field
1332typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1333{
1334 tANI_U8 fragNum : 4;
1335 tANI_U8 seqNumLo : 4;
1336 tANI_U8 seqNumHi : 8;
1337} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1338
1339/// Management header format
1340typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1341{
1342 tSirMacFrameCtl fc;
1343 tANI_U8 durationLo;
1344 tANI_U8 durationHi;
1345 tANI_U8 da[6];
1346 tANI_U8 sa[6];
1347 tANI_U8 bssId[6];
1348 tSirMacSeqCtl seqControl;
1349} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1350
1351/// Scan Entry to hold active BSS idx's
1352typedef __ani_attr_pre_packed struct sSirScanEntry
1353{
1354 tANI_U8 bssIdx[HAL_NUM_BSSID];
1355 tANI_U8 activeBSScnt;
1356}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1357
1358typedef PACKED_PRE struct PACKED_POST {
1359
1360 /*LEARN - AP Role
1361 SCAN - STA Role*/
1362 eHalSysMode scanMode;
1363
1364 /*BSSID of the BSS*/
1365 tSirMacAddr bssid;
1366
1367 /*Whether BSS needs to be notified*/
1368 tANI_U8 notifyBss;
1369
1370 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1371 CTS to Self). Must always be a valid frame type.*/
1372 tANI_U8 frameType;
1373
1374 /*UMAC has the option of passing the MAC frame to be used for notifying
1375 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1376 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1377 frameType.*/
1378 tANI_U8 frameLength;
1379
Dino Mycle8afbac12014-07-04 22:06:17 +05301380 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001381 is non-zero. */
1382 tSirMacMgmtHdr macMgmtHdr;
1383
1384 /*Entry to hold number of active BSS idx's*/
1385 tSirScanEntry scanEntry;
1386
1387} tInitScanParams, * tpInitScanParams;
1388
1389typedef PACKED_PRE struct PACKED_POST
1390{
1391 tHalMsgHeader header;
1392 tInitScanParams initScanParams;
1393} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1394
1395typedef PACKED_PRE struct PACKED_POST {
1396
1397 /*LEARN - AP Role
1398 SCAN - STA Role*/
1399 eHalSysMode scanMode;
1400
1401 /*BSSID of the BSS*/
1402 tSirMacAddr bssid;
1403
1404 /*Whether BSS needs to be notified*/
1405 tANI_U8 notifyBss;
1406
1407 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1408 CTS to Self). Must always be a valid frame type.*/
1409 tANI_U8 frameType;
1410
1411 /*UMAC has the option of passing the MAC frame to be used for notifying
1412 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1413 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1414 frameType.*/
1415 tANI_U8 frameLength;
1416
Dino Mycle8afbac12014-07-04 22:06:17 +05301417 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001418 is non-zero. */
1419 tSirMacMgmtHdr macMgmtHdr;
1420
1421 /*Entry to hold number of active BSS idx's*/
1422 tSirScanEntry scanEntry;
1423
1424 /* Single NoA usage in Scanning */
1425 tANI_U8 useNoA;
1426
1427 /* Indicates the scan duration (in ms) */
1428 tANI_U16 scanDuration;
1429
1430} tInitScanConParams, * tpInitScanConParams;
1431
1432typedef PACKED_PRE struct PACKED_POST
1433{
1434 tHalMsgHeader header;
1435 tInitScanConParams initScanParams;
1436} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1437
1438
1439/*---------------------------------------------------------------------------
1440 WLAN_HAL_INIT_SCAN_RSP
1441---------------------------------------------------------------------------*/
1442
1443typedef PACKED_PRE struct PACKED_POST
1444{
1445 /*success or failure */
1446 tANI_U32 status;
1447
1448}tHalInitScanRspParams, *tpHalInitScanRspParams;
1449
1450typedef PACKED_PRE struct PACKED_POST
1451{
1452 tHalMsgHeader header;
1453 tHalInitScanRspParams initScanRspParams;
1454} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1455
1456/*---------------------------------------------------------------------------
1457 WLAN_HAL_START_SCAN_REQ
1458---------------------------------------------------------------------------*/
1459
Dino Mycle8afbac12014-07-04 22:06:17 +05301460typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001461{
1462 /*Indicates the channel to scan*/
1463 tANI_U8 scanChannel;
1464
1465 } tStartScanParams, * tpStartScanParams;
1466
1467typedef PACKED_PRE struct PACKED_POST
1468{
1469 tHalMsgHeader header;
1470 tStartScanParams startScanParams;
1471} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1472
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001473typedef PACKED_PRE struct PACKED_POST
1474{
1475 tHalMsgHeader header;
1476} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1477
Jeff Johnson295189b2012-06-20 16:38:30 -07001478/*---------------------------------------------------------------------------
1479 WLAN_HAL_START_SCAN_RSP
1480---------------------------------------------------------------------------*/
1481
1482typedef PACKED_PRE struct PACKED_POST
1483{
1484 /*success or failure */
1485 tANI_U32 status;
1486
1487 tANI_U32 startTSF[2];
1488 tPowerdBm txMgmtPower;
1489
1490}tHalStartScanRspParams, *tpHalStartScanRspParams;
1491
1492typedef PACKED_PRE struct PACKED_POST
1493{
1494 tHalMsgHeader header;
1495 tHalStartScanRspParams startScanRspParams;
1496} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1497
1498/*---------------------------------------------------------------------------
1499 WLAN_HAL_END_SCAN_REQ
1500---------------------------------------------------------------------------*/
1501
1502typedef PACKED_PRE struct PACKED_POST
1503{
1504 /*Indicates the channel to stop scanning. Not used really. But retained
1505 for symmetry with "start Scan" message. It can also help in error
1506 check if needed.*/
1507 tANI_U8 scanChannel;
1508
1509} tEndScanParams, *tpEndScanParams;
1510
1511typedef PACKED_PRE struct PACKED_POST
1512{
1513 tHalMsgHeader header;
1514 tEndScanParams endScanParams;
1515} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1516
1517/*---------------------------------------------------------------------------
1518 WLAN_HAL_END_SCAN_RSP
1519---------------------------------------------------------------------------*/
1520
1521typedef PACKED_PRE struct PACKED_POST
1522{
1523 /*success or failure */
1524 tANI_U32 status;
1525
1526}tHalEndScanRspParams, *tpHalEndScanRspParams;
1527
1528typedef PACKED_PRE struct PACKED_POST
1529{
1530 tHalMsgHeader header;
1531 tHalEndScanRspParams endScanRspParams;
1532} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1533
1534/*---------------------------------------------------------------------------
1535 WLAN_HAL_FINISH_SCAN_REQ
1536---------------------------------------------------------------------------*/
1537
1538typedef PACKED_PRE struct PACKED_POST
1539{
1540 /* Identifies the operational state of the AP/STA
1541 * LEARN - AP Role SCAN - STA Role */
1542 eHalSysMode scanMode;
1543
1544 /*Operating channel to tune to.*/
1545 tANI_U8 currentOperChannel;
1546
1547 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1548 40 MHz extension channel in combination with the control channel*/
1549 ePhyChanBondState cbState;
1550
1551 /*BSSID of the BSS*/
1552 tSirMacAddr bssid;
1553
1554 /*Whether BSS needs to be notified*/
1555 tANI_U8 notifyBss;
1556
1557 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1558 CTS to Self). Must always be a valid frame type.*/
1559 tANI_U8 frameType;
1560
1561 /*UMAC has the option of passing the MAC frame to be used for notifying
1562 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1563 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1564 frameType.*/
1565 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301566
1567 /*Following the framelength there is a MAC frame buffer if frameLength
1568 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001569 tSirMacMgmtHdr macMgmtHdr;
1570
1571 /*Entry to hold number of active BSS idx's*/
1572 tSirScanEntry scanEntry;
1573
1574} tFinishScanParams, *tpFinishScanParams;
1575
1576typedef PACKED_PRE struct PACKED_POST
1577{
1578 tHalMsgHeader header;
1579 tFinishScanParams finishScanParams;
1580} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1581
1582/*---------------------------------------------------------------------------
1583 WLAN_HAL_FINISH_SCAN_RSP
1584---------------------------------------------------------------------------*/
1585
1586typedef PACKED_PRE struct PACKED_POST
1587{
1588 /*success or failure */
1589 tANI_U32 status;
1590
1591}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1592
1593typedef PACKED_PRE struct PACKED_POST
1594{
1595 tHalMsgHeader header;
1596 tHalFinishScanRspParams finishScanRspParams;
1597} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1598
Srinivas Dasari42584632014-11-26 20:37:19 +05301599typedef PACKED_PRE struct PACKED_POST
1600{
1601 tSetStaKeyParams keyParams;
1602 uint8 pn[6];
1603} tHalEncConfigParams;
1604
1605typedef PACKED_PRE struct PACKED_POST
1606{
1607 uint16 length;
1608 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1609} tHalDisaPayload;
1610
1611typedef PACKED_PRE struct PACKED_POST
1612{
1613#ifdef BYTE_ORDER_BIG_ENDIAN
1614 uint8 reserved1 : 1;
1615 uint8 ackpolicy : 2;
1616 uint8 eosp : 1;
1617 uint8 tid : 4;
1618
1619 uint8 appsbufferstate : 8;
1620#else
1621 uint8 appsbufferstate : 8;
1622
1623 uint8 tid : 4;
1624 uint8 eosp : 1;
1625 uint8 ackpolicy : 2;
1626 uint8 reserved1 : 1;
1627#endif
1628} tHalQosCtrlFieldType;
1629
1630typedef PACKED_PRE struct PACKED_POST
1631 {
1632#ifdef BYTE_ORDER_BIG_ENDIAN
1633 uint16 subtype : 4;
1634 uint16 type : 2;
1635 uint16 protocol : 2;
1636
1637 uint16 order : 1;
1638 uint16 wep : 1;
1639 uint16 moredata : 1;
1640 uint16 pm : 1;
1641 uint16 retry : 1;
1642 uint16 morefrag : 1;
1643 uint16 fromds : 1;
1644 uint16 tods : 1;
1645#else
1646
1647 uint16 tods : 1;
1648 uint16 fromds : 1;
1649 uint16 morefrag : 1;
1650 uint16 retry : 1;
1651 uint16 pm : 1;
1652 uint16 moredata : 1;
1653 uint16 wep : 1;
1654 uint16 order : 1;
1655
1656 uint16 protocol : 2;
1657 uint16 type : 2;
1658 uint16 subtype : 4;
1659#endif
1660} tHalFrmCtrlType;
1661
1662typedef PACKED_PRE struct PACKED_POST
1663{
1664 /* Frame control field */
1665 tHalFrmCtrlType fc;
1666 /* Duration ID */
1667 uint16 usDurationId;
1668 /* Address 1 field */
1669 uint8 vA1[HAL_MAC_ADDR_LEN];
1670 /* Address 2 field */
1671 uint8 vA2[HAL_MAC_ADDR_LEN];
1672 /* Address 3 field */
1673 uint8 vA3[HAL_MAC_ADDR_LEN];
1674 /* Sequence control field */
1675 uint16 seqNum;
1676 /* Optional A4 address */
1677 uint8 optvA4[HAL_MAC_ADDR_LEN];
1678 /* Optional QOS control field */
1679 tHalQosCtrlFieldType usQosCtrl;
1680} tHal80211Header;
1681
1682typedef PACKED_PRE struct PACKED_POST
1683{
1684 tHal80211Header macHeader;
1685 tHalEncConfigParams encParams;
1686 tHalDisaPayload data;
1687} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1688
1689typedef PACKED_PRE struct PACKED_POST
1690{
1691 tHalMsgHeader header;
1692 tSetEncryptedDataParams encryptedDataParams;
1693} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1694
1695typedef PACKED_PRE struct PACKED_POST
1696{
1697 tANI_U32 status;
1698 tHalDisaPayload encryptedPayload;
1699} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1700
1701typedef PACKED_PRE struct PACKED_POST
1702{
1703 tHalMsgHeader header;
1704 tSetEncryptedDataRspParams encryptedDataRspParams;
1705} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1706
Jeff Johnson295189b2012-06-20 16:38:30 -07001707/*---------------------------------------------------------------------------
1708 WLAN_HAL_CONFIG_STA_REQ
1709---------------------------------------------------------------------------*/
1710
1711typedef PACKED_PRE struct PACKED_POST {
1712 /*
1713 * For Self STA Entry: this represents Self Mode.
1714 * For Peer Stations, this represents the mode of the peer.
1715 * On Station:
1716 * --this mode is updated when PE adds the Self Entry.
1717 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1718 * ON AP:
1719 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1720 * to indicate the self mode of the AP.
1721 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1722 */
1723
1724 tStaRateMode opRateMode;
1725 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1726 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1727 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1728 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1729 tANI_U16 reserved;
1730
1731 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1732 //First 26 bits are reserved for those Titan rates and
1733 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1734 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1735
1736 /*
1737 * 0-76 bits used, remaining reserved
1738 * bits 0-15 and 32 should be set.
1739 */
1740 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1741
1742 /*
1743 * RX Highest Supported Data Rate defines the highest data
1744 * rate that the STA is able to receive, in unites of 1Mbps.
1745 * This value is derived from "Supported MCS Set field" inside
1746 * the HT capability element.
1747 */
1748 tANI_U16 rxHighestDataRate;
1749
1750} tSirSupportedRates, *tpSirSupportedRates;
1751
1752typedef PACKED_PRE struct PACKED_POST
1753{
1754 /*BSSID of STA*/
1755 tSirMacAddr bssId;
1756
1757 /*ASSOC ID, as assigned by UMAC*/
1758 tANI_U16 assocId;
1759
1760 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1761 tANI_U8 staType;
1762
1763 /*Short Preamble Supported.*/
1764 tANI_U8 shortPreambleSupported;
1765
1766 /*MAC Address of STA*/
1767 tSirMacAddr staMac;
1768
1769 /*Listen interval of the STA*/
1770 tANI_U16 listenInterval;
1771
1772 /*Support for 11e/WMM*/
1773 tANI_U8 wmmEnabled;
1774
1775 /*11n HT capable STA*/
1776 tANI_U8 htCapable;
1777
1778 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1779 tANI_U8 txChannelWidthSet;
1780
1781 /*RIFS mode 0 - NA, 1 - Allowed */
1782 tANI_U8 rifsMode;
1783
Dino Mycle8afbac12014-07-04 22:06:17 +05301784 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001785 0 - No Support, 1 - Supported
1786 SG - there is global field */
1787 tANI_U8 lsigTxopProtection;
1788
1789 /*Max Ampdu Size supported by STA. TPE programming.
1790 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1791 tANI_U8 maxAmpduSize;
1792
1793 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1794 tANI_U8 maxAmpduDensity;
1795
1796 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1797 tANI_U8 maxAmsduSize;
1798
1799 /*Short GI support for 40Mhz packets*/
1800 tANI_U8 fShortGI40Mhz;
1801
1802 /*Short GI support for 20Mhz packets*/
1803 tANI_U8 fShortGI20Mhz;
1804
Jeff Johnson295189b2012-06-20 16:38:30 -07001805 /*Robust Management Frame (RMF) enabled/disabled*/
1806 tANI_U8 rmfEnabled;
1807
1808 /* The unicast encryption type in the association */
1809 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001810
1811 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001812 will set this flag in case of RE-ASSOC, where we want to reuse the old
1813 STA ID. 0 = Add, 1 = Update*/
1814 tANI_U8 action;
1815
1816 /*U-APSD Flags: 1b per AC. Encoded as follows:
1817 b7 b6 b5 b4 b3 b2 b1 b0 =
1818 X X X X BE BK VI VO */
1819 tANI_U8 uAPSD;
1820
1821 /*Max SP Length*/
1822 tANI_U8 maxSPLen;
1823
1824 /*11n Green Field preamble support
1825 0 - Not supported, 1 - Supported */
1826 tANI_U8 greenFieldCapable;
1827
1828 /*MIMO Power Save mode*/
1829 tSirMacHTMIMOPowerSaveState mimoPS;
1830
1831 /*Delayed BA Support*/
1832 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001833
Jeff Johnson295189b2012-06-20 16:38:30 -07001834 /*Max AMPDU duration in 32us*/
1835 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001836
Jeff Johnson295189b2012-06-20 16:38:30 -07001837 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1838 it to 0 if AP does not support it. This indication is sent to HAL and
1839 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1840 tANI_U8 fDsssCckMode40Mhz;
1841
1842 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1843 Retained for backward compalibity with existing HAL code*/
1844 tANI_U8 staIdx;
1845
1846 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1847 Retained for backward compalibity with existing HAL code*/
1848 tANI_U8 bssIdx;
1849
1850 tANI_U8 p2pCapableSta;
1851
Jeff Johnsone7245742012-09-05 17:12:55 -07001852 /*Reserved to align next field on a dword boundary*/
1853 tANI_U8 reserved;
1854
1855 /*These rates are the intersection of peer and self capabilities.*/
1856 tSirSupportedRates supportedRates;
1857
Jeff Johnson295189b2012-06-20 16:38:30 -07001858} tConfigStaParams, *tpConfigStaParams;
1859
Jeff Johnsone7245742012-09-05 17:12:55 -07001860/*------------------------------------------------------------------------
1861 * WLAN_HAL_CONFIG_STA_REQ
1862 * ----------------------------------------------------------------------*/
1863
1864typedef PACKED_PRE struct PACKED_POST {
1865 /*
1866 * For Self STA Entry: this represents Self Mode.
1867 * For Peer Stations, this represents the mode of the peer.
1868 * On Station:
1869 * --this mode is updated when PE adds the Self Entry.
1870 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1871 * ON AP:
1872 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1873 * to indicate the self mode of the AP.
1874 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1875 */
1876
1877 tStaRateMode opRateMode;
1878 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1879 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1880 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1881 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1882 tANI_U16 reserved;
1883
1884 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1885 //First 26 bits are reserved for those Titan rates and
1886 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1887 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1888
1889 /*
1890 * 0-76 bits used, remaining reserved
1891 * bits 0-15 and 32 should be set.
1892 */
1893 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1894
1895 /*
1896 * RX Highest Supported Data Rate defines the highest data
1897 * rate that the STA is able to receive, in unites of 1Mbps.
1898 * This value is derived from "Supported MCS Set field" inside
1899 * the HT capability element.
1900 */
1901 tANI_U16 rxHighestDataRate;
1902
1903 /* Indicates the Maximum MCS that can be received for each number
1904 * of spacial streams */
1905 tANI_U16 vhtRxMCSMap;
1906
1907 /*Indicate the highest VHT data rate that the STA is able to receive*/
1908 tANI_U16 vhtRxHighestDataRate;
1909
1910 /* Indicates the Maximum MCS that can be transmitted for each number
1911 * of spacial streams */
1912 tANI_U16 vhtTxMCSMap;
1913
1914 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1915 tANI_U16 vhtTxHighestDataRate;
1916
1917} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1918
1919typedef PACKED_PRE struct PACKED_POST
1920{
1921 /*BSSID of STA*/
1922 tSirMacAddr bssId;
1923
1924 /*ASSOC ID, as assigned by UMAC*/
1925 tANI_U16 assocId;
1926
1927 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1928 tANI_U8 staType;
1929
1930 /*Short Preamble Supported.*/
1931 tANI_U8 shortPreambleSupported;
1932
1933 /*MAC Address of STA*/
1934 tSirMacAddr staMac;
1935
1936 /*Listen interval of the STA*/
1937 tANI_U16 listenInterval;
1938
1939 /*Support for 11e/WMM*/
1940 tANI_U8 wmmEnabled;
1941
1942 /*11n HT capable STA*/
1943 tANI_U8 htCapable;
1944
1945 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1946 tANI_U8 txChannelWidthSet;
1947
1948 /*RIFS mode 0 - NA, 1 - Allowed */
1949 tANI_U8 rifsMode;
1950
1951 /*L-SIG TXOP Protection mechanism
1952 0 - No Support, 1 - Supported
1953 SG - there is global field */
1954 tANI_U8 lsigTxopProtection;
1955
1956 /*Max Ampdu Size supported by STA. TPE programming.
1957 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1958 tANI_U8 maxAmpduSize;
1959
1960 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1961 tANI_U8 maxAmpduDensity;
1962
1963 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1964 tANI_U8 maxAmsduSize;
1965
1966 /*Short GI support for 40Mhz packets*/
1967 tANI_U8 fShortGI40Mhz;
1968
1969 /*Short GI support for 20Mhz packets*/
1970 tANI_U8 fShortGI20Mhz;
1971
1972 /*Robust Management Frame (RMF) enabled/disabled*/
1973 tANI_U8 rmfEnabled;
1974
1975 /* The unicast encryption type in the association */
1976 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301977
1978 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001979 will set this flag in case of RE-ASSOC, where we want to reuse the old
1980 STA ID. 0 = Add, 1 = Update*/
1981 tANI_U8 action;
1982
1983 /*U-APSD Flags: 1b per AC. Encoded as follows:
1984 b7 b6 b5 b4 b3 b2 b1 b0 =
1985 X X X X BE BK VI VO */
1986 tANI_U8 uAPSD;
1987
1988 /*Max SP Length*/
1989 tANI_U8 maxSPLen;
1990
1991 /*11n Green Field preamble support
1992 0 - Not supported, 1 - Supported */
1993 tANI_U8 greenFieldCapable;
1994
1995 /*MIMO Power Save mode*/
1996 tSirMacHTMIMOPowerSaveState mimoPS;
1997
1998 /*Delayed BA Support*/
1999 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05302000
Jeff Johnsone7245742012-09-05 17:12:55 -07002001 /*Max AMPDU duration in 32us*/
2002 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05302003
Jeff Johnsone7245742012-09-05 17:12:55 -07002004 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
2005 it to 0 if AP does not support it. This indication is sent to HAL and
2006 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
2007 tANI_U8 fDsssCckMode40Mhz;
2008
2009 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
2010 Retained for backward compalibity with existing HAL code*/
2011 tANI_U8 staIdx;
2012
2013 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
2014 Retained for backward compalibity with existing HAL code*/
2015 tANI_U8 bssIdx;
2016
2017 tANI_U8 p2pCapableSta;
2018
2019 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002020 tANI_U8 htLdpcEnabled:1;
2021 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002022 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302023 tANI_U8 vhtTxMUBformeeCapable:1;
2024 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002025
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002026 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002027 tSirSupportedRates_V1 supportedRates;
2028
2029 tANI_U8 vhtCapable;
2030 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002031
Jeff Johnsone7245742012-09-05 17:12:55 -07002032} tConfigStaParams_V1, *tpConfigStaParams_V1;
2033
Jeff Johnson295189b2012-06-20 16:38:30 -07002034typedef PACKED_PRE struct PACKED_POST
2035{
2036 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002037 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002038 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002039 tConfigStaParams_V1 configStaParams_V1;
2040 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002041} tConfigStaReqMsg, *tpConfigStaReqMsg;
2042
2043/*---------------------------------------------------------------------------
2044 WLAN_HAL_CONFIG_STA_RSP
2045---------------------------------------------------------------------------*/
2046
2047typedef PACKED_PRE struct PACKED_POST
2048{
2049 /*success or failure */
2050 tANI_U32 status;
2051
2052 /* Station index; valid only when 'status' field value SUCCESS */
2053 tANI_U8 staIdx;
2054
2055 /* BSSID Index of BSS to which the station is associated */
2056 tANI_U8 bssIdx;
2057
2058 /* DPU Index for PTK */
2059 tANI_U8 dpuIndex;
2060
Dino Mycle8afbac12014-07-04 22:06:17 +05302061 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002062 tANI_U8 bcastDpuIndex;
2063
2064 /*DPU Index for IGTK */
2065 tANI_U8 bcastMgmtDpuIdx;
2066
2067 /*PTK DPU signature*/
2068 tANI_U8 ucUcastSig;
2069
2070 /*GTK DPU isignature*/
2071 tANI_U8 ucBcastSig;
2072
2073 /* IGTK DPU signature*/
2074 tANI_U8 ucMgmtSig;
2075
2076 tANI_U8 p2pCapableSta;
2077
2078}tConfigStaRspParams, *tpConfigStaRspParams;
2079
2080typedef PACKED_PRE struct PACKED_POST
2081{
2082 tHalMsgHeader header;
2083 tConfigStaRspParams configStaRspParams;
2084}tConfigStaRspMsg, *tpConfigStaRspMsg;
2085
2086/*---------------------------------------------------------------------------
2087 WLAN_HAL_DELETE_STA_REQ
2088---------------------------------------------------------------------------*/
2089
2090/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302091typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002092{
2093 /* Index of STA to delete */
2094 tANI_U8 staIdx;
2095} tDeleteStaParams, *tpDeleteStaParams;
2096
2097/* Delete STA Request message*/
2098typedef PACKED_PRE struct PACKED_POST
2099{
2100 tHalMsgHeader header;
2101 tDeleteStaParams delStaParams;
2102} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2103
2104/*---------------------------------------------------------------------------
2105 WLAN_HAL_DELETE_STA_RSP
2106---------------------------------------------------------------------------*/
2107
2108/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302109typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002110{
2111 /*success or failure */
2112 tANI_U32 status;
2113
2114 /* Index of STA deleted */
2115 tANI_U8 staId;
2116} tDeleteStaRspParams, *tpDeleteStaRspParams;
2117
2118/* Delete STA Response message*/
2119typedef PACKED_PRE struct PACKED_POST
2120{
2121 tHalMsgHeader header;
2122 tDeleteStaRspParams delStaRspParams;
2123} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2124
2125/*---------------------------------------------------------------------------
2126 WLAN_HAL_CONFIG_BSS_REQ
2127---------------------------------------------------------------------------*/
2128
2129//12 Bytes long because this structure can be used to represent rate
2130//and extended rate set IEs. The parser assume this to be at least 12
2131typedef __ani_attr_pre_packed struct sSirMacRateSet
2132{
2133 tANI_U8 numRates;
2134 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2135} __ani_attr_packed tSirMacRateSet;
2136
2137// access category record
2138typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2139{
2140#ifndef ANI_LITTLE_BIT_ENDIAN
2141 tANI_U8 rsvd : 1;
2142 tANI_U8 aci : 2;
2143 tANI_U8 acm : 1;
2144 tANI_U8 aifsn : 4;
2145#else
2146 tANI_U8 aifsn : 4;
2147 tANI_U8 acm : 1;
2148 tANI_U8 aci : 2;
2149 tANI_U8 rsvd : 1;
2150#endif
2151} __ani_attr_packed tSirMacAciAifsn;
2152
2153// contention window size
2154typedef __ani_attr_pre_packed struct sSirMacCW
2155{
2156#ifndef ANI_LITTLE_BIT_ENDIAN
2157 tANI_U8 max : 4;
2158 tANI_U8 min : 4;
2159#else
2160 tANI_U8 min : 4;
2161 tANI_U8 max : 4;
2162#endif
2163} __ani_attr_packed tSirMacCW;
2164
2165typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2166{
2167 tSirMacAciAifsn aci;
2168 tSirMacCW cw;
2169 tANI_U16 txoplimit;
2170} __ani_attr_packed tSirMacEdcaParamRecord;
2171
2172typedef __ani_attr_pre_packed struct sSirMacSSid
2173{
2174 tANI_U8 length;
2175 tANI_U8 ssId[32];
2176} __ani_attr_packed tSirMacSSid;
2177
2178// Concurrency role. These are generic IDs that identify the various roles
2179// in the software system.
2180typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302181 HAL_STA_MODE=0,
2182 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002183 HAL_P2P_CLIENT_MODE,
2184 HAL_P2P_GO_MODE,
2185 HAL_MONITOR_MODE,
2186} tHalConMode;
2187
2188//This is a bit pattern to be set for each mode
2189//bit 0 - sta mode
2190//bit 1 - ap mode
2191//bit 2 - p2p client mode
2192//bit 3 - p2p go mode
2193typedef enum
2194{
Dino Mycle8afbac12014-07-04 22:06:17 +05302195 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002196 HAL_SAP=2,
2197 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2198 HAL_P2P_CLIENT=4,
2199 HAL_P2P_GO=8,
2200 HAL_MAX_CONCURRENCY_PERSONA=4
2201} tHalConcurrencyMode;
2202
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002203// IFACE PERSONA for different Operating modes
2204typedef enum
2205{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002206 HAL_IFACE_UNKNOWN=0,
2207 HAL_IFACE_STA_MODE=1,
2208 HAL_IFACE_P2P_MODE=2,
2209 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002210} tHalIfacePersona;
2211
Jeff Johnson295189b2012-06-20 16:38:30 -07002212typedef PACKED_PRE struct PACKED_POST
2213{
2214 /* BSSID */
2215 tSirMacAddr bssId;
2216
Jeff Johnson295189b2012-06-20 16:38:30 -07002217 /* Self Mac Address */
2218 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002219
2220 /* BSS type */
2221 tSirBssType bssType;
2222
2223 /*Operational Mode: AP =0, STA = 1*/
2224 tANI_U8 operMode;
2225
2226 /*Network Type*/
2227 tSirNwType nwType;
2228
2229 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2230 tANI_U8 shortSlotTimeSupported;
2231
2232 /*Co-exist with 11a STA*/
2233 tANI_U8 llaCoexist;
2234
2235 /*Co-exist with 11b STA*/
2236 tANI_U8 llbCoexist;
2237
2238 /*Co-exist with 11g STA*/
2239 tANI_U8 llgCoexist;
2240
2241 /*Coexistence with 11n STA*/
2242 tANI_U8 ht20Coexist;
2243
2244 /*Non GF coexist flag*/
2245 tANI_U8 llnNonGFCoexist;
2246
2247 /*TXOP protection support*/
2248 tANI_U8 fLsigTXOPProtectionFullSupport;
2249
2250 /*RIFS mode*/
2251 tANI_U8 fRIFSMode;
2252
2253 /*Beacon Interval in TU*/
2254 tSirMacBeaconInterval beaconInterval;
2255
2256 /*DTIM period*/
2257 tANI_U8 dtimPeriod;
2258
2259 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2260 tANI_U8 txChannelWidthSet;
2261
2262 /*Operating channel*/
2263 tANI_U8 currentOperChannel;
2264
2265 /*Extension channel for channel bonding*/
2266 tANI_U8 currentExtChannel;
2267
2268 /*Reserved to align next field on a dword boundary*/
2269 tANI_U8 reserved;
2270
Jeff Johnsone7245742012-09-05 17:12:55 -07002271 /*SSID of the BSS*/
2272 tSirMacSSid ssId;
2273
2274 /*HAL should update the existing BSS entry, if this flag is set.
2275 UMAC will set this flag in case of reassoc, where we want to resue the
2276 the old BSSID and still return success 0 = Add, 1 = Update*/
2277 tANI_U8 action;
2278
2279 /* MAC Rate Set */
2280 tSirMacRateSet rateSet;
2281
2282 /*Enable/Disable HT capabilities of the BSS*/
2283 tANI_U8 htCapable;
2284
2285 // Enable/Disable OBSS protection
2286 tANI_U8 obssProtEnabled;
2287
2288 /*RMF enabled/disabled*/
2289 tANI_U8 rmfEnabled;
2290
2291 /*HT Operating Mode operating mode of the 802.11n STA*/
2292 tSirMacHTOperatingMode htOperMode;
2293
2294 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2295 tANI_U8 dualCTSProtection;
2296
2297 /* Probe Response Max retries */
2298 tANI_U8 ucMaxProbeRespRetryLimit;
2299
2300 /* To Enable Hidden ssid */
2301 tANI_U8 bHiddenSSIDEn;
2302
2303 /* To Enable Disable FW Proxy Probe Resp */
2304 tANI_U8 bProxyProbeRespEn;
2305
2306 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2307 EDCA params or might not desire to apply EDCA params during config BSS.
2308 0 implies Not Valid ; Non-Zero implies valid*/
2309 tANI_U8 edcaParamsValid;
2310
2311 /*EDCA Parameters for Best Effort Access Category*/
2312 tSirMacEdcaParamRecord acbe;
2313
2314 /*EDCA Parameters forBackground Access Category*/
2315 tSirMacEdcaParamRecord acbk;
2316
2317 /*EDCA Parameters for Video Access Category*/
2318 tSirMacEdcaParamRecord acvi;
2319
2320 /*EDCA Parameters for Voice Access Category*/
2321 tSirMacEdcaParamRecord acvo;
2322
2323#ifdef WLAN_FEATURE_VOWIFI_11R
2324 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2325 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2326#endif
2327
2328 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2329 tANI_U8 halPersona;
2330
2331 tANI_U8 bSpectrumMgtEnable;
2332
2333 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2334 tANI_S8 txMgmtPower;
2335 /*maxTxPower has max power to be used after applying the power constraint if any */
2336 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002337 /*Context of the station being added in HW
2338 Add a STA entry for "itself" -
2339 On AP - Add the AP itself in an "STA context"
2340 On STA - Add the AP to which this STA is joining in an "STA context" */
2341 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002342} tConfigBssParams, * tpConfigBssParams;
2343
2344
2345/*--------------------------------------------------------------------------
2346 * WLAN_HAL_CONFIG_BSS_REQ
2347 *--------------------------------------------------------------------------*/
2348typedef PACKED_PRE struct PACKED_POST
2349{
2350 /* BSSID */
2351 tSirMacAddr bssId;
2352
Jeff Johnsone7245742012-09-05 17:12:55 -07002353 /* Self Mac Address */
2354 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002355
2356 /* BSS type */
2357 tSirBssType bssType;
2358
2359 /*Operational Mode: AP =0, STA = 1*/
2360 tANI_U8 operMode;
2361
2362 /*Network Type*/
2363 tSirNwType nwType;
2364
2365 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2366 tANI_U8 shortSlotTimeSupported;
2367
2368 /*Co-exist with 11a STA*/
2369 tANI_U8 llaCoexist;
2370
2371 /*Co-exist with 11b STA*/
2372 tANI_U8 llbCoexist;
2373
2374 /*Co-exist with 11g STA*/
2375 tANI_U8 llgCoexist;
2376
2377 /*Coexistence with 11n STA*/
2378 tANI_U8 ht20Coexist;
2379
2380 /*Non GF coexist flag*/
2381 tANI_U8 llnNonGFCoexist;
2382
2383 /*TXOP protection support*/
2384 tANI_U8 fLsigTXOPProtectionFullSupport;
2385 /*RIFS mode*/
2386 tANI_U8 fRIFSMode;
2387
2388 /*Beacon Interval in TU*/
2389 tSirMacBeaconInterval beaconInterval;
2390
2391 /*DTIM period*/
2392 tANI_U8 dtimPeriod;
2393
2394 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2395 tANI_U8 txChannelWidthSet;
2396
2397 /*Operating channel*/
2398 tANI_U8 currentOperChannel;
2399
2400 /*Extension channel for channel bonding*/
2401 tANI_U8 currentExtChannel;
2402
2403 /*Reserved to align next field on a dword boundary*/
2404 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002405
2406 /*SSID of the BSS*/
2407 tSirMacSSid ssId;
2408
2409 /*HAL should update the existing BSS entry, if this flag is set.
2410 UMAC will set this flag in case of reassoc, where we want to resue the
2411 the old BSSID and still return success 0 = Add, 1 = Update*/
2412 tANI_U8 action;
2413
2414 /* MAC Rate Set */
2415 tSirMacRateSet rateSet;
2416
2417 /*Enable/Disable HT capabilities of the BSS*/
2418 tANI_U8 htCapable;
2419
2420 // Enable/Disable OBSS protection
2421 tANI_U8 obssProtEnabled;
2422
2423 /*RMF enabled/disabled*/
2424 tANI_U8 rmfEnabled;
2425
2426 /*HT Operating Mode operating mode of the 802.11n STA*/
2427 tSirMacHTOperatingMode htOperMode;
2428
2429 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2430 tANI_U8 dualCTSProtection;
2431
2432 /* Probe Response Max retries */
2433 tANI_U8 ucMaxProbeRespRetryLimit;
2434
2435 /* To Enable Hidden ssid */
2436 tANI_U8 bHiddenSSIDEn;
2437
2438 /* To Enable Disable FW Proxy Probe Resp */
2439 tANI_U8 bProxyProbeRespEn;
2440
Dino Mycle8afbac12014-07-04 22:06:17 +05302441 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2442 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002443 0 implies Not Valid ; Non-Zero implies valid*/
2444 tANI_U8 edcaParamsValid;
2445
2446 /*EDCA Parameters for Best Effort Access Category*/
2447 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302448
Jeff Johnson295189b2012-06-20 16:38:30 -07002449 /*EDCA Parameters forBackground Access Category*/
2450 tSirMacEdcaParamRecord acbk;
2451
2452 /*EDCA Parameters for Video Access Category*/
2453 tSirMacEdcaParamRecord acvi;
2454
2455 /*EDCA Parameters for Voice Access Category*/
2456 tSirMacEdcaParamRecord acvo;
2457
2458#ifdef WLAN_FEATURE_VOWIFI_11R
2459 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2460 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2461#endif
2462
Dino Mycle8afbac12014-07-04 22:06:17 +05302463 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002464 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302465
Jeff Johnson295189b2012-06-20 16:38:30 -07002466 tANI_U8 bSpectrumMgtEnable;
2467
2468 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2469 tANI_S8 txMgmtPower;
2470 /*maxTxPower has max power to be used after applying the power constraint if any */
2471 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002472 /*Context of the station being added in HW
2473 Add a STA entry for "itself" -
2474 On AP - Add the AP itself in an "STA context"
2475 On STA - Add the AP to which this STA is joining in an "STA context" */
2476 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302477
Jeff Johnsone7245742012-09-05 17:12:55 -07002478 tANI_U8 vhtCapable;
2479 tANI_U8 vhtTxChannelWidthSet;
2480} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002481
2482typedef PACKED_PRE struct PACKED_POST
2483{
2484 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002485 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002486 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002487 tConfigBssParams_V1 configBssParams_V1;
2488 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002489} tConfigBssReqMsg, *tpConfigBssReqMsg;
2490
2491/*---------------------------------------------------------------------------
2492 WLAN_HAL_CONFIG_BSS_RSP
2493---------------------------------------------------------------------------*/
2494
2495typedef PACKED_PRE struct PACKED_POST
2496{
2497 /* Success or Failure */
2498 tANI_U32 status;
2499
2500 /* BSS index allocated by HAL */
2501 tANI_U8 bssIdx;
2502
2503 /* DPU descriptor index for PTK */
2504 tANI_U8 dpuDescIndx;
2505
2506 /* PTK DPU signature */
2507 tANI_U8 ucastDpuSignature;
2508
2509 /* DPU descriptor index for GTK*/
2510 tANI_U8 bcastDpuDescIndx;
2511
2512 /* GTK DPU signature */
2513 tANI_U8 bcastDpuSignature;
2514
2515 /*DPU descriptor for IGTK*/
2516 tANI_U8 mgmtDpuDescIndx;
2517
2518 /* IGTK DPU signature */
2519 tANI_U8 mgmtDpuSignature;
2520
2521 /* Station Index for BSS entry*/
2522 tANI_U8 bssStaIdx;
2523
2524 /* Self station index for this BSS */
2525 tANI_U8 bssSelfStaIdx;
2526
2527 /* Bcast station for buffering bcast frames in AP role */
2528 tANI_U8 bssBcastStaIdx;
2529
2530 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2531 tSirMacAddr staMac;
2532
2533 /*HAL fills in the tx power used for mgmt frames in this field. */
2534 tANI_S8 txMgmtPower;
2535
2536} tConfigBssRspParams, * tpConfigBssRspParams;
2537
2538typedef PACKED_PRE struct PACKED_POST
2539{
2540 tHalMsgHeader header;
2541 tConfigBssRspParams configBssRspParams;
2542} tConfigBssRspMsg, *tpConfigBssRspMsg;
2543
2544/*---------------------------------------------------------------------------
2545 WLAN_HAL_DELETE_BSS_REQ
2546---------------------------------------------------------------------------*/
2547
2548typedef PACKED_PRE struct PACKED_POST
2549{
2550 /* BSS index to be deleted */
2551 tANI_U8 bssIdx;
2552
2553} tDeleteBssParams, *tpDeleteBssParams;
2554
2555typedef PACKED_PRE struct PACKED_POST
2556{
2557 tHalMsgHeader header;
2558 tDeleteBssParams deleteBssParams;
2559} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2560
2561/*---------------------------------------------------------------------------
2562 WLAN_HAL_DELETE_BSS_RSP
2563---------------------------------------------------------------------------*/
2564
2565typedef PACKED_PRE struct PACKED_POST
2566{
2567 /* Success or Failure */
2568 tANI_U32 status;
2569
2570 /* BSS index that has been deleted */
2571 tANI_U8 bssIdx;
2572
2573} tDeleteBssRspParams, *tpDeleteBssRspParams;
2574
2575typedef PACKED_PRE struct PACKED_POST
2576{
2577 tHalMsgHeader header;
2578 tDeleteBssRspParams deleteBssRspParams;
2579} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2580
2581/*---------------------------------------------------------------------------
2582 WLAN_HAL_JOIN_REQ
2583---------------------------------------------------------------------------*/
2584
2585typedef PACKED_PRE struct PACKED_POST
2586{
2587 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302588 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002589
2590 /*Indicates the channel to switch to.*/
2591 tANI_U8 ucChannel;
2592
2593 /* Self STA MAC */
2594 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302595
Jeff Johnson295189b2012-06-20 16:38:30 -07002596 /*Local power constraint*/
2597 tANI_U8 ucLocalPowerConstraint;
2598
2599 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002600 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002601
2602 /*link State*/
2603 tSirLinkState linkState;
2604
2605 /* Max TX power */
2606 tANI_S8 maxTxPower;
2607
2608} tHalJoinReqParams, *tpHalJoinReqParams;
2609
2610typedef PACKED_PRE struct PACKED_POST
2611{
2612 tHalMsgHeader header;
2613 tHalJoinReqParams joinReqParams;
2614} tHalJoinReqMsg, *tpHalJoinReqMsg;
2615
2616/*---------------------------------------------------------------------------
2617 WLAN_HAL_JOIN_RSP
2618---------------------------------------------------------------------------*/
2619
2620typedef PACKED_PRE struct PACKED_POST
2621{
2622 /*success or failure */
2623 tANI_U32 status;
2624
2625 /* HAL fills in the tx power used for mgmt frames in this field */
2626 tPowerdBm txMgmtPower;
2627
2628}tHalJoinRspParams, *tpHalJoinRspParams;
2629
2630typedef PACKED_PRE struct PACKED_POST
2631{
2632 tHalMsgHeader header;
2633 tHalJoinRspParams joinRspParams;
2634}tHalJoinRspMsg, *tpHalJoinRspMsg;
2635
2636/*---------------------------------------------------------------------------
2637 WLAN_HAL_POST_ASSOC_REQ
2638---------------------------------------------------------------------------*/
2639
2640typedef PACKED_PRE struct PACKED_POST
2641{
2642 tConfigStaParams configStaParams;
2643 tConfigBssParams configBssParams;
2644} tPostAssocReqParams, *tpPostAssocReqParams;
2645
2646typedef PACKED_PRE struct PACKED_POST
2647{
2648 tHalMsgHeader header;
2649 tPostAssocReqParams postAssocReqParams;
2650} tPostAssocReqMsg, *tpPostAssocReqMsg;
2651
2652/*---------------------------------------------------------------------------
2653 WLAN_HAL_POST_ASSOC_RSP
2654---------------------------------------------------------------------------*/
2655
2656typedef PACKED_PRE struct PACKED_POST
2657{
2658 tConfigStaRspParams configStaRspParams;
2659 tConfigBssRspParams configBssRspParams;
2660} tPostAssocRspParams, *tpPostAssocRspParams;
2661
2662typedef PACKED_PRE struct PACKED_POST
2663{
2664 tHalMsgHeader header;
2665 tPostAssocRspParams postAssocRspParams;
2666} tPostAssocRspMsg, *tpPostAssocRspMsg;
2667
2668/*---------------------------------------------------------------------------
2669 WLAN_HAL_SET_BSSKEY_REQ
2670---------------------------------------------------------------------------*/
2671
2672/*
2673 * This is used by PE to create a set of WEP keys for a given BSS.
2674 */
2675typedef PACKED_PRE struct PACKED_POST
2676{
2677 /*BSS Index of the BSS*/
2678 tANI_U8 bssIdx;
2679
2680 /*Encryption Type used with peer*/
2681 tAniEdType encType;
2682
2683 /*Number of keys*/
2684 tANI_U8 numKeys;
2685
2686 /*Array of keys.*/
2687 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302688
Jeff Johnson295189b2012-06-20 16:38:30 -07002689 /*Control for Replay Count, 1= Single TID based replay count on Tx
2690 0 = Per TID based replay count on TX */
2691 tANI_U8 singleTidRc;
2692} tSetBssKeyParams, *tpSetBssKeyParams;
2693
2694typedef PACKED_PRE struct PACKED_POST
2695{
2696 tHalMsgHeader header;
2697 tSetBssKeyParams setBssKeyParams;
2698} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2699
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002700/* tagged version of set bss key */
2701typedef PACKED_PRE struct PACKED_POST
2702{
2703 tSetBssKeyReqMsg Msg;
2704 uint32 Tag;
2705} tSetBssKeyReqMsgTagged;
2706
Jeff Johnson295189b2012-06-20 16:38:30 -07002707/*---------------------------------------------------------------------------
2708 WLAN_HAL_SET_BSSKEY_RSP
2709---------------------------------------------------------------------------*/
2710typedef PACKED_PRE struct PACKED_POST
2711{
2712 /*success or failure */
2713 tANI_U32 status;
2714
2715} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2716
2717typedef PACKED_PRE struct PACKED_POST
2718{
2719 tHalMsgHeader header;
2720 tSetBssKeyRspParams setBssKeyRspParams;
2721} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2722
2723/*---------------------------------------------------------------------------
2724 WLAN_HAL_SET_STAKEY_REQ,
2725---------------------------------------------------------------------------*/
2726
2727/*
2728 * This is used by PE to configure the key information on a given station.
2729 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2730 * a preconfigured key from a BSS the station assoicated with; otherwise
2731 * a new key descriptor is created based on the key field.
2732 */
2733
2734typedef PACKED_PRE struct PACKED_POST
2735{
2736 tHalMsgHeader header;
2737 tSetStaKeyParams setStaKeyParams;
2738} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2739
2740/*---------------------------------------------------------------------------
2741 WLAN_HAL_SET_STAKEY_RSP,
2742---------------------------------------------------------------------------*/
2743typedef PACKED_PRE struct PACKED_POST
2744{
2745 /*success or failure */
2746 tANI_U32 status;
2747
2748} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2749
2750typedef PACKED_PRE struct PACKED_POST
2751{
2752 tHalMsgHeader header;
2753 tSetStaKeyRspParams setStaKeyRspParams;
2754} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2755
2756/*---------------------------------------------------------------------------
2757 WLAN_HAL_RMV_BSSKEY_REQ,
2758---------------------------------------------------------------------------*/
2759/*
2760 * This is used by PE to remove keys for a given BSS.
2761 */
2762typedef PACKED_PRE struct PACKED_POST
2763
2764{
2765 /*BSS Index of the BSS*/
2766 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302767
Jeff Johnson295189b2012-06-20 16:38:30 -07002768 /*Encryption Type used with peer*/
2769 tAniEdType encType;
2770
2771 /*Key Id*/
2772 tANI_U8 keyId;
2773
2774 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2775 tAniWepType wepType;
2776
2777} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2778
2779typedef PACKED_PRE struct PACKED_POST
2780{
2781 tHalMsgHeader header;
2782 tRemoveBssKeyParams removeBssKeyParams;
2783} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2784
2785/*---------------------------------------------------------------------------
2786 WLAN_HAL_RMV_BSSKEY_RSP,
2787---------------------------------------------------------------------------*/
2788typedef PACKED_PRE struct PACKED_POST
2789{
2790 /*success or failure */
2791 tANI_U32 status;
2792
2793} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2794
2795typedef PACKED_PRE struct PACKED_POST
2796{
2797 tHalMsgHeader header;
2798 tRemoveBssKeyRspParams removeBssKeyRspParams;
2799} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2800
2801/*---------------------------------------------------------------------------
2802 WLAN_HAL_RMV_STAKEY_REQ,
2803---------------------------------------------------------------------------*/
2804/*
2805 * This is used by PE to Remove the key information on a given station.
2806 */
2807typedef PACKED_PRE struct PACKED_POST
2808{
2809 /*STA Index*/
2810 tANI_U16 staIdx;
2811
2812 /*Encryption Type used with peer*/
2813 tAniEdType encType;
2814
2815 /*Key Id*/
2816 tANI_U8 keyId;
2817
2818 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2819 the same key is used for both broadcast and unicast.*/
2820 tANI_BOOLEAN unicast;
2821
2822} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2823
2824typedef PACKED_PRE struct PACKED_POST
2825{
2826 tHalMsgHeader header;
2827 tRemoveStaKeyParams removeStaKeyParams;
2828} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2829
2830/*---------------------------------------------------------------------------
2831 WLAN_HAL_RMV_STAKEY_RSP,
2832---------------------------------------------------------------------------*/
2833typedef PACKED_PRE struct PACKED_POST
2834{
2835 /*success or failure */
2836 tANI_U32 status;
2837} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2838
2839typedef PACKED_PRE struct PACKED_POST
2840{
2841 tHalMsgHeader header;
2842 tRemoveStaKeyRspParams removeStaKeyRspParams;
2843} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2844
Jeff Johnsone7245742012-09-05 17:12:55 -07002845#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002846
Jeff Johnsone7245742012-09-05 17:12:55 -07002847#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002848#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002849#endif
2850
2851#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002852#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002853#endif
2854
2855/*-------------------------------------------------------------------------
2856WLAN_HAL_START_OEM_DATA_REQ
2857--------------------------------------------------------------------------*/
2858typedef PACKED_PRE struct PACKED_POST
2859{
2860 tANI_U32 status;
2861 tSirMacAddr selfMacAddr;
2862 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2863} tStartOemDataReqParams, *tpStartOemDataReqParams;
2864
2865typedef PACKED_PRE struct PACKED_POST
2866{
2867 tHalMsgHeader header;
2868 tStartOemDataReqParams startOemDataReqParams;
2869} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2870
2871/*-------------------------------------------------------------------------
2872WLAN_HAL_START_OEM_DATA_RSP
2873--------------------------------------------------------------------------*/
2874
2875typedef PACKED_PRE struct PACKED_POST
2876{
2877 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2878} tStartOemDataRspParams, *tpStartOemDataRspParams;
2879
2880typedef PACKED_PRE struct PACKED_POST
2881{
2882 tHalMsgHeader header;
2883 tStartOemDataRspParams startOemDataRspParams;
2884} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2885
2886#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002887
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002888/*---------------------------------------------------------------------------
2889WLAN_HAL_CH_SWITCH_V1_REQ
2890---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002891
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002892typedef PACKED_PRE struct PACKED_POST
2893{
2894 /* Channel number */
2895 tANI_U8 channelNumber;
2896
2897 /* Local power constraint */
2898 tANI_U8 localPowerConstraint;
2899
2900 /*Secondary channel offset */
2901 ePhyChanBondState secondaryChannelOffset;
2902
2903 //HAL fills in the tx power used for mgmt frames in this field.
2904 tPowerdBm txMgmtPower;
2905
2906 /* Max TX power */
2907 tPowerdBm maxTxPower;
2908
2909 /* Self STA MAC */
2910 tSirMacAddr selfStaMacAddr;
2911
2912 /*VO WIFI comment: BSSID needed to identify session. As the request has
2913 * power constraints, this should be applied only to that session
2914 * Since MTU timing and EDCA are sessionized, this struct needs to be
2915 * sessionized and bssid needs to be out of the VOWifi feature flag
2916 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002917 * mantain backward compatbility
2918 * by way of ignoring if using new host/old FW or old host/new FW since
2919 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002920 */
2921 tSirMacAddr bssId;
2922
2923 /* Source of Channel Switch */
2924 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002925
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002926} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2927
2928typedef PACKED_PRE struct PACKED_POST
2929{
2930 tHalMsgHeader header;
2931 tSwitchChannelParams_V1 switchChannelParams_V1;
2932} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2933
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002934/*---------------------------------------------------------------------------
2935WLAN_HAL_CH_SWITCH_V1_RSP
2936---------------------------------------------------------------------------*/
2937
2938typedef PACKED_PRE struct PACKED_POST
2939{
2940 /* Status */
2941 tANI_U32 status;
2942
2943 /* Channel number - same as in request*/
2944 tANI_U8 channelNumber;
2945
2946 /* HAL fills in the tx power used for mgmt frames in this field */
2947 tPowerdBm txMgmtPower;
2948
2949 /* BSSID needed to identify session - same as in request*/
2950 tSirMacAddr bssId;
2951
2952 /* Source of Channel Switch */
2953 eHalChanSwitchSource channelSwitchSrc;
2954
2955} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2956
2957typedef PACKED_PRE struct PACKED_POST
2958{
2959 tHalMsgHeader header;
2960 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2961} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002962
2963/*---------------------------------------------------------------------------
2964WLAN_HAL_CH_SWITCH_REQ
2965---------------------------------------------------------------------------*/
2966
2967typedef PACKED_PRE struct PACKED_POST
2968{
2969 /* Channel number */
2970 tANI_U8 channelNumber;
2971
2972 /* Local power constraint */
2973 tANI_U8 localPowerConstraint;
2974
2975 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002976 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002977
2978 //HAL fills in the tx power used for mgmt frames in this field.
2979 tPowerdBm txMgmtPower;
2980
2981 /* Max TX power */
2982 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302983
Jeff Johnson295189b2012-06-20 16:38:30 -07002984 /* Self STA MAC */
2985 tSirMacAddr selfStaMacAddr;
2986
2987 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2988 this should be applied only to that session*/
2989 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2990 * bssid needs to be out of the VOWifi feature flag */
2991 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2992 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2993 */
2994 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302995
Jeff Johnson295189b2012-06-20 16:38:30 -07002996}tSwitchChannelParams, *tpSwitchChannelParams;
2997
2998typedef PACKED_PRE struct PACKED_POST
2999{
3000 tHalMsgHeader header;
3001 tSwitchChannelParams switchChannelParams;
3002} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
3003
3004/*---------------------------------------------------------------------------
3005WLAN_HAL_CH_SWITCH_RSP
3006---------------------------------------------------------------------------*/
3007
3008typedef PACKED_PRE struct PACKED_POST
3009{
3010 /* Status */
3011 tANI_U32 status;
3012
3013 /* Channel number - same as in request*/
3014 tANI_U8 channelNumber;
3015
3016 /* HAL fills in the tx power used for mgmt frames in this field */
3017 tPowerdBm txMgmtPower;
3018
3019 /* BSSID needed to identify session - same as in request*/
3020 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303021
Jeff Johnson295189b2012-06-20 16:38:30 -07003022}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3023
3024typedef PACKED_PRE struct PACKED_POST
3025{
3026 tHalMsgHeader header;
3027 tSwitchChannelRspParams switchChannelRspParams;
3028} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3029
3030/*---------------------------------------------------------------------------
3031WLAN_HAL_UPD_EDCA_PARAMS_REQ
3032---------------------------------------------------------------------------*/
3033
3034typedef PACKED_PRE struct PACKED_POST
3035{
3036 /*BSS Index*/
3037 tANI_U16 bssIdx;
3038
3039 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303040 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003041
3042 /* Background */
3043 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303044
Jeff Johnson295189b2012-06-20 16:38:30 -07003045 /* Video */
3046 tSirMacEdcaParamRecord acvi;
3047
3048 /* Voice */
3049 tSirMacEdcaParamRecord acvo;
3050
3051} tEdcaParams, *tpEdcaParams;
3052
3053typedef PACKED_PRE struct PACKED_POST
3054{
3055 tHalMsgHeader header;
3056 tEdcaParams edcaParams;
3057} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3058
3059/*---------------------------------------------------------------------------
3060WLAN_HAL_UPD_EDCA_PARAMS_RSP
3061---------------------------------------------------------------------------*/
3062typedef PACKED_PRE struct PACKED_POST
3063{
3064 /*success or failure */
3065 tANI_U32 status;
3066} tEdcaRspParams, *tpEdcaRspParams;
3067
3068typedef PACKED_PRE struct PACKED_POST
3069{
3070 tHalMsgHeader header;
3071 tEdcaRspParams edcaRspParams;
3072} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3073
3074
3075
3076/*---------------------------------------------------------------------------
3077 * WLAN_HAL_GET_STATS_REQ
3078 *--------------------------------------------------------------------------*/
3079typedef PACKED_PRE struct PACKED_POST
3080
3081{
3082 /* Index of STA to which the statistics */
3083 tANI_U16 staIdx;
3084
3085 /* Encryption mode */
3086 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303087
Jeff Johnson295189b2012-06-20 16:38:30 -07003088 /* status */
3089 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303090
Jeff Johnson295189b2012-06-20 16:38:30 -07003091 /* Statistics */
3092 tANI_U32 sendBlocks;
3093 tANI_U32 recvBlocks;
3094 tANI_U32 replays;
3095 tANI_U8 micErrorCnt;
3096 tANI_U32 protExclCnt;
3097 tANI_U16 formatErrCnt;
3098 tANI_U16 unDecryptableCnt;
3099 tANI_U32 decryptErrCnt;
3100 tANI_U32 decryptOkCnt;
3101} tDpuStatsParams, * tpDpuStatsParams;
3102
3103typedef PACKED_PRE struct PACKED_POST
3104{
3105 /* Valid STA Idx for per STA stats request */
3106 tANI_U32 staId;
3107
3108 /* Categories of stats requested as specified in eHalStatsMask*/
3109 tANI_U32 statsMask;
3110}tHalStatsReqParams, *tpHalStatsReqParams;
3111
3112typedef PACKED_PRE struct PACKED_POST
3113{
3114 tHalMsgHeader header;
3115 tHalStatsReqParams statsReqParams;
3116} tHalStatsReqMsg, *tpHalStatsReqMsg;
3117
3118/*---------------------------------------------------------------------------
3119 * WLAN_HAL_GET_STATS_RSP
3120 *--------------------------------------------------------------------------*/
3121
3122typedef PACKED_PRE struct PACKED_POST
3123{
3124 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3125 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3126 // station successfully transmitted after more than one retransmission attempt
3127
Dino Mycle8afbac12014-07-04 22:06:17 +05303128 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3129 //(with and without retries, including multi-cast, broadcast)
3130 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3131 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003132 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3133 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3134 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3135 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 +05303136 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3137 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 -07003138 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3139 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 +05303140 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3141 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003142 //to provide this.
3143}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3144
3145
3146// defines tx_rate_flags
3147typedef enum eTxRateInfo
3148{
3149 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3150 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3151 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3152 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003153 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3154 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3155 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3156 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3157 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3158 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3159} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003160
3161
3162typedef PACKED_PRE struct PACKED_POST
3163{
Dino Mycle8afbac12014-07-04 22:06:17 +05303164 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 -07003165 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303166 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 -07003167 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303168 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3169 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003170 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303171 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3172 //for eg: if it is 10.5dBm, the value would be 105
3173 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3174 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003175
Dino Mycle8afbac12014-07-04 22:06:17 +05303176 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3177 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003178 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303179 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3180 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003181}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3182
3183typedef PACKED_PRE struct PACKED_POST
3184{
Dino Mycle8afbac12014-07-04 22:06:17 +05303185 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3186 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003187 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303188 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 -07003189 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303190 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 -07003191 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303192 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 -07003193 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303194 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 -07003195 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303196 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 -07003197 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303198 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 -07003199 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303200 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 -07003201 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303202 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 -07003203 //decrypted
3204 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3205
3206}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303207
Jeff Johnson295189b2012-06-20 16:38:30 -07003208typedef PACKED_PRE struct PACKED_POST
3209{
3210 tAniGlobalSecurityStats ucStats;
3211 tAniGlobalSecurityStats mcbcStats;
3212}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3213
3214typedef PACKED_PRE struct PACKED_POST
3215{
Dino Mycle8afbac12014-07-04 22:06:17 +05303216 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3217 //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 -07003218 //address 1 field
3219 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 +05303220 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 -07003221 //primary channel
3222 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 +05303223 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 -07003224 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303225 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3226 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003227 //decoded correctly
3228}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3229
3230typedef PACKED_PRE struct PACKED_POST
3231{
Dino Mycle8afbac12014-07-04 22:06:17 +05303232 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 -07003233 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303234 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3235 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 -07003236 //is transmitted
3237}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3238
Sushant Kaushik33200572015-08-05 16:46:20 +05303239// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3240typedef PACKED_PRE struct PACKED_POST
3241{
3242 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05303243 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05303244 tANI_U32 reserved;
3245 tANI_U32 reserved1;
3246}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3247
Jeff Johnson295189b2012-06-20 16:38:30 -07003248typedef PACKED_PRE struct PACKED_POST
3249{
3250 /* Success or Failure */
3251 tANI_U32 status;
3252
3253 /* STA Idx */
3254 tANI_U32 staId;
3255
3256 /* Categories of STATS being returned as per eHalStatsMask*/
3257 tANI_U32 statsMask;
3258
3259 /* message type is same as the request type */
3260 tANI_U16 msgType;
3261
3262 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303263 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003264
3265} tHalStatsRspParams, *tpHalStatsRspParams;
3266
3267
3268
3269typedef PACKED_PRE struct PACKED_POST
3270{
3271 tHalMsgHeader header;
3272 tHalStatsRspParams statsRspParams;
3273} tHalStatsRspMsg, *tpHalStatsRspMsg;
3274
Abhishek Singhbc310882015-05-22 15:17:02 +05303275 /*---------------------------------------------------------------------------
3276 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3277 *---------------------------------------------------------------------------*/
3278typedef PACKED_PRE struct PACKED_POST
3279{
3280 tANI_U32 rtsCtsValue;
3281}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3282
3283typedef PACKED_PRE struct PACKED_POST
3284{
3285 tHalMsgHeader header;
3286 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3287} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3288
Jeff Johnson295189b2012-06-20 16:38:30 -07003289/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303290 * WLAN_HAL_FW_STATS_REQ
3291 *---------------------------------------------------------------------------*/
3292 typedef PACKED_PRE struct PACKED_POST
3293{
3294 tANI_U32 type;
3295}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3296
3297typedef PACKED_PRE struct PACKED_POST
3298{
3299 tHalMsgHeader header;
3300 tHalfwStatsReqParams fwstatsReqParams;
3301} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3302
3303/*---------------------------------------------------------------------------
3304 * WLAN_HAL_FW_STATS_RSP
3305 *---------------------------------------------------------------------------*/
3306 typedef PACKED_PRE struct PACKED_POST
3307{
3308 tANI_U32 type;
3309 tANI_U32 length;
3310 tANI_U8 data[1];
3311
3312}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3313
3314typedef PACKED_PRE struct PACKED_POST
3315{
3316 tHalMsgHeader header;
3317 tHalfwStatsRspParams fwstatsRspParams;
3318} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3319
3320typedef enum
3321{
3322 FW_UBSP_STATS = 1,
3323} fwstatstype;
3324
3325
3326/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003327 * WLAN_HAL_SET_LINK_ST_REQ
3328 *--------------------------------------------------------------------------*/
3329typedef PACKED_PRE struct PACKED_POST
3330{
3331 tSirMacAddr bssid;
3332 tSirLinkState state;
3333 tSirMacAddr selfMacAddr;
3334} tLinkStateParams, *tpLinkStateParams;
3335
3336typedef PACKED_PRE struct PACKED_POST
3337{
3338 tHalMsgHeader header;
3339 tLinkStateParams linkStateParams;
3340} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3341
3342/*---------------------------------------------------------------------------
3343 * WLAN_HAL_SET_LINK_ST_RSP
3344 *--------------------------------------------------------------------------*/
3345
3346typedef PACKED_PRE struct PACKED_POST
3347{
3348 /*success or failure */
3349 tANI_U32 status;
3350} tLinkStateRspParams, *tpLinkStateRspParams;
3351
3352typedef PACKED_PRE struct PACKED_POST
3353{
3354 tHalMsgHeader header;
3355 tLinkStateRspParams linkStateRspParams;
3356} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3357
3358/*---------------------------------------------------------------------------
3359 * WLAN_HAL_ADD_TS_REQ
3360 *--------------------------------------------------------------------------*/
3361
3362/* TSPEC Params */
3363typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3364{
Jeff Johnson295189b2012-06-20 16:38:30 -07003365 tANI_U16 trafficType : 1;
3366 tANI_U16 tsid : 4;
3367 tANI_U16 direction : 2;
3368 tANI_U16 accessPolicy : 2;
3369 tANI_U16 aggregation : 1;
3370 tANI_U16 psb : 1;
3371 tANI_U16 userPrio : 3;
3372 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003373} __ani_attr_packed tSirMacTSInfoTfc;
3374
3375/* Flag to schedule the traffic type */
3376typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3377{
Jeff Johnson295189b2012-06-20 16:38:30 -07003378 tANI_U8 schedule : 1;
3379 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003380} __ani_attr_packed tSirMacTSInfoSch;
3381
3382/* Traffic and scheduling info */
3383typedef __ani_attr_pre_packed struct sSirMacTSInfo
3384{
3385 tSirMacTSInfoTfc traffic;
3386 tSirMacTSInfoSch schedule;
3387} __ani_attr_packed tSirMacTSInfo;
3388
3389/* Information elements */
3390typedef __ani_attr_pre_packed struct sSirMacTspecIE
3391{
3392 tANI_U8 type;
3393 tANI_U8 length;
3394 tSirMacTSInfo tsinfo;
3395 tANI_U16 nomMsduSz;
3396 tANI_U16 maxMsduSz;
3397 tANI_U32 minSvcInterval;
3398 tANI_U32 maxSvcInterval;
3399 tANI_U32 inactInterval;
3400 tANI_U32 suspendInterval;
3401 tANI_U32 svcStartTime;
3402 tANI_U32 minDataRate;
3403 tANI_U32 meanDataRate;
3404 tANI_U32 peakDataRate;
3405 tANI_U32 maxBurstSz;
3406 tANI_U32 delayBound;
3407 tANI_U32 minPhyRate;
3408 tANI_U16 surplusBw;
3409 tANI_U16 mediumTime;
3410}__ani_attr_packed tSirMacTspecIE;
3411
3412typedef PACKED_PRE struct PACKED_POST
3413{
3414 /* Station Index */
3415 tANI_U16 staIdx;
3416
3417 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3418 tANI_U16 tspecIdx;
3419
3420 /* To program TPE with required parameters */
3421 tSirMacTspecIE tspec;
3422
3423 /* U-APSD Flags: 1b per AC. Encoded as follows:
3424 b7 b6 b5 b4 b3 b2 b1 b0 =
3425 X X X X BE BK VI VO */
3426 tANI_U8 uAPSD;
3427
3428 /* These parameters are for all the access categories */
3429 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3430 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3431 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303432
Jeff Johnson295189b2012-06-20 16:38:30 -07003433} tAddTsParams, *tpAddTsParams;
3434
3435typedef PACKED_PRE struct PACKED_POST
3436{
3437 tHalMsgHeader header;
3438 tAddTsParams addTsParams;
3439} tAddTsReqMsg, *tpAddTsReqMsg;
3440
3441/*---------------------------------------------------------------------------
3442 * WLAN_HAL_ADD_TS_RSP
3443 *--------------------------------------------------------------------------*/
3444
3445typedef PACKED_PRE struct PACKED_POST
3446{
3447 /*success or failure */
3448 tANI_U32 status;
3449} tAddTsRspParams, *tpAddTsRspParams;
3450
3451typedef PACKED_PRE struct PACKED_POST
3452{
3453 tHalMsgHeader header;
3454 tAddTsRspParams addTsRspParams;
3455} tAddTsRspMsg, *tpAddTsRspMsg;
3456
3457
3458/*---------------------------------------------------------------------------
3459 * WLAN_HAL_DEL_TS_REQ
3460 *--------------------------------------------------------------------------*/
3461
3462typedef PACKED_PRE struct PACKED_POST
3463{
3464 /* Station Index */
3465 tANI_U16 staIdx;
3466
3467 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3468 tANI_U16 tspecIdx;
3469
3470 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303471 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003472
3473} tDelTsParams, *tpDelTsParams;
3474
3475typedef PACKED_PRE struct PACKED_POST
3476{
3477 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303478 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003479} tDelTsReqMsg, *tpDelTsReqMsg;
3480
3481/*---------------------------------------------------------------------------
3482 * WLAN_HAL_DEL_TS_RSP
3483 *--------------------------------------------------------------------------*/
3484
3485typedef PACKED_PRE struct PACKED_POST
3486{
3487 /*success or failure */
3488 tANI_U32 status;
3489} tDelTsRspParams, *tpDelTsRspParams;
3490
3491typedef PACKED_PRE struct PACKED_POST
3492{
3493 tHalMsgHeader header;
3494 tDelTsRspParams delTsRspParams;
3495} tDelTsRspMsg, *tpDelTsRspMsg;
3496
3497/* End of TSpec Parameters */
3498
3499/* Start of BLOCK ACK related Parameters */
3500
3501/*---------------------------------------------------------------------------
3502 * WLAN_HAL_ADD_BA_SESSION_REQ
3503 *--------------------------------------------------------------------------*/
3504
3505typedef PACKED_PRE struct PACKED_POST
3506{
3507 /* Station Index */
3508 tANI_U16 staIdx;
3509
3510 /* Peer MAC Address */
3511 tSirMacAddr peerMacAddr;
3512
3513 /* ADDBA Action Frame dialog token
3514 HAL will not interpret this object */
3515 tANI_U8 baDialogToken;
3516
3517 /* TID for which the BA is being setup
3518 This identifies the TC or TS of interest */
3519 tANI_U8 baTID;
3520
3521 /* 0 - Delayed BA (Not supported)
3522 1 - Immediate BA */
3523 tANI_U8 baPolicy;
3524
3525 /* Indicates the number of buffers for this TID (baTID)
3526 NOTE - This is the requested buffer size. When this
3527 is processed by HAL and subsequently by HDD, it is
3528 possible that HDD may change this buffer size. Any
3529 change in the buffer size should be noted by PE and
3530 advertized appropriately in the ADDBA response */
3531 tANI_U16 baBufferSize;
3532
3533 /* BA timeout in TU's 0 means no timeout will occur */
3534 tANI_U16 baTimeout;
3535
3536 /* b0..b3 - Fragment Number - Always set to 0
3537 b4..b15 - Starting Sequence Number of first MSDU
3538 for which this BA is setup */
3539 tANI_U16 baSSN;
3540
3541 /* ADDBA direction
3542 1 - Originator
3543 0 - Recipient */
3544 tANI_U8 baDirection;
3545} tAddBASessionParams, *tpAddBASessionParams;
3546
3547typedef PACKED_PRE struct PACKED_POST
3548{
3549 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303550 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003551}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3552
3553/*---------------------------------------------------------------------------
3554 * WLAN_HAL_ADD_BA_SESSION_RSP
3555 *--------------------------------------------------------------------------*/
3556
3557typedef PACKED_PRE struct PACKED_POST
3558{
3559 /*success or failure */
3560 tANI_U32 status;
3561
3562 /* Dialog token */
3563 tANI_U8 baDialogToken;
3564
3565 /* TID for which the BA session has been setup */
3566 tANI_U8 baTID;
3567
3568 /* BA Buffer Size allocated for the current BA session */
3569 tANI_U8 baBufferSize;
3570
3571 tANI_U8 baSessionID;
3572
3573 /* Reordering Window buffer */
3574 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303575
Jeff Johnson295189b2012-06-20 16:38:30 -07003576 /*Station Index to id the sta */
3577 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303578
Jeff Johnson295189b2012-06-20 16:38:30 -07003579 /* Starting Sequence Number */
3580 tANI_U16 SSN;
3581} tAddBASessionRspParams, *tpAddBASessionRspParams;
3582
3583typedef PACKED_PRE struct PACKED_POST
3584{
3585 tHalMsgHeader header;
3586 tAddBASessionRspParams addBASessionRspParams;
3587} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3588
3589/*---------------------------------------------------------------------------
3590 * WLAN_HAL_ADD_BA_REQ
3591 *--------------------------------------------------------------------------*/
3592
3593typedef PACKED_PRE struct PACKED_POST
3594{
3595 /* Session Id */
3596 tANI_U8 baSessionID;
3597
3598 /* Reorder Window Size */
3599 tANI_U8 winSize;
3600
3601#ifdef FEATURE_ON_CHIP_REORDERING
3602 tANI_BOOLEAN isReorderingDoneOnChip;
3603#endif
3604} tAddBAParams, *tpAddBAParams;
3605
3606typedef PACKED_PRE struct PACKED_POST
3607{
3608 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303609 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003610} tAddBAReqMsg, *tpAddBAReqMsg;
3611
3612
3613/*---------------------------------------------------------------------------
3614 * WLAN_HAL_ADD_BA_RSP
3615 *--------------------------------------------------------------------------*/
3616
3617typedef PACKED_PRE struct PACKED_POST
3618{
3619 /*success or failure */
3620 tANI_U32 status;
3621
3622 /* Dialog token */
3623 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303624
Jeff Johnson295189b2012-06-20 16:38:30 -07003625} tAddBARspParams, *tpAddBARspParams;
3626
3627typedef PACKED_PRE struct PACKED_POST
3628{
3629 tHalMsgHeader header;
3630 tAddBARspParams addBARspParams;
3631} tAddBARspMsg, *tpAddBARspMsg;
3632
3633
3634/*---------------------------------------------------------------------------
3635 * WLAN_HAL_TRIGGER_BA_REQ
3636 *--------------------------------------------------------------------------*/
3637
3638
3639typedef struct sAddBaInfo
3640{
3641 tANI_U16 fBaEnable : 1;
3642 tANI_U16 startingSeqNum: 12;
3643 tANI_U16 reserved : 3;
3644}tAddBaInfo, *tpAddBaInfo;
3645
3646typedef struct sTriggerBaRspCandidate
3647{
3648 tSirMacAddr staAddr;
3649 tAddBaInfo baInfo[STACFG_MAX_TC];
3650}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3651
3652typedef struct sTriggerBaCandidate
3653{
3654 tANI_U8 staIdx;
3655 tANI_U8 tidBitmap;
3656}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3657
3658typedef PACKED_PRE struct PACKED_POST
3659{
3660 /* Session Id */
3661 tANI_U8 baSessionID;
3662
Dino Mycle8afbac12014-07-04 22:06:17 +05303663 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003664 * Candidate List(tTriggerBaCandidate)
3665 */
3666 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303667
Jeff Johnson295189b2012-06-20 16:38:30 -07003668} tTriggerBAParams, *tpTriggerBAParams;
3669
3670typedef PACKED_PRE struct PACKED_POST
3671{
3672 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303673 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003674} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3675
3676
3677/*---------------------------------------------------------------------------
3678 * WLAN_HAL_TRIGGER_BA_RSP
3679 *--------------------------------------------------------------------------*/
3680
3681typedef PACKED_PRE struct PACKED_POST
3682{
Dino Mycle8afbac12014-07-04 22:06:17 +05303683
Jeff Johnson295189b2012-06-20 16:38:30 -07003684 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303685 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003686
3687 /* success or failure */
3688 tANI_U32 status;
3689
Dino Mycle8afbac12014-07-04 22:06:17 +05303690 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003691 * Rsp Candidate List(tTriggerRspBaCandidate)
3692 */
3693 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303694
Jeff Johnson295189b2012-06-20 16:38:30 -07003695
3696} tTriggerBARspParams, *tpTriggerBARspParams;
3697
3698typedef PACKED_PRE struct PACKED_POST
3699{
3700 tHalMsgHeader header;
3701 tTriggerBARspParams triggerBARspParams;
3702} tTriggerBARspMsg, *tpTriggerBARspMsg;
3703
3704/*---------------------------------------------------------------------------
3705 * WLAN_HAL_DEL_BA_REQ
3706 *--------------------------------------------------------------------------*/
3707
3708typedef PACKED_PRE struct PACKED_POST
3709{
3710 /* Station Index */
3711 tANI_U16 staIdx;
3712
3713 /* TID for which the BA session is being deleted */
3714 tANI_U8 baTID;
3715
3716 /* DELBA direction
3717 1 - Originator
3718 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303719 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003720} tDelBAParams, *tpDelBAParams;
3721
3722typedef PACKED_PRE struct PACKED_POST
3723{
3724 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303725 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003726} tDelBAReqMsg, *tpDelBAReqMsg;
3727
3728/*---------------------------------------------------------------------------
3729 * WLAN_HAL_DEL_BA_RSP
3730 *--------------------------------------------------------------------------*/
3731
3732typedef PACKED_PRE struct PACKED_POST
3733{
3734 /* success or failure */
3735 tANI_U32 status;
3736} tDelBARspParams, *tpDelBARspParams;
3737
3738typedef PACKED_PRE struct PACKED_POST
3739{
3740 tHalMsgHeader header;
3741 tDelBARspParams delBARspParams;
3742} tDelBARspMsg, *tpDelBARspMsg;
3743
3744
Jeff Johnson295189b2012-06-20 16:38:30 -07003745/*---------------------------------------------------------------------------
3746 * WLAN_HAL_TSM_STATS_REQ
3747 *--------------------------------------------------------------------------*/
3748typedef PACKED_PRE struct PACKED_POST
3749{
3750 /* Traffic Id */
3751 tANI_U8 tsmTID;
3752
3753 tSirMacAddr bssId;
3754} tTsmStatsParams, *tpTsmStatsParams;
3755
3756typedef PACKED_PRE struct PACKED_POST
3757{
3758 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303759 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003760} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3761
3762
3763/*---------------------------------------------------------------------------
3764 * WLAN_HAL_TSM_STATS_RSP
3765 *--------------------------------------------------------------------------*/
3766typedef PACKED_PRE struct PACKED_POST
3767{
3768 /*success or failure */
3769 tANI_U32 status;
3770
Dino Mycle8afbac12014-07-04 22:06:17 +05303771 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003772 tANI_U16 UplinkPktQueueDly;
3773
Dino Mycle8afbac12014-07-04 22:06:17 +05303774 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003775 tANI_U16 UplinkPktQueueDlyHist[4];
3776
Dino Mycle8afbac12014-07-04 22:06:17 +05303777 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003778 tANI_U32 UplinkPktTxDly;
3779
Dino Mycle8afbac12014-07-04 22:06:17 +05303780 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003781 tANI_U16 UplinkPktLoss;
3782
Dino Mycle8afbac12014-07-04 22:06:17 +05303783 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003784 tANI_U16 UplinkPktCount;
3785
Dino Mycle8afbac12014-07-04 22:06:17 +05303786 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003787 tANI_U8 RoamingCount;
3788
Dino Mycle8afbac12014-07-04 22:06:17 +05303789 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003790 tANI_U16 RoamingDly;
3791} tTsmStatsRspParams, *tpTsmStatsRspParams;
3792
3793typedef PACKED_PRE struct PACKED_POST
3794{
3795 tHalMsgHeader header;
3796 tTsmStatsRspParams tsmStatsRspParams;
3797} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3798
3799
Jeff Johnson295189b2012-06-20 16:38:30 -07003800/*---------------------------------------------------------------------------
3801 * WLAN_HAL_SET_KEYDONE_MSG
3802 *--------------------------------------------------------------------------*/
3803
3804typedef PACKED_PRE struct PACKED_POST
3805{
3806 /*bssid of the keys */
3807 tANI_U8 bssidx;
3808 tANI_U8 encType;
3809} tSetKeyDoneParams, *tpSetKeyDoneParams;
3810
3811typedef PACKED_PRE struct PACKED_POST
3812{
3813 tHalMsgHeader header;
3814 tSetKeyDoneParams setKeyDoneParams;
3815} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3816
3817/*---------------------------------------------------------------------------
3818 * WLAN_HAL_DOWNLOAD_NV_REQ
3819 *--------------------------------------------------------------------------*/
3820typedef PACKED_PRE struct PACKED_POST
3821{
3822 /* Fragment sequence number of the NV Image. Note that NV Image might not
3823 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303824 * can hence choose to chop the NV blob into multiple fragments starting with
3825 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003826 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3827 * concatenated together by HAL without any padding bytes in between.*/
3828 tANI_U16 fragNumber;
3829
3830 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303831 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003832 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3833 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3834 tANI_U16 isLastFragment;
3835
3836 /* NV Image size (number of bytes) */
3837 tANI_U32 nvImgBufferSize;
3838
3839 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3840 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3841} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3842
3843typedef PACKED_PRE struct PACKED_POST
3844{
3845 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3846 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3847 tHalMsgHeader header;
3848 tHalNvImgDownloadReqParams nvImageReqParams;
3849} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3850
3851/*---------------------------------------------------------------------------
3852 * WLAN_HAL_DOWNLOAD_NV_RSP
3853 *--------------------------------------------------------------------------*/
3854typedef PACKED_PRE struct PACKED_POST
3855{
3856 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3857 * after each fragment */
3858 tANI_U32 status;
3859} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3860
3861typedef PACKED_PRE struct PACKED_POST
3862{
3863 tHalMsgHeader header;
3864 tHalNvImgDownloadRspParams nvImageRspParams;
3865} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3866
3867/*---------------------------------------------------------------------------
3868 * WLAN_HAL_STORE_NV_IND
3869 *--------------------------------------------------------------------------*/
3870typedef PACKED_PRE struct PACKED_POST
3871{
3872 /* NV Item */
3873 eNvTable tableID;
3874
3875 /* Size of NV Blob */
3876 tANI_U32 nvBlobSize;
3877
Dino Mycle8afbac12014-07-04 22:06:17 +05303878 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003879 * NV blob i.e. uint8[nvBlobSize] */
3880} tHalNvStoreParams, *tpHalNvStoreParams;
3881
3882typedef PACKED_PRE struct PACKED_POST
3883{
3884 /* Note: The length specified in tHalNvStoreInd messages should be
3885 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3886 tHalMsgHeader header;
3887 tHalNvStoreParams nvStoreParams;
3888} tHalNvStoreInd, *tpHalNvStoreInd;
3889
3890/* End of Block Ack Related Parameters */
3891
3892/*---------------------------------------------------------------------------
3893 * WLAN_HAL_MIC_FAILURE_IND
3894 *--------------------------------------------------------------------------*/
3895
3896#define SIR_CIPHER_SEQ_CTR_SIZE 6
3897
3898typedef PACKED_PRE struct PACKED_POST
3899{
Dino Mycle8afbac12014-07-04 22:06:17 +05303900 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003901 tSirMacAddr taMacAddr; //transmitter address
3902 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303903 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003904 tANI_U8 IV1; // first byte of IV
3905 tANI_U8 keyId; // second byte of IV
3906 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3907 tSirMacAddr rxMacAddr; // receive address
3908} tSirMicFailureInfo, *tpSirMicFailureInfo;
3909
3910/* Definition for MIC failure indication
3911 MAC reports this each time a MIC failure occures on Rx TKIP packet
3912 */
3913typedef PACKED_PRE struct PACKED_POST
3914{
3915 tSirMacAddr bssId; // BSSID
3916 tSirMicFailureInfo info;
3917} tSirMicFailureInd, *tpSirMicFailureInd;
3918
3919typedef PACKED_PRE struct PACKED_POST
3920{
3921 tHalMsgHeader header;
3922 tSirMicFailureInd micFailureInd;
3923} tMicFailureIndMsg, *tpMicFailureIndMsg;
3924
Mohit Khanna4a70d262012-09-11 16:30:12 -07003925typedef PACKED_PRE struct PACKED_POST
3926{
3927 tANI_U16 opMode;
3928 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303929}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003930
3931typedef PACKED_PRE struct PACKED_POST
3932{
3933 tHalMsgHeader header;
3934 tUpdateVHTOpMode updateVhtOpMode;
3935} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3936
3937typedef PACKED_PRE struct PACKED_POST
3938{
3939 tANI_U32 status;
3940} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3941
3942typedef PACKED_PRE struct PACKED_POST
3943{
3944 tHalMsgHeader header;
3945 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3946} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3947
Jeff Johnson295189b2012-06-20 16:38:30 -07003948/*---------------------------------------------------------------------------
3949 * WLAN_HAL_UPDATE_BEACON_REQ
3950 *--------------------------------------------------------------------------*/
3951typedef PACKED_PRE struct PACKED_POST
3952{
3953
3954 tANI_U8 bssIdx;
3955
3956 //shortPreamble mode. HAL should update all the STA rates when it
3957 //receives this message
3958 tANI_U8 fShortPreamble;
3959 //short Slot time.
3960 tANI_U8 fShortSlotTime;
3961 //Beacon Interval
3962 tANI_U16 beaconInterval;
3963 //Protection related
3964 tANI_U8 llaCoexist;
3965 tANI_U8 llbCoexist;
3966 tANI_U8 llgCoexist;
3967 tANI_U8 ht20MhzCoexist;
3968 tANI_U8 llnNonGFCoexist;
3969 tANI_U8 fLsigTXOPProtectionFullSupport;
3970 tANI_U8 fRIFSMode;
3971
3972 tANI_U16 paramChangeBitmap;
3973}tUpdateBeaconParams, *tpUpdateBeaconParams;
3974
3975
3976typedef PACKED_PRE struct PACKED_POST
3977{
3978 tHalMsgHeader header;
3979 tUpdateBeaconParams updateBeaconParam;
3980} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3981
3982/*---------------------------------------------------------------------------
3983 * WLAN_HAL_UPDATE_BEACON_RSP
3984 *--------------------------------------------------------------------------*/
3985typedef PACKED_PRE struct PACKED_POST
3986{
3987 tANI_U32 status;
3988} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3989
3990typedef PACKED_PRE struct PACKED_POST
3991{
3992 tHalMsgHeader header;
3993 tUpdateBeaconRspParams updateBeaconRspParam;
3994} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3995
3996/*---------------------------------------------------------------------------
3997 * WLAN_HAL_SEND_BEACON_REQ
3998 *--------------------------------------------------------------------------*/
3999typedef PACKED_PRE struct PACKED_POST
4000{
4001 tANI_U32 beaconLength; //length of the template.
4002 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
4003 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004004 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07004005 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
4006}tSendBeaconParams, *tpSendBeaconParams;
4007
4008
4009typedef PACKED_PRE struct PACKED_POST
4010{
4011 tHalMsgHeader header;
4012 tSendBeaconParams sendBeaconParam;
4013}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
4014
4015/*---------------------------------------------------------------------------
4016 * WLAN_HAL_SEND_BEACON_RSP
4017 *--------------------------------------------------------------------------*/
4018typedef PACKED_PRE struct PACKED_POST
4019{
4020 tANI_U32 status;
4021} tSendBeaconRspParams, *tpSendBeaconRspParams;
4022
4023typedef PACKED_PRE struct PACKED_POST
4024{
4025 tHalMsgHeader header;
4026 tSendBeaconRspParams sendBeaconRspParam;
4027} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4028
4029#ifdef FEATURE_5GHZ_BAND
4030
4031/*---------------------------------------------------------------------------
4032 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4033 *--------------------------------------------------------------------------*/
4034typedef PACKED_PRE struct PACKED_POST
4035{
4036 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304037 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004038}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4039
4040
4041typedef PACKED_PRE struct PACKED_POST
4042{
4043 /* Link Parameters */
4044 tSirEnableRadarInfoType EnableRadarInfo;
4045}tEnableRadarReqParams, *tpEnableRadarReqParams;
4046
4047typedef PACKED_PRE struct PACKED_POST
4048{
4049 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304050 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004051}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4052
4053/*---------------------------------------------------------------------------
4054 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4055 *--------------------------------------------------------------------------*/
4056
4057typedef PACKED_PRE struct PACKED_POST
4058{
4059 /* Link Parameters */
4060 tSirMacAddr BSSID;
4061 /* success or failure */
4062 tANI_U32 status;
4063}tEnableRadarRspParams, *tpEnableRadarRspParams;
4064
4065typedef PACKED_PRE struct PACKED_POST
4066{
4067 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304068 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004069}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4070
4071/*---------------------------------------------------------------------------
4072 *WLAN_HAL_RADAR_DETECT_INTR_IND
4073 *--------------------------------------------------------------------------*/
4074
4075typedef PACKED_PRE struct PACKED_POST
4076{
4077 tANI_U8 radarDetChannel;
4078}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4079
4080typedef PACKED_PRE struct PACKED_POST
4081{
4082 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304083 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004084}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4085
4086/*---------------------------------------------------------------------------
4087 *WLAN_HAL_RADAR_DETECT_IND
4088 *-------------------------------------------------------------------------*/
4089typedef PACKED_PRE struct PACKED_POST
4090{
4091 /*channel number in which the RADAR detected*/
4092 tANI_U8 channelNumber;
4093
4094 /*RADAR pulse width*/
4095 tANI_U16 radarPulseWidth; // in usecond
4096
4097 /*Number of RADAR pulses */
4098 tANI_U16 numRadarPulse;
4099}tRadarDetectIndParams,*tpRadarDetectIndParams;
4100
4101typedef PACKED_PRE struct PACKED_POST
4102{
4103 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304104 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004105}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4106
4107
4108/*---------------------------------------------------------------------------
4109 *WLAN_HAL_GET_TPC_REPORT_REQ
4110 *-------------------------------------------------------------------------*/
4111typedef PACKED_PRE struct PACKED_POST
4112{
4113 tSirMacAddr sta;
4114 tANI_U8 dialogToken;
4115 tANI_U8 txpower;
4116}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4117
4118
4119typedef PACKED_PRE struct PACKED_POST
4120{
4121 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304122 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004123}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4124
4125/*---------------------------------------------------------------------------
4126 * WLAN_HAL_GET_TPC_REPORT_RSP
4127 *--------------------------------------------------------------------------*/
4128
4129typedef PACKED_PRE struct PACKED_POST
4130{
4131 /* success or failure */
4132 tANI_U32 status;
4133}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4134
4135typedef PACKED_PRE struct PACKED_POST
4136{
4137 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304138 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004139}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4140
4141#endif
4142
Jeff Johnson295189b2012-06-20 16:38:30 -07004143/*---------------------------------------------------------------------------
4144 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4145 *-------------------------------------------------------------------------*/
4146typedef PACKED_PRE struct PACKED_POST
4147{
4148 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4149 tANI_U32 probeRespTemplateLen;
4150 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4151 tSirMacAddr bssId;
4152
4153}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4154
4155typedef PACKED_PRE struct PACKED_POST
4156{
4157 tHalMsgHeader header;
4158 tSendProbeRespReqParams sendProbeRespReqParams ;
4159}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4160
4161/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304162 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004163 *--------------------------------------------------------------------------*/
4164
4165typedef PACKED_PRE struct PACKED_POST
4166{
4167 /* success or failure */
4168 tANI_U32 status;
4169}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4170
4171typedef PACKED_PRE struct PACKED_POST
4172{
4173 tHalMsgHeader header;
4174 tSendProbeRespRspParams sendProbeRespRspParams;
4175}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4176
4177
4178/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304179 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004180 *--------------------------------------------------------------------------*/
4181
4182typedef PACKED_PRE struct PACKED_POST
4183{
4184 /* success or failure */
4185 tANI_U32 status;
4186}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4187
4188typedef PACKED_PRE struct PACKED_POST
4189{
4190 tHalMsgHeader header;
4191 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4192}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4193
4194/*---------------------------------------------------------------------------
4195 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4196 *--------------------------------------------------------------------------*/
4197
4198typedef PACKED_PRE struct PACKED_POST
4199{
4200 tANI_U16 assocId;
4201 tANI_U16 staId;
4202 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4203 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004204 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304205 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004206
4207}tDeleteStaContextParams, *tpDeleteStaContextParams;
4208
4209
4210typedef PACKED_PRE struct PACKED_POST
4211{
4212 tHalMsgHeader header;
4213 tDeleteStaContextParams deleteStaContextParams;
4214}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4215
Anand Kumar012623a2013-01-11 17:00:00 -08004216typedef PACKED_PRE struct PACKED_POST
4217{
4218 tHalMsgHeader header;
4219 tANI_U8 assocId;
4220 tANI_U8 staIdx;
4221 tANI_U8 bssIdx;
4222 tANI_U8 uReasonCode;
4223 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004224#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4225 tANI_U8 staAddr[6];
4226 tANI_U8 bssId[6];
4227#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004228} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004229
4230/*---------------------------------------------------------------------------
4231 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4232 *--------------------------------------------------------------------------*/
4233
4234typedef PACKED_PRE struct PACKED_POST
4235{
4236 tBtAmpEventType btAmpEventType;
4237
4238}tBtAmpEventParams, *tpBtAmpEventParams;
4239
4240
4241
4242typedef PACKED_PRE struct PACKED_POST
4243{
4244 tHalMsgHeader header;
4245 tBtAmpEventParams btAmpEventParams;
4246}tBtAmpEventMsg, *tpBtAmpEventMsg;
4247
4248/*---------------------------------------------------------------------------
4249*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4250*--------------------------------------------------------------------------*/
4251
4252typedef PACKED_PRE struct PACKED_POST
4253{
4254 /* success or failure */
4255 tANI_U32 status;
4256}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4257
4258typedef PACKED_PRE struct PACKED_POST
4259{
4260 tHalMsgHeader header;
4261 tBtAmpEventRspParams btAmpEventRspParams;
4262}tBtAmpEventRsp, *tpBtAmpEventRsp;
4263
4264
4265/*---------------------------------------------------------------------------
4266 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4267 *--------------------------------------------------------------------------*/
4268
4269typedef PACKED_PRE struct PACKED_POST
4270{
4271 // Station Index. originates from HAL
4272 tANI_U8 ucSTAId;
4273
4274 // TID for which the transmit queue is being flushed
4275 tANI_U8 ucTid;
4276
4277}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4278
4279
4280typedef PACKED_PRE struct PACKED_POST
4281{
4282 tHalMsgHeader header;
4283 tTlHalFlushAcParams tlHalFlushAcParam;
4284}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4285
4286/*---------------------------------------------------------------------------
4287*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4288*--------------------------------------------------------------------------*/
4289
4290typedef PACKED_PRE struct PACKED_POST
4291{
4292 // Station Index. originates from HAL
4293 tANI_U8 ucSTAId;
4294
4295 // TID for which the transmit queue is being flushed
4296 tANI_U8 ucTid;
4297
4298 /* success or failure */
4299 tANI_U32 status;
4300}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4301
4302typedef PACKED_PRE struct PACKED_POST
4303{
4304 tHalMsgHeader header;
4305 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4306}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4307
4308/*---------------------------------------------------------------------------
4309 * WLAN_HAL_ENTER_IMPS_REQ
4310 *--------------------------------------------------------------------------*/
4311typedef PACKED_PRE struct PACKED_POST
4312{
4313 tHalMsgHeader header;
4314} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4315
4316/*---------------------------------------------------------------------------
4317 * WLAN_HAL_EXIT_IMPS_REQ
4318 *--------------------------------------------------------------------------*/
4319typedef PACKED_PRE struct PACKED_POST
4320{
4321 tHalMsgHeader header;
4322} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4323
4324/*---------------------------------------------------------------------------
4325 * WLAN_HAL_ENTER_BMPS_REQ
4326 *--------------------------------------------------------------------------*/
4327
4328typedef PACKED_PRE struct PACKED_POST
4329{
4330 tANI_U8 bssIdx;
4331 //TBTT value derived from the last beacon
4332#ifndef BUILD_QWPTTSTATIC
4333 tANI_U64 tbtt;
4334#endif
4335 tANI_U8 dtimCount;
4336 //DTIM period given to HAL during association may not be valid,
4337 //if association is based on ProbeRsp instead of beacon.
4338 tANI_U8 dtimPeriod;
4339
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004340 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004341 tANI_U32 rssiFilterPeriod;
4342 tANI_U32 numBeaconPerRssiAverage;
4343 tANI_U8 bRssiFilterEnable;
4344
4345} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4346
4347
4348typedef PACKED_PRE struct PACKED_POST
4349{
4350 tHalMsgHeader header;
4351 tHalEnterBmpsReqParams enterBmpsReq;
4352} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4353
4354/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304355 * WLAN_HAL_PRINT_REG_INFO_IND
4356 *--------------------------------------------------------------------------*/
4357typedef PACKED_PRE struct PACKED_POST
4358{
4359 uint32 regAddr;
4360 uint32 regValue;
4361} tHalRegDebugInfo, *tpRegDebugInfo;
4362
4363typedef PACKED_PRE struct PACKED_POST
4364{
4365 uint32 regCount;
4366 uint32 scenario;
4367 uint32 reasonCode;
4368} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4369
4370typedef PACKED_PRE struct PACKED_POST
4371{
4372 tHalMsgHeader header;
4373 tHalRegDebugInfoParams regParams;
4374} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4375
4376/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004377 * WLAN_HAL_EXIT_BMPS_REQ
4378 *--------------------------------------------------------------------------*/
4379typedef PACKED_PRE struct PACKED_POST
4380{
4381 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004382 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004383} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4384
4385typedef PACKED_PRE struct PACKED_POST
4386{
4387 tHalMsgHeader header;
4388 tHalExitBmpsReqParams exitBmpsReqParams;
4389} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4390
4391/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004392 * WLAN_HAL_MISSED_BEACON_IND
4393 *--------------------------------------------------------------------------*/
4394typedef PACKED_PRE struct PACKED_POST
4395{
4396 tANI_U8 bssIdx;
4397} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4398
4399typedef PACKED_PRE struct PACKED_POST
4400{
4401 tHalMsgHeader header;
4402 tHalMissedBeaconIndParams missedBeaconIndParams;
4403} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4404
4405/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004406 * WLAN_HAL_ADD_BCN_FILTER_REQ
4407 *--------------------------------------------------------------------------*/
4408/* Beacon Filtering data structures */
4409typedef PACKED_PRE struct PACKED_POST
4410{
4411 tANI_U8 offset;
4412 tANI_U8 value;
4413 tANI_U8 bitMask;
4414 tANI_U8 ref;
4415} tEidByteInfo, *tpEidByteInfo;
4416
Dino Mycle8afbac12014-07-04 22:06:17 +05304417typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004418{
4419 tANI_U16 capabilityInfo;
4420 tANI_U16 capabilityMask;
4421 tANI_U16 beaconInterval;
4422 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004423 tANI_U8 bssIdx;
4424 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004425} tBeaconFilterMsg, *tpBeaconFilterMsg;
4426
4427/* The above structure would be followed by multiple of below mentioned structure */
4428typedef PACKED_PRE struct PACKED_POST
4429{
4430 tANI_U8 elementId;
4431 tANI_U8 checkIePresence;
4432 tEidByteInfo byte;
4433} tBeaconFilterIe, *tpBeaconFilterIe;
4434
4435typedef PACKED_PRE struct PACKED_POST
4436{
4437 tHalMsgHeader header;
4438 tBeaconFilterMsg addBcnFilterParams;
4439} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4440
4441/*---------------------------------------------------------------------------
4442 * WLAN_HAL_REM_BCN_FILTER_REQ
4443 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304444typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004445{
4446 tANI_U8 ucIeCount;
4447 tANI_U8 ucRemIeId[1];
4448} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4449
4450typedef PACKED_PRE struct PACKED_POST
4451{
4452 tHalMsgHeader header;
4453 tRemBeaconFilterMsg remBcnFilterParams;
4454} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4455
4456/*---------------------------------------------------------------------------
4457 * WLAN_HAL_HOST_OFFLOAD_REQ
4458 *--------------------------------------------------------------------------*/
4459#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4460#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4461#define HAL_IPV6_NS_OFFLOAD 2
4462#define HAL_IPV6_ADDR_LEN 16
4463#define HAL_MAC_ADDR_LEN 6
4464#define HAL_OFFLOAD_DISABLE 0
4465#define HAL_OFFLOAD_ENABLE 1
4466#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004467#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004468#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004469#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004470
4471typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4472{
4473 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4474 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4475 //Only support 2 possible Network Advertisement IPv6 address
4476 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4477 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4478 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4479 tANI_U8 srcIPv6AddrValid : 1;
4480 tANI_U8 targetIPv6Addr1Valid : 1;
4481 tANI_U8 targetIPv6Addr2Valid : 1;
4482 tANI_U8 reserved1 : 5;
4483 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004484 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004485 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004486} tHalNSOffloadParams;
4487
4488typedef PACKED_PRE struct PACKED_POST
4489{
4490 tANI_U8 offloadType;
4491 tANI_U8 enableOrDisable;
4492 PACKED_PRE union PACKED_POST
4493 {
4494 tANI_U8 hostIpv4Addr [4];
4495 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4496 } params;
4497} tHalHostOffloadReq, *tpHalHostOffloadReq;
4498
4499typedef PACKED_PRE struct PACKED_POST
4500{
4501 tHalMsgHeader header;
4502 tHalHostOffloadReq hostOffloadParams;
4503 tHalNSOffloadParams nsOffloadParams;
4504} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4505
Leo Chang397deb72013-08-22 11:33:16 -07004506
4507#ifdef FEATURE_WLAN_LPHB
4508typedef enum
4509{
4510 WIFI_HB_SET_ENABLE = 0x0001,
4511 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4512 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4513 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4514 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4515 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4516}tLowPowerHeartBeatCmdType ;
4517
4518#define MAX_FLITER_SIZE 64
4519/*---------------------------------------------------------------------------
4520 *FEATURE_WLAN_LPHB REQ
4521 *--------------------------------------------------------------------------*/
4522typedef PACKED_PRE struct PACKED_POST
4523{
4524 uint32 hostIpv4Addr;
4525 uint32 destIpv4Addr;
4526 uint16 hostPort;
4527 uint16 destPort;
4528 uint16 timeOutSec; // in seconds
4529 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004530 uint16 timePeriodSec; // in seconds
4531 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004532} tlowPowerHeartBeatParamsTcpStruct;
4533
4534typedef PACKED_PRE struct PACKED_POST
4535{
4536 uint32 hostIpv4Addr;
4537 uint32 destIpv4Addr;
4538 uint16 hostPort;
4539 uint16 destPort;
4540 uint16 timePeriodSec;// in seconds
4541 uint16 timeOutSec; // in seconds
4542 tSirMacAddr gatewayMacAddr;
4543} tlowPowerHeartBeatParamsUdpStruct;
4544
4545typedef PACKED_PRE struct PACKED_POST
4546{
4547 uint32 offset;
4548 uint32 filterLength;
4549 uint8 filter[MAX_FLITER_SIZE];
4550} tlowPowerHeartBeatFilterStruct;
4551
4552typedef PACKED_PRE struct PACKED_POST
4553{
4554 uint8 heartBeatEnable;
4555 uint8 heartBeatType; //TCP or UDP
4556} tlowPowerHeartBeatEnableStruct;
4557
4558typedef PACKED_PRE struct PACKED_POST
4559{
4560 uint8 dummy;
4561} tlowPowerHeartBeatNetworkInfoStruct;
4562
4563
4564typedef PACKED_PRE struct PACKED_POST
4565{
4566 uint8 sessionIdx;
4567 uint16 lowPowerHeartBeatCmdType;
4568 PACKED_PRE union PACKED_PRO
4569 {
4570 tlowPowerHeartBeatEnableStruct control;
4571 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4572 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4573 tlowPowerHeartBeatParamsUdpStruct udpParams;
4574 tlowPowerHeartBeatNetworkInfoStruct info;
4575 }options;
4576} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4577
4578
4579typedef PACKED_PRE struct PACKED_POST
4580{
4581 tHalMsgHeader header;
4582 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4583} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4584
4585/*---------------------------------------------------------------------------
4586 * FEATURE_WLAN_LPHB RSP
4587 *--------------------------------------------------------------------------*/
4588
4589typedef PACKED_PRE struct PACKED_POST
4590{
4591 /* success or failure */
4592 uint8 sessionIdx;
4593 uint32 status;
4594 uint16 lowPowerHeartBeatCmdType;
4595}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4596
4597typedef PACKED_PRE struct PACKED_POST
4598{
4599 tHalMsgHeader header;
4600 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4601}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4602
4603
4604/*---------------------------------------------------------------------------
4605 * FEATURE_WLAN_LPHB IND
4606 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004607#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4608#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4609
4610#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4611#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004612#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004613
Kumar Anandea78e792013-10-10 23:47:01 -07004614
4615#define WIFI_LPHB_PROTO_UDP 0x01
4616#define WIFI_LPHB_PROTO_TCP 0x02
4617
Leo Chang397deb72013-08-22 11:33:16 -07004618typedef PACKED_PRE struct PACKED_POST
4619{
4620 uint8 bssIdx;
4621 uint8 sessionIdx;
4622 uint8 protocolType; /*TCP or UDP*/
4623 uint8 eventReason;
4624
4625}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4626
4627typedef PACKED_PRE struct PACKED_POST
4628{
4629 tHalMsgHeader header;
4630 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4631}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4632
4633#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004634
4635#ifdef FEATURE_WLAN_BATCH_SCAN
4636
4637/*---------------------------------------------------------------------------
4638 * WLAN_HAL_BATCHSCAN_SET_REQ
4639 *--------------------------------------------------------------------------*/
4640typedef PACKED_PRE struct PACKED_POST
4641{
4642 /* Scan Frerquency - default to 30Sec*/
4643 tANI_U32 scanInterval;
4644 tANI_U32 numScan2Batch;
4645 tANI_U32 bestNetworks;
4646 tANI_U8 rfBand;
4647 tANI_U8 rtt;
4648} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4649
4650typedef PACKED_PRE struct PACKED_POST
4651{
4652 tHalMsgHeader header;
4653 tHalBatchScanSetParams batchScanParams;
4654} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4655
4656/*---------------------------------------------------------------------------
4657 * WLAN_HAL_BATCHSCAN_SET_RSP
4658 *--------------------------------------------------------------------------*/
4659typedef PACKED_PRE struct PACKED_POST
4660{
4661 tANI_U32 supportedMscan;
4662} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4663
4664typedef PACKED_PRE struct PACKED_POST
4665{
4666 tHalMsgHeader header;
4667 tHalBatchScanSetRspParam setBatchScanRspParam;
4668} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4669
4670/*---------------------------------------------------------------------------
4671* WLAN_HAL_BATCHSCAN_STOP_IND
4672*--------------------------------------------------------------------------*/
4673typedef PACKED_PRE struct PACKED_POST
4674{
4675 tANI_U32 param;
4676} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4677
4678typedef PACKED_PRE struct PACKED_POST
4679{
4680 tHalMsgHeader header;
4681 tHalBatchScanStopIndParam param;
4682} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4683
4684/*---------------------------------------------------------------------------
4685* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4686*--------------------------------------------------------------------------*/
4687typedef PACKED_PRE struct PACKED_POST
4688{
4689 tANI_U32 param;
4690} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4691
4692typedef PACKED_PRE struct PACKED_POST
4693{
4694 tHalMsgHeader header;
4695 tHalBatchScanTriggerResultParam param;
4696} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4697
4698/*---------------------------------------------------------------------------
4699 * WLAN_HAL_BATCHSCAN_GET_RSP
4700 *--------------------------------------------------------------------------*/
4701typedef PACKED_PRE struct PACKED_POST
4702{
4703 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004704 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004705 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304706 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004707 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4708 tANI_U32 timestamp;
4709} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4710
4711typedef PACKED_PRE struct PACKED_POST
4712{
4713 tANI_U32 scanId; /* Scan List ID. */
4714 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4715 tANI_U32 numNetworksInScanList;
4716 /* Variable data ptr: Number of AP in Scan List */
4717 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4718 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4719 tANI_U8 scanList[1];
4720} tHalBatchScanList, *tpHalBatchScanList;
4721
4722typedef PACKED_PRE struct PACKED_POST
4723{
4724 tANI_U32 timestamp;
4725 tANI_U32 numScanLists;
4726 boolean isLastResult;
4727 /* Variable Data ptr: Number of Scan Lists*/
4728 /* following isLastResult is data of type tHalBatchScanList
4729 * of sizeof(tHalBatchScanList) * numScanLists*/
4730 tANI_U8 scanResults[1];
4731} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4732
4733typedef PACKED_PRE struct PACKED_POST
4734{
4735 tHalMsgHeader header;
4736 tHalBatchScanResultIndParam resultIndMsgParam;
4737} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4738
4739#endif
4740
Jeff Johnson295189b2012-06-20 16:38:30 -07004741/*---------------------------------------------------------------------------
4742 * WLAN_HAL_KEEP_ALIVE_REQ
4743 *--------------------------------------------------------------------------*/
4744/* Packet Types. */
4745#define HAL_KEEP_ALIVE_NULL_PKT 1
4746#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4747
4748/* Enable or disable keep alive */
4749#define HAL_KEEP_ALIVE_DISABLE 0
4750#define HAL_KEEP_ALIVE_ENABLE 1
4751
4752/* Keep Alive request. */
4753typedef PACKED_PRE struct PACKED_POST
4754{
4755 tANI_U8 packetType;
4756 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304757 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004758 tHalIpv4Addr destIpv4Addr;
4759 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004760 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004761} tHalKeepAliveReq, *tpHalKeepAliveReq;
4762
4763typedef PACKED_PRE struct PACKED_POST
4764{
4765 tHalMsgHeader header;
4766 tHalKeepAliveReq KeepAliveParams;
4767} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4768
4769/*---------------------------------------------------------------------------
4770 * WLAN_HAL_SET_RSSI_THRESH_REQ
4771 *--------------------------------------------------------------------------*/
4772typedef PACKED_PRE struct PACKED_POST
4773{
4774 tANI_S8 ucRssiThreshold1 : 8;
4775 tANI_S8 ucRssiThreshold2 : 8;
4776 tANI_S8 ucRssiThreshold3 : 8;
4777 tANI_U8 bRssiThres1PosNotify : 1;
4778 tANI_U8 bRssiThres1NegNotify : 1;
4779 tANI_U8 bRssiThres2PosNotify : 1;
4780 tANI_U8 bRssiThres2NegNotify : 1;
4781 tANI_U8 bRssiThres3PosNotify : 1;
4782 tANI_U8 bRssiThres3NegNotify : 1;
4783 tANI_U8 bReserved10 : 2;
4784} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304785
Jeff Johnson295189b2012-06-20 16:38:30 -07004786typedef PACKED_PRE struct PACKED_POST
4787{
4788 tHalMsgHeader header;
4789 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004790} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004791
4792/*---------------------------------------------------------------------------
4793 * WLAN_HAL_ENTER_UAPSD_REQ
4794 *--------------------------------------------------------------------------*/
4795typedef PACKED_PRE struct PACKED_POST
4796{
4797 tANI_U8 bkDeliveryEnabled:1;
4798 tANI_U8 beDeliveryEnabled:1;
4799 tANI_U8 viDeliveryEnabled:1;
4800 tANI_U8 voDeliveryEnabled:1;
4801 tANI_U8 bkTriggerEnabled:1;
4802 tANI_U8 beTriggerEnabled:1;
4803 tANI_U8 viTriggerEnabled:1;
4804 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004805 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004806} tUapsdReqParams, *tpUapsdReqParams;
4807
4808typedef PACKED_PRE struct PACKED_POST
4809{
4810 tHalMsgHeader header;
4811 tUapsdReqParams enterUapsdParams;
4812} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4813
4814/*---------------------------------------------------------------------------
4815 * WLAN_HAL_EXIT_UAPSD_REQ
4816 *--------------------------------------------------------------------------*/
4817typedef PACKED_PRE struct PACKED_POST
4818{
4819 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004820 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004821} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4822
Kumar Anandea78e792013-10-10 23:47:01 -07004823#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4824#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004825/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004826 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4827 *--------------------------------------------------------------------------*/
4828typedef PACKED_PRE struct PACKED_POST
4829{
4830 tANI_U32 selfStaIdx:8;
4831 tANI_U32 ucPtrnId:8; // Pattern ID
4832 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4833 tANI_U32 uPtrnIntervalMs; // In msec
4834 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4835} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4836
4837typedef PACKED_PRE struct PACKED_POST
4838{
4839 tHalMsgHeader header;
4840 tHalAddPeriodicTxPtrn ptrnParams;
4841} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4842
4843/*---------------------------------------------------------------------------
4844 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4845 *--------------------------------------------------------------------------*/
4846typedef PACKED_PRE struct PACKED_POST
4847{
4848 tANI_U32 selfStaIdx:8;
4849 tANI_U32 rsvd:24;
4850 /* Bitmap of pattern IDs that needs to be deleted */
4851 tANI_U32 uPatternIdBitmap;
4852} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4853
4854typedef PACKED_PRE struct PACKED_POST
4855{
4856 tHalMsgHeader header;
4857 tHalDelPeriodicTxPtrn ptrnParams;
4858} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4859
4860/*---------------------------------------------------------------------------
4861 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4862 *--------------------------------------------------------------------------*/
4863typedef PACKED_PRE struct PACKED_POST
4864{
4865 /* Type of Failure indication */
4866 tANI_U32 bssIdx:8;
4867 tANI_U32 selfStaIdx:8;
4868 tANI_U32 rsvd:16;
4869 tANI_U32 status;
4870 tANI_U32 patternIdBitmap;
4871} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4872
4873typedef PACKED_PRE struct PACKED_POST
4874{
4875 tHalMsgHeader header;
4876 tHalPeriodicTxPtrnFwInd fwIndParams;
4877} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4878
4879/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004880 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4881 *--------------------------------------------------------------------------*/
4882#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4883#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4884
4885typedef PACKED_PRE struct PACKED_POST
4886{
4887 tANI_U8 ucPatternId; // Pattern ID
4888 // Pattern byte offset from beginning of the 802.11 packet to start of the
4889 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304890 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004891 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4892 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4893 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4894 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4895 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4896 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004897 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004898} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4899
4900typedef PACKED_PRE struct PACKED_POST
4901{
4902 tHalMsgHeader header;
4903 tHalWowlAddBcastPtrn ptrnParams;
4904} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304905
Jeff Johnsone7245742012-09-05 17:12:55 -07004906
4907
Jeff Johnson295189b2012-06-20 16:38:30 -07004908/*---------------------------------------------------------------------------
4909 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4910 *--------------------------------------------------------------------------*/
4911typedef PACKED_PRE struct PACKED_POST
4912{
4913 /* Pattern ID of the wakeup pattern to be deleted */
4914 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004915 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004916} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4917
4918typedef PACKED_PRE struct PACKED_POST
4919{
4920 tHalMsgHeader header;
4921 tHalWowlDelBcastPtrn ptrnParams;
4922} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4923
4924/*---------------------------------------------------------------------------
4925 * WLAN_HAL_ENTER_WOWL_REQ
4926 *--------------------------------------------------------------------------*/
4927typedef PACKED_PRE struct PACKED_POST
4928{
4929 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304930 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004931
4932 /* Magic pattern */
4933 tSirMacAddr magicPtrn;
4934
Dino Mycle8afbac12014-07-04 22:06:17 +05304935 /* Enables/disables packet pattern filtering in firmware.
4936 Enabling this flag enables broadcast pattern matching
4937 in Firmware. If unicast pattern matching is also desired,
4938 ucUcastPatternFilteringEnable flag must be set tot true
4939 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004940 */
4941 tANI_U8 ucPatternFilteringEnable;
4942
Dino Mycle8afbac12014-07-04 22:06:17 +05304943 /* Enables/disables unicast packet pattern filtering.
4944 This flag specifies whether we want to do pattern match
4945 on unicast packets as well and not just broadcast packets.
4946 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004947 (main controlling flag) is set to false
4948 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304949 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004950
Dino Mycle8afbac12014-07-04 22:06:17 +05304951 /* This configuration is valid only when magicPktEnable=1.
4952 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004953 * Channel Switch Action Frame.
4954 */
4955 tANI_U8 ucWowChnlSwitchRcv;
4956
Dino Mycle8afbac12014-07-04 22:06:17 +05304957 /* This configuration is valid only when magicPktEnable=1.
4958 * It requests hardware to wake up when it receives the
4959 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004960 */
4961 tANI_U8 ucWowDeauthRcv;
4962
Dino Mycle8afbac12014-07-04 22:06:17 +05304963 /* This configuration is valid only when magicPktEnable=1.
4964 * It requests hardware to wake up when it receives the
4965 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004966 */
4967 tANI_U8 ucWowDisassocRcv;
4968
Dino Mycle8afbac12014-07-04 22:06:17 +05304969 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004970 * It requests hardware to wake up when it has missed
4971 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304972 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004973 */
4974 tANI_U8 ucWowMaxMissedBeacons;
4975
Dino Mycle8afbac12014-07-04 22:06:17 +05304976 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004977 * This is a timeout value in units of microsec. It requests
4978 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304979 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004980 */
4981 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304982
Jeff Johnson295189b2012-06-20 16:38:30 -07004983 /* This configuration directs the WoW packet filtering to look for EAP-ID
4984 * requests embedded in EAPOL frames and use this as a wake source.
4985 */
4986 tANI_U8 ucWoWEAPIDRequestEnable;
4987
4988 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4989 * requests and use this as a wake source.
4990 */
4991 tANI_U8 ucWoWEAPOL4WayEnable;
4992
4993 /* This configuration allows a host wakeup on an network scan offload match.
4994 */
4995 tANI_U8 ucWowNetScanOffloadMatch;
4996
4997 /* This configuration allows a host wakeup on any GTK rekeying error.
4998 */
4999 tANI_U8 ucWowGTKRekeyError;
5000
5001 /* This configuration allows a host wakeup on BSS connection loss.
5002 */
5003 tANI_U8 ucWoWBSSConnLoss;
5004
Jeff Johnsone7245742012-09-05 17:12:55 -07005005 tANI_U8 bssIdx;
5006
Jeff Johnson295189b2012-06-20 16:38:30 -07005007} tHalWowlEnterParams, *tpHalWowlEnterParams;
5008
5009typedef PACKED_PRE struct PACKED_POST
5010{
5011 tHalMsgHeader header;
5012 tHalWowlEnterParams enterWowlParams;
5013} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5014
5015/*---------------------------------------------------------------------------
5016 * WLAN_HAL_EXIT_WOWL_REQ
5017 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005018
Jeff Johnson295189b2012-06-20 16:38:30 -07005019typedef PACKED_PRE struct PACKED_POST
5020{
Jeff Johnsone7245742012-09-05 17:12:55 -07005021 tANI_U8 bssIdx;
5022
5023} tHalWowlExitParams, *tpHalWowlExitParams;
5024
5025typedef PACKED_PRE struct PACKED_POST
5026{
5027 tHalMsgHeader header;
5028 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005029} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5030
5031/*---------------------------------------------------------------------------
5032 * WLAN_HAL_GET_RSSI_REQ
5033 *--------------------------------------------------------------------------*/
5034typedef PACKED_PRE struct PACKED_POST
5035{
5036 tHalMsgHeader header;
5037} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5038
Anand Kumar012623a2013-01-11 17:00:00 -08005039typedef PACKED_PRE struct PACKED_POST
5040{
5041 /* Valid STA Idx for per STA stats request */
5042 tANI_U32 staId;
5043
5044}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5045
5046
5047/*---------------------------------------------------------------------------
5048 * WLAN_HAL_GET_ROAM_RSSI_REQ
5049 *--------------------------------------------------------------------------*/
5050typedef PACKED_PRE struct PACKED_POST
5051{
5052 tHalMsgHeader header;
5053 tHalRoamRssiReqParams roamRssiReqParams;
5054} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5055
5056
Jeff Johnson295189b2012-06-20 16:38:30 -07005057/*---------------------------------------------------------------------------
5058 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5059 *--------------------------------------------------------------------------*/
5060typedef PACKED_PRE struct PACKED_POST {
5061 tANI_U8 staidx; // STA index
5062 tANI_U8 ac; // Access Category
5063 tANI_U8 up; // User Priority
5064 tANI_U32 srvInterval; // Service Interval
5065 tANI_U32 susInterval; // Suspend Interval
5066 tANI_U32 delayInterval; // Delay Interval
5067} tUapsdInfo, tpUapsdInfo;
5068
5069typedef PACKED_PRE struct PACKED_POST
5070{
5071 tHalMsgHeader header;
5072 tUapsdInfo enableUapsdAcParams;
5073} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5074
5075/*---------------------------------------------------------------------------
5076 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5077 *--------------------------------------------------------------------------*/
5078typedef PACKED_PRE struct PACKED_POST {
5079 tANI_U8 setMcstBcstFilterSetting;
5080 tANI_U8 setMcstBcstFilter;
5081} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5082
5083typedef PACKED_PRE struct PACKED_POST
5084{
5085 tHalMsgHeader header;
5086 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5087} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5088
5089/*---------------------------------------------------------------------------
5090 * WLAN_HAL_ENTER_IMPS_RSP
5091 *--------------------------------------------------------------------------*/
5092typedef PACKED_PRE struct PACKED_POST
5093{
5094 /* success or failure */
5095 tANI_U32 status;
5096} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5097
5098typedef PACKED_PRE struct PACKED_POST
5099{
5100 tHalMsgHeader header;
5101 tHalEnterImpsRspParams enterImpsRspParams;
5102} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5103
5104/*---------------------------------------------------------------------------
5105 * WLAN_HAL_EXIT_IMPS_RSP
5106 *--------------------------------------------------------------------------*/
5107typedef PACKED_PRE struct PACKED_POST
5108{
5109 /* success or failure */
5110 tANI_U32 status;
5111} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5112
5113typedef PACKED_PRE struct PACKED_POST
5114{
5115 tHalMsgHeader header;
5116 tHalExitImpsRspParams exitImpsRspParams;
5117} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5118
5119/*---------------------------------------------------------------------------
5120 * WLAN_HAL_ENTER_BMPS_RSP
5121 *--------------------------------------------------------------------------*/
5122typedef PACKED_PRE struct PACKED_POST
5123{
5124 /* success or failure */
5125 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005126 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005127} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5128
5129typedef PACKED_PRE struct PACKED_POST
5130{
5131 tHalMsgHeader header;
5132 tHalEnterBmpsRspParams enterBmpsRspParams;
5133} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5134
5135/*---------------------------------------------------------------------------
5136 * WLAN_HAL_EXIT_BMPS_RSP
5137 *--------------------------------------------------------------------------*/
5138typedef PACKED_PRE struct PACKED_POST
5139{
5140 /* success or failure */
5141 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005142 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005143} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5144
5145typedef PACKED_PRE struct PACKED_POST
5146{
5147 tHalMsgHeader header;
5148 tHalExitBmpsRspParams exitBmpsRspParams;
5149} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5150
5151/*---------------------------------------------------------------------------
5152 * WLAN_HAL_ENTER_UAPSD_RSP
5153 *--------------------------------------------------------------------------*/
5154typedef PACKED_PRE struct PACKED_POST
5155{
5156 /* success or failure */
5157 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005158 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005159}tUapsdRspParams, *tpUapsdRspParams;
5160
5161typedef PACKED_PRE struct PACKED_POST
5162{
5163 tHalMsgHeader header;
5164 tUapsdRspParams enterUapsdRspParams;
5165} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5166
5167/*---------------------------------------------------------------------------
5168 * WLAN_HAL_EXIT_UAPSD_RSP
5169 *--------------------------------------------------------------------------*/
5170typedef PACKED_PRE struct PACKED_POST
5171{
5172 /* success or failure */
5173 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005174 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005175} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5176
5177typedef PACKED_PRE struct PACKED_POST
5178{
5179 tHalMsgHeader header;
5180 tHalExitUapsdRspParams exitUapsdRspParams;
5181} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5182
5183/*---------------------------------------------------------------------------
5184 * WLAN_HAL_RSSI_NOTIFICATION_IND
5185 *--------------------------------------------------------------------------*/
5186typedef PACKED_PRE struct PACKED_POST
5187{
5188 tANI_U32 bRssiThres1PosCross : 1;
5189 tANI_U32 bRssiThres1NegCross : 1;
5190 tANI_U32 bRssiThres2PosCross : 1;
5191 tANI_U32 bRssiThres2NegCross : 1;
5192 tANI_U32 bRssiThres3PosCross : 1;
5193 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005194 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005195 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005196 tANI_U32 isBTCoexCompromise : 1;
5197 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005198 tANI_S8 refRssiThreshold1;
5199 tANI_S8 refRssiThreshold2;
5200 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005201} tHalRSSINotification, *tpHalRSSINotification;
5202
5203typedef PACKED_PRE struct PACKED_POST
5204{
5205 tHalMsgHeader header;
5206 tHalRSSINotification rssiNotificationParams;
5207} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5208
5209/*---------------------------------------------------------------------------
5210 * WLAN_HAL_GET_RSSI_RSP
5211 *--------------------------------------------------------------------------*/
5212typedef PACKED_PRE struct PACKED_POST
5213{
5214 /* success or failure */
5215 tANI_U32 status;
5216 tANI_S8 rssi;
5217} tHalGetRssiParams, *tpHalGetRspParams;
5218
5219typedef PACKED_PRE struct PACKED_POST
5220{
5221 tHalMsgHeader header;
5222 tHalGetRssiParams rssiRspParams;
5223} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5224
5225/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005226 * WLAN_HAL_GET_ROAM_RSSI_RSP
5227 *--------------------------------------------------------------------------*/
5228typedef PACKED_PRE struct PACKED_POST
5229{
5230 /* success or failure */
5231 tANI_U32 status;
5232
5233 tANI_U8 staId;
5234 tANI_S8 rssi;
5235} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5236
5237typedef PACKED_PRE struct PACKED_POST
5238{
5239 tHalMsgHeader header;
5240 tHalGetRoamRssiParams roamRssiRspParams;
5241} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5242
5243/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005244 * WLAN_HAL_ENTER_WOWL_RSP
5245 *--------------------------------------------------------------------------*/
5246typedef PACKED_PRE struct PACKED_POST
5247{
5248 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005249 tANI_U32 status;
5250 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005251} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5252
5253typedef PACKED_PRE struct PACKED_POST
5254{
5255 tHalMsgHeader header;
5256 tHalEnterWowlRspParams enterWowlRspParams;
5257} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5258
5259/*---------------------------------------------------------------------------
5260 * WLAN_HAL_EXIT_WOWL_RSP
5261 *--------------------------------------------------------------------------*/
5262typedef PACKED_PRE struct PACKED_POST
5263{
5264 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005265 tANI_U32 status;
5266 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005267} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5268
5269typedef PACKED_PRE struct PACKED_POST
5270{
5271 tHalMsgHeader header;
5272 tHalExitWowlRspParams exitWowlRspParams;
5273} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5274
5275/*---------------------------------------------------------------------------
5276 * WLAN_HAL_ADD_BCN_FILTER_RSP
5277 *--------------------------------------------------------------------------*/
5278typedef PACKED_PRE struct PACKED_POST
5279{
5280 /* success or failure */
5281 tANI_U32 status;
5282} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5283
5284typedef PACKED_PRE struct PACKED_POST
5285{
5286 tHalMsgHeader header;
5287 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5288} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5289
5290/*---------------------------------------------------------------------------
5291 * WLAN_HAL_REM_BCN_FILTER_RSP
5292 *--------------------------------------------------------------------------*/
5293typedef PACKED_PRE struct PACKED_POST
5294{
5295 /* success or failure */
5296 tANI_U32 status;
5297} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5298
5299typedef PACKED_PRE struct PACKED_POST
5300{
5301 tHalMsgHeader header;
5302 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5303} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5304
5305/*---------------------------------------------------------------------------
5306 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5307 *--------------------------------------------------------------------------*/
5308typedef PACKED_PRE struct PACKED_POST
5309{
5310 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005311 tANI_U32 status;
5312 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005313} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5314
5315typedef PACKED_PRE struct PACKED_POST
5316{
5317 tHalMsgHeader header;
5318 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5319} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5320
5321/*---------------------------------------------------------------------------
5322 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5323 *--------------------------------------------------------------------------*/
5324typedef PACKED_PRE struct PACKED_POST
5325{
5326 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005327 tANI_U32 status;
5328 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005329} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5330
5331typedef PACKED_PRE struct PACKED_POST
5332{
5333 tHalMsgHeader header;
5334 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5335} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5336
5337/*---------------------------------------------------------------------------
5338 * WLAN_HAL_HOST_OFFLOAD_RSP
5339 *--------------------------------------------------------------------------*/
5340typedef PACKED_PRE struct PACKED_POST
5341{
5342 /* success or failure */
5343 tANI_U32 status;
5344} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5345
5346typedef PACKED_PRE struct PACKED_POST
5347{
5348 tHalMsgHeader header;
5349 tHalHostOffloadRspParams hostOffloadRspParams;
5350} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5351
5352/*---------------------------------------------------------------------------
5353 * WLAN_HAL_KEEP_ALIVE_RSP
5354 *--------------------------------------------------------------------------*/
5355typedef PACKED_PRE struct PACKED_POST
5356{
5357 /* success or failure */
5358 tANI_U32 status;
5359} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5360
5361typedef PACKED_PRE struct PACKED_POST
5362{
5363 tHalMsgHeader header;
5364 tHalKeepAliveRspParams keepAliveRspParams;
5365} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5366
5367/*---------------------------------------------------------------------------
5368 * WLAN_HAL_SET_RSSI_THRESH_RSP
5369 *--------------------------------------------------------------------------*/
5370typedef PACKED_PRE struct PACKED_POST
5371{
5372 /* success or failure */
5373 tANI_U32 status;
5374} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5375
5376typedef PACKED_PRE struct PACKED_POST
5377{
5378 tHalMsgHeader header;
5379 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5380} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5381
5382/*---------------------------------------------------------------------------
5383 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5384 *--------------------------------------------------------------------------*/
5385typedef PACKED_PRE struct PACKED_POST
5386{
5387 /* success or failure */
5388 tANI_U32 status;
5389} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5390
5391typedef PACKED_PRE struct PACKED_POST
5392{
5393 tHalMsgHeader header;
5394 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5395} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5396
5397/*---------------------------------------------------------------------------
5398 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5399 *--------------------------------------------------------------------------*/
5400typedef PACKED_PRE struct PACKED_POST
5401{
5402 /* success or failure */
5403 tANI_U32 status;
5404} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5405
5406typedef PACKED_PRE struct PACKED_POST
5407{
5408 tHalMsgHeader header;
5409 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5410} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5411
5412/*---------------------------------------------------------------------------
5413 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5414 *--------------------------------------------------------------------------*/
5415
5416typedef PACKED_PRE struct PACKED_POST
5417{
5418 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5419 //the request has power constraints, this should be applied only to that session
5420 tSirMacAddr selfStaMacAddr;
5421 //In request,
5422 //power == MaxTx power to be used.
5423 tPowerdBm power;
5424
5425}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5426
5427
5428typedef PACKED_PRE struct PACKED_POST
5429{
5430 tHalMsgHeader header;
5431 tSetMaxTxPwrParams setMaxTxPwrParams;
5432}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5433
5434/*---------------------------------------------------------------------------
5435*WLAN_HAL_SET_MAX_TX_POWER_RSP
5436*--------------------------------------------------------------------------*/
5437
5438typedef PACKED_PRE struct PACKED_POST
5439{
5440 //power == tx power used for management frames.
5441 tPowerdBm power;
5442
5443 /* success or failure */
5444 tANI_U32 status;
5445}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5446
5447typedef PACKED_PRE struct PACKED_POST
5448{
5449 tHalMsgHeader header;
5450 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5451}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5452
Kumar Anandea78e792013-10-10 23:47:01 -07005453
Jeff Johnson295189b2012-06-20 16:38:30 -07005454/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005455 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5456 *--------------------------------------------------------------------------*/
5457
5458/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5459typedef enum
5460{
5461 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5462 // For 2.4GHz or 5GHz bands
5463 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5464 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5465 // End of valid enums
5466 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5467}tHalSetMaxTxPwrBandInfo;
5468
5469typedef PACKED_PRE struct PACKED_POST
5470{
5471 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005472 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005473}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5474
Kumar Anandea78e792013-10-10 23:47:01 -07005475
Arif Hussain36fda162013-08-30 14:46:57 -07005476typedef PACKED_PRE struct PACKED_POST
5477{
5478 tHalMsgHeader header;
5479 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5480}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5481
5482/*---------------------------------------------------------------------------
5483*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5484*--------------------------------------------------------------------------*/
5485
5486typedef PACKED_PRE struct PACKED_POST
5487{
5488 //power == tx power used for management frames.
5489 tPowerdBm power;
5490
5491 /* success or failure */
5492 tANI_U32 status;
5493}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5494
5495typedef PACKED_PRE struct PACKED_POST
5496{
5497 tHalMsgHeader header;
5498 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5499}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5500
5501/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005502 *WLAN_HAL_SET_TX_POWER_REQ
5503 *--------------------------------------------------------------------------*/
5504
5505typedef PACKED_PRE struct PACKED_POST
5506{
5507 /* TX Power in milli watts */
5508 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005509 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005510}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5511
5512
5513typedef PACKED_PRE struct PACKED_POST
5514{
5515 tHalMsgHeader header;
5516 tSetTxPwrReqParams setTxPwrReqParams;
5517}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5518
5519/*---------------------------------------------------------------------------
5520*WLAN_HAL_SET_TX_POWER_RSP
5521*--------------------------------------------------------------------------*/
5522
5523typedef PACKED_PRE struct PACKED_POST
5524{
5525 /* success or failure */
5526 tANI_U32 status;
5527}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5528
5529typedef PACKED_PRE struct PACKED_POST
5530{
5531 tHalMsgHeader header;
5532 tSetTxPwrRspParams setTxPwrRspParams;
5533}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5534
5535/*---------------------------------------------------------------------------
5536 *WLAN_HAL_GET_TX_POWER_REQ
5537 *--------------------------------------------------------------------------*/
5538
5539typedef PACKED_PRE struct PACKED_POST
5540{
5541 tANI_U8 staId;
5542}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5543
5544typedef PACKED_PRE struct PACKED_POST
5545{
5546 tHalMsgHeader header;
5547 tGetTxPwrReqParams getTxPwrReqParams;
5548}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5549
5550/*---------------------------------------------------------------------------
5551*WLAN_HAL_GET_TX_POWER_RSP
5552*--------------------------------------------------------------------------*/
5553
5554typedef PACKED_PRE struct PACKED_POST
5555{
5556 /* success or failure */
5557 tANI_U32 status;
5558
5559 /* TX Power in milli watts */
5560 tANI_U32 txPower;
5561}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5562
5563typedef PACKED_PRE struct PACKED_POST
5564{
5565 tHalMsgHeader header;
5566 tGetTxPwrRspParams getTxPwrRspParams;
5567}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5568
5569#ifdef WLAN_FEATURE_P2P
5570/*---------------------------------------------------------------------------
5571 *WLAN_HAL_SET_P2P_GONOA_REQ
5572 *--------------------------------------------------------------------------*/
5573
5574typedef PACKED_PRE struct PACKED_POST
5575{
5576 tANI_U8 opp_ps;
5577 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305578 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005579 tANI_U32 duration;
5580 tANI_U32 interval;
5581 tANI_U32 single_noa_duration;
5582 tANI_U8 psSelection;
5583}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5584
5585
5586typedef PACKED_PRE struct PACKED_POST
5587{
5588 tHalMsgHeader header;
5589 tSetP2PGONOAParams setP2PGONOAParams;
5590}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5591
5592/*---------------------------------------------------------------------------
5593*WLAN_HAL_SET_P2P_GONOA_RSP
5594*--------------------------------------------------------------------------*/
5595
5596typedef PACKED_PRE struct PACKED_POST
5597{
5598 /* success or failure */
5599 tANI_U32 status;
5600}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5601
5602typedef PACKED_PRE struct PACKED_POST
5603{
5604 tHalMsgHeader header;
5605 tSetP2PGONOARspParams setP2PGONOARspParams;
5606}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5607#endif
5608
5609/*---------------------------------------------------------------------------
5610 *WLAN_HAL_ADD_SELF_STA_REQ
5611 *--------------------------------------------------------------------------*/
5612
5613typedef PACKED_PRE struct PACKED_POST
5614{
5615 tSirMacAddr selfMacAddr;
5616 tANI_U32 status;
5617}tAddStaSelfParams, *tpAddStaSelfParams;
5618
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005619typedef PACKED_PRE struct PACKED_POST
5620{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005621 tHalMsgHeader header;
5622 tAddStaSelfParams addStaSelfParams;
5623}tAddStaSelfReq, *tpAddStaSelfReq;
5624
5625/* This V1 structure carries additionally the IFACE PERSONA
5626 of the interface as compared to the legacy control
5627 message */
5628typedef PACKED_PRE struct PACKED_POST
5629{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005630 tSirMacAddr selfMacAddr;
5631 tANI_U32 status;
5632 tHalIfacePersona iface_persona;
5633}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005634
5635typedef PACKED_PRE struct PACKED_POST
5636{
5637 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005638 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005639}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005640
5641/*---------------------------------------------------------------------------
5642*WLAN_HAL_ADD_SELF_STA_RSP
5643*--------------------------------------------------------------------------*/
5644
5645typedef PACKED_PRE struct PACKED_POST
5646{
5647 /* success or failure */
5648 tANI_U32 status;
5649
5650 /*Self STA Index */
5651 tANI_U8 selfStaIdx;
5652
5653 /* DPU Index (IGTK, PTK, GTK all same) */
5654 tANI_U8 dpuIdx;
5655
5656 /* DPU Signature */
5657 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305658
Jeff Johnson295189b2012-06-20 16:38:30 -07005659}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5660
5661typedef PACKED_PRE struct PACKED_POST
5662{
5663 tHalMsgHeader header;
5664 tAddStaSelfRspParams addStaSelfRspParams;
5665}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5666
5667
5668/*---------------------------------------------------------------------------
5669 WLAN_HAL_DEL_STA_SELF_REQ
5670---------------------------------------------------------------------------*/
5671
5672typedef PACKED_PRE struct PACKED_POST
5673{
5674 tSirMacAddr selfMacAddr;
5675
5676}tDelStaSelfParams, *tpDelStaSelfParams;
5677
5678typedef PACKED_PRE struct PACKED_POST
5679{
5680 tHalMsgHeader header;
5681 tDelStaSelfParams delStaSelfParams;
5682} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5683
5684
5685/*---------------------------------------------------------------------------
5686 WLAN_HAL_DEL_STA_SELF_RSP
5687---------------------------------------------------------------------------*/
5688
5689typedef PACKED_PRE struct PACKED_POST
5690{
5691 /*success or failure */
5692 tANI_U32 status;
5693
5694 tSirMacAddr selfMacAddr;
5695}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5696
5697typedef PACKED_PRE struct PACKED_POST
5698{
5699 tHalMsgHeader header;
5700 tDelStaSelfRspParams delStaSelfRspParams;
5701} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5702
5703
5704#ifdef WLAN_FEATURE_VOWIFI_11R
5705
5706/*---------------------------------------------------------------------------
5707 *WLAN_HAL_AGGR_ADD_TS_REQ
5708 *--------------------------------------------------------------------------*/
5709
5710typedef PACKED_PRE struct PACKED_POST
5711{
5712 /* Station Index */
5713 tANI_U16 staIdx;
5714
5715 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5716 /* This will carry the bitmap with the bit positions representing different AC.s*/
5717 tANI_U16 tspecIdx;
5718
5719 /* Tspec info per AC To program TPE with required parameters */
5720 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5721
5722 /* U-APSD Flags: 1b per AC. Encoded as follows:
5723 b7 b6 b5 b4 b3 b2 b1 b0 =
5724 X X X X BE BK VI VO */
5725 tANI_U8 uAPSD;
5726
5727 /* These parameters are for all the access categories */
5728 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5729 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5730 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5731
5732}tAggrAddTsParams, *tpAggrAddTsParams;
5733
5734
5735typedef PACKED_PRE struct PACKED_POST
5736{
5737 tHalMsgHeader header;
5738 tAggrAddTsParams aggrAddTsParam;
5739}tAggrAddTsReq, *tpAggrAddTsReq;
5740
5741/*---------------------------------------------------------------------------
5742*WLAN_HAL_AGGR_ADD_TS_RSP
5743*--------------------------------------------------------------------------*/
5744
5745typedef PACKED_PRE struct PACKED_POST
5746{
5747 /* success or failure */
5748 tANI_U32 status0;
5749 /* FIXME PRIMA for future use for 11R */
5750 tANI_U32 status1;
5751}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5752
5753typedef PACKED_PRE struct PACKED_POST
5754{
5755 tHalMsgHeader header;
5756 tAggrAddTsRspParams aggrAddTsRspParam;
5757}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5758
5759#endif
5760
5761/*---------------------------------------------------------------------------
5762 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5763 *--------------------------------------------------------------------------*/
5764typedef PACKED_PRE struct PACKED_POST
5765{
5766 tANI_U8 isAppsCpuAwake;
5767} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5768
5769typedef PACKED_PRE struct PACKED_POST
5770{
5771 tHalMsgHeader header;
5772 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5773} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5774
5775/*---------------------------------------------------------------------------
5776 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5777 *--------------------------------------------------------------------------*/
5778typedef PACKED_PRE struct PACKED_POST
5779{
5780 /* success or failure */
5781 tANI_U32 status;
5782} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5783
5784typedef PACKED_PRE struct PACKED_POST
5785{
5786 tHalMsgHeader header;
5787 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5788} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5789/*---------------------------------------------------------------------------
5790 * WLAN_HAL_DUMP_COMMAND_REQ
5791 *--------------------------------------------------------------------------*/
5792
5793typedef PACKED_PRE struct PACKED_POST
5794{
5795 tANI_U32 argument1;
5796 tANI_U32 argument2;
5797 tANI_U32 argument3;
5798 tANI_U32 argument4;
5799 tANI_U32 argument5;
5800
5801}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5802
5803typedef PACKED_PRE struct PACKED_POST
5804{
5805 tHalMsgHeader header;
5806 tHalDumpCmdReqParams dumpCmdReqParams;
5807} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5808
5809/*---------------------------------------------------------------------------
5810 * WLAN_HAL_DUMP_COMMAND_RSP
5811 *--------------------------------------------------------------------------*/
5812
5813typedef PACKED_PRE struct PACKED_POST
5814{
5815 /* success or failure */
5816 tANI_U32 status;
5817 /*Length of the responce message*/
5818 tANI_U32 rspLength;
5819 /*FiXME: Currently considering the the responce will be less than 100bytes */
5820 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305821
Jeff Johnson295189b2012-06-20 16:38:30 -07005822} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5823
5824typedef PACKED_PRE struct PACKED_POST
5825{
5826 tHalMsgHeader header;
5827 tHalDumpCmdRspParams dumpCmdRspParams;
5828} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5829
5830/*---------------------------------------------------------------------------
5831 *WLAN_HAL_COEX_IND
5832 *-------------------------------------------------------------------------*/
5833#define WLAN_COEX_IND_DATA_SIZE (4)
5834#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5835#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005836#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5837#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005838#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5839#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305840#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5841#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305842#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005843
5844typedef PACKED_PRE struct PACKED_POST
5845{
5846 /*Coex Indication Type*/
5847 tANI_U32 coexIndType;
5848
5849 /*Coex Indication Data*/
5850 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5851}tCoexIndParams,*tpCoexIndParams;
5852
5853typedef PACKED_PRE struct PACKED_POST
5854{
5855 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305856 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005857}tCoexIndMsg, *tpCoexIndMsg;
5858
5859/*---------------------------------------------------------------------------
5860 *WLAN_HAL_OTA_TX_COMPL_IND
5861 *-------------------------------------------------------------------------*/
5862
5863typedef PACKED_PRE struct PACKED_POST
5864{
5865 /*Tx Complete Indication Success or Failure*/
5866 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305867 /* Dialog token */
5868 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005869}tTxComplParams,*tpTxComplParams;
5870
5871typedef PACKED_PRE struct PACKED_POST
5872{
5873 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305874 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005875}tTxComplIndMsg, *tpTxComplIndMsg;
5876
5877/*---------------------------------------------------------------------------
5878 * WLAN_HAL_HOST_SUSPEND_IND
5879 *-------------------------------------------------------------------------*/
5880
5881typedef PACKED_PRE struct PACKED_POST
5882{
5883 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305884 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005885}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5886
5887typedef PACKED_PRE struct PACKED_POST
5888{
5889 tHalMsgHeader header;
5890 tHalWlanHostSuspendIndParam suspendIndParams;
5891}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5892
5893/*---------------------------------------------------------------------------
5894 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5895 *-------------------------------------------------------------------------*/
5896
5897typedef PACKED_PRE struct PACKED_POST
5898{
5899 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305900 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005901}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5902
5903typedef PACKED_PRE struct PACKED_POST
5904{
5905 tHalMsgHeader header;
5906 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5907}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5908
5909#ifdef WLAN_FEATURE_P2P
5910/*---------------------------------------------------------------------------
5911 *WLAN_HAL_NOA_ATTR_IND
5912 *-------------------------------------------------------------------------*/
5913
5914typedef PACKED_PRE struct PACKED_POST
5915{
5916 tANI_U8 index ;
5917 tANI_U8 oppPsFlag ;
5918 tANI_U16 ctWin ;
5919
5920 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005921 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005922 tANI_U32 uNoa1Duration;
5923 tANI_U32 uNoa1Interval;
5924 tANI_U32 uNoa1StartTime;
5925
5926 tANI_U16 uNoa2IntervalCnt;
5927 tANI_U16 rsvd2;
5928 tANI_U32 uNoa2Duration;
5929 tANI_U32 uNoa2Interval;
5930 tANI_U32 uNoa2StartTime;
5931
5932 tANI_U32 status;
5933}tNoaAttrIndParams, *tpNoaAttrIndParams;
5934
5935typedef PACKED_PRE struct PACKED_POST
5936{
5937 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305938 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005939}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005940
5941/*---------------------------------------------------------------------------
5942 *WLAN_HAL_NOA_START_IND
5943 *-------------------------------------------------------------------------*/
5944
5945typedef PACKED_PRE struct PACKED_POST
5946{
5947 tANI_U32 status;
5948 tANI_U32 bssIdx;
5949}tNoaStartIndParams, *tpNoaStartIndParams;
5950
5951typedef PACKED_PRE struct PACKED_POST
5952{
5953 tHalMsgHeader header;
5954 tNoaStartIndParams noaStartIndParams;
5955}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005956#endif
5957
5958/*---------------------------------------------------------------------------
5959 * WLAN_HAL_HOST_RESUME_REQ
5960 *-------------------------------------------------------------------------*/
5961
5962typedef PACKED_PRE struct PACKED_POST
5963{
5964 tANI_U8 configuredMcstBcstFilterSetting;
5965}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5966
5967typedef PACKED_PRE struct PACKED_POST
5968{
5969 tHalMsgHeader header;
5970 tHalWlanHostResumeReqParam resumeReqParams;
5971}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5972
5973/*---------------------------------------------------------------------------
5974 * WLAN_HAL_HOST_RESUME_RSP
5975 *--------------------------------------------------------------------------*/
5976typedef PACKED_PRE struct PACKED_POST
5977{
5978 /* success or failure */
5979 tANI_U32 status;
5980} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5981
5982typedef PACKED_PRE struct PACKED_POST
5983{
5984 tHalMsgHeader header;
5985 tHalHostResumeRspParams hostResumeRspParams;
5986} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5987
Anand Kumar012623a2013-01-11 17:00:00 -08005988typedef PACKED_PRE struct PACKED_POST
5989{
5990 tANI_U16 staIdx;
5991 // Peer MAC Address, whose BA session has timed out
5992 tSirMacAddr peerMacAddr;
5993 // TID for which a BA session timeout is being triggered
5994 tANI_U8 baTID;
5995 // DELBA direction
5996 // 1 - Originator
5997 // 0 - Recipient
5998 tANI_U8 baDirection;
5999 tANI_U32 reasonCode;
6000 tSirMacAddr bssId; // TO SUPPORT BT-AMP
6001} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
6002
6003typedef PACKED_PRE struct PACKED_POST
6004{
6005 tHalMsgHeader header;
6006 tHalWlanDelBaIndMsg hostdelBaParam;
6007} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
6008
Jeff Johnson295189b2012-06-20 16:38:30 -07006009/*---------------------------------------------------------------------------
6010 *PNO Messages
6011 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006012/* Max number of channels that a network can be found on*/
6013/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6014 * be changed at same time
6015 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006016#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006017
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306018/*Max number of channels that a network can be found on*/
6019#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6020
Jeff Johnson295189b2012-06-20 16:38:30 -07006021/*Maximum numbers of networks supported by PNO*/
6022#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6023
6024/*The number of scan time intervals that can be programmed into PNO*/
6025#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6026
6027/*Maximum size of the probe template*/
6028#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6029
Dino Mycle8afbac12014-07-04 22:06:17 +05306030/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006031 Immediate - scanning will start immediately and PNO procedure will
6032 be repeated based on timer
6033 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006034 Resume - scanning will start on system resume
6035 Delay - start the scan timer to trigger PNO scan
6036 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006037typedef enum
6038{
6039 ePNO_MODE_IMMEDIATE,
6040 ePNO_MODE_ON_SUSPEND,
6041 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306042 ePNO_MODE_DELAY,
6043 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006044 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6045} ePNOMode;
6046
6047/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306048typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006049{
Dino Mycle8afbac12014-07-04 22:06:17 +05306050 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006051 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306052
Jeff Johnson295189b2012-06-20 16:38:30 -07006053 // Upper layer authentication types
6054 eAUTH_TYPE_WPA = 2,
6055 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306056
Jeff Johnson295189b2012-06-20 16:38:30 -07006057 eAUTH_TYPE_RSN = 4,
6058 eAUTH_TYPE_RSN_PSK = 5,
6059 eAUTH_TYPE_FT_RSN = 6,
6060 eAUTH_TYPE_FT_RSN_PSK = 7,
6061 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6062 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006063 eAUTH_TYPE_CCKM_WPA = 10,
6064 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306065 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6066 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306067
Jeff Johnson295189b2012-06-20 16:38:30 -07006068 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6069
6070}tAuthType;
6071
6072/* Encryption type */
6073typedef enum eEdType
6074{
6075 eED_ANY = 0,
6076 eED_NONE = 1,
6077 eED_WEP = 2,
6078 eED_TKIP = 3,
6079 eED_CCMP = 4,
6080 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306081
Jeff Johnson295189b2012-06-20 16:38:30 -07006082 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6083} tEdType;
6084
6085/* SSID broadcast type */
6086typedef enum eSSIDBcastType
6087{
6088 eBCAST_UNKNOWN = 0,
6089 eBCAST_NORMAL = 1,
6090 eBCAST_HIDDEN = 2,
6091
6092 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6093} tSSIDBcastType;
6094
Dino Mycle8afbac12014-07-04 22:06:17 +05306095/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006096 The network description for which PNO will have to look for
6097*/
6098typedef PACKED_PRE struct PACKED_POST
6099{
6100 /*SSID of the BSS*/
6101 tSirMacSSid ssId;
6102
6103 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306104 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006105
6106 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306107 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006108
Dino Mycle8afbac12014-07-04 22:06:17 +05306109 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006110 0 - if all channels */
6111 tANI_U8 ucChannelCount;
6112 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6113
6114 /*Indicates the RSSI threshold for the network to be considered*/
6115 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306116}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006117
6118typedef PACKED_PRE struct PACKED_POST
6119{
6120 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306121 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006122
Dino Mycle8afbac12014-07-04 22:06:17 +05306123 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006124 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306125 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006126
Dino Mycle8afbac12014-07-04 22:06:17 +05306127 /*e.g: 2 3
6128 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006129 - it will wait 2s between consecutive scans for 3 times
6130 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306131}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006132
Dino Mycle8afbac12014-07-04 22:06:17 +05306133/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006134 The network parameters to be sent to the PNO algorithm
6135*/
6136typedef PACKED_PRE struct PACKED_POST
6137{
6138 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306139 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006140
Dino Mycle8afbac12014-07-04 22:06:17 +05306141 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006142 two consecutive scan procedures
6143 If the desired is for a uniform timer that fires always at the exact same
6144 interval - one single value is to be set
6145 If there is a desire for a more complex - telescopic like timer multiple
6146 values can be set - once PNO reaches the end of the array it will
6147 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306148 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006149
6150}tScanTimersType;
6151
6152typedef PACKED_PRE struct PACKED_POST {
6153
6154 /*Enable PNO*/
6155 tANI_U32 enable;
6156
6157 /*Immediate, On Suspend, On Resume*/
6158 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306159
Jeff Johnson295189b2012-06-20 16:38:30 -07006160 /*Number of networks sent for PNO*/
6161 tANI_U32 ucNetworksCount;
6162
6163 /*The networks that PNO needs to look for*/
6164 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6165
6166 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306167 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006168
6169 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306170 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006171 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6172
6173 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306174 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006175 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6176
6177} tPrefNetwListParams, * tpPrefNetwListParams;
6178
6179/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306180 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006181*/
6182typedef PACKED_PRE struct PACKED_POST
6183{
6184 tHalMsgHeader header;
6185 tPrefNetwListParams prefNetwListParams;
6186} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6187
6188
Dino Mycle8afbac12014-07-04 22:06:17 +05306189/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006190 The network description for which PNO will have to look for
6191*/
6192typedef PACKED_PRE struct PACKED_POST
6193{
6194 /*SSID of the BSS*/
6195 tSirMacSSid ssId;
6196
6197 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306198 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006199
6200 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306201 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006202
6203 /*SSID broadcast type, normal, hidden or unknown*/
6204 tSSIDBcastType bcastNetworkType;
6205
Dino Mycle8afbac12014-07-04 22:06:17 +05306206 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006207 0 - if all channels */
6208 tANI_U8 ucChannelCount;
6209 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6210
6211 /*Indicates the RSSI threshold for the network to be considered*/
6212 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306213}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006214
6215typedef PACKED_PRE struct PACKED_POST {
6216
6217 /*Enable PNO*/
6218 tANI_U32 enable;
6219
6220 /*Immediate, On Suspend, On Resume*/
6221 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306222
Jeff Johnson295189b2012-06-20 16:38:30 -07006223 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306224 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006225
6226 /*The networks that PNO needs to look for*/
6227 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6228
6229 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306230 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006231
6232 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306233 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006234 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6235
6236 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306237 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006238 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6239
6240} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6241
6242/*
6243 Preferred network list request new
6244*/
6245typedef PACKED_PRE struct PACKED_POST
6246{
6247 tHalMsgHeader header;
6248 tPrefNetwListParamsNew prefNetwListParams;
6249} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6250
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006251#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6252typedef PACKED_PRE struct PACKED_POST
6253{
6254 tSirMacSSid ssId;
6255 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6256 tANI_U32 authentication;
6257 tEdType encryption;
6258 tEdType mcencryption;
6259 tANI_U8 ChannelCount;
6260 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6261}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006262
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006263typedef PACKED_PRE struct PACKED_POST
6264{
6265 tANI_U8 mdiePresent;
6266 tANI_U16 mobilityDomain;
6267}tMobilityDomainInfo;
6268
6269typedef PACKED_PRE struct PACKED_POST {
6270 eAniBoolean RoamScanOffloadEnabled;
6271 tANI_S8 LookupThreshold;
6272 tANI_U8 RoamRssiDiff;
6273 tANI_U8 ChannelCacheType;
6274 tANI_U8 Command;
6275 tANI_U8 StartScanReason;
6276 tANI_U16 NeighborScanTimerPeriod;
6277 tANI_U16 NeighborRoamScanRefreshPeriod;
6278 tANI_U16 NeighborScanChannelMinTime;
6279 tANI_U16 NeighborScanChannelMaxTime;
6280 tANI_U16 EmptyRefreshScanPeriod;
6281 tANI_U8 ValidChannelCount;
6282 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006283 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006284
6285 tANI_U16 us24GProbeSize;
6286 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6287 tANI_U16 us5GProbeSize;
6288 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6289 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006290 tANI_U8 nProbes;
6291 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006292 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006293 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006294 tANI_U8 RoamOffloadEnabled;
6295 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6296 tANI_U8 Prefer5GHz;
6297 tANI_U8 RoamRssiCatGap;
6298 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006299 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6300 tRoamNetworkType ConnectedNetwork;
6301 tMobilityDomainInfo MDID;
6302} tRoamCandidateListParams, * tpRoamCandidateListParams;
6303
6304typedef PACKED_PRE struct PACKED_POST
6305{
Kumar Anandea78e792013-10-10 23:47:01 -07006306 tHalMsgHeader header;
6307 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006308} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6309
6310typedef PACKED_PRE struct PACKED_POST
6311{
Kumar Anandea78e792013-10-10 23:47:01 -07006312 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006313
Kumar Anandea78e792013-10-10 23:47:01 -07006314 /* status of the request - just to indicate that PNO has acknowledged
6315 * the request and will start scanning */
6316 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006317} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6318#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006319
6320/*
6321 Preferred network list response
6322*/
6323typedef PACKED_PRE struct PACKED_POST
6324{
6325 tHalMsgHeader header;
6326
6327 /* status of the request - just to indicate that PNO has acknowledged
6328 * the request and will start scanning*/
6329 tANI_U32 status;
6330} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6331
6332/*
6333 Preferred network indication parameters
6334*/
6335typedef PACKED_PRE struct PACKED_POST {
6336
6337 /*Network that was found with the highest RSSI*/
6338 tSirMacSSid ssId;
6339
6340 /*Indicates the RSSI */
6341 tANI_U8 rssi;
6342
6343 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6344 tANI_U16 frameLength;
6345
6346} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6347
6348/*
6349 Preferred network found indication
6350*/
6351typedef PACKED_PRE struct PACKED_POST {
6352
6353 tHalMsgHeader header;
6354 tPrefNetwFoundParams prefNetwFoundParams;
6355} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6356
6357
6358typedef PACKED_PRE struct PACKED_POST {
6359
6360 /*RSSI Threshold*/
6361 tANI_U8 ucRssiThreshold;
6362
6363} tRssiFilterParams, * tpRssiFilterParams;
6364
Jeff Johnson295189b2012-06-20 16:38:30 -07006365/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306366 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006367*/
6368typedef PACKED_PRE struct PACKED_POST
6369{
6370 tHalMsgHeader header;
6371 tRssiFilterParams prefRSSIFilterParams;
6372} tSetRssiFilterReq, *tpSetRssiFilterReq;
6373
6374/*
6375 Set RSSI filter resp
6376*/
6377typedef PACKED_PRE struct PACKED_POST{
6378 tHalMsgHeader header;
6379 /*status of the request */
6380 tANI_U32 status;
6381} tSetRssiFilterResp, *tpSetRssiFilterResp;
6382/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306383 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006384*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306385typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006386{
6387
6388 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306389 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006390
6391 /*Lets PNO know that host has determined the regulatory domain*/
6392 tANI_U8 b11dResolved;
6393
6394 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306395 tANI_U8 ucChannelCount;
6396 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006397
6398 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306399 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006400
6401 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306402 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006403
6404 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306405 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006406
6407 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306408 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006409
6410 /*Cb State*/
6411 ePhyChanBondState cbState;
6412
6413} tUpdateScanParams, * tpUpdateScanParams;
6414
6415/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306416 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306417*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306418typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306419{
6420
6421 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306422 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306423
6424 /*Lets PNO know that host has determined the regulatory domain*/
6425 tANI_U8 b11dResolved;
6426
6427 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306428 tANI_U8 ucChannelCount;
6429 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306430
6431 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306432 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306433
6434 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306435 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306436
6437 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306438 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306439
6440 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306441 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306442
6443 /*Cb State*/
6444 ePhyChanBondState cbState;
6445
6446} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6447
6448/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006449 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306450 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006451*/
6452typedef PACKED_PRE struct PACKED_POST{
6453
6454 tHalMsgHeader header;
6455 tUpdateScanParams scanParams;
6456} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6457
6458/*
6459 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306460 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006461*/
6462typedef PACKED_PRE struct PACKED_POST{
6463
6464 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306465 tUpdateScanParamsEx scanParams;
6466} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6467
6468/*
6469 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306470 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306471*/
6472typedef PACKED_PRE struct PACKED_POST{
6473
6474 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006475
6476 /*status of the request */
6477 tANI_U32 status;
6478
6479} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6480
6481/*---------------------------------------------------------------------------
6482 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6483 *--------------------------------------------------------------------------*/
6484typedef PACKED_PRE struct PACKED_POST
6485{
6486 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6487 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6488 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6489 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6490} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6491
6492typedef PACKED_PRE struct PACKED_POST
6493{
6494 tHalMsgHeader header;
6495 tHalTxPerTrackingReqParam txPerTrackingParams;
6496} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6497
6498/*---------------------------------------------------------------------------
6499 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6500 *--------------------------------------------------------------------------*/
6501typedef PACKED_PRE struct PACKED_POST
6502{
6503 /* success or failure */
6504 tANI_U32 status;
6505} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6506
6507typedef PACKED_PRE struct PACKED_POST
6508{
6509 tHalMsgHeader header;
6510 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6511} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6512
6513/*---------------------------------------------------------------------------
6514 * WLAN_HAL_TX_PER_HIT_IND
6515 *--------------------------------------------------------------------------*/
6516typedef PACKED_PRE struct PACKED_POST
6517{
6518 tHalMsgHeader header;
6519}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6520
6521/*---------------------------------------------------------------------------
6522 *******************Packet Filtering Definitions Begin*******************
6523 *--------------------------------------------------------------------------*/
6524#define HAL_PROTOCOL_DATA_LEN 8
6525#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6526#define HAL_MAX_NUM_FILTERS 20
6527#define HAL_MAX_CMP_PER_FILTER 10
6528
6529typedef enum
6530{
6531 HAL_RCV_FILTER_TYPE_INVALID,
6532 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6533 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6534 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6535}tHalReceivePacketFilterType;
6536
Dino Mycle8afbac12014-07-04 22:06:17 +05306537typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006538{
6539 HAL_FILTER_PROTO_TYPE_INVALID,
6540 HAL_FILTER_PROTO_TYPE_MAC,
6541 HAL_FILTER_PROTO_TYPE_ARP,
6542 HAL_FILTER_PROTO_TYPE_IPV4,
6543 HAL_FILTER_PROTO_TYPE_IPV6,
6544 HAL_FILTER_PROTO_TYPE_UDP,
6545 HAL_FILTER_PROTO_TYPE_MAX
6546}tHalRcvPktFltProtocolType;
6547
Dino Mycle8afbac12014-07-04 22:06:17 +05306548typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006549{
6550 HAL_FILTER_CMP_TYPE_INVALID,
6551 HAL_FILTER_CMP_TYPE_EQUAL,
6552 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6553 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6554 HAL_FILTER_CMP_TYPE_MAX
6555}tHalRcvPktFltCmpFlagType;
6556
Dino Mycle8afbac12014-07-04 22:06:17 +05306557typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006558{
6559 tANI_U8 protocolLayer;
6560 tANI_U8 cmpFlag;
6561 tANI_U16 dataLength; /* Length of the data to compare */
6562 tANI_U8 dataOffset; /* from start of the respective frame header */
6563 tANI_U8 reserved; /* Reserved field */
6564 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6565 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6566}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6567
6568typedef PACKED_PRE struct PACKED_POST
6569{
6570 tANI_U8 filterId;
6571 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306572 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006573 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006574 tHalRcvPktFilterParams paramsData[1];
6575}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6576
6577typedef PACKED_PRE struct PACKED_POST
6578{
Jeff Johnsone7245742012-09-05 17:12:55 -07006579 tANI_U8 filterId;
6580 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306581 tANI_U8 numParams;
6582 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006583 tANI_U8 bssIdx;
6584 tHalRcvPktFilterParams paramsData[1];
6585}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6586
6587typedef PACKED_PRE struct PACKED_POST
6588{
Jeff Johnson295189b2012-06-20 16:38:30 -07006589 tHalMsgHeader header;
6590 tHalRcvPktFilterCfgType pktFilterCfg;
6591} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6592
Jeff Johnsone7245742012-09-05 17:12:55 -07006593typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006594{
6595 tANI_U8 dataOffset; /* from start of the respective frame header */
6596 tANI_U32 cMulticastAddr;
6597 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006598 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006599} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6600
6601typedef PACKED_PRE struct PACKED_POST
6602{
6603 /* success or failure */
6604 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006605 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006606} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6607
6608typedef PACKED_PRE struct PACKED_POST
6609{
6610 tHalMsgHeader header;
6611 tHalSetPktFilterRspParams pktFilterRspParams;
6612} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6613
Jeff Johnsone7245742012-09-05 17:12:55 -07006614typedef PACKED_PRE struct PACKED_POST
6615{
6616 tANI_U8 bssIdx;
6617} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006618
6619typedef PACKED_PRE struct PACKED_POST
6620{
6621 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006622 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006623} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6624
Jeff Johnsone7245742012-09-05 17:12:55 -07006625
Jeff Johnson295189b2012-06-20 16:38:30 -07006626typedef PACKED_PRE struct PACKED_POST
6627{
6628 tANI_U8 filterId;
6629 tANI_U32 matchCnt;
6630} tHalRcvFltPktMatchCnt;
6631typedef PACKED_PRE struct PACKED_POST
6632{
6633 /* Success or Failure */
6634 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306635 tANI_U32 matchCnt;
6636 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006637 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006638} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6639
6640typedef PACKED_PRE struct PACKED_POST
6641{
6642 tHalMsgHeader header;
6643 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6644} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6645
6646typedef PACKED_PRE struct PACKED_POST
6647{
6648 tANI_U32 status; /* only valid for response message */
6649 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006650 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006651}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6652
6653typedef PACKED_PRE struct PACKED_POST
6654{
6655 tHalMsgHeader header;
6656 tHalRcvFltPktClearParam filterClearParam;
6657} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6658
6659typedef PACKED_PRE struct PACKED_POST
6660{
6661 tHalMsgHeader header;
6662 tHalRcvFltPktClearParam filterClearParam;
6663} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6664
6665typedef PACKED_PRE struct PACKED_POST
6666{
Dino Mycle8afbac12014-07-04 22:06:17 +05306667 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006668 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006669}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6670
6671typedef PACKED_PRE struct PACKED_POST
6672{
6673 tHalMsgHeader header;
6674 tHalRcvFltMcAddrListType mcAddrList;
6675} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6676
6677typedef PACKED_PRE struct PACKED_POST
6678{
6679 tHalMsgHeader header;
6680 tHalRcvFltPktSetMcListRspType rspParam;
6681} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6682
6683
6684/*---------------------------------------------------------------------------
6685 *******************Packet Filtering Definitions End*******************
6686 *--------------------------------------------------------------------------*/
6687
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006688/*
6689 * There are two versions of this message
6690 * Version 1 : Base version
6691 * Current version : Base version + Max LI modulated DTIM
6692 */
6693typedef PACKED_PRE struct PACKED_POST
6694{
6695 /* Ignore DTIM */
6696 tANI_U32 uIgnoreDTIM;
6697
6698 /*DTIM Period*/
6699 tANI_U32 uDTIMPeriod;
6700
6701 /* Listen Interval */
6702 tANI_U32 uListenInterval;
6703
6704 /* Broadcast Multicast Filter */
6705 tANI_U32 uBcastMcastFilter;
6706
6707 /* Beacon Early Termination */
6708 tANI_U32 uEnableBET;
6709
6710 /* Beacon Early Termination Interval */
6711 tANI_U32 uBETInterval;
6712}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6713
6714typedef PACKED_PRE struct PACKED_POST
6715{
6716 tHalMsgHeader header;
6717 tSetPowerParamsVer1Type powerParams;
6718} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6719
Jeff Johnson295189b2012-06-20 16:38:30 -07006720typedef PACKED_PRE struct PACKED_POST
6721{
6722 /* Ignore DTIM */
6723 tANI_U32 uIgnoreDTIM;
6724
6725 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306726 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006727
6728 /* Listen Interval */
6729 tANI_U32 uListenInterval;
6730
6731 /* Broadcast Multicast Filter */
6732 tANI_U32 uBcastMcastFilter;
6733
6734 /* Beacon Early Termination */
6735 tANI_U32 uEnableBET;
6736
6737 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306738 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006739
6740 /* MAX LI for modulated DTIM */
6741 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006742}tSetPowerParamsType, *tpSetPowerParamsType;
6743
6744typedef PACKED_PRE struct PACKED_POST
6745{
6746 tHalMsgHeader header;
6747 tSetPowerParamsType powerParams;
6748} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6749
6750typedef PACKED_PRE struct PACKED_POST{
6751
6752 tHalMsgHeader header;
6753
6754 /*status of the request */
6755 tANI_U32 status;
6756
6757} tSetPowerParamsResp, *tpSetPowerParamsResp;
6758
6759/*---------------------------------------------------------------------------
6760 ****************Capability bitmap exchange definitions and macros starts*************
6761 *--------------------------------------------------------------------------*/
6762
Anand Kumar012623a2013-01-11 17:00:00 -08006763typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006764 MCC = 0,
6765 P2P = 1,
6766 DOT11AC = 2,
6767 SLM_SESSIONIZATION = 3,
6768 DOT11AC_OPMODE = 4,
6769 SAP32STA = 5,
6770 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006771 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006772 WLANACTIVE_OFFLOAD = 8,
6773 BEACON_OFFLOAD = 9,
6774 SCAN_OFFLOAD = 10,
6775 ROAM_OFFLOAD = 11,
6776 BCN_MISS_OFFLOAD = 12,
6777 STA_POWERSAVE = 13,
6778 STA_ADVANCED_PWRSAVE = 14,
6779 AP_UAPSD = 15,
6780 AP_DFS = 16,
6781 BLOCKACK = 17,
6782 PHY_ERR = 18,
6783 BCN_FILTER = 19,
6784 RTT = 20,
6785 RATECTRL = 21,
6786 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006787 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006788 SPECULATIVE_PS_POLL = 24,
6789 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006790 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006791 WLAN_SCAN_OFFLOAD = 27,
6792 WLAN_PERIODIC_TX_PTRN = 28,
6793 ADVANCE_TDLS = 29,
6794 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306795 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306796 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306797 CH_SWITCH_V1 = 33,
6798 HT40_OBSS_SCAN = 34,
6799 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006800 WLAN_MCADDR_FLT = 36,
6801 WLAN_CH144 = 37,
6802 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306803 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306804 LINK_LAYER_STATS_MEAS = 40,
6805 MU_MIMO = 41,
6806 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306807 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306808 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306809 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306810 DISA = 46,
6811 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306812 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306813 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306814 TDLS_OFF_CHANNEL = 51,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306815 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306816 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306817 LOGGING_ENHANCEMENT = 55,
Padma, Santhosh Kumar2ac54992015-10-12 18:20:58 +05306818 EXT_SCAN_ENHANCED = 56,
c_manjeecfd1efb2015-09-25 19:32:34 +05306819 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306820 PER_PKT_STATS_SUPPORTED = 58,
Mukul Sharma03f86492015-10-20 16:10:13 +05306821 EXT_LL_STAT = 60,
Arun Khandavalliafc16432015-10-16 20:11:31 +05306822 WIFI_CONFIG = 61,
Kumar Anandea78e792013-10-10 23:47:01 -07006823 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006824} placeHolderInCapBitmap;
6825
Jeff Johnson295189b2012-06-20 16:38:30 -07006826typedef PACKED_PRE struct PACKED_POST{
6827
6828 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006829} tWlanFeatCaps, *tpWlanFeatCaps;
6830
6831typedef PACKED_PRE struct PACKED_POST{
6832
Dino Mycle8afbac12014-07-04 22:06:17 +05306833 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006834 tWlanFeatCaps wlanFeatCaps;
6835
6836} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6837
Jeff Johnsone7245742012-09-05 17:12:55 -07006838#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6839#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006840#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006841#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006842#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006843#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006844#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006845#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306846#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306847#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306848#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306849#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306850#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006851
Jeff Johnsone7245742012-09-05 17:12:55 -07006852tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6853
Jeff Johnson295189b2012-06-20 16:38:30 -07006854#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006855 if ((b)<=127) { \
6856 arr_index = (b)/32; \
6857 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006858 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006859 (a)->featCaps[arr_index] |= (1<<bit_index); \
6860 } \
6861 }
6862#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006863 if ((b)<=127) { \
6864 arr_index = (b)/32; \
6865 bit_index = (b)%32; \
6866 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006867 } \
6868 }
6869#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006870 if ((b)<=127) { \
6871 arr_index = (b)/32; \
6872 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006873 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006874 } \
6875 }
6876
6877/*---------------------------------------------------------------------------
6878 * WLAN_HAL_WAKE_REASON_IND
6879 *--------------------------------------------------------------------------*/
6880
6881/* status codes to help debug rekey failures */
6882typedef enum
6883{
6884 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6885 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6886 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6887 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6888 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6889 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6890 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6891 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6892 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6893 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6894
6895 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6896} tGTKRekeyStatus;
6897
6898/* wake reason types */
6899typedef enum
6900{
6901 WLAN_HAL_WAKE_REASON_NONE = 0,
6902 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6903 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6904 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6905 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6906 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6907 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6908 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6909} tWakeReasonType;
6910
6911/*
6912 Wake Packet which is saved at tWakeReasonParams.DataStart
6913 This data is sent for any wake reasons that involve a packet-based wakeup :
6914
6915 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6916 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6917 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6918 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6919 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6920
6921 The information is provided to the host for auditing and debug purposes
6922
6923*/
6924
6925/*
6926 Wake reason indication parameters
6927*/
6928typedef PACKED_PRE struct PACKED_POST
6929{
6930 uint32 ulReason; /* see tWakeReasonType */
6931 uint32 ulReasonArg; /* argument specific to the reason type */
6932 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6933 HAL truncates the data (i.e. data packets) this length
6934 will be less than the actual length */
6935 uint32 ulActualDataLen; /* actual length of data */
6936 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6937 see specific wake type */
6938} tWakeReasonParams, *tpWakeReasonParams;
6939
6940/*
6941 Wake reason indication
6942*/
6943typedef PACKED_PRE struct PACKED_POST
6944{
6945 tHalMsgHeader header;
6946 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006947 tANI_U32 uBssIdx : 8;
6948 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006949} tHalWakeReasonInd, *tpHalWakeReasonInd;
6950
6951/*---------------------------------------------------------------------------
6952* WLAN_HAL_GTK_OFFLOAD_REQ
6953*--------------------------------------------------------------------------*/
6954
6955#define HAL_GTK_KEK_BYTES 16
6956#define HAL_GTK_KCK_BYTES 16
6957
6958#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6959
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006960#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6961
Jeff Johnson295189b2012-06-20 16:38:30 -07006962typedef PACKED_PRE struct PACKED_POST
6963{
6964 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306965 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006966 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6967 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006968 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006969} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6970
6971typedef PACKED_PRE struct PACKED_POST
6972{
6973 tHalMsgHeader header;
6974 tHalGtkOffloadReqParams gtkOffloadReqParams;
6975} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6976
6977/*---------------------------------------------------------------------------
6978* WLAN_HAL_GTK_OFFLOAD_RSP
6979*--------------------------------------------------------------------------*/
6980typedef PACKED_PRE struct PACKED_POST
6981{
6982 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006983 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006984} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6985
6986typedef PACKED_PRE struct PACKED_POST
6987{
6988 tHalMsgHeader header;
6989 tHalGtkOffloadRspParams gtkOffloadRspParams;
6990} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6991
6992
6993/*---------------------------------------------------------------------------
6994* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6995*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006996typedef PACKED_PRE struct PACKED_POST
6997{
6998 tANI_U8 bssIdx;
6999
7000} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007001
7002typedef PACKED_PRE struct PACKED_POST
7003{
7004 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07007005 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07007006} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
7007
7008/*---------------------------------------------------------------------------
7009* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
7010*--------------------------------------------------------------------------*/
7011typedef PACKED_PRE struct PACKED_POST
7012{
7013 tANI_U32 ulStatus; /* success or failure */
7014 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7015 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7016 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7017 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7018 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007019 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007020} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7021
7022typedef PACKED_PRE struct PACKED_POST
7023{
7024 tHalMsgHeader header;
7025 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7026} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7027
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007028/*---------------------------------------------------------------------------
7029* WLAN_HAL_DHCP_IND
7030*--------------------------------------------------------------------------*/
7031typedef PACKED_PRE struct PACKED_POST
7032{
7033 /*Indicates the device mode which indicates about the DHCP activity */
7034 tANI_U8 device_mode;
7035 tSirMacAddr macAddr;
7036} tDHCPInfo, *tpDHCPInfo;
7037
7038typedef PACKED_PRE struct PACKED_POST
7039{
7040 tHalMsgHeader header;
7041 tANI_U32 status; /* success or failure */
7042} tDHCPIndStatus, *tpDHCPIndstatus;
7043
Jeff Johnson295189b2012-06-20 16:38:30 -07007044/*
7045 Thermal Mitigation mode of operation.
7046 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7047 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7048 reducing transmit power
7049 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7050*/
7051typedef enum
7052{
7053 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7054 HAL_THERMAL_MITIGATION_MODE_0,
7055 HAL_THERMAL_MITIGATION_MODE_1,
7056 HAL_THERMAL_MITIGATION_MODE_2,
7057 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7058}tHalThermalMitigationModeType;
7059//typedef tANI_S16 tHalThermalMitigationModeType;
7060
7061/*
7062 Thermal Mitigation level.
7063 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7064 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7065
7066 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7067 level indicates normal mode of operation
7068 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7069 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7070 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7071 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7072*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307073typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007074{
7075 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7076 HAL_THERMAL_MITIGATION_LEVEL_0,
7077 HAL_THERMAL_MITIGATION_LEVEL_1,
7078 HAL_THERMAL_MITIGATION_LEVEL_2,
7079 HAL_THERMAL_MITIGATION_LEVEL_3,
7080 HAL_THERMAL_MITIGATION_LEVEL_4,
7081 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7082}tHalThermalMitigationLevelType;
7083//typedef tANI_S16 tHalThermalMitigationLevelType;
7084
7085typedef PACKED_PRE struct PACKED_POST
7086{
7087 /* Thermal Mitigation Operation Mode */
7088 tHalThermalMitigationModeType thermalMitMode;
7089
7090 /* Thermal Mitigation Level */
7091 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307092
Jeff Johnson295189b2012-06-20 16:38:30 -07007093}tSetThermalMitgationType, *tpSetThermalMitgationType;
7094
7095/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7096typedef PACKED_PRE struct PACKED_POST
7097{
7098 tHalMsgHeader header;
7099 tSetThermalMitgationType thermalMitParams;
7100} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7101
7102typedef PACKED_PRE struct PACKED_POST{
7103
7104 tHalMsgHeader header;
7105
7106 /*status of the request */
7107 tANI_U32 status;
7108
7109} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7110
Dino Mycle8afbac12014-07-04 22:06:17 +05307111/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007112provided to FW from Host via periodic messages */
7113typedef PACKED_PRE struct PACKED_POST {
7114 /* TX stats */
7115 uint32 txBytesPushed;
7116 uint32 txPacketsPushed;
7117
7118 /* RX stats */
7119 uint32 rxBytesRcvd;
7120 uint32 rxPacketsRcvd;
7121 uint32 rxTimeTotal;
7122} tStaStatsClassB, *tpStaStatsClassB;
7123
7124typedef PACKED_PRE struct PACKED_POST {
7125
7126 /* Duration over which this stats was collected */
7127 tANI_U32 duration;
7128
7129 /* Per STA Stats */
7130 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7131} tStatsClassBIndParams, *tpStatsClassBIndParams;
7132
7133typedef PACKED_PRE struct PACKED_POST {
7134
7135 tHalMsgHeader header;
7136
7137 /* Class B Stats */
7138 tStatsClassBIndParams statsClassBIndParams;
7139} tStatsClassBInd, *tpStatsClassBInd;
7140
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307141/*Wifi Proximity paramters in AP mode*/
7142#ifdef FEATURE_WIFI_PROXIMITY
7143
7144typedef PACKED_PRE struct PACKED_POST{
7145
7146 tANI_U8 wifiProximityChannel;
7147 tANI_U32 wifiProximityDuration;
7148 tANI_U32 wifiProximityInterval;
7149 tANI_U32 wifiProximityMode;
7150 tANI_U32 wifiProximityStatus;
7151 tSirMacAddr bssId;
7152 tSirMacSSid ssId;
7153
7154} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7155
7156typedef PACKED_PRE struct PACKED_POST
7157{
7158 tHalMsgHeader header;
7159
7160 tSetWifiProximityReqParam wifiProximityReqParams;
7161
7162}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7163
7164/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7165typedef PACKED_PRE struct PACKED_POST{
7166
7167 tHalMsgHeader header;
7168
7169 /*status of the request */
7170 tANI_U32 status;
7171
7172} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7173
7174#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007175
7176#ifdef FEATURE_SPECULATIVE_PS_POLL
7177/*---------------------------------------------------------------------------
7178 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7179 *--------------------------------------------------------------------------*/
7180typedef PACKED_PRE struct PACKED_POST
7181{
7182 tANI_U8 bssIdx;
7183 tANI_U16 serviceInterval;
7184 tANI_U16 suspendInterval;
7185 tANI_U8 acMask;
7186} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7187
7188typedef PACKED_PRE struct PACKED_POST
7189{
7190 tHalMsgHeader header;
7191 tHalStartSpecPsPollReqParams specPsPollReq;
7192} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7193
7194/*---------------------------------------------------------------------------
7195 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7196 *--------------------------------------------------------------------------*/
7197typedef PACKED_PRE struct PACKED_POST
7198{
7199 /* success or failure */
7200 tANI_U32 status;
7201 tANI_U8 bssIdx;
7202} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7203
7204typedef PACKED_PRE struct PACKED_POST
7205{
7206 tHalMsgHeader header;
7207 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7208} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7209
7210/*---------------------------------------------------------------------------
7211 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7212 *--------------------------------------------------------------------------*/
7213typedef PACKED_PRE struct PACKED_POST
7214{
7215 tHalMsgHeader header;
7216 tANI_U8 bssIdx;
7217} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7218#endif
7219
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307220#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307221#define HAL_MAX_SUPP_CHANNELS 128
7222#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307223/*---------------------------------------------------------------------------
7224 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7225 *-------------------------------------------------------------------------*/
7226typedef PACKED_PRE struct PACKED_POST
7227{
7228 /*STA Index*/
7229 tANI_U16 staIdx;
7230
7231 /* if this is 1, self is initiator and peer is reponder */
7232 tANI_U8 bIsResponder;
7233
7234 /* QoS Info */
7235 tANI_U8 acVOUAPSDFlag:1;
7236 tANI_U8 acVIUAPSDFlag:1;
7237 tANI_U8 acBKUAPSDFlag:1;
7238 tANI_U8 acBEUAPSDFlag:1;
7239 tANI_U8 aAck:1;
7240 tANI_U8 maxServicePeriodLength:2;
7241 tANI_U8 moreDataAck:1;
7242
7243 /*TDLS Peer U-APSD Buffer STA Support*/
7244 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007245
7246 /*TDLS off channel related params */
7247 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307248 tANI_U8 peerCurrOperClass;
7249 tANI_U8 selfCurrOperClass;
7250 tANI_U8 validChannelsLen;
7251 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7252 tANI_U8 validOperClassesLen;
7253 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307254}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7255
7256typedef PACKED_PRE struct PACKED_POST
7257{
7258 tHalMsgHeader header;
7259 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7260} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7261
7262/*---------------------------------------------------------------------------
7263 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7264 *-------------------------------------------------------------------------*/
7265
7266typedef PACKED_PRE struct PACKED_POST
7267{
7268 tANI_U32 status;
7269
7270 /*STA Index*/
7271 tANI_U16 staIdx;
7272} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7273
7274typedef PACKED_PRE struct PACKED_POST
7275{
7276 tHalMsgHeader header;
7277 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7278} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307279/*---------------------------------------------------------------------------
7280 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7281 + *-------------------------------------------------------------------------*/
7282typedef PACKED_PRE struct PACKED_POST
7283{
7284 /*STA Index*/
7285 tANI_U16 staIdx;
7286 /* if this is 1, self is initiator otherwise responder only*/
7287 tANI_U8 isOffchannelInitiator;
7288 /*TDLS off channel related params */
7289 tANI_U8 targetOperClass;
7290 tANI_U8 targetChannel;
7291 tANI_U8 secondaryChannelOffset;
7292 tANI_U8 reserved[32];
7293}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7294
7295typedef PACKED_PRE struct PACKED_POST
7296{
7297 tHalMsgHeader header;
7298 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7299} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7300/*---------------------------------------------------------------------------
7301 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7302 *-------------------------------------------------------------------------*/
7303
7304typedef PACKED_PRE struct PACKED_POST
7305{
7306 tANI_U32 status;
7307 /*STA Index*/
7308 tANI_U16 staIdx;
7309} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7310
7311typedef PACKED_PRE struct PACKED_POST
7312{
7313 tHalMsgHeader header;
7314 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7315} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7316
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307317
7318/*---------------------------------------------------------------------------
7319 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7320 *-------------------------------------------------------------------------*/
7321typedef PACKED_PRE struct PACKED_POST
7322{
7323 /*STA Index*/
7324 tANI_U16 staIdx;
7325}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7326
7327typedef PACKED_PRE struct PACKED_POST
7328{
7329 tHalMsgHeader header;
7330 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7331} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7332
7333/*---------------------------------------------------------------------------
7334 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7335 *-------------------------------------------------------------------------*/
7336
7337typedef PACKED_PRE struct PACKED_POST
7338{
7339 tANI_U32 status;
7340
7341 /*STA Index*/
7342 tANI_U16 staIdx;
7343} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7344
7345typedef PACKED_PRE struct PACKED_POST
7346{
7347 tHalMsgHeader header;
7348 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7349} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7350
7351/*---------------------------------------------------------------------------
7352 *WLAN_HAL_TDLS_IND
7353 *--------------------------------------------------------------------------*/
7354
7355typedef PACKED_PRE struct PACKED_POST
7356{
7357 tANI_U16 assocId;
7358 tANI_U16 staIdx;
7359 tANI_U16 status;
7360 tANI_U16 reasonCode;
7361}tTdlsIndParams, *tpTdlsIndParams;
7362
7363
7364typedef PACKED_PRE struct PACKED_POST
7365{
7366 tHalMsgHeader header;
7367 tTdlsIndParams tdlsIndParams;
7368}tTdlsIndMsg, *tpTdlsIndMsg;
7369
7370#endif
7371
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007372/*---------------------------------------------------------------------------
7373 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7374 *--------------------------------------------------------------------------*/
7375
7376typedef PACKED_PRE struct PACKED_POST
7377{
7378 tANI_U8 bssIdx;
7379 tANI_U8 staIdx;
7380 tSirMacAddr staAddr;
7381}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7382
7383
7384typedef PACKED_PRE struct PACKED_POST
7385{
7386 tHalMsgHeader header;
7387 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7388}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7389
7390
Kumar Anandea78e792013-10-10 23:47:01 -07007391/*********** Scan Offload Related Structures *************/
7392#define HAL_NUM_SCAN_SSID 10
7393#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007394
Kumar Anandea78e792013-10-10 23:47:01 -07007395/*
7396 * Enumetation to indicate scan type (active/passive)
7397 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007398typedef enum
7399{
Kumar Anandea78e792013-10-10 23:47:01 -07007400 eSIR_PASSIVE_SCAN,
7401 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7402} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007403
7404typedef PACKED_PRE struct PACKED_POST
7405{
Kumar Anandea78e792013-10-10 23:47:01 -07007406 tANI_U8 numBssid;
7407 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7408 tANI_U8 numSsid;
7409 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7410 tANI_BOOLEAN hiddenSsid;
7411 tSirMacAddr selfMacAddr;
7412 tSirBssType bssType;
7413 tSirScanType scanType;
7414 tANI_U32 minChannelTime;
7415 tANI_U32 maxChannelTime;
7416 tANI_BOOLEAN p2pSearch;
7417 tANI_U8 channelCount;
7418 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7419 tANI_U16 ieFieldLen;
7420 tANI_U8 ieField[1];
7421}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007422
7423/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007424 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007425 *-------------------------------------------------------------------------*/
7426typedef PACKED_PRE struct PACKED_POST
7427{
Kumar Anandf53016f2013-09-04 15:15:53 -07007428 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007429 tScanOffloadReqType scanOffloadParams;
7430} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007431
7432/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007433 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007434 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007435typedef PACKED_PRE struct PACKED_POST
7436{
7437 tHalMsgHeader header;
7438
7439 /*status of the request - just to indicate SO has acknowledged
7440 * * the request and will start scanning*/
7441 tANI_U32 status;
7442} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7443
7444/*---------------------------------------------------------------------------
7445 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7446 *-------------------------------------------------------------------------*/
7447typedef PACKED_PRE struct PACKED_POST
7448{
7449 tHalMsgHeader header;
7450} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7451
7452/*---------------------------------------------------------------------------
7453 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7454 *-------------------------------------------------------------------------*/
7455typedef PACKED_PRE struct PACKED_POST
7456{
7457 tHalMsgHeader header;
7458
7459 /*status of the request - just to indicate SO has acknowledged
7460 the request and will start scanning*/
7461 tANI_U32 status;
7462} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7463
7464/*
7465 * Enumetation of scan events indicated by firmware to the host
7466 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007467typedef enum
7468{
Kumar Anandea78e792013-10-10 23:47:01 -07007469 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7470 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7471 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7472 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7473 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7474 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7475 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7476 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7477 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7478} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007479
7480typedef PACKED_PRE struct PACKED_POST
7481{
Kumar Anandea78e792013-10-10 23:47:01 -07007482 tScanEventType event;
7483 tANI_U32 channel;
7484 tANI_U32 scanId;
7485} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007486
Kumar Anandea78e792013-10-10 23:47:01 -07007487/*---------------------------------------------------------------------------
7488 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7489 *-------------------------------------------------------------------------*/
7490typedef PACKED_PRE struct PACKED_POST
7491{
7492 tHalMsgHeader header;
7493 tScanOffloadEventInfo scanOffloadInd;
7494} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007495
Kumar Anandea78e792013-10-10 23:47:01 -07007496typedef PACKED_PRE struct PACKED_POST {
7497 /** primary 20 MHz channel frequency in mhz */
7498 tANI_U32 mhz;
7499 /** Center frequency 1 in MHz*/
7500 tANI_U32 band_center_freq1;
7501 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7502 tANI_U32 band_center_freq2;
7503 /* The first 26 bits are a bit mask to indicate any channel flags,
7504 (see WLAN_HAL_CHAN_FLAG*)
7505 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7506 tANI_U32 channel_info;
7507 /** contains min power, max power, reg power and reg class id. */
7508 tANI_U32 reg_info_1;
7509 /** contains antennamax */
7510 tANI_U32 reg_info_2;
7511} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007512
Kumar Anandf53016f2013-09-04 15:15:53 -07007513
Kumar Anandea78e792013-10-10 23:47:01 -07007514typedef enum {
7515 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7516 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7517 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7518 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7519 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7520 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7521 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7522 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7523 WLAN_HAL_MODE_11AC_VHT20 = 8,
7524 WLAN_HAL_MODE_11AC_VHT40 = 9,
7525 WLAN_HAL_MODE_11AC_VHT80 = 10,
7526 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7527 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7528 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7529 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007530
Kumar Anandea78e792013-10-10 23:47:01 -07007531} tChannelPhyModeType;
7532
7533#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7534#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7535#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7536#define WLAN_HAL_CHAN_AP_DISABLED 9
7537#define WLAN_HAL_CHAN_FLAG_DFS 10
7538#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7539#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007540#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7541
7542#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007543 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007544 } while(0)
7545
7546#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007547 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007548
7549#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7550 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7551 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7552 } while(0)
7553#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7554
7555#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7556 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7557 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7558 } while(0)
7559#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7560
7561#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7562 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7563 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7564 } while(0)
7565#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7566#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7567 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7568 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7569 } while(0)
7570#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7571
7572#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7573 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7574 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7575 } while(0)
7576#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7577
7578#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7579 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7580 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7581 } while(0)
7582#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 -07007583
7584typedef PACKED_PRE struct PACKED_POST
7585{
7586 tANI_U8 numChan;
7587 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7588} tUpdateChannelReqType;
7589
7590/*---------------------------------------------------------------------------
7591 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7592 *-------------------------------------------------------------------------*/
7593typedef PACKED_PRE struct PACKED_POST
7594{
7595 tHalMsgHeader header;
7596 tUpdateChannelReqType updateChannelParams;
7597} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7598
7599/*---------------------------------------------------------------------------
7600 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7601 *-------------------------------------------------------------------------*/
7602typedef PACKED_PRE struct PACKED_POST
7603{
7604 tHalMsgHeader header;
7605
7606 /*status of the request - just to indicate SO has acknowledged
7607 * * the request and will start scanning*/
7608 tANI_U32 status;
7609} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7610
7611
7612/*---------------------------------------------------------------------------
7613* WLAN_HAL_TX_FAIL_IND
7614*--------------------------------------------------------------------------*/
7615// Northbound indication from FW to host on weak link detection
7616typedef PACKED_PRE struct PACKED_POST
7617{
7618 // Sequence number increases by 1 whenever the device driver
7619 // sends a notification event. This is cleared as 0 when the
7620 // JOIN IBSS commamd is issued
7621 tANI_U16 seqNo;
7622 tANI_U16 staId;
7623 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7624} tHalTXFailIndParams, *tpHalTXFailIndParams;
7625
7626typedef PACKED_PRE struct PACKED_POST
7627{
7628 tHalMsgHeader header;
7629 tHalTXFailIndParams txFailIndParams;
7630} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7631
7632/*---------------------------------------------------------------------------
7633* WLAN_HAL_TX_FAIL_MONITOR_IND
7634*--------------------------------------------------------------------------*/
7635// Southbound message from Host to monitor the Tx failures
7636typedef PACKED_PRE struct PACKED_POST
7637{
7638 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7639 tANI_U8 tx_fail_count;
7640} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7641
7642typedef PACKED_PRE struct PACKED_POST
7643{
7644 tHalMsgHeader header;
7645 tTXFailMonitorInfo txFailMonitor;
7646} tTXFailMonitorInd, *tpTXFailMonitorInd;
7647
7648/*---------------------------------------------------------------------------
7649* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7650*--------------------------------------------------------------------------*/
7651typedef PACKED_PRE struct PACKED_POST
7652{
7653 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7654 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7655} tDestIpNextHopMacPair;
7656
7657typedef PACKED_PRE struct PACKED_POST
7658{
7659 tANI_U8 numEntries;
7660 tDestIpNextHopMacPair destIpMacPair[1];
7661} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007662
7663typedef PACKED_PRE struct PACKED_POST
7664{
7665 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007666 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7667} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007668
Kumar Anandf53016f2013-09-04 15:15:53 -07007669/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007670 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7671 *-------------------------------------------------------------------------*/
7672typedef enum
7673{
7674 /* reassociation is done, but couldn't finish security handshake */
7675 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7676
7677 /* roam has successfully completed by firmware */
7678 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7679
7680 /* UNKONW error */
7681 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7682}tHalRoamOffloadRoamAuthStatus;
7683
7684typedef enum
7685{
7686 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7687 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7688 WLAN_HAL_ROAM_TYPE_OKC,
7689 WLAN_HAL_ROAM_TYPE_CCKM,
7690 WLAN_HAL_ROAM_TYPE_FT,
7691 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7692} tHalRoamOffloadType;
7693
7694typedef PACKED_PRE struct PACKED_POST
7695{
7696 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7697 tANI_U16 beaconProbeRespOffset;
7698
7699 /* Length of beaon / probe resp. */
7700 tANI_U16 beaconProbeRespLength;
7701
7702 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7703 tANI_U16 reassocRespOffset;
7704
7705 /* Length of reassoc resp. */
7706 tANI_U16 reassocRespLength;
7707
7708 /* 0 for probe response frame, 1 for beacon frame, */
7709 tANI_U8 isBeacon;
7710
7711 /* staIdx of old AP */
7712 tANI_U8 oldStaIdx;
7713
7714 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7715 tConfigBssRspParams */
7716 /* bssIdx of new roamed AP */
7717 tANI_U8 bssIdx;
7718
7719 /* DPU descriptor index for PTK */
7720 tANI_U8 dpuDescIndx;
7721
7722 /* PTK DPU signature */
7723 tANI_U8 ucastDpuSignature;
7724
7725 /* DPU descriptor index for GTK*/
7726 tANI_U8 bcastDpuDescIndx;
7727
7728 /* GTK DPU signature */
7729 tANI_U8 bcastDpuSignature;
7730
7731 /*DPU descriptor for IGTK*/
7732 tANI_U8 mgmtDpuDescIndx;
7733
7734 /* IGTK DPU signature */
7735 tANI_U8 mgmtDpuSignature;
7736
7737 /* Station Index for BSS entry*/
7738 tANI_U8 staIdx;
7739
7740 /* Self station index for this BSS */
7741 tANI_U8 selfStaIdx;
7742
7743 /* Bcast station for buffering bcast frames in AP role */
7744 tANI_U8 bcastStaIdx;
7745
7746 /* MAC address of roamed AP */
7747 tSirMacAddr bssid;
7748
7749 /*HAL fills in the tx power used for mgmt frames in this field. */
7750 tANI_S8 txMgmtPower;
7751
7752 /* success or failure */
7753 tHalRoamOffloadRoamAuthStatus authStatus;
7754
7755 /* TODO : add more info as needed */
7756
7757 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7758 /* Beacon or probe resp from new AP. This is in 802.11
7759 frame format starting with MAC header. */
7760 /* Up to beaconProbeRespLength */
7761
7762 /* reassocRespOffset points to starting of reassoc resp frame */
7763 /* Reassoc resp from new AP. This is in 802.11
7764 frame format starting with MAC header. */
7765 /* Up to reassocRespLength */
7766
7767} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7768
7769
7770typedef PACKED_PRE struct PACKED_POST
7771{
7772 tHalMsgHeader header;
7773 tHalRoamOffloadSynchIndParams params;
7774} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7775
7776/*---------------------------------------------------------------------------
7777 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7778 *-------------------------------------------------------------------------*/
7779typedef PACKED_PRE struct PACKED_POST
7780{
7781 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7782 tSirMacAddr bssid;
7783} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7784
7785typedef PACKED_PRE struct PACKED_POST
7786{
7787 tHalMsgHeader header;
7788 tHalRoamOffloadSynchCnfParams params;
7789} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7790
7791
7792/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007793 WLAN_HAL_RATE_UPDATE_IND
7794 *-------------------------------------------------------------------------*/
7795
7796typedef PACKED_PRE struct PACKED_POST
7797{
7798 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7799 tANI_S32 ucastDataRate; //unit Mbpsx10
7800
7801 /* TX flag to differentiate between HT20, HT40 etc */
7802 tTxRateInfoFlags ucastDataRateTxFlag;
7803
7804 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7805 tSirMacAddr bssid;
7806
7807 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7808 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7809
7810 /* TX flag to differentiate between HT20, HT40 etc */
7811 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7812
7813 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7814 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7815
7816 /* TX flag to differentiate between HT20, HT40 etc */
7817 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7818
7819 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7820 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7821
7822 /* TX flag to differentiate between HT20, HT40 etc */
7823 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7824
7825} tHalRateUpdateParams, *tpHalRateUpdateParams;
7826
7827typedef PACKED_PRE struct PACKED_POST
7828{
7829 tHalMsgHeader header;
7830 tHalRateUpdateParams halRateUpdateParams;
7831} tHalRateUpdateInd, * tpHalRateUpdateInd;
7832
7833/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307834 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7835 *-------------------------------------------------------------------------*/
7836
Abhishek Singhe0443152015-06-18 10:07:43 +05307837#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307838
7839typedef PACKED_PRE struct PACKED_POST
7840{
7841 tANI_U32 startFreq;
7842 tANI_U32 endFreq;
7843} tHalFreqRange, *tpHalFreqRange;
7844
7845typedef PACKED_PRE struct PACKED_POST
7846{
7847 tANI_U32 avoidCnt;
7848 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7849} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7850
7851typedef PACKED_PRE struct PACKED_POST
7852{
7853 tHalMsgHeader header;
7854 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7855} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7856
7857/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307858 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007859 *-------------------------------------------------------------------------*/
7860
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307861typedef enum
7862{
7863 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7864 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7865 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7866}tHT40OBssScanCmdType;
7867
7868typedef PACKED_PRE struct PACKED_POST
7869{
7870 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007871
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307872 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007873 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7874 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7875 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7876 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7877 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7878 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7879 tANI_U16 OBSSScanActivityThreshold;
7880
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307881 tANI_U8 selfStaIdx;
7882 tANI_U8 bssIdx;
7883 tANI_U8 fortyMHZIntolerent;
7884 tANI_U8 channelCount;
7885 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7886 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007887
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307888 tANI_U16 ieFieldLen;
7889 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7890}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7891
7892typedef PACKED_PRE struct PACKED_POST
7893{
7894 tHalMsgHeader header;
7895 tHT40ObssScanIndType scanHT40ObssScanParams;
7896} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7897
7898/*---------------------------------------------------------------------------
7899 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7900 *-------------------------------------------------------------------------*/
7901typedef PACKED_PRE struct PACKED_POST
7902{
7903 tHalMsgHeader header;
7904 tANI_U8 bssIdx;
7905} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307906
7907/*---------------------------------------------------------------------------
7908 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7909 *-------------------------------------------------------------------------*/
7910
7911typedef PACKED_PRE struct PACKED_POST
7912{
7913 /* Valid BSS Idx for beacon miss rate */
7914 tANI_U8 bssIdx;
7915
7916}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7917
7918typedef PACKED_PRE struct PACKED_POST
7919{
7920 tHalMsgHeader header;
7921 tHalBcnMissRateReqParams bcnMissRateReqParams;
7922} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7923
7924/*---------------------------------------------------------------------------
7925 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7926 *-------------------------------------------------------------------------*/
7927
7928typedef PACKED_PRE struct PACKED_POST
7929{
7930 tANI_U32 status;
7931 tANI_U32 bcnMissCnt;
7932}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7933
7934typedef PACKED_PRE struct PACKED_POST
7935{
7936 tHalMsgHeader header;
7937 tHalBcnMissRateRspParams bcnMissRateRspParams;
7938}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7939
Sunil Dutt8377a382014-05-26 21:18:04 +05307940/*--------------------------------------------------------------------------
7941* WLAN_HAL_LL_SET_STATS_REQ
7942*---------------------------------------------------------------------------*/
7943
7944typedef PACKED_PRE struct PACKED_POST
7945{
7946 tANI_U32 req_id;
7947 tANI_U8 sta_id;
7948 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7949 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7950} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7951
7952typedef PACKED_PRE struct PACKED_POST
7953{
7954 tHalMsgHeader header;
7955 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7956} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7957
7958/*---------------------------------------------------------------------------
7959 WLAN_HAL_LL_SET_STATS_RSP
7960---------------------------------------------------------------------------*/
7961
7962typedef PACKED_PRE struct PACKED_POST
7963{
7964 tANI_U32 status;
7965 tANI_U32 resp_id;
7966 tANI_U8 iface_id;
7967} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7968
7969typedef PACKED_PRE struct PACKED_POST
7970{
7971 tHalMsgHeader header;
7972 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7973} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7974
7975/*---------------------------------------------------------------------------
7976 WLAN_HAL_LL_GET_STATS_REQ
7977---------------------------------------------------------------------------*/
7978
7979typedef PACKED_PRE struct PACKED_POST
7980{
7981 tANI_U32 req_id;
7982 tANI_U8 sta_id;
7983 tANI_U32 param_id_mask;
7984} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7985
7986typedef PACKED_PRE struct PACKED_POST
7987{
7988 tHalMsgHeader header;
7989 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7990} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7991
7992/*---------------------------------------------------------------------------
7993 WLAN_HAL_LL_GET_STATS_RSP
7994---------------------------------------------------------------------------*/
7995typedef PACKED_PRE struct PACKED_POST
7996{
7997 tANI_U32 status;
7998 tANI_U32 resp_id;
7999 tANI_U8 iface_id;
8000} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
8001
8002typedef PACKED_PRE struct PACKED_POST
8003{
8004 tHalMsgHeader header;
8005 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
8006} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
8007
8008/*---------------------------------------------------------------------------
8009 WLAN_HAL_LL_CLEAR_STATS_REQ
8010---------------------------------------------------------------------------*/
8011typedef PACKED_PRE struct PACKED_POST
8012{
8013 tANI_U32 req_id;
8014 tANI_U8 sta_id;
8015 tANI_U32 stats_clear_req_mask;
8016 tANI_U8 stop_req;
8017} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8018
8019typedef PACKED_PRE struct PACKED_POST
8020{
8021 tHalMsgHeader header;
8022 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8023} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8024
8025/*---------------------------------------------------------------------------
8026 WLAN_HAL_LL_CLEAR_STATS_RSP
8027---------------------------------------------------------------------------*/
8028typedef PACKED_PRE struct PACKED_POST
8029{
8030 tANI_U32 status;
8031 tANI_U8 sta_id;
8032 tANI_U32 resp_id;
8033 tANI_U32 stats_clear_rsp_mask;
8034 tANI_U8 stop_req_status;
8035} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8036
8037typedef PACKED_PRE struct PACKED_POST
8038{
8039 tHalMsgHeader header;
8040 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8041} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8042
8043/*---------------------------------------------------------------------------
8044 WLAN_HAL_LL_NOTIFY_STATS
8045---------------------------------------------------------------------------*/
8046
8047typedef PACKED_PRE struct PACKED_POST
8048{
8049 tHalMsgHeader header;
8050 tANI_U32 param_id;
8051 tANI_U8 iface_id;
8052 tANI_U32 resp_id;
8053 tANI_U32 more_result_to_follow;
8054 tANI_U8 result[1];
8055} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008056
Dino Mycle108eff22014-06-10 09:36:44 +05308057/*---------------------------------------------------------------------------
8058 * WLAN_HAL_EXT_SCAN_START_REQ
8059 *-------------------------------------------------------------------------*/
8060
Dino Mycle8afbac12014-07-04 22:06:17 +05308061typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308062{
8063 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8064 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8065 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8066 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8067 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8068 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8069 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308070 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308071} tExtScanChannelBandMask;
8072
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308073#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8074#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8075
8076#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8077
8078#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8079#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8080#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8081#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8082
Dino Mycle108eff22014-06-10 09:36:44 +05308083typedef PACKED_PRE struct PACKED_POST
8084{
8085 tANI_U32 channel; // frequency
8086 tANI_U32 dwellTimeMs; // dwell time hint
8087 tANI_U8 passive; // 0 => active,
8088 // 1 => passive scan; ignored for DFS
8089}tExtScanChannelSpec, *tpExtScanChannelSpec;
8090
8091typedef PACKED_PRE struct PACKED_POST
8092 {
8093 /* bucket index, 0 based */
8094 tANI_U8 bucketId;
8095 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8096 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308097 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308098 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308099 /* This is a bit field; which defines following bits -
8100 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8101 is % full
8102 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8103 after scan
8104 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8105 (beacons/probe responses + IEs) in real time to HAL, in addition
8106 to completion events
8107 Note: To keep backward compatibility, fire completion events
8108 regardless of REPORT_EVENTS_EACH_SCAN.
8109 * REPORT_EVENTS_NO_BATCH => controls batching,
8110 0 => batching, 1 => no batching
8111 */
Dino Mycle108eff22014-06-10 09:36:44 +05308112 tANI_U8 reportEvents;
8113 /* number of channels */
8114 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308115 // new Exponential Scan params
8116 tANI_U32 max_period;
8117 tANI_U32 exponent;
8118 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308119 /* if channels to scan. In the TLV channelList[] */
8120 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8121}tExtScanBucketData, *tpExtScanBucketData;
8122
8123typedef PACKED_PRE struct PACKED_POST
8124{
8125 tANI_U32 requestId;
8126 tANI_U8 sessionId;
8127 /* Base period (milliseconds) used by scan buckets to define periodicity
8128 of the scans */
8129 tANI_U32 basePeriod;
8130 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8131 (keep the most significant, i.e. stronger RSSI) */
8132 tANI_U32 maxApPerScan;
8133 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308134 tANI_U32 reportThresholdPercent;
8135 /* in number of scans, wake up AP after these many scans */
8136 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308137 /* This will be off channel minimum time */
8138 tANI_U16 neighborScanChannelMinTime;
8139 /* This will be out off channel max time */
8140 tANI_U16 neighborScanChannelMaxTime;
8141 /* This will be the home (BSS) channel time */
8142 tANI_U16 homeAwayTime;
8143 /* number of buckets (maximum 8) */
8144 tANI_U8 numBuckets;
8145 /* Buckets data */
8146 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8147} tHalExtScanStartReq, *tpHalExtScanStartReq;
8148
8149typedef PACKED_PRE struct PACKED_POST
8150{
8151 tHalMsgHeader header;
8152 tHalExtScanStartReq extScanStartReq;
8153}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8154
8155/*---------------------------------------------------------------------------
8156 * WLAN_HAL_EXT_SCAN_START_RSP
8157 *-------------------------------------------------------------------------*/
8158
8159typedef PACKED_PRE struct PACKED_POST
8160{
8161 tANI_U32 requestId;
8162 tANI_U32 status;
8163}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8164
8165typedef PACKED_PRE struct PACKED_POST
8166{
8167 tHalMsgHeader header;
8168 tHalExtScanStartRsp extScanStartRsp;
8169}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8170
8171/*---------------------------------------------------------------------------
8172 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8173 *-------------------------------------------------------------------------*/
8174
8175typedef PACKED_PRE struct PACKED_POST
8176{
8177 tANI_U32 requestId;
8178 tANI_U8 sessionId;
8179}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8180
8181typedef PACKED_PRE struct PACKED_POST
8182{
8183 tHalMsgHeader header;
8184 tHalExtScanGetCapReq extScanGetCapReq;
8185}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8186
8187/*---------------------------------------------------------------------------
8188 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8189 *-------------------------------------------------------------------------*/
8190
8191typedef PACKED_PRE struct PACKED_POST
8192{
8193 tANI_U32 requestId;
8194 tANI_U32 status;
8195
8196 tANI_U32 scanCacheSize;
8197 tANI_U32 scanBuckets;
8198 tANI_U32 maxApPerScan;
8199 tANI_U32 maxRssiSampleSize;
8200 tANI_U32 maxScanReportingThreshold;
8201
8202 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308203 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308204
8205 tANI_U32 maxBssidHistoryEntries;
8206}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8207
8208typedef PACKED_PRE struct PACKED_POST
8209{
8210 tHalMsgHeader header;
8211 tHalExtScanGetCapRsp extScanGetCapRsp;
8212}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8213
8214/*---------------------------------------------------------------------------
8215 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8216 *-------------------------------------------------------------------------*/
8217
8218typedef PACKED_PRE struct PACKED_POST
8219{
8220 tANI_U32 requestId;
8221 tANI_U8 sessionId;
8222 /*
8223 * 1 return cached results and flush it
8224 * 0 return cached results and do not flush
8225 */
8226 tANI_BOOLEAN flush;
8227}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8228
8229typedef PACKED_PRE struct PACKED_POST
8230{
8231 tHalMsgHeader header;
8232 tHalExtScanGetScanReq getScanReq;
8233}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8234
8235/*---------------------------------------------------------------------------
8236 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8237 *-------------------------------------------------------------------------*/
8238
8239typedef PACKED_PRE struct PACKED_POST
8240{
8241 tANI_U32 requestId;
8242 tANI_U32 status;
8243}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8244
8245typedef PACKED_PRE struct PACKED_POST
8246{
8247 tHalMsgHeader header;
8248 tHalExtScanGetScanRsp getScanRsp;
8249}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8250
8251/*---------------------------------------------------------------------------
8252 * WLAN_HAL_EXT_SCAN_RESULT_IND
8253 *-------------------------------------------------------------------------*/
8254
8255typedef PACKED_PRE struct PACKED_POST
8256{
8257 tANI_U64 ts; // time of discovery
8258 tANI_U8 ssid[32+1]; // null terminated SSID
8259 tSirMacAddr bssid; // BSSID
8260 tANI_U32 channel; // channel frequency in MHz
8261 tANI_S32 rssi; // RSSI in dBm
8262 tANI_U32 rtt; // RTT in nanoseconds - not expected
8263 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308264 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308265 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308266 tANI_U16 ieLength; // size of the ie_data blob
8267 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308268} tHalExtScanResultParams, *tpHalExtScanResultParams;
8269
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308270/* Get the GSCAN cached scan results */
8271typedef struct {
8272 tANI_U16 scan_id; // a unique identifier for the scan unit
8273 tANI_U8 flags; // a bitmask with additional
8274 // information about scan
8275 tANI_U8 num_results; // number of bssids retrieved by the scan
8276 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8277 // scan results - one for each bssid
8278} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8279
Dino Mycle108eff22014-06-10 09:36:44 +05308280typedef PACKED_PRE struct PACKED_POST
8281{
8282 tHalMsgHeader header;
8283 tANI_U32 requestId;
8284 tANI_U32 scanResultSize;
8285 tANI_BOOLEAN moreData;
8286 tANI_U8 extScanResult[1];
8287}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8288
8289/*---------------------------------------------------------------------------
8290 * WLAN_HAL_EXT_SCAN_STOP_REQ
8291 *-------------------------------------------------------------------------*/
8292
8293typedef PACKED_PRE struct PACKED_POST
8294{
8295 tANI_U32 requestId;
8296 tANI_U8 sessionId;
8297}tHalExtScanStopReq, *tpHalExtScanStopReq;
8298
8299typedef PACKED_PRE struct PACKED_POST
8300{
8301 tHalMsgHeader header;
8302 tHalExtScanStopReq extScanStopReq;
8303}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8304
8305/*---------------------------------------------------------------------------
8306 * WLAN_HAL_EXT_SCAN_STOP_RSP
8307 *-------------------------------------------------------------------------*/
8308
8309typedef PACKED_PRE struct PACKED_POST
8310{
8311 tANI_U32 requestId;
8312 tANI_U32 status;
8313}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8314
8315typedef PACKED_PRE struct PACKED_POST
8316{
8317 tHalMsgHeader header;
8318 tHalExtScanStopRsp extScanStopRsp;
8319}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8320
8321/*---------------------------------------------------------------------------
8322 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8323 *-------------------------------------------------------------------------*/
8324
Dino Mycle8afbac12014-07-04 22:06:17 +05308325typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308326{
8327 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8328 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308329 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308330} tHalExtScanProgressEventType;
8331
8332typedef PACKED_PRE struct PACKED_POST
8333{
8334 tANI_U32 requestId;
8335 tANI_U32 status;
8336 tHalExtScanProgressEventType extScanEventType;
8337}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8338
8339typedef PACKED_PRE struct PACKED_POST
8340{
8341 tHalMsgHeader header;
8342 tHalExtScanProgressInd extScanProgressInd;
8343}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8344
8345/*---------------------------------------------------------------------------
8346 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8347 *-------------------------------------------------------------------------*/
8348
8349typedef PACKED_PRE struct PACKED_POST
8350{
8351 tANI_U32 requestId;
8352 tANI_U32 numOfScanResAvailable;
8353}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8354
8355typedef PACKED_PRE struct PACKED_POST
8356{
8357 tHalMsgHeader header;
8358 tHalExtScanResAvailableInd extScanResAvailableInd;
8359}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8360
Dino Mycle108eff22014-06-10 09:36:44 +05308361typedef PACKED_PRE struct PACKED_POST
8362{
8363 /* AP BSSID */
8364 tSirMacAddr bssid;
8365 /* low threshold - used in L for significant_change - not used in L for
8366 hotlist*/
8367 tANI_S32 lowRssiThreshold;
8368 /* high threshold - used in L for significant rssi - used in L for hotlist */
8369 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308370} tApThresholdParams, *tpApThresholdParams;
8371
Dino Mycle108eff22014-06-10 09:36:44 +05308372/*---------------------------------------------------------------------------
8373 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8374 *-------------------------------------------------------------------------*/
8375
8376typedef PACKED_PRE struct PACKED_POST
8377{
8378 tANI_U32 requestId;
8379 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308380 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308381 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308382 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308383 // hotlist APs
8384 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8385} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8386
8387typedef PACKED_PRE struct PACKED_POST
8388{
8389 tHalMsgHeader header;
8390 tHalBssidHotlistSetReq bssidHotlistSetReq;
8391}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8392
8393/*---------------------------------------------------------------------------
8394 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8395 *-------------------------------------------------------------------------*/
8396
8397typedef PACKED_PRE struct PACKED_POST
8398{
8399 tANI_U32 requestId;
8400 tANI_U32 status;
8401}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8402
8403typedef PACKED_PRE struct PACKED_POST
8404{
8405 tHalMsgHeader header;
8406 tHalHotlistSetRsp hotlistSetRsp;
8407}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8408
8409/*---------------------------------------------------------------------------
8410 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8411 *-------------------------------------------------------------------------*/
8412
8413typedef PACKED_PRE struct PACKED_POST
8414{
8415 tANI_U32 requestId;
8416}tHalHotlistResetReq, *tpHalHotlistResetReq;
8417
8418typedef PACKED_PRE struct PACKED_POST
8419{
8420 tHalMsgHeader header;
8421 tHalHotlistResetReq hotlistResetReq;
8422}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8423
8424/*---------------------------------------------------------------------------
8425 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8426 *-------------------------------------------------------------------------*/
8427
8428typedef PACKED_PRE struct PACKED_POST
8429{
8430 tANI_U32 requestId;
8431 tANI_U32 status;
8432}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8433
8434typedef PACKED_PRE struct PACKED_POST
8435{
8436 tHalMsgHeader header;
8437 tHalHotlistResetRsp hotlistResetRsp;
8438}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8439
8440/*---------------------------------------------------------------------------
8441 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8442 *-------------------------------------------------------------------------*/
8443
8444typedef PACKED_PRE struct PACKED_POST
8445{
8446 tHalMsgHeader header;
8447 tANI_U32 requestId;
8448 tANI_U32 numHotlistBss;
8449 tANI_BOOLEAN moreData;
8450 tANI_U8 bssHotlist[1];
8451}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8452
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308453/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308454 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8455 *-------------------------------------------------------------------------*/
8456
8457typedef PACKED_PRE struct PACKED_POST
8458{
8459 /* SSID */
8460 char ssid [32+1];
8461 /* low threshold - used in L for significant_change - not used in L for
8462 hotlist*/
8463 tANI_S32 lowRssiThreshold;
8464 /* high threshold - used in L for significant rssi - used in L for hotlist */
8465 tANI_S32 highRssiThreshold;
8466 /* band */
8467 tANI_U32 band;
8468 } tSsidThresholdParams, *tpSsidThresholdParams;
8469
8470
8471typedef PACKED_PRE struct PACKED_POST
8472{
8473 tANI_U32 requestId;
8474 tANI_U8 sessionId;
8475 tANI_U32 lostSsidSampleSize;
8476 // number of hotlist SSIDs
8477 tANI_U32 numSsid;
8478 // hotlist SSIDs
8479 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8480} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8481
8482typedef PACKED_PRE struct PACKED_POST
8483{
8484 tHalMsgHeader header;
8485 tHalSsidHotlistSetReq ssidHotlistSetReq;
8486}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8487
8488/*---------------------------------------------------------------------------
8489 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8490 *-------------------------------------------------------------------------*/
8491typedef PACKED_PRE struct PACKED_POST
8492{
8493 tANI_U32 requestId;
8494 tANI_U32 status;
8495}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8496
8497typedef PACKED_PRE struct PACKED_POST
8498{
8499 tHalMsgHeader header;
8500 tHalSsidHotlistSetRsp hotlistSetRsp;
8501}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8502
8503/*---------------------------------------------------------------------------
8504 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8505 *-------------------------------------------------------------------------*/
8506
8507typedef PACKED_PRE struct PACKED_POST
8508{
8509 tANI_U32 requestId;
8510}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8511
8512typedef PACKED_PRE struct PACKED_POST
8513{
8514 tHalMsgHeader header;
8515 tHalSsidHotlistResetReq hotlistResetReq;
8516}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8517
8518/*---------------------------------------------------------------------------
8519 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8520 *-------------------------------------------------------------------------*/
8521
8522typedef PACKED_PRE struct PACKED_POST
8523{
8524 tANI_U32 requestId;
8525 tANI_U32 status;
8526}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8527
8528typedef PACKED_PRE struct PACKED_POST
8529{
8530 tHalMsgHeader header;
8531 tHalSsidHotlistResetRsp hotlistResetRsp;
8532}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8533
8534/*---------------------------------------------------------------------------
8535 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8536 *-------------------------------------------------------------------------*/
8537
8538typedef PACKED_PRE struct PACKED_POST
8539{
8540 tHalMsgHeader header;
8541 tANI_U32 requestId;
8542 tANI_BOOLEAN ssid_found;
8543 tANI_U32 numHotlistSsid;
8544 tANI_BOOLEAN moreData;
8545 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8546}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8547
8548/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308549 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8550 *-------------------------------------------------------------------------*/
8551
8552typedef PACKED_PRE struct PACKED_POST
8553{
8554 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8555 tANI_U32 reserved; //reserved for future use
8556}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8557
8558typedef PACKED_PRE struct PACKED_POST
8559{
8560 tHalMsgHeader header;
8561 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8562}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8563
8564/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308565 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8566 *--------------------------------------------------------------------------*/
8567typedef PACKED_PRE struct PACKED_POST
8568{
8569 tANI_U8 macAddr[6];
8570 tANI_U32 reserved1;
8571 tANI_U32 reserved2;
8572}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8573
8574typedef PACKED_PRE struct PACKED_POST
8575{
8576 tHalMsgHeader header;
8577 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8578} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8579
8580/*---------------------------------------------------------------------------
8581* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8582*-------------------------------------------------------------------------*/
8583
8584typedef PACKED_PRE struct PACKED_POST
8585{
8586 tANI_U32 status;
8587 tANI_U32 reserved1;
8588} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8589
8590typedef PACKED_PRE struct PACKED_POST
8591{
8592 tHalMsgHeader header;
8593 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8594} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308595/*---------------------------------------------------------------------------
8596 *WLAN_HAL_GET_FRAME_LOG_REQ
8597 *--------------------------------------------------------------------------*/
8598typedef PACKED_PRE struct PACKED_POST
8599{
8600 tANI_U8 flags;
8601}tGetFrameLogReqType, * tpGetFrameLogReqType;
8602
8603typedef PACKED_PRE struct PACKED_POST
8604{
8605 tHalMsgHeader header;
8606 tGetFrameLogReqType tGetFrameLogReqParams;
8607} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8608
8609/*---------------------------------------------------------------------------
8610 * WLAN_HAL_GET_FRAME_LOG_RSP
8611 *-------------------------------------------------------------------------*/
8612typedef PACKED_PRE struct PACKED_POST
8613{
8614 tANI_U32 status;
8615} tGetFrameLogResp, * tpGetFrameLogResp;
8616
8617typedef PACKED_PRE struct PACKED_POST
8618{
8619 tHalMsgHeader header;
8620 tGetFrameLogResp tGetFrameLogRespParams;
8621} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8622
8623/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308624 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8625 *-------------------------------------------------------------------------*/
8626typedef PACKED_PRE struct PACKED_POST
8627{
8628 tANI_U32 reasonCode;
8629}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8630
8631typedef PACKED_PRE struct PACKED_POST
8632{
8633 tHalMsgHeader header;
8634 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8635}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8636
8637/*---------------------------------------------------------------------------
8638 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8639 *-------------------------------------------------------------------------*/
8640typedef PACKED_PRE struct PACKED_POST
8641{ tANI_U32 status;
8642}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8643
8644typedef PACKED_PRE struct PACKED_POST
8645{
8646 tHalMsgHeader header;
8647 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8648}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8649
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308650/*---------------------------------------------------------------------------
8651 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8652 *-------------------------------------------------------------------------*/
8653typedef PACKED_PRE struct PACKED_POST
8654{
8655 tANI_U8 bssIdx;
8656 tANI_U8 rssi;
8657 tSirMacAddr selfMacAddr;
8658 tANI_U32 linkFlCnt;
8659 tANI_U32 linkFlTx;
8660 tANI_U32 lastDataRate;
8661 tANI_U32 rsvd1;
8662 tANI_U32 rsvd2;
8663}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8664
8665typedef PACKED_PRE struct PACKED_POST
8666{
8667 tHalMsgHeader header;
8668 tHalLostLinkParametersIndParams lostLinkParameters;
8669}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308670
8671
8672/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308673 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308674 *--------------------------------------------------------------------------*/
8675typedef PACKED_PRE struct PACKED_POST
8676{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308677 /* BIT0 - enable frame logging
8678 * BIT1 - enableBMUHWtracing
8679 * BIT2 - enableQXDMlogging
8680 * BIT3 - enableUElogDpuTxp
8681 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308682 tANI_U8 enableFlag;
8683 tANI_U8 frameType;
8684 tANI_U8 frameSize;
8685 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308686 /* Host mem address to be used as logmailbox */
8687 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308688 /* firmware will wakeup the host to send logs always */
8689 tANI_U8 continuousFrameLogging;
8690 /* Logging mail box version */
8691 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308692 /* Max ring size in firmware to log msgs when host is suspended state */
8693 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308694 /* when firmware log reaches this threshold and
8695 * if host is awake it will push the logs.
8696 */
8697 tANI_U8 minLogBuffSize;
8698 /* Reserved for future purpose */
8699 tANI_U32 reserved0;
8700 tANI_U32 reserved1;
8701 tANI_U32 reserved2;
8702}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308703
8704typedef PACKED_PRE struct PACKED_POST
8705{
8706 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308707 tFWLoggingInitReqType tFWLoggingInitReqParams;
8708} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308709
8710/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308711 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308712 *-------------------------------------------------------------------------*/
8713typedef PACKED_PRE struct PACKED_POST
8714{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308715 tANI_U32 status;
8716 /* FW mail box address */
8717 tANI_U64 logMailBoxAddr;
8718 /* Logging mail box version */
8719 tANI_U8 logMailBoxVer;
8720 /* Qshrink is enabled */
8721 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05308722 /* fw_dump_max_size is used to tell fwr mem dump size */
8723 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308724 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308725 tANI_U32 reserved1;
8726 tANI_U32 reserved2;
8727} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308728
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05308729
8730typedef PACKED_PRE struct PACKED_POST {
8731 tANI_U32 request_id;
8732 tSirMacAddr bssId;
8733 tANI_S8 min_rssi;
8734 tANI_S8 max_rssi;
8735} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
8736
8737typedef PACKED_PRE struct PACKED_POST
8738{
8739 tHalMsgHeader header;
8740 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
8741}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
8742
8743//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
8744typedef PACKED_PRE struct PACKED_POST {
8745 tANI_U32 request_id;
8746 tANI_U32 status;
8747} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
8748
8749typedef PACKED_PRE struct PACKED_POST
8750{
8751 tHalMsgHeader header;
8752 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
8753}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
8754
8755//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
8756typedef PACKED_PRE struct PACKED_POST
8757{
8758 tANI_U32 request_id;
8759 tSirMacAddr bssId;
8760 tANI_S8 rssi;
8761} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
8762
8763typedef PACKED_PRE struct PACKED_POST
8764{
8765 tHalMsgHeader header;
8766 tHalRssiMonitorIndParams RssiMonitorIndParams;
8767}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
8768
8769
8770//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
8771typedef PACKED_PRE struct PACKED_POST {
8772 tANI_U32 request_id;
8773 tSirMacAddr bssId;
8774} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
8775
8776typedef PACKED_PRE struct PACKED_POST
8777{
8778 tHalMsgHeader header;
8779 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
8780}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
8781
8782//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
8783typedef PACKED_PRE struct PACKED_POST {
8784 tANI_U32 request_id;
8785 tANI_U32 status;
8786} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
8787
8788typedef PACKED_PRE struct PACKED_POST
8789{
8790 tHalMsgHeader header;
8791 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
8792}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
8793
8794
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308795typedef PACKED_PRE struct PACKED_POST
8796{
8797 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308798 tFWLoggingInitResp tFWLoggingInitRespParams;
8799} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
8800
8801/*---------------------------------------------------------------------------
8802 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
8803 *-------------------------------------------------------------------------*/
8804typedef PACKED_PRE struct PACKED_POST
8805{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05308806 tANI_U16 status;
8807 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308808 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8809 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8810} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
8811
8812typedef PACKED_PRE struct PACKED_POST
8813{
8814 tHalMsgHeader header;
8815 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
8816} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
8817
8818/*---------------------------------------------------------------------------
8819 * Logging mail box structure
8820 *-------------------------------------------------------------------------*/
8821
8822#define MAILBOX_VERSION_V1 0x1
8823
8824typedef PACKED_PRE struct PACKED_POST
8825{
8826 /* Logging mail box version */
8827 tANI_U8 logMbVersion;
8828 /* Current logging buffer address */
8829 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8830 /* Current logging buffer length */
8831 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8832 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
8833 tANI_U16 reasonCode;
8834 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
8835 tANI_U8 logType;
8836 /* Indicate if Last segment of log is received*/
8837 tANI_BOOLEAN done;
8838}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308839
Katya Nigamf0511f62015-05-05 16:40:57 +05308840/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05308841 *WLAN_HAL_FW_MEMORY_DUMP_REQ
8842 *--------------------------------------------------------------------------*/
8843typedef PACKED_PRE struct PACKED_POST
8844{
8845 tANI_U32 reserved;
8846}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
8847
8848typedef PACKED_PRE struct PACKED_POST
8849{
8850 tHalMsgHeader header;
8851 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
8852} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
8853
8854/*---------------------------------------------------------------------------
8855 * WLAN_HAL_FW_MEMORY_DUMP_RSP
8856 *-------------------------------------------------------------------------*/
8857typedef PACKED_PRE struct PACKED_POST
8858{
8859 tANI_U32 status;
8860} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
8861
8862typedef PACKED_PRE struct PACKED_POST
8863{
8864 tHalMsgHeader header;
8865 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
8866} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
8867
8868
8869/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05308870* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
8871*-------------------------------------------------------------------------*/
8872
8873/* only 1 filter is supported as of now */
8874#define NUM_FILTERS_SUPPORTED 1
8875
8876typedef PACKED_PRE struct PACKED_POST
8877{
8878 tSirMacAddr macAddr;
8879 tANI_U8 isA1filteringNeeded;
8880 tANI_U8 isA2filteringNeeded;
8881 tANI_U8 isA3filteringNeeded;
8882}tHalMacFilter, *tpHalMacFilter;
8883
8884typedef PACKED_PRE struct PACKED_POST
8885{
8886 tANI_U8 channelNumber;
8887 ePhyChanBondState cbState;
8888
8889 tANI_U32 maxAmpduLen;
8890 tANI_U32 maxMpduInAmpduLen;
8891
8892 tANI_U8 crcCheckEnabled;
8893
8894 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
8895 tANI_U8 numMacFilters;
8896 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
8897
8898 /* Each bit position maps to IEEE convention of typeSubtype */
8899 tANI_U64 typeSubtypeBitmap;
8900
8901 tANI_U64 reserved;
8902
8903}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
8904
8905typedef PACKED_PRE struct PACKED_POST
8906{
8907 tHalMsgHeader header;
8908 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
8909}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
8910
8911
8912/*---------------------------------------------------------------------------
8913* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
8914*-------------------------------------------------------------------------*/
8915
8916typedef PACKED_PRE struct PACKED_POST
8917{
8918 tANI_U32 status;
8919}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
8920
8921typedef PACKED_PRE struct PACKED_POST
8922{
8923 tHalMsgHeader header;
8924 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
8925}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
8926
8927/*---------------------------------------------------------------------------
8928* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
8929*-------------------------------------------------------------------------*/
8930
8931typedef PACKED_PRE struct PACKED_POST
8932{
8933 tHalMsgHeader header;
8934 tANI_U8 resetConfiguration;
8935}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
8936
8937/*---------------------------------------------------------------------------
8938* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
8939*-------------------------------------------------------------------------*/
8940
8941typedef PACKED_PRE struct PACKED_POST
8942{
8943 tANI_U32 status;
8944}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
8945
8946typedef PACKED_PRE struct PACKED_POST
8947{
8948 tHalMsgHeader header;
8949 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
8950}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
8951
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05308952typedef PACKED_PRE struct PACKED_POST
8953{
8954 tANI_U8 status;
8955}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
8956
Arun Khandavalliafc16432015-10-16 20:11:31 +05308957typedef PACKED_PRE struct PACKED_POST
8958{
8959 tANI_U8 paramType;
8960 tANI_U32 paramValue;
8961 tSirMacAddr bssid;
8962} tSetWifiConfigParams, *tpSetWifiConfigParams;
8963
8964typedef PACKED_PRE struct PACKED_POST
8965{
8966 tHalMsgHeader header;
8967 tSetWifiConfigParams wifiConfigParams;
8968} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
8969
8970typedef PACKED_PRE struct PACKED_POST {
8971 tANI_U32 status;
8972} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
8973
8974typedef PACKED_PRE struct PACKED_POST
8975{
8976 tHalMsgHeader header;
8977
8978 tHalSetWifiConfigRspParams setWifiConfigRspParams;
8979} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
8980
Jeff Johnson295189b2012-06-20 16:38:30 -07008981#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8982#pragma pack(pop)
8983#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8984#else
8985#endif
8986
8987#endif /* _WLAN_HAL_MSG_H_ */