blob: 27dc4d3298ec779be47448e10d33556b6d350d20 [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
Sunil Dutt8377a382014-05-26 21:18:04 +0530590 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700591}tHalHostMsgType;
592
Jeff Johnsone7245742012-09-05 17:12:55 -0700593/* Enumeration for Version */
594typedef enum
595{
596 WLAN_HAL_MSG_VERSION0 = 0,
597 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800598 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
599 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700600}tHalHostMsgVersion;
601
Jeff Johnson295189b2012-06-20 16:38:30 -0700602/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530603typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700604{
605 eANI_BOOLEAN_FALSE = 0,
606 eANI_BOOLEAN_TRUE,
607 eANI_BOOLEAN_OFF = 0,
608 eANI_BOOLEAN_ON = 1,
609 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
610} eAniBoolean;
611
612typedef enum
613{
614 eDRIVER_TYPE_PRODUCTION = 0,
615 eDRIVER_TYPE_MFG = 1,
616 eDRIVER_TYPE_DVT = 2,
617 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
618} tDriverType;
619
620typedef enum
621{
622 HAL_STOP_TYPE_SYS_RESET,
623 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
624 HAL_STOP_TYPE_RF_KILL,
625 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
626}tHalStopType;
627
628typedef enum
629{
630 eHAL_SYS_MODE_NORMAL,
631 eHAL_SYS_MODE_LEARN,
632 eHAL_SYS_MODE_SCAN,
633 eHAL_SYS_MODE_PROMISC,
634 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700635 eHAL_SYS_MODE_ROAM_SCAN,
636 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700637 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700638 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
639} eHalSysMode;
640
641typedef enum
642{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800643 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
644 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
645 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
646 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
647 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
648 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
649 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
650 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
651 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700652 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800653 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
654} eHalChanSwitchSource;
655
656typedef enum
657{
Jeff Johnson295189b2012-06-20 16:38:30 -0700658 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
659 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
660 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
661 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700662#ifdef WLAN_FEATURE_11AC
663 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
664 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
665 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
666 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
667 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
668 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
669 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
670#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700671 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
672}ePhyChanBondState;
673
674// Spatial Multiplexing(SM) Power Save mode
675typedef enum eSirMacHTMIMOPowerSaveState
676{
677 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
678 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
679 eSIR_HT_MIMO_PS_NA = 2, // reserved
680 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
681 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
682} tSirMacHTMIMOPowerSaveState;
683
684/* each station added has a rate mode which specifies the sta attributes */
685typedef enum eStaRateMode {
686 eSTA_TAURUS = 0,
687 eSTA_TITAN,
688 eSTA_POLARIS,
689 eSTA_11b,
690 eSTA_11bg,
691 eSTA_11a,
692 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700693#ifdef WLAN_FEATURE_11AC
694 eSTA_11ac,
695#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700696 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
697} tStaRateMode, *tpStaRateMode;
698
699#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
700#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
701#define SIR_NUM_POLARIS_RATES 3 //72,96,108
702
703#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
704
705
706typedef enum eSirBssType
707{
708 eSIR_INFRASTRUCTURE_MODE,
709 eSIR_INFRA_AP_MODE, //Added for softAP support
710 eSIR_IBSS_MODE,
711 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
712 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
713 eSIR_AUTO_MODE,
714 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
715} tSirBssType;
716
717typedef enum eSirNwType
718{
719 eSIR_11A_NW_TYPE,
720 eSIR_11B_NW_TYPE,
721 eSIR_11G_NW_TYPE,
722 eSIR_11N_NW_TYPE,
723 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
724} tSirNwType;
725
726typedef tANI_U16 tSirMacBeaconInterval;
727
728#define SIR_MAC_RATESET_EID_MAX 12
729
730typedef enum eSirMacHTOperatingMode
731{
732 eSIR_HT_OP_MODE_PURE, // No Protection
733 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
734 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
735 eSIR_HT_OP_MODE_MIXED, // Protection is required
736 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
737} tSirMacHTOperatingMode;
738
Jeff Johnson295189b2012-06-20 16:38:30 -0700739/// Encryption type enum used with peer
740typedef enum eAniEdType
741{
742 eSIR_ED_NONE,
743 eSIR_ED_WEP40,
744 eSIR_ED_WEP104,
745 eSIR_ED_TKIP,
746 eSIR_ED_CCMP,
747 eSIR_ED_WPI,
748 eSIR_ED_AES_128_CMAC,
749 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
750} tAniEdType;
751
752#define WLAN_MAX_KEY_RSC_LEN 16
753#define WLAN_WAPI_KEY_RSC_LEN 16
754
755/// MAX key length when ULA is used
756#define SIR_MAC_MAX_KEY_LENGTH 32
757#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
758
759/// Enum to specify whether key is used
760/// for TX only, RX only or both
761typedef enum eAniKeyDirection
762{
763 eSIR_TX_ONLY,
764 eSIR_RX_ONLY,
765 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700766 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700767 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
768} tAniKeyDirection;
769
770typedef enum eAniWepType
771{
772 eSIR_WEP_STATIC,
773 eSIR_WEP_DYNAMIC,
774 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
775} tAniWepType;
776
777typedef enum eSriLinkState {
778
779 eSIR_LINK_IDLE_STATE = 0,
780 eSIR_LINK_PREASSOC_STATE = 1,
781 eSIR_LINK_POSTASSOC_STATE = 2,
782 eSIR_LINK_AP_STATE = 3,
783 eSIR_LINK_IBSS_STATE = 4,
784
785 /* BT-AMP Case */
786 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
787 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
788 eSIR_LINK_BTAMP_AP_STATE = 7,
789 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530790
Jeff Johnson295189b2012-06-20 16:38:30 -0700791 /* Reserved for HAL Internal Use */
792 eSIR_LINK_LEARN_STATE = 9,
793 eSIR_LINK_SCAN_STATE = 10,
794 eSIR_LINK_FINISH_SCAN_STATE = 11,
795 eSIR_LINK_INIT_CAL_STATE = 12,
796 eSIR_LINK_FINISH_CAL_STATE = 13,
797#ifdef WLAN_FEATURE_P2P
798 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530799 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700800#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700801#ifdef WLAN_FEATURE_ROAM_OFFLOAD
802 eSIR_LINK_FT_PREASSOC_STATE = 16,
803#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700804 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
805} tSirLinkState;
806
807typedef enum
808{
809 HAL_SUMMARY_STATS_INFO = 0x00000001,
810 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
811 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
812 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
813 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530814 HAL_PER_STA_STATS_INFO = 0x00000020,
815 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700816}eHalStatsMask;
817
818/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530819typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700820{
821 BTAMP_EVENT_CONNECTION_START,
822 BTAMP_EVENT_CONNECTION_STOP,
823 BTAMP_EVENT_CONNECTION_TERMINATED,
824 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
825} tBtAmpEventType;
826
827//***************************************************************
828
829
830/*******************PE Statistics*************************/
831typedef enum
832{
833 PE_SUMMARY_STATS_INFO = 0x00000001,
834 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
835 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
836 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
837 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
838 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530839 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700840 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
841}ePEStatsMask;
842
Sunil Dutt8377a382014-05-26 21:18:04 +0530843
844/******************************LINK LAYER Statitics**********************/
845
846typedef int wifi_radio;
847typedef int wifi_channel;
848typedef int wifi_tx_rate;
849
850/* channel operating width */
851typedef enum {
852 WIFI_CHAN_WIDTH_20 = 0,
853 WIFI_CHAN_WIDTH_40 = 1,
854 WIFI_CHAN_WIDTH_80 = 2,
855 WIFI_CHAN_WIDTH_160 = 3,
856 WIFI_CHAN_WIDTH_80P80 = 4,
857 WIFI_CHAN_WIDTH_5 = 5,
858 WIFI_CHAN_WIDTH_10 = 6,
859} wifi_channel_width;
860
861typedef enum {
862 WIFI_DISCONNECTED = 0,
863 WIFI_AUTHENTICATING = 1,
864 WIFI_ASSOCIATING = 2,
865 WIFI_ASSOCIATED = 3,
866 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
867 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
868} wifi_connection_state;
869
870typedef enum {
871 WIFI_ROAMING_IDLE = 0,
872 WIFI_ROAMING_ACTIVE = 1,
873} wifi_roam_state;
874
875typedef enum {
876 WIFI_INTERFACE_STA = 0,
877 WIFI_INTERFACE_SOFTAP = 1,
878 WIFI_INTERFACE_IBSS = 2,
879 WIFI_INTERFACE_P2P_CLIENT = 3,
880 WIFI_INTERFACE_P2P_GO = 4,
881 WIFI_INTERFACE_NAN = 5,
882 WIFI_INTERFACE_MESH = 6,
883 } wifi_interface_mode;
884
885#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
886#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
887#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
888#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
889#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
890#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
891
892typedef PACKED_PRE struct PACKED_POST
893{
894 wifi_interface_mode mode; // interface mode
895 tANI_U8 mac_addr[6]; // interface mac address (self)
896 wifi_connection_state state; // connection state (valid for STA, CLI only)
897 wifi_roam_state roaming; // roaming state
898 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
899 tANI_U8 ssid[33]; // null terminated SSID
900 tANI_U8 bssid[6]; // bssid
901 tANI_U8 ap_country_str[3]; // country string advertised by AP
902 tANI_U8 country_str[3]; // country string for this association
903} wifi_interface_info;
904
905/* channel information */
906typedef PACKED_PRE struct PACKED_POST
907{
908 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
909 wifi_channel center_freq; // primary 20 MHz channel
910 wifi_channel center_freq0; // center frequency (MHz) first segment
911 wifi_channel center_freq1; // center frequency (MHz) second segment
912} wifi_channel_info;
913
914/* wifi rate info */
915typedef PACKED_PRE struct PACKED_POST
916{
917 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
918 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
919 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
920 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
921 // HT/VHT it would be mcs index
922 tANI_U32 reserved :16; // reserved
923 tANI_U32 bitrate; // units of 100 Kbps
924} wifi_rate;
925
926/* channel statistics */
927typedef PACKED_PRE struct PACKED_POST
928{
929 wifi_channel_info channel; // channel
930 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
931 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
932} wifi_channel_stats;
933
934/* radio statistics */
935typedef PACKED_PRE struct PACKED_POST
936{
937 wifi_radio radio; // wifi radio (if multiple radio supported)
938 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
939 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
940 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
941 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
942 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
943 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
944 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
945 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
946 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
947 tANI_U32 num_channels; // number of channels
948 wifi_channel_stats channels[1]; // channel statistics
949} wifi_radio_stat;
950
951/* per rate statistics */
952typedef PACKED_PRE struct PACKED_POST
953{
954 wifi_rate rate; // rate information *
955 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
956 tANI_U32 rx_mpdu; // number of received data pkts
957 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
958 tANI_U32 retries; // total number of data pkt retries *
959 tANI_U32 retries_short; // number of short data pkt retries
960 tANI_U32 retries_long; // number of long data pkt retries
961} wifi_rate_stat;
962
963/* access categories */
964typedef enum {
965 WIFI_AC_VO = 0,
966 WIFI_AC_VI = 1,
967 WIFI_AC_BE = 2,
968 WIFI_AC_BK = 3,
969 WIFI_AC_MAX = 4,
970} wifi_traffic_ac;
971
972/* wifi peer type */
973typedef enum
974{
975 WIFI_PEER_STA,
976 WIFI_PEER_AP,
977 WIFI_PEER_P2P_GO,
978 WIFI_PEER_P2P_CLIENT,
979 WIFI_PEER_NAN,
980 WIFI_PEER_TDLS,
981 WIFI_PEER_INVALID,
982} wifi_peer_type;
983
984/* per peer statistics */
985typedef PACKED_PRE struct PACKED_POST
986{
987 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
988 tANI_U8 peer_mac_address[6]; // mac address
989 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
990 tANI_U32 num_rate; // number of rates
991 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
992} wifi_peer_info;
993
994/* per access category statistics */
995typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530996{
997 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
998 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
999 tANI_U32 rx_mpdu; // number of received unicast mpdus
1000 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
1001 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
1002 tANI_U32 rx_mcast; // number of received multicast data packets
1003 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
1004 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
1005 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
1006 tANI_U32 retries; // total number of data pkt retries
1007 tANI_U32 retries_short; // number of short data pkt retries
1008 tANI_U32 retries_long; // number of long data pkt retries
1009 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1010 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1011 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1012 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1013} wifi_wmm_ac_stat;
1014
1015/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1016typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301017{
1018 wifi_interface_info info; // current state of the interface
1019 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1020 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1021 tANI_U32 mgmt_action_rx; // action frames received count
1022 tANI_U32 mgmt_action_tx; // action frames transmit count
1023 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1024 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1025 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1026 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
1027} wifi_iface_stat;
1028
1029/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1030typedef PACKED_PRE struct PACKED_POST
1031{
1032 tANI_U32 num_peers; // number of peers
1033 wifi_peer_info peer_info[1]; // per peer statistics
1034} wifi_peer_stat;
1035
1036/* wifi statistics bitmap for getting statistics */
1037#define WMI_LINK_STATS_RADIO 0x00000001
1038#define WMI_LINK_STATS_IFACE 0x00000002
1039#define WMI_LINK_STATS_ALL_PEER 0x00000004
1040#define WMI_LINK_STATS_PER_PEER 0x00000008
1041
1042/* wifi statistics bitmap for clearing statistics */
1043#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1044#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1045#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1046#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1047#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1048#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1049#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1050#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1051
1052
Jeff Johnson295189b2012-06-20 16:38:30 -07001053/*---------------------------------------------------------------------------
1054 Message definitons - All the messages below need to be packed
1055 ---------------------------------------------------------------------------*/
1056
1057#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1058#pragma pack(push, 1)
1059#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1060#pragma pack(1)
1061#else
1062#endif
1063
1064/// Definition for HAL API Version.
1065typedef PACKED_PRE struct PACKED_POST
1066{
1067 tANI_U8 revision;
1068 tANI_U8 version;
1069 tANI_U8 minor;
1070 tANI_U8 major;
1071} tWcnssWlanVersion, *tpWcnssWlanVersion;
1072
1073/// Definition for Encryption Keys
1074typedef PACKED_PRE struct PACKED_POST
1075{
1076 tANI_U8 keyId;
1077 tANI_U8 unicast; // 0 for multicast
1078 tAniKeyDirection keyDirection;
1079 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1080 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1081 tANI_U16 keyLength;
1082 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1083} tSirKeys, *tpSirKeys;
1084
1085
1086//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1087typedef PACKED_PRE struct PACKED_POST
1088{
1089 /*STA Index*/
1090 tANI_U16 staIdx;
1091
1092 /*Encryption Type used with peer*/
1093 tAniEdType encType;
1094
1095 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301096 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001097
1098 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1099 tANI_U8 defWEPIdx;
1100
Jeff Johnson295189b2012-06-20 16:38:30 -07001101 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301102 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1103
Jeff Johnson295189b2012-06-20 16:38:30 -07001104 /*Control for Replay Count, 1= Single TID based replay count on Tx
1105 0 = Per TID based replay count on TX */
1106 tANI_U8 singleTidRc;
1107
1108} tSetStaKeyParams, *tpSetStaKeyParams;
1109
1110
1111
1112/* 4-byte control message header used by HAL*/
1113typedef PACKED_PRE struct PACKED_POST
1114{
Jeff Johnsone7245742012-09-05 17:12:55 -07001115 tHalHostMsgType msgType:16;
1116 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001117 tANI_U32 msgLen;
1118} tHalMsgHeader, *tpHalMsgHeader;
1119
1120/* Config format required by HAL for each CFG item*/
1121typedef PACKED_PRE struct PACKED_POST
1122{
1123 /* Cfg Id. The Id required by HAL is exported by HAL
1124 * in shared header file between UMAC and HAL.*/
1125 tANI_U16 uCfgId;
1126
Dino Mycle8afbac12014-07-04 22:06:17 +05301127 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001128 * in the TLV format.*/
1129 tANI_U16 uCfgLen;
1130
1131 /* Padding bytes for unaligned address's */
1132 tANI_U16 uCfgPadBytes;
1133
1134 /* Reserve bytes for making cfgVal to align address */
1135 tANI_U16 uCfgReserve;
1136
1137 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1138 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1139} tHalCfg, *tpHalCfg;
1140
1141/*---------------------------------------------------------------------------
1142 WLAN_HAL_START_REQ
1143---------------------------------------------------------------------------*/
1144
1145typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1146{
1147 /* Drive Type - Production or FTM etc */
1148 tDriverType driverType;
1149
1150 /*Length of the config buffer*/
1151 tANI_U32 uConfigBufferLen;
1152
Dino Mycle8afbac12014-07-04 22:06:17 +05301153 /* Following this there is a TLV formatted buffer of length
1154 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001155 * The TLV is expected to be formatted like this:
1156 * 0 15 31 31+CFG_LEN-1 length-1
1157 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1158 */
1159} tHalMacStartParameters, *tpHalMacStartParameters;
1160
1161typedef PACKED_PRE struct PACKED_POST
1162{
1163 /* Note: The length specified in tHalMacStartReqMsg messages should be
1164 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1165 tHalMsgHeader header;
1166 tHalMacStartParameters startReqParams;
1167} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1168
1169/*---------------------------------------------------------------------------
1170 WLAN_HAL_START_RSP
1171---------------------------------------------------------------------------*/
1172
1173typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1174{
1175 /*success or failure */
1176 tANI_U16 status;
1177
1178 /*Max number of STA supported by the device*/
1179 tANI_U8 ucMaxStations;
1180
1181 /*Max number of BSS supported by the device*/
1182 tANI_U8 ucMaxBssids;
1183
1184 /*API Version */
1185 tWcnssWlanVersion wcnssWlanVersion;
1186
1187 /*CRM build information */
1188 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1189
1190 /*hardware/chipset/misc version information */
1191 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1192
1193} tHalMacStartRspParams, *tpHalMacStartRspParams;
1194
1195typedef PACKED_PRE struct PACKED_POST
1196{
1197 tHalMsgHeader header;
1198 tHalMacStartRspParams startRspParams;
1199} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1200
1201/*---------------------------------------------------------------------------
1202 WLAN_HAL_STOP_REQ
1203---------------------------------------------------------------------------*/
1204
1205typedef PACKED_PRE struct PACKED_POST
1206{
1207 /*The reason for which the device is being stopped*/
1208 tHalStopType reason;
1209
1210}tHalMacStopReqParams, *tpHalMacStopReqParams;
1211
1212typedef PACKED_PRE struct PACKED_POST
1213{
1214 tHalMsgHeader header;
1215 tHalMacStopReqParams stopReqParams;
1216} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1217
1218/*---------------------------------------------------------------------------
1219 WLAN_HAL_STOP_RSP
1220---------------------------------------------------------------------------*/
1221
1222typedef PACKED_PRE struct PACKED_POST
1223{
1224 /*success or failure */
1225 tANI_U32 status;
1226
1227}tHalMacStopRspParams, *tpHalMacStopRspParams;
1228
1229typedef PACKED_PRE struct PACKED_POST
1230{
1231 tHalMsgHeader header;
1232 tHalMacStopRspParams stopRspParams;
1233} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1234
1235/*---------------------------------------------------------------------------
1236 WLAN_HAL_UPDATE_CFG_REQ
1237---------------------------------------------------------------------------*/
1238
1239typedef PACKED_PRE struct PACKED_POST
1240{
1241 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1242 tANI_U32 uConfigBufferLen;
1243
Dino Mycle8afbac12014-07-04 22:06:17 +05301244 /* Following this there is a TLV formatted buffer of length
1245 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001246 * The TLV is expected to be formatted like this:
1247 * 0 15 31 31+CFG_LEN-1 length-1
1248 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1249 */
1250} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1251
1252typedef PACKED_PRE struct PACKED_POST
1253{
1254 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1255 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1256 tHalMsgHeader header;
1257 tHalUpdateCfgReqParams updateCfgReqParams;
1258} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1259
1260/*---------------------------------------------------------------------------
1261 WLAN_HAL_UPDATE_CFG_RSP
1262---------------------------------------------------------------------------*/
1263
1264typedef PACKED_PRE struct PACKED_POST
1265{
1266 /* success or failure */
1267 tANI_U32 status;
1268
1269}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1270
1271typedef PACKED_PRE struct PACKED_POST
1272{
1273 tHalMsgHeader header;
1274 tHalUpdateCfgRspParams updateCfgRspParams;
1275} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1276
1277/*---------------------------------------------------------------------------
1278 WLAN_HAL_INIT_SCAN_REQ
1279---------------------------------------------------------------------------*/
1280
1281/// Frame control field format (2 bytes)
1282typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1283{
1284
1285#ifndef ANI_LITTLE_BIT_ENDIAN
1286
1287 tANI_U8 subType :4;
1288 tANI_U8 type :2;
1289 tANI_U8 protVer :2;
1290
1291 tANI_U8 order :1;
1292 tANI_U8 wep :1;
1293 tANI_U8 moreData :1;
1294 tANI_U8 powerMgmt :1;
1295 tANI_U8 retry :1;
1296 tANI_U8 moreFrag :1;
1297 tANI_U8 fromDS :1;
1298 tANI_U8 toDS :1;
1299
1300#else
1301
1302 tANI_U8 protVer :2;
1303 tANI_U8 type :2;
1304 tANI_U8 subType :4;
1305
1306 tANI_U8 toDS :1;
1307 tANI_U8 fromDS :1;
1308 tANI_U8 moreFrag :1;
1309 tANI_U8 retry :1;
1310 tANI_U8 powerMgmt :1;
1311 tANI_U8 moreData :1;
1312 tANI_U8 wep :1;
1313 tANI_U8 order :1;
1314
1315#endif
1316
1317} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1318
1319/// Sequence control field
1320typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1321{
1322 tANI_U8 fragNum : 4;
1323 tANI_U8 seqNumLo : 4;
1324 tANI_U8 seqNumHi : 8;
1325} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1326
1327/// Management header format
1328typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1329{
1330 tSirMacFrameCtl fc;
1331 tANI_U8 durationLo;
1332 tANI_U8 durationHi;
1333 tANI_U8 da[6];
1334 tANI_U8 sa[6];
1335 tANI_U8 bssId[6];
1336 tSirMacSeqCtl seqControl;
1337} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1338
1339/// Scan Entry to hold active BSS idx's
1340typedef __ani_attr_pre_packed struct sSirScanEntry
1341{
1342 tANI_U8 bssIdx[HAL_NUM_BSSID];
1343 tANI_U8 activeBSScnt;
1344}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1345
1346typedef PACKED_PRE struct PACKED_POST {
1347
1348 /*LEARN - AP Role
1349 SCAN - STA Role*/
1350 eHalSysMode scanMode;
1351
1352 /*BSSID of the BSS*/
1353 tSirMacAddr bssid;
1354
1355 /*Whether BSS needs to be notified*/
1356 tANI_U8 notifyBss;
1357
1358 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1359 CTS to Self). Must always be a valid frame type.*/
1360 tANI_U8 frameType;
1361
1362 /*UMAC has the option of passing the MAC frame to be used for notifying
1363 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1364 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1365 frameType.*/
1366 tANI_U8 frameLength;
1367
Dino Mycle8afbac12014-07-04 22:06:17 +05301368 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001369 is non-zero. */
1370 tSirMacMgmtHdr macMgmtHdr;
1371
1372 /*Entry to hold number of active BSS idx's*/
1373 tSirScanEntry scanEntry;
1374
1375} tInitScanParams, * tpInitScanParams;
1376
1377typedef PACKED_PRE struct PACKED_POST
1378{
1379 tHalMsgHeader header;
1380 tInitScanParams initScanParams;
1381} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1382
1383typedef PACKED_PRE struct PACKED_POST {
1384
1385 /*LEARN - AP Role
1386 SCAN - STA Role*/
1387 eHalSysMode scanMode;
1388
1389 /*BSSID of the BSS*/
1390 tSirMacAddr bssid;
1391
1392 /*Whether BSS needs to be notified*/
1393 tANI_U8 notifyBss;
1394
1395 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1396 CTS to Self). Must always be a valid frame type.*/
1397 tANI_U8 frameType;
1398
1399 /*UMAC has the option of passing the MAC frame to be used for notifying
1400 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1401 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1402 frameType.*/
1403 tANI_U8 frameLength;
1404
Dino Mycle8afbac12014-07-04 22:06:17 +05301405 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001406 is non-zero. */
1407 tSirMacMgmtHdr macMgmtHdr;
1408
1409 /*Entry to hold number of active BSS idx's*/
1410 tSirScanEntry scanEntry;
1411
1412 /* Single NoA usage in Scanning */
1413 tANI_U8 useNoA;
1414
1415 /* Indicates the scan duration (in ms) */
1416 tANI_U16 scanDuration;
1417
1418} tInitScanConParams, * tpInitScanConParams;
1419
1420typedef PACKED_PRE struct PACKED_POST
1421{
1422 tHalMsgHeader header;
1423 tInitScanConParams initScanParams;
1424} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1425
1426
1427/*---------------------------------------------------------------------------
1428 WLAN_HAL_INIT_SCAN_RSP
1429---------------------------------------------------------------------------*/
1430
1431typedef PACKED_PRE struct PACKED_POST
1432{
1433 /*success or failure */
1434 tANI_U32 status;
1435
1436}tHalInitScanRspParams, *tpHalInitScanRspParams;
1437
1438typedef PACKED_PRE struct PACKED_POST
1439{
1440 tHalMsgHeader header;
1441 tHalInitScanRspParams initScanRspParams;
1442} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1443
1444/*---------------------------------------------------------------------------
1445 WLAN_HAL_START_SCAN_REQ
1446---------------------------------------------------------------------------*/
1447
Dino Mycle8afbac12014-07-04 22:06:17 +05301448typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001449{
1450 /*Indicates the channel to scan*/
1451 tANI_U8 scanChannel;
1452
1453 } tStartScanParams, * tpStartScanParams;
1454
1455typedef PACKED_PRE struct PACKED_POST
1456{
1457 tHalMsgHeader header;
1458 tStartScanParams startScanParams;
1459} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1460
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001461typedef PACKED_PRE struct PACKED_POST
1462{
1463 tHalMsgHeader header;
1464} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1465
Jeff Johnson295189b2012-06-20 16:38:30 -07001466/*---------------------------------------------------------------------------
1467 WLAN_HAL_START_SCAN_RSP
1468---------------------------------------------------------------------------*/
1469
1470typedef PACKED_PRE struct PACKED_POST
1471{
1472 /*success or failure */
1473 tANI_U32 status;
1474
1475 tANI_U32 startTSF[2];
1476 tPowerdBm txMgmtPower;
1477
1478}tHalStartScanRspParams, *tpHalStartScanRspParams;
1479
1480typedef PACKED_PRE struct PACKED_POST
1481{
1482 tHalMsgHeader header;
1483 tHalStartScanRspParams startScanRspParams;
1484} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1485
1486/*---------------------------------------------------------------------------
1487 WLAN_HAL_END_SCAN_REQ
1488---------------------------------------------------------------------------*/
1489
1490typedef PACKED_PRE struct PACKED_POST
1491{
1492 /*Indicates the channel to stop scanning. Not used really. But retained
1493 for symmetry with "start Scan" message. It can also help in error
1494 check if needed.*/
1495 tANI_U8 scanChannel;
1496
1497} tEndScanParams, *tpEndScanParams;
1498
1499typedef PACKED_PRE struct PACKED_POST
1500{
1501 tHalMsgHeader header;
1502 tEndScanParams endScanParams;
1503} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1504
1505/*---------------------------------------------------------------------------
1506 WLAN_HAL_END_SCAN_RSP
1507---------------------------------------------------------------------------*/
1508
1509typedef PACKED_PRE struct PACKED_POST
1510{
1511 /*success or failure */
1512 tANI_U32 status;
1513
1514}tHalEndScanRspParams, *tpHalEndScanRspParams;
1515
1516typedef PACKED_PRE struct PACKED_POST
1517{
1518 tHalMsgHeader header;
1519 tHalEndScanRspParams endScanRspParams;
1520} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1521
1522/*---------------------------------------------------------------------------
1523 WLAN_HAL_FINISH_SCAN_REQ
1524---------------------------------------------------------------------------*/
1525
1526typedef PACKED_PRE struct PACKED_POST
1527{
1528 /* Identifies the operational state of the AP/STA
1529 * LEARN - AP Role SCAN - STA Role */
1530 eHalSysMode scanMode;
1531
1532 /*Operating channel to tune to.*/
1533 tANI_U8 currentOperChannel;
1534
1535 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1536 40 MHz extension channel in combination with the control channel*/
1537 ePhyChanBondState cbState;
1538
1539 /*BSSID of the BSS*/
1540 tSirMacAddr bssid;
1541
1542 /*Whether BSS needs to be notified*/
1543 tANI_U8 notifyBss;
1544
1545 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1546 CTS to Self). Must always be a valid frame type.*/
1547 tANI_U8 frameType;
1548
1549 /*UMAC has the option of passing the MAC frame to be used for notifying
1550 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1551 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1552 frameType.*/
1553 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301554
1555 /*Following the framelength there is a MAC frame buffer if frameLength
1556 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001557 tSirMacMgmtHdr macMgmtHdr;
1558
1559 /*Entry to hold number of active BSS idx's*/
1560 tSirScanEntry scanEntry;
1561
1562} tFinishScanParams, *tpFinishScanParams;
1563
1564typedef PACKED_PRE struct PACKED_POST
1565{
1566 tHalMsgHeader header;
1567 tFinishScanParams finishScanParams;
1568} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1569
1570/*---------------------------------------------------------------------------
1571 WLAN_HAL_FINISH_SCAN_RSP
1572---------------------------------------------------------------------------*/
1573
1574typedef PACKED_PRE struct PACKED_POST
1575{
1576 /*success or failure */
1577 tANI_U32 status;
1578
1579}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1580
1581typedef PACKED_PRE struct PACKED_POST
1582{
1583 tHalMsgHeader header;
1584 tHalFinishScanRspParams finishScanRspParams;
1585} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1586
Srinivas Dasari42584632014-11-26 20:37:19 +05301587typedef PACKED_PRE struct PACKED_POST
1588{
1589 tSetStaKeyParams keyParams;
1590 uint8 pn[6];
1591} tHalEncConfigParams;
1592
1593typedef PACKED_PRE struct PACKED_POST
1594{
1595 uint16 length;
1596 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1597} tHalDisaPayload;
1598
1599typedef PACKED_PRE struct PACKED_POST
1600{
1601#ifdef BYTE_ORDER_BIG_ENDIAN
1602 uint8 reserved1 : 1;
1603 uint8 ackpolicy : 2;
1604 uint8 eosp : 1;
1605 uint8 tid : 4;
1606
1607 uint8 appsbufferstate : 8;
1608#else
1609 uint8 appsbufferstate : 8;
1610
1611 uint8 tid : 4;
1612 uint8 eosp : 1;
1613 uint8 ackpolicy : 2;
1614 uint8 reserved1 : 1;
1615#endif
1616} tHalQosCtrlFieldType;
1617
1618typedef PACKED_PRE struct PACKED_POST
1619 {
1620#ifdef BYTE_ORDER_BIG_ENDIAN
1621 uint16 subtype : 4;
1622 uint16 type : 2;
1623 uint16 protocol : 2;
1624
1625 uint16 order : 1;
1626 uint16 wep : 1;
1627 uint16 moredata : 1;
1628 uint16 pm : 1;
1629 uint16 retry : 1;
1630 uint16 morefrag : 1;
1631 uint16 fromds : 1;
1632 uint16 tods : 1;
1633#else
1634
1635 uint16 tods : 1;
1636 uint16 fromds : 1;
1637 uint16 morefrag : 1;
1638 uint16 retry : 1;
1639 uint16 pm : 1;
1640 uint16 moredata : 1;
1641 uint16 wep : 1;
1642 uint16 order : 1;
1643
1644 uint16 protocol : 2;
1645 uint16 type : 2;
1646 uint16 subtype : 4;
1647#endif
1648} tHalFrmCtrlType;
1649
1650typedef PACKED_PRE struct PACKED_POST
1651{
1652 /* Frame control field */
1653 tHalFrmCtrlType fc;
1654 /* Duration ID */
1655 uint16 usDurationId;
1656 /* Address 1 field */
1657 uint8 vA1[HAL_MAC_ADDR_LEN];
1658 /* Address 2 field */
1659 uint8 vA2[HAL_MAC_ADDR_LEN];
1660 /* Address 3 field */
1661 uint8 vA3[HAL_MAC_ADDR_LEN];
1662 /* Sequence control field */
1663 uint16 seqNum;
1664 /* Optional A4 address */
1665 uint8 optvA4[HAL_MAC_ADDR_LEN];
1666 /* Optional QOS control field */
1667 tHalQosCtrlFieldType usQosCtrl;
1668} tHal80211Header;
1669
1670typedef PACKED_PRE struct PACKED_POST
1671{
1672 tHal80211Header macHeader;
1673 tHalEncConfigParams encParams;
1674 tHalDisaPayload data;
1675} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1676
1677typedef PACKED_PRE struct PACKED_POST
1678{
1679 tHalMsgHeader header;
1680 tSetEncryptedDataParams encryptedDataParams;
1681} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1682
1683typedef PACKED_PRE struct PACKED_POST
1684{
1685 tANI_U32 status;
1686 tHalDisaPayload encryptedPayload;
1687} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1688
1689typedef PACKED_PRE struct PACKED_POST
1690{
1691 tHalMsgHeader header;
1692 tSetEncryptedDataRspParams encryptedDataRspParams;
1693} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1694
Jeff Johnson295189b2012-06-20 16:38:30 -07001695/*---------------------------------------------------------------------------
1696 WLAN_HAL_CONFIG_STA_REQ
1697---------------------------------------------------------------------------*/
1698
1699typedef PACKED_PRE struct PACKED_POST {
1700 /*
1701 * For Self STA Entry: this represents Self Mode.
1702 * For Peer Stations, this represents the mode of the peer.
1703 * On Station:
1704 * --this mode is updated when PE adds the Self Entry.
1705 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1706 * ON AP:
1707 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1708 * to indicate the self mode of the AP.
1709 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1710 */
1711
1712 tStaRateMode opRateMode;
1713 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1714 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1715 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1716 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1717 tANI_U16 reserved;
1718
1719 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1720 //First 26 bits are reserved for those Titan rates and
1721 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1722 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1723
1724 /*
1725 * 0-76 bits used, remaining reserved
1726 * bits 0-15 and 32 should be set.
1727 */
1728 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1729
1730 /*
1731 * RX Highest Supported Data Rate defines the highest data
1732 * rate that the STA is able to receive, in unites of 1Mbps.
1733 * This value is derived from "Supported MCS Set field" inside
1734 * the HT capability element.
1735 */
1736 tANI_U16 rxHighestDataRate;
1737
1738} tSirSupportedRates, *tpSirSupportedRates;
1739
1740typedef PACKED_PRE struct PACKED_POST
1741{
1742 /*BSSID of STA*/
1743 tSirMacAddr bssId;
1744
1745 /*ASSOC ID, as assigned by UMAC*/
1746 tANI_U16 assocId;
1747
1748 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1749 tANI_U8 staType;
1750
1751 /*Short Preamble Supported.*/
1752 tANI_U8 shortPreambleSupported;
1753
1754 /*MAC Address of STA*/
1755 tSirMacAddr staMac;
1756
1757 /*Listen interval of the STA*/
1758 tANI_U16 listenInterval;
1759
1760 /*Support for 11e/WMM*/
1761 tANI_U8 wmmEnabled;
1762
1763 /*11n HT capable STA*/
1764 tANI_U8 htCapable;
1765
1766 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1767 tANI_U8 txChannelWidthSet;
1768
1769 /*RIFS mode 0 - NA, 1 - Allowed */
1770 tANI_U8 rifsMode;
1771
Dino Mycle8afbac12014-07-04 22:06:17 +05301772 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001773 0 - No Support, 1 - Supported
1774 SG - there is global field */
1775 tANI_U8 lsigTxopProtection;
1776
1777 /*Max Ampdu Size supported by STA. TPE programming.
1778 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1779 tANI_U8 maxAmpduSize;
1780
1781 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1782 tANI_U8 maxAmpduDensity;
1783
1784 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1785 tANI_U8 maxAmsduSize;
1786
1787 /*Short GI support for 40Mhz packets*/
1788 tANI_U8 fShortGI40Mhz;
1789
1790 /*Short GI support for 20Mhz packets*/
1791 tANI_U8 fShortGI20Mhz;
1792
Jeff Johnson295189b2012-06-20 16:38:30 -07001793 /*Robust Management Frame (RMF) enabled/disabled*/
1794 tANI_U8 rmfEnabled;
1795
1796 /* The unicast encryption type in the association */
1797 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001798
1799 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001800 will set this flag in case of RE-ASSOC, where we want to reuse the old
1801 STA ID. 0 = Add, 1 = Update*/
1802 tANI_U8 action;
1803
1804 /*U-APSD Flags: 1b per AC. Encoded as follows:
1805 b7 b6 b5 b4 b3 b2 b1 b0 =
1806 X X X X BE BK VI VO */
1807 tANI_U8 uAPSD;
1808
1809 /*Max SP Length*/
1810 tANI_U8 maxSPLen;
1811
1812 /*11n Green Field preamble support
1813 0 - Not supported, 1 - Supported */
1814 tANI_U8 greenFieldCapable;
1815
1816 /*MIMO Power Save mode*/
1817 tSirMacHTMIMOPowerSaveState mimoPS;
1818
1819 /*Delayed BA Support*/
1820 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001821
Jeff Johnson295189b2012-06-20 16:38:30 -07001822 /*Max AMPDU duration in 32us*/
1823 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001824
Jeff Johnson295189b2012-06-20 16:38:30 -07001825 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1826 it to 0 if AP does not support it. This indication is sent to HAL and
1827 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1828 tANI_U8 fDsssCckMode40Mhz;
1829
1830 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1831 Retained for backward compalibity with existing HAL code*/
1832 tANI_U8 staIdx;
1833
1834 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1835 Retained for backward compalibity with existing HAL code*/
1836 tANI_U8 bssIdx;
1837
1838 tANI_U8 p2pCapableSta;
1839
Jeff Johnsone7245742012-09-05 17:12:55 -07001840 /*Reserved to align next field on a dword boundary*/
1841 tANI_U8 reserved;
1842
1843 /*These rates are the intersection of peer and self capabilities.*/
1844 tSirSupportedRates supportedRates;
1845
Jeff Johnson295189b2012-06-20 16:38:30 -07001846} tConfigStaParams, *tpConfigStaParams;
1847
Jeff Johnsone7245742012-09-05 17:12:55 -07001848/*------------------------------------------------------------------------
1849 * WLAN_HAL_CONFIG_STA_REQ
1850 * ----------------------------------------------------------------------*/
1851
1852typedef PACKED_PRE struct PACKED_POST {
1853 /*
1854 * For Self STA Entry: this represents Self Mode.
1855 * For Peer Stations, this represents the mode of the peer.
1856 * On Station:
1857 * --this mode is updated when PE adds the Self Entry.
1858 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1859 * ON AP:
1860 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1861 * to indicate the self mode of the AP.
1862 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1863 */
1864
1865 tStaRateMode opRateMode;
1866 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1867 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1868 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1869 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1870 tANI_U16 reserved;
1871
1872 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1873 //First 26 bits are reserved for those Titan rates and
1874 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1875 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1876
1877 /*
1878 * 0-76 bits used, remaining reserved
1879 * bits 0-15 and 32 should be set.
1880 */
1881 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1882
1883 /*
1884 * RX Highest Supported Data Rate defines the highest data
1885 * rate that the STA is able to receive, in unites of 1Mbps.
1886 * This value is derived from "Supported MCS Set field" inside
1887 * the HT capability element.
1888 */
1889 tANI_U16 rxHighestDataRate;
1890
1891 /* Indicates the Maximum MCS that can be received for each number
1892 * of spacial streams */
1893 tANI_U16 vhtRxMCSMap;
1894
1895 /*Indicate the highest VHT data rate that the STA is able to receive*/
1896 tANI_U16 vhtRxHighestDataRate;
1897
1898 /* Indicates the Maximum MCS that can be transmitted for each number
1899 * of spacial streams */
1900 tANI_U16 vhtTxMCSMap;
1901
1902 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1903 tANI_U16 vhtTxHighestDataRate;
1904
1905} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1906
1907typedef PACKED_PRE struct PACKED_POST
1908{
1909 /*BSSID of STA*/
1910 tSirMacAddr bssId;
1911
1912 /*ASSOC ID, as assigned by UMAC*/
1913 tANI_U16 assocId;
1914
1915 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1916 tANI_U8 staType;
1917
1918 /*Short Preamble Supported.*/
1919 tANI_U8 shortPreambleSupported;
1920
1921 /*MAC Address of STA*/
1922 tSirMacAddr staMac;
1923
1924 /*Listen interval of the STA*/
1925 tANI_U16 listenInterval;
1926
1927 /*Support for 11e/WMM*/
1928 tANI_U8 wmmEnabled;
1929
1930 /*11n HT capable STA*/
1931 tANI_U8 htCapable;
1932
1933 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1934 tANI_U8 txChannelWidthSet;
1935
1936 /*RIFS mode 0 - NA, 1 - Allowed */
1937 tANI_U8 rifsMode;
1938
1939 /*L-SIG TXOP Protection mechanism
1940 0 - No Support, 1 - Supported
1941 SG - there is global field */
1942 tANI_U8 lsigTxopProtection;
1943
1944 /*Max Ampdu Size supported by STA. TPE programming.
1945 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1946 tANI_U8 maxAmpduSize;
1947
1948 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1949 tANI_U8 maxAmpduDensity;
1950
1951 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1952 tANI_U8 maxAmsduSize;
1953
1954 /*Short GI support for 40Mhz packets*/
1955 tANI_U8 fShortGI40Mhz;
1956
1957 /*Short GI support for 20Mhz packets*/
1958 tANI_U8 fShortGI20Mhz;
1959
1960 /*Robust Management Frame (RMF) enabled/disabled*/
1961 tANI_U8 rmfEnabled;
1962
1963 /* The unicast encryption type in the association */
1964 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301965
1966 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001967 will set this flag in case of RE-ASSOC, where we want to reuse the old
1968 STA ID. 0 = Add, 1 = Update*/
1969 tANI_U8 action;
1970
1971 /*U-APSD Flags: 1b per AC. Encoded as follows:
1972 b7 b6 b5 b4 b3 b2 b1 b0 =
1973 X X X X BE BK VI VO */
1974 tANI_U8 uAPSD;
1975
1976 /*Max SP Length*/
1977 tANI_U8 maxSPLen;
1978
1979 /*11n Green Field preamble support
1980 0 - Not supported, 1 - Supported */
1981 tANI_U8 greenFieldCapable;
1982
1983 /*MIMO Power Save mode*/
1984 tSirMacHTMIMOPowerSaveState mimoPS;
1985
1986 /*Delayed BA Support*/
1987 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05301988
Jeff Johnsone7245742012-09-05 17:12:55 -07001989 /*Max AMPDU duration in 32us*/
1990 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05301991
Jeff Johnsone7245742012-09-05 17:12:55 -07001992 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1993 it to 0 if AP does not support it. This indication is sent to HAL and
1994 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1995 tANI_U8 fDsssCckMode40Mhz;
1996
1997 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1998 Retained for backward compalibity with existing HAL code*/
1999 tANI_U8 staIdx;
2000
2001 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
2002 Retained for backward compalibity with existing HAL code*/
2003 tANI_U8 bssIdx;
2004
2005 tANI_U8 p2pCapableSta;
2006
2007 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002008 tANI_U8 htLdpcEnabled:1;
2009 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002010 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302011 tANI_U8 vhtTxMUBformeeCapable:1;
2012 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002013
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002014 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002015 tSirSupportedRates_V1 supportedRates;
2016
2017 tANI_U8 vhtCapable;
2018 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002019
Jeff Johnsone7245742012-09-05 17:12:55 -07002020} tConfigStaParams_V1, *tpConfigStaParams_V1;
2021
Jeff Johnson295189b2012-06-20 16:38:30 -07002022typedef PACKED_PRE struct PACKED_POST
2023{
2024 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002025 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002026 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002027 tConfigStaParams_V1 configStaParams_V1;
2028 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002029} tConfigStaReqMsg, *tpConfigStaReqMsg;
2030
2031/*---------------------------------------------------------------------------
2032 WLAN_HAL_CONFIG_STA_RSP
2033---------------------------------------------------------------------------*/
2034
2035typedef PACKED_PRE struct PACKED_POST
2036{
2037 /*success or failure */
2038 tANI_U32 status;
2039
2040 /* Station index; valid only when 'status' field value SUCCESS */
2041 tANI_U8 staIdx;
2042
2043 /* BSSID Index of BSS to which the station is associated */
2044 tANI_U8 bssIdx;
2045
2046 /* DPU Index for PTK */
2047 tANI_U8 dpuIndex;
2048
Dino Mycle8afbac12014-07-04 22:06:17 +05302049 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002050 tANI_U8 bcastDpuIndex;
2051
2052 /*DPU Index for IGTK */
2053 tANI_U8 bcastMgmtDpuIdx;
2054
2055 /*PTK DPU signature*/
2056 tANI_U8 ucUcastSig;
2057
2058 /*GTK DPU isignature*/
2059 tANI_U8 ucBcastSig;
2060
2061 /* IGTK DPU signature*/
2062 tANI_U8 ucMgmtSig;
2063
2064 tANI_U8 p2pCapableSta;
2065
2066}tConfigStaRspParams, *tpConfigStaRspParams;
2067
2068typedef PACKED_PRE struct PACKED_POST
2069{
2070 tHalMsgHeader header;
2071 tConfigStaRspParams configStaRspParams;
2072}tConfigStaRspMsg, *tpConfigStaRspMsg;
2073
2074/*---------------------------------------------------------------------------
2075 WLAN_HAL_DELETE_STA_REQ
2076---------------------------------------------------------------------------*/
2077
2078/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302079typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002080{
2081 /* Index of STA to delete */
2082 tANI_U8 staIdx;
2083} tDeleteStaParams, *tpDeleteStaParams;
2084
2085/* Delete STA Request message*/
2086typedef PACKED_PRE struct PACKED_POST
2087{
2088 tHalMsgHeader header;
2089 tDeleteStaParams delStaParams;
2090} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2091
2092/*---------------------------------------------------------------------------
2093 WLAN_HAL_DELETE_STA_RSP
2094---------------------------------------------------------------------------*/
2095
2096/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302097typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002098{
2099 /*success or failure */
2100 tANI_U32 status;
2101
2102 /* Index of STA deleted */
2103 tANI_U8 staId;
2104} tDeleteStaRspParams, *tpDeleteStaRspParams;
2105
2106/* Delete STA Response message*/
2107typedef PACKED_PRE struct PACKED_POST
2108{
2109 tHalMsgHeader header;
2110 tDeleteStaRspParams delStaRspParams;
2111} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2112
2113/*---------------------------------------------------------------------------
2114 WLAN_HAL_CONFIG_BSS_REQ
2115---------------------------------------------------------------------------*/
2116
2117//12 Bytes long because this structure can be used to represent rate
2118//and extended rate set IEs. The parser assume this to be at least 12
2119typedef __ani_attr_pre_packed struct sSirMacRateSet
2120{
2121 tANI_U8 numRates;
2122 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2123} __ani_attr_packed tSirMacRateSet;
2124
2125// access category record
2126typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2127{
2128#ifndef ANI_LITTLE_BIT_ENDIAN
2129 tANI_U8 rsvd : 1;
2130 tANI_U8 aci : 2;
2131 tANI_U8 acm : 1;
2132 tANI_U8 aifsn : 4;
2133#else
2134 tANI_U8 aifsn : 4;
2135 tANI_U8 acm : 1;
2136 tANI_U8 aci : 2;
2137 tANI_U8 rsvd : 1;
2138#endif
2139} __ani_attr_packed tSirMacAciAifsn;
2140
2141// contention window size
2142typedef __ani_attr_pre_packed struct sSirMacCW
2143{
2144#ifndef ANI_LITTLE_BIT_ENDIAN
2145 tANI_U8 max : 4;
2146 tANI_U8 min : 4;
2147#else
2148 tANI_U8 min : 4;
2149 tANI_U8 max : 4;
2150#endif
2151} __ani_attr_packed tSirMacCW;
2152
2153typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2154{
2155 tSirMacAciAifsn aci;
2156 tSirMacCW cw;
2157 tANI_U16 txoplimit;
2158} __ani_attr_packed tSirMacEdcaParamRecord;
2159
2160typedef __ani_attr_pre_packed struct sSirMacSSid
2161{
2162 tANI_U8 length;
2163 tANI_U8 ssId[32];
2164} __ani_attr_packed tSirMacSSid;
2165
2166// Concurrency role. These are generic IDs that identify the various roles
2167// in the software system.
2168typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302169 HAL_STA_MODE=0,
2170 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002171 HAL_P2P_CLIENT_MODE,
2172 HAL_P2P_GO_MODE,
2173 HAL_MONITOR_MODE,
2174} tHalConMode;
2175
2176//This is a bit pattern to be set for each mode
2177//bit 0 - sta mode
2178//bit 1 - ap mode
2179//bit 2 - p2p client mode
2180//bit 3 - p2p go mode
2181typedef enum
2182{
Dino Mycle8afbac12014-07-04 22:06:17 +05302183 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002184 HAL_SAP=2,
2185 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2186 HAL_P2P_CLIENT=4,
2187 HAL_P2P_GO=8,
2188 HAL_MAX_CONCURRENCY_PERSONA=4
2189} tHalConcurrencyMode;
2190
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002191// IFACE PERSONA for different Operating modes
2192typedef enum
2193{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002194 HAL_IFACE_UNKNOWN=0,
2195 HAL_IFACE_STA_MODE=1,
2196 HAL_IFACE_P2P_MODE=2,
2197 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002198} tHalIfacePersona;
2199
Jeff Johnson295189b2012-06-20 16:38:30 -07002200typedef PACKED_PRE struct PACKED_POST
2201{
2202 /* BSSID */
2203 tSirMacAddr bssId;
2204
Jeff Johnson295189b2012-06-20 16:38:30 -07002205 /* Self Mac Address */
2206 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002207
2208 /* BSS type */
2209 tSirBssType bssType;
2210
2211 /*Operational Mode: AP =0, STA = 1*/
2212 tANI_U8 operMode;
2213
2214 /*Network Type*/
2215 tSirNwType nwType;
2216
2217 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2218 tANI_U8 shortSlotTimeSupported;
2219
2220 /*Co-exist with 11a STA*/
2221 tANI_U8 llaCoexist;
2222
2223 /*Co-exist with 11b STA*/
2224 tANI_U8 llbCoexist;
2225
2226 /*Co-exist with 11g STA*/
2227 tANI_U8 llgCoexist;
2228
2229 /*Coexistence with 11n STA*/
2230 tANI_U8 ht20Coexist;
2231
2232 /*Non GF coexist flag*/
2233 tANI_U8 llnNonGFCoexist;
2234
2235 /*TXOP protection support*/
2236 tANI_U8 fLsigTXOPProtectionFullSupport;
2237
2238 /*RIFS mode*/
2239 tANI_U8 fRIFSMode;
2240
2241 /*Beacon Interval in TU*/
2242 tSirMacBeaconInterval beaconInterval;
2243
2244 /*DTIM period*/
2245 tANI_U8 dtimPeriod;
2246
2247 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2248 tANI_U8 txChannelWidthSet;
2249
2250 /*Operating channel*/
2251 tANI_U8 currentOperChannel;
2252
2253 /*Extension channel for channel bonding*/
2254 tANI_U8 currentExtChannel;
2255
2256 /*Reserved to align next field on a dword boundary*/
2257 tANI_U8 reserved;
2258
Jeff Johnsone7245742012-09-05 17:12:55 -07002259 /*SSID of the BSS*/
2260 tSirMacSSid ssId;
2261
2262 /*HAL should update the existing BSS entry, if this flag is set.
2263 UMAC will set this flag in case of reassoc, where we want to resue the
2264 the old BSSID and still return success 0 = Add, 1 = Update*/
2265 tANI_U8 action;
2266
2267 /* MAC Rate Set */
2268 tSirMacRateSet rateSet;
2269
2270 /*Enable/Disable HT capabilities of the BSS*/
2271 tANI_U8 htCapable;
2272
2273 // Enable/Disable OBSS protection
2274 tANI_U8 obssProtEnabled;
2275
2276 /*RMF enabled/disabled*/
2277 tANI_U8 rmfEnabled;
2278
2279 /*HT Operating Mode operating mode of the 802.11n STA*/
2280 tSirMacHTOperatingMode htOperMode;
2281
2282 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2283 tANI_U8 dualCTSProtection;
2284
2285 /* Probe Response Max retries */
2286 tANI_U8 ucMaxProbeRespRetryLimit;
2287
2288 /* To Enable Hidden ssid */
2289 tANI_U8 bHiddenSSIDEn;
2290
2291 /* To Enable Disable FW Proxy Probe Resp */
2292 tANI_U8 bProxyProbeRespEn;
2293
2294 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2295 EDCA params or might not desire to apply EDCA params during config BSS.
2296 0 implies Not Valid ; Non-Zero implies valid*/
2297 tANI_U8 edcaParamsValid;
2298
2299 /*EDCA Parameters for Best Effort Access Category*/
2300 tSirMacEdcaParamRecord acbe;
2301
2302 /*EDCA Parameters forBackground Access Category*/
2303 tSirMacEdcaParamRecord acbk;
2304
2305 /*EDCA Parameters for Video Access Category*/
2306 tSirMacEdcaParamRecord acvi;
2307
2308 /*EDCA Parameters for Voice Access Category*/
2309 tSirMacEdcaParamRecord acvo;
2310
2311#ifdef WLAN_FEATURE_VOWIFI_11R
2312 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2313 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2314#endif
2315
2316 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2317 tANI_U8 halPersona;
2318
2319 tANI_U8 bSpectrumMgtEnable;
2320
2321 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2322 tANI_S8 txMgmtPower;
2323 /*maxTxPower has max power to be used after applying the power constraint if any */
2324 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002325 /*Context of the station being added in HW
2326 Add a STA entry for "itself" -
2327 On AP - Add the AP itself in an "STA context"
2328 On STA - Add the AP to which this STA is joining in an "STA context" */
2329 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002330} tConfigBssParams, * tpConfigBssParams;
2331
2332
2333/*--------------------------------------------------------------------------
2334 * WLAN_HAL_CONFIG_BSS_REQ
2335 *--------------------------------------------------------------------------*/
2336typedef PACKED_PRE struct PACKED_POST
2337{
2338 /* BSSID */
2339 tSirMacAddr bssId;
2340
Jeff Johnsone7245742012-09-05 17:12:55 -07002341 /* Self Mac Address */
2342 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002343
2344 /* BSS type */
2345 tSirBssType bssType;
2346
2347 /*Operational Mode: AP =0, STA = 1*/
2348 tANI_U8 operMode;
2349
2350 /*Network Type*/
2351 tSirNwType nwType;
2352
2353 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2354 tANI_U8 shortSlotTimeSupported;
2355
2356 /*Co-exist with 11a STA*/
2357 tANI_U8 llaCoexist;
2358
2359 /*Co-exist with 11b STA*/
2360 tANI_U8 llbCoexist;
2361
2362 /*Co-exist with 11g STA*/
2363 tANI_U8 llgCoexist;
2364
2365 /*Coexistence with 11n STA*/
2366 tANI_U8 ht20Coexist;
2367
2368 /*Non GF coexist flag*/
2369 tANI_U8 llnNonGFCoexist;
2370
2371 /*TXOP protection support*/
2372 tANI_U8 fLsigTXOPProtectionFullSupport;
2373 /*RIFS mode*/
2374 tANI_U8 fRIFSMode;
2375
2376 /*Beacon Interval in TU*/
2377 tSirMacBeaconInterval beaconInterval;
2378
2379 /*DTIM period*/
2380 tANI_U8 dtimPeriod;
2381
2382 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2383 tANI_U8 txChannelWidthSet;
2384
2385 /*Operating channel*/
2386 tANI_U8 currentOperChannel;
2387
2388 /*Extension channel for channel bonding*/
2389 tANI_U8 currentExtChannel;
2390
2391 /*Reserved to align next field on a dword boundary*/
2392 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002393
2394 /*SSID of the BSS*/
2395 tSirMacSSid ssId;
2396
2397 /*HAL should update the existing BSS entry, if this flag is set.
2398 UMAC will set this flag in case of reassoc, where we want to resue the
2399 the old BSSID and still return success 0 = Add, 1 = Update*/
2400 tANI_U8 action;
2401
2402 /* MAC Rate Set */
2403 tSirMacRateSet rateSet;
2404
2405 /*Enable/Disable HT capabilities of the BSS*/
2406 tANI_U8 htCapable;
2407
2408 // Enable/Disable OBSS protection
2409 tANI_U8 obssProtEnabled;
2410
2411 /*RMF enabled/disabled*/
2412 tANI_U8 rmfEnabled;
2413
2414 /*HT Operating Mode operating mode of the 802.11n STA*/
2415 tSirMacHTOperatingMode htOperMode;
2416
2417 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2418 tANI_U8 dualCTSProtection;
2419
2420 /* Probe Response Max retries */
2421 tANI_U8 ucMaxProbeRespRetryLimit;
2422
2423 /* To Enable Hidden ssid */
2424 tANI_U8 bHiddenSSIDEn;
2425
2426 /* To Enable Disable FW Proxy Probe Resp */
2427 tANI_U8 bProxyProbeRespEn;
2428
Dino Mycle8afbac12014-07-04 22:06:17 +05302429 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2430 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002431 0 implies Not Valid ; Non-Zero implies valid*/
2432 tANI_U8 edcaParamsValid;
2433
2434 /*EDCA Parameters for Best Effort Access Category*/
2435 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302436
Jeff Johnson295189b2012-06-20 16:38:30 -07002437 /*EDCA Parameters forBackground Access Category*/
2438 tSirMacEdcaParamRecord acbk;
2439
2440 /*EDCA Parameters for Video Access Category*/
2441 tSirMacEdcaParamRecord acvi;
2442
2443 /*EDCA Parameters for Voice Access Category*/
2444 tSirMacEdcaParamRecord acvo;
2445
2446#ifdef WLAN_FEATURE_VOWIFI_11R
2447 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2448 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2449#endif
2450
Dino Mycle8afbac12014-07-04 22:06:17 +05302451 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002452 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302453
Jeff Johnson295189b2012-06-20 16:38:30 -07002454 tANI_U8 bSpectrumMgtEnable;
2455
2456 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2457 tANI_S8 txMgmtPower;
2458 /*maxTxPower has max power to be used after applying the power constraint if any */
2459 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002460 /*Context of the station being added in HW
2461 Add a STA entry for "itself" -
2462 On AP - Add the AP itself in an "STA context"
2463 On STA - Add the AP to which this STA is joining in an "STA context" */
2464 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302465
Jeff Johnsone7245742012-09-05 17:12:55 -07002466 tANI_U8 vhtCapable;
2467 tANI_U8 vhtTxChannelWidthSet;
2468} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002469
2470typedef PACKED_PRE struct PACKED_POST
2471{
2472 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002473 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002474 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002475 tConfigBssParams_V1 configBssParams_V1;
2476 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002477} tConfigBssReqMsg, *tpConfigBssReqMsg;
2478
2479/*---------------------------------------------------------------------------
2480 WLAN_HAL_CONFIG_BSS_RSP
2481---------------------------------------------------------------------------*/
2482
2483typedef PACKED_PRE struct PACKED_POST
2484{
2485 /* Success or Failure */
2486 tANI_U32 status;
2487
2488 /* BSS index allocated by HAL */
2489 tANI_U8 bssIdx;
2490
2491 /* DPU descriptor index for PTK */
2492 tANI_U8 dpuDescIndx;
2493
2494 /* PTK DPU signature */
2495 tANI_U8 ucastDpuSignature;
2496
2497 /* DPU descriptor index for GTK*/
2498 tANI_U8 bcastDpuDescIndx;
2499
2500 /* GTK DPU signature */
2501 tANI_U8 bcastDpuSignature;
2502
2503 /*DPU descriptor for IGTK*/
2504 tANI_U8 mgmtDpuDescIndx;
2505
2506 /* IGTK DPU signature */
2507 tANI_U8 mgmtDpuSignature;
2508
2509 /* Station Index for BSS entry*/
2510 tANI_U8 bssStaIdx;
2511
2512 /* Self station index for this BSS */
2513 tANI_U8 bssSelfStaIdx;
2514
2515 /* Bcast station for buffering bcast frames in AP role */
2516 tANI_U8 bssBcastStaIdx;
2517
2518 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2519 tSirMacAddr staMac;
2520
2521 /*HAL fills in the tx power used for mgmt frames in this field. */
2522 tANI_S8 txMgmtPower;
2523
2524} tConfigBssRspParams, * tpConfigBssRspParams;
2525
2526typedef PACKED_PRE struct PACKED_POST
2527{
2528 tHalMsgHeader header;
2529 tConfigBssRspParams configBssRspParams;
2530} tConfigBssRspMsg, *tpConfigBssRspMsg;
2531
2532/*---------------------------------------------------------------------------
2533 WLAN_HAL_DELETE_BSS_REQ
2534---------------------------------------------------------------------------*/
2535
2536typedef PACKED_PRE struct PACKED_POST
2537{
2538 /* BSS index to be deleted */
2539 tANI_U8 bssIdx;
2540
2541} tDeleteBssParams, *tpDeleteBssParams;
2542
2543typedef PACKED_PRE struct PACKED_POST
2544{
2545 tHalMsgHeader header;
2546 tDeleteBssParams deleteBssParams;
2547} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2548
2549/*---------------------------------------------------------------------------
2550 WLAN_HAL_DELETE_BSS_RSP
2551---------------------------------------------------------------------------*/
2552
2553typedef PACKED_PRE struct PACKED_POST
2554{
2555 /* Success or Failure */
2556 tANI_U32 status;
2557
2558 /* BSS index that has been deleted */
2559 tANI_U8 bssIdx;
2560
2561} tDeleteBssRspParams, *tpDeleteBssRspParams;
2562
2563typedef PACKED_PRE struct PACKED_POST
2564{
2565 tHalMsgHeader header;
2566 tDeleteBssRspParams deleteBssRspParams;
2567} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2568
2569/*---------------------------------------------------------------------------
2570 WLAN_HAL_JOIN_REQ
2571---------------------------------------------------------------------------*/
2572
2573typedef PACKED_PRE struct PACKED_POST
2574{
2575 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302576 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002577
2578 /*Indicates the channel to switch to.*/
2579 tANI_U8 ucChannel;
2580
2581 /* Self STA MAC */
2582 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302583
Jeff Johnson295189b2012-06-20 16:38:30 -07002584 /*Local power constraint*/
2585 tANI_U8 ucLocalPowerConstraint;
2586
2587 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002588 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002589
2590 /*link State*/
2591 tSirLinkState linkState;
2592
2593 /* Max TX power */
2594 tANI_S8 maxTxPower;
2595
2596} tHalJoinReqParams, *tpHalJoinReqParams;
2597
2598typedef PACKED_PRE struct PACKED_POST
2599{
2600 tHalMsgHeader header;
2601 tHalJoinReqParams joinReqParams;
2602} tHalJoinReqMsg, *tpHalJoinReqMsg;
2603
2604/*---------------------------------------------------------------------------
2605 WLAN_HAL_JOIN_RSP
2606---------------------------------------------------------------------------*/
2607
2608typedef PACKED_PRE struct PACKED_POST
2609{
2610 /*success or failure */
2611 tANI_U32 status;
2612
2613 /* HAL fills in the tx power used for mgmt frames in this field */
2614 tPowerdBm txMgmtPower;
2615
2616}tHalJoinRspParams, *tpHalJoinRspParams;
2617
2618typedef PACKED_PRE struct PACKED_POST
2619{
2620 tHalMsgHeader header;
2621 tHalJoinRspParams joinRspParams;
2622}tHalJoinRspMsg, *tpHalJoinRspMsg;
2623
2624/*---------------------------------------------------------------------------
2625 WLAN_HAL_POST_ASSOC_REQ
2626---------------------------------------------------------------------------*/
2627
2628typedef PACKED_PRE struct PACKED_POST
2629{
2630 tConfigStaParams configStaParams;
2631 tConfigBssParams configBssParams;
2632} tPostAssocReqParams, *tpPostAssocReqParams;
2633
2634typedef PACKED_PRE struct PACKED_POST
2635{
2636 tHalMsgHeader header;
2637 tPostAssocReqParams postAssocReqParams;
2638} tPostAssocReqMsg, *tpPostAssocReqMsg;
2639
2640/*---------------------------------------------------------------------------
2641 WLAN_HAL_POST_ASSOC_RSP
2642---------------------------------------------------------------------------*/
2643
2644typedef PACKED_PRE struct PACKED_POST
2645{
2646 tConfigStaRspParams configStaRspParams;
2647 tConfigBssRspParams configBssRspParams;
2648} tPostAssocRspParams, *tpPostAssocRspParams;
2649
2650typedef PACKED_PRE struct PACKED_POST
2651{
2652 tHalMsgHeader header;
2653 tPostAssocRspParams postAssocRspParams;
2654} tPostAssocRspMsg, *tpPostAssocRspMsg;
2655
2656/*---------------------------------------------------------------------------
2657 WLAN_HAL_SET_BSSKEY_REQ
2658---------------------------------------------------------------------------*/
2659
2660/*
2661 * This is used by PE to create a set of WEP keys for a given BSS.
2662 */
2663typedef PACKED_PRE struct PACKED_POST
2664{
2665 /*BSS Index of the BSS*/
2666 tANI_U8 bssIdx;
2667
2668 /*Encryption Type used with peer*/
2669 tAniEdType encType;
2670
2671 /*Number of keys*/
2672 tANI_U8 numKeys;
2673
2674 /*Array of keys.*/
2675 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302676
Jeff Johnson295189b2012-06-20 16:38:30 -07002677 /*Control for Replay Count, 1= Single TID based replay count on Tx
2678 0 = Per TID based replay count on TX */
2679 tANI_U8 singleTidRc;
2680} tSetBssKeyParams, *tpSetBssKeyParams;
2681
2682typedef PACKED_PRE struct PACKED_POST
2683{
2684 tHalMsgHeader header;
2685 tSetBssKeyParams setBssKeyParams;
2686} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2687
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002688/* tagged version of set bss key */
2689typedef PACKED_PRE struct PACKED_POST
2690{
2691 tSetBssKeyReqMsg Msg;
2692 uint32 Tag;
2693} tSetBssKeyReqMsgTagged;
2694
Jeff Johnson295189b2012-06-20 16:38:30 -07002695/*---------------------------------------------------------------------------
2696 WLAN_HAL_SET_BSSKEY_RSP
2697---------------------------------------------------------------------------*/
2698typedef PACKED_PRE struct PACKED_POST
2699{
2700 /*success or failure */
2701 tANI_U32 status;
2702
2703} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2704
2705typedef PACKED_PRE struct PACKED_POST
2706{
2707 tHalMsgHeader header;
2708 tSetBssKeyRspParams setBssKeyRspParams;
2709} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2710
2711/*---------------------------------------------------------------------------
2712 WLAN_HAL_SET_STAKEY_REQ,
2713---------------------------------------------------------------------------*/
2714
2715/*
2716 * This is used by PE to configure the key information on a given station.
2717 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2718 * a preconfigured key from a BSS the station assoicated with; otherwise
2719 * a new key descriptor is created based on the key field.
2720 */
2721
2722typedef PACKED_PRE struct PACKED_POST
2723{
2724 tHalMsgHeader header;
2725 tSetStaKeyParams setStaKeyParams;
2726} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2727
2728/*---------------------------------------------------------------------------
2729 WLAN_HAL_SET_STAKEY_RSP,
2730---------------------------------------------------------------------------*/
2731typedef PACKED_PRE struct PACKED_POST
2732{
2733 /*success or failure */
2734 tANI_U32 status;
2735
2736} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2737
2738typedef PACKED_PRE struct PACKED_POST
2739{
2740 tHalMsgHeader header;
2741 tSetStaKeyRspParams setStaKeyRspParams;
2742} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2743
2744/*---------------------------------------------------------------------------
2745 WLAN_HAL_RMV_BSSKEY_REQ,
2746---------------------------------------------------------------------------*/
2747/*
2748 * This is used by PE to remove keys for a given BSS.
2749 */
2750typedef PACKED_PRE struct PACKED_POST
2751
2752{
2753 /*BSS Index of the BSS*/
2754 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302755
Jeff Johnson295189b2012-06-20 16:38:30 -07002756 /*Encryption Type used with peer*/
2757 tAniEdType encType;
2758
2759 /*Key Id*/
2760 tANI_U8 keyId;
2761
2762 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2763 tAniWepType wepType;
2764
2765} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2766
2767typedef PACKED_PRE struct PACKED_POST
2768{
2769 tHalMsgHeader header;
2770 tRemoveBssKeyParams removeBssKeyParams;
2771} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2772
2773/*---------------------------------------------------------------------------
2774 WLAN_HAL_RMV_BSSKEY_RSP,
2775---------------------------------------------------------------------------*/
2776typedef PACKED_PRE struct PACKED_POST
2777{
2778 /*success or failure */
2779 tANI_U32 status;
2780
2781} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2782
2783typedef PACKED_PRE struct PACKED_POST
2784{
2785 tHalMsgHeader header;
2786 tRemoveBssKeyRspParams removeBssKeyRspParams;
2787} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2788
2789/*---------------------------------------------------------------------------
2790 WLAN_HAL_RMV_STAKEY_REQ,
2791---------------------------------------------------------------------------*/
2792/*
2793 * This is used by PE to Remove the key information on a given station.
2794 */
2795typedef PACKED_PRE struct PACKED_POST
2796{
2797 /*STA Index*/
2798 tANI_U16 staIdx;
2799
2800 /*Encryption Type used with peer*/
2801 tAniEdType encType;
2802
2803 /*Key Id*/
2804 tANI_U8 keyId;
2805
2806 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2807 the same key is used for both broadcast and unicast.*/
2808 tANI_BOOLEAN unicast;
2809
2810} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2811
2812typedef PACKED_PRE struct PACKED_POST
2813{
2814 tHalMsgHeader header;
2815 tRemoveStaKeyParams removeStaKeyParams;
2816} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2817
2818/*---------------------------------------------------------------------------
2819 WLAN_HAL_RMV_STAKEY_RSP,
2820---------------------------------------------------------------------------*/
2821typedef PACKED_PRE struct PACKED_POST
2822{
2823 /*success or failure */
2824 tANI_U32 status;
2825} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2826
2827typedef PACKED_PRE struct PACKED_POST
2828{
2829 tHalMsgHeader header;
2830 tRemoveStaKeyRspParams removeStaKeyRspParams;
2831} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2832
Jeff Johnsone7245742012-09-05 17:12:55 -07002833#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002834
Jeff Johnsone7245742012-09-05 17:12:55 -07002835#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002836#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002837#endif
2838
2839#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002840#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002841#endif
2842
2843/*-------------------------------------------------------------------------
2844WLAN_HAL_START_OEM_DATA_REQ
2845--------------------------------------------------------------------------*/
2846typedef PACKED_PRE struct PACKED_POST
2847{
2848 tANI_U32 status;
2849 tSirMacAddr selfMacAddr;
2850 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2851} tStartOemDataReqParams, *tpStartOemDataReqParams;
2852
2853typedef PACKED_PRE struct PACKED_POST
2854{
2855 tHalMsgHeader header;
2856 tStartOemDataReqParams startOemDataReqParams;
2857} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2858
2859/*-------------------------------------------------------------------------
2860WLAN_HAL_START_OEM_DATA_RSP
2861--------------------------------------------------------------------------*/
2862
2863typedef PACKED_PRE struct PACKED_POST
2864{
2865 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2866} tStartOemDataRspParams, *tpStartOemDataRspParams;
2867
2868typedef PACKED_PRE struct PACKED_POST
2869{
2870 tHalMsgHeader header;
2871 tStartOemDataRspParams startOemDataRspParams;
2872} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2873
2874#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002875
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002876/*---------------------------------------------------------------------------
2877WLAN_HAL_CH_SWITCH_V1_REQ
2878---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002879
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002880typedef PACKED_PRE struct PACKED_POST
2881{
2882 /* Channel number */
2883 tANI_U8 channelNumber;
2884
2885 /* Local power constraint */
2886 tANI_U8 localPowerConstraint;
2887
2888 /*Secondary channel offset */
2889 ePhyChanBondState secondaryChannelOffset;
2890
2891 //HAL fills in the tx power used for mgmt frames in this field.
2892 tPowerdBm txMgmtPower;
2893
2894 /* Max TX power */
2895 tPowerdBm maxTxPower;
2896
2897 /* Self STA MAC */
2898 tSirMacAddr selfStaMacAddr;
2899
2900 /*VO WIFI comment: BSSID needed to identify session. As the request has
2901 * power constraints, this should be applied only to that session
2902 * Since MTU timing and EDCA are sessionized, this struct needs to be
2903 * sessionized and bssid needs to be out of the VOWifi feature flag
2904 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002905 * mantain backward compatbility
2906 * by way of ignoring if using new host/old FW or old host/new FW since
2907 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002908 */
2909 tSirMacAddr bssId;
2910
2911 /* Source of Channel Switch */
2912 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002913
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002914} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2915
2916typedef PACKED_PRE struct PACKED_POST
2917{
2918 tHalMsgHeader header;
2919 tSwitchChannelParams_V1 switchChannelParams_V1;
2920} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2921
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002922/*---------------------------------------------------------------------------
2923WLAN_HAL_CH_SWITCH_V1_RSP
2924---------------------------------------------------------------------------*/
2925
2926typedef PACKED_PRE struct PACKED_POST
2927{
2928 /* Status */
2929 tANI_U32 status;
2930
2931 /* Channel number - same as in request*/
2932 tANI_U8 channelNumber;
2933
2934 /* HAL fills in the tx power used for mgmt frames in this field */
2935 tPowerdBm txMgmtPower;
2936
2937 /* BSSID needed to identify session - same as in request*/
2938 tSirMacAddr bssId;
2939
2940 /* Source of Channel Switch */
2941 eHalChanSwitchSource channelSwitchSrc;
2942
2943} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2944
2945typedef PACKED_PRE struct PACKED_POST
2946{
2947 tHalMsgHeader header;
2948 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2949} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002950
2951/*---------------------------------------------------------------------------
2952WLAN_HAL_CH_SWITCH_REQ
2953---------------------------------------------------------------------------*/
2954
2955typedef PACKED_PRE struct PACKED_POST
2956{
2957 /* Channel number */
2958 tANI_U8 channelNumber;
2959
2960 /* Local power constraint */
2961 tANI_U8 localPowerConstraint;
2962
2963 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002964 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002965
2966 //HAL fills in the tx power used for mgmt frames in this field.
2967 tPowerdBm txMgmtPower;
2968
2969 /* Max TX power */
2970 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302971
Jeff Johnson295189b2012-06-20 16:38:30 -07002972 /* Self STA MAC */
2973 tSirMacAddr selfStaMacAddr;
2974
2975 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2976 this should be applied only to that session*/
2977 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2978 * bssid needs to be out of the VOWifi feature flag */
2979 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2980 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2981 */
2982 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302983
Jeff Johnson295189b2012-06-20 16:38:30 -07002984}tSwitchChannelParams, *tpSwitchChannelParams;
2985
2986typedef PACKED_PRE struct PACKED_POST
2987{
2988 tHalMsgHeader header;
2989 tSwitchChannelParams switchChannelParams;
2990} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2991
2992/*---------------------------------------------------------------------------
2993WLAN_HAL_CH_SWITCH_RSP
2994---------------------------------------------------------------------------*/
2995
2996typedef PACKED_PRE struct PACKED_POST
2997{
2998 /* Status */
2999 tANI_U32 status;
3000
3001 /* Channel number - same as in request*/
3002 tANI_U8 channelNumber;
3003
3004 /* HAL fills in the tx power used for mgmt frames in this field */
3005 tPowerdBm txMgmtPower;
3006
3007 /* BSSID needed to identify session - same as in request*/
3008 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303009
Jeff Johnson295189b2012-06-20 16:38:30 -07003010}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3011
3012typedef PACKED_PRE struct PACKED_POST
3013{
3014 tHalMsgHeader header;
3015 tSwitchChannelRspParams switchChannelRspParams;
3016} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3017
3018/*---------------------------------------------------------------------------
3019WLAN_HAL_UPD_EDCA_PARAMS_REQ
3020---------------------------------------------------------------------------*/
3021
3022typedef PACKED_PRE struct PACKED_POST
3023{
3024 /*BSS Index*/
3025 tANI_U16 bssIdx;
3026
3027 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303028 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003029
3030 /* Background */
3031 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303032
Jeff Johnson295189b2012-06-20 16:38:30 -07003033 /* Video */
3034 tSirMacEdcaParamRecord acvi;
3035
3036 /* Voice */
3037 tSirMacEdcaParamRecord acvo;
3038
3039} tEdcaParams, *tpEdcaParams;
3040
3041typedef PACKED_PRE struct PACKED_POST
3042{
3043 tHalMsgHeader header;
3044 tEdcaParams edcaParams;
3045} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3046
3047/*---------------------------------------------------------------------------
3048WLAN_HAL_UPD_EDCA_PARAMS_RSP
3049---------------------------------------------------------------------------*/
3050typedef PACKED_PRE struct PACKED_POST
3051{
3052 /*success or failure */
3053 tANI_U32 status;
3054} tEdcaRspParams, *tpEdcaRspParams;
3055
3056typedef PACKED_PRE struct PACKED_POST
3057{
3058 tHalMsgHeader header;
3059 tEdcaRspParams edcaRspParams;
3060} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3061
3062
3063
3064/*---------------------------------------------------------------------------
3065 * WLAN_HAL_GET_STATS_REQ
3066 *--------------------------------------------------------------------------*/
3067typedef PACKED_PRE struct PACKED_POST
3068
3069{
3070 /* Index of STA to which the statistics */
3071 tANI_U16 staIdx;
3072
3073 /* Encryption mode */
3074 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303075
Jeff Johnson295189b2012-06-20 16:38:30 -07003076 /* status */
3077 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303078
Jeff Johnson295189b2012-06-20 16:38:30 -07003079 /* Statistics */
3080 tANI_U32 sendBlocks;
3081 tANI_U32 recvBlocks;
3082 tANI_U32 replays;
3083 tANI_U8 micErrorCnt;
3084 tANI_U32 protExclCnt;
3085 tANI_U16 formatErrCnt;
3086 tANI_U16 unDecryptableCnt;
3087 tANI_U32 decryptErrCnt;
3088 tANI_U32 decryptOkCnt;
3089} tDpuStatsParams, * tpDpuStatsParams;
3090
3091typedef PACKED_PRE struct PACKED_POST
3092{
3093 /* Valid STA Idx for per STA stats request */
3094 tANI_U32 staId;
3095
3096 /* Categories of stats requested as specified in eHalStatsMask*/
3097 tANI_U32 statsMask;
3098}tHalStatsReqParams, *tpHalStatsReqParams;
3099
3100typedef PACKED_PRE struct PACKED_POST
3101{
3102 tHalMsgHeader header;
3103 tHalStatsReqParams statsReqParams;
3104} tHalStatsReqMsg, *tpHalStatsReqMsg;
3105
3106/*---------------------------------------------------------------------------
3107 * WLAN_HAL_GET_STATS_RSP
3108 *--------------------------------------------------------------------------*/
3109
3110typedef PACKED_PRE struct PACKED_POST
3111{
3112 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3113 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3114 // station successfully transmitted after more than one retransmission attempt
3115
Dino Mycle8afbac12014-07-04 22:06:17 +05303116 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3117 //(with and without retries, including multi-cast, broadcast)
3118 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3119 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003120 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3121 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3122 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3123 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 +05303124 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3125 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 -07003126 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3127 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 +05303128 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3129 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003130 //to provide this.
3131}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3132
3133
3134// defines tx_rate_flags
3135typedef enum eTxRateInfo
3136{
3137 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3138 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3139 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3140 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003141 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3142 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3143 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3144 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3145 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3146 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3147} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003148
3149
3150typedef PACKED_PRE struct PACKED_POST
3151{
Dino Mycle8afbac12014-07-04 22:06:17 +05303152 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 -07003153 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303154 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 -07003155 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303156 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3157 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003158 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303159 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3160 //for eg: if it is 10.5dBm, the value would be 105
3161 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3162 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003163
Dino Mycle8afbac12014-07-04 22:06:17 +05303164 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3165 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003166 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303167 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3168 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003169}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3170
3171typedef PACKED_PRE struct PACKED_POST
3172{
Dino Mycle8afbac12014-07-04 22:06:17 +05303173 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3174 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003175 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303176 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 -07003177 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303178 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 -07003179 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303180 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 -07003181 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303182 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 -07003183 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303184 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 -07003185 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303186 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 -07003187 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303188 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 -07003189 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303190 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 -07003191 //decrypted
3192 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3193
3194}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303195
Jeff Johnson295189b2012-06-20 16:38:30 -07003196typedef PACKED_PRE struct PACKED_POST
3197{
3198 tAniGlobalSecurityStats ucStats;
3199 tAniGlobalSecurityStats mcbcStats;
3200}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3201
3202typedef PACKED_PRE struct PACKED_POST
3203{
Dino Mycle8afbac12014-07-04 22:06:17 +05303204 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3205 //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 -07003206 //address 1 field
3207 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 +05303208 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 -07003209 //primary channel
3210 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 +05303211 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 -07003212 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303213 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3214 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003215 //decoded correctly
3216}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3217
3218typedef PACKED_PRE struct PACKED_POST
3219{
Dino Mycle8afbac12014-07-04 22:06:17 +05303220 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 -07003221 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303222 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3223 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 -07003224 //is transmitted
3225}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3226
Sushant Kaushik33200572015-08-05 16:46:20 +05303227// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3228typedef PACKED_PRE struct PACKED_POST
3229{
3230 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
Sushant Kaushik3d5c1e62015-10-07 12:05:33 +05303231 tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
Sushant Kaushik33200572015-08-05 16:46:20 +05303232 tANI_U32 reserved;
3233 tANI_U32 reserved1;
3234}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3235
Jeff Johnson295189b2012-06-20 16:38:30 -07003236typedef PACKED_PRE struct PACKED_POST
3237{
3238 /* Success or Failure */
3239 tANI_U32 status;
3240
3241 /* STA Idx */
3242 tANI_U32 staId;
3243
3244 /* Categories of STATS being returned as per eHalStatsMask*/
3245 tANI_U32 statsMask;
3246
3247 /* message type is same as the request type */
3248 tANI_U16 msgType;
3249
3250 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303251 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003252
3253} tHalStatsRspParams, *tpHalStatsRspParams;
3254
3255
3256
3257typedef PACKED_PRE struct PACKED_POST
3258{
3259 tHalMsgHeader header;
3260 tHalStatsRspParams statsRspParams;
3261} tHalStatsRspMsg, *tpHalStatsRspMsg;
3262
Abhishek Singhbc310882015-05-22 15:17:02 +05303263 /*---------------------------------------------------------------------------
3264 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3265 *---------------------------------------------------------------------------*/
3266typedef PACKED_PRE struct PACKED_POST
3267{
3268 tANI_U32 rtsCtsValue;
3269}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3270
3271typedef PACKED_PRE struct PACKED_POST
3272{
3273 tHalMsgHeader header;
3274 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3275} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3276
Jeff Johnson295189b2012-06-20 16:38:30 -07003277/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303278 * WLAN_HAL_FW_STATS_REQ
3279 *---------------------------------------------------------------------------*/
3280 typedef PACKED_PRE struct PACKED_POST
3281{
3282 tANI_U32 type;
3283}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3284
3285typedef PACKED_PRE struct PACKED_POST
3286{
3287 tHalMsgHeader header;
3288 tHalfwStatsReqParams fwstatsReqParams;
3289} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3290
3291/*---------------------------------------------------------------------------
3292 * WLAN_HAL_FW_STATS_RSP
3293 *---------------------------------------------------------------------------*/
3294 typedef PACKED_PRE struct PACKED_POST
3295{
3296 tANI_U32 type;
3297 tANI_U32 length;
3298 tANI_U8 data[1];
3299
3300}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3301
3302typedef PACKED_PRE struct PACKED_POST
3303{
3304 tHalMsgHeader header;
3305 tHalfwStatsRspParams fwstatsRspParams;
3306} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3307
3308typedef enum
3309{
3310 FW_UBSP_STATS = 1,
3311} fwstatstype;
3312
3313
3314/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003315 * WLAN_HAL_SET_LINK_ST_REQ
3316 *--------------------------------------------------------------------------*/
3317typedef PACKED_PRE struct PACKED_POST
3318{
3319 tSirMacAddr bssid;
3320 tSirLinkState state;
3321 tSirMacAddr selfMacAddr;
3322} tLinkStateParams, *tpLinkStateParams;
3323
3324typedef PACKED_PRE struct PACKED_POST
3325{
3326 tHalMsgHeader header;
3327 tLinkStateParams linkStateParams;
3328} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3329
3330/*---------------------------------------------------------------------------
3331 * WLAN_HAL_SET_LINK_ST_RSP
3332 *--------------------------------------------------------------------------*/
3333
3334typedef PACKED_PRE struct PACKED_POST
3335{
3336 /*success or failure */
3337 tANI_U32 status;
3338} tLinkStateRspParams, *tpLinkStateRspParams;
3339
3340typedef PACKED_PRE struct PACKED_POST
3341{
3342 tHalMsgHeader header;
3343 tLinkStateRspParams linkStateRspParams;
3344} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3345
3346/*---------------------------------------------------------------------------
3347 * WLAN_HAL_ADD_TS_REQ
3348 *--------------------------------------------------------------------------*/
3349
3350/* TSPEC Params */
3351typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3352{
Jeff Johnson295189b2012-06-20 16:38:30 -07003353 tANI_U16 trafficType : 1;
3354 tANI_U16 tsid : 4;
3355 tANI_U16 direction : 2;
3356 tANI_U16 accessPolicy : 2;
3357 tANI_U16 aggregation : 1;
3358 tANI_U16 psb : 1;
3359 tANI_U16 userPrio : 3;
3360 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003361} __ani_attr_packed tSirMacTSInfoTfc;
3362
3363/* Flag to schedule the traffic type */
3364typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3365{
Jeff Johnson295189b2012-06-20 16:38:30 -07003366 tANI_U8 schedule : 1;
3367 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003368} __ani_attr_packed tSirMacTSInfoSch;
3369
3370/* Traffic and scheduling info */
3371typedef __ani_attr_pre_packed struct sSirMacTSInfo
3372{
3373 tSirMacTSInfoTfc traffic;
3374 tSirMacTSInfoSch schedule;
3375} __ani_attr_packed tSirMacTSInfo;
3376
3377/* Information elements */
3378typedef __ani_attr_pre_packed struct sSirMacTspecIE
3379{
3380 tANI_U8 type;
3381 tANI_U8 length;
3382 tSirMacTSInfo tsinfo;
3383 tANI_U16 nomMsduSz;
3384 tANI_U16 maxMsduSz;
3385 tANI_U32 minSvcInterval;
3386 tANI_U32 maxSvcInterval;
3387 tANI_U32 inactInterval;
3388 tANI_U32 suspendInterval;
3389 tANI_U32 svcStartTime;
3390 tANI_U32 minDataRate;
3391 tANI_U32 meanDataRate;
3392 tANI_U32 peakDataRate;
3393 tANI_U32 maxBurstSz;
3394 tANI_U32 delayBound;
3395 tANI_U32 minPhyRate;
3396 tANI_U16 surplusBw;
3397 tANI_U16 mediumTime;
3398}__ani_attr_packed tSirMacTspecIE;
3399
3400typedef PACKED_PRE struct PACKED_POST
3401{
3402 /* Station Index */
3403 tANI_U16 staIdx;
3404
3405 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3406 tANI_U16 tspecIdx;
3407
3408 /* To program TPE with required parameters */
3409 tSirMacTspecIE tspec;
3410
3411 /* U-APSD Flags: 1b per AC. Encoded as follows:
3412 b7 b6 b5 b4 b3 b2 b1 b0 =
3413 X X X X BE BK VI VO */
3414 tANI_U8 uAPSD;
3415
3416 /* These parameters are for all the access categories */
3417 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3418 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3419 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303420
Jeff Johnson295189b2012-06-20 16:38:30 -07003421} tAddTsParams, *tpAddTsParams;
3422
3423typedef PACKED_PRE struct PACKED_POST
3424{
3425 tHalMsgHeader header;
3426 tAddTsParams addTsParams;
3427} tAddTsReqMsg, *tpAddTsReqMsg;
3428
3429/*---------------------------------------------------------------------------
3430 * WLAN_HAL_ADD_TS_RSP
3431 *--------------------------------------------------------------------------*/
3432
3433typedef PACKED_PRE struct PACKED_POST
3434{
3435 /*success or failure */
3436 tANI_U32 status;
3437} tAddTsRspParams, *tpAddTsRspParams;
3438
3439typedef PACKED_PRE struct PACKED_POST
3440{
3441 tHalMsgHeader header;
3442 tAddTsRspParams addTsRspParams;
3443} tAddTsRspMsg, *tpAddTsRspMsg;
3444
3445
3446/*---------------------------------------------------------------------------
3447 * WLAN_HAL_DEL_TS_REQ
3448 *--------------------------------------------------------------------------*/
3449
3450typedef PACKED_PRE struct PACKED_POST
3451{
3452 /* Station Index */
3453 tANI_U16 staIdx;
3454
3455 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3456 tANI_U16 tspecIdx;
3457
3458 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303459 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003460
3461} tDelTsParams, *tpDelTsParams;
3462
3463typedef PACKED_PRE struct PACKED_POST
3464{
3465 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303466 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003467} tDelTsReqMsg, *tpDelTsReqMsg;
3468
3469/*---------------------------------------------------------------------------
3470 * WLAN_HAL_DEL_TS_RSP
3471 *--------------------------------------------------------------------------*/
3472
3473typedef PACKED_PRE struct PACKED_POST
3474{
3475 /*success or failure */
3476 tANI_U32 status;
3477} tDelTsRspParams, *tpDelTsRspParams;
3478
3479typedef PACKED_PRE struct PACKED_POST
3480{
3481 tHalMsgHeader header;
3482 tDelTsRspParams delTsRspParams;
3483} tDelTsRspMsg, *tpDelTsRspMsg;
3484
3485/* End of TSpec Parameters */
3486
3487/* Start of BLOCK ACK related Parameters */
3488
3489/*---------------------------------------------------------------------------
3490 * WLAN_HAL_ADD_BA_SESSION_REQ
3491 *--------------------------------------------------------------------------*/
3492
3493typedef PACKED_PRE struct PACKED_POST
3494{
3495 /* Station Index */
3496 tANI_U16 staIdx;
3497
3498 /* Peer MAC Address */
3499 tSirMacAddr peerMacAddr;
3500
3501 /* ADDBA Action Frame dialog token
3502 HAL will not interpret this object */
3503 tANI_U8 baDialogToken;
3504
3505 /* TID for which the BA is being setup
3506 This identifies the TC or TS of interest */
3507 tANI_U8 baTID;
3508
3509 /* 0 - Delayed BA (Not supported)
3510 1 - Immediate BA */
3511 tANI_U8 baPolicy;
3512
3513 /* Indicates the number of buffers for this TID (baTID)
3514 NOTE - This is the requested buffer size. When this
3515 is processed by HAL and subsequently by HDD, it is
3516 possible that HDD may change this buffer size. Any
3517 change in the buffer size should be noted by PE and
3518 advertized appropriately in the ADDBA response */
3519 tANI_U16 baBufferSize;
3520
3521 /* BA timeout in TU's 0 means no timeout will occur */
3522 tANI_U16 baTimeout;
3523
3524 /* b0..b3 - Fragment Number - Always set to 0
3525 b4..b15 - Starting Sequence Number of first MSDU
3526 for which this BA is setup */
3527 tANI_U16 baSSN;
3528
3529 /* ADDBA direction
3530 1 - Originator
3531 0 - Recipient */
3532 tANI_U8 baDirection;
3533} tAddBASessionParams, *tpAddBASessionParams;
3534
3535typedef PACKED_PRE struct PACKED_POST
3536{
3537 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303538 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003539}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3540
3541/*---------------------------------------------------------------------------
3542 * WLAN_HAL_ADD_BA_SESSION_RSP
3543 *--------------------------------------------------------------------------*/
3544
3545typedef PACKED_PRE struct PACKED_POST
3546{
3547 /*success or failure */
3548 tANI_U32 status;
3549
3550 /* Dialog token */
3551 tANI_U8 baDialogToken;
3552
3553 /* TID for which the BA session has been setup */
3554 tANI_U8 baTID;
3555
3556 /* BA Buffer Size allocated for the current BA session */
3557 tANI_U8 baBufferSize;
3558
3559 tANI_U8 baSessionID;
3560
3561 /* Reordering Window buffer */
3562 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303563
Jeff Johnson295189b2012-06-20 16:38:30 -07003564 /*Station Index to id the sta */
3565 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303566
Jeff Johnson295189b2012-06-20 16:38:30 -07003567 /* Starting Sequence Number */
3568 tANI_U16 SSN;
3569} tAddBASessionRspParams, *tpAddBASessionRspParams;
3570
3571typedef PACKED_PRE struct PACKED_POST
3572{
3573 tHalMsgHeader header;
3574 tAddBASessionRspParams addBASessionRspParams;
3575} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3576
3577/*---------------------------------------------------------------------------
3578 * WLAN_HAL_ADD_BA_REQ
3579 *--------------------------------------------------------------------------*/
3580
3581typedef PACKED_PRE struct PACKED_POST
3582{
3583 /* Session Id */
3584 tANI_U8 baSessionID;
3585
3586 /* Reorder Window Size */
3587 tANI_U8 winSize;
3588
3589#ifdef FEATURE_ON_CHIP_REORDERING
3590 tANI_BOOLEAN isReorderingDoneOnChip;
3591#endif
3592} tAddBAParams, *tpAddBAParams;
3593
3594typedef PACKED_PRE struct PACKED_POST
3595{
3596 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303597 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003598} tAddBAReqMsg, *tpAddBAReqMsg;
3599
3600
3601/*---------------------------------------------------------------------------
3602 * WLAN_HAL_ADD_BA_RSP
3603 *--------------------------------------------------------------------------*/
3604
3605typedef PACKED_PRE struct PACKED_POST
3606{
3607 /*success or failure */
3608 tANI_U32 status;
3609
3610 /* Dialog token */
3611 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303612
Jeff Johnson295189b2012-06-20 16:38:30 -07003613} tAddBARspParams, *tpAddBARspParams;
3614
3615typedef PACKED_PRE struct PACKED_POST
3616{
3617 tHalMsgHeader header;
3618 tAddBARspParams addBARspParams;
3619} tAddBARspMsg, *tpAddBARspMsg;
3620
3621
3622/*---------------------------------------------------------------------------
3623 * WLAN_HAL_TRIGGER_BA_REQ
3624 *--------------------------------------------------------------------------*/
3625
3626
3627typedef struct sAddBaInfo
3628{
3629 tANI_U16 fBaEnable : 1;
3630 tANI_U16 startingSeqNum: 12;
3631 tANI_U16 reserved : 3;
3632}tAddBaInfo, *tpAddBaInfo;
3633
3634typedef struct sTriggerBaRspCandidate
3635{
3636 tSirMacAddr staAddr;
3637 tAddBaInfo baInfo[STACFG_MAX_TC];
3638}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3639
3640typedef struct sTriggerBaCandidate
3641{
3642 tANI_U8 staIdx;
3643 tANI_U8 tidBitmap;
3644}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3645
3646typedef PACKED_PRE struct PACKED_POST
3647{
3648 /* Session Id */
3649 tANI_U8 baSessionID;
3650
Dino Mycle8afbac12014-07-04 22:06:17 +05303651 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003652 * Candidate List(tTriggerBaCandidate)
3653 */
3654 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303655
Jeff Johnson295189b2012-06-20 16:38:30 -07003656} tTriggerBAParams, *tpTriggerBAParams;
3657
3658typedef PACKED_PRE struct PACKED_POST
3659{
3660 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303661 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003662} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3663
3664
3665/*---------------------------------------------------------------------------
3666 * WLAN_HAL_TRIGGER_BA_RSP
3667 *--------------------------------------------------------------------------*/
3668
3669typedef PACKED_PRE struct PACKED_POST
3670{
Dino Mycle8afbac12014-07-04 22:06:17 +05303671
Jeff Johnson295189b2012-06-20 16:38:30 -07003672 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303673 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003674
3675 /* success or failure */
3676 tANI_U32 status;
3677
Dino Mycle8afbac12014-07-04 22:06:17 +05303678 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003679 * Rsp Candidate List(tTriggerRspBaCandidate)
3680 */
3681 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303682
Jeff Johnson295189b2012-06-20 16:38:30 -07003683
3684} tTriggerBARspParams, *tpTriggerBARspParams;
3685
3686typedef PACKED_PRE struct PACKED_POST
3687{
3688 tHalMsgHeader header;
3689 tTriggerBARspParams triggerBARspParams;
3690} tTriggerBARspMsg, *tpTriggerBARspMsg;
3691
3692/*---------------------------------------------------------------------------
3693 * WLAN_HAL_DEL_BA_REQ
3694 *--------------------------------------------------------------------------*/
3695
3696typedef PACKED_PRE struct PACKED_POST
3697{
3698 /* Station Index */
3699 tANI_U16 staIdx;
3700
3701 /* TID for which the BA session is being deleted */
3702 tANI_U8 baTID;
3703
3704 /* DELBA direction
3705 1 - Originator
3706 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303707 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003708} tDelBAParams, *tpDelBAParams;
3709
3710typedef PACKED_PRE struct PACKED_POST
3711{
3712 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303713 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003714} tDelBAReqMsg, *tpDelBAReqMsg;
3715
3716/*---------------------------------------------------------------------------
3717 * WLAN_HAL_DEL_BA_RSP
3718 *--------------------------------------------------------------------------*/
3719
3720typedef PACKED_PRE struct PACKED_POST
3721{
3722 /* success or failure */
3723 tANI_U32 status;
3724} tDelBARspParams, *tpDelBARspParams;
3725
3726typedef PACKED_PRE struct PACKED_POST
3727{
3728 tHalMsgHeader header;
3729 tDelBARspParams delBARspParams;
3730} tDelBARspMsg, *tpDelBARspMsg;
3731
3732
Jeff Johnson295189b2012-06-20 16:38:30 -07003733/*---------------------------------------------------------------------------
3734 * WLAN_HAL_TSM_STATS_REQ
3735 *--------------------------------------------------------------------------*/
3736typedef PACKED_PRE struct PACKED_POST
3737{
3738 /* Traffic Id */
3739 tANI_U8 tsmTID;
3740
3741 tSirMacAddr bssId;
3742} tTsmStatsParams, *tpTsmStatsParams;
3743
3744typedef PACKED_PRE struct PACKED_POST
3745{
3746 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303747 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003748} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3749
3750
3751/*---------------------------------------------------------------------------
3752 * WLAN_HAL_TSM_STATS_RSP
3753 *--------------------------------------------------------------------------*/
3754typedef PACKED_PRE struct PACKED_POST
3755{
3756 /*success or failure */
3757 tANI_U32 status;
3758
Dino Mycle8afbac12014-07-04 22:06:17 +05303759 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003760 tANI_U16 UplinkPktQueueDly;
3761
Dino Mycle8afbac12014-07-04 22:06:17 +05303762 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003763 tANI_U16 UplinkPktQueueDlyHist[4];
3764
Dino Mycle8afbac12014-07-04 22:06:17 +05303765 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003766 tANI_U32 UplinkPktTxDly;
3767
Dino Mycle8afbac12014-07-04 22:06:17 +05303768 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003769 tANI_U16 UplinkPktLoss;
3770
Dino Mycle8afbac12014-07-04 22:06:17 +05303771 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003772 tANI_U16 UplinkPktCount;
3773
Dino Mycle8afbac12014-07-04 22:06:17 +05303774 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003775 tANI_U8 RoamingCount;
3776
Dino Mycle8afbac12014-07-04 22:06:17 +05303777 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003778 tANI_U16 RoamingDly;
3779} tTsmStatsRspParams, *tpTsmStatsRspParams;
3780
3781typedef PACKED_PRE struct PACKED_POST
3782{
3783 tHalMsgHeader header;
3784 tTsmStatsRspParams tsmStatsRspParams;
3785} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3786
3787
Jeff Johnson295189b2012-06-20 16:38:30 -07003788/*---------------------------------------------------------------------------
3789 * WLAN_HAL_SET_KEYDONE_MSG
3790 *--------------------------------------------------------------------------*/
3791
3792typedef PACKED_PRE struct PACKED_POST
3793{
3794 /*bssid of the keys */
3795 tANI_U8 bssidx;
3796 tANI_U8 encType;
3797} tSetKeyDoneParams, *tpSetKeyDoneParams;
3798
3799typedef PACKED_PRE struct PACKED_POST
3800{
3801 tHalMsgHeader header;
3802 tSetKeyDoneParams setKeyDoneParams;
3803} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3804
3805/*---------------------------------------------------------------------------
3806 * WLAN_HAL_DOWNLOAD_NV_REQ
3807 *--------------------------------------------------------------------------*/
3808typedef PACKED_PRE struct PACKED_POST
3809{
3810 /* Fragment sequence number of the NV Image. Note that NV Image might not
3811 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303812 * can hence choose to chop the NV blob into multiple fragments starting with
3813 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003814 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3815 * concatenated together by HAL without any padding bytes in between.*/
3816 tANI_U16 fragNumber;
3817
3818 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303819 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003820 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3821 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3822 tANI_U16 isLastFragment;
3823
3824 /* NV Image size (number of bytes) */
3825 tANI_U32 nvImgBufferSize;
3826
3827 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3828 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3829} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3830
3831typedef PACKED_PRE struct PACKED_POST
3832{
3833 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3834 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3835 tHalMsgHeader header;
3836 tHalNvImgDownloadReqParams nvImageReqParams;
3837} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3838
3839/*---------------------------------------------------------------------------
3840 * WLAN_HAL_DOWNLOAD_NV_RSP
3841 *--------------------------------------------------------------------------*/
3842typedef PACKED_PRE struct PACKED_POST
3843{
3844 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3845 * after each fragment */
3846 tANI_U32 status;
3847} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3848
3849typedef PACKED_PRE struct PACKED_POST
3850{
3851 tHalMsgHeader header;
3852 tHalNvImgDownloadRspParams nvImageRspParams;
3853} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3854
3855/*---------------------------------------------------------------------------
3856 * WLAN_HAL_STORE_NV_IND
3857 *--------------------------------------------------------------------------*/
3858typedef PACKED_PRE struct PACKED_POST
3859{
3860 /* NV Item */
3861 eNvTable tableID;
3862
3863 /* Size of NV Blob */
3864 tANI_U32 nvBlobSize;
3865
Dino Mycle8afbac12014-07-04 22:06:17 +05303866 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003867 * NV blob i.e. uint8[nvBlobSize] */
3868} tHalNvStoreParams, *tpHalNvStoreParams;
3869
3870typedef PACKED_PRE struct PACKED_POST
3871{
3872 /* Note: The length specified in tHalNvStoreInd messages should be
3873 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3874 tHalMsgHeader header;
3875 tHalNvStoreParams nvStoreParams;
3876} tHalNvStoreInd, *tpHalNvStoreInd;
3877
3878/* End of Block Ack Related Parameters */
3879
3880/*---------------------------------------------------------------------------
3881 * WLAN_HAL_MIC_FAILURE_IND
3882 *--------------------------------------------------------------------------*/
3883
3884#define SIR_CIPHER_SEQ_CTR_SIZE 6
3885
3886typedef PACKED_PRE struct PACKED_POST
3887{
Dino Mycle8afbac12014-07-04 22:06:17 +05303888 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003889 tSirMacAddr taMacAddr; //transmitter address
3890 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303891 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003892 tANI_U8 IV1; // first byte of IV
3893 tANI_U8 keyId; // second byte of IV
3894 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3895 tSirMacAddr rxMacAddr; // receive address
3896} tSirMicFailureInfo, *tpSirMicFailureInfo;
3897
3898/* Definition for MIC failure indication
3899 MAC reports this each time a MIC failure occures on Rx TKIP packet
3900 */
3901typedef PACKED_PRE struct PACKED_POST
3902{
3903 tSirMacAddr bssId; // BSSID
3904 tSirMicFailureInfo info;
3905} tSirMicFailureInd, *tpSirMicFailureInd;
3906
3907typedef PACKED_PRE struct PACKED_POST
3908{
3909 tHalMsgHeader header;
3910 tSirMicFailureInd micFailureInd;
3911} tMicFailureIndMsg, *tpMicFailureIndMsg;
3912
Mohit Khanna4a70d262012-09-11 16:30:12 -07003913typedef PACKED_PRE struct PACKED_POST
3914{
3915 tANI_U16 opMode;
3916 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303917}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003918
3919typedef PACKED_PRE struct PACKED_POST
3920{
3921 tHalMsgHeader header;
3922 tUpdateVHTOpMode updateVhtOpMode;
3923} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3924
3925typedef PACKED_PRE struct PACKED_POST
3926{
3927 tANI_U32 status;
3928} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3929
3930typedef PACKED_PRE struct PACKED_POST
3931{
3932 tHalMsgHeader header;
3933 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3934} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3935
Jeff Johnson295189b2012-06-20 16:38:30 -07003936/*---------------------------------------------------------------------------
3937 * WLAN_HAL_UPDATE_BEACON_REQ
3938 *--------------------------------------------------------------------------*/
3939typedef PACKED_PRE struct PACKED_POST
3940{
3941
3942 tANI_U8 bssIdx;
3943
3944 //shortPreamble mode. HAL should update all the STA rates when it
3945 //receives this message
3946 tANI_U8 fShortPreamble;
3947 //short Slot time.
3948 tANI_U8 fShortSlotTime;
3949 //Beacon Interval
3950 tANI_U16 beaconInterval;
3951 //Protection related
3952 tANI_U8 llaCoexist;
3953 tANI_U8 llbCoexist;
3954 tANI_U8 llgCoexist;
3955 tANI_U8 ht20MhzCoexist;
3956 tANI_U8 llnNonGFCoexist;
3957 tANI_U8 fLsigTXOPProtectionFullSupport;
3958 tANI_U8 fRIFSMode;
3959
3960 tANI_U16 paramChangeBitmap;
3961}tUpdateBeaconParams, *tpUpdateBeaconParams;
3962
3963
3964typedef PACKED_PRE struct PACKED_POST
3965{
3966 tHalMsgHeader header;
3967 tUpdateBeaconParams updateBeaconParam;
3968} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3969
3970/*---------------------------------------------------------------------------
3971 * WLAN_HAL_UPDATE_BEACON_RSP
3972 *--------------------------------------------------------------------------*/
3973typedef PACKED_PRE struct PACKED_POST
3974{
3975 tANI_U32 status;
3976} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3977
3978typedef PACKED_PRE struct PACKED_POST
3979{
3980 tHalMsgHeader header;
3981 tUpdateBeaconRspParams updateBeaconRspParam;
3982} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3983
3984/*---------------------------------------------------------------------------
3985 * WLAN_HAL_SEND_BEACON_REQ
3986 *--------------------------------------------------------------------------*/
3987typedef PACKED_PRE struct PACKED_POST
3988{
3989 tANI_U32 beaconLength; //length of the template.
3990 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3991 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003992 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003993 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3994}tSendBeaconParams, *tpSendBeaconParams;
3995
3996
3997typedef PACKED_PRE struct PACKED_POST
3998{
3999 tHalMsgHeader header;
4000 tSendBeaconParams sendBeaconParam;
4001}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
4002
4003/*---------------------------------------------------------------------------
4004 * WLAN_HAL_SEND_BEACON_RSP
4005 *--------------------------------------------------------------------------*/
4006typedef PACKED_PRE struct PACKED_POST
4007{
4008 tANI_U32 status;
4009} tSendBeaconRspParams, *tpSendBeaconRspParams;
4010
4011typedef PACKED_PRE struct PACKED_POST
4012{
4013 tHalMsgHeader header;
4014 tSendBeaconRspParams sendBeaconRspParam;
4015} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4016
4017#ifdef FEATURE_5GHZ_BAND
4018
4019/*---------------------------------------------------------------------------
4020 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4021 *--------------------------------------------------------------------------*/
4022typedef PACKED_PRE struct PACKED_POST
4023{
4024 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304025 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004026}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4027
4028
4029typedef PACKED_PRE struct PACKED_POST
4030{
4031 /* Link Parameters */
4032 tSirEnableRadarInfoType EnableRadarInfo;
4033}tEnableRadarReqParams, *tpEnableRadarReqParams;
4034
4035typedef PACKED_PRE struct PACKED_POST
4036{
4037 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304038 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004039}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4040
4041/*---------------------------------------------------------------------------
4042 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4043 *--------------------------------------------------------------------------*/
4044
4045typedef PACKED_PRE struct PACKED_POST
4046{
4047 /* Link Parameters */
4048 tSirMacAddr BSSID;
4049 /* success or failure */
4050 tANI_U32 status;
4051}tEnableRadarRspParams, *tpEnableRadarRspParams;
4052
4053typedef PACKED_PRE struct PACKED_POST
4054{
4055 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304056 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004057}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4058
4059/*---------------------------------------------------------------------------
4060 *WLAN_HAL_RADAR_DETECT_INTR_IND
4061 *--------------------------------------------------------------------------*/
4062
4063typedef PACKED_PRE struct PACKED_POST
4064{
4065 tANI_U8 radarDetChannel;
4066}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4067
4068typedef PACKED_PRE struct PACKED_POST
4069{
4070 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304071 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004072}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4073
4074/*---------------------------------------------------------------------------
4075 *WLAN_HAL_RADAR_DETECT_IND
4076 *-------------------------------------------------------------------------*/
4077typedef PACKED_PRE struct PACKED_POST
4078{
4079 /*channel number in which the RADAR detected*/
4080 tANI_U8 channelNumber;
4081
4082 /*RADAR pulse width*/
4083 tANI_U16 radarPulseWidth; // in usecond
4084
4085 /*Number of RADAR pulses */
4086 tANI_U16 numRadarPulse;
4087}tRadarDetectIndParams,*tpRadarDetectIndParams;
4088
4089typedef PACKED_PRE struct PACKED_POST
4090{
4091 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304092 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004093}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4094
4095
4096/*---------------------------------------------------------------------------
4097 *WLAN_HAL_GET_TPC_REPORT_REQ
4098 *-------------------------------------------------------------------------*/
4099typedef PACKED_PRE struct PACKED_POST
4100{
4101 tSirMacAddr sta;
4102 tANI_U8 dialogToken;
4103 tANI_U8 txpower;
4104}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4105
4106
4107typedef PACKED_PRE struct PACKED_POST
4108{
4109 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304110 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004111}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4112
4113/*---------------------------------------------------------------------------
4114 * WLAN_HAL_GET_TPC_REPORT_RSP
4115 *--------------------------------------------------------------------------*/
4116
4117typedef PACKED_PRE struct PACKED_POST
4118{
4119 /* success or failure */
4120 tANI_U32 status;
4121}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4122
4123typedef PACKED_PRE struct PACKED_POST
4124{
4125 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304126 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004127}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4128
4129#endif
4130
Jeff Johnson295189b2012-06-20 16:38:30 -07004131/*---------------------------------------------------------------------------
4132 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4133 *-------------------------------------------------------------------------*/
4134typedef PACKED_PRE struct PACKED_POST
4135{
4136 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4137 tANI_U32 probeRespTemplateLen;
4138 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4139 tSirMacAddr bssId;
4140
4141}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4142
4143typedef PACKED_PRE struct PACKED_POST
4144{
4145 tHalMsgHeader header;
4146 tSendProbeRespReqParams sendProbeRespReqParams ;
4147}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4148
4149/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304150 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004151 *--------------------------------------------------------------------------*/
4152
4153typedef PACKED_PRE struct PACKED_POST
4154{
4155 /* success or failure */
4156 tANI_U32 status;
4157}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4158
4159typedef PACKED_PRE struct PACKED_POST
4160{
4161 tHalMsgHeader header;
4162 tSendProbeRespRspParams sendProbeRespRspParams;
4163}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4164
4165
4166/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304167 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004168 *--------------------------------------------------------------------------*/
4169
4170typedef PACKED_PRE struct PACKED_POST
4171{
4172 /* success or failure */
4173 tANI_U32 status;
4174}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4175
4176typedef PACKED_PRE struct PACKED_POST
4177{
4178 tHalMsgHeader header;
4179 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4180}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4181
4182/*---------------------------------------------------------------------------
4183 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4184 *--------------------------------------------------------------------------*/
4185
4186typedef PACKED_PRE struct PACKED_POST
4187{
4188 tANI_U16 assocId;
4189 tANI_U16 staId;
4190 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4191 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004192 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304193 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004194
4195}tDeleteStaContextParams, *tpDeleteStaContextParams;
4196
4197
4198typedef PACKED_PRE struct PACKED_POST
4199{
4200 tHalMsgHeader header;
4201 tDeleteStaContextParams deleteStaContextParams;
4202}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4203
Anand Kumar012623a2013-01-11 17:00:00 -08004204typedef PACKED_PRE struct PACKED_POST
4205{
4206 tHalMsgHeader header;
4207 tANI_U8 assocId;
4208 tANI_U8 staIdx;
4209 tANI_U8 bssIdx;
4210 tANI_U8 uReasonCode;
4211 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004212#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4213 tANI_U8 staAddr[6];
4214 tANI_U8 bssId[6];
4215#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004216} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004217
4218/*---------------------------------------------------------------------------
4219 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4220 *--------------------------------------------------------------------------*/
4221
4222typedef PACKED_PRE struct PACKED_POST
4223{
4224 tBtAmpEventType btAmpEventType;
4225
4226}tBtAmpEventParams, *tpBtAmpEventParams;
4227
4228
4229
4230typedef PACKED_PRE struct PACKED_POST
4231{
4232 tHalMsgHeader header;
4233 tBtAmpEventParams btAmpEventParams;
4234}tBtAmpEventMsg, *tpBtAmpEventMsg;
4235
4236/*---------------------------------------------------------------------------
4237*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4238*--------------------------------------------------------------------------*/
4239
4240typedef PACKED_PRE struct PACKED_POST
4241{
4242 /* success or failure */
4243 tANI_U32 status;
4244}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4245
4246typedef PACKED_PRE struct PACKED_POST
4247{
4248 tHalMsgHeader header;
4249 tBtAmpEventRspParams btAmpEventRspParams;
4250}tBtAmpEventRsp, *tpBtAmpEventRsp;
4251
4252
4253/*---------------------------------------------------------------------------
4254 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4255 *--------------------------------------------------------------------------*/
4256
4257typedef PACKED_PRE struct PACKED_POST
4258{
4259 // Station Index. originates from HAL
4260 tANI_U8 ucSTAId;
4261
4262 // TID for which the transmit queue is being flushed
4263 tANI_U8 ucTid;
4264
4265}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4266
4267
4268typedef PACKED_PRE struct PACKED_POST
4269{
4270 tHalMsgHeader header;
4271 tTlHalFlushAcParams tlHalFlushAcParam;
4272}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4273
4274/*---------------------------------------------------------------------------
4275*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4276*--------------------------------------------------------------------------*/
4277
4278typedef PACKED_PRE struct PACKED_POST
4279{
4280 // Station Index. originates from HAL
4281 tANI_U8 ucSTAId;
4282
4283 // TID for which the transmit queue is being flushed
4284 tANI_U8 ucTid;
4285
4286 /* success or failure */
4287 tANI_U32 status;
4288}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4289
4290typedef PACKED_PRE struct PACKED_POST
4291{
4292 tHalMsgHeader header;
4293 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4294}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4295
4296/*---------------------------------------------------------------------------
4297 * WLAN_HAL_ENTER_IMPS_REQ
4298 *--------------------------------------------------------------------------*/
4299typedef PACKED_PRE struct PACKED_POST
4300{
4301 tHalMsgHeader header;
4302} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4303
4304/*---------------------------------------------------------------------------
4305 * WLAN_HAL_EXIT_IMPS_REQ
4306 *--------------------------------------------------------------------------*/
4307typedef PACKED_PRE struct PACKED_POST
4308{
4309 tHalMsgHeader header;
4310} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4311
4312/*---------------------------------------------------------------------------
4313 * WLAN_HAL_ENTER_BMPS_REQ
4314 *--------------------------------------------------------------------------*/
4315
4316typedef PACKED_PRE struct PACKED_POST
4317{
4318 tANI_U8 bssIdx;
4319 //TBTT value derived from the last beacon
4320#ifndef BUILD_QWPTTSTATIC
4321 tANI_U64 tbtt;
4322#endif
4323 tANI_U8 dtimCount;
4324 //DTIM period given to HAL during association may not be valid,
4325 //if association is based on ProbeRsp instead of beacon.
4326 tANI_U8 dtimPeriod;
4327
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004328 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004329 tANI_U32 rssiFilterPeriod;
4330 tANI_U32 numBeaconPerRssiAverage;
4331 tANI_U8 bRssiFilterEnable;
4332
4333} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4334
4335
4336typedef PACKED_PRE struct PACKED_POST
4337{
4338 tHalMsgHeader header;
4339 tHalEnterBmpsReqParams enterBmpsReq;
4340} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4341
4342/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304343 * WLAN_HAL_PRINT_REG_INFO_IND
4344 *--------------------------------------------------------------------------*/
4345typedef PACKED_PRE struct PACKED_POST
4346{
4347 uint32 regAddr;
4348 uint32 regValue;
4349} tHalRegDebugInfo, *tpRegDebugInfo;
4350
4351typedef PACKED_PRE struct PACKED_POST
4352{
4353 uint32 regCount;
4354 uint32 scenario;
4355 uint32 reasonCode;
4356} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4357
4358typedef PACKED_PRE struct PACKED_POST
4359{
4360 tHalMsgHeader header;
4361 tHalRegDebugInfoParams regParams;
4362} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4363
4364/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004365 * WLAN_HAL_EXIT_BMPS_REQ
4366 *--------------------------------------------------------------------------*/
4367typedef PACKED_PRE struct PACKED_POST
4368{
4369 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004370 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004371} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4372
4373typedef PACKED_PRE struct PACKED_POST
4374{
4375 tHalMsgHeader header;
4376 tHalExitBmpsReqParams exitBmpsReqParams;
4377} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4378
4379/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004380 * WLAN_HAL_MISSED_BEACON_IND
4381 *--------------------------------------------------------------------------*/
4382typedef PACKED_PRE struct PACKED_POST
4383{
4384 tANI_U8 bssIdx;
4385} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4386
4387typedef PACKED_PRE struct PACKED_POST
4388{
4389 tHalMsgHeader header;
4390 tHalMissedBeaconIndParams missedBeaconIndParams;
4391} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4392
4393/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004394 * WLAN_HAL_ADD_BCN_FILTER_REQ
4395 *--------------------------------------------------------------------------*/
4396/* Beacon Filtering data structures */
4397typedef PACKED_PRE struct PACKED_POST
4398{
4399 tANI_U8 offset;
4400 tANI_U8 value;
4401 tANI_U8 bitMask;
4402 tANI_U8 ref;
4403} tEidByteInfo, *tpEidByteInfo;
4404
Dino Mycle8afbac12014-07-04 22:06:17 +05304405typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004406{
4407 tANI_U16 capabilityInfo;
4408 tANI_U16 capabilityMask;
4409 tANI_U16 beaconInterval;
4410 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004411 tANI_U8 bssIdx;
4412 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004413} tBeaconFilterMsg, *tpBeaconFilterMsg;
4414
4415/* The above structure would be followed by multiple of below mentioned structure */
4416typedef PACKED_PRE struct PACKED_POST
4417{
4418 tANI_U8 elementId;
4419 tANI_U8 checkIePresence;
4420 tEidByteInfo byte;
4421} tBeaconFilterIe, *tpBeaconFilterIe;
4422
4423typedef PACKED_PRE struct PACKED_POST
4424{
4425 tHalMsgHeader header;
4426 tBeaconFilterMsg addBcnFilterParams;
4427} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4428
4429/*---------------------------------------------------------------------------
4430 * WLAN_HAL_REM_BCN_FILTER_REQ
4431 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304432typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004433{
4434 tANI_U8 ucIeCount;
4435 tANI_U8 ucRemIeId[1];
4436} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4437
4438typedef PACKED_PRE struct PACKED_POST
4439{
4440 tHalMsgHeader header;
4441 tRemBeaconFilterMsg remBcnFilterParams;
4442} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4443
4444/*---------------------------------------------------------------------------
4445 * WLAN_HAL_HOST_OFFLOAD_REQ
4446 *--------------------------------------------------------------------------*/
4447#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4448#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4449#define HAL_IPV6_NS_OFFLOAD 2
4450#define HAL_IPV6_ADDR_LEN 16
4451#define HAL_MAC_ADDR_LEN 6
4452#define HAL_OFFLOAD_DISABLE 0
4453#define HAL_OFFLOAD_ENABLE 1
4454#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004455#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004456#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004457#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004458
4459typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4460{
4461 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4462 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4463 //Only support 2 possible Network Advertisement IPv6 address
4464 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4465 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4466 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4467 tANI_U8 srcIPv6AddrValid : 1;
4468 tANI_U8 targetIPv6Addr1Valid : 1;
4469 tANI_U8 targetIPv6Addr2Valid : 1;
4470 tANI_U8 reserved1 : 5;
4471 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004472 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004473 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004474} tHalNSOffloadParams;
4475
4476typedef PACKED_PRE struct PACKED_POST
4477{
4478 tANI_U8 offloadType;
4479 tANI_U8 enableOrDisable;
4480 PACKED_PRE union PACKED_POST
4481 {
4482 tANI_U8 hostIpv4Addr [4];
4483 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4484 } params;
4485} tHalHostOffloadReq, *tpHalHostOffloadReq;
4486
4487typedef PACKED_PRE struct PACKED_POST
4488{
4489 tHalMsgHeader header;
4490 tHalHostOffloadReq hostOffloadParams;
4491 tHalNSOffloadParams nsOffloadParams;
4492} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4493
Leo Chang397deb72013-08-22 11:33:16 -07004494
4495#ifdef FEATURE_WLAN_LPHB
4496typedef enum
4497{
4498 WIFI_HB_SET_ENABLE = 0x0001,
4499 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4500 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4501 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4502 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4503 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4504}tLowPowerHeartBeatCmdType ;
4505
4506#define MAX_FLITER_SIZE 64
4507/*---------------------------------------------------------------------------
4508 *FEATURE_WLAN_LPHB REQ
4509 *--------------------------------------------------------------------------*/
4510typedef PACKED_PRE struct PACKED_POST
4511{
4512 uint32 hostIpv4Addr;
4513 uint32 destIpv4Addr;
4514 uint16 hostPort;
4515 uint16 destPort;
4516 uint16 timeOutSec; // in seconds
4517 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004518 uint16 timePeriodSec; // in seconds
4519 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004520} tlowPowerHeartBeatParamsTcpStruct;
4521
4522typedef PACKED_PRE struct PACKED_POST
4523{
4524 uint32 hostIpv4Addr;
4525 uint32 destIpv4Addr;
4526 uint16 hostPort;
4527 uint16 destPort;
4528 uint16 timePeriodSec;// in seconds
4529 uint16 timeOutSec; // in seconds
4530 tSirMacAddr gatewayMacAddr;
4531} tlowPowerHeartBeatParamsUdpStruct;
4532
4533typedef PACKED_PRE struct PACKED_POST
4534{
4535 uint32 offset;
4536 uint32 filterLength;
4537 uint8 filter[MAX_FLITER_SIZE];
4538} tlowPowerHeartBeatFilterStruct;
4539
4540typedef PACKED_PRE struct PACKED_POST
4541{
4542 uint8 heartBeatEnable;
4543 uint8 heartBeatType; //TCP or UDP
4544} tlowPowerHeartBeatEnableStruct;
4545
4546typedef PACKED_PRE struct PACKED_POST
4547{
4548 uint8 dummy;
4549} tlowPowerHeartBeatNetworkInfoStruct;
4550
4551
4552typedef PACKED_PRE struct PACKED_POST
4553{
4554 uint8 sessionIdx;
4555 uint16 lowPowerHeartBeatCmdType;
4556 PACKED_PRE union PACKED_PRO
4557 {
4558 tlowPowerHeartBeatEnableStruct control;
4559 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4560 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4561 tlowPowerHeartBeatParamsUdpStruct udpParams;
4562 tlowPowerHeartBeatNetworkInfoStruct info;
4563 }options;
4564} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4565
4566
4567typedef PACKED_PRE struct PACKED_POST
4568{
4569 tHalMsgHeader header;
4570 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4571} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4572
4573/*---------------------------------------------------------------------------
4574 * FEATURE_WLAN_LPHB RSP
4575 *--------------------------------------------------------------------------*/
4576
4577typedef PACKED_PRE struct PACKED_POST
4578{
4579 /* success or failure */
4580 uint8 sessionIdx;
4581 uint32 status;
4582 uint16 lowPowerHeartBeatCmdType;
4583}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4584
4585typedef PACKED_PRE struct PACKED_POST
4586{
4587 tHalMsgHeader header;
4588 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4589}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4590
4591
4592/*---------------------------------------------------------------------------
4593 * FEATURE_WLAN_LPHB IND
4594 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004595#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4596#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4597
4598#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4599#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004600#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004601
Kumar Anandea78e792013-10-10 23:47:01 -07004602
4603#define WIFI_LPHB_PROTO_UDP 0x01
4604#define WIFI_LPHB_PROTO_TCP 0x02
4605
Leo Chang397deb72013-08-22 11:33:16 -07004606typedef PACKED_PRE struct PACKED_POST
4607{
4608 uint8 bssIdx;
4609 uint8 sessionIdx;
4610 uint8 protocolType; /*TCP or UDP*/
4611 uint8 eventReason;
4612
4613}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4614
4615typedef PACKED_PRE struct PACKED_POST
4616{
4617 tHalMsgHeader header;
4618 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4619}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4620
4621#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004622
4623#ifdef FEATURE_WLAN_BATCH_SCAN
4624
4625/*---------------------------------------------------------------------------
4626 * WLAN_HAL_BATCHSCAN_SET_REQ
4627 *--------------------------------------------------------------------------*/
4628typedef PACKED_PRE struct PACKED_POST
4629{
4630 /* Scan Frerquency - default to 30Sec*/
4631 tANI_U32 scanInterval;
4632 tANI_U32 numScan2Batch;
4633 tANI_U32 bestNetworks;
4634 tANI_U8 rfBand;
4635 tANI_U8 rtt;
4636} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4637
4638typedef PACKED_PRE struct PACKED_POST
4639{
4640 tHalMsgHeader header;
4641 tHalBatchScanSetParams batchScanParams;
4642} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4643
4644/*---------------------------------------------------------------------------
4645 * WLAN_HAL_BATCHSCAN_SET_RSP
4646 *--------------------------------------------------------------------------*/
4647typedef PACKED_PRE struct PACKED_POST
4648{
4649 tANI_U32 supportedMscan;
4650} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4651
4652typedef PACKED_PRE struct PACKED_POST
4653{
4654 tHalMsgHeader header;
4655 tHalBatchScanSetRspParam setBatchScanRspParam;
4656} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4657
4658/*---------------------------------------------------------------------------
4659* WLAN_HAL_BATCHSCAN_STOP_IND
4660*--------------------------------------------------------------------------*/
4661typedef PACKED_PRE struct PACKED_POST
4662{
4663 tANI_U32 param;
4664} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4665
4666typedef PACKED_PRE struct PACKED_POST
4667{
4668 tHalMsgHeader header;
4669 tHalBatchScanStopIndParam param;
4670} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4671
4672/*---------------------------------------------------------------------------
4673* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4674*--------------------------------------------------------------------------*/
4675typedef PACKED_PRE struct PACKED_POST
4676{
4677 tANI_U32 param;
4678} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4679
4680typedef PACKED_PRE struct PACKED_POST
4681{
4682 tHalMsgHeader header;
4683 tHalBatchScanTriggerResultParam param;
4684} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4685
4686/*---------------------------------------------------------------------------
4687 * WLAN_HAL_BATCHSCAN_GET_RSP
4688 *--------------------------------------------------------------------------*/
4689typedef PACKED_PRE struct PACKED_POST
4690{
4691 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004692 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004693 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304694 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004695 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4696 tANI_U32 timestamp;
4697} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4698
4699typedef PACKED_PRE struct PACKED_POST
4700{
4701 tANI_U32 scanId; /* Scan List ID. */
4702 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4703 tANI_U32 numNetworksInScanList;
4704 /* Variable data ptr: Number of AP in Scan List */
4705 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4706 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4707 tANI_U8 scanList[1];
4708} tHalBatchScanList, *tpHalBatchScanList;
4709
4710typedef PACKED_PRE struct PACKED_POST
4711{
4712 tANI_U32 timestamp;
4713 tANI_U32 numScanLists;
4714 boolean isLastResult;
4715 /* Variable Data ptr: Number of Scan Lists*/
4716 /* following isLastResult is data of type tHalBatchScanList
4717 * of sizeof(tHalBatchScanList) * numScanLists*/
4718 tANI_U8 scanResults[1];
4719} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4720
4721typedef PACKED_PRE struct PACKED_POST
4722{
4723 tHalMsgHeader header;
4724 tHalBatchScanResultIndParam resultIndMsgParam;
4725} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4726
4727#endif
4728
Jeff Johnson295189b2012-06-20 16:38:30 -07004729/*---------------------------------------------------------------------------
4730 * WLAN_HAL_KEEP_ALIVE_REQ
4731 *--------------------------------------------------------------------------*/
4732/* Packet Types. */
4733#define HAL_KEEP_ALIVE_NULL_PKT 1
4734#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4735
4736/* Enable or disable keep alive */
4737#define HAL_KEEP_ALIVE_DISABLE 0
4738#define HAL_KEEP_ALIVE_ENABLE 1
4739
4740/* Keep Alive request. */
4741typedef PACKED_PRE struct PACKED_POST
4742{
4743 tANI_U8 packetType;
4744 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304745 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004746 tHalIpv4Addr destIpv4Addr;
4747 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004748 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004749} tHalKeepAliveReq, *tpHalKeepAliveReq;
4750
4751typedef PACKED_PRE struct PACKED_POST
4752{
4753 tHalMsgHeader header;
4754 tHalKeepAliveReq KeepAliveParams;
4755} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4756
4757/*---------------------------------------------------------------------------
4758 * WLAN_HAL_SET_RSSI_THRESH_REQ
4759 *--------------------------------------------------------------------------*/
4760typedef PACKED_PRE struct PACKED_POST
4761{
4762 tANI_S8 ucRssiThreshold1 : 8;
4763 tANI_S8 ucRssiThreshold2 : 8;
4764 tANI_S8 ucRssiThreshold3 : 8;
4765 tANI_U8 bRssiThres1PosNotify : 1;
4766 tANI_U8 bRssiThres1NegNotify : 1;
4767 tANI_U8 bRssiThres2PosNotify : 1;
4768 tANI_U8 bRssiThres2NegNotify : 1;
4769 tANI_U8 bRssiThres3PosNotify : 1;
4770 tANI_U8 bRssiThres3NegNotify : 1;
4771 tANI_U8 bReserved10 : 2;
4772} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304773
Jeff Johnson295189b2012-06-20 16:38:30 -07004774typedef PACKED_PRE struct PACKED_POST
4775{
4776 tHalMsgHeader header;
4777 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004778} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004779
4780/*---------------------------------------------------------------------------
4781 * WLAN_HAL_ENTER_UAPSD_REQ
4782 *--------------------------------------------------------------------------*/
4783typedef PACKED_PRE struct PACKED_POST
4784{
4785 tANI_U8 bkDeliveryEnabled:1;
4786 tANI_U8 beDeliveryEnabled:1;
4787 tANI_U8 viDeliveryEnabled:1;
4788 tANI_U8 voDeliveryEnabled:1;
4789 tANI_U8 bkTriggerEnabled:1;
4790 tANI_U8 beTriggerEnabled:1;
4791 tANI_U8 viTriggerEnabled:1;
4792 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004793 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004794} tUapsdReqParams, *tpUapsdReqParams;
4795
4796typedef PACKED_PRE struct PACKED_POST
4797{
4798 tHalMsgHeader header;
4799 tUapsdReqParams enterUapsdParams;
4800} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4801
4802/*---------------------------------------------------------------------------
4803 * WLAN_HAL_EXIT_UAPSD_REQ
4804 *--------------------------------------------------------------------------*/
4805typedef PACKED_PRE struct PACKED_POST
4806{
4807 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004808 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004809} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4810
Kumar Anandea78e792013-10-10 23:47:01 -07004811#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4812#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004813/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004814 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4815 *--------------------------------------------------------------------------*/
4816typedef PACKED_PRE struct PACKED_POST
4817{
4818 tANI_U32 selfStaIdx:8;
4819 tANI_U32 ucPtrnId:8; // Pattern ID
4820 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4821 tANI_U32 uPtrnIntervalMs; // In msec
4822 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4823} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4824
4825typedef PACKED_PRE struct PACKED_POST
4826{
4827 tHalMsgHeader header;
4828 tHalAddPeriodicTxPtrn ptrnParams;
4829} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4830
4831/*---------------------------------------------------------------------------
4832 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4833 *--------------------------------------------------------------------------*/
4834typedef PACKED_PRE struct PACKED_POST
4835{
4836 tANI_U32 selfStaIdx:8;
4837 tANI_U32 rsvd:24;
4838 /* Bitmap of pattern IDs that needs to be deleted */
4839 tANI_U32 uPatternIdBitmap;
4840} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4841
4842typedef PACKED_PRE struct PACKED_POST
4843{
4844 tHalMsgHeader header;
4845 tHalDelPeriodicTxPtrn ptrnParams;
4846} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4847
4848/*---------------------------------------------------------------------------
4849 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4850 *--------------------------------------------------------------------------*/
4851typedef PACKED_PRE struct PACKED_POST
4852{
4853 /* Type of Failure indication */
4854 tANI_U32 bssIdx:8;
4855 tANI_U32 selfStaIdx:8;
4856 tANI_U32 rsvd:16;
4857 tANI_U32 status;
4858 tANI_U32 patternIdBitmap;
4859} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4860
4861typedef PACKED_PRE struct PACKED_POST
4862{
4863 tHalMsgHeader header;
4864 tHalPeriodicTxPtrnFwInd fwIndParams;
4865} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4866
4867/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004868 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4869 *--------------------------------------------------------------------------*/
4870#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4871#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4872
4873typedef PACKED_PRE struct PACKED_POST
4874{
4875 tANI_U8 ucPatternId; // Pattern ID
4876 // Pattern byte offset from beginning of the 802.11 packet to start of the
4877 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304878 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004879 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4880 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4881 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4882 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4883 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4884 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004885 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004886} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4887
4888typedef PACKED_PRE struct PACKED_POST
4889{
4890 tHalMsgHeader header;
4891 tHalWowlAddBcastPtrn ptrnParams;
4892} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304893
Jeff Johnsone7245742012-09-05 17:12:55 -07004894
4895
Jeff Johnson295189b2012-06-20 16:38:30 -07004896/*---------------------------------------------------------------------------
4897 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4898 *--------------------------------------------------------------------------*/
4899typedef PACKED_PRE struct PACKED_POST
4900{
4901 /* Pattern ID of the wakeup pattern to be deleted */
4902 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004903 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004904} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4905
4906typedef PACKED_PRE struct PACKED_POST
4907{
4908 tHalMsgHeader header;
4909 tHalWowlDelBcastPtrn ptrnParams;
4910} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4911
4912/*---------------------------------------------------------------------------
4913 * WLAN_HAL_ENTER_WOWL_REQ
4914 *--------------------------------------------------------------------------*/
4915typedef PACKED_PRE struct PACKED_POST
4916{
4917 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304918 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004919
4920 /* Magic pattern */
4921 tSirMacAddr magicPtrn;
4922
Dino Mycle8afbac12014-07-04 22:06:17 +05304923 /* Enables/disables packet pattern filtering in firmware.
4924 Enabling this flag enables broadcast pattern matching
4925 in Firmware. If unicast pattern matching is also desired,
4926 ucUcastPatternFilteringEnable flag must be set tot true
4927 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004928 */
4929 tANI_U8 ucPatternFilteringEnable;
4930
Dino Mycle8afbac12014-07-04 22:06:17 +05304931 /* Enables/disables unicast packet pattern filtering.
4932 This flag specifies whether we want to do pattern match
4933 on unicast packets as well and not just broadcast packets.
4934 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004935 (main controlling flag) is set to false
4936 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304937 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004938
Dino Mycle8afbac12014-07-04 22:06:17 +05304939 /* This configuration is valid only when magicPktEnable=1.
4940 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004941 * Channel Switch Action Frame.
4942 */
4943 tANI_U8 ucWowChnlSwitchRcv;
4944
Dino Mycle8afbac12014-07-04 22:06:17 +05304945 /* This configuration is valid only when magicPktEnable=1.
4946 * It requests hardware to wake up when it receives the
4947 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004948 */
4949 tANI_U8 ucWowDeauthRcv;
4950
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
4953 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004954 */
4955 tANI_U8 ucWowDisassocRcv;
4956
Dino Mycle8afbac12014-07-04 22:06:17 +05304957 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004958 * It requests hardware to wake up when it has missed
4959 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304960 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004961 */
4962 tANI_U8 ucWowMaxMissedBeacons;
4963
Dino Mycle8afbac12014-07-04 22:06:17 +05304964 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004965 * This is a timeout value in units of microsec. It requests
4966 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304967 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004968 */
4969 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304970
Jeff Johnson295189b2012-06-20 16:38:30 -07004971 /* This configuration directs the WoW packet filtering to look for EAP-ID
4972 * requests embedded in EAPOL frames and use this as a wake source.
4973 */
4974 tANI_U8 ucWoWEAPIDRequestEnable;
4975
4976 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4977 * requests and use this as a wake source.
4978 */
4979 tANI_U8 ucWoWEAPOL4WayEnable;
4980
4981 /* This configuration allows a host wakeup on an network scan offload match.
4982 */
4983 tANI_U8 ucWowNetScanOffloadMatch;
4984
4985 /* This configuration allows a host wakeup on any GTK rekeying error.
4986 */
4987 tANI_U8 ucWowGTKRekeyError;
4988
4989 /* This configuration allows a host wakeup on BSS connection loss.
4990 */
4991 tANI_U8 ucWoWBSSConnLoss;
4992
Jeff Johnsone7245742012-09-05 17:12:55 -07004993 tANI_U8 bssIdx;
4994
Jeff Johnson295189b2012-06-20 16:38:30 -07004995} tHalWowlEnterParams, *tpHalWowlEnterParams;
4996
4997typedef PACKED_PRE struct PACKED_POST
4998{
4999 tHalMsgHeader header;
5000 tHalWowlEnterParams enterWowlParams;
5001} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
5002
5003/*---------------------------------------------------------------------------
5004 * WLAN_HAL_EXIT_WOWL_REQ
5005 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005006
Jeff Johnson295189b2012-06-20 16:38:30 -07005007typedef PACKED_PRE struct PACKED_POST
5008{
Jeff Johnsone7245742012-09-05 17:12:55 -07005009 tANI_U8 bssIdx;
5010
5011} tHalWowlExitParams, *tpHalWowlExitParams;
5012
5013typedef PACKED_PRE struct PACKED_POST
5014{
5015 tHalMsgHeader header;
5016 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005017} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5018
5019/*---------------------------------------------------------------------------
5020 * WLAN_HAL_GET_RSSI_REQ
5021 *--------------------------------------------------------------------------*/
5022typedef PACKED_PRE struct PACKED_POST
5023{
5024 tHalMsgHeader header;
5025} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5026
Anand Kumar012623a2013-01-11 17:00:00 -08005027typedef PACKED_PRE struct PACKED_POST
5028{
5029 /* Valid STA Idx for per STA stats request */
5030 tANI_U32 staId;
5031
5032}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5033
5034
5035/*---------------------------------------------------------------------------
5036 * WLAN_HAL_GET_ROAM_RSSI_REQ
5037 *--------------------------------------------------------------------------*/
5038typedef PACKED_PRE struct PACKED_POST
5039{
5040 tHalMsgHeader header;
5041 tHalRoamRssiReqParams roamRssiReqParams;
5042} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5043
5044
Jeff Johnson295189b2012-06-20 16:38:30 -07005045/*---------------------------------------------------------------------------
5046 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5047 *--------------------------------------------------------------------------*/
5048typedef PACKED_PRE struct PACKED_POST {
5049 tANI_U8 staidx; // STA index
5050 tANI_U8 ac; // Access Category
5051 tANI_U8 up; // User Priority
5052 tANI_U32 srvInterval; // Service Interval
5053 tANI_U32 susInterval; // Suspend Interval
5054 tANI_U32 delayInterval; // Delay Interval
5055} tUapsdInfo, tpUapsdInfo;
5056
5057typedef PACKED_PRE struct PACKED_POST
5058{
5059 tHalMsgHeader header;
5060 tUapsdInfo enableUapsdAcParams;
5061} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5062
5063/*---------------------------------------------------------------------------
5064 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5065 *--------------------------------------------------------------------------*/
5066typedef PACKED_PRE struct PACKED_POST {
5067 tANI_U8 setMcstBcstFilterSetting;
5068 tANI_U8 setMcstBcstFilter;
5069} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5070
5071typedef PACKED_PRE struct PACKED_POST
5072{
5073 tHalMsgHeader header;
5074 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5075} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5076
5077/*---------------------------------------------------------------------------
5078 * WLAN_HAL_ENTER_IMPS_RSP
5079 *--------------------------------------------------------------------------*/
5080typedef PACKED_PRE struct PACKED_POST
5081{
5082 /* success or failure */
5083 tANI_U32 status;
5084} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5085
5086typedef PACKED_PRE struct PACKED_POST
5087{
5088 tHalMsgHeader header;
5089 tHalEnterImpsRspParams enterImpsRspParams;
5090} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5091
5092/*---------------------------------------------------------------------------
5093 * WLAN_HAL_EXIT_IMPS_RSP
5094 *--------------------------------------------------------------------------*/
5095typedef PACKED_PRE struct PACKED_POST
5096{
5097 /* success or failure */
5098 tANI_U32 status;
5099} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5100
5101typedef PACKED_PRE struct PACKED_POST
5102{
5103 tHalMsgHeader header;
5104 tHalExitImpsRspParams exitImpsRspParams;
5105} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5106
5107/*---------------------------------------------------------------------------
5108 * WLAN_HAL_ENTER_BMPS_RSP
5109 *--------------------------------------------------------------------------*/
5110typedef PACKED_PRE struct PACKED_POST
5111{
5112 /* success or failure */
5113 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005114 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005115} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5116
5117typedef PACKED_PRE struct PACKED_POST
5118{
5119 tHalMsgHeader header;
5120 tHalEnterBmpsRspParams enterBmpsRspParams;
5121} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5122
5123/*---------------------------------------------------------------------------
5124 * WLAN_HAL_EXIT_BMPS_RSP
5125 *--------------------------------------------------------------------------*/
5126typedef PACKED_PRE struct PACKED_POST
5127{
5128 /* success or failure */
5129 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005130 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005131} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5132
5133typedef PACKED_PRE struct PACKED_POST
5134{
5135 tHalMsgHeader header;
5136 tHalExitBmpsRspParams exitBmpsRspParams;
5137} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5138
5139/*---------------------------------------------------------------------------
5140 * WLAN_HAL_ENTER_UAPSD_RSP
5141 *--------------------------------------------------------------------------*/
5142typedef PACKED_PRE struct PACKED_POST
5143{
5144 /* success or failure */
5145 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005146 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005147}tUapsdRspParams, *tpUapsdRspParams;
5148
5149typedef PACKED_PRE struct PACKED_POST
5150{
5151 tHalMsgHeader header;
5152 tUapsdRspParams enterUapsdRspParams;
5153} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5154
5155/*---------------------------------------------------------------------------
5156 * WLAN_HAL_EXIT_UAPSD_RSP
5157 *--------------------------------------------------------------------------*/
5158typedef PACKED_PRE struct PACKED_POST
5159{
5160 /* success or failure */
5161 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005162 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005163} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5164
5165typedef PACKED_PRE struct PACKED_POST
5166{
5167 tHalMsgHeader header;
5168 tHalExitUapsdRspParams exitUapsdRspParams;
5169} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5170
5171/*---------------------------------------------------------------------------
5172 * WLAN_HAL_RSSI_NOTIFICATION_IND
5173 *--------------------------------------------------------------------------*/
5174typedef PACKED_PRE struct PACKED_POST
5175{
5176 tANI_U32 bRssiThres1PosCross : 1;
5177 tANI_U32 bRssiThres1NegCross : 1;
5178 tANI_U32 bRssiThres2PosCross : 1;
5179 tANI_U32 bRssiThres2NegCross : 1;
5180 tANI_U32 bRssiThres3PosCross : 1;
5181 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005182 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005183 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005184 tANI_U32 isBTCoexCompromise : 1;
5185 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005186 tANI_S8 refRssiThreshold1;
5187 tANI_S8 refRssiThreshold2;
5188 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005189} tHalRSSINotification, *tpHalRSSINotification;
5190
5191typedef PACKED_PRE struct PACKED_POST
5192{
5193 tHalMsgHeader header;
5194 tHalRSSINotification rssiNotificationParams;
5195} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5196
5197/*---------------------------------------------------------------------------
5198 * WLAN_HAL_GET_RSSI_RSP
5199 *--------------------------------------------------------------------------*/
5200typedef PACKED_PRE struct PACKED_POST
5201{
5202 /* success or failure */
5203 tANI_U32 status;
5204 tANI_S8 rssi;
5205} tHalGetRssiParams, *tpHalGetRspParams;
5206
5207typedef PACKED_PRE struct PACKED_POST
5208{
5209 tHalMsgHeader header;
5210 tHalGetRssiParams rssiRspParams;
5211} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5212
5213/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005214 * WLAN_HAL_GET_ROAM_RSSI_RSP
5215 *--------------------------------------------------------------------------*/
5216typedef PACKED_PRE struct PACKED_POST
5217{
5218 /* success or failure */
5219 tANI_U32 status;
5220
5221 tANI_U8 staId;
5222 tANI_S8 rssi;
5223} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5224
5225typedef PACKED_PRE struct PACKED_POST
5226{
5227 tHalMsgHeader header;
5228 tHalGetRoamRssiParams roamRssiRspParams;
5229} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5230
5231/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005232 * WLAN_HAL_ENTER_WOWL_RSP
5233 *--------------------------------------------------------------------------*/
5234typedef PACKED_PRE struct PACKED_POST
5235{
5236 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005237 tANI_U32 status;
5238 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005239} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5240
5241typedef PACKED_PRE struct PACKED_POST
5242{
5243 tHalMsgHeader header;
5244 tHalEnterWowlRspParams enterWowlRspParams;
5245} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5246
5247/*---------------------------------------------------------------------------
5248 * WLAN_HAL_EXIT_WOWL_RSP
5249 *--------------------------------------------------------------------------*/
5250typedef PACKED_PRE struct PACKED_POST
5251{
5252 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005253 tANI_U32 status;
5254 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005255} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5256
5257typedef PACKED_PRE struct PACKED_POST
5258{
5259 tHalMsgHeader header;
5260 tHalExitWowlRspParams exitWowlRspParams;
5261} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5262
5263/*---------------------------------------------------------------------------
5264 * WLAN_HAL_ADD_BCN_FILTER_RSP
5265 *--------------------------------------------------------------------------*/
5266typedef PACKED_PRE struct PACKED_POST
5267{
5268 /* success or failure */
5269 tANI_U32 status;
5270} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5271
5272typedef PACKED_PRE struct PACKED_POST
5273{
5274 tHalMsgHeader header;
5275 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5276} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5277
5278/*---------------------------------------------------------------------------
5279 * WLAN_HAL_REM_BCN_FILTER_RSP
5280 *--------------------------------------------------------------------------*/
5281typedef PACKED_PRE struct PACKED_POST
5282{
5283 /* success or failure */
5284 tANI_U32 status;
5285} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5286
5287typedef PACKED_PRE struct PACKED_POST
5288{
5289 tHalMsgHeader header;
5290 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5291} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5292
5293/*---------------------------------------------------------------------------
5294 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5295 *--------------------------------------------------------------------------*/
5296typedef PACKED_PRE struct PACKED_POST
5297{
5298 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005299 tANI_U32 status;
5300 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005301} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5302
5303typedef PACKED_PRE struct PACKED_POST
5304{
5305 tHalMsgHeader header;
5306 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5307} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5308
5309/*---------------------------------------------------------------------------
5310 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5311 *--------------------------------------------------------------------------*/
5312typedef PACKED_PRE struct PACKED_POST
5313{
5314 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005315 tANI_U32 status;
5316 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005317} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5318
5319typedef PACKED_PRE struct PACKED_POST
5320{
5321 tHalMsgHeader header;
5322 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5323} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5324
5325/*---------------------------------------------------------------------------
5326 * WLAN_HAL_HOST_OFFLOAD_RSP
5327 *--------------------------------------------------------------------------*/
5328typedef PACKED_PRE struct PACKED_POST
5329{
5330 /* success or failure */
5331 tANI_U32 status;
5332} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5333
5334typedef PACKED_PRE struct PACKED_POST
5335{
5336 tHalMsgHeader header;
5337 tHalHostOffloadRspParams hostOffloadRspParams;
5338} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5339
5340/*---------------------------------------------------------------------------
5341 * WLAN_HAL_KEEP_ALIVE_RSP
5342 *--------------------------------------------------------------------------*/
5343typedef PACKED_PRE struct PACKED_POST
5344{
5345 /* success or failure */
5346 tANI_U32 status;
5347} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5348
5349typedef PACKED_PRE struct PACKED_POST
5350{
5351 tHalMsgHeader header;
5352 tHalKeepAliveRspParams keepAliveRspParams;
5353} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5354
5355/*---------------------------------------------------------------------------
5356 * WLAN_HAL_SET_RSSI_THRESH_RSP
5357 *--------------------------------------------------------------------------*/
5358typedef PACKED_PRE struct PACKED_POST
5359{
5360 /* success or failure */
5361 tANI_U32 status;
5362} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5363
5364typedef PACKED_PRE struct PACKED_POST
5365{
5366 tHalMsgHeader header;
5367 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5368} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5369
5370/*---------------------------------------------------------------------------
5371 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5372 *--------------------------------------------------------------------------*/
5373typedef PACKED_PRE struct PACKED_POST
5374{
5375 /* success or failure */
5376 tANI_U32 status;
5377} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5378
5379typedef PACKED_PRE struct PACKED_POST
5380{
5381 tHalMsgHeader header;
5382 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5383} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5384
5385/*---------------------------------------------------------------------------
5386 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5387 *--------------------------------------------------------------------------*/
5388typedef PACKED_PRE struct PACKED_POST
5389{
5390 /* success or failure */
5391 tANI_U32 status;
5392} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5393
5394typedef PACKED_PRE struct PACKED_POST
5395{
5396 tHalMsgHeader header;
5397 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5398} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5399
5400/*---------------------------------------------------------------------------
5401 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5402 *--------------------------------------------------------------------------*/
5403
5404typedef PACKED_PRE struct PACKED_POST
5405{
5406 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5407 //the request has power constraints, this should be applied only to that session
5408 tSirMacAddr selfStaMacAddr;
5409 //In request,
5410 //power == MaxTx power to be used.
5411 tPowerdBm power;
5412
5413}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5414
5415
5416typedef PACKED_PRE struct PACKED_POST
5417{
5418 tHalMsgHeader header;
5419 tSetMaxTxPwrParams setMaxTxPwrParams;
5420}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5421
5422/*---------------------------------------------------------------------------
5423*WLAN_HAL_SET_MAX_TX_POWER_RSP
5424*--------------------------------------------------------------------------*/
5425
5426typedef PACKED_PRE struct PACKED_POST
5427{
5428 //power == tx power used for management frames.
5429 tPowerdBm power;
5430
5431 /* success or failure */
5432 tANI_U32 status;
5433}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5434
5435typedef PACKED_PRE struct PACKED_POST
5436{
5437 tHalMsgHeader header;
5438 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5439}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5440
Kumar Anandea78e792013-10-10 23:47:01 -07005441
Jeff Johnson295189b2012-06-20 16:38:30 -07005442/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005443 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5444 *--------------------------------------------------------------------------*/
5445
5446/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5447typedef enum
5448{
5449 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5450 // For 2.4GHz or 5GHz bands
5451 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5452 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5453 // End of valid enums
5454 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5455}tHalSetMaxTxPwrBandInfo;
5456
5457typedef PACKED_PRE struct PACKED_POST
5458{
5459 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005460 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005461}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5462
Kumar Anandea78e792013-10-10 23:47:01 -07005463
Arif Hussain36fda162013-08-30 14:46:57 -07005464typedef PACKED_PRE struct PACKED_POST
5465{
5466 tHalMsgHeader header;
5467 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5468}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5469
5470/*---------------------------------------------------------------------------
5471*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5472*--------------------------------------------------------------------------*/
5473
5474typedef PACKED_PRE struct PACKED_POST
5475{
5476 //power == tx power used for management frames.
5477 tPowerdBm power;
5478
5479 /* success or failure */
5480 tANI_U32 status;
5481}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5482
5483typedef PACKED_PRE struct PACKED_POST
5484{
5485 tHalMsgHeader header;
5486 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5487}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5488
5489/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005490 *WLAN_HAL_SET_TX_POWER_REQ
5491 *--------------------------------------------------------------------------*/
5492
5493typedef PACKED_PRE struct PACKED_POST
5494{
5495 /* TX Power in milli watts */
5496 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005497 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005498}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5499
5500
5501typedef PACKED_PRE struct PACKED_POST
5502{
5503 tHalMsgHeader header;
5504 tSetTxPwrReqParams setTxPwrReqParams;
5505}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5506
5507/*---------------------------------------------------------------------------
5508*WLAN_HAL_SET_TX_POWER_RSP
5509*--------------------------------------------------------------------------*/
5510
5511typedef PACKED_PRE struct PACKED_POST
5512{
5513 /* success or failure */
5514 tANI_U32 status;
5515}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5516
5517typedef PACKED_PRE struct PACKED_POST
5518{
5519 tHalMsgHeader header;
5520 tSetTxPwrRspParams setTxPwrRspParams;
5521}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5522
5523/*---------------------------------------------------------------------------
5524 *WLAN_HAL_GET_TX_POWER_REQ
5525 *--------------------------------------------------------------------------*/
5526
5527typedef PACKED_PRE struct PACKED_POST
5528{
5529 tANI_U8 staId;
5530}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5531
5532typedef PACKED_PRE struct PACKED_POST
5533{
5534 tHalMsgHeader header;
5535 tGetTxPwrReqParams getTxPwrReqParams;
5536}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5537
5538/*---------------------------------------------------------------------------
5539*WLAN_HAL_GET_TX_POWER_RSP
5540*--------------------------------------------------------------------------*/
5541
5542typedef PACKED_PRE struct PACKED_POST
5543{
5544 /* success or failure */
5545 tANI_U32 status;
5546
5547 /* TX Power in milli watts */
5548 tANI_U32 txPower;
5549}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5550
5551typedef PACKED_PRE struct PACKED_POST
5552{
5553 tHalMsgHeader header;
5554 tGetTxPwrRspParams getTxPwrRspParams;
5555}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5556
5557#ifdef WLAN_FEATURE_P2P
5558/*---------------------------------------------------------------------------
5559 *WLAN_HAL_SET_P2P_GONOA_REQ
5560 *--------------------------------------------------------------------------*/
5561
5562typedef PACKED_PRE struct PACKED_POST
5563{
5564 tANI_U8 opp_ps;
5565 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305566 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005567 tANI_U32 duration;
5568 tANI_U32 interval;
5569 tANI_U32 single_noa_duration;
5570 tANI_U8 psSelection;
5571}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5572
5573
5574typedef PACKED_PRE struct PACKED_POST
5575{
5576 tHalMsgHeader header;
5577 tSetP2PGONOAParams setP2PGONOAParams;
5578}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5579
5580/*---------------------------------------------------------------------------
5581*WLAN_HAL_SET_P2P_GONOA_RSP
5582*--------------------------------------------------------------------------*/
5583
5584typedef PACKED_PRE struct PACKED_POST
5585{
5586 /* success or failure */
5587 tANI_U32 status;
5588}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5589
5590typedef PACKED_PRE struct PACKED_POST
5591{
5592 tHalMsgHeader header;
5593 tSetP2PGONOARspParams setP2PGONOARspParams;
5594}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5595#endif
5596
5597/*---------------------------------------------------------------------------
5598 *WLAN_HAL_ADD_SELF_STA_REQ
5599 *--------------------------------------------------------------------------*/
5600
5601typedef PACKED_PRE struct PACKED_POST
5602{
5603 tSirMacAddr selfMacAddr;
5604 tANI_U32 status;
5605}tAddStaSelfParams, *tpAddStaSelfParams;
5606
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005607typedef PACKED_PRE struct PACKED_POST
5608{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005609 tHalMsgHeader header;
5610 tAddStaSelfParams addStaSelfParams;
5611}tAddStaSelfReq, *tpAddStaSelfReq;
5612
5613/* This V1 structure carries additionally the IFACE PERSONA
5614 of the interface as compared to the legacy control
5615 message */
5616typedef PACKED_PRE struct PACKED_POST
5617{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005618 tSirMacAddr selfMacAddr;
5619 tANI_U32 status;
5620 tHalIfacePersona iface_persona;
5621}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005622
5623typedef PACKED_PRE struct PACKED_POST
5624{
5625 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005626 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005627}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005628
5629/*---------------------------------------------------------------------------
5630*WLAN_HAL_ADD_SELF_STA_RSP
5631*--------------------------------------------------------------------------*/
5632
5633typedef PACKED_PRE struct PACKED_POST
5634{
5635 /* success or failure */
5636 tANI_U32 status;
5637
5638 /*Self STA Index */
5639 tANI_U8 selfStaIdx;
5640
5641 /* DPU Index (IGTK, PTK, GTK all same) */
5642 tANI_U8 dpuIdx;
5643
5644 /* DPU Signature */
5645 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305646
Jeff Johnson295189b2012-06-20 16:38:30 -07005647}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5648
5649typedef PACKED_PRE struct PACKED_POST
5650{
5651 tHalMsgHeader header;
5652 tAddStaSelfRspParams addStaSelfRspParams;
5653}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5654
5655
5656/*---------------------------------------------------------------------------
5657 WLAN_HAL_DEL_STA_SELF_REQ
5658---------------------------------------------------------------------------*/
5659
5660typedef PACKED_PRE struct PACKED_POST
5661{
5662 tSirMacAddr selfMacAddr;
5663
5664}tDelStaSelfParams, *tpDelStaSelfParams;
5665
5666typedef PACKED_PRE struct PACKED_POST
5667{
5668 tHalMsgHeader header;
5669 tDelStaSelfParams delStaSelfParams;
5670} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5671
5672
5673/*---------------------------------------------------------------------------
5674 WLAN_HAL_DEL_STA_SELF_RSP
5675---------------------------------------------------------------------------*/
5676
5677typedef PACKED_PRE struct PACKED_POST
5678{
5679 /*success or failure */
5680 tANI_U32 status;
5681
5682 tSirMacAddr selfMacAddr;
5683}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5684
5685typedef PACKED_PRE struct PACKED_POST
5686{
5687 tHalMsgHeader header;
5688 tDelStaSelfRspParams delStaSelfRspParams;
5689} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5690
5691
5692#ifdef WLAN_FEATURE_VOWIFI_11R
5693
5694/*---------------------------------------------------------------------------
5695 *WLAN_HAL_AGGR_ADD_TS_REQ
5696 *--------------------------------------------------------------------------*/
5697
5698typedef PACKED_PRE struct PACKED_POST
5699{
5700 /* Station Index */
5701 tANI_U16 staIdx;
5702
5703 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5704 /* This will carry the bitmap with the bit positions representing different AC.s*/
5705 tANI_U16 tspecIdx;
5706
5707 /* Tspec info per AC To program TPE with required parameters */
5708 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5709
5710 /* U-APSD Flags: 1b per AC. Encoded as follows:
5711 b7 b6 b5 b4 b3 b2 b1 b0 =
5712 X X X X BE BK VI VO */
5713 tANI_U8 uAPSD;
5714
5715 /* These parameters are for all the access categories */
5716 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5717 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5718 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5719
5720}tAggrAddTsParams, *tpAggrAddTsParams;
5721
5722
5723typedef PACKED_PRE struct PACKED_POST
5724{
5725 tHalMsgHeader header;
5726 tAggrAddTsParams aggrAddTsParam;
5727}tAggrAddTsReq, *tpAggrAddTsReq;
5728
5729/*---------------------------------------------------------------------------
5730*WLAN_HAL_AGGR_ADD_TS_RSP
5731*--------------------------------------------------------------------------*/
5732
5733typedef PACKED_PRE struct PACKED_POST
5734{
5735 /* success or failure */
5736 tANI_U32 status0;
5737 /* FIXME PRIMA for future use for 11R */
5738 tANI_U32 status1;
5739}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5740
5741typedef PACKED_PRE struct PACKED_POST
5742{
5743 tHalMsgHeader header;
5744 tAggrAddTsRspParams aggrAddTsRspParam;
5745}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5746
5747#endif
5748
5749/*---------------------------------------------------------------------------
5750 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5751 *--------------------------------------------------------------------------*/
5752typedef PACKED_PRE struct PACKED_POST
5753{
5754 tANI_U8 isAppsCpuAwake;
5755} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5756
5757typedef PACKED_PRE struct PACKED_POST
5758{
5759 tHalMsgHeader header;
5760 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5761} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5762
5763/*---------------------------------------------------------------------------
5764 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5765 *--------------------------------------------------------------------------*/
5766typedef PACKED_PRE struct PACKED_POST
5767{
5768 /* success or failure */
5769 tANI_U32 status;
5770} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5771
5772typedef PACKED_PRE struct PACKED_POST
5773{
5774 tHalMsgHeader header;
5775 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5776} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5777/*---------------------------------------------------------------------------
5778 * WLAN_HAL_DUMP_COMMAND_REQ
5779 *--------------------------------------------------------------------------*/
5780
5781typedef PACKED_PRE struct PACKED_POST
5782{
5783 tANI_U32 argument1;
5784 tANI_U32 argument2;
5785 tANI_U32 argument3;
5786 tANI_U32 argument4;
5787 tANI_U32 argument5;
5788
5789}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5790
5791typedef PACKED_PRE struct PACKED_POST
5792{
5793 tHalMsgHeader header;
5794 tHalDumpCmdReqParams dumpCmdReqParams;
5795} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5796
5797/*---------------------------------------------------------------------------
5798 * WLAN_HAL_DUMP_COMMAND_RSP
5799 *--------------------------------------------------------------------------*/
5800
5801typedef PACKED_PRE struct PACKED_POST
5802{
5803 /* success or failure */
5804 tANI_U32 status;
5805 /*Length of the responce message*/
5806 tANI_U32 rspLength;
5807 /*FiXME: Currently considering the the responce will be less than 100bytes */
5808 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305809
Jeff Johnson295189b2012-06-20 16:38:30 -07005810} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5811
5812typedef PACKED_PRE struct PACKED_POST
5813{
5814 tHalMsgHeader header;
5815 tHalDumpCmdRspParams dumpCmdRspParams;
5816} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5817
5818/*---------------------------------------------------------------------------
5819 *WLAN_HAL_COEX_IND
5820 *-------------------------------------------------------------------------*/
5821#define WLAN_COEX_IND_DATA_SIZE (4)
5822#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5823#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005824#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5825#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005826#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5827#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305828#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5829#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305830#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005831
5832typedef PACKED_PRE struct PACKED_POST
5833{
5834 /*Coex Indication Type*/
5835 tANI_U32 coexIndType;
5836
5837 /*Coex Indication Data*/
5838 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5839}tCoexIndParams,*tpCoexIndParams;
5840
5841typedef PACKED_PRE struct PACKED_POST
5842{
5843 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305844 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005845}tCoexIndMsg, *tpCoexIndMsg;
5846
5847/*---------------------------------------------------------------------------
5848 *WLAN_HAL_OTA_TX_COMPL_IND
5849 *-------------------------------------------------------------------------*/
5850
5851typedef PACKED_PRE struct PACKED_POST
5852{
5853 /*Tx Complete Indication Success or Failure*/
5854 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305855 /* Dialog token */
5856 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005857}tTxComplParams,*tpTxComplParams;
5858
5859typedef PACKED_PRE struct PACKED_POST
5860{
5861 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305862 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005863}tTxComplIndMsg, *tpTxComplIndMsg;
5864
5865/*---------------------------------------------------------------------------
5866 * WLAN_HAL_HOST_SUSPEND_IND
5867 *-------------------------------------------------------------------------*/
5868
5869typedef PACKED_PRE struct PACKED_POST
5870{
5871 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305872 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005873}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5874
5875typedef PACKED_PRE struct PACKED_POST
5876{
5877 tHalMsgHeader header;
5878 tHalWlanHostSuspendIndParam suspendIndParams;
5879}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5880
5881/*---------------------------------------------------------------------------
5882 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5883 *-------------------------------------------------------------------------*/
5884
5885typedef PACKED_PRE struct PACKED_POST
5886{
5887 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305888 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005889}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5890
5891typedef PACKED_PRE struct PACKED_POST
5892{
5893 tHalMsgHeader header;
5894 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5895}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5896
5897#ifdef WLAN_FEATURE_P2P
5898/*---------------------------------------------------------------------------
5899 *WLAN_HAL_NOA_ATTR_IND
5900 *-------------------------------------------------------------------------*/
5901
5902typedef PACKED_PRE struct PACKED_POST
5903{
5904 tANI_U8 index ;
5905 tANI_U8 oppPsFlag ;
5906 tANI_U16 ctWin ;
5907
5908 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005909 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005910 tANI_U32 uNoa1Duration;
5911 tANI_U32 uNoa1Interval;
5912 tANI_U32 uNoa1StartTime;
5913
5914 tANI_U16 uNoa2IntervalCnt;
5915 tANI_U16 rsvd2;
5916 tANI_U32 uNoa2Duration;
5917 tANI_U32 uNoa2Interval;
5918 tANI_U32 uNoa2StartTime;
5919
5920 tANI_U32 status;
5921}tNoaAttrIndParams, *tpNoaAttrIndParams;
5922
5923typedef PACKED_PRE struct PACKED_POST
5924{
5925 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305926 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005927}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005928
5929/*---------------------------------------------------------------------------
5930 *WLAN_HAL_NOA_START_IND
5931 *-------------------------------------------------------------------------*/
5932
5933typedef PACKED_PRE struct PACKED_POST
5934{
5935 tANI_U32 status;
5936 tANI_U32 bssIdx;
5937}tNoaStartIndParams, *tpNoaStartIndParams;
5938
5939typedef PACKED_PRE struct PACKED_POST
5940{
5941 tHalMsgHeader header;
5942 tNoaStartIndParams noaStartIndParams;
5943}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005944#endif
5945
5946/*---------------------------------------------------------------------------
5947 * WLAN_HAL_HOST_RESUME_REQ
5948 *-------------------------------------------------------------------------*/
5949
5950typedef PACKED_PRE struct PACKED_POST
5951{
5952 tANI_U8 configuredMcstBcstFilterSetting;
5953}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5954
5955typedef PACKED_PRE struct PACKED_POST
5956{
5957 tHalMsgHeader header;
5958 tHalWlanHostResumeReqParam resumeReqParams;
5959}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5960
5961/*---------------------------------------------------------------------------
5962 * WLAN_HAL_HOST_RESUME_RSP
5963 *--------------------------------------------------------------------------*/
5964typedef PACKED_PRE struct PACKED_POST
5965{
5966 /* success or failure */
5967 tANI_U32 status;
5968} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5969
5970typedef PACKED_PRE struct PACKED_POST
5971{
5972 tHalMsgHeader header;
5973 tHalHostResumeRspParams hostResumeRspParams;
5974} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5975
Anand Kumar012623a2013-01-11 17:00:00 -08005976typedef PACKED_PRE struct PACKED_POST
5977{
5978 tANI_U16 staIdx;
5979 // Peer MAC Address, whose BA session has timed out
5980 tSirMacAddr peerMacAddr;
5981 // TID for which a BA session timeout is being triggered
5982 tANI_U8 baTID;
5983 // DELBA direction
5984 // 1 - Originator
5985 // 0 - Recipient
5986 tANI_U8 baDirection;
5987 tANI_U32 reasonCode;
5988 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5989} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5990
5991typedef PACKED_PRE struct PACKED_POST
5992{
5993 tHalMsgHeader header;
5994 tHalWlanDelBaIndMsg hostdelBaParam;
5995} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5996
Jeff Johnson295189b2012-06-20 16:38:30 -07005997/*---------------------------------------------------------------------------
5998 *PNO Messages
5999 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006000/* Max number of channels that a network can be found on*/
6001/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
6002 * be changed at same time
6003 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07006004#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07006005
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306006/*Max number of channels that a network can be found on*/
6007#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
6008
Jeff Johnson295189b2012-06-20 16:38:30 -07006009/*Maximum numbers of networks supported by PNO*/
6010#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6011
6012/*The number of scan time intervals that can be programmed into PNO*/
6013#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6014
6015/*Maximum size of the probe template*/
6016#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6017
Dino Mycle8afbac12014-07-04 22:06:17 +05306018/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006019 Immediate - scanning will start immediately and PNO procedure will
6020 be repeated based on timer
6021 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006022 Resume - scanning will start on system resume
6023 Delay - start the scan timer to trigger PNO scan
6024 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006025typedef enum
6026{
6027 ePNO_MODE_IMMEDIATE,
6028 ePNO_MODE_ON_SUSPEND,
6029 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306030 ePNO_MODE_DELAY,
6031 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006032 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6033} ePNOMode;
6034
6035/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306036typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006037{
Dino Mycle8afbac12014-07-04 22:06:17 +05306038 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006039 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306040
Jeff Johnson295189b2012-06-20 16:38:30 -07006041 // Upper layer authentication types
6042 eAUTH_TYPE_WPA = 2,
6043 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306044
Jeff Johnson295189b2012-06-20 16:38:30 -07006045 eAUTH_TYPE_RSN = 4,
6046 eAUTH_TYPE_RSN_PSK = 5,
6047 eAUTH_TYPE_FT_RSN = 6,
6048 eAUTH_TYPE_FT_RSN_PSK = 7,
6049 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6050 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006051 eAUTH_TYPE_CCKM_WPA = 10,
6052 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306053 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6054 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306055
Jeff Johnson295189b2012-06-20 16:38:30 -07006056 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6057
6058}tAuthType;
6059
6060/* Encryption type */
6061typedef enum eEdType
6062{
6063 eED_ANY = 0,
6064 eED_NONE = 1,
6065 eED_WEP = 2,
6066 eED_TKIP = 3,
6067 eED_CCMP = 4,
6068 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306069
Jeff Johnson295189b2012-06-20 16:38:30 -07006070 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6071} tEdType;
6072
6073/* SSID broadcast type */
6074typedef enum eSSIDBcastType
6075{
6076 eBCAST_UNKNOWN = 0,
6077 eBCAST_NORMAL = 1,
6078 eBCAST_HIDDEN = 2,
6079
6080 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6081} tSSIDBcastType;
6082
Dino Mycle8afbac12014-07-04 22:06:17 +05306083/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006084 The network description for which PNO will have to look for
6085*/
6086typedef PACKED_PRE struct PACKED_POST
6087{
6088 /*SSID of the BSS*/
6089 tSirMacSSid ssId;
6090
6091 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306092 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006093
6094 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306095 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006096
Dino Mycle8afbac12014-07-04 22:06:17 +05306097 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006098 0 - if all channels */
6099 tANI_U8 ucChannelCount;
6100 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6101
6102 /*Indicates the RSSI threshold for the network to be considered*/
6103 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306104}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006105
6106typedef PACKED_PRE struct PACKED_POST
6107{
6108 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306109 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006110
Dino Mycle8afbac12014-07-04 22:06:17 +05306111 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006112 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306113 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006114
Dino Mycle8afbac12014-07-04 22:06:17 +05306115 /*e.g: 2 3
6116 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006117 - it will wait 2s between consecutive scans for 3 times
6118 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306119}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006120
Dino Mycle8afbac12014-07-04 22:06:17 +05306121/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006122 The network parameters to be sent to the PNO algorithm
6123*/
6124typedef PACKED_PRE struct PACKED_POST
6125{
6126 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306127 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006128
Dino Mycle8afbac12014-07-04 22:06:17 +05306129 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006130 two consecutive scan procedures
6131 If the desired is for a uniform timer that fires always at the exact same
6132 interval - one single value is to be set
6133 If there is a desire for a more complex - telescopic like timer multiple
6134 values can be set - once PNO reaches the end of the array it will
6135 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306136 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006137
6138}tScanTimersType;
6139
6140typedef PACKED_PRE struct PACKED_POST {
6141
6142 /*Enable PNO*/
6143 tANI_U32 enable;
6144
6145 /*Immediate, On Suspend, On Resume*/
6146 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306147
Jeff Johnson295189b2012-06-20 16:38:30 -07006148 /*Number of networks sent for PNO*/
6149 tANI_U32 ucNetworksCount;
6150
6151 /*The networks that PNO needs to look for*/
6152 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6153
6154 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306155 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006156
6157 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306158 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006159 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6160
6161 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306162 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006163 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6164
6165} tPrefNetwListParams, * tpPrefNetwListParams;
6166
6167/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306168 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006169*/
6170typedef PACKED_PRE struct PACKED_POST
6171{
6172 tHalMsgHeader header;
6173 tPrefNetwListParams prefNetwListParams;
6174} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6175
6176
Dino Mycle8afbac12014-07-04 22:06:17 +05306177/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006178 The network description for which PNO will have to look for
6179*/
6180typedef PACKED_PRE struct PACKED_POST
6181{
6182 /*SSID of the BSS*/
6183 tSirMacSSid ssId;
6184
6185 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306186 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006187
6188 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306189 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006190
6191 /*SSID broadcast type, normal, hidden or unknown*/
6192 tSSIDBcastType bcastNetworkType;
6193
Dino Mycle8afbac12014-07-04 22:06:17 +05306194 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006195 0 - if all channels */
6196 tANI_U8 ucChannelCount;
6197 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6198
6199 /*Indicates the RSSI threshold for the network to be considered*/
6200 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306201}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006202
6203typedef PACKED_PRE struct PACKED_POST {
6204
6205 /*Enable PNO*/
6206 tANI_U32 enable;
6207
6208 /*Immediate, On Suspend, On Resume*/
6209 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306210
Jeff Johnson295189b2012-06-20 16:38:30 -07006211 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306212 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006213
6214 /*The networks that PNO needs to look for*/
6215 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6216
6217 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306218 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006219
6220 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306221 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006222 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6223
6224 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306225 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006226 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6227
6228} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6229
6230/*
6231 Preferred network list request new
6232*/
6233typedef PACKED_PRE struct PACKED_POST
6234{
6235 tHalMsgHeader header;
6236 tPrefNetwListParamsNew prefNetwListParams;
6237} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6238
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006239#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6240typedef PACKED_PRE struct PACKED_POST
6241{
6242 tSirMacSSid ssId;
6243 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6244 tANI_U32 authentication;
6245 tEdType encryption;
6246 tEdType mcencryption;
6247 tANI_U8 ChannelCount;
6248 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6249}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006250
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006251typedef PACKED_PRE struct PACKED_POST
6252{
6253 tANI_U8 mdiePresent;
6254 tANI_U16 mobilityDomain;
6255}tMobilityDomainInfo;
6256
6257typedef PACKED_PRE struct PACKED_POST {
6258 eAniBoolean RoamScanOffloadEnabled;
6259 tANI_S8 LookupThreshold;
6260 tANI_U8 RoamRssiDiff;
6261 tANI_U8 ChannelCacheType;
6262 tANI_U8 Command;
6263 tANI_U8 StartScanReason;
6264 tANI_U16 NeighborScanTimerPeriod;
6265 tANI_U16 NeighborRoamScanRefreshPeriod;
6266 tANI_U16 NeighborScanChannelMinTime;
6267 tANI_U16 NeighborScanChannelMaxTime;
6268 tANI_U16 EmptyRefreshScanPeriod;
6269 tANI_U8 ValidChannelCount;
6270 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006271 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006272
6273 tANI_U16 us24GProbeSize;
6274 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6275 tANI_U16 us5GProbeSize;
6276 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6277 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006278 tANI_U8 nProbes;
6279 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006280 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006281 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006282 tANI_U8 RoamOffloadEnabled;
6283 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6284 tANI_U8 Prefer5GHz;
6285 tANI_U8 RoamRssiCatGap;
6286 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006287 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6288 tRoamNetworkType ConnectedNetwork;
6289 tMobilityDomainInfo MDID;
6290} tRoamCandidateListParams, * tpRoamCandidateListParams;
6291
6292typedef PACKED_PRE struct PACKED_POST
6293{
Kumar Anandea78e792013-10-10 23:47:01 -07006294 tHalMsgHeader header;
6295 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006296} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6297
6298typedef PACKED_PRE struct PACKED_POST
6299{
Kumar Anandea78e792013-10-10 23:47:01 -07006300 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006301
Kumar Anandea78e792013-10-10 23:47:01 -07006302 /* status of the request - just to indicate that PNO has acknowledged
6303 * the request and will start scanning */
6304 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006305} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6306#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006307
6308/*
6309 Preferred network list response
6310*/
6311typedef PACKED_PRE struct PACKED_POST
6312{
6313 tHalMsgHeader header;
6314
6315 /* status of the request - just to indicate that PNO has acknowledged
6316 * the request and will start scanning*/
6317 tANI_U32 status;
6318} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6319
6320/*
6321 Preferred network indication parameters
6322*/
6323typedef PACKED_PRE struct PACKED_POST {
6324
6325 /*Network that was found with the highest RSSI*/
6326 tSirMacSSid ssId;
6327
6328 /*Indicates the RSSI */
6329 tANI_U8 rssi;
6330
6331 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6332 tANI_U16 frameLength;
6333
6334} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6335
6336/*
6337 Preferred network found indication
6338*/
6339typedef PACKED_PRE struct PACKED_POST {
6340
6341 tHalMsgHeader header;
6342 tPrefNetwFoundParams prefNetwFoundParams;
6343} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6344
6345
6346typedef PACKED_PRE struct PACKED_POST {
6347
6348 /*RSSI Threshold*/
6349 tANI_U8 ucRssiThreshold;
6350
6351} tRssiFilterParams, * tpRssiFilterParams;
6352
Jeff Johnson295189b2012-06-20 16:38:30 -07006353/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306354 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006355*/
6356typedef PACKED_PRE struct PACKED_POST
6357{
6358 tHalMsgHeader header;
6359 tRssiFilterParams prefRSSIFilterParams;
6360} tSetRssiFilterReq, *tpSetRssiFilterReq;
6361
6362/*
6363 Set RSSI filter resp
6364*/
6365typedef PACKED_PRE struct PACKED_POST{
6366 tHalMsgHeader header;
6367 /*status of the request */
6368 tANI_U32 status;
6369} tSetRssiFilterResp, *tpSetRssiFilterResp;
6370/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306371 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006372*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306373typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006374{
6375
6376 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306377 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006378
6379 /*Lets PNO know that host has determined the regulatory domain*/
6380 tANI_U8 b11dResolved;
6381
6382 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306383 tANI_U8 ucChannelCount;
6384 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006385
6386 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306387 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006388
6389 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306390 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006391
6392 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306393 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006394
6395 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306396 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006397
6398 /*Cb State*/
6399 ePhyChanBondState cbState;
6400
6401} tUpdateScanParams, * tpUpdateScanParams;
6402
6403/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306404 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306405*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306406typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306407{
6408
6409 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306410 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306411
6412 /*Lets PNO know that host has determined the regulatory domain*/
6413 tANI_U8 b11dResolved;
6414
6415 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306416 tANI_U8 ucChannelCount;
6417 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306418
6419 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306420 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306421
6422 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306423 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306424
6425 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306426 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306427
6428 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306429 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306430
6431 /*Cb State*/
6432 ePhyChanBondState cbState;
6433
6434} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6435
6436/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006437 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306438 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006439*/
6440typedef PACKED_PRE struct PACKED_POST{
6441
6442 tHalMsgHeader header;
6443 tUpdateScanParams scanParams;
6444} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6445
6446/*
6447 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306448 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006449*/
6450typedef PACKED_PRE struct PACKED_POST{
6451
6452 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306453 tUpdateScanParamsEx scanParams;
6454} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6455
6456/*
6457 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306458 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306459*/
6460typedef PACKED_PRE struct PACKED_POST{
6461
6462 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006463
6464 /*status of the request */
6465 tANI_U32 status;
6466
6467} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6468
6469/*---------------------------------------------------------------------------
6470 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6471 *--------------------------------------------------------------------------*/
6472typedef PACKED_PRE struct PACKED_POST
6473{
6474 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6475 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6476 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6477 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6478} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6479
6480typedef PACKED_PRE struct PACKED_POST
6481{
6482 tHalMsgHeader header;
6483 tHalTxPerTrackingReqParam txPerTrackingParams;
6484} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6485
6486/*---------------------------------------------------------------------------
6487 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6488 *--------------------------------------------------------------------------*/
6489typedef PACKED_PRE struct PACKED_POST
6490{
6491 /* success or failure */
6492 tANI_U32 status;
6493} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6494
6495typedef PACKED_PRE struct PACKED_POST
6496{
6497 tHalMsgHeader header;
6498 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6499} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6500
6501/*---------------------------------------------------------------------------
6502 * WLAN_HAL_TX_PER_HIT_IND
6503 *--------------------------------------------------------------------------*/
6504typedef PACKED_PRE struct PACKED_POST
6505{
6506 tHalMsgHeader header;
6507}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6508
6509/*---------------------------------------------------------------------------
6510 *******************Packet Filtering Definitions Begin*******************
6511 *--------------------------------------------------------------------------*/
6512#define HAL_PROTOCOL_DATA_LEN 8
6513#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6514#define HAL_MAX_NUM_FILTERS 20
6515#define HAL_MAX_CMP_PER_FILTER 10
6516
6517typedef enum
6518{
6519 HAL_RCV_FILTER_TYPE_INVALID,
6520 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6521 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6522 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6523}tHalReceivePacketFilterType;
6524
Dino Mycle8afbac12014-07-04 22:06:17 +05306525typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006526{
6527 HAL_FILTER_PROTO_TYPE_INVALID,
6528 HAL_FILTER_PROTO_TYPE_MAC,
6529 HAL_FILTER_PROTO_TYPE_ARP,
6530 HAL_FILTER_PROTO_TYPE_IPV4,
6531 HAL_FILTER_PROTO_TYPE_IPV6,
6532 HAL_FILTER_PROTO_TYPE_UDP,
6533 HAL_FILTER_PROTO_TYPE_MAX
6534}tHalRcvPktFltProtocolType;
6535
Dino Mycle8afbac12014-07-04 22:06:17 +05306536typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006537{
6538 HAL_FILTER_CMP_TYPE_INVALID,
6539 HAL_FILTER_CMP_TYPE_EQUAL,
6540 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6541 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6542 HAL_FILTER_CMP_TYPE_MAX
6543}tHalRcvPktFltCmpFlagType;
6544
Dino Mycle8afbac12014-07-04 22:06:17 +05306545typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006546{
6547 tANI_U8 protocolLayer;
6548 tANI_U8 cmpFlag;
6549 tANI_U16 dataLength; /* Length of the data to compare */
6550 tANI_U8 dataOffset; /* from start of the respective frame header */
6551 tANI_U8 reserved; /* Reserved field */
6552 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6553 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6554}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6555
6556typedef PACKED_PRE struct PACKED_POST
6557{
6558 tANI_U8 filterId;
6559 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306560 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006561 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006562 tHalRcvPktFilterParams paramsData[1];
6563}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6564
6565typedef PACKED_PRE struct PACKED_POST
6566{
Jeff Johnsone7245742012-09-05 17:12:55 -07006567 tANI_U8 filterId;
6568 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306569 tANI_U8 numParams;
6570 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006571 tANI_U8 bssIdx;
6572 tHalRcvPktFilterParams paramsData[1];
6573}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6574
6575typedef PACKED_PRE struct PACKED_POST
6576{
Jeff Johnson295189b2012-06-20 16:38:30 -07006577 tHalMsgHeader header;
6578 tHalRcvPktFilterCfgType pktFilterCfg;
6579} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6580
Jeff Johnsone7245742012-09-05 17:12:55 -07006581typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006582{
6583 tANI_U8 dataOffset; /* from start of the respective frame header */
6584 tANI_U32 cMulticastAddr;
6585 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006586 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006587} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6588
6589typedef PACKED_PRE struct PACKED_POST
6590{
6591 /* success or failure */
6592 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006593 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006594} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6595
6596typedef PACKED_PRE struct PACKED_POST
6597{
6598 tHalMsgHeader header;
6599 tHalSetPktFilterRspParams pktFilterRspParams;
6600} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6601
Jeff Johnsone7245742012-09-05 17:12:55 -07006602typedef PACKED_PRE struct PACKED_POST
6603{
6604 tANI_U8 bssIdx;
6605} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006606
6607typedef PACKED_PRE struct PACKED_POST
6608{
6609 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006610 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006611} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6612
Jeff Johnsone7245742012-09-05 17:12:55 -07006613
Jeff Johnson295189b2012-06-20 16:38:30 -07006614typedef PACKED_PRE struct PACKED_POST
6615{
6616 tANI_U8 filterId;
6617 tANI_U32 matchCnt;
6618} tHalRcvFltPktMatchCnt;
6619typedef PACKED_PRE struct PACKED_POST
6620{
6621 /* Success or Failure */
6622 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306623 tANI_U32 matchCnt;
6624 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006625 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006626} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6627
6628typedef PACKED_PRE struct PACKED_POST
6629{
6630 tHalMsgHeader header;
6631 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6632} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6633
6634typedef PACKED_PRE struct PACKED_POST
6635{
6636 tANI_U32 status; /* only valid for response message */
6637 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006638 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006639}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6640
6641typedef PACKED_PRE struct PACKED_POST
6642{
6643 tHalMsgHeader header;
6644 tHalRcvFltPktClearParam filterClearParam;
6645} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6646
6647typedef PACKED_PRE struct PACKED_POST
6648{
6649 tHalMsgHeader header;
6650 tHalRcvFltPktClearParam filterClearParam;
6651} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6652
6653typedef PACKED_PRE struct PACKED_POST
6654{
Dino Mycle8afbac12014-07-04 22:06:17 +05306655 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006656 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006657}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6658
6659typedef PACKED_PRE struct PACKED_POST
6660{
6661 tHalMsgHeader header;
6662 tHalRcvFltMcAddrListType mcAddrList;
6663} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6664
6665typedef PACKED_PRE struct PACKED_POST
6666{
6667 tHalMsgHeader header;
6668 tHalRcvFltPktSetMcListRspType rspParam;
6669} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6670
6671
6672/*---------------------------------------------------------------------------
6673 *******************Packet Filtering Definitions End*******************
6674 *--------------------------------------------------------------------------*/
6675
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006676/*
6677 * There are two versions of this message
6678 * Version 1 : Base version
6679 * Current version : Base version + Max LI modulated DTIM
6680 */
6681typedef PACKED_PRE struct PACKED_POST
6682{
6683 /* Ignore DTIM */
6684 tANI_U32 uIgnoreDTIM;
6685
6686 /*DTIM Period*/
6687 tANI_U32 uDTIMPeriod;
6688
6689 /* Listen Interval */
6690 tANI_U32 uListenInterval;
6691
6692 /* Broadcast Multicast Filter */
6693 tANI_U32 uBcastMcastFilter;
6694
6695 /* Beacon Early Termination */
6696 tANI_U32 uEnableBET;
6697
6698 /* Beacon Early Termination Interval */
6699 tANI_U32 uBETInterval;
6700}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6701
6702typedef PACKED_PRE struct PACKED_POST
6703{
6704 tHalMsgHeader header;
6705 tSetPowerParamsVer1Type powerParams;
6706} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6707
Jeff Johnson295189b2012-06-20 16:38:30 -07006708typedef PACKED_PRE struct PACKED_POST
6709{
6710 /* Ignore DTIM */
6711 tANI_U32 uIgnoreDTIM;
6712
6713 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306714 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006715
6716 /* Listen Interval */
6717 tANI_U32 uListenInterval;
6718
6719 /* Broadcast Multicast Filter */
6720 tANI_U32 uBcastMcastFilter;
6721
6722 /* Beacon Early Termination */
6723 tANI_U32 uEnableBET;
6724
6725 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306726 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006727
6728 /* MAX LI for modulated DTIM */
6729 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006730}tSetPowerParamsType, *tpSetPowerParamsType;
6731
6732typedef PACKED_PRE struct PACKED_POST
6733{
6734 tHalMsgHeader header;
6735 tSetPowerParamsType powerParams;
6736} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6737
6738typedef PACKED_PRE struct PACKED_POST{
6739
6740 tHalMsgHeader header;
6741
6742 /*status of the request */
6743 tANI_U32 status;
6744
6745} tSetPowerParamsResp, *tpSetPowerParamsResp;
6746
6747/*---------------------------------------------------------------------------
6748 ****************Capability bitmap exchange definitions and macros starts*************
6749 *--------------------------------------------------------------------------*/
6750
Anand Kumar012623a2013-01-11 17:00:00 -08006751typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006752 MCC = 0,
6753 P2P = 1,
6754 DOT11AC = 2,
6755 SLM_SESSIONIZATION = 3,
6756 DOT11AC_OPMODE = 4,
6757 SAP32STA = 5,
6758 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006759 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006760 WLANACTIVE_OFFLOAD = 8,
6761 BEACON_OFFLOAD = 9,
6762 SCAN_OFFLOAD = 10,
6763 ROAM_OFFLOAD = 11,
6764 BCN_MISS_OFFLOAD = 12,
6765 STA_POWERSAVE = 13,
6766 STA_ADVANCED_PWRSAVE = 14,
6767 AP_UAPSD = 15,
6768 AP_DFS = 16,
6769 BLOCKACK = 17,
6770 PHY_ERR = 18,
6771 BCN_FILTER = 19,
6772 RTT = 20,
6773 RATECTRL = 21,
6774 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006775 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006776 SPECULATIVE_PS_POLL = 24,
6777 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006778 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006779 WLAN_SCAN_OFFLOAD = 27,
6780 WLAN_PERIODIC_TX_PTRN = 28,
6781 ADVANCE_TDLS = 29,
6782 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306783 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306784 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306785 CH_SWITCH_V1 = 33,
6786 HT40_OBSS_SCAN = 34,
6787 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006788 WLAN_MCADDR_FLT = 36,
6789 WLAN_CH144 = 37,
6790 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306791 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306792 LINK_LAYER_STATS_MEAS = 40,
6793 MU_MIMO = 41,
6794 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306795 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306796 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306797 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306798 DISA = 46,
6799 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306800 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306801 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306802 TDLS_OFF_CHANNEL = 51,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306803 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306804 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306805 LOGGING_ENHANCEMENT = 55,
c_manjeecfd1efb2015-09-25 19:32:34 +05306806 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306807 PER_PKT_STATS_SUPPORTED = 58,
Kumar Anandea78e792013-10-10 23:47:01 -07006808 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006809} placeHolderInCapBitmap;
6810
Jeff Johnson295189b2012-06-20 16:38:30 -07006811typedef PACKED_PRE struct PACKED_POST{
6812
6813 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006814} tWlanFeatCaps, *tpWlanFeatCaps;
6815
6816typedef PACKED_PRE struct PACKED_POST{
6817
Dino Mycle8afbac12014-07-04 22:06:17 +05306818 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006819 tWlanFeatCaps wlanFeatCaps;
6820
6821} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6822
Jeff Johnsone7245742012-09-05 17:12:55 -07006823#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6824#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006825#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006826#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006827#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006828#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006829#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006830#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306831#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306832#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306833#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306834#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306835#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006836
Jeff Johnsone7245742012-09-05 17:12:55 -07006837tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6838
Jeff Johnson295189b2012-06-20 16:38:30 -07006839#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006840 if ((b)<=127) { \
6841 arr_index = (b)/32; \
6842 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006843 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006844 (a)->featCaps[arr_index] |= (1<<bit_index); \
6845 } \
6846 }
6847#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006848 if ((b)<=127) { \
6849 arr_index = (b)/32; \
6850 bit_index = (b)%32; \
6851 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006852 } \
6853 }
6854#define clearFeatCaps(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; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006858 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006859 } \
6860 }
6861
6862/*---------------------------------------------------------------------------
6863 * WLAN_HAL_WAKE_REASON_IND
6864 *--------------------------------------------------------------------------*/
6865
6866/* status codes to help debug rekey failures */
6867typedef enum
6868{
6869 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6870 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6871 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6872 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6873 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6874 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6875 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6876 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6877 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6878 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6879
6880 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6881} tGTKRekeyStatus;
6882
6883/* wake reason types */
6884typedef enum
6885{
6886 WLAN_HAL_WAKE_REASON_NONE = 0,
6887 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6888 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6889 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6890 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6891 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6892 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6893 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6894} tWakeReasonType;
6895
6896/*
6897 Wake Packet which is saved at tWakeReasonParams.DataStart
6898 This data is sent for any wake reasons that involve a packet-based wakeup :
6899
6900 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6901 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6902 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6903 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6904 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6905
6906 The information is provided to the host for auditing and debug purposes
6907
6908*/
6909
6910/*
6911 Wake reason indication parameters
6912*/
6913typedef PACKED_PRE struct PACKED_POST
6914{
6915 uint32 ulReason; /* see tWakeReasonType */
6916 uint32 ulReasonArg; /* argument specific to the reason type */
6917 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6918 HAL truncates the data (i.e. data packets) this length
6919 will be less than the actual length */
6920 uint32 ulActualDataLen; /* actual length of data */
6921 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6922 see specific wake type */
6923} tWakeReasonParams, *tpWakeReasonParams;
6924
6925/*
6926 Wake reason indication
6927*/
6928typedef PACKED_PRE struct PACKED_POST
6929{
6930 tHalMsgHeader header;
6931 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006932 tANI_U32 uBssIdx : 8;
6933 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006934} tHalWakeReasonInd, *tpHalWakeReasonInd;
6935
6936/*---------------------------------------------------------------------------
6937* WLAN_HAL_GTK_OFFLOAD_REQ
6938*--------------------------------------------------------------------------*/
6939
6940#define HAL_GTK_KEK_BYTES 16
6941#define HAL_GTK_KCK_BYTES 16
6942
6943#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6944
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006945#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6946
Jeff Johnson295189b2012-06-20 16:38:30 -07006947typedef PACKED_PRE struct PACKED_POST
6948{
6949 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306950 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006951 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6952 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006953 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006954} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6955
6956typedef PACKED_PRE struct PACKED_POST
6957{
6958 tHalMsgHeader header;
6959 tHalGtkOffloadReqParams gtkOffloadReqParams;
6960} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6961
6962/*---------------------------------------------------------------------------
6963* WLAN_HAL_GTK_OFFLOAD_RSP
6964*--------------------------------------------------------------------------*/
6965typedef PACKED_PRE struct PACKED_POST
6966{
6967 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006968 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006969} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6970
6971typedef PACKED_PRE struct PACKED_POST
6972{
6973 tHalMsgHeader header;
6974 tHalGtkOffloadRspParams gtkOffloadRspParams;
6975} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6976
6977
6978/*---------------------------------------------------------------------------
6979* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6980*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006981typedef PACKED_PRE struct PACKED_POST
6982{
6983 tANI_U8 bssIdx;
6984
6985} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006986
6987typedef PACKED_PRE struct PACKED_POST
6988{
6989 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006990 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006991} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6992
6993/*---------------------------------------------------------------------------
6994* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6995*--------------------------------------------------------------------------*/
6996typedef PACKED_PRE struct PACKED_POST
6997{
6998 tANI_U32 ulStatus; /* success or failure */
6999 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
7000 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
7001 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
7002 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
7003 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07007004 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07007005} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
7006
7007typedef PACKED_PRE struct PACKED_POST
7008{
7009 tHalMsgHeader header;
7010 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7011} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7012
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007013/*---------------------------------------------------------------------------
7014* WLAN_HAL_DHCP_IND
7015*--------------------------------------------------------------------------*/
7016typedef PACKED_PRE struct PACKED_POST
7017{
7018 /*Indicates the device mode which indicates about the DHCP activity */
7019 tANI_U8 device_mode;
7020 tSirMacAddr macAddr;
7021} tDHCPInfo, *tpDHCPInfo;
7022
7023typedef PACKED_PRE struct PACKED_POST
7024{
7025 tHalMsgHeader header;
7026 tANI_U32 status; /* success or failure */
7027} tDHCPIndStatus, *tpDHCPIndstatus;
7028
Jeff Johnson295189b2012-06-20 16:38:30 -07007029/*
7030 Thermal Mitigation mode of operation.
7031 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7032 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7033 reducing transmit power
7034 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7035*/
7036typedef enum
7037{
7038 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7039 HAL_THERMAL_MITIGATION_MODE_0,
7040 HAL_THERMAL_MITIGATION_MODE_1,
7041 HAL_THERMAL_MITIGATION_MODE_2,
7042 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7043}tHalThermalMitigationModeType;
7044//typedef tANI_S16 tHalThermalMitigationModeType;
7045
7046/*
7047 Thermal Mitigation level.
7048 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7049 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7050
7051 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7052 level indicates normal mode of operation
7053 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7054 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7055 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7056 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7057*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307058typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007059{
7060 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7061 HAL_THERMAL_MITIGATION_LEVEL_0,
7062 HAL_THERMAL_MITIGATION_LEVEL_1,
7063 HAL_THERMAL_MITIGATION_LEVEL_2,
7064 HAL_THERMAL_MITIGATION_LEVEL_3,
7065 HAL_THERMAL_MITIGATION_LEVEL_4,
7066 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7067}tHalThermalMitigationLevelType;
7068//typedef tANI_S16 tHalThermalMitigationLevelType;
7069
7070typedef PACKED_PRE struct PACKED_POST
7071{
7072 /* Thermal Mitigation Operation Mode */
7073 tHalThermalMitigationModeType thermalMitMode;
7074
7075 /* Thermal Mitigation Level */
7076 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307077
Jeff Johnson295189b2012-06-20 16:38:30 -07007078}tSetThermalMitgationType, *tpSetThermalMitgationType;
7079
7080/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7081typedef PACKED_PRE struct PACKED_POST
7082{
7083 tHalMsgHeader header;
7084 tSetThermalMitgationType thermalMitParams;
7085} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7086
7087typedef PACKED_PRE struct PACKED_POST{
7088
7089 tHalMsgHeader header;
7090
7091 /*status of the request */
7092 tANI_U32 status;
7093
7094} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7095
Dino Mycle8afbac12014-07-04 22:06:17 +05307096/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007097provided to FW from Host via periodic messages */
7098typedef PACKED_PRE struct PACKED_POST {
7099 /* TX stats */
7100 uint32 txBytesPushed;
7101 uint32 txPacketsPushed;
7102
7103 /* RX stats */
7104 uint32 rxBytesRcvd;
7105 uint32 rxPacketsRcvd;
7106 uint32 rxTimeTotal;
7107} tStaStatsClassB, *tpStaStatsClassB;
7108
7109typedef PACKED_PRE struct PACKED_POST {
7110
7111 /* Duration over which this stats was collected */
7112 tANI_U32 duration;
7113
7114 /* Per STA Stats */
7115 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7116} tStatsClassBIndParams, *tpStatsClassBIndParams;
7117
7118typedef PACKED_PRE struct PACKED_POST {
7119
7120 tHalMsgHeader header;
7121
7122 /* Class B Stats */
7123 tStatsClassBIndParams statsClassBIndParams;
7124} tStatsClassBInd, *tpStatsClassBInd;
7125
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307126/*Wifi Proximity paramters in AP mode*/
7127#ifdef FEATURE_WIFI_PROXIMITY
7128
7129typedef PACKED_PRE struct PACKED_POST{
7130
7131 tANI_U8 wifiProximityChannel;
7132 tANI_U32 wifiProximityDuration;
7133 tANI_U32 wifiProximityInterval;
7134 tANI_U32 wifiProximityMode;
7135 tANI_U32 wifiProximityStatus;
7136 tSirMacAddr bssId;
7137 tSirMacSSid ssId;
7138
7139} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7140
7141typedef PACKED_PRE struct PACKED_POST
7142{
7143 tHalMsgHeader header;
7144
7145 tSetWifiProximityReqParam wifiProximityReqParams;
7146
7147}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7148
7149/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7150typedef PACKED_PRE struct PACKED_POST{
7151
7152 tHalMsgHeader header;
7153
7154 /*status of the request */
7155 tANI_U32 status;
7156
7157} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7158
7159#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007160
7161#ifdef FEATURE_SPECULATIVE_PS_POLL
7162/*---------------------------------------------------------------------------
7163 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7164 *--------------------------------------------------------------------------*/
7165typedef PACKED_PRE struct PACKED_POST
7166{
7167 tANI_U8 bssIdx;
7168 tANI_U16 serviceInterval;
7169 tANI_U16 suspendInterval;
7170 tANI_U8 acMask;
7171} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7172
7173typedef PACKED_PRE struct PACKED_POST
7174{
7175 tHalMsgHeader header;
7176 tHalStartSpecPsPollReqParams specPsPollReq;
7177} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7178
7179/*---------------------------------------------------------------------------
7180 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7181 *--------------------------------------------------------------------------*/
7182typedef PACKED_PRE struct PACKED_POST
7183{
7184 /* success or failure */
7185 tANI_U32 status;
7186 tANI_U8 bssIdx;
7187} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7188
7189typedef PACKED_PRE struct PACKED_POST
7190{
7191 tHalMsgHeader header;
7192 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7193} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7194
7195/*---------------------------------------------------------------------------
7196 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7197 *--------------------------------------------------------------------------*/
7198typedef PACKED_PRE struct PACKED_POST
7199{
7200 tHalMsgHeader header;
7201 tANI_U8 bssIdx;
7202} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7203#endif
7204
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307205#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307206#define HAL_MAX_SUPP_CHANNELS 128
7207#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307208/*---------------------------------------------------------------------------
7209 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7210 *-------------------------------------------------------------------------*/
7211typedef PACKED_PRE struct PACKED_POST
7212{
7213 /*STA Index*/
7214 tANI_U16 staIdx;
7215
7216 /* if this is 1, self is initiator and peer is reponder */
7217 tANI_U8 bIsResponder;
7218
7219 /* QoS Info */
7220 tANI_U8 acVOUAPSDFlag:1;
7221 tANI_U8 acVIUAPSDFlag:1;
7222 tANI_U8 acBKUAPSDFlag:1;
7223 tANI_U8 acBEUAPSDFlag:1;
7224 tANI_U8 aAck:1;
7225 tANI_U8 maxServicePeriodLength:2;
7226 tANI_U8 moreDataAck:1;
7227
7228 /*TDLS Peer U-APSD Buffer STA Support*/
7229 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007230
7231 /*TDLS off channel related params */
7232 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307233 tANI_U8 peerCurrOperClass;
7234 tANI_U8 selfCurrOperClass;
7235 tANI_U8 validChannelsLen;
7236 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7237 tANI_U8 validOperClassesLen;
7238 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307239}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7240
7241typedef PACKED_PRE struct PACKED_POST
7242{
7243 tHalMsgHeader header;
7244 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7245} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7246
7247/*---------------------------------------------------------------------------
7248 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7249 *-------------------------------------------------------------------------*/
7250
7251typedef PACKED_PRE struct PACKED_POST
7252{
7253 tANI_U32 status;
7254
7255 /*STA Index*/
7256 tANI_U16 staIdx;
7257} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7258
7259typedef PACKED_PRE struct PACKED_POST
7260{
7261 tHalMsgHeader header;
7262 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7263} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307264/*---------------------------------------------------------------------------
7265 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7266 + *-------------------------------------------------------------------------*/
7267typedef PACKED_PRE struct PACKED_POST
7268{
7269 /*STA Index*/
7270 tANI_U16 staIdx;
7271 /* if this is 1, self is initiator otherwise responder only*/
7272 tANI_U8 isOffchannelInitiator;
7273 /*TDLS off channel related params */
7274 tANI_U8 targetOperClass;
7275 tANI_U8 targetChannel;
7276 tANI_U8 secondaryChannelOffset;
7277 tANI_U8 reserved[32];
7278}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7279
7280typedef PACKED_PRE struct PACKED_POST
7281{
7282 tHalMsgHeader header;
7283 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7284} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7285/*---------------------------------------------------------------------------
7286 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7287 *-------------------------------------------------------------------------*/
7288
7289typedef PACKED_PRE struct PACKED_POST
7290{
7291 tANI_U32 status;
7292 /*STA Index*/
7293 tANI_U16 staIdx;
7294} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7295
7296typedef PACKED_PRE struct PACKED_POST
7297{
7298 tHalMsgHeader header;
7299 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7300} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7301
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307302
7303/*---------------------------------------------------------------------------
7304 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7305 *-------------------------------------------------------------------------*/
7306typedef PACKED_PRE struct PACKED_POST
7307{
7308 /*STA Index*/
7309 tANI_U16 staIdx;
7310}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7311
7312typedef PACKED_PRE struct PACKED_POST
7313{
7314 tHalMsgHeader header;
7315 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7316} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7317
7318/*---------------------------------------------------------------------------
7319 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7320 *-------------------------------------------------------------------------*/
7321
7322typedef PACKED_PRE struct PACKED_POST
7323{
7324 tANI_U32 status;
7325
7326 /*STA Index*/
7327 tANI_U16 staIdx;
7328} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7329
7330typedef PACKED_PRE struct PACKED_POST
7331{
7332 tHalMsgHeader header;
7333 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7334} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7335
7336/*---------------------------------------------------------------------------
7337 *WLAN_HAL_TDLS_IND
7338 *--------------------------------------------------------------------------*/
7339
7340typedef PACKED_PRE struct PACKED_POST
7341{
7342 tANI_U16 assocId;
7343 tANI_U16 staIdx;
7344 tANI_U16 status;
7345 tANI_U16 reasonCode;
7346}tTdlsIndParams, *tpTdlsIndParams;
7347
7348
7349typedef PACKED_PRE struct PACKED_POST
7350{
7351 tHalMsgHeader header;
7352 tTdlsIndParams tdlsIndParams;
7353}tTdlsIndMsg, *tpTdlsIndMsg;
7354
7355#endif
7356
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007357/*---------------------------------------------------------------------------
7358 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7359 *--------------------------------------------------------------------------*/
7360
7361typedef PACKED_PRE struct PACKED_POST
7362{
7363 tANI_U8 bssIdx;
7364 tANI_U8 staIdx;
7365 tSirMacAddr staAddr;
7366}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7367
7368
7369typedef PACKED_PRE struct PACKED_POST
7370{
7371 tHalMsgHeader header;
7372 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7373}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7374
7375
Kumar Anandea78e792013-10-10 23:47:01 -07007376/*********** Scan Offload Related Structures *************/
7377#define HAL_NUM_SCAN_SSID 10
7378#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007379
Kumar Anandea78e792013-10-10 23:47:01 -07007380/*
7381 * Enumetation to indicate scan type (active/passive)
7382 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007383typedef enum
7384{
Kumar Anandea78e792013-10-10 23:47:01 -07007385 eSIR_PASSIVE_SCAN,
7386 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7387} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007388
7389typedef PACKED_PRE struct PACKED_POST
7390{
Kumar Anandea78e792013-10-10 23:47:01 -07007391 tANI_U8 numBssid;
7392 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7393 tANI_U8 numSsid;
7394 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7395 tANI_BOOLEAN hiddenSsid;
7396 tSirMacAddr selfMacAddr;
7397 tSirBssType bssType;
7398 tSirScanType scanType;
7399 tANI_U32 minChannelTime;
7400 tANI_U32 maxChannelTime;
7401 tANI_BOOLEAN p2pSearch;
7402 tANI_U8 channelCount;
7403 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7404 tANI_U16 ieFieldLen;
7405 tANI_U8 ieField[1];
7406}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007407
7408/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007409 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007410 *-------------------------------------------------------------------------*/
7411typedef PACKED_PRE struct PACKED_POST
7412{
Kumar Anandf53016f2013-09-04 15:15:53 -07007413 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007414 tScanOffloadReqType scanOffloadParams;
7415} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007416
7417/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007418 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007419 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007420typedef PACKED_PRE struct PACKED_POST
7421{
7422 tHalMsgHeader header;
7423
7424 /*status of the request - just to indicate SO has acknowledged
7425 * * the request and will start scanning*/
7426 tANI_U32 status;
7427} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7428
7429/*---------------------------------------------------------------------------
7430 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7431 *-------------------------------------------------------------------------*/
7432typedef PACKED_PRE struct PACKED_POST
7433{
7434 tHalMsgHeader header;
7435} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7436
7437/*---------------------------------------------------------------------------
7438 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7439 *-------------------------------------------------------------------------*/
7440typedef PACKED_PRE struct PACKED_POST
7441{
7442 tHalMsgHeader header;
7443
7444 /*status of the request - just to indicate SO has acknowledged
7445 the request and will start scanning*/
7446 tANI_U32 status;
7447} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7448
7449/*
7450 * Enumetation of scan events indicated by firmware to the host
7451 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007452typedef enum
7453{
Kumar Anandea78e792013-10-10 23:47:01 -07007454 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7455 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7456 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7457 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7458 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7459 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7460 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7461 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7462 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7463} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007464
7465typedef PACKED_PRE struct PACKED_POST
7466{
Kumar Anandea78e792013-10-10 23:47:01 -07007467 tScanEventType event;
7468 tANI_U32 channel;
7469 tANI_U32 scanId;
7470} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007471
Kumar Anandea78e792013-10-10 23:47:01 -07007472/*---------------------------------------------------------------------------
7473 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7474 *-------------------------------------------------------------------------*/
7475typedef PACKED_PRE struct PACKED_POST
7476{
7477 tHalMsgHeader header;
7478 tScanOffloadEventInfo scanOffloadInd;
7479} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007480
Kumar Anandea78e792013-10-10 23:47:01 -07007481typedef PACKED_PRE struct PACKED_POST {
7482 /** primary 20 MHz channel frequency in mhz */
7483 tANI_U32 mhz;
7484 /** Center frequency 1 in MHz*/
7485 tANI_U32 band_center_freq1;
7486 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7487 tANI_U32 band_center_freq2;
7488 /* The first 26 bits are a bit mask to indicate any channel flags,
7489 (see WLAN_HAL_CHAN_FLAG*)
7490 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7491 tANI_U32 channel_info;
7492 /** contains min power, max power, reg power and reg class id. */
7493 tANI_U32 reg_info_1;
7494 /** contains antennamax */
7495 tANI_U32 reg_info_2;
7496} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007497
Kumar Anandf53016f2013-09-04 15:15:53 -07007498
Kumar Anandea78e792013-10-10 23:47:01 -07007499typedef enum {
7500 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7501 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7502 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7503 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7504 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7505 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7506 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7507 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7508 WLAN_HAL_MODE_11AC_VHT20 = 8,
7509 WLAN_HAL_MODE_11AC_VHT40 = 9,
7510 WLAN_HAL_MODE_11AC_VHT80 = 10,
7511 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7512 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7513 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7514 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007515
Kumar Anandea78e792013-10-10 23:47:01 -07007516} tChannelPhyModeType;
7517
7518#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7519#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7520#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7521#define WLAN_HAL_CHAN_AP_DISABLED 9
7522#define WLAN_HAL_CHAN_FLAG_DFS 10
7523#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7524#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007525#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7526
7527#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007528 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007529 } while(0)
7530
7531#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007532 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007533
7534#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7535 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7536 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7537 } while(0)
7538#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7539
7540#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7541 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7542 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7543 } while(0)
7544#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7545
7546#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7547 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7548 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7549 } while(0)
7550#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7551#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7552 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7553 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7554 } while(0)
7555#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7556
7557#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7558 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7559 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7560 } while(0)
7561#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7562
7563#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7564 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7565 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7566 } while(0)
7567#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 -07007568
7569typedef PACKED_PRE struct PACKED_POST
7570{
7571 tANI_U8 numChan;
7572 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7573} tUpdateChannelReqType;
7574
7575/*---------------------------------------------------------------------------
7576 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7577 *-------------------------------------------------------------------------*/
7578typedef PACKED_PRE struct PACKED_POST
7579{
7580 tHalMsgHeader header;
7581 tUpdateChannelReqType updateChannelParams;
7582} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7583
7584/*---------------------------------------------------------------------------
7585 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7586 *-------------------------------------------------------------------------*/
7587typedef PACKED_PRE struct PACKED_POST
7588{
7589 tHalMsgHeader header;
7590
7591 /*status of the request - just to indicate SO has acknowledged
7592 * * the request and will start scanning*/
7593 tANI_U32 status;
7594} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7595
7596
7597/*---------------------------------------------------------------------------
7598* WLAN_HAL_TX_FAIL_IND
7599*--------------------------------------------------------------------------*/
7600// Northbound indication from FW to host on weak link detection
7601typedef PACKED_PRE struct PACKED_POST
7602{
7603 // Sequence number increases by 1 whenever the device driver
7604 // sends a notification event. This is cleared as 0 when the
7605 // JOIN IBSS commamd is issued
7606 tANI_U16 seqNo;
7607 tANI_U16 staId;
7608 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7609} tHalTXFailIndParams, *tpHalTXFailIndParams;
7610
7611typedef PACKED_PRE struct PACKED_POST
7612{
7613 tHalMsgHeader header;
7614 tHalTXFailIndParams txFailIndParams;
7615} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7616
7617/*---------------------------------------------------------------------------
7618* WLAN_HAL_TX_FAIL_MONITOR_IND
7619*--------------------------------------------------------------------------*/
7620// Southbound message from Host to monitor the Tx failures
7621typedef PACKED_PRE struct PACKED_POST
7622{
7623 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7624 tANI_U8 tx_fail_count;
7625} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7626
7627typedef PACKED_PRE struct PACKED_POST
7628{
7629 tHalMsgHeader header;
7630 tTXFailMonitorInfo txFailMonitor;
7631} tTXFailMonitorInd, *tpTXFailMonitorInd;
7632
7633/*---------------------------------------------------------------------------
7634* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7635*--------------------------------------------------------------------------*/
7636typedef PACKED_PRE struct PACKED_POST
7637{
7638 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7639 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7640} tDestIpNextHopMacPair;
7641
7642typedef PACKED_PRE struct PACKED_POST
7643{
7644 tANI_U8 numEntries;
7645 tDestIpNextHopMacPair destIpMacPair[1];
7646} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007647
7648typedef PACKED_PRE struct PACKED_POST
7649{
7650 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007651 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7652} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007653
Kumar Anandf53016f2013-09-04 15:15:53 -07007654/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007655 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7656 *-------------------------------------------------------------------------*/
7657typedef enum
7658{
7659 /* reassociation is done, but couldn't finish security handshake */
7660 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7661
7662 /* roam has successfully completed by firmware */
7663 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7664
7665 /* UNKONW error */
7666 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7667}tHalRoamOffloadRoamAuthStatus;
7668
7669typedef enum
7670{
7671 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7672 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7673 WLAN_HAL_ROAM_TYPE_OKC,
7674 WLAN_HAL_ROAM_TYPE_CCKM,
7675 WLAN_HAL_ROAM_TYPE_FT,
7676 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7677} tHalRoamOffloadType;
7678
7679typedef PACKED_PRE struct PACKED_POST
7680{
7681 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7682 tANI_U16 beaconProbeRespOffset;
7683
7684 /* Length of beaon / probe resp. */
7685 tANI_U16 beaconProbeRespLength;
7686
7687 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7688 tANI_U16 reassocRespOffset;
7689
7690 /* Length of reassoc resp. */
7691 tANI_U16 reassocRespLength;
7692
7693 /* 0 for probe response frame, 1 for beacon frame, */
7694 tANI_U8 isBeacon;
7695
7696 /* staIdx of old AP */
7697 tANI_U8 oldStaIdx;
7698
7699 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7700 tConfigBssRspParams */
7701 /* bssIdx of new roamed AP */
7702 tANI_U8 bssIdx;
7703
7704 /* DPU descriptor index for PTK */
7705 tANI_U8 dpuDescIndx;
7706
7707 /* PTK DPU signature */
7708 tANI_U8 ucastDpuSignature;
7709
7710 /* DPU descriptor index for GTK*/
7711 tANI_U8 bcastDpuDescIndx;
7712
7713 /* GTK DPU signature */
7714 tANI_U8 bcastDpuSignature;
7715
7716 /*DPU descriptor for IGTK*/
7717 tANI_U8 mgmtDpuDescIndx;
7718
7719 /* IGTK DPU signature */
7720 tANI_U8 mgmtDpuSignature;
7721
7722 /* Station Index for BSS entry*/
7723 tANI_U8 staIdx;
7724
7725 /* Self station index for this BSS */
7726 tANI_U8 selfStaIdx;
7727
7728 /* Bcast station for buffering bcast frames in AP role */
7729 tANI_U8 bcastStaIdx;
7730
7731 /* MAC address of roamed AP */
7732 tSirMacAddr bssid;
7733
7734 /*HAL fills in the tx power used for mgmt frames in this field. */
7735 tANI_S8 txMgmtPower;
7736
7737 /* success or failure */
7738 tHalRoamOffloadRoamAuthStatus authStatus;
7739
7740 /* TODO : add more info as needed */
7741
7742 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7743 /* Beacon or probe resp from new AP. This is in 802.11
7744 frame format starting with MAC header. */
7745 /* Up to beaconProbeRespLength */
7746
7747 /* reassocRespOffset points to starting of reassoc resp frame */
7748 /* Reassoc resp from new AP. This is in 802.11
7749 frame format starting with MAC header. */
7750 /* Up to reassocRespLength */
7751
7752} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7753
7754
7755typedef PACKED_PRE struct PACKED_POST
7756{
7757 tHalMsgHeader header;
7758 tHalRoamOffloadSynchIndParams params;
7759} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7760
7761/*---------------------------------------------------------------------------
7762 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7763 *-------------------------------------------------------------------------*/
7764typedef PACKED_PRE struct PACKED_POST
7765{
7766 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7767 tSirMacAddr bssid;
7768} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7769
7770typedef PACKED_PRE struct PACKED_POST
7771{
7772 tHalMsgHeader header;
7773 tHalRoamOffloadSynchCnfParams params;
7774} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7775
7776
7777/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007778 WLAN_HAL_RATE_UPDATE_IND
7779 *-------------------------------------------------------------------------*/
7780
7781typedef PACKED_PRE struct PACKED_POST
7782{
7783 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7784 tANI_S32 ucastDataRate; //unit Mbpsx10
7785
7786 /* TX flag to differentiate between HT20, HT40 etc */
7787 tTxRateInfoFlags ucastDataRateTxFlag;
7788
7789 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7790 tSirMacAddr bssid;
7791
7792 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7793 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7794
7795 /* TX flag to differentiate between HT20, HT40 etc */
7796 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7797
7798 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7799 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7800
7801 /* TX flag to differentiate between HT20, HT40 etc */
7802 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7803
7804 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7805 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7806
7807 /* TX flag to differentiate between HT20, HT40 etc */
7808 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7809
7810} tHalRateUpdateParams, *tpHalRateUpdateParams;
7811
7812typedef PACKED_PRE struct PACKED_POST
7813{
7814 tHalMsgHeader header;
7815 tHalRateUpdateParams halRateUpdateParams;
7816} tHalRateUpdateInd, * tpHalRateUpdateInd;
7817
7818/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307819 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7820 *-------------------------------------------------------------------------*/
7821
Abhishek Singhe0443152015-06-18 10:07:43 +05307822#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307823
7824typedef PACKED_PRE struct PACKED_POST
7825{
7826 tANI_U32 startFreq;
7827 tANI_U32 endFreq;
7828} tHalFreqRange, *tpHalFreqRange;
7829
7830typedef PACKED_PRE struct PACKED_POST
7831{
7832 tANI_U32 avoidCnt;
7833 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7834} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7835
7836typedef PACKED_PRE struct PACKED_POST
7837{
7838 tHalMsgHeader header;
7839 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7840} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7841
7842/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307843 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007844 *-------------------------------------------------------------------------*/
7845
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307846typedef enum
7847{
7848 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7849 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7850 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7851}tHT40OBssScanCmdType;
7852
7853typedef PACKED_PRE struct PACKED_POST
7854{
7855 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007856
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307857 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007858 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7859 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7860 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7861 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7862 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7863 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7864 tANI_U16 OBSSScanActivityThreshold;
7865
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307866 tANI_U8 selfStaIdx;
7867 tANI_U8 bssIdx;
7868 tANI_U8 fortyMHZIntolerent;
7869 tANI_U8 channelCount;
7870 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7871 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007872
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307873 tANI_U16 ieFieldLen;
7874 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7875}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7876
7877typedef PACKED_PRE struct PACKED_POST
7878{
7879 tHalMsgHeader header;
7880 tHT40ObssScanIndType scanHT40ObssScanParams;
7881} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7882
7883/*---------------------------------------------------------------------------
7884 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7885 *-------------------------------------------------------------------------*/
7886typedef PACKED_PRE struct PACKED_POST
7887{
7888 tHalMsgHeader header;
7889 tANI_U8 bssIdx;
7890} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307891
7892/*---------------------------------------------------------------------------
7893 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7894 *-------------------------------------------------------------------------*/
7895
7896typedef PACKED_PRE struct PACKED_POST
7897{
7898 /* Valid BSS Idx for beacon miss rate */
7899 tANI_U8 bssIdx;
7900
7901}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7902
7903typedef PACKED_PRE struct PACKED_POST
7904{
7905 tHalMsgHeader header;
7906 tHalBcnMissRateReqParams bcnMissRateReqParams;
7907} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7908
7909/*---------------------------------------------------------------------------
7910 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7911 *-------------------------------------------------------------------------*/
7912
7913typedef PACKED_PRE struct PACKED_POST
7914{
7915 tANI_U32 status;
7916 tANI_U32 bcnMissCnt;
7917}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7918
7919typedef PACKED_PRE struct PACKED_POST
7920{
7921 tHalMsgHeader header;
7922 tHalBcnMissRateRspParams bcnMissRateRspParams;
7923}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7924
Sunil Dutt8377a382014-05-26 21:18:04 +05307925/*--------------------------------------------------------------------------
7926* WLAN_HAL_LL_SET_STATS_REQ
7927*---------------------------------------------------------------------------*/
7928
7929typedef PACKED_PRE struct PACKED_POST
7930{
7931 tANI_U32 req_id;
7932 tANI_U8 sta_id;
7933 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7934 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7935} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7936
7937typedef PACKED_PRE struct PACKED_POST
7938{
7939 tHalMsgHeader header;
7940 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7941} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7942
7943/*---------------------------------------------------------------------------
7944 WLAN_HAL_LL_SET_STATS_RSP
7945---------------------------------------------------------------------------*/
7946
7947typedef PACKED_PRE struct PACKED_POST
7948{
7949 tANI_U32 status;
7950 tANI_U32 resp_id;
7951 tANI_U8 iface_id;
7952} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7953
7954typedef PACKED_PRE struct PACKED_POST
7955{
7956 tHalMsgHeader header;
7957 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7958} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7959
7960/*---------------------------------------------------------------------------
7961 WLAN_HAL_LL_GET_STATS_REQ
7962---------------------------------------------------------------------------*/
7963
7964typedef PACKED_PRE struct PACKED_POST
7965{
7966 tANI_U32 req_id;
7967 tANI_U8 sta_id;
7968 tANI_U32 param_id_mask;
7969} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7970
7971typedef PACKED_PRE struct PACKED_POST
7972{
7973 tHalMsgHeader header;
7974 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7975} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7976
7977/*---------------------------------------------------------------------------
7978 WLAN_HAL_LL_GET_STATS_RSP
7979---------------------------------------------------------------------------*/
7980typedef PACKED_PRE struct PACKED_POST
7981{
7982 tANI_U32 status;
7983 tANI_U32 resp_id;
7984 tANI_U8 iface_id;
7985} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7986
7987typedef PACKED_PRE struct PACKED_POST
7988{
7989 tHalMsgHeader header;
7990 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7991} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7992
7993/*---------------------------------------------------------------------------
7994 WLAN_HAL_LL_CLEAR_STATS_REQ
7995---------------------------------------------------------------------------*/
7996typedef PACKED_PRE struct PACKED_POST
7997{
7998 tANI_U32 req_id;
7999 tANI_U8 sta_id;
8000 tANI_U32 stats_clear_req_mask;
8001 tANI_U8 stop_req;
8002} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
8003
8004typedef PACKED_PRE struct PACKED_POST
8005{
8006 tHalMsgHeader header;
8007 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
8008} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8009
8010/*---------------------------------------------------------------------------
8011 WLAN_HAL_LL_CLEAR_STATS_RSP
8012---------------------------------------------------------------------------*/
8013typedef PACKED_PRE struct PACKED_POST
8014{
8015 tANI_U32 status;
8016 tANI_U8 sta_id;
8017 tANI_U32 resp_id;
8018 tANI_U32 stats_clear_rsp_mask;
8019 tANI_U8 stop_req_status;
8020} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8021
8022typedef PACKED_PRE struct PACKED_POST
8023{
8024 tHalMsgHeader header;
8025 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8026} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8027
8028/*---------------------------------------------------------------------------
8029 WLAN_HAL_LL_NOTIFY_STATS
8030---------------------------------------------------------------------------*/
8031
8032typedef PACKED_PRE struct PACKED_POST
8033{
8034 tHalMsgHeader header;
8035 tANI_U32 param_id;
8036 tANI_U8 iface_id;
8037 tANI_U32 resp_id;
8038 tANI_U32 more_result_to_follow;
8039 tANI_U8 result[1];
8040} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008041
Dino Mycle108eff22014-06-10 09:36:44 +05308042/*---------------------------------------------------------------------------
8043 * WLAN_HAL_EXT_SCAN_START_REQ
8044 *-------------------------------------------------------------------------*/
8045
Dino Mycle8afbac12014-07-04 22:06:17 +05308046typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308047{
8048 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8049 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8050 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8051 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8052 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8053 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8054 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308055 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308056} tExtScanChannelBandMask;
8057
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308058#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8059#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8060
8061#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8062
8063#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8064#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8065#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8066#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8067
Dino Mycle108eff22014-06-10 09:36:44 +05308068typedef PACKED_PRE struct PACKED_POST
8069{
8070 tANI_U32 channel; // frequency
8071 tANI_U32 dwellTimeMs; // dwell time hint
8072 tANI_U8 passive; // 0 => active,
8073 // 1 => passive scan; ignored for DFS
8074}tExtScanChannelSpec, *tpExtScanChannelSpec;
8075
8076typedef PACKED_PRE struct PACKED_POST
8077 {
8078 /* bucket index, 0 based */
8079 tANI_U8 bucketId;
8080 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8081 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308082 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308083 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308084 /* This is a bit field; which defines following bits -
8085 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8086 is % full
8087 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8088 after scan
8089 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8090 (beacons/probe responses + IEs) in real time to HAL, in addition
8091 to completion events
8092 Note: To keep backward compatibility, fire completion events
8093 regardless of REPORT_EVENTS_EACH_SCAN.
8094 * REPORT_EVENTS_NO_BATCH => controls batching,
8095 0 => batching, 1 => no batching
8096 */
Dino Mycle108eff22014-06-10 09:36:44 +05308097 tANI_U8 reportEvents;
8098 /* number of channels */
8099 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308100 // new Exponential Scan params
8101 tANI_U32 max_period;
8102 tANI_U32 exponent;
8103 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308104 /* if channels to scan. In the TLV channelList[] */
8105 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8106}tExtScanBucketData, *tpExtScanBucketData;
8107
8108typedef PACKED_PRE struct PACKED_POST
8109{
8110 tANI_U32 requestId;
8111 tANI_U8 sessionId;
8112 /* Base period (milliseconds) used by scan buckets to define periodicity
8113 of the scans */
8114 tANI_U32 basePeriod;
8115 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8116 (keep the most significant, i.e. stronger RSSI) */
8117 tANI_U32 maxApPerScan;
8118 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308119 tANI_U32 reportThresholdPercent;
8120 /* in number of scans, wake up AP after these many scans */
8121 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308122 /* This will be off channel minimum time */
8123 tANI_U16 neighborScanChannelMinTime;
8124 /* This will be out off channel max time */
8125 tANI_U16 neighborScanChannelMaxTime;
8126 /* This will be the home (BSS) channel time */
8127 tANI_U16 homeAwayTime;
8128 /* number of buckets (maximum 8) */
8129 tANI_U8 numBuckets;
8130 /* Buckets data */
8131 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8132} tHalExtScanStartReq, *tpHalExtScanStartReq;
8133
8134typedef PACKED_PRE struct PACKED_POST
8135{
8136 tHalMsgHeader header;
8137 tHalExtScanStartReq extScanStartReq;
8138}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8139
8140/*---------------------------------------------------------------------------
8141 * WLAN_HAL_EXT_SCAN_START_RSP
8142 *-------------------------------------------------------------------------*/
8143
8144typedef PACKED_PRE struct PACKED_POST
8145{
8146 tANI_U32 requestId;
8147 tANI_U32 status;
8148}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8149
8150typedef PACKED_PRE struct PACKED_POST
8151{
8152 tHalMsgHeader header;
8153 tHalExtScanStartRsp extScanStartRsp;
8154}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8155
8156/*---------------------------------------------------------------------------
8157 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8158 *-------------------------------------------------------------------------*/
8159
8160typedef PACKED_PRE struct PACKED_POST
8161{
8162 tANI_U32 requestId;
8163 tANI_U8 sessionId;
8164}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8165
8166typedef PACKED_PRE struct PACKED_POST
8167{
8168 tHalMsgHeader header;
8169 tHalExtScanGetCapReq extScanGetCapReq;
8170}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8171
8172/*---------------------------------------------------------------------------
8173 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8174 *-------------------------------------------------------------------------*/
8175
8176typedef PACKED_PRE struct PACKED_POST
8177{
8178 tANI_U32 requestId;
8179 tANI_U32 status;
8180
8181 tANI_U32 scanCacheSize;
8182 tANI_U32 scanBuckets;
8183 tANI_U32 maxApPerScan;
8184 tANI_U32 maxRssiSampleSize;
8185 tANI_U32 maxScanReportingThreshold;
8186
8187 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308188 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308189
8190 tANI_U32 maxBssidHistoryEntries;
8191}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8192
8193typedef PACKED_PRE struct PACKED_POST
8194{
8195 tHalMsgHeader header;
8196 tHalExtScanGetCapRsp extScanGetCapRsp;
8197}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8198
8199/*---------------------------------------------------------------------------
8200 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8201 *-------------------------------------------------------------------------*/
8202
8203typedef PACKED_PRE struct PACKED_POST
8204{
8205 tANI_U32 requestId;
8206 tANI_U8 sessionId;
8207 /*
8208 * 1 return cached results and flush it
8209 * 0 return cached results and do not flush
8210 */
8211 tANI_BOOLEAN flush;
8212}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8213
8214typedef PACKED_PRE struct PACKED_POST
8215{
8216 tHalMsgHeader header;
8217 tHalExtScanGetScanReq getScanReq;
8218}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8219
8220/*---------------------------------------------------------------------------
8221 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8222 *-------------------------------------------------------------------------*/
8223
8224typedef PACKED_PRE struct PACKED_POST
8225{
8226 tANI_U32 requestId;
8227 tANI_U32 status;
8228}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8229
8230typedef PACKED_PRE struct PACKED_POST
8231{
8232 tHalMsgHeader header;
8233 tHalExtScanGetScanRsp getScanRsp;
8234}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8235
8236/*---------------------------------------------------------------------------
8237 * WLAN_HAL_EXT_SCAN_RESULT_IND
8238 *-------------------------------------------------------------------------*/
8239
8240typedef PACKED_PRE struct PACKED_POST
8241{
8242 tANI_U64 ts; // time of discovery
8243 tANI_U8 ssid[32+1]; // null terminated SSID
8244 tSirMacAddr bssid; // BSSID
8245 tANI_U32 channel; // channel frequency in MHz
8246 tANI_S32 rssi; // RSSI in dBm
8247 tANI_U32 rtt; // RTT in nanoseconds - not expected
8248 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308249 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308250 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308251 tANI_U16 ieLength; // size of the ie_data blob
8252 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308253} tHalExtScanResultParams, *tpHalExtScanResultParams;
8254
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308255/* Get the GSCAN cached scan results */
8256typedef struct {
8257 tANI_U16 scan_id; // a unique identifier for the scan unit
8258 tANI_U8 flags; // a bitmask with additional
8259 // information about scan
8260 tANI_U8 num_results; // number of bssids retrieved by the scan
8261 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8262 // scan results - one for each bssid
8263} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8264
Dino Mycle108eff22014-06-10 09:36:44 +05308265typedef PACKED_PRE struct PACKED_POST
8266{
8267 tHalMsgHeader header;
8268 tANI_U32 requestId;
8269 tANI_U32 scanResultSize;
8270 tANI_BOOLEAN moreData;
8271 tANI_U8 extScanResult[1];
8272}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8273
8274/*---------------------------------------------------------------------------
8275 * WLAN_HAL_EXT_SCAN_STOP_REQ
8276 *-------------------------------------------------------------------------*/
8277
8278typedef PACKED_PRE struct PACKED_POST
8279{
8280 tANI_U32 requestId;
8281 tANI_U8 sessionId;
8282}tHalExtScanStopReq, *tpHalExtScanStopReq;
8283
8284typedef PACKED_PRE struct PACKED_POST
8285{
8286 tHalMsgHeader header;
8287 tHalExtScanStopReq extScanStopReq;
8288}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8289
8290/*---------------------------------------------------------------------------
8291 * WLAN_HAL_EXT_SCAN_STOP_RSP
8292 *-------------------------------------------------------------------------*/
8293
8294typedef PACKED_PRE struct PACKED_POST
8295{
8296 tANI_U32 requestId;
8297 tANI_U32 status;
8298}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8299
8300typedef PACKED_PRE struct PACKED_POST
8301{
8302 tHalMsgHeader header;
8303 tHalExtScanStopRsp extScanStopRsp;
8304}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8305
8306/*---------------------------------------------------------------------------
8307 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8308 *-------------------------------------------------------------------------*/
8309
Dino Mycle8afbac12014-07-04 22:06:17 +05308310typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308311{
8312 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8313 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308314 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308315} tHalExtScanProgressEventType;
8316
8317typedef PACKED_PRE struct PACKED_POST
8318{
8319 tANI_U32 requestId;
8320 tANI_U32 status;
8321 tHalExtScanProgressEventType extScanEventType;
8322}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8323
8324typedef PACKED_PRE struct PACKED_POST
8325{
8326 tHalMsgHeader header;
8327 tHalExtScanProgressInd extScanProgressInd;
8328}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8329
8330/*---------------------------------------------------------------------------
8331 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8332 *-------------------------------------------------------------------------*/
8333
8334typedef PACKED_PRE struct PACKED_POST
8335{
8336 tANI_U32 requestId;
8337 tANI_U32 numOfScanResAvailable;
8338}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8339
8340typedef PACKED_PRE struct PACKED_POST
8341{
8342 tHalMsgHeader header;
8343 tHalExtScanResAvailableInd extScanResAvailableInd;
8344}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8345
Dino Mycle108eff22014-06-10 09:36:44 +05308346typedef PACKED_PRE struct PACKED_POST
8347{
8348 /* AP BSSID */
8349 tSirMacAddr bssid;
8350 /* low threshold - used in L for significant_change - not used in L for
8351 hotlist*/
8352 tANI_S32 lowRssiThreshold;
8353 /* high threshold - used in L for significant rssi - used in L for hotlist */
8354 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308355} tApThresholdParams, *tpApThresholdParams;
8356
Dino Mycle108eff22014-06-10 09:36:44 +05308357/*---------------------------------------------------------------------------
8358 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8359 *-------------------------------------------------------------------------*/
8360
8361typedef PACKED_PRE struct PACKED_POST
8362{
8363 tANI_U32 requestId;
8364 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308365 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308366 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308367 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308368 // hotlist APs
8369 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8370} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8371
8372typedef PACKED_PRE struct PACKED_POST
8373{
8374 tHalMsgHeader header;
8375 tHalBssidHotlistSetReq bssidHotlistSetReq;
8376}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8377
8378/*---------------------------------------------------------------------------
8379 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8380 *-------------------------------------------------------------------------*/
8381
8382typedef PACKED_PRE struct PACKED_POST
8383{
8384 tANI_U32 requestId;
8385 tANI_U32 status;
8386}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8387
8388typedef PACKED_PRE struct PACKED_POST
8389{
8390 tHalMsgHeader header;
8391 tHalHotlistSetRsp hotlistSetRsp;
8392}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8393
8394/*---------------------------------------------------------------------------
8395 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8396 *-------------------------------------------------------------------------*/
8397
8398typedef PACKED_PRE struct PACKED_POST
8399{
8400 tANI_U32 requestId;
8401}tHalHotlistResetReq, *tpHalHotlistResetReq;
8402
8403typedef PACKED_PRE struct PACKED_POST
8404{
8405 tHalMsgHeader header;
8406 tHalHotlistResetReq hotlistResetReq;
8407}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8408
8409/*---------------------------------------------------------------------------
8410 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8411 *-------------------------------------------------------------------------*/
8412
8413typedef PACKED_PRE struct PACKED_POST
8414{
8415 tANI_U32 requestId;
8416 tANI_U32 status;
8417}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8418
8419typedef PACKED_PRE struct PACKED_POST
8420{
8421 tHalMsgHeader header;
8422 tHalHotlistResetRsp hotlistResetRsp;
8423}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8424
8425/*---------------------------------------------------------------------------
8426 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8427 *-------------------------------------------------------------------------*/
8428
8429typedef PACKED_PRE struct PACKED_POST
8430{
8431 tHalMsgHeader header;
8432 tANI_U32 requestId;
8433 tANI_U32 numHotlistBss;
8434 tANI_BOOLEAN moreData;
8435 tANI_U8 bssHotlist[1];
8436}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8437
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308438/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308439 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8440 *-------------------------------------------------------------------------*/
8441
8442typedef PACKED_PRE struct PACKED_POST
8443{
8444 /* SSID */
8445 char ssid [32+1];
8446 /* low threshold - used in L for significant_change - not used in L for
8447 hotlist*/
8448 tANI_S32 lowRssiThreshold;
8449 /* high threshold - used in L for significant rssi - used in L for hotlist */
8450 tANI_S32 highRssiThreshold;
8451 /* band */
8452 tANI_U32 band;
8453 } tSsidThresholdParams, *tpSsidThresholdParams;
8454
8455
8456typedef PACKED_PRE struct PACKED_POST
8457{
8458 tANI_U32 requestId;
8459 tANI_U8 sessionId;
8460 tANI_U32 lostSsidSampleSize;
8461 // number of hotlist SSIDs
8462 tANI_U32 numSsid;
8463 // hotlist SSIDs
8464 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8465} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8466
8467typedef PACKED_PRE struct PACKED_POST
8468{
8469 tHalMsgHeader header;
8470 tHalSsidHotlistSetReq ssidHotlistSetReq;
8471}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8472
8473/*---------------------------------------------------------------------------
8474 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8475 *-------------------------------------------------------------------------*/
8476typedef PACKED_PRE struct PACKED_POST
8477{
8478 tANI_U32 requestId;
8479 tANI_U32 status;
8480}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8481
8482typedef PACKED_PRE struct PACKED_POST
8483{
8484 tHalMsgHeader header;
8485 tHalSsidHotlistSetRsp hotlistSetRsp;
8486}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8487
8488/*---------------------------------------------------------------------------
8489 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8490 *-------------------------------------------------------------------------*/
8491
8492typedef PACKED_PRE struct PACKED_POST
8493{
8494 tANI_U32 requestId;
8495}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8496
8497typedef PACKED_PRE struct PACKED_POST
8498{
8499 tHalMsgHeader header;
8500 tHalSsidHotlistResetReq hotlistResetReq;
8501}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8502
8503/*---------------------------------------------------------------------------
8504 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8505 *-------------------------------------------------------------------------*/
8506
8507typedef PACKED_PRE struct PACKED_POST
8508{
8509 tANI_U32 requestId;
8510 tANI_U32 status;
8511}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8512
8513typedef PACKED_PRE struct PACKED_POST
8514{
8515 tHalMsgHeader header;
8516 tHalSsidHotlistResetRsp hotlistResetRsp;
8517}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8518
8519/*---------------------------------------------------------------------------
8520 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8521 *-------------------------------------------------------------------------*/
8522
8523typedef PACKED_PRE struct PACKED_POST
8524{
8525 tHalMsgHeader header;
8526 tANI_U32 requestId;
8527 tANI_BOOLEAN ssid_found;
8528 tANI_U32 numHotlistSsid;
8529 tANI_BOOLEAN moreData;
8530 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8531}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8532
8533/*---------------------------------------------------------------------------
Padma, Santhosh Kumarfa6659a2015-09-10 17:47:16 +05308534 * WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
8535 *-------------------------------------------------------------------------*/
8536
8537typedef PACKED_PRE struct PACKED_POST
8538{
8539 tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
8540 tANI_U32 reserved; //reserved for future use
8541}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
8542
8543typedef PACKED_PRE struct PACKED_POST
8544{
8545 tHalMsgHeader header;
8546 tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
8547}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
8548
8549/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308550 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8551 *--------------------------------------------------------------------------*/
8552typedef PACKED_PRE struct PACKED_POST
8553{
8554 tANI_U8 macAddr[6];
8555 tANI_U32 reserved1;
8556 tANI_U32 reserved2;
8557}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8558
8559typedef PACKED_PRE struct PACKED_POST
8560{
8561 tHalMsgHeader header;
8562 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8563} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8564
8565/*---------------------------------------------------------------------------
8566* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8567*-------------------------------------------------------------------------*/
8568
8569typedef PACKED_PRE struct PACKED_POST
8570{
8571 tANI_U32 status;
8572 tANI_U32 reserved1;
8573} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8574
8575typedef PACKED_PRE struct PACKED_POST
8576{
8577 tHalMsgHeader header;
8578 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8579} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308580/*---------------------------------------------------------------------------
8581 *WLAN_HAL_GET_FRAME_LOG_REQ
8582 *--------------------------------------------------------------------------*/
8583typedef PACKED_PRE struct PACKED_POST
8584{
8585 tANI_U8 flags;
8586}tGetFrameLogReqType, * tpGetFrameLogReqType;
8587
8588typedef PACKED_PRE struct PACKED_POST
8589{
8590 tHalMsgHeader header;
8591 tGetFrameLogReqType tGetFrameLogReqParams;
8592} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8593
8594/*---------------------------------------------------------------------------
8595 * WLAN_HAL_GET_FRAME_LOG_RSP
8596 *-------------------------------------------------------------------------*/
8597typedef PACKED_PRE struct PACKED_POST
8598{
8599 tANI_U32 status;
8600} tGetFrameLogResp, * tpGetFrameLogResp;
8601
8602typedef PACKED_PRE struct PACKED_POST
8603{
8604 tHalMsgHeader header;
8605 tGetFrameLogResp tGetFrameLogRespParams;
8606} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8607
8608/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308609 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8610 *-------------------------------------------------------------------------*/
8611typedef PACKED_PRE struct PACKED_POST
8612{
8613 tANI_U32 reasonCode;
8614}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8615
8616typedef PACKED_PRE struct PACKED_POST
8617{
8618 tHalMsgHeader header;
8619 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8620}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8621
8622/*---------------------------------------------------------------------------
8623 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8624 *-------------------------------------------------------------------------*/
8625typedef PACKED_PRE struct PACKED_POST
8626{ tANI_U32 status;
8627}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8628
8629typedef PACKED_PRE struct PACKED_POST
8630{
8631 tHalMsgHeader header;
8632 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8633}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8634
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308635/*---------------------------------------------------------------------------
8636 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8637 *-------------------------------------------------------------------------*/
8638typedef PACKED_PRE struct PACKED_POST
8639{
8640 tANI_U8 bssIdx;
8641 tANI_U8 rssi;
8642 tSirMacAddr selfMacAddr;
8643 tANI_U32 linkFlCnt;
8644 tANI_U32 linkFlTx;
8645 tANI_U32 lastDataRate;
8646 tANI_U32 rsvd1;
8647 tANI_U32 rsvd2;
8648}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8649
8650typedef PACKED_PRE struct PACKED_POST
8651{
8652 tHalMsgHeader header;
8653 tHalLostLinkParametersIndParams lostLinkParameters;
8654}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308655
8656
8657/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308658 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308659 *--------------------------------------------------------------------------*/
8660typedef PACKED_PRE struct PACKED_POST
8661{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308662 /* BIT0 - enable frame logging
8663 * BIT1 - enableBMUHWtracing
8664 * BIT2 - enableQXDMlogging
8665 * BIT3 - enableUElogDpuTxp
8666 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308667 tANI_U8 enableFlag;
8668 tANI_U8 frameType;
8669 tANI_U8 frameSize;
8670 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308671 /* Host mem address to be used as logmailbox */
8672 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308673 /* firmware will wakeup the host to send logs always */
8674 tANI_U8 continuousFrameLogging;
8675 /* Logging mail box version */
8676 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308677 /* Max ring size in firmware to log msgs when host is suspended state */
8678 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308679 /* when firmware log reaches this threshold and
8680 * if host is awake it will push the logs.
8681 */
8682 tANI_U8 minLogBuffSize;
8683 /* Reserved for future purpose */
8684 tANI_U32 reserved0;
8685 tANI_U32 reserved1;
8686 tANI_U32 reserved2;
8687}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308688
8689typedef PACKED_PRE struct PACKED_POST
8690{
8691 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308692 tFWLoggingInitReqType tFWLoggingInitReqParams;
8693} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308694
8695/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308696 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308697 *-------------------------------------------------------------------------*/
8698typedef PACKED_PRE struct PACKED_POST
8699{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308700 tANI_U32 status;
8701 /* FW mail box address */
8702 tANI_U64 logMailBoxAddr;
8703 /* Logging mail box version */
8704 tANI_U8 logMailBoxVer;
8705 /* Qshrink is enabled */
8706 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05308707 /* fw_dump_max_size is used to tell fwr mem dump size */
8708 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308709 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308710 tANI_U32 reserved1;
8711 tANI_U32 reserved2;
8712} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308713
Gupta, Kapil042e9fb2015-09-30 13:34:22 +05308714
8715typedef PACKED_PRE struct PACKED_POST {
8716 tANI_U32 request_id;
8717 tSirMacAddr bssId;
8718 tANI_S8 min_rssi;
8719 tANI_S8 max_rssi;
8720} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
8721
8722typedef PACKED_PRE struct PACKED_POST
8723{
8724 tHalMsgHeader header;
8725 tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
8726}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
8727
8728//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
8729typedef PACKED_PRE struct PACKED_POST {
8730 tANI_U32 request_id;
8731 tANI_U32 status;
8732} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
8733
8734typedef PACKED_PRE struct PACKED_POST
8735{
8736 tHalMsgHeader header;
8737 tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
8738}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
8739
8740//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
8741typedef PACKED_PRE struct PACKED_POST
8742{
8743 tANI_U32 request_id;
8744 tSirMacAddr bssId;
8745 tANI_S8 rssi;
8746} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
8747
8748typedef PACKED_PRE struct PACKED_POST
8749{
8750 tHalMsgHeader header;
8751 tHalRssiMonitorIndParams RssiMonitorIndParams;
8752}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
8753
8754
8755//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
8756typedef PACKED_PRE struct PACKED_POST {
8757 tANI_U32 request_id;
8758 tSirMacAddr bssId;
8759} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
8760
8761typedef PACKED_PRE struct PACKED_POST
8762{
8763 tHalMsgHeader header;
8764 tHalStopRssiMonitoringParams stopRssiMonitoringParams;
8765}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
8766
8767//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
8768typedef PACKED_PRE struct PACKED_POST {
8769 tANI_U32 request_id;
8770 tANI_U32 status;
8771} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
8772
8773typedef PACKED_PRE struct PACKED_POST
8774{
8775 tHalMsgHeader header;
8776 tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
8777}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
8778
8779
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308780typedef PACKED_PRE struct PACKED_POST
8781{
8782 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308783 tFWLoggingInitResp tFWLoggingInitRespParams;
8784} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
8785
8786/*---------------------------------------------------------------------------
8787 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
8788 *-------------------------------------------------------------------------*/
8789typedef PACKED_PRE struct PACKED_POST
8790{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05308791 tANI_U16 status;
8792 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308793 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8794 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8795} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
8796
8797typedef PACKED_PRE struct PACKED_POST
8798{
8799 tHalMsgHeader header;
8800 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
8801} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
8802
8803/*---------------------------------------------------------------------------
8804 * Logging mail box structure
8805 *-------------------------------------------------------------------------*/
8806
8807#define MAILBOX_VERSION_V1 0x1
8808
8809typedef PACKED_PRE struct PACKED_POST
8810{
8811 /* Logging mail box version */
8812 tANI_U8 logMbVersion;
8813 /* Current logging buffer address */
8814 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8815 /* Current logging buffer length */
8816 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8817 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
8818 tANI_U16 reasonCode;
8819 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
8820 tANI_U8 logType;
8821 /* Indicate if Last segment of log is received*/
8822 tANI_BOOLEAN done;
8823}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308824
Katya Nigamf0511f62015-05-05 16:40:57 +05308825/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05308826 *WLAN_HAL_FW_MEMORY_DUMP_REQ
8827 *--------------------------------------------------------------------------*/
8828typedef PACKED_PRE struct PACKED_POST
8829{
8830 tANI_U32 reserved;
8831}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
8832
8833typedef PACKED_PRE struct PACKED_POST
8834{
8835 tHalMsgHeader header;
8836 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
8837} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
8838
8839/*---------------------------------------------------------------------------
8840 * WLAN_HAL_FW_MEMORY_DUMP_RSP
8841 *-------------------------------------------------------------------------*/
8842typedef PACKED_PRE struct PACKED_POST
8843{
8844 tANI_U32 status;
8845} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
8846
8847typedef PACKED_PRE struct PACKED_POST
8848{
8849 tHalMsgHeader header;
8850 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
8851} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
8852
8853
8854/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05308855* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
8856*-------------------------------------------------------------------------*/
8857
8858/* only 1 filter is supported as of now */
8859#define NUM_FILTERS_SUPPORTED 1
8860
8861typedef PACKED_PRE struct PACKED_POST
8862{
8863 tSirMacAddr macAddr;
8864 tANI_U8 isA1filteringNeeded;
8865 tANI_U8 isA2filteringNeeded;
8866 tANI_U8 isA3filteringNeeded;
8867}tHalMacFilter, *tpHalMacFilter;
8868
8869typedef PACKED_PRE struct PACKED_POST
8870{
8871 tANI_U8 channelNumber;
8872 ePhyChanBondState cbState;
8873
8874 tANI_U32 maxAmpduLen;
8875 tANI_U32 maxMpduInAmpduLen;
8876
8877 tANI_U8 crcCheckEnabled;
8878
8879 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
8880 tANI_U8 numMacFilters;
8881 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
8882
8883 /* Each bit position maps to IEEE convention of typeSubtype */
8884 tANI_U64 typeSubtypeBitmap;
8885
8886 tANI_U64 reserved;
8887
8888}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
8889
8890typedef PACKED_PRE struct PACKED_POST
8891{
8892 tHalMsgHeader header;
8893 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
8894}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
8895
8896
8897/*---------------------------------------------------------------------------
8898* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
8899*-------------------------------------------------------------------------*/
8900
8901typedef PACKED_PRE struct PACKED_POST
8902{
8903 tANI_U32 status;
8904}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
8905
8906typedef PACKED_PRE struct PACKED_POST
8907{
8908 tHalMsgHeader header;
8909 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
8910}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
8911
8912/*---------------------------------------------------------------------------
8913* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
8914*-------------------------------------------------------------------------*/
8915
8916typedef PACKED_PRE struct PACKED_POST
8917{
8918 tHalMsgHeader header;
8919 tANI_U8 resetConfiguration;
8920}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
8921
8922/*---------------------------------------------------------------------------
8923* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
8924*-------------------------------------------------------------------------*/
8925
8926typedef PACKED_PRE struct PACKED_POST
8927{
8928 tANI_U32 status;
8929}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
8930
8931typedef PACKED_PRE struct PACKED_POST
8932{
8933 tHalMsgHeader header;
8934 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
8935}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
8936
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05308937typedef PACKED_PRE struct PACKED_POST
8938{
8939 tANI_U8 status;
8940}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
8941
Jeff Johnson295189b2012-06-20 16:38:30 -07008942#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8943#pragma pack(pop)
8944#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8945#else
8946#endif
8947
8948#endif /* _WLAN_HAL_MSG_H_ */