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