blob: 593fbeefd8065058fae27db7845530e43c717fd7 [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
Sunil Dutt8377a382014-05-26 21:18:04 +0530581 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700582}tHalHostMsgType;
583
Jeff Johnsone7245742012-09-05 17:12:55 -0700584/* Enumeration for Version */
585typedef enum
586{
587 WLAN_HAL_MSG_VERSION0 = 0,
588 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800589 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
590 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700591}tHalHostMsgVersion;
592
Jeff Johnson295189b2012-06-20 16:38:30 -0700593/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530594typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700595{
596 eANI_BOOLEAN_FALSE = 0,
597 eANI_BOOLEAN_TRUE,
598 eANI_BOOLEAN_OFF = 0,
599 eANI_BOOLEAN_ON = 1,
600 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
601} eAniBoolean;
602
603typedef enum
604{
605 eDRIVER_TYPE_PRODUCTION = 0,
606 eDRIVER_TYPE_MFG = 1,
607 eDRIVER_TYPE_DVT = 2,
608 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
609} tDriverType;
610
611typedef enum
612{
613 HAL_STOP_TYPE_SYS_RESET,
614 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
615 HAL_STOP_TYPE_RF_KILL,
616 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
617}tHalStopType;
618
619typedef enum
620{
621 eHAL_SYS_MODE_NORMAL,
622 eHAL_SYS_MODE_LEARN,
623 eHAL_SYS_MODE_SCAN,
624 eHAL_SYS_MODE_PROMISC,
625 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700626 eHAL_SYS_MODE_ROAM_SCAN,
627 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700628 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700629 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
630} eHalSysMode;
631
632typedef enum
633{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800634 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
635 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
636 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
637 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
638 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
639 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
640 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
641 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
642 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700643 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800644 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
645} eHalChanSwitchSource;
646
647typedef enum
648{
Jeff Johnson295189b2012-06-20 16:38:30 -0700649 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
650 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
651 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
652 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700653#ifdef WLAN_FEATURE_11AC
654 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
655 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
656 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
657 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
658 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
659 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
660 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
661#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700662 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
663}ePhyChanBondState;
664
665// Spatial Multiplexing(SM) Power Save mode
666typedef enum eSirMacHTMIMOPowerSaveState
667{
668 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
669 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
670 eSIR_HT_MIMO_PS_NA = 2, // reserved
671 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
672 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
673} tSirMacHTMIMOPowerSaveState;
674
675/* each station added has a rate mode which specifies the sta attributes */
676typedef enum eStaRateMode {
677 eSTA_TAURUS = 0,
678 eSTA_TITAN,
679 eSTA_POLARIS,
680 eSTA_11b,
681 eSTA_11bg,
682 eSTA_11a,
683 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700684#ifdef WLAN_FEATURE_11AC
685 eSTA_11ac,
686#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700687 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
688} tStaRateMode, *tpStaRateMode;
689
690#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
691#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
692#define SIR_NUM_POLARIS_RATES 3 //72,96,108
693
694#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
695
696
697typedef enum eSirBssType
698{
699 eSIR_INFRASTRUCTURE_MODE,
700 eSIR_INFRA_AP_MODE, //Added for softAP support
701 eSIR_IBSS_MODE,
702 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
703 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
704 eSIR_AUTO_MODE,
705 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
706} tSirBssType;
707
708typedef enum eSirNwType
709{
710 eSIR_11A_NW_TYPE,
711 eSIR_11B_NW_TYPE,
712 eSIR_11G_NW_TYPE,
713 eSIR_11N_NW_TYPE,
714 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
715} tSirNwType;
716
717typedef tANI_U16 tSirMacBeaconInterval;
718
719#define SIR_MAC_RATESET_EID_MAX 12
720
721typedef enum eSirMacHTOperatingMode
722{
723 eSIR_HT_OP_MODE_PURE, // No Protection
724 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
725 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
726 eSIR_HT_OP_MODE_MIXED, // Protection is required
727 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
728} tSirMacHTOperatingMode;
729
Jeff Johnson295189b2012-06-20 16:38:30 -0700730/// Encryption type enum used with peer
731typedef enum eAniEdType
732{
733 eSIR_ED_NONE,
734 eSIR_ED_WEP40,
735 eSIR_ED_WEP104,
736 eSIR_ED_TKIP,
737 eSIR_ED_CCMP,
738 eSIR_ED_WPI,
739 eSIR_ED_AES_128_CMAC,
740 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
741} tAniEdType;
742
743#define WLAN_MAX_KEY_RSC_LEN 16
744#define WLAN_WAPI_KEY_RSC_LEN 16
745
746/// MAX key length when ULA is used
747#define SIR_MAC_MAX_KEY_LENGTH 32
748#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
749
750/// Enum to specify whether key is used
751/// for TX only, RX only or both
752typedef enum eAniKeyDirection
753{
754 eSIR_TX_ONLY,
755 eSIR_RX_ONLY,
756 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700757 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700758 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
759} tAniKeyDirection;
760
761typedef enum eAniWepType
762{
763 eSIR_WEP_STATIC,
764 eSIR_WEP_DYNAMIC,
765 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
766} tAniWepType;
767
768typedef enum eSriLinkState {
769
770 eSIR_LINK_IDLE_STATE = 0,
771 eSIR_LINK_PREASSOC_STATE = 1,
772 eSIR_LINK_POSTASSOC_STATE = 2,
773 eSIR_LINK_AP_STATE = 3,
774 eSIR_LINK_IBSS_STATE = 4,
775
776 /* BT-AMP Case */
777 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
778 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
779 eSIR_LINK_BTAMP_AP_STATE = 7,
780 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530781
Jeff Johnson295189b2012-06-20 16:38:30 -0700782 /* Reserved for HAL Internal Use */
783 eSIR_LINK_LEARN_STATE = 9,
784 eSIR_LINK_SCAN_STATE = 10,
785 eSIR_LINK_FINISH_SCAN_STATE = 11,
786 eSIR_LINK_INIT_CAL_STATE = 12,
787 eSIR_LINK_FINISH_CAL_STATE = 13,
788#ifdef WLAN_FEATURE_P2P
789 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530790 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700791#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700792#ifdef WLAN_FEATURE_ROAM_OFFLOAD
793 eSIR_LINK_FT_PREASSOC_STATE = 16,
794#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700795 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
796} tSirLinkState;
797
798typedef enum
799{
800 HAL_SUMMARY_STATS_INFO = 0x00000001,
801 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
802 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
803 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
804 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
Sushant Kaushik33200572015-08-05 16:46:20 +0530805 HAL_PER_STA_STATS_INFO = 0x00000020,
806 HAL_PER_TX_PKT_STATS_INFO = 0x00000040
Jeff Johnson295189b2012-06-20 16:38:30 -0700807}eHalStatsMask;
808
809/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530810typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700811{
812 BTAMP_EVENT_CONNECTION_START,
813 BTAMP_EVENT_CONNECTION_STOP,
814 BTAMP_EVENT_CONNECTION_TERMINATED,
815 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
816} tBtAmpEventType;
817
818//***************************************************************
819
820
821/*******************PE Statistics*************************/
822typedef enum
823{
824 PE_SUMMARY_STATS_INFO = 0x00000001,
825 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
826 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
827 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
828 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
829 PE_PER_STA_STATS_INFO = 0x00000020,
Sushant Kaushik33200572015-08-05 16:46:20 +0530830 PE_PER_TX_PKT_STATS_INFO = 0x00000040,
Jeff Johnson295189b2012-06-20 16:38:30 -0700831 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
832}ePEStatsMask;
833
Sunil Dutt8377a382014-05-26 21:18:04 +0530834
835/******************************LINK LAYER Statitics**********************/
836
837typedef int wifi_radio;
838typedef int wifi_channel;
839typedef int wifi_tx_rate;
840
841/* channel operating width */
842typedef enum {
843 WIFI_CHAN_WIDTH_20 = 0,
844 WIFI_CHAN_WIDTH_40 = 1,
845 WIFI_CHAN_WIDTH_80 = 2,
846 WIFI_CHAN_WIDTH_160 = 3,
847 WIFI_CHAN_WIDTH_80P80 = 4,
848 WIFI_CHAN_WIDTH_5 = 5,
849 WIFI_CHAN_WIDTH_10 = 6,
850} wifi_channel_width;
851
852typedef enum {
853 WIFI_DISCONNECTED = 0,
854 WIFI_AUTHENTICATING = 1,
855 WIFI_ASSOCIATING = 2,
856 WIFI_ASSOCIATED = 3,
857 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
858 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
859} wifi_connection_state;
860
861typedef enum {
862 WIFI_ROAMING_IDLE = 0,
863 WIFI_ROAMING_ACTIVE = 1,
864} wifi_roam_state;
865
866typedef enum {
867 WIFI_INTERFACE_STA = 0,
868 WIFI_INTERFACE_SOFTAP = 1,
869 WIFI_INTERFACE_IBSS = 2,
870 WIFI_INTERFACE_P2P_CLIENT = 3,
871 WIFI_INTERFACE_P2P_GO = 4,
872 WIFI_INTERFACE_NAN = 5,
873 WIFI_INTERFACE_MESH = 6,
874 } wifi_interface_mode;
875
876#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
877#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
878#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
879#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
880#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
881#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
882
883typedef PACKED_PRE struct PACKED_POST
884{
885 wifi_interface_mode mode; // interface mode
886 tANI_U8 mac_addr[6]; // interface mac address (self)
887 wifi_connection_state state; // connection state (valid for STA, CLI only)
888 wifi_roam_state roaming; // roaming state
889 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
890 tANI_U8 ssid[33]; // null terminated SSID
891 tANI_U8 bssid[6]; // bssid
892 tANI_U8 ap_country_str[3]; // country string advertised by AP
893 tANI_U8 country_str[3]; // country string for this association
894} wifi_interface_info;
895
896/* channel information */
897typedef PACKED_PRE struct PACKED_POST
898{
899 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
900 wifi_channel center_freq; // primary 20 MHz channel
901 wifi_channel center_freq0; // center frequency (MHz) first segment
902 wifi_channel center_freq1; // center frequency (MHz) second segment
903} wifi_channel_info;
904
905/* wifi rate info */
906typedef PACKED_PRE struct PACKED_POST
907{
908 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
909 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
910 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
911 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
912 // HT/VHT it would be mcs index
913 tANI_U32 reserved :16; // reserved
914 tANI_U32 bitrate; // units of 100 Kbps
915} wifi_rate;
916
917/* channel statistics */
918typedef PACKED_PRE struct PACKED_POST
919{
920 wifi_channel_info channel; // channel
921 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
922 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
923} wifi_channel_stats;
924
925/* radio statistics */
926typedef PACKED_PRE struct PACKED_POST
927{
928 wifi_radio radio; // wifi radio (if multiple radio supported)
929 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
930 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
931 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
932 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
933 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
934 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
935 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
936 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
937 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
938 tANI_U32 num_channels; // number of channels
939 wifi_channel_stats channels[1]; // channel statistics
940} wifi_radio_stat;
941
942/* per rate statistics */
943typedef PACKED_PRE struct PACKED_POST
944{
945 wifi_rate rate; // rate information *
946 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
947 tANI_U32 rx_mpdu; // number of received data pkts
948 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
949 tANI_U32 retries; // total number of data pkt retries *
950 tANI_U32 retries_short; // number of short data pkt retries
951 tANI_U32 retries_long; // number of long data pkt retries
952} wifi_rate_stat;
953
954/* access categories */
955typedef enum {
956 WIFI_AC_VO = 0,
957 WIFI_AC_VI = 1,
958 WIFI_AC_BE = 2,
959 WIFI_AC_BK = 3,
960 WIFI_AC_MAX = 4,
961} wifi_traffic_ac;
962
963/* wifi peer type */
964typedef enum
965{
966 WIFI_PEER_STA,
967 WIFI_PEER_AP,
968 WIFI_PEER_P2P_GO,
969 WIFI_PEER_P2P_CLIENT,
970 WIFI_PEER_NAN,
971 WIFI_PEER_TDLS,
972 WIFI_PEER_INVALID,
973} wifi_peer_type;
974
975/* per peer statistics */
976typedef PACKED_PRE struct PACKED_POST
977{
978 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
979 tANI_U8 peer_mac_address[6]; // mac address
980 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
981 tANI_U32 num_rate; // number of rates
982 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
983} wifi_peer_info;
984
985/* per access category statistics */
986typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530987{
988 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
989 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
990 tANI_U32 rx_mpdu; // number of received unicast mpdus
991 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
992 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
993 tANI_U32 rx_mcast; // number of received multicast data packets
994 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
995 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
996 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
997 tANI_U32 retries; // total number of data pkt retries
998 tANI_U32 retries_short; // number of short data pkt retries
999 tANI_U32 retries_long; // number of long data pkt retries
1000 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
1001 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
1002 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
1003 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
1004} wifi_wmm_ac_stat;
1005
1006/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
1007typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +05301008{
1009 wifi_interface_info info; // current state of the interface
1010 tANI_U32 beacon_rx; // access point beacon received count from connected AP
1011 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1012 tANI_U32 mgmt_action_rx; // action frames received count
1013 tANI_U32 mgmt_action_tx; // action frames transmit count
1014 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1015 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1016 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1017 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
1018} wifi_iface_stat;
1019
1020/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1021typedef PACKED_PRE struct PACKED_POST
1022{
1023 tANI_U32 num_peers; // number of peers
1024 wifi_peer_info peer_info[1]; // per peer statistics
1025} wifi_peer_stat;
1026
1027/* wifi statistics bitmap for getting statistics */
1028#define WMI_LINK_STATS_RADIO 0x00000001
1029#define WMI_LINK_STATS_IFACE 0x00000002
1030#define WMI_LINK_STATS_ALL_PEER 0x00000004
1031#define WMI_LINK_STATS_PER_PEER 0x00000008
1032
1033/* wifi statistics bitmap for clearing statistics */
1034#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1035#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1036#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1037#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1038#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1039#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1040#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1041#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1042
1043
Jeff Johnson295189b2012-06-20 16:38:30 -07001044/*---------------------------------------------------------------------------
1045 Message definitons - All the messages below need to be packed
1046 ---------------------------------------------------------------------------*/
1047
1048#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1049#pragma pack(push, 1)
1050#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1051#pragma pack(1)
1052#else
1053#endif
1054
1055/// Definition for HAL API Version.
1056typedef PACKED_PRE struct PACKED_POST
1057{
1058 tANI_U8 revision;
1059 tANI_U8 version;
1060 tANI_U8 minor;
1061 tANI_U8 major;
1062} tWcnssWlanVersion, *tpWcnssWlanVersion;
1063
1064/// Definition for Encryption Keys
1065typedef PACKED_PRE struct PACKED_POST
1066{
1067 tANI_U8 keyId;
1068 tANI_U8 unicast; // 0 for multicast
1069 tAniKeyDirection keyDirection;
1070 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1071 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1072 tANI_U16 keyLength;
1073 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1074} tSirKeys, *tpSirKeys;
1075
1076
1077//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1078typedef PACKED_PRE struct PACKED_POST
1079{
1080 /*STA Index*/
1081 tANI_U16 staIdx;
1082
1083 /*Encryption Type used with peer*/
1084 tAniEdType encType;
1085
1086 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301087 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001088
1089 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1090 tANI_U8 defWEPIdx;
1091
Jeff Johnson295189b2012-06-20 16:38:30 -07001092 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301093 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1094
Jeff Johnson295189b2012-06-20 16:38:30 -07001095 /*Control for Replay Count, 1= Single TID based replay count on Tx
1096 0 = Per TID based replay count on TX */
1097 tANI_U8 singleTidRc;
1098
1099} tSetStaKeyParams, *tpSetStaKeyParams;
1100
1101
1102
1103/* 4-byte control message header used by HAL*/
1104typedef PACKED_PRE struct PACKED_POST
1105{
Jeff Johnsone7245742012-09-05 17:12:55 -07001106 tHalHostMsgType msgType:16;
1107 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001108 tANI_U32 msgLen;
1109} tHalMsgHeader, *tpHalMsgHeader;
1110
1111/* Config format required by HAL for each CFG item*/
1112typedef PACKED_PRE struct PACKED_POST
1113{
1114 /* Cfg Id. The Id required by HAL is exported by HAL
1115 * in shared header file between UMAC and HAL.*/
1116 tANI_U16 uCfgId;
1117
Dino Mycle8afbac12014-07-04 22:06:17 +05301118 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001119 * in the TLV format.*/
1120 tANI_U16 uCfgLen;
1121
1122 /* Padding bytes for unaligned address's */
1123 tANI_U16 uCfgPadBytes;
1124
1125 /* Reserve bytes for making cfgVal to align address */
1126 tANI_U16 uCfgReserve;
1127
1128 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1129 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1130} tHalCfg, *tpHalCfg;
1131
1132/*---------------------------------------------------------------------------
1133 WLAN_HAL_START_REQ
1134---------------------------------------------------------------------------*/
1135
1136typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1137{
1138 /* Drive Type - Production or FTM etc */
1139 tDriverType driverType;
1140
1141 /*Length of the config buffer*/
1142 tANI_U32 uConfigBufferLen;
1143
Dino Mycle8afbac12014-07-04 22:06:17 +05301144 /* Following this there is a TLV formatted buffer of length
1145 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001146 * The TLV is expected to be formatted like this:
1147 * 0 15 31 31+CFG_LEN-1 length-1
1148 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1149 */
1150} tHalMacStartParameters, *tpHalMacStartParameters;
1151
1152typedef PACKED_PRE struct PACKED_POST
1153{
1154 /* Note: The length specified in tHalMacStartReqMsg messages should be
1155 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1156 tHalMsgHeader header;
1157 tHalMacStartParameters startReqParams;
1158} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1159
1160/*---------------------------------------------------------------------------
1161 WLAN_HAL_START_RSP
1162---------------------------------------------------------------------------*/
1163
1164typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1165{
1166 /*success or failure */
1167 tANI_U16 status;
1168
1169 /*Max number of STA supported by the device*/
1170 tANI_U8 ucMaxStations;
1171
1172 /*Max number of BSS supported by the device*/
1173 tANI_U8 ucMaxBssids;
1174
1175 /*API Version */
1176 tWcnssWlanVersion wcnssWlanVersion;
1177
1178 /*CRM build information */
1179 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1180
1181 /*hardware/chipset/misc version information */
1182 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1183
1184} tHalMacStartRspParams, *tpHalMacStartRspParams;
1185
1186typedef PACKED_PRE struct PACKED_POST
1187{
1188 tHalMsgHeader header;
1189 tHalMacStartRspParams startRspParams;
1190} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1191
1192/*---------------------------------------------------------------------------
1193 WLAN_HAL_STOP_REQ
1194---------------------------------------------------------------------------*/
1195
1196typedef PACKED_PRE struct PACKED_POST
1197{
1198 /*The reason for which the device is being stopped*/
1199 tHalStopType reason;
1200
1201}tHalMacStopReqParams, *tpHalMacStopReqParams;
1202
1203typedef PACKED_PRE struct PACKED_POST
1204{
1205 tHalMsgHeader header;
1206 tHalMacStopReqParams stopReqParams;
1207} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1208
1209/*---------------------------------------------------------------------------
1210 WLAN_HAL_STOP_RSP
1211---------------------------------------------------------------------------*/
1212
1213typedef PACKED_PRE struct PACKED_POST
1214{
1215 /*success or failure */
1216 tANI_U32 status;
1217
1218}tHalMacStopRspParams, *tpHalMacStopRspParams;
1219
1220typedef PACKED_PRE struct PACKED_POST
1221{
1222 tHalMsgHeader header;
1223 tHalMacStopRspParams stopRspParams;
1224} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1225
1226/*---------------------------------------------------------------------------
1227 WLAN_HAL_UPDATE_CFG_REQ
1228---------------------------------------------------------------------------*/
1229
1230typedef PACKED_PRE struct PACKED_POST
1231{
1232 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1233 tANI_U32 uConfigBufferLen;
1234
Dino Mycle8afbac12014-07-04 22:06:17 +05301235 /* Following this there is a TLV formatted buffer of length
1236 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001237 * The TLV is expected to be formatted like this:
1238 * 0 15 31 31+CFG_LEN-1 length-1
1239 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1240 */
1241} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1242
1243typedef PACKED_PRE struct PACKED_POST
1244{
1245 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1246 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1247 tHalMsgHeader header;
1248 tHalUpdateCfgReqParams updateCfgReqParams;
1249} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1250
1251/*---------------------------------------------------------------------------
1252 WLAN_HAL_UPDATE_CFG_RSP
1253---------------------------------------------------------------------------*/
1254
1255typedef PACKED_PRE struct PACKED_POST
1256{
1257 /* success or failure */
1258 tANI_U32 status;
1259
1260}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1261
1262typedef PACKED_PRE struct PACKED_POST
1263{
1264 tHalMsgHeader header;
1265 tHalUpdateCfgRspParams updateCfgRspParams;
1266} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1267
1268/*---------------------------------------------------------------------------
1269 WLAN_HAL_INIT_SCAN_REQ
1270---------------------------------------------------------------------------*/
1271
1272/// Frame control field format (2 bytes)
1273typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1274{
1275
1276#ifndef ANI_LITTLE_BIT_ENDIAN
1277
1278 tANI_U8 subType :4;
1279 tANI_U8 type :2;
1280 tANI_U8 protVer :2;
1281
1282 tANI_U8 order :1;
1283 tANI_U8 wep :1;
1284 tANI_U8 moreData :1;
1285 tANI_U8 powerMgmt :1;
1286 tANI_U8 retry :1;
1287 tANI_U8 moreFrag :1;
1288 tANI_U8 fromDS :1;
1289 tANI_U8 toDS :1;
1290
1291#else
1292
1293 tANI_U8 protVer :2;
1294 tANI_U8 type :2;
1295 tANI_U8 subType :4;
1296
1297 tANI_U8 toDS :1;
1298 tANI_U8 fromDS :1;
1299 tANI_U8 moreFrag :1;
1300 tANI_U8 retry :1;
1301 tANI_U8 powerMgmt :1;
1302 tANI_U8 moreData :1;
1303 tANI_U8 wep :1;
1304 tANI_U8 order :1;
1305
1306#endif
1307
1308} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1309
1310/// Sequence control field
1311typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1312{
1313 tANI_U8 fragNum : 4;
1314 tANI_U8 seqNumLo : 4;
1315 tANI_U8 seqNumHi : 8;
1316} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1317
1318/// Management header format
1319typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1320{
1321 tSirMacFrameCtl fc;
1322 tANI_U8 durationLo;
1323 tANI_U8 durationHi;
1324 tANI_U8 da[6];
1325 tANI_U8 sa[6];
1326 tANI_U8 bssId[6];
1327 tSirMacSeqCtl seqControl;
1328} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1329
1330/// Scan Entry to hold active BSS idx's
1331typedef __ani_attr_pre_packed struct sSirScanEntry
1332{
1333 tANI_U8 bssIdx[HAL_NUM_BSSID];
1334 tANI_U8 activeBSScnt;
1335}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1336
1337typedef PACKED_PRE struct PACKED_POST {
1338
1339 /*LEARN - AP Role
1340 SCAN - STA Role*/
1341 eHalSysMode scanMode;
1342
1343 /*BSSID of the BSS*/
1344 tSirMacAddr bssid;
1345
1346 /*Whether BSS needs to be notified*/
1347 tANI_U8 notifyBss;
1348
1349 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1350 CTS to Self). Must always be a valid frame type.*/
1351 tANI_U8 frameType;
1352
1353 /*UMAC has the option of passing the MAC frame to be used for notifying
1354 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1355 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1356 frameType.*/
1357 tANI_U8 frameLength;
1358
Dino Mycle8afbac12014-07-04 22:06:17 +05301359 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001360 is non-zero. */
1361 tSirMacMgmtHdr macMgmtHdr;
1362
1363 /*Entry to hold number of active BSS idx's*/
1364 tSirScanEntry scanEntry;
1365
1366} tInitScanParams, * tpInitScanParams;
1367
1368typedef PACKED_PRE struct PACKED_POST
1369{
1370 tHalMsgHeader header;
1371 tInitScanParams initScanParams;
1372} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1373
1374typedef PACKED_PRE struct PACKED_POST {
1375
1376 /*LEARN - AP Role
1377 SCAN - STA Role*/
1378 eHalSysMode scanMode;
1379
1380 /*BSSID of the BSS*/
1381 tSirMacAddr bssid;
1382
1383 /*Whether BSS needs to be notified*/
1384 tANI_U8 notifyBss;
1385
1386 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1387 CTS to Self). Must always be a valid frame type.*/
1388 tANI_U8 frameType;
1389
1390 /*UMAC has the option of passing the MAC frame to be used for notifying
1391 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1392 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1393 frameType.*/
1394 tANI_U8 frameLength;
1395
Dino Mycle8afbac12014-07-04 22:06:17 +05301396 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001397 is non-zero. */
1398 tSirMacMgmtHdr macMgmtHdr;
1399
1400 /*Entry to hold number of active BSS idx's*/
1401 tSirScanEntry scanEntry;
1402
1403 /* Single NoA usage in Scanning */
1404 tANI_U8 useNoA;
1405
1406 /* Indicates the scan duration (in ms) */
1407 tANI_U16 scanDuration;
1408
1409} tInitScanConParams, * tpInitScanConParams;
1410
1411typedef PACKED_PRE struct PACKED_POST
1412{
1413 tHalMsgHeader header;
1414 tInitScanConParams initScanParams;
1415} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1416
1417
1418/*---------------------------------------------------------------------------
1419 WLAN_HAL_INIT_SCAN_RSP
1420---------------------------------------------------------------------------*/
1421
1422typedef PACKED_PRE struct PACKED_POST
1423{
1424 /*success or failure */
1425 tANI_U32 status;
1426
1427}tHalInitScanRspParams, *tpHalInitScanRspParams;
1428
1429typedef PACKED_PRE struct PACKED_POST
1430{
1431 tHalMsgHeader header;
1432 tHalInitScanRspParams initScanRspParams;
1433} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1434
1435/*---------------------------------------------------------------------------
1436 WLAN_HAL_START_SCAN_REQ
1437---------------------------------------------------------------------------*/
1438
Dino Mycle8afbac12014-07-04 22:06:17 +05301439typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001440{
1441 /*Indicates the channel to scan*/
1442 tANI_U8 scanChannel;
1443
1444 } tStartScanParams, * tpStartScanParams;
1445
1446typedef PACKED_PRE struct PACKED_POST
1447{
1448 tHalMsgHeader header;
1449 tStartScanParams startScanParams;
1450} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1451
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001452typedef PACKED_PRE struct PACKED_POST
1453{
1454 tHalMsgHeader header;
1455} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1456
Jeff Johnson295189b2012-06-20 16:38:30 -07001457/*---------------------------------------------------------------------------
1458 WLAN_HAL_START_SCAN_RSP
1459---------------------------------------------------------------------------*/
1460
1461typedef PACKED_PRE struct PACKED_POST
1462{
1463 /*success or failure */
1464 tANI_U32 status;
1465
1466 tANI_U32 startTSF[2];
1467 tPowerdBm txMgmtPower;
1468
1469}tHalStartScanRspParams, *tpHalStartScanRspParams;
1470
1471typedef PACKED_PRE struct PACKED_POST
1472{
1473 tHalMsgHeader header;
1474 tHalStartScanRspParams startScanRspParams;
1475} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1476
1477/*---------------------------------------------------------------------------
1478 WLAN_HAL_END_SCAN_REQ
1479---------------------------------------------------------------------------*/
1480
1481typedef PACKED_PRE struct PACKED_POST
1482{
1483 /*Indicates the channel to stop scanning. Not used really. But retained
1484 for symmetry with "start Scan" message. It can also help in error
1485 check if needed.*/
1486 tANI_U8 scanChannel;
1487
1488} tEndScanParams, *tpEndScanParams;
1489
1490typedef PACKED_PRE struct PACKED_POST
1491{
1492 tHalMsgHeader header;
1493 tEndScanParams endScanParams;
1494} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1495
1496/*---------------------------------------------------------------------------
1497 WLAN_HAL_END_SCAN_RSP
1498---------------------------------------------------------------------------*/
1499
1500typedef PACKED_PRE struct PACKED_POST
1501{
1502 /*success or failure */
1503 tANI_U32 status;
1504
1505}tHalEndScanRspParams, *tpHalEndScanRspParams;
1506
1507typedef PACKED_PRE struct PACKED_POST
1508{
1509 tHalMsgHeader header;
1510 tHalEndScanRspParams endScanRspParams;
1511} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1512
1513/*---------------------------------------------------------------------------
1514 WLAN_HAL_FINISH_SCAN_REQ
1515---------------------------------------------------------------------------*/
1516
1517typedef PACKED_PRE struct PACKED_POST
1518{
1519 /* Identifies the operational state of the AP/STA
1520 * LEARN - AP Role SCAN - STA Role */
1521 eHalSysMode scanMode;
1522
1523 /*Operating channel to tune to.*/
1524 tANI_U8 currentOperChannel;
1525
1526 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1527 40 MHz extension channel in combination with the control channel*/
1528 ePhyChanBondState cbState;
1529
1530 /*BSSID of the BSS*/
1531 tSirMacAddr bssid;
1532
1533 /*Whether BSS needs to be notified*/
1534 tANI_U8 notifyBss;
1535
1536 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1537 CTS to Self). Must always be a valid frame type.*/
1538 tANI_U8 frameType;
1539
1540 /*UMAC has the option of passing the MAC frame to be used for notifying
1541 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1542 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1543 frameType.*/
1544 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301545
1546 /*Following the framelength there is a MAC frame buffer if frameLength
1547 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001548 tSirMacMgmtHdr macMgmtHdr;
1549
1550 /*Entry to hold number of active BSS idx's*/
1551 tSirScanEntry scanEntry;
1552
1553} tFinishScanParams, *tpFinishScanParams;
1554
1555typedef PACKED_PRE struct PACKED_POST
1556{
1557 tHalMsgHeader header;
1558 tFinishScanParams finishScanParams;
1559} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1560
1561/*---------------------------------------------------------------------------
1562 WLAN_HAL_FINISH_SCAN_RSP
1563---------------------------------------------------------------------------*/
1564
1565typedef PACKED_PRE struct PACKED_POST
1566{
1567 /*success or failure */
1568 tANI_U32 status;
1569
1570}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1571
1572typedef PACKED_PRE struct PACKED_POST
1573{
1574 tHalMsgHeader header;
1575 tHalFinishScanRspParams finishScanRspParams;
1576} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1577
Srinivas Dasari42584632014-11-26 20:37:19 +05301578typedef PACKED_PRE struct PACKED_POST
1579{
1580 tSetStaKeyParams keyParams;
1581 uint8 pn[6];
1582} tHalEncConfigParams;
1583
1584typedef PACKED_PRE struct PACKED_POST
1585{
1586 uint16 length;
1587 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1588} tHalDisaPayload;
1589
1590typedef PACKED_PRE struct PACKED_POST
1591{
1592#ifdef BYTE_ORDER_BIG_ENDIAN
1593 uint8 reserved1 : 1;
1594 uint8 ackpolicy : 2;
1595 uint8 eosp : 1;
1596 uint8 tid : 4;
1597
1598 uint8 appsbufferstate : 8;
1599#else
1600 uint8 appsbufferstate : 8;
1601
1602 uint8 tid : 4;
1603 uint8 eosp : 1;
1604 uint8 ackpolicy : 2;
1605 uint8 reserved1 : 1;
1606#endif
1607} tHalQosCtrlFieldType;
1608
1609typedef PACKED_PRE struct PACKED_POST
1610 {
1611#ifdef BYTE_ORDER_BIG_ENDIAN
1612 uint16 subtype : 4;
1613 uint16 type : 2;
1614 uint16 protocol : 2;
1615
1616 uint16 order : 1;
1617 uint16 wep : 1;
1618 uint16 moredata : 1;
1619 uint16 pm : 1;
1620 uint16 retry : 1;
1621 uint16 morefrag : 1;
1622 uint16 fromds : 1;
1623 uint16 tods : 1;
1624#else
1625
1626 uint16 tods : 1;
1627 uint16 fromds : 1;
1628 uint16 morefrag : 1;
1629 uint16 retry : 1;
1630 uint16 pm : 1;
1631 uint16 moredata : 1;
1632 uint16 wep : 1;
1633 uint16 order : 1;
1634
1635 uint16 protocol : 2;
1636 uint16 type : 2;
1637 uint16 subtype : 4;
1638#endif
1639} tHalFrmCtrlType;
1640
1641typedef PACKED_PRE struct PACKED_POST
1642{
1643 /* Frame control field */
1644 tHalFrmCtrlType fc;
1645 /* Duration ID */
1646 uint16 usDurationId;
1647 /* Address 1 field */
1648 uint8 vA1[HAL_MAC_ADDR_LEN];
1649 /* Address 2 field */
1650 uint8 vA2[HAL_MAC_ADDR_LEN];
1651 /* Address 3 field */
1652 uint8 vA3[HAL_MAC_ADDR_LEN];
1653 /* Sequence control field */
1654 uint16 seqNum;
1655 /* Optional A4 address */
1656 uint8 optvA4[HAL_MAC_ADDR_LEN];
1657 /* Optional QOS control field */
1658 tHalQosCtrlFieldType usQosCtrl;
1659} tHal80211Header;
1660
1661typedef PACKED_PRE struct PACKED_POST
1662{
1663 tHal80211Header macHeader;
1664 tHalEncConfigParams encParams;
1665 tHalDisaPayload data;
1666} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1667
1668typedef PACKED_PRE struct PACKED_POST
1669{
1670 tHalMsgHeader header;
1671 tSetEncryptedDataParams encryptedDataParams;
1672} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1673
1674typedef PACKED_PRE struct PACKED_POST
1675{
1676 tANI_U32 status;
1677 tHalDisaPayload encryptedPayload;
1678} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1679
1680typedef PACKED_PRE struct PACKED_POST
1681{
1682 tHalMsgHeader header;
1683 tSetEncryptedDataRspParams encryptedDataRspParams;
1684} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1685
Jeff Johnson295189b2012-06-20 16:38:30 -07001686/*---------------------------------------------------------------------------
1687 WLAN_HAL_CONFIG_STA_REQ
1688---------------------------------------------------------------------------*/
1689
1690typedef PACKED_PRE struct PACKED_POST {
1691 /*
1692 * For Self STA Entry: this represents Self Mode.
1693 * For Peer Stations, this represents the mode of the peer.
1694 * On Station:
1695 * --this mode is updated when PE adds the Self Entry.
1696 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1697 * ON AP:
1698 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1699 * to indicate the self mode of the AP.
1700 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1701 */
1702
1703 tStaRateMode opRateMode;
1704 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1705 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1706 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1707 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1708 tANI_U16 reserved;
1709
1710 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1711 //First 26 bits are reserved for those Titan rates and
1712 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1713 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1714
1715 /*
1716 * 0-76 bits used, remaining reserved
1717 * bits 0-15 and 32 should be set.
1718 */
1719 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1720
1721 /*
1722 * RX Highest Supported Data Rate defines the highest data
1723 * rate that the STA is able to receive, in unites of 1Mbps.
1724 * This value is derived from "Supported MCS Set field" inside
1725 * the HT capability element.
1726 */
1727 tANI_U16 rxHighestDataRate;
1728
1729} tSirSupportedRates, *tpSirSupportedRates;
1730
1731typedef PACKED_PRE struct PACKED_POST
1732{
1733 /*BSSID of STA*/
1734 tSirMacAddr bssId;
1735
1736 /*ASSOC ID, as assigned by UMAC*/
1737 tANI_U16 assocId;
1738
1739 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1740 tANI_U8 staType;
1741
1742 /*Short Preamble Supported.*/
1743 tANI_U8 shortPreambleSupported;
1744
1745 /*MAC Address of STA*/
1746 tSirMacAddr staMac;
1747
1748 /*Listen interval of the STA*/
1749 tANI_U16 listenInterval;
1750
1751 /*Support for 11e/WMM*/
1752 tANI_U8 wmmEnabled;
1753
1754 /*11n HT capable STA*/
1755 tANI_U8 htCapable;
1756
1757 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1758 tANI_U8 txChannelWidthSet;
1759
1760 /*RIFS mode 0 - NA, 1 - Allowed */
1761 tANI_U8 rifsMode;
1762
Dino Mycle8afbac12014-07-04 22:06:17 +05301763 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001764 0 - No Support, 1 - Supported
1765 SG - there is global field */
1766 tANI_U8 lsigTxopProtection;
1767
1768 /*Max Ampdu Size supported by STA. TPE programming.
1769 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1770 tANI_U8 maxAmpduSize;
1771
1772 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1773 tANI_U8 maxAmpduDensity;
1774
1775 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1776 tANI_U8 maxAmsduSize;
1777
1778 /*Short GI support for 40Mhz packets*/
1779 tANI_U8 fShortGI40Mhz;
1780
1781 /*Short GI support for 20Mhz packets*/
1782 tANI_U8 fShortGI20Mhz;
1783
Jeff Johnson295189b2012-06-20 16:38:30 -07001784 /*Robust Management Frame (RMF) enabled/disabled*/
1785 tANI_U8 rmfEnabled;
1786
1787 /* The unicast encryption type in the association */
1788 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001789
1790 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001791 will set this flag in case of RE-ASSOC, where we want to reuse the old
1792 STA ID. 0 = Add, 1 = Update*/
1793 tANI_U8 action;
1794
1795 /*U-APSD Flags: 1b per AC. Encoded as follows:
1796 b7 b6 b5 b4 b3 b2 b1 b0 =
1797 X X X X BE BK VI VO */
1798 tANI_U8 uAPSD;
1799
1800 /*Max SP Length*/
1801 tANI_U8 maxSPLen;
1802
1803 /*11n Green Field preamble support
1804 0 - Not supported, 1 - Supported */
1805 tANI_U8 greenFieldCapable;
1806
1807 /*MIMO Power Save mode*/
1808 tSirMacHTMIMOPowerSaveState mimoPS;
1809
1810 /*Delayed BA Support*/
1811 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001812
Jeff Johnson295189b2012-06-20 16:38:30 -07001813 /*Max AMPDU duration in 32us*/
1814 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001815
Jeff Johnson295189b2012-06-20 16:38:30 -07001816 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1817 it to 0 if AP does not support it. This indication is sent to HAL and
1818 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1819 tANI_U8 fDsssCckMode40Mhz;
1820
1821 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1822 Retained for backward compalibity with existing HAL code*/
1823 tANI_U8 staIdx;
1824
1825 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1826 Retained for backward compalibity with existing HAL code*/
1827 tANI_U8 bssIdx;
1828
1829 tANI_U8 p2pCapableSta;
1830
Jeff Johnsone7245742012-09-05 17:12:55 -07001831 /*Reserved to align next field on a dword boundary*/
1832 tANI_U8 reserved;
1833
1834 /*These rates are the intersection of peer and self capabilities.*/
1835 tSirSupportedRates supportedRates;
1836
Jeff Johnson295189b2012-06-20 16:38:30 -07001837} tConfigStaParams, *tpConfigStaParams;
1838
Jeff Johnsone7245742012-09-05 17:12:55 -07001839/*------------------------------------------------------------------------
1840 * WLAN_HAL_CONFIG_STA_REQ
1841 * ----------------------------------------------------------------------*/
1842
1843typedef PACKED_PRE struct PACKED_POST {
1844 /*
1845 * For Self STA Entry: this represents Self Mode.
1846 * For Peer Stations, this represents the mode of the peer.
1847 * On Station:
1848 * --this mode is updated when PE adds the Self Entry.
1849 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1850 * ON AP:
1851 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1852 * to indicate the self mode of the AP.
1853 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1854 */
1855
1856 tStaRateMode opRateMode;
1857 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1858 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1859 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1860 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1861 tANI_U16 reserved;
1862
1863 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1864 //First 26 bits are reserved for those Titan rates and
1865 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1866 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1867
1868 /*
1869 * 0-76 bits used, remaining reserved
1870 * bits 0-15 and 32 should be set.
1871 */
1872 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1873
1874 /*
1875 * RX Highest Supported Data Rate defines the highest data
1876 * rate that the STA is able to receive, in unites of 1Mbps.
1877 * This value is derived from "Supported MCS Set field" inside
1878 * the HT capability element.
1879 */
1880 tANI_U16 rxHighestDataRate;
1881
1882 /* Indicates the Maximum MCS that can be received for each number
1883 * of spacial streams */
1884 tANI_U16 vhtRxMCSMap;
1885
1886 /*Indicate the highest VHT data rate that the STA is able to receive*/
1887 tANI_U16 vhtRxHighestDataRate;
1888
1889 /* Indicates the Maximum MCS that can be transmitted for each number
1890 * of spacial streams */
1891 tANI_U16 vhtTxMCSMap;
1892
1893 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1894 tANI_U16 vhtTxHighestDataRate;
1895
1896} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1897
1898typedef PACKED_PRE struct PACKED_POST
1899{
1900 /*BSSID of STA*/
1901 tSirMacAddr bssId;
1902
1903 /*ASSOC ID, as assigned by UMAC*/
1904 tANI_U16 assocId;
1905
1906 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1907 tANI_U8 staType;
1908
1909 /*Short Preamble Supported.*/
1910 tANI_U8 shortPreambleSupported;
1911
1912 /*MAC Address of STA*/
1913 tSirMacAddr staMac;
1914
1915 /*Listen interval of the STA*/
1916 tANI_U16 listenInterval;
1917
1918 /*Support for 11e/WMM*/
1919 tANI_U8 wmmEnabled;
1920
1921 /*11n HT capable STA*/
1922 tANI_U8 htCapable;
1923
1924 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1925 tANI_U8 txChannelWidthSet;
1926
1927 /*RIFS mode 0 - NA, 1 - Allowed */
1928 tANI_U8 rifsMode;
1929
1930 /*L-SIG TXOP Protection mechanism
1931 0 - No Support, 1 - Supported
1932 SG - there is global field */
1933 tANI_U8 lsigTxopProtection;
1934
1935 /*Max Ampdu Size supported by STA. TPE programming.
1936 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1937 tANI_U8 maxAmpduSize;
1938
1939 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1940 tANI_U8 maxAmpduDensity;
1941
1942 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1943 tANI_U8 maxAmsduSize;
1944
1945 /*Short GI support for 40Mhz packets*/
1946 tANI_U8 fShortGI40Mhz;
1947
1948 /*Short GI support for 20Mhz packets*/
1949 tANI_U8 fShortGI20Mhz;
1950
1951 /*Robust Management Frame (RMF) enabled/disabled*/
1952 tANI_U8 rmfEnabled;
1953
1954 /* The unicast encryption type in the association */
1955 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301956
1957 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001958 will set this flag in case of RE-ASSOC, where we want to reuse the old
1959 STA ID. 0 = Add, 1 = Update*/
1960 tANI_U8 action;
1961
1962 /*U-APSD Flags: 1b per AC. Encoded as follows:
1963 b7 b6 b5 b4 b3 b2 b1 b0 =
1964 X X X X BE BK VI VO */
1965 tANI_U8 uAPSD;
1966
1967 /*Max SP Length*/
1968 tANI_U8 maxSPLen;
1969
1970 /*11n Green Field preamble support
1971 0 - Not supported, 1 - Supported */
1972 tANI_U8 greenFieldCapable;
1973
1974 /*MIMO Power Save mode*/
1975 tSirMacHTMIMOPowerSaveState mimoPS;
1976
1977 /*Delayed BA Support*/
1978 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05301979
Jeff Johnsone7245742012-09-05 17:12:55 -07001980 /*Max AMPDU duration in 32us*/
1981 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05301982
Jeff Johnsone7245742012-09-05 17:12:55 -07001983 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1984 it to 0 if AP does not support it. This indication is sent to HAL and
1985 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1986 tANI_U8 fDsssCckMode40Mhz;
1987
1988 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1989 Retained for backward compalibity with existing HAL code*/
1990 tANI_U8 staIdx;
1991
1992 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1993 Retained for backward compalibity with existing HAL code*/
1994 tANI_U8 bssIdx;
1995
1996 tANI_U8 p2pCapableSta;
1997
1998 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001999 tANI_U8 htLdpcEnabled:1;
2000 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08002001 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05302002 tANI_U8 vhtTxMUBformeeCapable:1;
2003 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002004
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002005 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07002006 tSirSupportedRates_V1 supportedRates;
2007
2008 tANI_U8 vhtCapable;
2009 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002010
Jeff Johnsone7245742012-09-05 17:12:55 -07002011} tConfigStaParams_V1, *tpConfigStaParams_V1;
2012
Jeff Johnson295189b2012-06-20 16:38:30 -07002013typedef PACKED_PRE struct PACKED_POST
2014{
2015 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002016 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002017 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002018 tConfigStaParams_V1 configStaParams_V1;
2019 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002020} tConfigStaReqMsg, *tpConfigStaReqMsg;
2021
2022/*---------------------------------------------------------------------------
2023 WLAN_HAL_CONFIG_STA_RSP
2024---------------------------------------------------------------------------*/
2025
2026typedef PACKED_PRE struct PACKED_POST
2027{
2028 /*success or failure */
2029 tANI_U32 status;
2030
2031 /* Station index; valid only when 'status' field value SUCCESS */
2032 tANI_U8 staIdx;
2033
2034 /* BSSID Index of BSS to which the station is associated */
2035 tANI_U8 bssIdx;
2036
2037 /* DPU Index for PTK */
2038 tANI_U8 dpuIndex;
2039
Dino Mycle8afbac12014-07-04 22:06:17 +05302040 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002041 tANI_U8 bcastDpuIndex;
2042
2043 /*DPU Index for IGTK */
2044 tANI_U8 bcastMgmtDpuIdx;
2045
2046 /*PTK DPU signature*/
2047 tANI_U8 ucUcastSig;
2048
2049 /*GTK DPU isignature*/
2050 tANI_U8 ucBcastSig;
2051
2052 /* IGTK DPU signature*/
2053 tANI_U8 ucMgmtSig;
2054
2055 tANI_U8 p2pCapableSta;
2056
2057}tConfigStaRspParams, *tpConfigStaRspParams;
2058
2059typedef PACKED_PRE struct PACKED_POST
2060{
2061 tHalMsgHeader header;
2062 tConfigStaRspParams configStaRspParams;
2063}tConfigStaRspMsg, *tpConfigStaRspMsg;
2064
2065/*---------------------------------------------------------------------------
2066 WLAN_HAL_DELETE_STA_REQ
2067---------------------------------------------------------------------------*/
2068
2069/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302070typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002071{
2072 /* Index of STA to delete */
2073 tANI_U8 staIdx;
2074} tDeleteStaParams, *tpDeleteStaParams;
2075
2076/* Delete STA Request message*/
2077typedef PACKED_PRE struct PACKED_POST
2078{
2079 tHalMsgHeader header;
2080 tDeleteStaParams delStaParams;
2081} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2082
2083/*---------------------------------------------------------------------------
2084 WLAN_HAL_DELETE_STA_RSP
2085---------------------------------------------------------------------------*/
2086
2087/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302088typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002089{
2090 /*success or failure */
2091 tANI_U32 status;
2092
2093 /* Index of STA deleted */
2094 tANI_U8 staId;
2095} tDeleteStaRspParams, *tpDeleteStaRspParams;
2096
2097/* Delete STA Response message*/
2098typedef PACKED_PRE struct PACKED_POST
2099{
2100 tHalMsgHeader header;
2101 tDeleteStaRspParams delStaRspParams;
2102} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2103
2104/*---------------------------------------------------------------------------
2105 WLAN_HAL_CONFIG_BSS_REQ
2106---------------------------------------------------------------------------*/
2107
2108//12 Bytes long because this structure can be used to represent rate
2109//and extended rate set IEs. The parser assume this to be at least 12
2110typedef __ani_attr_pre_packed struct sSirMacRateSet
2111{
2112 tANI_U8 numRates;
2113 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2114} __ani_attr_packed tSirMacRateSet;
2115
2116// access category record
2117typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2118{
2119#ifndef ANI_LITTLE_BIT_ENDIAN
2120 tANI_U8 rsvd : 1;
2121 tANI_U8 aci : 2;
2122 tANI_U8 acm : 1;
2123 tANI_U8 aifsn : 4;
2124#else
2125 tANI_U8 aifsn : 4;
2126 tANI_U8 acm : 1;
2127 tANI_U8 aci : 2;
2128 tANI_U8 rsvd : 1;
2129#endif
2130} __ani_attr_packed tSirMacAciAifsn;
2131
2132// contention window size
2133typedef __ani_attr_pre_packed struct sSirMacCW
2134{
2135#ifndef ANI_LITTLE_BIT_ENDIAN
2136 tANI_U8 max : 4;
2137 tANI_U8 min : 4;
2138#else
2139 tANI_U8 min : 4;
2140 tANI_U8 max : 4;
2141#endif
2142} __ani_attr_packed tSirMacCW;
2143
2144typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2145{
2146 tSirMacAciAifsn aci;
2147 tSirMacCW cw;
2148 tANI_U16 txoplimit;
2149} __ani_attr_packed tSirMacEdcaParamRecord;
2150
2151typedef __ani_attr_pre_packed struct sSirMacSSid
2152{
2153 tANI_U8 length;
2154 tANI_U8 ssId[32];
2155} __ani_attr_packed tSirMacSSid;
2156
2157// Concurrency role. These are generic IDs that identify the various roles
2158// in the software system.
2159typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302160 HAL_STA_MODE=0,
2161 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002162 HAL_P2P_CLIENT_MODE,
2163 HAL_P2P_GO_MODE,
2164 HAL_MONITOR_MODE,
2165} tHalConMode;
2166
2167//This is a bit pattern to be set for each mode
2168//bit 0 - sta mode
2169//bit 1 - ap mode
2170//bit 2 - p2p client mode
2171//bit 3 - p2p go mode
2172typedef enum
2173{
Dino Mycle8afbac12014-07-04 22:06:17 +05302174 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002175 HAL_SAP=2,
2176 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2177 HAL_P2P_CLIENT=4,
2178 HAL_P2P_GO=8,
2179 HAL_MAX_CONCURRENCY_PERSONA=4
2180} tHalConcurrencyMode;
2181
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002182// IFACE PERSONA for different Operating modes
2183typedef enum
2184{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002185 HAL_IFACE_UNKNOWN=0,
2186 HAL_IFACE_STA_MODE=1,
2187 HAL_IFACE_P2P_MODE=2,
2188 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002189} tHalIfacePersona;
2190
Jeff Johnson295189b2012-06-20 16:38:30 -07002191typedef PACKED_PRE struct PACKED_POST
2192{
2193 /* BSSID */
2194 tSirMacAddr bssId;
2195
Jeff Johnson295189b2012-06-20 16:38:30 -07002196 /* Self Mac Address */
2197 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002198
2199 /* BSS type */
2200 tSirBssType bssType;
2201
2202 /*Operational Mode: AP =0, STA = 1*/
2203 tANI_U8 operMode;
2204
2205 /*Network Type*/
2206 tSirNwType nwType;
2207
2208 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2209 tANI_U8 shortSlotTimeSupported;
2210
2211 /*Co-exist with 11a STA*/
2212 tANI_U8 llaCoexist;
2213
2214 /*Co-exist with 11b STA*/
2215 tANI_U8 llbCoexist;
2216
2217 /*Co-exist with 11g STA*/
2218 tANI_U8 llgCoexist;
2219
2220 /*Coexistence with 11n STA*/
2221 tANI_U8 ht20Coexist;
2222
2223 /*Non GF coexist flag*/
2224 tANI_U8 llnNonGFCoexist;
2225
2226 /*TXOP protection support*/
2227 tANI_U8 fLsigTXOPProtectionFullSupport;
2228
2229 /*RIFS mode*/
2230 tANI_U8 fRIFSMode;
2231
2232 /*Beacon Interval in TU*/
2233 tSirMacBeaconInterval beaconInterval;
2234
2235 /*DTIM period*/
2236 tANI_U8 dtimPeriod;
2237
2238 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2239 tANI_U8 txChannelWidthSet;
2240
2241 /*Operating channel*/
2242 tANI_U8 currentOperChannel;
2243
2244 /*Extension channel for channel bonding*/
2245 tANI_U8 currentExtChannel;
2246
2247 /*Reserved to align next field on a dword boundary*/
2248 tANI_U8 reserved;
2249
Jeff Johnsone7245742012-09-05 17:12:55 -07002250 /*SSID of the BSS*/
2251 tSirMacSSid ssId;
2252
2253 /*HAL should update the existing BSS entry, if this flag is set.
2254 UMAC will set this flag in case of reassoc, where we want to resue the
2255 the old BSSID and still return success 0 = Add, 1 = Update*/
2256 tANI_U8 action;
2257
2258 /* MAC Rate Set */
2259 tSirMacRateSet rateSet;
2260
2261 /*Enable/Disable HT capabilities of the BSS*/
2262 tANI_U8 htCapable;
2263
2264 // Enable/Disable OBSS protection
2265 tANI_U8 obssProtEnabled;
2266
2267 /*RMF enabled/disabled*/
2268 tANI_U8 rmfEnabled;
2269
2270 /*HT Operating Mode operating mode of the 802.11n STA*/
2271 tSirMacHTOperatingMode htOperMode;
2272
2273 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2274 tANI_U8 dualCTSProtection;
2275
2276 /* Probe Response Max retries */
2277 tANI_U8 ucMaxProbeRespRetryLimit;
2278
2279 /* To Enable Hidden ssid */
2280 tANI_U8 bHiddenSSIDEn;
2281
2282 /* To Enable Disable FW Proxy Probe Resp */
2283 tANI_U8 bProxyProbeRespEn;
2284
2285 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2286 EDCA params or might not desire to apply EDCA params during config BSS.
2287 0 implies Not Valid ; Non-Zero implies valid*/
2288 tANI_U8 edcaParamsValid;
2289
2290 /*EDCA Parameters for Best Effort Access Category*/
2291 tSirMacEdcaParamRecord acbe;
2292
2293 /*EDCA Parameters forBackground Access Category*/
2294 tSirMacEdcaParamRecord acbk;
2295
2296 /*EDCA Parameters for Video Access Category*/
2297 tSirMacEdcaParamRecord acvi;
2298
2299 /*EDCA Parameters for Voice Access Category*/
2300 tSirMacEdcaParamRecord acvo;
2301
2302#ifdef WLAN_FEATURE_VOWIFI_11R
2303 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2304 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2305#endif
2306
2307 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2308 tANI_U8 halPersona;
2309
2310 tANI_U8 bSpectrumMgtEnable;
2311
2312 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2313 tANI_S8 txMgmtPower;
2314 /*maxTxPower has max power to be used after applying the power constraint if any */
2315 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002316 /*Context of the station being added in HW
2317 Add a STA entry for "itself" -
2318 On AP - Add the AP itself in an "STA context"
2319 On STA - Add the AP to which this STA is joining in an "STA context" */
2320 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002321} tConfigBssParams, * tpConfigBssParams;
2322
2323
2324/*--------------------------------------------------------------------------
2325 * WLAN_HAL_CONFIG_BSS_REQ
2326 *--------------------------------------------------------------------------*/
2327typedef PACKED_PRE struct PACKED_POST
2328{
2329 /* BSSID */
2330 tSirMacAddr bssId;
2331
Jeff Johnsone7245742012-09-05 17:12:55 -07002332 /* Self Mac Address */
2333 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002334
2335 /* BSS type */
2336 tSirBssType bssType;
2337
2338 /*Operational Mode: AP =0, STA = 1*/
2339 tANI_U8 operMode;
2340
2341 /*Network Type*/
2342 tSirNwType nwType;
2343
2344 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2345 tANI_U8 shortSlotTimeSupported;
2346
2347 /*Co-exist with 11a STA*/
2348 tANI_U8 llaCoexist;
2349
2350 /*Co-exist with 11b STA*/
2351 tANI_U8 llbCoexist;
2352
2353 /*Co-exist with 11g STA*/
2354 tANI_U8 llgCoexist;
2355
2356 /*Coexistence with 11n STA*/
2357 tANI_U8 ht20Coexist;
2358
2359 /*Non GF coexist flag*/
2360 tANI_U8 llnNonGFCoexist;
2361
2362 /*TXOP protection support*/
2363 tANI_U8 fLsigTXOPProtectionFullSupport;
2364 /*RIFS mode*/
2365 tANI_U8 fRIFSMode;
2366
2367 /*Beacon Interval in TU*/
2368 tSirMacBeaconInterval beaconInterval;
2369
2370 /*DTIM period*/
2371 tANI_U8 dtimPeriod;
2372
2373 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2374 tANI_U8 txChannelWidthSet;
2375
2376 /*Operating channel*/
2377 tANI_U8 currentOperChannel;
2378
2379 /*Extension channel for channel bonding*/
2380 tANI_U8 currentExtChannel;
2381
2382 /*Reserved to align next field on a dword boundary*/
2383 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002384
2385 /*SSID of the BSS*/
2386 tSirMacSSid ssId;
2387
2388 /*HAL should update the existing BSS entry, if this flag is set.
2389 UMAC will set this flag in case of reassoc, where we want to resue the
2390 the old BSSID and still return success 0 = Add, 1 = Update*/
2391 tANI_U8 action;
2392
2393 /* MAC Rate Set */
2394 tSirMacRateSet rateSet;
2395
2396 /*Enable/Disable HT capabilities of the BSS*/
2397 tANI_U8 htCapable;
2398
2399 // Enable/Disable OBSS protection
2400 tANI_U8 obssProtEnabled;
2401
2402 /*RMF enabled/disabled*/
2403 tANI_U8 rmfEnabled;
2404
2405 /*HT Operating Mode operating mode of the 802.11n STA*/
2406 tSirMacHTOperatingMode htOperMode;
2407
2408 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2409 tANI_U8 dualCTSProtection;
2410
2411 /* Probe Response Max retries */
2412 tANI_U8 ucMaxProbeRespRetryLimit;
2413
2414 /* To Enable Hidden ssid */
2415 tANI_U8 bHiddenSSIDEn;
2416
2417 /* To Enable Disable FW Proxy Probe Resp */
2418 tANI_U8 bProxyProbeRespEn;
2419
Dino Mycle8afbac12014-07-04 22:06:17 +05302420 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2421 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002422 0 implies Not Valid ; Non-Zero implies valid*/
2423 tANI_U8 edcaParamsValid;
2424
2425 /*EDCA Parameters for Best Effort Access Category*/
2426 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302427
Jeff Johnson295189b2012-06-20 16:38:30 -07002428 /*EDCA Parameters forBackground Access Category*/
2429 tSirMacEdcaParamRecord acbk;
2430
2431 /*EDCA Parameters for Video Access Category*/
2432 tSirMacEdcaParamRecord acvi;
2433
2434 /*EDCA Parameters for Voice Access Category*/
2435 tSirMacEdcaParamRecord acvo;
2436
2437#ifdef WLAN_FEATURE_VOWIFI_11R
2438 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2439 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2440#endif
2441
Dino Mycle8afbac12014-07-04 22:06:17 +05302442 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002443 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302444
Jeff Johnson295189b2012-06-20 16:38:30 -07002445 tANI_U8 bSpectrumMgtEnable;
2446
2447 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2448 tANI_S8 txMgmtPower;
2449 /*maxTxPower has max power to be used after applying the power constraint if any */
2450 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002451 /*Context of the station being added in HW
2452 Add a STA entry for "itself" -
2453 On AP - Add the AP itself in an "STA context"
2454 On STA - Add the AP to which this STA is joining in an "STA context" */
2455 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302456
Jeff Johnsone7245742012-09-05 17:12:55 -07002457 tANI_U8 vhtCapable;
2458 tANI_U8 vhtTxChannelWidthSet;
2459} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002460
2461typedef PACKED_PRE struct PACKED_POST
2462{
2463 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002464 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002465 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002466 tConfigBssParams_V1 configBssParams_V1;
2467 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002468} tConfigBssReqMsg, *tpConfigBssReqMsg;
2469
2470/*---------------------------------------------------------------------------
2471 WLAN_HAL_CONFIG_BSS_RSP
2472---------------------------------------------------------------------------*/
2473
2474typedef PACKED_PRE struct PACKED_POST
2475{
2476 /* Success or Failure */
2477 tANI_U32 status;
2478
2479 /* BSS index allocated by HAL */
2480 tANI_U8 bssIdx;
2481
2482 /* DPU descriptor index for PTK */
2483 tANI_U8 dpuDescIndx;
2484
2485 /* PTK DPU signature */
2486 tANI_U8 ucastDpuSignature;
2487
2488 /* DPU descriptor index for GTK*/
2489 tANI_U8 bcastDpuDescIndx;
2490
2491 /* GTK DPU signature */
2492 tANI_U8 bcastDpuSignature;
2493
2494 /*DPU descriptor for IGTK*/
2495 tANI_U8 mgmtDpuDescIndx;
2496
2497 /* IGTK DPU signature */
2498 tANI_U8 mgmtDpuSignature;
2499
2500 /* Station Index for BSS entry*/
2501 tANI_U8 bssStaIdx;
2502
2503 /* Self station index for this BSS */
2504 tANI_U8 bssSelfStaIdx;
2505
2506 /* Bcast station for buffering bcast frames in AP role */
2507 tANI_U8 bssBcastStaIdx;
2508
2509 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2510 tSirMacAddr staMac;
2511
2512 /*HAL fills in the tx power used for mgmt frames in this field. */
2513 tANI_S8 txMgmtPower;
2514
2515} tConfigBssRspParams, * tpConfigBssRspParams;
2516
2517typedef PACKED_PRE struct PACKED_POST
2518{
2519 tHalMsgHeader header;
2520 tConfigBssRspParams configBssRspParams;
2521} tConfigBssRspMsg, *tpConfigBssRspMsg;
2522
2523/*---------------------------------------------------------------------------
2524 WLAN_HAL_DELETE_BSS_REQ
2525---------------------------------------------------------------------------*/
2526
2527typedef PACKED_PRE struct PACKED_POST
2528{
2529 /* BSS index to be deleted */
2530 tANI_U8 bssIdx;
2531
2532} tDeleteBssParams, *tpDeleteBssParams;
2533
2534typedef PACKED_PRE struct PACKED_POST
2535{
2536 tHalMsgHeader header;
2537 tDeleteBssParams deleteBssParams;
2538} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2539
2540/*---------------------------------------------------------------------------
2541 WLAN_HAL_DELETE_BSS_RSP
2542---------------------------------------------------------------------------*/
2543
2544typedef PACKED_PRE struct PACKED_POST
2545{
2546 /* Success or Failure */
2547 tANI_U32 status;
2548
2549 /* BSS index that has been deleted */
2550 tANI_U8 bssIdx;
2551
2552} tDeleteBssRspParams, *tpDeleteBssRspParams;
2553
2554typedef PACKED_PRE struct PACKED_POST
2555{
2556 tHalMsgHeader header;
2557 tDeleteBssRspParams deleteBssRspParams;
2558} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2559
2560/*---------------------------------------------------------------------------
2561 WLAN_HAL_JOIN_REQ
2562---------------------------------------------------------------------------*/
2563
2564typedef PACKED_PRE struct PACKED_POST
2565{
2566 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302567 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002568
2569 /*Indicates the channel to switch to.*/
2570 tANI_U8 ucChannel;
2571
2572 /* Self STA MAC */
2573 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302574
Jeff Johnson295189b2012-06-20 16:38:30 -07002575 /*Local power constraint*/
2576 tANI_U8 ucLocalPowerConstraint;
2577
2578 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002579 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002580
2581 /*link State*/
2582 tSirLinkState linkState;
2583
2584 /* Max TX power */
2585 tANI_S8 maxTxPower;
2586
2587} tHalJoinReqParams, *tpHalJoinReqParams;
2588
2589typedef PACKED_PRE struct PACKED_POST
2590{
2591 tHalMsgHeader header;
2592 tHalJoinReqParams joinReqParams;
2593} tHalJoinReqMsg, *tpHalJoinReqMsg;
2594
2595/*---------------------------------------------------------------------------
2596 WLAN_HAL_JOIN_RSP
2597---------------------------------------------------------------------------*/
2598
2599typedef PACKED_PRE struct PACKED_POST
2600{
2601 /*success or failure */
2602 tANI_U32 status;
2603
2604 /* HAL fills in the tx power used for mgmt frames in this field */
2605 tPowerdBm txMgmtPower;
2606
2607}tHalJoinRspParams, *tpHalJoinRspParams;
2608
2609typedef PACKED_PRE struct PACKED_POST
2610{
2611 tHalMsgHeader header;
2612 tHalJoinRspParams joinRspParams;
2613}tHalJoinRspMsg, *tpHalJoinRspMsg;
2614
2615/*---------------------------------------------------------------------------
2616 WLAN_HAL_POST_ASSOC_REQ
2617---------------------------------------------------------------------------*/
2618
2619typedef PACKED_PRE struct PACKED_POST
2620{
2621 tConfigStaParams configStaParams;
2622 tConfigBssParams configBssParams;
2623} tPostAssocReqParams, *tpPostAssocReqParams;
2624
2625typedef PACKED_PRE struct PACKED_POST
2626{
2627 tHalMsgHeader header;
2628 tPostAssocReqParams postAssocReqParams;
2629} tPostAssocReqMsg, *tpPostAssocReqMsg;
2630
2631/*---------------------------------------------------------------------------
2632 WLAN_HAL_POST_ASSOC_RSP
2633---------------------------------------------------------------------------*/
2634
2635typedef PACKED_PRE struct PACKED_POST
2636{
2637 tConfigStaRspParams configStaRspParams;
2638 tConfigBssRspParams configBssRspParams;
2639} tPostAssocRspParams, *tpPostAssocRspParams;
2640
2641typedef PACKED_PRE struct PACKED_POST
2642{
2643 tHalMsgHeader header;
2644 tPostAssocRspParams postAssocRspParams;
2645} tPostAssocRspMsg, *tpPostAssocRspMsg;
2646
2647/*---------------------------------------------------------------------------
2648 WLAN_HAL_SET_BSSKEY_REQ
2649---------------------------------------------------------------------------*/
2650
2651/*
2652 * This is used by PE to create a set of WEP keys for a given BSS.
2653 */
2654typedef PACKED_PRE struct PACKED_POST
2655{
2656 /*BSS Index of the BSS*/
2657 tANI_U8 bssIdx;
2658
2659 /*Encryption Type used with peer*/
2660 tAniEdType encType;
2661
2662 /*Number of keys*/
2663 tANI_U8 numKeys;
2664
2665 /*Array of keys.*/
2666 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302667
Jeff Johnson295189b2012-06-20 16:38:30 -07002668 /*Control for Replay Count, 1= Single TID based replay count on Tx
2669 0 = Per TID based replay count on TX */
2670 tANI_U8 singleTidRc;
2671} tSetBssKeyParams, *tpSetBssKeyParams;
2672
2673typedef PACKED_PRE struct PACKED_POST
2674{
2675 tHalMsgHeader header;
2676 tSetBssKeyParams setBssKeyParams;
2677} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2678
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002679/* tagged version of set bss key */
2680typedef PACKED_PRE struct PACKED_POST
2681{
2682 tSetBssKeyReqMsg Msg;
2683 uint32 Tag;
2684} tSetBssKeyReqMsgTagged;
2685
Jeff Johnson295189b2012-06-20 16:38:30 -07002686/*---------------------------------------------------------------------------
2687 WLAN_HAL_SET_BSSKEY_RSP
2688---------------------------------------------------------------------------*/
2689typedef PACKED_PRE struct PACKED_POST
2690{
2691 /*success or failure */
2692 tANI_U32 status;
2693
2694} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2695
2696typedef PACKED_PRE struct PACKED_POST
2697{
2698 tHalMsgHeader header;
2699 tSetBssKeyRspParams setBssKeyRspParams;
2700} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2701
2702/*---------------------------------------------------------------------------
2703 WLAN_HAL_SET_STAKEY_REQ,
2704---------------------------------------------------------------------------*/
2705
2706/*
2707 * This is used by PE to configure the key information on a given station.
2708 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2709 * a preconfigured key from a BSS the station assoicated with; otherwise
2710 * a new key descriptor is created based on the key field.
2711 */
2712
2713typedef PACKED_PRE struct PACKED_POST
2714{
2715 tHalMsgHeader header;
2716 tSetStaKeyParams setStaKeyParams;
2717} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2718
2719/*---------------------------------------------------------------------------
2720 WLAN_HAL_SET_STAKEY_RSP,
2721---------------------------------------------------------------------------*/
2722typedef PACKED_PRE struct PACKED_POST
2723{
2724 /*success or failure */
2725 tANI_U32 status;
2726
2727} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2728
2729typedef PACKED_PRE struct PACKED_POST
2730{
2731 tHalMsgHeader header;
2732 tSetStaKeyRspParams setStaKeyRspParams;
2733} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2734
2735/*---------------------------------------------------------------------------
2736 WLAN_HAL_RMV_BSSKEY_REQ,
2737---------------------------------------------------------------------------*/
2738/*
2739 * This is used by PE to remove keys for a given BSS.
2740 */
2741typedef PACKED_PRE struct PACKED_POST
2742
2743{
2744 /*BSS Index of the BSS*/
2745 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302746
Jeff Johnson295189b2012-06-20 16:38:30 -07002747 /*Encryption Type used with peer*/
2748 tAniEdType encType;
2749
2750 /*Key Id*/
2751 tANI_U8 keyId;
2752
2753 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2754 tAniWepType wepType;
2755
2756} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2757
2758typedef PACKED_PRE struct PACKED_POST
2759{
2760 tHalMsgHeader header;
2761 tRemoveBssKeyParams removeBssKeyParams;
2762} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2763
2764/*---------------------------------------------------------------------------
2765 WLAN_HAL_RMV_BSSKEY_RSP,
2766---------------------------------------------------------------------------*/
2767typedef PACKED_PRE struct PACKED_POST
2768{
2769 /*success or failure */
2770 tANI_U32 status;
2771
2772} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2773
2774typedef PACKED_PRE struct PACKED_POST
2775{
2776 tHalMsgHeader header;
2777 tRemoveBssKeyRspParams removeBssKeyRspParams;
2778} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2779
2780/*---------------------------------------------------------------------------
2781 WLAN_HAL_RMV_STAKEY_REQ,
2782---------------------------------------------------------------------------*/
2783/*
2784 * This is used by PE to Remove the key information on a given station.
2785 */
2786typedef PACKED_PRE struct PACKED_POST
2787{
2788 /*STA Index*/
2789 tANI_U16 staIdx;
2790
2791 /*Encryption Type used with peer*/
2792 tAniEdType encType;
2793
2794 /*Key Id*/
2795 tANI_U8 keyId;
2796
2797 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2798 the same key is used for both broadcast and unicast.*/
2799 tANI_BOOLEAN unicast;
2800
2801} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2802
2803typedef PACKED_PRE struct PACKED_POST
2804{
2805 tHalMsgHeader header;
2806 tRemoveStaKeyParams removeStaKeyParams;
2807} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2808
2809/*---------------------------------------------------------------------------
2810 WLAN_HAL_RMV_STAKEY_RSP,
2811---------------------------------------------------------------------------*/
2812typedef PACKED_PRE struct PACKED_POST
2813{
2814 /*success or failure */
2815 tANI_U32 status;
2816} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2817
2818typedef PACKED_PRE struct PACKED_POST
2819{
2820 tHalMsgHeader header;
2821 tRemoveStaKeyRspParams removeStaKeyRspParams;
2822} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2823
Jeff Johnsone7245742012-09-05 17:12:55 -07002824#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002825
Jeff Johnsone7245742012-09-05 17:12:55 -07002826#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002827#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002828#endif
2829
2830#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002831#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002832#endif
2833
2834/*-------------------------------------------------------------------------
2835WLAN_HAL_START_OEM_DATA_REQ
2836--------------------------------------------------------------------------*/
2837typedef PACKED_PRE struct PACKED_POST
2838{
2839 tANI_U32 status;
2840 tSirMacAddr selfMacAddr;
2841 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2842} tStartOemDataReqParams, *tpStartOemDataReqParams;
2843
2844typedef PACKED_PRE struct PACKED_POST
2845{
2846 tHalMsgHeader header;
2847 tStartOemDataReqParams startOemDataReqParams;
2848} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2849
2850/*-------------------------------------------------------------------------
2851WLAN_HAL_START_OEM_DATA_RSP
2852--------------------------------------------------------------------------*/
2853
2854typedef PACKED_PRE struct PACKED_POST
2855{
2856 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2857} tStartOemDataRspParams, *tpStartOemDataRspParams;
2858
2859typedef PACKED_PRE struct PACKED_POST
2860{
2861 tHalMsgHeader header;
2862 tStartOemDataRspParams startOemDataRspParams;
2863} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2864
2865#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002866
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002867/*---------------------------------------------------------------------------
2868WLAN_HAL_CH_SWITCH_V1_REQ
2869---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002870
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002871typedef PACKED_PRE struct PACKED_POST
2872{
2873 /* Channel number */
2874 tANI_U8 channelNumber;
2875
2876 /* Local power constraint */
2877 tANI_U8 localPowerConstraint;
2878
2879 /*Secondary channel offset */
2880 ePhyChanBondState secondaryChannelOffset;
2881
2882 //HAL fills in the tx power used for mgmt frames in this field.
2883 tPowerdBm txMgmtPower;
2884
2885 /* Max TX power */
2886 tPowerdBm maxTxPower;
2887
2888 /* Self STA MAC */
2889 tSirMacAddr selfStaMacAddr;
2890
2891 /*VO WIFI comment: BSSID needed to identify session. As the request has
2892 * power constraints, this should be applied only to that session
2893 * Since MTU timing and EDCA are sessionized, this struct needs to be
2894 * sessionized and bssid needs to be out of the VOWifi feature flag
2895 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002896 * mantain backward compatbility
2897 * by way of ignoring if using new host/old FW or old host/new FW since
2898 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002899 */
2900 tSirMacAddr bssId;
2901
2902 /* Source of Channel Switch */
2903 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002904
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002905} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2906
2907typedef PACKED_PRE struct PACKED_POST
2908{
2909 tHalMsgHeader header;
2910 tSwitchChannelParams_V1 switchChannelParams_V1;
2911} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2912
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002913/*---------------------------------------------------------------------------
2914WLAN_HAL_CH_SWITCH_V1_RSP
2915---------------------------------------------------------------------------*/
2916
2917typedef PACKED_PRE struct PACKED_POST
2918{
2919 /* Status */
2920 tANI_U32 status;
2921
2922 /* Channel number - same as in request*/
2923 tANI_U8 channelNumber;
2924
2925 /* HAL fills in the tx power used for mgmt frames in this field */
2926 tPowerdBm txMgmtPower;
2927
2928 /* BSSID needed to identify session - same as in request*/
2929 tSirMacAddr bssId;
2930
2931 /* Source of Channel Switch */
2932 eHalChanSwitchSource channelSwitchSrc;
2933
2934} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2935
2936typedef PACKED_PRE struct PACKED_POST
2937{
2938 tHalMsgHeader header;
2939 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2940} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002941
2942/*---------------------------------------------------------------------------
2943WLAN_HAL_CH_SWITCH_REQ
2944---------------------------------------------------------------------------*/
2945
2946typedef PACKED_PRE struct PACKED_POST
2947{
2948 /* Channel number */
2949 tANI_U8 channelNumber;
2950
2951 /* Local power constraint */
2952 tANI_U8 localPowerConstraint;
2953
2954 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002955 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002956
2957 //HAL fills in the tx power used for mgmt frames in this field.
2958 tPowerdBm txMgmtPower;
2959
2960 /* Max TX power */
2961 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302962
Jeff Johnson295189b2012-06-20 16:38:30 -07002963 /* Self STA MAC */
2964 tSirMacAddr selfStaMacAddr;
2965
2966 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2967 this should be applied only to that session*/
2968 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2969 * bssid needs to be out of the VOWifi feature flag */
2970 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2971 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2972 */
2973 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302974
Jeff Johnson295189b2012-06-20 16:38:30 -07002975}tSwitchChannelParams, *tpSwitchChannelParams;
2976
2977typedef PACKED_PRE struct PACKED_POST
2978{
2979 tHalMsgHeader header;
2980 tSwitchChannelParams switchChannelParams;
2981} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2982
2983/*---------------------------------------------------------------------------
2984WLAN_HAL_CH_SWITCH_RSP
2985---------------------------------------------------------------------------*/
2986
2987typedef PACKED_PRE struct PACKED_POST
2988{
2989 /* Status */
2990 tANI_U32 status;
2991
2992 /* Channel number - same as in request*/
2993 tANI_U8 channelNumber;
2994
2995 /* HAL fills in the tx power used for mgmt frames in this field */
2996 tPowerdBm txMgmtPower;
2997
2998 /* BSSID needed to identify session - same as in request*/
2999 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303000
Jeff Johnson295189b2012-06-20 16:38:30 -07003001}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
3002
3003typedef PACKED_PRE struct PACKED_POST
3004{
3005 tHalMsgHeader header;
3006 tSwitchChannelRspParams switchChannelRspParams;
3007} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
3008
3009/*---------------------------------------------------------------------------
3010WLAN_HAL_UPD_EDCA_PARAMS_REQ
3011---------------------------------------------------------------------------*/
3012
3013typedef PACKED_PRE struct PACKED_POST
3014{
3015 /*BSS Index*/
3016 tANI_U16 bssIdx;
3017
3018 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303019 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003020
3021 /* Background */
3022 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303023
Jeff Johnson295189b2012-06-20 16:38:30 -07003024 /* Video */
3025 tSirMacEdcaParamRecord acvi;
3026
3027 /* Voice */
3028 tSirMacEdcaParamRecord acvo;
3029
3030} tEdcaParams, *tpEdcaParams;
3031
3032typedef PACKED_PRE struct PACKED_POST
3033{
3034 tHalMsgHeader header;
3035 tEdcaParams edcaParams;
3036} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3037
3038/*---------------------------------------------------------------------------
3039WLAN_HAL_UPD_EDCA_PARAMS_RSP
3040---------------------------------------------------------------------------*/
3041typedef PACKED_PRE struct PACKED_POST
3042{
3043 /*success or failure */
3044 tANI_U32 status;
3045} tEdcaRspParams, *tpEdcaRspParams;
3046
3047typedef PACKED_PRE struct PACKED_POST
3048{
3049 tHalMsgHeader header;
3050 tEdcaRspParams edcaRspParams;
3051} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3052
3053
3054
3055/*---------------------------------------------------------------------------
3056 * WLAN_HAL_GET_STATS_REQ
3057 *--------------------------------------------------------------------------*/
3058typedef PACKED_PRE struct PACKED_POST
3059
3060{
3061 /* Index of STA to which the statistics */
3062 tANI_U16 staIdx;
3063
3064 /* Encryption mode */
3065 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303066
Jeff Johnson295189b2012-06-20 16:38:30 -07003067 /* status */
3068 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303069
Jeff Johnson295189b2012-06-20 16:38:30 -07003070 /* Statistics */
3071 tANI_U32 sendBlocks;
3072 tANI_U32 recvBlocks;
3073 tANI_U32 replays;
3074 tANI_U8 micErrorCnt;
3075 tANI_U32 protExclCnt;
3076 tANI_U16 formatErrCnt;
3077 tANI_U16 unDecryptableCnt;
3078 tANI_U32 decryptErrCnt;
3079 tANI_U32 decryptOkCnt;
3080} tDpuStatsParams, * tpDpuStatsParams;
3081
3082typedef PACKED_PRE struct PACKED_POST
3083{
3084 /* Valid STA Idx for per STA stats request */
3085 tANI_U32 staId;
3086
3087 /* Categories of stats requested as specified in eHalStatsMask*/
3088 tANI_U32 statsMask;
3089}tHalStatsReqParams, *tpHalStatsReqParams;
3090
3091typedef PACKED_PRE struct PACKED_POST
3092{
3093 tHalMsgHeader header;
3094 tHalStatsReqParams statsReqParams;
3095} tHalStatsReqMsg, *tpHalStatsReqMsg;
3096
3097/*---------------------------------------------------------------------------
3098 * WLAN_HAL_GET_STATS_RSP
3099 *--------------------------------------------------------------------------*/
3100
3101typedef PACKED_PRE struct PACKED_POST
3102{
3103 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3104 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3105 // station successfully transmitted after more than one retransmission attempt
3106
Dino Mycle8afbac12014-07-04 22:06:17 +05303107 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3108 //(with and without retries, including multi-cast, broadcast)
3109 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3110 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003111 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3112 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3113 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3114 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 +05303115 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3116 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 -07003117 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3118 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 +05303119 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3120 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003121 //to provide this.
3122}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3123
3124
3125// defines tx_rate_flags
3126typedef enum eTxRateInfo
3127{
3128 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3129 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3130 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3131 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003132 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3133 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3134 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3135 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3136 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3137 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3138} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003139
3140
3141typedef PACKED_PRE struct PACKED_POST
3142{
Dino Mycle8afbac12014-07-04 22:06:17 +05303143 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 -07003144 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303145 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 -07003146 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303147 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3148 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003149 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303150 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3151 //for eg: if it is 10.5dBm, the value would be 105
3152 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3153 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003154
Dino Mycle8afbac12014-07-04 22:06:17 +05303155 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3156 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003157 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303158 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3159 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003160}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3161
3162typedef PACKED_PRE struct PACKED_POST
3163{
Dino Mycle8afbac12014-07-04 22:06:17 +05303164 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3165 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003166 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303167 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 -07003168 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303169 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 -07003170 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303171 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 -07003172 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303173 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 -07003174 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303175 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 -07003176 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303177 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 -07003178 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303179 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 -07003180 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303181 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 -07003182 //decrypted
3183 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3184
3185}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303186
Jeff Johnson295189b2012-06-20 16:38:30 -07003187typedef PACKED_PRE struct PACKED_POST
3188{
3189 tAniGlobalSecurityStats ucStats;
3190 tAniGlobalSecurityStats mcbcStats;
3191}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3192
3193typedef PACKED_PRE struct PACKED_POST
3194{
Dino Mycle8afbac12014-07-04 22:06:17 +05303195 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3196 //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 -07003197 //address 1 field
3198 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 +05303199 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 -07003200 //primary channel
3201 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 +05303202 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 -07003203 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303204 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3205 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003206 //decoded correctly
3207}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3208
3209typedef PACKED_PRE struct PACKED_POST
3210{
Dino Mycle8afbac12014-07-04 22:06:17 +05303211 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 -07003212 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303213 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3214 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 -07003215 //is transmitted
3216}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3217
Sushant Kaushik33200572015-08-05 16:46:20 +05303218// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
3219typedef PACKED_PRE struct PACKED_POST
3220{
3221 tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
3222 tANI_U8 txAvgRetry; // Average number of retries per 10 packets.
3223 tANI_U32 reserved;
3224 tANI_U32 reserved1;
3225}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
3226
Jeff Johnson295189b2012-06-20 16:38:30 -07003227typedef PACKED_PRE struct PACKED_POST
3228{
3229 /* Success or Failure */
3230 tANI_U32 status;
3231
3232 /* STA Idx */
3233 tANI_U32 staId;
3234
3235 /* Categories of STATS being returned as per eHalStatsMask*/
3236 tANI_U32 statsMask;
3237
3238 /* message type is same as the request type */
3239 tANI_U16 msgType;
3240
3241 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303242 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003243
3244} tHalStatsRspParams, *tpHalStatsRspParams;
3245
3246
3247
3248typedef PACKED_PRE struct PACKED_POST
3249{
3250 tHalMsgHeader header;
3251 tHalStatsRspParams statsRspParams;
3252} tHalStatsRspMsg, *tpHalStatsRspMsg;
3253
Abhishek Singhbc310882015-05-22 15:17:02 +05303254 /*---------------------------------------------------------------------------
3255 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3256 *---------------------------------------------------------------------------*/
3257typedef PACKED_PRE struct PACKED_POST
3258{
3259 tANI_U32 rtsCtsValue;
3260}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3261
3262typedef PACKED_PRE struct PACKED_POST
3263{
3264 tHalMsgHeader header;
3265 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3266} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3267
Jeff Johnson295189b2012-06-20 16:38:30 -07003268/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303269 * WLAN_HAL_FW_STATS_REQ
3270 *---------------------------------------------------------------------------*/
3271 typedef PACKED_PRE struct PACKED_POST
3272{
3273 tANI_U32 type;
3274}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3275
3276typedef PACKED_PRE struct PACKED_POST
3277{
3278 tHalMsgHeader header;
3279 tHalfwStatsReqParams fwstatsReqParams;
3280} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3281
3282/*---------------------------------------------------------------------------
3283 * WLAN_HAL_FW_STATS_RSP
3284 *---------------------------------------------------------------------------*/
3285 typedef PACKED_PRE struct PACKED_POST
3286{
3287 tANI_U32 type;
3288 tANI_U32 length;
3289 tANI_U8 data[1];
3290
3291}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3292
3293typedef PACKED_PRE struct PACKED_POST
3294{
3295 tHalMsgHeader header;
3296 tHalfwStatsRspParams fwstatsRspParams;
3297} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3298
3299typedef enum
3300{
3301 FW_UBSP_STATS = 1,
3302} fwstatstype;
3303
3304
3305/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003306 * WLAN_HAL_SET_LINK_ST_REQ
3307 *--------------------------------------------------------------------------*/
3308typedef PACKED_PRE struct PACKED_POST
3309{
3310 tSirMacAddr bssid;
3311 tSirLinkState state;
3312 tSirMacAddr selfMacAddr;
3313} tLinkStateParams, *tpLinkStateParams;
3314
3315typedef PACKED_PRE struct PACKED_POST
3316{
3317 tHalMsgHeader header;
3318 tLinkStateParams linkStateParams;
3319} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3320
3321/*---------------------------------------------------------------------------
3322 * WLAN_HAL_SET_LINK_ST_RSP
3323 *--------------------------------------------------------------------------*/
3324
3325typedef PACKED_PRE struct PACKED_POST
3326{
3327 /*success or failure */
3328 tANI_U32 status;
3329} tLinkStateRspParams, *tpLinkStateRspParams;
3330
3331typedef PACKED_PRE struct PACKED_POST
3332{
3333 tHalMsgHeader header;
3334 tLinkStateRspParams linkStateRspParams;
3335} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3336
3337/*---------------------------------------------------------------------------
3338 * WLAN_HAL_ADD_TS_REQ
3339 *--------------------------------------------------------------------------*/
3340
3341/* TSPEC Params */
3342typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3343{
Jeff Johnson295189b2012-06-20 16:38:30 -07003344 tANI_U16 trafficType : 1;
3345 tANI_U16 tsid : 4;
3346 tANI_U16 direction : 2;
3347 tANI_U16 accessPolicy : 2;
3348 tANI_U16 aggregation : 1;
3349 tANI_U16 psb : 1;
3350 tANI_U16 userPrio : 3;
3351 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003352} __ani_attr_packed tSirMacTSInfoTfc;
3353
3354/* Flag to schedule the traffic type */
3355typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3356{
Jeff Johnson295189b2012-06-20 16:38:30 -07003357 tANI_U8 schedule : 1;
3358 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003359} __ani_attr_packed tSirMacTSInfoSch;
3360
3361/* Traffic and scheduling info */
3362typedef __ani_attr_pre_packed struct sSirMacTSInfo
3363{
3364 tSirMacTSInfoTfc traffic;
3365 tSirMacTSInfoSch schedule;
3366} __ani_attr_packed tSirMacTSInfo;
3367
3368/* Information elements */
3369typedef __ani_attr_pre_packed struct sSirMacTspecIE
3370{
3371 tANI_U8 type;
3372 tANI_U8 length;
3373 tSirMacTSInfo tsinfo;
3374 tANI_U16 nomMsduSz;
3375 tANI_U16 maxMsduSz;
3376 tANI_U32 minSvcInterval;
3377 tANI_U32 maxSvcInterval;
3378 tANI_U32 inactInterval;
3379 tANI_U32 suspendInterval;
3380 tANI_U32 svcStartTime;
3381 tANI_U32 minDataRate;
3382 tANI_U32 meanDataRate;
3383 tANI_U32 peakDataRate;
3384 tANI_U32 maxBurstSz;
3385 tANI_U32 delayBound;
3386 tANI_U32 minPhyRate;
3387 tANI_U16 surplusBw;
3388 tANI_U16 mediumTime;
3389}__ani_attr_packed tSirMacTspecIE;
3390
3391typedef PACKED_PRE struct PACKED_POST
3392{
3393 /* Station Index */
3394 tANI_U16 staIdx;
3395
3396 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3397 tANI_U16 tspecIdx;
3398
3399 /* To program TPE with required parameters */
3400 tSirMacTspecIE tspec;
3401
3402 /* U-APSD Flags: 1b per AC. Encoded as follows:
3403 b7 b6 b5 b4 b3 b2 b1 b0 =
3404 X X X X BE BK VI VO */
3405 tANI_U8 uAPSD;
3406
3407 /* These parameters are for all the access categories */
3408 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3409 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3410 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303411
Jeff Johnson295189b2012-06-20 16:38:30 -07003412} tAddTsParams, *tpAddTsParams;
3413
3414typedef PACKED_PRE struct PACKED_POST
3415{
3416 tHalMsgHeader header;
3417 tAddTsParams addTsParams;
3418} tAddTsReqMsg, *tpAddTsReqMsg;
3419
3420/*---------------------------------------------------------------------------
3421 * WLAN_HAL_ADD_TS_RSP
3422 *--------------------------------------------------------------------------*/
3423
3424typedef PACKED_PRE struct PACKED_POST
3425{
3426 /*success or failure */
3427 tANI_U32 status;
3428} tAddTsRspParams, *tpAddTsRspParams;
3429
3430typedef PACKED_PRE struct PACKED_POST
3431{
3432 tHalMsgHeader header;
3433 tAddTsRspParams addTsRspParams;
3434} tAddTsRspMsg, *tpAddTsRspMsg;
3435
3436
3437/*---------------------------------------------------------------------------
3438 * WLAN_HAL_DEL_TS_REQ
3439 *--------------------------------------------------------------------------*/
3440
3441typedef PACKED_PRE struct PACKED_POST
3442{
3443 /* Station Index */
3444 tANI_U16 staIdx;
3445
3446 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3447 tANI_U16 tspecIdx;
3448
3449 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303450 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003451
3452} tDelTsParams, *tpDelTsParams;
3453
3454typedef PACKED_PRE struct PACKED_POST
3455{
3456 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303457 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003458} tDelTsReqMsg, *tpDelTsReqMsg;
3459
3460/*---------------------------------------------------------------------------
3461 * WLAN_HAL_DEL_TS_RSP
3462 *--------------------------------------------------------------------------*/
3463
3464typedef PACKED_PRE struct PACKED_POST
3465{
3466 /*success or failure */
3467 tANI_U32 status;
3468} tDelTsRspParams, *tpDelTsRspParams;
3469
3470typedef PACKED_PRE struct PACKED_POST
3471{
3472 tHalMsgHeader header;
3473 tDelTsRspParams delTsRspParams;
3474} tDelTsRspMsg, *tpDelTsRspMsg;
3475
3476/* End of TSpec Parameters */
3477
3478/* Start of BLOCK ACK related Parameters */
3479
3480/*---------------------------------------------------------------------------
3481 * WLAN_HAL_ADD_BA_SESSION_REQ
3482 *--------------------------------------------------------------------------*/
3483
3484typedef PACKED_PRE struct PACKED_POST
3485{
3486 /* Station Index */
3487 tANI_U16 staIdx;
3488
3489 /* Peer MAC Address */
3490 tSirMacAddr peerMacAddr;
3491
3492 /* ADDBA Action Frame dialog token
3493 HAL will not interpret this object */
3494 tANI_U8 baDialogToken;
3495
3496 /* TID for which the BA is being setup
3497 This identifies the TC or TS of interest */
3498 tANI_U8 baTID;
3499
3500 /* 0 - Delayed BA (Not supported)
3501 1 - Immediate BA */
3502 tANI_U8 baPolicy;
3503
3504 /* Indicates the number of buffers for this TID (baTID)
3505 NOTE - This is the requested buffer size. When this
3506 is processed by HAL and subsequently by HDD, it is
3507 possible that HDD may change this buffer size. Any
3508 change in the buffer size should be noted by PE and
3509 advertized appropriately in the ADDBA response */
3510 tANI_U16 baBufferSize;
3511
3512 /* BA timeout in TU's 0 means no timeout will occur */
3513 tANI_U16 baTimeout;
3514
3515 /* b0..b3 - Fragment Number - Always set to 0
3516 b4..b15 - Starting Sequence Number of first MSDU
3517 for which this BA is setup */
3518 tANI_U16 baSSN;
3519
3520 /* ADDBA direction
3521 1 - Originator
3522 0 - Recipient */
3523 tANI_U8 baDirection;
3524} tAddBASessionParams, *tpAddBASessionParams;
3525
3526typedef PACKED_PRE struct PACKED_POST
3527{
3528 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303529 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003530}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3531
3532/*---------------------------------------------------------------------------
3533 * WLAN_HAL_ADD_BA_SESSION_RSP
3534 *--------------------------------------------------------------------------*/
3535
3536typedef PACKED_PRE struct PACKED_POST
3537{
3538 /*success or failure */
3539 tANI_U32 status;
3540
3541 /* Dialog token */
3542 tANI_U8 baDialogToken;
3543
3544 /* TID for which the BA session has been setup */
3545 tANI_U8 baTID;
3546
3547 /* BA Buffer Size allocated for the current BA session */
3548 tANI_U8 baBufferSize;
3549
3550 tANI_U8 baSessionID;
3551
3552 /* Reordering Window buffer */
3553 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303554
Jeff Johnson295189b2012-06-20 16:38:30 -07003555 /*Station Index to id the sta */
3556 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303557
Jeff Johnson295189b2012-06-20 16:38:30 -07003558 /* Starting Sequence Number */
3559 tANI_U16 SSN;
3560} tAddBASessionRspParams, *tpAddBASessionRspParams;
3561
3562typedef PACKED_PRE struct PACKED_POST
3563{
3564 tHalMsgHeader header;
3565 tAddBASessionRspParams addBASessionRspParams;
3566} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3567
3568/*---------------------------------------------------------------------------
3569 * WLAN_HAL_ADD_BA_REQ
3570 *--------------------------------------------------------------------------*/
3571
3572typedef PACKED_PRE struct PACKED_POST
3573{
3574 /* Session Id */
3575 tANI_U8 baSessionID;
3576
3577 /* Reorder Window Size */
3578 tANI_U8 winSize;
3579
3580#ifdef FEATURE_ON_CHIP_REORDERING
3581 tANI_BOOLEAN isReorderingDoneOnChip;
3582#endif
3583} tAddBAParams, *tpAddBAParams;
3584
3585typedef PACKED_PRE struct PACKED_POST
3586{
3587 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303588 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003589} tAddBAReqMsg, *tpAddBAReqMsg;
3590
3591
3592/*---------------------------------------------------------------------------
3593 * WLAN_HAL_ADD_BA_RSP
3594 *--------------------------------------------------------------------------*/
3595
3596typedef PACKED_PRE struct PACKED_POST
3597{
3598 /*success or failure */
3599 tANI_U32 status;
3600
3601 /* Dialog token */
3602 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303603
Jeff Johnson295189b2012-06-20 16:38:30 -07003604} tAddBARspParams, *tpAddBARspParams;
3605
3606typedef PACKED_PRE struct PACKED_POST
3607{
3608 tHalMsgHeader header;
3609 tAddBARspParams addBARspParams;
3610} tAddBARspMsg, *tpAddBARspMsg;
3611
3612
3613/*---------------------------------------------------------------------------
3614 * WLAN_HAL_TRIGGER_BA_REQ
3615 *--------------------------------------------------------------------------*/
3616
3617
3618typedef struct sAddBaInfo
3619{
3620 tANI_U16 fBaEnable : 1;
3621 tANI_U16 startingSeqNum: 12;
3622 tANI_U16 reserved : 3;
3623}tAddBaInfo, *tpAddBaInfo;
3624
3625typedef struct sTriggerBaRspCandidate
3626{
3627 tSirMacAddr staAddr;
3628 tAddBaInfo baInfo[STACFG_MAX_TC];
3629}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3630
3631typedef struct sTriggerBaCandidate
3632{
3633 tANI_U8 staIdx;
3634 tANI_U8 tidBitmap;
3635}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3636
3637typedef PACKED_PRE struct PACKED_POST
3638{
3639 /* Session Id */
3640 tANI_U8 baSessionID;
3641
Dino Mycle8afbac12014-07-04 22:06:17 +05303642 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003643 * Candidate List(tTriggerBaCandidate)
3644 */
3645 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303646
Jeff Johnson295189b2012-06-20 16:38:30 -07003647} tTriggerBAParams, *tpTriggerBAParams;
3648
3649typedef PACKED_PRE struct PACKED_POST
3650{
3651 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303652 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003653} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3654
3655
3656/*---------------------------------------------------------------------------
3657 * WLAN_HAL_TRIGGER_BA_RSP
3658 *--------------------------------------------------------------------------*/
3659
3660typedef PACKED_PRE struct PACKED_POST
3661{
Dino Mycle8afbac12014-07-04 22:06:17 +05303662
Jeff Johnson295189b2012-06-20 16:38:30 -07003663 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303664 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003665
3666 /* success or failure */
3667 tANI_U32 status;
3668
Dino Mycle8afbac12014-07-04 22:06:17 +05303669 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003670 * Rsp Candidate List(tTriggerRspBaCandidate)
3671 */
3672 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303673
Jeff Johnson295189b2012-06-20 16:38:30 -07003674
3675} tTriggerBARspParams, *tpTriggerBARspParams;
3676
3677typedef PACKED_PRE struct PACKED_POST
3678{
3679 tHalMsgHeader header;
3680 tTriggerBARspParams triggerBARspParams;
3681} tTriggerBARspMsg, *tpTriggerBARspMsg;
3682
3683/*---------------------------------------------------------------------------
3684 * WLAN_HAL_DEL_BA_REQ
3685 *--------------------------------------------------------------------------*/
3686
3687typedef PACKED_PRE struct PACKED_POST
3688{
3689 /* Station Index */
3690 tANI_U16 staIdx;
3691
3692 /* TID for which the BA session is being deleted */
3693 tANI_U8 baTID;
3694
3695 /* DELBA direction
3696 1 - Originator
3697 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303698 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003699} tDelBAParams, *tpDelBAParams;
3700
3701typedef PACKED_PRE struct PACKED_POST
3702{
3703 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303704 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003705} tDelBAReqMsg, *tpDelBAReqMsg;
3706
3707/*---------------------------------------------------------------------------
3708 * WLAN_HAL_DEL_BA_RSP
3709 *--------------------------------------------------------------------------*/
3710
3711typedef PACKED_PRE struct PACKED_POST
3712{
3713 /* success or failure */
3714 tANI_U32 status;
3715} tDelBARspParams, *tpDelBARspParams;
3716
3717typedef PACKED_PRE struct PACKED_POST
3718{
3719 tHalMsgHeader header;
3720 tDelBARspParams delBARspParams;
3721} tDelBARspMsg, *tpDelBARspMsg;
3722
3723
Jeff Johnson295189b2012-06-20 16:38:30 -07003724/*---------------------------------------------------------------------------
3725 * WLAN_HAL_TSM_STATS_REQ
3726 *--------------------------------------------------------------------------*/
3727typedef PACKED_PRE struct PACKED_POST
3728{
3729 /* Traffic Id */
3730 tANI_U8 tsmTID;
3731
3732 tSirMacAddr bssId;
3733} tTsmStatsParams, *tpTsmStatsParams;
3734
3735typedef PACKED_PRE struct PACKED_POST
3736{
3737 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303738 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003739} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3740
3741
3742/*---------------------------------------------------------------------------
3743 * WLAN_HAL_TSM_STATS_RSP
3744 *--------------------------------------------------------------------------*/
3745typedef PACKED_PRE struct PACKED_POST
3746{
3747 /*success or failure */
3748 tANI_U32 status;
3749
Dino Mycle8afbac12014-07-04 22:06:17 +05303750 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003751 tANI_U16 UplinkPktQueueDly;
3752
Dino Mycle8afbac12014-07-04 22:06:17 +05303753 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003754 tANI_U16 UplinkPktQueueDlyHist[4];
3755
Dino Mycle8afbac12014-07-04 22:06:17 +05303756 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003757 tANI_U32 UplinkPktTxDly;
3758
Dino Mycle8afbac12014-07-04 22:06:17 +05303759 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003760 tANI_U16 UplinkPktLoss;
3761
Dino Mycle8afbac12014-07-04 22:06:17 +05303762 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003763 tANI_U16 UplinkPktCount;
3764
Dino Mycle8afbac12014-07-04 22:06:17 +05303765 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003766 tANI_U8 RoamingCount;
3767
Dino Mycle8afbac12014-07-04 22:06:17 +05303768 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003769 tANI_U16 RoamingDly;
3770} tTsmStatsRspParams, *tpTsmStatsRspParams;
3771
3772typedef PACKED_PRE struct PACKED_POST
3773{
3774 tHalMsgHeader header;
3775 tTsmStatsRspParams tsmStatsRspParams;
3776} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3777
3778
Jeff Johnson295189b2012-06-20 16:38:30 -07003779/*---------------------------------------------------------------------------
3780 * WLAN_HAL_SET_KEYDONE_MSG
3781 *--------------------------------------------------------------------------*/
3782
3783typedef PACKED_PRE struct PACKED_POST
3784{
3785 /*bssid of the keys */
3786 tANI_U8 bssidx;
3787 tANI_U8 encType;
3788} tSetKeyDoneParams, *tpSetKeyDoneParams;
3789
3790typedef PACKED_PRE struct PACKED_POST
3791{
3792 tHalMsgHeader header;
3793 tSetKeyDoneParams setKeyDoneParams;
3794} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3795
3796/*---------------------------------------------------------------------------
3797 * WLAN_HAL_DOWNLOAD_NV_REQ
3798 *--------------------------------------------------------------------------*/
3799typedef PACKED_PRE struct PACKED_POST
3800{
3801 /* Fragment sequence number of the NV Image. Note that NV Image might not
3802 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303803 * can hence choose to chop the NV blob into multiple fragments starting with
3804 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003805 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3806 * concatenated together by HAL without any padding bytes in between.*/
3807 tANI_U16 fragNumber;
3808
3809 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303810 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003811 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3812 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3813 tANI_U16 isLastFragment;
3814
3815 /* NV Image size (number of bytes) */
3816 tANI_U32 nvImgBufferSize;
3817
3818 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3819 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3820} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3821
3822typedef PACKED_PRE struct PACKED_POST
3823{
3824 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3825 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3826 tHalMsgHeader header;
3827 tHalNvImgDownloadReqParams nvImageReqParams;
3828} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3829
3830/*---------------------------------------------------------------------------
3831 * WLAN_HAL_DOWNLOAD_NV_RSP
3832 *--------------------------------------------------------------------------*/
3833typedef PACKED_PRE struct PACKED_POST
3834{
3835 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3836 * after each fragment */
3837 tANI_U32 status;
3838} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3839
3840typedef PACKED_PRE struct PACKED_POST
3841{
3842 tHalMsgHeader header;
3843 tHalNvImgDownloadRspParams nvImageRspParams;
3844} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3845
3846/*---------------------------------------------------------------------------
3847 * WLAN_HAL_STORE_NV_IND
3848 *--------------------------------------------------------------------------*/
3849typedef PACKED_PRE struct PACKED_POST
3850{
3851 /* NV Item */
3852 eNvTable tableID;
3853
3854 /* Size of NV Blob */
3855 tANI_U32 nvBlobSize;
3856
Dino Mycle8afbac12014-07-04 22:06:17 +05303857 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003858 * NV blob i.e. uint8[nvBlobSize] */
3859} tHalNvStoreParams, *tpHalNvStoreParams;
3860
3861typedef PACKED_PRE struct PACKED_POST
3862{
3863 /* Note: The length specified in tHalNvStoreInd messages should be
3864 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3865 tHalMsgHeader header;
3866 tHalNvStoreParams nvStoreParams;
3867} tHalNvStoreInd, *tpHalNvStoreInd;
3868
3869/* End of Block Ack Related Parameters */
3870
3871/*---------------------------------------------------------------------------
3872 * WLAN_HAL_MIC_FAILURE_IND
3873 *--------------------------------------------------------------------------*/
3874
3875#define SIR_CIPHER_SEQ_CTR_SIZE 6
3876
3877typedef PACKED_PRE struct PACKED_POST
3878{
Dino Mycle8afbac12014-07-04 22:06:17 +05303879 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003880 tSirMacAddr taMacAddr; //transmitter address
3881 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303882 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003883 tANI_U8 IV1; // first byte of IV
3884 tANI_U8 keyId; // second byte of IV
3885 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3886 tSirMacAddr rxMacAddr; // receive address
3887} tSirMicFailureInfo, *tpSirMicFailureInfo;
3888
3889/* Definition for MIC failure indication
3890 MAC reports this each time a MIC failure occures on Rx TKIP packet
3891 */
3892typedef PACKED_PRE struct PACKED_POST
3893{
3894 tSirMacAddr bssId; // BSSID
3895 tSirMicFailureInfo info;
3896} tSirMicFailureInd, *tpSirMicFailureInd;
3897
3898typedef PACKED_PRE struct PACKED_POST
3899{
3900 tHalMsgHeader header;
3901 tSirMicFailureInd micFailureInd;
3902} tMicFailureIndMsg, *tpMicFailureIndMsg;
3903
Mohit Khanna4a70d262012-09-11 16:30:12 -07003904typedef PACKED_PRE struct PACKED_POST
3905{
3906 tANI_U16 opMode;
3907 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303908}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003909
3910typedef PACKED_PRE struct PACKED_POST
3911{
3912 tHalMsgHeader header;
3913 tUpdateVHTOpMode updateVhtOpMode;
3914} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3915
3916typedef PACKED_PRE struct PACKED_POST
3917{
3918 tANI_U32 status;
3919} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3920
3921typedef PACKED_PRE struct PACKED_POST
3922{
3923 tHalMsgHeader header;
3924 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3925} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3926
Jeff Johnson295189b2012-06-20 16:38:30 -07003927/*---------------------------------------------------------------------------
3928 * WLAN_HAL_UPDATE_BEACON_REQ
3929 *--------------------------------------------------------------------------*/
3930typedef PACKED_PRE struct PACKED_POST
3931{
3932
3933 tANI_U8 bssIdx;
3934
3935 //shortPreamble mode. HAL should update all the STA rates when it
3936 //receives this message
3937 tANI_U8 fShortPreamble;
3938 //short Slot time.
3939 tANI_U8 fShortSlotTime;
3940 //Beacon Interval
3941 tANI_U16 beaconInterval;
3942 //Protection related
3943 tANI_U8 llaCoexist;
3944 tANI_U8 llbCoexist;
3945 tANI_U8 llgCoexist;
3946 tANI_U8 ht20MhzCoexist;
3947 tANI_U8 llnNonGFCoexist;
3948 tANI_U8 fLsigTXOPProtectionFullSupport;
3949 tANI_U8 fRIFSMode;
3950
3951 tANI_U16 paramChangeBitmap;
3952}tUpdateBeaconParams, *tpUpdateBeaconParams;
3953
3954
3955typedef PACKED_PRE struct PACKED_POST
3956{
3957 tHalMsgHeader header;
3958 tUpdateBeaconParams updateBeaconParam;
3959} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3960
3961/*---------------------------------------------------------------------------
3962 * WLAN_HAL_UPDATE_BEACON_RSP
3963 *--------------------------------------------------------------------------*/
3964typedef PACKED_PRE struct PACKED_POST
3965{
3966 tANI_U32 status;
3967} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3968
3969typedef PACKED_PRE struct PACKED_POST
3970{
3971 tHalMsgHeader header;
3972 tUpdateBeaconRspParams updateBeaconRspParam;
3973} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3974
3975/*---------------------------------------------------------------------------
3976 * WLAN_HAL_SEND_BEACON_REQ
3977 *--------------------------------------------------------------------------*/
3978typedef PACKED_PRE struct PACKED_POST
3979{
3980 tANI_U32 beaconLength; //length of the template.
3981 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3982 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003983 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003984 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3985}tSendBeaconParams, *tpSendBeaconParams;
3986
3987
3988typedef PACKED_PRE struct PACKED_POST
3989{
3990 tHalMsgHeader header;
3991 tSendBeaconParams sendBeaconParam;
3992}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3993
3994/*---------------------------------------------------------------------------
3995 * WLAN_HAL_SEND_BEACON_RSP
3996 *--------------------------------------------------------------------------*/
3997typedef PACKED_PRE struct PACKED_POST
3998{
3999 tANI_U32 status;
4000} tSendBeaconRspParams, *tpSendBeaconRspParams;
4001
4002typedef PACKED_PRE struct PACKED_POST
4003{
4004 tHalMsgHeader header;
4005 tSendBeaconRspParams sendBeaconRspParam;
4006} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
4007
4008#ifdef FEATURE_5GHZ_BAND
4009
4010/*---------------------------------------------------------------------------
4011 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
4012 *--------------------------------------------------------------------------*/
4013typedef PACKED_PRE struct PACKED_POST
4014{
4015 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05304016 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07004017}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
4018
4019
4020typedef PACKED_PRE struct PACKED_POST
4021{
4022 /* Link Parameters */
4023 tSirEnableRadarInfoType EnableRadarInfo;
4024}tEnableRadarReqParams, *tpEnableRadarReqParams;
4025
4026typedef PACKED_PRE struct PACKED_POST
4027{
4028 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304029 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004030}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4031
4032/*---------------------------------------------------------------------------
4033 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4034 *--------------------------------------------------------------------------*/
4035
4036typedef PACKED_PRE struct PACKED_POST
4037{
4038 /* Link Parameters */
4039 tSirMacAddr BSSID;
4040 /* success or failure */
4041 tANI_U32 status;
4042}tEnableRadarRspParams, *tpEnableRadarRspParams;
4043
4044typedef PACKED_PRE struct PACKED_POST
4045{
4046 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304047 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004048}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4049
4050/*---------------------------------------------------------------------------
4051 *WLAN_HAL_RADAR_DETECT_INTR_IND
4052 *--------------------------------------------------------------------------*/
4053
4054typedef PACKED_PRE struct PACKED_POST
4055{
4056 tANI_U8 radarDetChannel;
4057}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4058
4059typedef PACKED_PRE struct PACKED_POST
4060{
4061 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304062 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004063}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4064
4065/*---------------------------------------------------------------------------
4066 *WLAN_HAL_RADAR_DETECT_IND
4067 *-------------------------------------------------------------------------*/
4068typedef PACKED_PRE struct PACKED_POST
4069{
4070 /*channel number in which the RADAR detected*/
4071 tANI_U8 channelNumber;
4072
4073 /*RADAR pulse width*/
4074 tANI_U16 radarPulseWidth; // in usecond
4075
4076 /*Number of RADAR pulses */
4077 tANI_U16 numRadarPulse;
4078}tRadarDetectIndParams,*tpRadarDetectIndParams;
4079
4080typedef PACKED_PRE struct PACKED_POST
4081{
4082 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304083 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004084}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4085
4086
4087/*---------------------------------------------------------------------------
4088 *WLAN_HAL_GET_TPC_REPORT_REQ
4089 *-------------------------------------------------------------------------*/
4090typedef PACKED_PRE struct PACKED_POST
4091{
4092 tSirMacAddr sta;
4093 tANI_U8 dialogToken;
4094 tANI_U8 txpower;
4095}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4096
4097
4098typedef PACKED_PRE struct PACKED_POST
4099{
4100 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304101 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004102}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4103
4104/*---------------------------------------------------------------------------
4105 * WLAN_HAL_GET_TPC_REPORT_RSP
4106 *--------------------------------------------------------------------------*/
4107
4108typedef PACKED_PRE struct PACKED_POST
4109{
4110 /* success or failure */
4111 tANI_U32 status;
4112}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4113
4114typedef PACKED_PRE struct PACKED_POST
4115{
4116 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304117 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004118}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4119
4120#endif
4121
Jeff Johnson295189b2012-06-20 16:38:30 -07004122/*---------------------------------------------------------------------------
4123 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4124 *-------------------------------------------------------------------------*/
4125typedef PACKED_PRE struct PACKED_POST
4126{
4127 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4128 tANI_U32 probeRespTemplateLen;
4129 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4130 tSirMacAddr bssId;
4131
4132}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4133
4134typedef PACKED_PRE struct PACKED_POST
4135{
4136 tHalMsgHeader header;
4137 tSendProbeRespReqParams sendProbeRespReqParams ;
4138}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4139
4140/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304141 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004142 *--------------------------------------------------------------------------*/
4143
4144typedef PACKED_PRE struct PACKED_POST
4145{
4146 /* success or failure */
4147 tANI_U32 status;
4148}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4149
4150typedef PACKED_PRE struct PACKED_POST
4151{
4152 tHalMsgHeader header;
4153 tSendProbeRespRspParams sendProbeRespRspParams;
4154}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4155
4156
4157/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304158 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004159 *--------------------------------------------------------------------------*/
4160
4161typedef PACKED_PRE struct PACKED_POST
4162{
4163 /* success or failure */
4164 tANI_U32 status;
4165}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4166
4167typedef PACKED_PRE struct PACKED_POST
4168{
4169 tHalMsgHeader header;
4170 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4171}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4172
4173/*---------------------------------------------------------------------------
4174 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4175 *--------------------------------------------------------------------------*/
4176
4177typedef PACKED_PRE struct PACKED_POST
4178{
4179 tANI_U16 assocId;
4180 tANI_U16 staId;
4181 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4182 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004183 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304184 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004185
4186}tDeleteStaContextParams, *tpDeleteStaContextParams;
4187
4188
4189typedef PACKED_PRE struct PACKED_POST
4190{
4191 tHalMsgHeader header;
4192 tDeleteStaContextParams deleteStaContextParams;
4193}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4194
Anand Kumar012623a2013-01-11 17:00:00 -08004195typedef PACKED_PRE struct PACKED_POST
4196{
4197 tHalMsgHeader header;
4198 tANI_U8 assocId;
4199 tANI_U8 staIdx;
4200 tANI_U8 bssIdx;
4201 tANI_U8 uReasonCode;
4202 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004203#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4204 tANI_U8 staAddr[6];
4205 tANI_U8 bssId[6];
4206#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004207} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004208
4209/*---------------------------------------------------------------------------
4210 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4211 *--------------------------------------------------------------------------*/
4212
4213typedef PACKED_PRE struct PACKED_POST
4214{
4215 tBtAmpEventType btAmpEventType;
4216
4217}tBtAmpEventParams, *tpBtAmpEventParams;
4218
4219
4220
4221typedef PACKED_PRE struct PACKED_POST
4222{
4223 tHalMsgHeader header;
4224 tBtAmpEventParams btAmpEventParams;
4225}tBtAmpEventMsg, *tpBtAmpEventMsg;
4226
4227/*---------------------------------------------------------------------------
4228*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4229*--------------------------------------------------------------------------*/
4230
4231typedef PACKED_PRE struct PACKED_POST
4232{
4233 /* success or failure */
4234 tANI_U32 status;
4235}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4236
4237typedef PACKED_PRE struct PACKED_POST
4238{
4239 tHalMsgHeader header;
4240 tBtAmpEventRspParams btAmpEventRspParams;
4241}tBtAmpEventRsp, *tpBtAmpEventRsp;
4242
4243
4244/*---------------------------------------------------------------------------
4245 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4246 *--------------------------------------------------------------------------*/
4247
4248typedef PACKED_PRE struct PACKED_POST
4249{
4250 // Station Index. originates from HAL
4251 tANI_U8 ucSTAId;
4252
4253 // TID for which the transmit queue is being flushed
4254 tANI_U8 ucTid;
4255
4256}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4257
4258
4259typedef PACKED_PRE struct PACKED_POST
4260{
4261 tHalMsgHeader header;
4262 tTlHalFlushAcParams tlHalFlushAcParam;
4263}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4264
4265/*---------------------------------------------------------------------------
4266*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4267*--------------------------------------------------------------------------*/
4268
4269typedef PACKED_PRE struct PACKED_POST
4270{
4271 // Station Index. originates from HAL
4272 tANI_U8 ucSTAId;
4273
4274 // TID for which the transmit queue is being flushed
4275 tANI_U8 ucTid;
4276
4277 /* success or failure */
4278 tANI_U32 status;
4279}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4280
4281typedef PACKED_PRE struct PACKED_POST
4282{
4283 tHalMsgHeader header;
4284 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4285}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4286
4287/*---------------------------------------------------------------------------
4288 * WLAN_HAL_ENTER_IMPS_REQ
4289 *--------------------------------------------------------------------------*/
4290typedef PACKED_PRE struct PACKED_POST
4291{
4292 tHalMsgHeader header;
4293} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4294
4295/*---------------------------------------------------------------------------
4296 * WLAN_HAL_EXIT_IMPS_REQ
4297 *--------------------------------------------------------------------------*/
4298typedef PACKED_PRE struct PACKED_POST
4299{
4300 tHalMsgHeader header;
4301} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4302
4303/*---------------------------------------------------------------------------
4304 * WLAN_HAL_ENTER_BMPS_REQ
4305 *--------------------------------------------------------------------------*/
4306
4307typedef PACKED_PRE struct PACKED_POST
4308{
4309 tANI_U8 bssIdx;
4310 //TBTT value derived from the last beacon
4311#ifndef BUILD_QWPTTSTATIC
4312 tANI_U64 tbtt;
4313#endif
4314 tANI_U8 dtimCount;
4315 //DTIM period given to HAL during association may not be valid,
4316 //if association is based on ProbeRsp instead of beacon.
4317 tANI_U8 dtimPeriod;
4318
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004319 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004320 tANI_U32 rssiFilterPeriod;
4321 tANI_U32 numBeaconPerRssiAverage;
4322 tANI_U8 bRssiFilterEnable;
4323
4324} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4325
4326
4327typedef PACKED_PRE struct PACKED_POST
4328{
4329 tHalMsgHeader header;
4330 tHalEnterBmpsReqParams enterBmpsReq;
4331} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4332
4333/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304334 * WLAN_HAL_PRINT_REG_INFO_IND
4335 *--------------------------------------------------------------------------*/
4336typedef PACKED_PRE struct PACKED_POST
4337{
4338 uint32 regAddr;
4339 uint32 regValue;
4340} tHalRegDebugInfo, *tpRegDebugInfo;
4341
4342typedef PACKED_PRE struct PACKED_POST
4343{
4344 uint32 regCount;
4345 uint32 scenario;
4346 uint32 reasonCode;
4347} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4348
4349typedef PACKED_PRE struct PACKED_POST
4350{
4351 tHalMsgHeader header;
4352 tHalRegDebugInfoParams regParams;
4353} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4354
4355/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004356 * WLAN_HAL_EXIT_BMPS_REQ
4357 *--------------------------------------------------------------------------*/
4358typedef PACKED_PRE struct PACKED_POST
4359{
4360 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004361 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004362} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4363
4364typedef PACKED_PRE struct PACKED_POST
4365{
4366 tHalMsgHeader header;
4367 tHalExitBmpsReqParams exitBmpsReqParams;
4368} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4369
4370/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004371 * WLAN_HAL_MISSED_BEACON_IND
4372 *--------------------------------------------------------------------------*/
4373typedef PACKED_PRE struct PACKED_POST
4374{
4375 tANI_U8 bssIdx;
4376} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4377
4378typedef PACKED_PRE struct PACKED_POST
4379{
4380 tHalMsgHeader header;
4381 tHalMissedBeaconIndParams missedBeaconIndParams;
4382} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4383
4384/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004385 * WLAN_HAL_ADD_BCN_FILTER_REQ
4386 *--------------------------------------------------------------------------*/
4387/* Beacon Filtering data structures */
4388typedef PACKED_PRE struct PACKED_POST
4389{
4390 tANI_U8 offset;
4391 tANI_U8 value;
4392 tANI_U8 bitMask;
4393 tANI_U8 ref;
4394} tEidByteInfo, *tpEidByteInfo;
4395
Dino Mycle8afbac12014-07-04 22:06:17 +05304396typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004397{
4398 tANI_U16 capabilityInfo;
4399 tANI_U16 capabilityMask;
4400 tANI_U16 beaconInterval;
4401 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004402 tANI_U8 bssIdx;
4403 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004404} tBeaconFilterMsg, *tpBeaconFilterMsg;
4405
4406/* The above structure would be followed by multiple of below mentioned structure */
4407typedef PACKED_PRE struct PACKED_POST
4408{
4409 tANI_U8 elementId;
4410 tANI_U8 checkIePresence;
4411 tEidByteInfo byte;
4412} tBeaconFilterIe, *tpBeaconFilterIe;
4413
4414typedef PACKED_PRE struct PACKED_POST
4415{
4416 tHalMsgHeader header;
4417 tBeaconFilterMsg addBcnFilterParams;
4418} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4419
4420/*---------------------------------------------------------------------------
4421 * WLAN_HAL_REM_BCN_FILTER_REQ
4422 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304423typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004424{
4425 tANI_U8 ucIeCount;
4426 tANI_U8 ucRemIeId[1];
4427} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4428
4429typedef PACKED_PRE struct PACKED_POST
4430{
4431 tHalMsgHeader header;
4432 tRemBeaconFilterMsg remBcnFilterParams;
4433} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4434
4435/*---------------------------------------------------------------------------
4436 * WLAN_HAL_HOST_OFFLOAD_REQ
4437 *--------------------------------------------------------------------------*/
4438#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4439#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4440#define HAL_IPV6_NS_OFFLOAD 2
4441#define HAL_IPV6_ADDR_LEN 16
4442#define HAL_MAC_ADDR_LEN 6
4443#define HAL_OFFLOAD_DISABLE 0
4444#define HAL_OFFLOAD_ENABLE 1
4445#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004446#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004447#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004448#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004449
4450typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4451{
4452 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4453 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4454 //Only support 2 possible Network Advertisement IPv6 address
4455 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4456 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4457 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4458 tANI_U8 srcIPv6AddrValid : 1;
4459 tANI_U8 targetIPv6Addr1Valid : 1;
4460 tANI_U8 targetIPv6Addr2Valid : 1;
4461 tANI_U8 reserved1 : 5;
4462 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004463 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004464 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004465} tHalNSOffloadParams;
4466
4467typedef PACKED_PRE struct PACKED_POST
4468{
4469 tANI_U8 offloadType;
4470 tANI_U8 enableOrDisable;
4471 PACKED_PRE union PACKED_POST
4472 {
4473 tANI_U8 hostIpv4Addr [4];
4474 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4475 } params;
4476} tHalHostOffloadReq, *tpHalHostOffloadReq;
4477
4478typedef PACKED_PRE struct PACKED_POST
4479{
4480 tHalMsgHeader header;
4481 tHalHostOffloadReq hostOffloadParams;
4482 tHalNSOffloadParams nsOffloadParams;
4483} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4484
Leo Chang397deb72013-08-22 11:33:16 -07004485
4486#ifdef FEATURE_WLAN_LPHB
4487typedef enum
4488{
4489 WIFI_HB_SET_ENABLE = 0x0001,
4490 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4491 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4492 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4493 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4494 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4495}tLowPowerHeartBeatCmdType ;
4496
4497#define MAX_FLITER_SIZE 64
4498/*---------------------------------------------------------------------------
4499 *FEATURE_WLAN_LPHB REQ
4500 *--------------------------------------------------------------------------*/
4501typedef PACKED_PRE struct PACKED_POST
4502{
4503 uint32 hostIpv4Addr;
4504 uint32 destIpv4Addr;
4505 uint16 hostPort;
4506 uint16 destPort;
4507 uint16 timeOutSec; // in seconds
4508 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004509 uint16 timePeriodSec; // in seconds
4510 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004511} tlowPowerHeartBeatParamsTcpStruct;
4512
4513typedef PACKED_PRE struct PACKED_POST
4514{
4515 uint32 hostIpv4Addr;
4516 uint32 destIpv4Addr;
4517 uint16 hostPort;
4518 uint16 destPort;
4519 uint16 timePeriodSec;// in seconds
4520 uint16 timeOutSec; // in seconds
4521 tSirMacAddr gatewayMacAddr;
4522} tlowPowerHeartBeatParamsUdpStruct;
4523
4524typedef PACKED_PRE struct PACKED_POST
4525{
4526 uint32 offset;
4527 uint32 filterLength;
4528 uint8 filter[MAX_FLITER_SIZE];
4529} tlowPowerHeartBeatFilterStruct;
4530
4531typedef PACKED_PRE struct PACKED_POST
4532{
4533 uint8 heartBeatEnable;
4534 uint8 heartBeatType; //TCP or UDP
4535} tlowPowerHeartBeatEnableStruct;
4536
4537typedef PACKED_PRE struct PACKED_POST
4538{
4539 uint8 dummy;
4540} tlowPowerHeartBeatNetworkInfoStruct;
4541
4542
4543typedef PACKED_PRE struct PACKED_POST
4544{
4545 uint8 sessionIdx;
4546 uint16 lowPowerHeartBeatCmdType;
4547 PACKED_PRE union PACKED_PRO
4548 {
4549 tlowPowerHeartBeatEnableStruct control;
4550 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4551 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4552 tlowPowerHeartBeatParamsUdpStruct udpParams;
4553 tlowPowerHeartBeatNetworkInfoStruct info;
4554 }options;
4555} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4556
4557
4558typedef PACKED_PRE struct PACKED_POST
4559{
4560 tHalMsgHeader header;
4561 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4562} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4563
4564/*---------------------------------------------------------------------------
4565 * FEATURE_WLAN_LPHB RSP
4566 *--------------------------------------------------------------------------*/
4567
4568typedef PACKED_PRE struct PACKED_POST
4569{
4570 /* success or failure */
4571 uint8 sessionIdx;
4572 uint32 status;
4573 uint16 lowPowerHeartBeatCmdType;
4574}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4575
4576typedef PACKED_PRE struct PACKED_POST
4577{
4578 tHalMsgHeader header;
4579 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4580}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4581
4582
4583/*---------------------------------------------------------------------------
4584 * FEATURE_WLAN_LPHB IND
4585 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004586#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4587#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4588
4589#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4590#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004591#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004592
Kumar Anandea78e792013-10-10 23:47:01 -07004593
4594#define WIFI_LPHB_PROTO_UDP 0x01
4595#define WIFI_LPHB_PROTO_TCP 0x02
4596
Leo Chang397deb72013-08-22 11:33:16 -07004597typedef PACKED_PRE struct PACKED_POST
4598{
4599 uint8 bssIdx;
4600 uint8 sessionIdx;
4601 uint8 protocolType; /*TCP or UDP*/
4602 uint8 eventReason;
4603
4604}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4605
4606typedef PACKED_PRE struct PACKED_POST
4607{
4608 tHalMsgHeader header;
4609 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4610}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4611
4612#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004613
4614#ifdef FEATURE_WLAN_BATCH_SCAN
4615
4616/*---------------------------------------------------------------------------
4617 * WLAN_HAL_BATCHSCAN_SET_REQ
4618 *--------------------------------------------------------------------------*/
4619typedef PACKED_PRE struct PACKED_POST
4620{
4621 /* Scan Frerquency - default to 30Sec*/
4622 tANI_U32 scanInterval;
4623 tANI_U32 numScan2Batch;
4624 tANI_U32 bestNetworks;
4625 tANI_U8 rfBand;
4626 tANI_U8 rtt;
4627} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4628
4629typedef PACKED_PRE struct PACKED_POST
4630{
4631 tHalMsgHeader header;
4632 tHalBatchScanSetParams batchScanParams;
4633} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4634
4635/*---------------------------------------------------------------------------
4636 * WLAN_HAL_BATCHSCAN_SET_RSP
4637 *--------------------------------------------------------------------------*/
4638typedef PACKED_PRE struct PACKED_POST
4639{
4640 tANI_U32 supportedMscan;
4641} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4642
4643typedef PACKED_PRE struct PACKED_POST
4644{
4645 tHalMsgHeader header;
4646 tHalBatchScanSetRspParam setBatchScanRspParam;
4647} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4648
4649/*---------------------------------------------------------------------------
4650* WLAN_HAL_BATCHSCAN_STOP_IND
4651*--------------------------------------------------------------------------*/
4652typedef PACKED_PRE struct PACKED_POST
4653{
4654 tANI_U32 param;
4655} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4656
4657typedef PACKED_PRE struct PACKED_POST
4658{
4659 tHalMsgHeader header;
4660 tHalBatchScanStopIndParam param;
4661} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4662
4663/*---------------------------------------------------------------------------
4664* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4665*--------------------------------------------------------------------------*/
4666typedef PACKED_PRE struct PACKED_POST
4667{
4668 tANI_U32 param;
4669} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4670
4671typedef PACKED_PRE struct PACKED_POST
4672{
4673 tHalMsgHeader header;
4674 tHalBatchScanTriggerResultParam param;
4675} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4676
4677/*---------------------------------------------------------------------------
4678 * WLAN_HAL_BATCHSCAN_GET_RSP
4679 *--------------------------------------------------------------------------*/
4680typedef PACKED_PRE struct PACKED_POST
4681{
4682 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004683 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004684 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304685 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004686 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4687 tANI_U32 timestamp;
4688} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4689
4690typedef PACKED_PRE struct PACKED_POST
4691{
4692 tANI_U32 scanId; /* Scan List ID. */
4693 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4694 tANI_U32 numNetworksInScanList;
4695 /* Variable data ptr: Number of AP in Scan List */
4696 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4697 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4698 tANI_U8 scanList[1];
4699} tHalBatchScanList, *tpHalBatchScanList;
4700
4701typedef PACKED_PRE struct PACKED_POST
4702{
4703 tANI_U32 timestamp;
4704 tANI_U32 numScanLists;
4705 boolean isLastResult;
4706 /* Variable Data ptr: Number of Scan Lists*/
4707 /* following isLastResult is data of type tHalBatchScanList
4708 * of sizeof(tHalBatchScanList) * numScanLists*/
4709 tANI_U8 scanResults[1];
4710} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4711
4712typedef PACKED_PRE struct PACKED_POST
4713{
4714 tHalMsgHeader header;
4715 tHalBatchScanResultIndParam resultIndMsgParam;
4716} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4717
4718#endif
4719
Jeff Johnson295189b2012-06-20 16:38:30 -07004720/*---------------------------------------------------------------------------
4721 * WLAN_HAL_KEEP_ALIVE_REQ
4722 *--------------------------------------------------------------------------*/
4723/* Packet Types. */
4724#define HAL_KEEP_ALIVE_NULL_PKT 1
4725#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4726
4727/* Enable or disable keep alive */
4728#define HAL_KEEP_ALIVE_DISABLE 0
4729#define HAL_KEEP_ALIVE_ENABLE 1
4730
4731/* Keep Alive request. */
4732typedef PACKED_PRE struct PACKED_POST
4733{
4734 tANI_U8 packetType;
4735 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304736 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004737 tHalIpv4Addr destIpv4Addr;
4738 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004739 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004740} tHalKeepAliveReq, *tpHalKeepAliveReq;
4741
4742typedef PACKED_PRE struct PACKED_POST
4743{
4744 tHalMsgHeader header;
4745 tHalKeepAliveReq KeepAliveParams;
4746} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4747
4748/*---------------------------------------------------------------------------
4749 * WLAN_HAL_SET_RSSI_THRESH_REQ
4750 *--------------------------------------------------------------------------*/
4751typedef PACKED_PRE struct PACKED_POST
4752{
4753 tANI_S8 ucRssiThreshold1 : 8;
4754 tANI_S8 ucRssiThreshold2 : 8;
4755 tANI_S8 ucRssiThreshold3 : 8;
4756 tANI_U8 bRssiThres1PosNotify : 1;
4757 tANI_U8 bRssiThres1NegNotify : 1;
4758 tANI_U8 bRssiThres2PosNotify : 1;
4759 tANI_U8 bRssiThres2NegNotify : 1;
4760 tANI_U8 bRssiThres3PosNotify : 1;
4761 tANI_U8 bRssiThres3NegNotify : 1;
4762 tANI_U8 bReserved10 : 2;
4763} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304764
Jeff Johnson295189b2012-06-20 16:38:30 -07004765typedef PACKED_PRE struct PACKED_POST
4766{
4767 tHalMsgHeader header;
4768 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004769} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004770
4771/*---------------------------------------------------------------------------
4772 * WLAN_HAL_ENTER_UAPSD_REQ
4773 *--------------------------------------------------------------------------*/
4774typedef PACKED_PRE struct PACKED_POST
4775{
4776 tANI_U8 bkDeliveryEnabled:1;
4777 tANI_U8 beDeliveryEnabled:1;
4778 tANI_U8 viDeliveryEnabled:1;
4779 tANI_U8 voDeliveryEnabled:1;
4780 tANI_U8 bkTriggerEnabled:1;
4781 tANI_U8 beTriggerEnabled:1;
4782 tANI_U8 viTriggerEnabled:1;
4783 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004784 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004785} tUapsdReqParams, *tpUapsdReqParams;
4786
4787typedef PACKED_PRE struct PACKED_POST
4788{
4789 tHalMsgHeader header;
4790 tUapsdReqParams enterUapsdParams;
4791} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4792
4793/*---------------------------------------------------------------------------
4794 * WLAN_HAL_EXIT_UAPSD_REQ
4795 *--------------------------------------------------------------------------*/
4796typedef PACKED_PRE struct PACKED_POST
4797{
4798 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004799 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004800} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4801
Kumar Anandea78e792013-10-10 23:47:01 -07004802#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4803#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004804/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004805 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4806 *--------------------------------------------------------------------------*/
4807typedef PACKED_PRE struct PACKED_POST
4808{
4809 tANI_U32 selfStaIdx:8;
4810 tANI_U32 ucPtrnId:8; // Pattern ID
4811 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4812 tANI_U32 uPtrnIntervalMs; // In msec
4813 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4814} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4815
4816typedef PACKED_PRE struct PACKED_POST
4817{
4818 tHalMsgHeader header;
4819 tHalAddPeriodicTxPtrn ptrnParams;
4820} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4821
4822/*---------------------------------------------------------------------------
4823 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4824 *--------------------------------------------------------------------------*/
4825typedef PACKED_PRE struct PACKED_POST
4826{
4827 tANI_U32 selfStaIdx:8;
4828 tANI_U32 rsvd:24;
4829 /* Bitmap of pattern IDs that needs to be deleted */
4830 tANI_U32 uPatternIdBitmap;
4831} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4832
4833typedef PACKED_PRE struct PACKED_POST
4834{
4835 tHalMsgHeader header;
4836 tHalDelPeriodicTxPtrn ptrnParams;
4837} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4838
4839/*---------------------------------------------------------------------------
4840 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4841 *--------------------------------------------------------------------------*/
4842typedef PACKED_PRE struct PACKED_POST
4843{
4844 /* Type of Failure indication */
4845 tANI_U32 bssIdx:8;
4846 tANI_U32 selfStaIdx:8;
4847 tANI_U32 rsvd:16;
4848 tANI_U32 status;
4849 tANI_U32 patternIdBitmap;
4850} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4851
4852typedef PACKED_PRE struct PACKED_POST
4853{
4854 tHalMsgHeader header;
4855 tHalPeriodicTxPtrnFwInd fwIndParams;
4856} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4857
4858/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004859 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4860 *--------------------------------------------------------------------------*/
4861#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4862#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4863
4864typedef PACKED_PRE struct PACKED_POST
4865{
4866 tANI_U8 ucPatternId; // Pattern ID
4867 // Pattern byte offset from beginning of the 802.11 packet to start of the
4868 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304869 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004870 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4871 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4872 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4873 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4874 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4875 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004876 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004877} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4878
4879typedef PACKED_PRE struct PACKED_POST
4880{
4881 tHalMsgHeader header;
4882 tHalWowlAddBcastPtrn ptrnParams;
4883} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304884
Jeff Johnsone7245742012-09-05 17:12:55 -07004885
4886
Jeff Johnson295189b2012-06-20 16:38:30 -07004887/*---------------------------------------------------------------------------
4888 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4889 *--------------------------------------------------------------------------*/
4890typedef PACKED_PRE struct PACKED_POST
4891{
4892 /* Pattern ID of the wakeup pattern to be deleted */
4893 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004894 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004895} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4896
4897typedef PACKED_PRE struct PACKED_POST
4898{
4899 tHalMsgHeader header;
4900 tHalWowlDelBcastPtrn ptrnParams;
4901} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4902
4903/*---------------------------------------------------------------------------
4904 * WLAN_HAL_ENTER_WOWL_REQ
4905 *--------------------------------------------------------------------------*/
4906typedef PACKED_PRE struct PACKED_POST
4907{
4908 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304909 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004910
4911 /* Magic pattern */
4912 tSirMacAddr magicPtrn;
4913
Dino Mycle8afbac12014-07-04 22:06:17 +05304914 /* Enables/disables packet pattern filtering in firmware.
4915 Enabling this flag enables broadcast pattern matching
4916 in Firmware. If unicast pattern matching is also desired,
4917 ucUcastPatternFilteringEnable flag must be set tot true
4918 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004919 */
4920 tANI_U8 ucPatternFilteringEnable;
4921
Dino Mycle8afbac12014-07-04 22:06:17 +05304922 /* Enables/disables unicast packet pattern filtering.
4923 This flag specifies whether we want to do pattern match
4924 on unicast packets as well and not just broadcast packets.
4925 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004926 (main controlling flag) is set to false
4927 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304928 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004929
Dino Mycle8afbac12014-07-04 22:06:17 +05304930 /* This configuration is valid only when magicPktEnable=1.
4931 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004932 * Channel Switch Action Frame.
4933 */
4934 tANI_U8 ucWowChnlSwitchRcv;
4935
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
4938 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004939 */
4940 tANI_U8 ucWowDeauthRcv;
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 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004945 */
4946 tANI_U8 ucWowDisassocRcv;
4947
Dino Mycle8afbac12014-07-04 22:06:17 +05304948 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004949 * It requests hardware to wake up when it has missed
4950 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304951 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004952 */
4953 tANI_U8 ucWowMaxMissedBeacons;
4954
Dino Mycle8afbac12014-07-04 22:06:17 +05304955 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004956 * This is a timeout value in units of microsec. It requests
4957 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304958 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004959 */
4960 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304961
Jeff Johnson295189b2012-06-20 16:38:30 -07004962 /* This configuration directs the WoW packet filtering to look for EAP-ID
4963 * requests embedded in EAPOL frames and use this as a wake source.
4964 */
4965 tANI_U8 ucWoWEAPIDRequestEnable;
4966
4967 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4968 * requests and use this as a wake source.
4969 */
4970 tANI_U8 ucWoWEAPOL4WayEnable;
4971
4972 /* This configuration allows a host wakeup on an network scan offload match.
4973 */
4974 tANI_U8 ucWowNetScanOffloadMatch;
4975
4976 /* This configuration allows a host wakeup on any GTK rekeying error.
4977 */
4978 tANI_U8 ucWowGTKRekeyError;
4979
4980 /* This configuration allows a host wakeup on BSS connection loss.
4981 */
4982 tANI_U8 ucWoWBSSConnLoss;
4983
Jeff Johnsone7245742012-09-05 17:12:55 -07004984 tANI_U8 bssIdx;
4985
Jeff Johnson295189b2012-06-20 16:38:30 -07004986} tHalWowlEnterParams, *tpHalWowlEnterParams;
4987
4988typedef PACKED_PRE struct PACKED_POST
4989{
4990 tHalMsgHeader header;
4991 tHalWowlEnterParams enterWowlParams;
4992} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4993
4994/*---------------------------------------------------------------------------
4995 * WLAN_HAL_EXIT_WOWL_REQ
4996 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004997
Jeff Johnson295189b2012-06-20 16:38:30 -07004998typedef PACKED_PRE struct PACKED_POST
4999{
Jeff Johnsone7245742012-09-05 17:12:55 -07005000 tANI_U8 bssIdx;
5001
5002} tHalWowlExitParams, *tpHalWowlExitParams;
5003
5004typedef PACKED_PRE struct PACKED_POST
5005{
5006 tHalMsgHeader header;
5007 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005008} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
5009
5010/*---------------------------------------------------------------------------
5011 * WLAN_HAL_GET_RSSI_REQ
5012 *--------------------------------------------------------------------------*/
5013typedef PACKED_PRE struct PACKED_POST
5014{
5015 tHalMsgHeader header;
5016} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
5017
Anand Kumar012623a2013-01-11 17:00:00 -08005018typedef PACKED_PRE struct PACKED_POST
5019{
5020 /* Valid STA Idx for per STA stats request */
5021 tANI_U32 staId;
5022
5023}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5024
5025
5026/*---------------------------------------------------------------------------
5027 * WLAN_HAL_GET_ROAM_RSSI_REQ
5028 *--------------------------------------------------------------------------*/
5029typedef PACKED_PRE struct PACKED_POST
5030{
5031 tHalMsgHeader header;
5032 tHalRoamRssiReqParams roamRssiReqParams;
5033} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5034
5035
Jeff Johnson295189b2012-06-20 16:38:30 -07005036/*---------------------------------------------------------------------------
5037 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5038 *--------------------------------------------------------------------------*/
5039typedef PACKED_PRE struct PACKED_POST {
5040 tANI_U8 staidx; // STA index
5041 tANI_U8 ac; // Access Category
5042 tANI_U8 up; // User Priority
5043 tANI_U32 srvInterval; // Service Interval
5044 tANI_U32 susInterval; // Suspend Interval
5045 tANI_U32 delayInterval; // Delay Interval
5046} tUapsdInfo, tpUapsdInfo;
5047
5048typedef PACKED_PRE struct PACKED_POST
5049{
5050 tHalMsgHeader header;
5051 tUapsdInfo enableUapsdAcParams;
5052} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5053
5054/*---------------------------------------------------------------------------
5055 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5056 *--------------------------------------------------------------------------*/
5057typedef PACKED_PRE struct PACKED_POST {
5058 tANI_U8 setMcstBcstFilterSetting;
5059 tANI_U8 setMcstBcstFilter;
5060} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5061
5062typedef PACKED_PRE struct PACKED_POST
5063{
5064 tHalMsgHeader header;
5065 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5066} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5067
5068/*---------------------------------------------------------------------------
5069 * WLAN_HAL_ENTER_IMPS_RSP
5070 *--------------------------------------------------------------------------*/
5071typedef PACKED_PRE struct PACKED_POST
5072{
5073 /* success or failure */
5074 tANI_U32 status;
5075} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5076
5077typedef PACKED_PRE struct PACKED_POST
5078{
5079 tHalMsgHeader header;
5080 tHalEnterImpsRspParams enterImpsRspParams;
5081} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5082
5083/*---------------------------------------------------------------------------
5084 * WLAN_HAL_EXIT_IMPS_RSP
5085 *--------------------------------------------------------------------------*/
5086typedef PACKED_PRE struct PACKED_POST
5087{
5088 /* success or failure */
5089 tANI_U32 status;
5090} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5091
5092typedef PACKED_PRE struct PACKED_POST
5093{
5094 tHalMsgHeader header;
5095 tHalExitImpsRspParams exitImpsRspParams;
5096} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5097
5098/*---------------------------------------------------------------------------
5099 * WLAN_HAL_ENTER_BMPS_RSP
5100 *--------------------------------------------------------------------------*/
5101typedef PACKED_PRE struct PACKED_POST
5102{
5103 /* success or failure */
5104 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005105 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005106} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5107
5108typedef PACKED_PRE struct PACKED_POST
5109{
5110 tHalMsgHeader header;
5111 tHalEnterBmpsRspParams enterBmpsRspParams;
5112} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5113
5114/*---------------------------------------------------------------------------
5115 * WLAN_HAL_EXIT_BMPS_RSP
5116 *--------------------------------------------------------------------------*/
5117typedef PACKED_PRE struct PACKED_POST
5118{
5119 /* success or failure */
5120 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005121 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005122} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5123
5124typedef PACKED_PRE struct PACKED_POST
5125{
5126 tHalMsgHeader header;
5127 tHalExitBmpsRspParams exitBmpsRspParams;
5128} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5129
5130/*---------------------------------------------------------------------------
5131 * WLAN_HAL_ENTER_UAPSD_RSP
5132 *--------------------------------------------------------------------------*/
5133typedef PACKED_PRE struct PACKED_POST
5134{
5135 /* success or failure */
5136 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005137 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005138}tUapsdRspParams, *tpUapsdRspParams;
5139
5140typedef PACKED_PRE struct PACKED_POST
5141{
5142 tHalMsgHeader header;
5143 tUapsdRspParams enterUapsdRspParams;
5144} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5145
5146/*---------------------------------------------------------------------------
5147 * WLAN_HAL_EXIT_UAPSD_RSP
5148 *--------------------------------------------------------------------------*/
5149typedef PACKED_PRE struct PACKED_POST
5150{
5151 /* success or failure */
5152 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005153 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005154} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5155
5156typedef PACKED_PRE struct PACKED_POST
5157{
5158 tHalMsgHeader header;
5159 tHalExitUapsdRspParams exitUapsdRspParams;
5160} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5161
5162/*---------------------------------------------------------------------------
5163 * WLAN_HAL_RSSI_NOTIFICATION_IND
5164 *--------------------------------------------------------------------------*/
5165typedef PACKED_PRE struct PACKED_POST
5166{
5167 tANI_U32 bRssiThres1PosCross : 1;
5168 tANI_U32 bRssiThres1NegCross : 1;
5169 tANI_U32 bRssiThres2PosCross : 1;
5170 tANI_U32 bRssiThres2NegCross : 1;
5171 tANI_U32 bRssiThres3PosCross : 1;
5172 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005173 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005174 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005175 tANI_U32 isBTCoexCompromise : 1;
5176 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005177 tANI_S8 refRssiThreshold1;
5178 tANI_S8 refRssiThreshold2;
5179 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005180} tHalRSSINotification, *tpHalRSSINotification;
5181
5182typedef PACKED_PRE struct PACKED_POST
5183{
5184 tHalMsgHeader header;
5185 tHalRSSINotification rssiNotificationParams;
5186} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5187
5188/*---------------------------------------------------------------------------
5189 * WLAN_HAL_GET_RSSI_RSP
5190 *--------------------------------------------------------------------------*/
5191typedef PACKED_PRE struct PACKED_POST
5192{
5193 /* success or failure */
5194 tANI_U32 status;
5195 tANI_S8 rssi;
5196} tHalGetRssiParams, *tpHalGetRspParams;
5197
5198typedef PACKED_PRE struct PACKED_POST
5199{
5200 tHalMsgHeader header;
5201 tHalGetRssiParams rssiRspParams;
5202} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5203
5204/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005205 * WLAN_HAL_GET_ROAM_RSSI_RSP
5206 *--------------------------------------------------------------------------*/
5207typedef PACKED_PRE struct PACKED_POST
5208{
5209 /* success or failure */
5210 tANI_U32 status;
5211
5212 tANI_U8 staId;
5213 tANI_S8 rssi;
5214} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5215
5216typedef PACKED_PRE struct PACKED_POST
5217{
5218 tHalMsgHeader header;
5219 tHalGetRoamRssiParams roamRssiRspParams;
5220} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5221
5222/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005223 * WLAN_HAL_ENTER_WOWL_RSP
5224 *--------------------------------------------------------------------------*/
5225typedef PACKED_PRE struct PACKED_POST
5226{
5227 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005228 tANI_U32 status;
5229 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005230} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5231
5232typedef PACKED_PRE struct PACKED_POST
5233{
5234 tHalMsgHeader header;
5235 tHalEnterWowlRspParams enterWowlRspParams;
5236} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5237
5238/*---------------------------------------------------------------------------
5239 * WLAN_HAL_EXIT_WOWL_RSP
5240 *--------------------------------------------------------------------------*/
5241typedef PACKED_PRE struct PACKED_POST
5242{
5243 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005244 tANI_U32 status;
5245 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005246} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5247
5248typedef PACKED_PRE struct PACKED_POST
5249{
5250 tHalMsgHeader header;
5251 tHalExitWowlRspParams exitWowlRspParams;
5252} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5253
5254/*---------------------------------------------------------------------------
5255 * WLAN_HAL_ADD_BCN_FILTER_RSP
5256 *--------------------------------------------------------------------------*/
5257typedef PACKED_PRE struct PACKED_POST
5258{
5259 /* success or failure */
5260 tANI_U32 status;
5261} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5262
5263typedef PACKED_PRE struct PACKED_POST
5264{
5265 tHalMsgHeader header;
5266 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5267} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5268
5269/*---------------------------------------------------------------------------
5270 * WLAN_HAL_REM_BCN_FILTER_RSP
5271 *--------------------------------------------------------------------------*/
5272typedef PACKED_PRE struct PACKED_POST
5273{
5274 /* success or failure */
5275 tANI_U32 status;
5276} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5277
5278typedef PACKED_PRE struct PACKED_POST
5279{
5280 tHalMsgHeader header;
5281 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5282} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5283
5284/*---------------------------------------------------------------------------
5285 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5286 *--------------------------------------------------------------------------*/
5287typedef PACKED_PRE struct PACKED_POST
5288{
5289 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005290 tANI_U32 status;
5291 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005292} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5293
5294typedef PACKED_PRE struct PACKED_POST
5295{
5296 tHalMsgHeader header;
5297 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5298} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5299
5300/*---------------------------------------------------------------------------
5301 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5302 *--------------------------------------------------------------------------*/
5303typedef PACKED_PRE struct PACKED_POST
5304{
5305 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005306 tANI_U32 status;
5307 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005308} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5309
5310typedef PACKED_PRE struct PACKED_POST
5311{
5312 tHalMsgHeader header;
5313 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5314} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5315
5316/*---------------------------------------------------------------------------
5317 * WLAN_HAL_HOST_OFFLOAD_RSP
5318 *--------------------------------------------------------------------------*/
5319typedef PACKED_PRE struct PACKED_POST
5320{
5321 /* success or failure */
5322 tANI_U32 status;
5323} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5324
5325typedef PACKED_PRE struct PACKED_POST
5326{
5327 tHalMsgHeader header;
5328 tHalHostOffloadRspParams hostOffloadRspParams;
5329} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5330
5331/*---------------------------------------------------------------------------
5332 * WLAN_HAL_KEEP_ALIVE_RSP
5333 *--------------------------------------------------------------------------*/
5334typedef PACKED_PRE struct PACKED_POST
5335{
5336 /* success or failure */
5337 tANI_U32 status;
5338} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5339
5340typedef PACKED_PRE struct PACKED_POST
5341{
5342 tHalMsgHeader header;
5343 tHalKeepAliveRspParams keepAliveRspParams;
5344} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5345
5346/*---------------------------------------------------------------------------
5347 * WLAN_HAL_SET_RSSI_THRESH_RSP
5348 *--------------------------------------------------------------------------*/
5349typedef PACKED_PRE struct PACKED_POST
5350{
5351 /* success or failure */
5352 tANI_U32 status;
5353} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5354
5355typedef PACKED_PRE struct PACKED_POST
5356{
5357 tHalMsgHeader header;
5358 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5359} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5360
5361/*---------------------------------------------------------------------------
5362 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5363 *--------------------------------------------------------------------------*/
5364typedef PACKED_PRE struct PACKED_POST
5365{
5366 /* success or failure */
5367 tANI_U32 status;
5368} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5369
5370typedef PACKED_PRE struct PACKED_POST
5371{
5372 tHalMsgHeader header;
5373 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5374} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5375
5376/*---------------------------------------------------------------------------
5377 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5378 *--------------------------------------------------------------------------*/
5379typedef PACKED_PRE struct PACKED_POST
5380{
5381 /* success or failure */
5382 tANI_U32 status;
5383} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5384
5385typedef PACKED_PRE struct PACKED_POST
5386{
5387 tHalMsgHeader header;
5388 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5389} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5390
5391/*---------------------------------------------------------------------------
5392 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5393 *--------------------------------------------------------------------------*/
5394
5395typedef PACKED_PRE struct PACKED_POST
5396{
5397 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5398 //the request has power constraints, this should be applied only to that session
5399 tSirMacAddr selfStaMacAddr;
5400 //In request,
5401 //power == MaxTx power to be used.
5402 tPowerdBm power;
5403
5404}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5405
5406
5407typedef PACKED_PRE struct PACKED_POST
5408{
5409 tHalMsgHeader header;
5410 tSetMaxTxPwrParams setMaxTxPwrParams;
5411}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5412
5413/*---------------------------------------------------------------------------
5414*WLAN_HAL_SET_MAX_TX_POWER_RSP
5415*--------------------------------------------------------------------------*/
5416
5417typedef PACKED_PRE struct PACKED_POST
5418{
5419 //power == tx power used for management frames.
5420 tPowerdBm power;
5421
5422 /* success or failure */
5423 tANI_U32 status;
5424}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5425
5426typedef PACKED_PRE struct PACKED_POST
5427{
5428 tHalMsgHeader header;
5429 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5430}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5431
Kumar Anandea78e792013-10-10 23:47:01 -07005432
Jeff Johnson295189b2012-06-20 16:38:30 -07005433/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005434 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5435 *--------------------------------------------------------------------------*/
5436
5437/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5438typedef enum
5439{
5440 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5441 // For 2.4GHz or 5GHz bands
5442 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5443 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5444 // End of valid enums
5445 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5446}tHalSetMaxTxPwrBandInfo;
5447
5448typedef PACKED_PRE struct PACKED_POST
5449{
5450 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005451 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005452}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5453
Kumar Anandea78e792013-10-10 23:47:01 -07005454
Arif Hussain36fda162013-08-30 14:46:57 -07005455typedef PACKED_PRE struct PACKED_POST
5456{
5457 tHalMsgHeader header;
5458 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5459}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5460
5461/*---------------------------------------------------------------------------
5462*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5463*--------------------------------------------------------------------------*/
5464
5465typedef PACKED_PRE struct PACKED_POST
5466{
5467 //power == tx power used for management frames.
5468 tPowerdBm power;
5469
5470 /* success or failure */
5471 tANI_U32 status;
5472}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5473
5474typedef PACKED_PRE struct PACKED_POST
5475{
5476 tHalMsgHeader header;
5477 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5478}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5479
5480/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005481 *WLAN_HAL_SET_TX_POWER_REQ
5482 *--------------------------------------------------------------------------*/
5483
5484typedef PACKED_PRE struct PACKED_POST
5485{
5486 /* TX Power in milli watts */
5487 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005488 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005489}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5490
5491
5492typedef PACKED_PRE struct PACKED_POST
5493{
5494 tHalMsgHeader header;
5495 tSetTxPwrReqParams setTxPwrReqParams;
5496}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5497
5498/*---------------------------------------------------------------------------
5499*WLAN_HAL_SET_TX_POWER_RSP
5500*--------------------------------------------------------------------------*/
5501
5502typedef PACKED_PRE struct PACKED_POST
5503{
5504 /* success or failure */
5505 tANI_U32 status;
5506}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5507
5508typedef PACKED_PRE struct PACKED_POST
5509{
5510 tHalMsgHeader header;
5511 tSetTxPwrRspParams setTxPwrRspParams;
5512}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5513
5514/*---------------------------------------------------------------------------
5515 *WLAN_HAL_GET_TX_POWER_REQ
5516 *--------------------------------------------------------------------------*/
5517
5518typedef PACKED_PRE struct PACKED_POST
5519{
5520 tANI_U8 staId;
5521}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5522
5523typedef PACKED_PRE struct PACKED_POST
5524{
5525 tHalMsgHeader header;
5526 tGetTxPwrReqParams getTxPwrReqParams;
5527}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5528
5529/*---------------------------------------------------------------------------
5530*WLAN_HAL_GET_TX_POWER_RSP
5531*--------------------------------------------------------------------------*/
5532
5533typedef PACKED_PRE struct PACKED_POST
5534{
5535 /* success or failure */
5536 tANI_U32 status;
5537
5538 /* TX Power in milli watts */
5539 tANI_U32 txPower;
5540}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5541
5542typedef PACKED_PRE struct PACKED_POST
5543{
5544 tHalMsgHeader header;
5545 tGetTxPwrRspParams getTxPwrRspParams;
5546}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5547
5548#ifdef WLAN_FEATURE_P2P
5549/*---------------------------------------------------------------------------
5550 *WLAN_HAL_SET_P2P_GONOA_REQ
5551 *--------------------------------------------------------------------------*/
5552
5553typedef PACKED_PRE struct PACKED_POST
5554{
5555 tANI_U8 opp_ps;
5556 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305557 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005558 tANI_U32 duration;
5559 tANI_U32 interval;
5560 tANI_U32 single_noa_duration;
5561 tANI_U8 psSelection;
5562}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5563
5564
5565typedef PACKED_PRE struct PACKED_POST
5566{
5567 tHalMsgHeader header;
5568 tSetP2PGONOAParams setP2PGONOAParams;
5569}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5570
5571/*---------------------------------------------------------------------------
5572*WLAN_HAL_SET_P2P_GONOA_RSP
5573*--------------------------------------------------------------------------*/
5574
5575typedef PACKED_PRE struct PACKED_POST
5576{
5577 /* success or failure */
5578 tANI_U32 status;
5579}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5580
5581typedef PACKED_PRE struct PACKED_POST
5582{
5583 tHalMsgHeader header;
5584 tSetP2PGONOARspParams setP2PGONOARspParams;
5585}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5586#endif
5587
5588/*---------------------------------------------------------------------------
5589 *WLAN_HAL_ADD_SELF_STA_REQ
5590 *--------------------------------------------------------------------------*/
5591
5592typedef PACKED_PRE struct PACKED_POST
5593{
5594 tSirMacAddr selfMacAddr;
5595 tANI_U32 status;
5596}tAddStaSelfParams, *tpAddStaSelfParams;
5597
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005598typedef PACKED_PRE struct PACKED_POST
5599{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005600 tHalMsgHeader header;
5601 tAddStaSelfParams addStaSelfParams;
5602}tAddStaSelfReq, *tpAddStaSelfReq;
5603
5604/* This V1 structure carries additionally the IFACE PERSONA
5605 of the interface as compared to the legacy control
5606 message */
5607typedef PACKED_PRE struct PACKED_POST
5608{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005609 tSirMacAddr selfMacAddr;
5610 tANI_U32 status;
5611 tHalIfacePersona iface_persona;
5612}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005613
5614typedef PACKED_PRE struct PACKED_POST
5615{
5616 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005617 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005618}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005619
5620/*---------------------------------------------------------------------------
5621*WLAN_HAL_ADD_SELF_STA_RSP
5622*--------------------------------------------------------------------------*/
5623
5624typedef PACKED_PRE struct PACKED_POST
5625{
5626 /* success or failure */
5627 tANI_U32 status;
5628
5629 /*Self STA Index */
5630 tANI_U8 selfStaIdx;
5631
5632 /* DPU Index (IGTK, PTK, GTK all same) */
5633 tANI_U8 dpuIdx;
5634
5635 /* DPU Signature */
5636 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305637
Jeff Johnson295189b2012-06-20 16:38:30 -07005638}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5639
5640typedef PACKED_PRE struct PACKED_POST
5641{
5642 tHalMsgHeader header;
5643 tAddStaSelfRspParams addStaSelfRspParams;
5644}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5645
5646
5647/*---------------------------------------------------------------------------
5648 WLAN_HAL_DEL_STA_SELF_REQ
5649---------------------------------------------------------------------------*/
5650
5651typedef PACKED_PRE struct PACKED_POST
5652{
5653 tSirMacAddr selfMacAddr;
5654
5655}tDelStaSelfParams, *tpDelStaSelfParams;
5656
5657typedef PACKED_PRE struct PACKED_POST
5658{
5659 tHalMsgHeader header;
5660 tDelStaSelfParams delStaSelfParams;
5661} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5662
5663
5664/*---------------------------------------------------------------------------
5665 WLAN_HAL_DEL_STA_SELF_RSP
5666---------------------------------------------------------------------------*/
5667
5668typedef PACKED_PRE struct PACKED_POST
5669{
5670 /*success or failure */
5671 tANI_U32 status;
5672
5673 tSirMacAddr selfMacAddr;
5674}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5675
5676typedef PACKED_PRE struct PACKED_POST
5677{
5678 tHalMsgHeader header;
5679 tDelStaSelfRspParams delStaSelfRspParams;
5680} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5681
5682
5683#ifdef WLAN_FEATURE_VOWIFI_11R
5684
5685/*---------------------------------------------------------------------------
5686 *WLAN_HAL_AGGR_ADD_TS_REQ
5687 *--------------------------------------------------------------------------*/
5688
5689typedef PACKED_PRE struct PACKED_POST
5690{
5691 /* Station Index */
5692 tANI_U16 staIdx;
5693
5694 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5695 /* This will carry the bitmap with the bit positions representing different AC.s*/
5696 tANI_U16 tspecIdx;
5697
5698 /* Tspec info per AC To program TPE with required parameters */
5699 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5700
5701 /* U-APSD Flags: 1b per AC. Encoded as follows:
5702 b7 b6 b5 b4 b3 b2 b1 b0 =
5703 X X X X BE BK VI VO */
5704 tANI_U8 uAPSD;
5705
5706 /* These parameters are for all the access categories */
5707 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5708 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5709 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5710
5711}tAggrAddTsParams, *tpAggrAddTsParams;
5712
5713
5714typedef PACKED_PRE struct PACKED_POST
5715{
5716 tHalMsgHeader header;
5717 tAggrAddTsParams aggrAddTsParam;
5718}tAggrAddTsReq, *tpAggrAddTsReq;
5719
5720/*---------------------------------------------------------------------------
5721*WLAN_HAL_AGGR_ADD_TS_RSP
5722*--------------------------------------------------------------------------*/
5723
5724typedef PACKED_PRE struct PACKED_POST
5725{
5726 /* success or failure */
5727 tANI_U32 status0;
5728 /* FIXME PRIMA for future use for 11R */
5729 tANI_U32 status1;
5730}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5731
5732typedef PACKED_PRE struct PACKED_POST
5733{
5734 tHalMsgHeader header;
5735 tAggrAddTsRspParams aggrAddTsRspParam;
5736}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5737
5738#endif
5739
5740/*---------------------------------------------------------------------------
5741 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5742 *--------------------------------------------------------------------------*/
5743typedef PACKED_PRE struct PACKED_POST
5744{
5745 tANI_U8 isAppsCpuAwake;
5746} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5747
5748typedef PACKED_PRE struct PACKED_POST
5749{
5750 tHalMsgHeader header;
5751 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5752} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5753
5754/*---------------------------------------------------------------------------
5755 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5756 *--------------------------------------------------------------------------*/
5757typedef PACKED_PRE struct PACKED_POST
5758{
5759 /* success or failure */
5760 tANI_U32 status;
5761} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5762
5763typedef PACKED_PRE struct PACKED_POST
5764{
5765 tHalMsgHeader header;
5766 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5767} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5768/*---------------------------------------------------------------------------
5769 * WLAN_HAL_DUMP_COMMAND_REQ
5770 *--------------------------------------------------------------------------*/
5771
5772typedef PACKED_PRE struct PACKED_POST
5773{
5774 tANI_U32 argument1;
5775 tANI_U32 argument2;
5776 tANI_U32 argument3;
5777 tANI_U32 argument4;
5778 tANI_U32 argument5;
5779
5780}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5781
5782typedef PACKED_PRE struct PACKED_POST
5783{
5784 tHalMsgHeader header;
5785 tHalDumpCmdReqParams dumpCmdReqParams;
5786} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5787
5788/*---------------------------------------------------------------------------
5789 * WLAN_HAL_DUMP_COMMAND_RSP
5790 *--------------------------------------------------------------------------*/
5791
5792typedef PACKED_PRE struct PACKED_POST
5793{
5794 /* success or failure */
5795 tANI_U32 status;
5796 /*Length of the responce message*/
5797 tANI_U32 rspLength;
5798 /*FiXME: Currently considering the the responce will be less than 100bytes */
5799 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305800
Jeff Johnson295189b2012-06-20 16:38:30 -07005801} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5802
5803typedef PACKED_PRE struct PACKED_POST
5804{
5805 tHalMsgHeader header;
5806 tHalDumpCmdRspParams dumpCmdRspParams;
5807} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5808
5809/*---------------------------------------------------------------------------
5810 *WLAN_HAL_COEX_IND
5811 *-------------------------------------------------------------------------*/
5812#define WLAN_COEX_IND_DATA_SIZE (4)
5813#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5814#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005815#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5816#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005817#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5818#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305819#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5820#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305821#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005822
5823typedef PACKED_PRE struct PACKED_POST
5824{
5825 /*Coex Indication Type*/
5826 tANI_U32 coexIndType;
5827
5828 /*Coex Indication Data*/
5829 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5830}tCoexIndParams,*tpCoexIndParams;
5831
5832typedef PACKED_PRE struct PACKED_POST
5833{
5834 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305835 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005836}tCoexIndMsg, *tpCoexIndMsg;
5837
5838/*---------------------------------------------------------------------------
5839 *WLAN_HAL_OTA_TX_COMPL_IND
5840 *-------------------------------------------------------------------------*/
5841
5842typedef PACKED_PRE struct PACKED_POST
5843{
5844 /*Tx Complete Indication Success or Failure*/
5845 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305846 /* Dialog token */
5847 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005848}tTxComplParams,*tpTxComplParams;
5849
5850typedef PACKED_PRE struct PACKED_POST
5851{
5852 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305853 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005854}tTxComplIndMsg, *tpTxComplIndMsg;
5855
5856/*---------------------------------------------------------------------------
5857 * WLAN_HAL_HOST_SUSPEND_IND
5858 *-------------------------------------------------------------------------*/
5859
5860typedef PACKED_PRE struct PACKED_POST
5861{
5862 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305863 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005864}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5865
5866typedef PACKED_PRE struct PACKED_POST
5867{
5868 tHalMsgHeader header;
5869 tHalWlanHostSuspendIndParam suspendIndParams;
5870}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5871
5872/*---------------------------------------------------------------------------
5873 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5874 *-------------------------------------------------------------------------*/
5875
5876typedef PACKED_PRE struct PACKED_POST
5877{
5878 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305879 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005880}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5881
5882typedef PACKED_PRE struct PACKED_POST
5883{
5884 tHalMsgHeader header;
5885 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5886}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5887
5888#ifdef WLAN_FEATURE_P2P
5889/*---------------------------------------------------------------------------
5890 *WLAN_HAL_NOA_ATTR_IND
5891 *-------------------------------------------------------------------------*/
5892
5893typedef PACKED_PRE struct PACKED_POST
5894{
5895 tANI_U8 index ;
5896 tANI_U8 oppPsFlag ;
5897 tANI_U16 ctWin ;
5898
5899 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005900 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005901 tANI_U32 uNoa1Duration;
5902 tANI_U32 uNoa1Interval;
5903 tANI_U32 uNoa1StartTime;
5904
5905 tANI_U16 uNoa2IntervalCnt;
5906 tANI_U16 rsvd2;
5907 tANI_U32 uNoa2Duration;
5908 tANI_U32 uNoa2Interval;
5909 tANI_U32 uNoa2StartTime;
5910
5911 tANI_U32 status;
5912}tNoaAttrIndParams, *tpNoaAttrIndParams;
5913
5914typedef PACKED_PRE struct PACKED_POST
5915{
5916 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305917 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005918}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005919
5920/*---------------------------------------------------------------------------
5921 *WLAN_HAL_NOA_START_IND
5922 *-------------------------------------------------------------------------*/
5923
5924typedef PACKED_PRE struct PACKED_POST
5925{
5926 tANI_U32 status;
5927 tANI_U32 bssIdx;
5928}tNoaStartIndParams, *tpNoaStartIndParams;
5929
5930typedef PACKED_PRE struct PACKED_POST
5931{
5932 tHalMsgHeader header;
5933 tNoaStartIndParams noaStartIndParams;
5934}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005935#endif
5936
5937/*---------------------------------------------------------------------------
5938 * WLAN_HAL_HOST_RESUME_REQ
5939 *-------------------------------------------------------------------------*/
5940
5941typedef PACKED_PRE struct PACKED_POST
5942{
5943 tANI_U8 configuredMcstBcstFilterSetting;
5944}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5945
5946typedef PACKED_PRE struct PACKED_POST
5947{
5948 tHalMsgHeader header;
5949 tHalWlanHostResumeReqParam resumeReqParams;
5950}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5951
5952/*---------------------------------------------------------------------------
5953 * WLAN_HAL_HOST_RESUME_RSP
5954 *--------------------------------------------------------------------------*/
5955typedef PACKED_PRE struct PACKED_POST
5956{
5957 /* success or failure */
5958 tANI_U32 status;
5959} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5960
5961typedef PACKED_PRE struct PACKED_POST
5962{
5963 tHalMsgHeader header;
5964 tHalHostResumeRspParams hostResumeRspParams;
5965} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5966
Anand Kumar012623a2013-01-11 17:00:00 -08005967typedef PACKED_PRE struct PACKED_POST
5968{
5969 tANI_U16 staIdx;
5970 // Peer MAC Address, whose BA session has timed out
5971 tSirMacAddr peerMacAddr;
5972 // TID for which a BA session timeout is being triggered
5973 tANI_U8 baTID;
5974 // DELBA direction
5975 // 1 - Originator
5976 // 0 - Recipient
5977 tANI_U8 baDirection;
5978 tANI_U32 reasonCode;
5979 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5980} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5981
5982typedef PACKED_PRE struct PACKED_POST
5983{
5984 tHalMsgHeader header;
5985 tHalWlanDelBaIndMsg hostdelBaParam;
5986} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5987
Jeff Johnson295189b2012-06-20 16:38:30 -07005988/*---------------------------------------------------------------------------
5989 *PNO Messages
5990 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005991/* Max number of channels that a network can be found on*/
5992/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5993 * be changed at same time
5994 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005995#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005996
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305997/*Max number of channels that a network can be found on*/
5998#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5999
Jeff Johnson295189b2012-06-20 16:38:30 -07006000/*Maximum numbers of networks supported by PNO*/
6001#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
6002
6003/*The number of scan time intervals that can be programmed into PNO*/
6004#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
6005
6006/*Maximum size of the probe template*/
6007#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
6008
Dino Mycle8afbac12014-07-04 22:06:17 +05306009/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07006010 Immediate - scanning will start immediately and PNO procedure will
6011 be repeated based on timer
6012 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006013 Resume - scanning will start on system resume
6014 Delay - start the scan timer to trigger PNO scan
6015 */
Jeff Johnson295189b2012-06-20 16:38:30 -07006016typedef enum
6017{
6018 ePNO_MODE_IMMEDIATE,
6019 ePNO_MODE_ON_SUSPEND,
6020 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306021 ePNO_MODE_DELAY,
6022 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006023 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6024} ePNOMode;
6025
6026/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306027typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006028{
Dino Mycle8afbac12014-07-04 22:06:17 +05306029 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006030 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306031
Jeff Johnson295189b2012-06-20 16:38:30 -07006032 // Upper layer authentication types
6033 eAUTH_TYPE_WPA = 2,
6034 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306035
Jeff Johnson295189b2012-06-20 16:38:30 -07006036 eAUTH_TYPE_RSN = 4,
6037 eAUTH_TYPE_RSN_PSK = 5,
6038 eAUTH_TYPE_FT_RSN = 6,
6039 eAUTH_TYPE_FT_RSN_PSK = 7,
6040 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6041 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006042 eAUTH_TYPE_CCKM_WPA = 10,
6043 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306044 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6045 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306046
Jeff Johnson295189b2012-06-20 16:38:30 -07006047 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6048
6049}tAuthType;
6050
6051/* Encryption type */
6052typedef enum eEdType
6053{
6054 eED_ANY = 0,
6055 eED_NONE = 1,
6056 eED_WEP = 2,
6057 eED_TKIP = 3,
6058 eED_CCMP = 4,
6059 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306060
Jeff Johnson295189b2012-06-20 16:38:30 -07006061 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6062} tEdType;
6063
6064/* SSID broadcast type */
6065typedef enum eSSIDBcastType
6066{
6067 eBCAST_UNKNOWN = 0,
6068 eBCAST_NORMAL = 1,
6069 eBCAST_HIDDEN = 2,
6070
6071 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6072} tSSIDBcastType;
6073
Dino Mycle8afbac12014-07-04 22:06:17 +05306074/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006075 The network description for which PNO will have to look for
6076*/
6077typedef PACKED_PRE struct PACKED_POST
6078{
6079 /*SSID of the BSS*/
6080 tSirMacSSid ssId;
6081
6082 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306083 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006084
6085 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306086 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006087
Dino Mycle8afbac12014-07-04 22:06:17 +05306088 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006089 0 - if all channels */
6090 tANI_U8 ucChannelCount;
6091 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6092
6093 /*Indicates the RSSI threshold for the network to be considered*/
6094 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306095}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006096
6097typedef PACKED_PRE struct PACKED_POST
6098{
6099 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306100 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006101
Dino Mycle8afbac12014-07-04 22:06:17 +05306102 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006103 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306104 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006105
Dino Mycle8afbac12014-07-04 22:06:17 +05306106 /*e.g: 2 3
6107 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006108 - it will wait 2s between consecutive scans for 3 times
6109 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306110}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006111
Dino Mycle8afbac12014-07-04 22:06:17 +05306112/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006113 The network parameters to be sent to the PNO algorithm
6114*/
6115typedef PACKED_PRE struct PACKED_POST
6116{
6117 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306118 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006119
Dino Mycle8afbac12014-07-04 22:06:17 +05306120 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006121 two consecutive scan procedures
6122 If the desired is for a uniform timer that fires always at the exact same
6123 interval - one single value is to be set
6124 If there is a desire for a more complex - telescopic like timer multiple
6125 values can be set - once PNO reaches the end of the array it will
6126 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306127 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006128
6129}tScanTimersType;
6130
6131typedef PACKED_PRE struct PACKED_POST {
6132
6133 /*Enable PNO*/
6134 tANI_U32 enable;
6135
6136 /*Immediate, On Suspend, On Resume*/
6137 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306138
Jeff Johnson295189b2012-06-20 16:38:30 -07006139 /*Number of networks sent for PNO*/
6140 tANI_U32 ucNetworksCount;
6141
6142 /*The networks that PNO needs to look for*/
6143 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6144
6145 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306146 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006147
6148 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306149 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006150 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6151
6152 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306153 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006154 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6155
6156} tPrefNetwListParams, * tpPrefNetwListParams;
6157
6158/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306159 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006160*/
6161typedef PACKED_PRE struct PACKED_POST
6162{
6163 tHalMsgHeader header;
6164 tPrefNetwListParams prefNetwListParams;
6165} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6166
6167
Dino Mycle8afbac12014-07-04 22:06:17 +05306168/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006169 The network description for which PNO will have to look for
6170*/
6171typedef PACKED_PRE struct PACKED_POST
6172{
6173 /*SSID of the BSS*/
6174 tSirMacSSid ssId;
6175
6176 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306177 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006178
6179 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306180 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006181
6182 /*SSID broadcast type, normal, hidden or unknown*/
6183 tSSIDBcastType bcastNetworkType;
6184
Dino Mycle8afbac12014-07-04 22:06:17 +05306185 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006186 0 - if all channels */
6187 tANI_U8 ucChannelCount;
6188 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6189
6190 /*Indicates the RSSI threshold for the network to be considered*/
6191 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306192}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006193
6194typedef PACKED_PRE struct PACKED_POST {
6195
6196 /*Enable PNO*/
6197 tANI_U32 enable;
6198
6199 /*Immediate, On Suspend, On Resume*/
6200 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306201
Jeff Johnson295189b2012-06-20 16:38:30 -07006202 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306203 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006204
6205 /*The networks that PNO needs to look for*/
6206 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6207
6208 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306209 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006210
6211 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306212 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006213 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6214
6215 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306216 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006217 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6218
6219} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6220
6221/*
6222 Preferred network list request new
6223*/
6224typedef PACKED_PRE struct PACKED_POST
6225{
6226 tHalMsgHeader header;
6227 tPrefNetwListParamsNew prefNetwListParams;
6228} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6229
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006230#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6231typedef PACKED_PRE struct PACKED_POST
6232{
6233 tSirMacSSid ssId;
6234 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6235 tANI_U32 authentication;
6236 tEdType encryption;
6237 tEdType mcencryption;
6238 tANI_U8 ChannelCount;
6239 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6240}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006241
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006242typedef PACKED_PRE struct PACKED_POST
6243{
6244 tANI_U8 mdiePresent;
6245 tANI_U16 mobilityDomain;
6246}tMobilityDomainInfo;
6247
6248typedef PACKED_PRE struct PACKED_POST {
6249 eAniBoolean RoamScanOffloadEnabled;
6250 tANI_S8 LookupThreshold;
6251 tANI_U8 RoamRssiDiff;
6252 tANI_U8 ChannelCacheType;
6253 tANI_U8 Command;
6254 tANI_U8 StartScanReason;
6255 tANI_U16 NeighborScanTimerPeriod;
6256 tANI_U16 NeighborRoamScanRefreshPeriod;
6257 tANI_U16 NeighborScanChannelMinTime;
6258 tANI_U16 NeighborScanChannelMaxTime;
6259 tANI_U16 EmptyRefreshScanPeriod;
6260 tANI_U8 ValidChannelCount;
6261 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006262 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006263
6264 tANI_U16 us24GProbeSize;
6265 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6266 tANI_U16 us5GProbeSize;
6267 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6268 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006269 tANI_U8 nProbes;
6270 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006271 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006272 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006273 tANI_U8 RoamOffloadEnabled;
6274 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6275 tANI_U8 Prefer5GHz;
6276 tANI_U8 RoamRssiCatGap;
6277 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006278 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6279 tRoamNetworkType ConnectedNetwork;
6280 tMobilityDomainInfo MDID;
6281} tRoamCandidateListParams, * tpRoamCandidateListParams;
6282
6283typedef PACKED_PRE struct PACKED_POST
6284{
Kumar Anandea78e792013-10-10 23:47:01 -07006285 tHalMsgHeader header;
6286 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006287} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6288
6289typedef PACKED_PRE struct PACKED_POST
6290{
Kumar Anandea78e792013-10-10 23:47:01 -07006291 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006292
Kumar Anandea78e792013-10-10 23:47:01 -07006293 /* status of the request - just to indicate that PNO has acknowledged
6294 * the request and will start scanning */
6295 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006296} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6297#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006298
6299/*
6300 Preferred network list response
6301*/
6302typedef PACKED_PRE struct PACKED_POST
6303{
6304 tHalMsgHeader header;
6305
6306 /* status of the request - just to indicate that PNO has acknowledged
6307 * the request and will start scanning*/
6308 tANI_U32 status;
6309} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6310
6311/*
6312 Preferred network indication parameters
6313*/
6314typedef PACKED_PRE struct PACKED_POST {
6315
6316 /*Network that was found with the highest RSSI*/
6317 tSirMacSSid ssId;
6318
6319 /*Indicates the RSSI */
6320 tANI_U8 rssi;
6321
6322 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6323 tANI_U16 frameLength;
6324
6325} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6326
6327/*
6328 Preferred network found indication
6329*/
6330typedef PACKED_PRE struct PACKED_POST {
6331
6332 tHalMsgHeader header;
6333 tPrefNetwFoundParams prefNetwFoundParams;
6334} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6335
6336
6337typedef PACKED_PRE struct PACKED_POST {
6338
6339 /*RSSI Threshold*/
6340 tANI_U8 ucRssiThreshold;
6341
6342} tRssiFilterParams, * tpRssiFilterParams;
6343
Jeff Johnson295189b2012-06-20 16:38:30 -07006344/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306345 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006346*/
6347typedef PACKED_PRE struct PACKED_POST
6348{
6349 tHalMsgHeader header;
6350 tRssiFilterParams prefRSSIFilterParams;
6351} tSetRssiFilterReq, *tpSetRssiFilterReq;
6352
6353/*
6354 Set RSSI filter resp
6355*/
6356typedef PACKED_PRE struct PACKED_POST{
6357 tHalMsgHeader header;
6358 /*status of the request */
6359 tANI_U32 status;
6360} tSetRssiFilterResp, *tpSetRssiFilterResp;
6361/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306362 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006363*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306364typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006365{
6366
6367 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306368 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006369
6370 /*Lets PNO know that host has determined the regulatory domain*/
6371 tANI_U8 b11dResolved;
6372
6373 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306374 tANI_U8 ucChannelCount;
6375 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006376
6377 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306378 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006379
6380 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306381 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006382
6383 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306384 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006385
6386 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306387 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006388
6389 /*Cb State*/
6390 ePhyChanBondState cbState;
6391
6392} tUpdateScanParams, * tpUpdateScanParams;
6393
6394/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306395 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306396*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306397typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306398{
6399
6400 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306401 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306402
6403 /*Lets PNO know that host has determined the regulatory domain*/
6404 tANI_U8 b11dResolved;
6405
6406 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306407 tANI_U8 ucChannelCount;
6408 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306409
6410 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306411 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306412
6413 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306414 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306415
6416 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306417 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306418
6419 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306420 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306421
6422 /*Cb State*/
6423 ePhyChanBondState cbState;
6424
6425} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6426
6427/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006428 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306429 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006430*/
6431typedef PACKED_PRE struct PACKED_POST{
6432
6433 tHalMsgHeader header;
6434 tUpdateScanParams scanParams;
6435} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6436
6437/*
6438 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306439 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006440*/
6441typedef PACKED_PRE struct PACKED_POST{
6442
6443 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306444 tUpdateScanParamsEx scanParams;
6445} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6446
6447/*
6448 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306449 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306450*/
6451typedef PACKED_PRE struct PACKED_POST{
6452
6453 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006454
6455 /*status of the request */
6456 tANI_U32 status;
6457
6458} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6459
6460/*---------------------------------------------------------------------------
6461 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6462 *--------------------------------------------------------------------------*/
6463typedef PACKED_PRE struct PACKED_POST
6464{
6465 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6466 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6467 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6468 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6469} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6470
6471typedef PACKED_PRE struct PACKED_POST
6472{
6473 tHalMsgHeader header;
6474 tHalTxPerTrackingReqParam txPerTrackingParams;
6475} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6476
6477/*---------------------------------------------------------------------------
6478 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6479 *--------------------------------------------------------------------------*/
6480typedef PACKED_PRE struct PACKED_POST
6481{
6482 /* success or failure */
6483 tANI_U32 status;
6484} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6485
6486typedef PACKED_PRE struct PACKED_POST
6487{
6488 tHalMsgHeader header;
6489 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6490} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6491
6492/*---------------------------------------------------------------------------
6493 * WLAN_HAL_TX_PER_HIT_IND
6494 *--------------------------------------------------------------------------*/
6495typedef PACKED_PRE struct PACKED_POST
6496{
6497 tHalMsgHeader header;
6498}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6499
6500/*---------------------------------------------------------------------------
6501 *******************Packet Filtering Definitions Begin*******************
6502 *--------------------------------------------------------------------------*/
6503#define HAL_PROTOCOL_DATA_LEN 8
6504#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6505#define HAL_MAX_NUM_FILTERS 20
6506#define HAL_MAX_CMP_PER_FILTER 10
6507
6508typedef enum
6509{
6510 HAL_RCV_FILTER_TYPE_INVALID,
6511 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6512 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6513 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6514}tHalReceivePacketFilterType;
6515
Dino Mycle8afbac12014-07-04 22:06:17 +05306516typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006517{
6518 HAL_FILTER_PROTO_TYPE_INVALID,
6519 HAL_FILTER_PROTO_TYPE_MAC,
6520 HAL_FILTER_PROTO_TYPE_ARP,
6521 HAL_FILTER_PROTO_TYPE_IPV4,
6522 HAL_FILTER_PROTO_TYPE_IPV6,
6523 HAL_FILTER_PROTO_TYPE_UDP,
6524 HAL_FILTER_PROTO_TYPE_MAX
6525}tHalRcvPktFltProtocolType;
6526
Dino Mycle8afbac12014-07-04 22:06:17 +05306527typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006528{
6529 HAL_FILTER_CMP_TYPE_INVALID,
6530 HAL_FILTER_CMP_TYPE_EQUAL,
6531 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6532 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6533 HAL_FILTER_CMP_TYPE_MAX
6534}tHalRcvPktFltCmpFlagType;
6535
Dino Mycle8afbac12014-07-04 22:06:17 +05306536typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006537{
6538 tANI_U8 protocolLayer;
6539 tANI_U8 cmpFlag;
6540 tANI_U16 dataLength; /* Length of the data to compare */
6541 tANI_U8 dataOffset; /* from start of the respective frame header */
6542 tANI_U8 reserved; /* Reserved field */
6543 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6544 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6545}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6546
6547typedef PACKED_PRE struct PACKED_POST
6548{
6549 tANI_U8 filterId;
6550 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306551 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006552 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006553 tHalRcvPktFilterParams paramsData[1];
6554}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6555
6556typedef PACKED_PRE struct PACKED_POST
6557{
Jeff Johnsone7245742012-09-05 17:12:55 -07006558 tANI_U8 filterId;
6559 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306560 tANI_U8 numParams;
6561 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006562 tANI_U8 bssIdx;
6563 tHalRcvPktFilterParams paramsData[1];
6564}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6565
6566typedef PACKED_PRE struct PACKED_POST
6567{
Jeff Johnson295189b2012-06-20 16:38:30 -07006568 tHalMsgHeader header;
6569 tHalRcvPktFilterCfgType pktFilterCfg;
6570} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6571
Jeff Johnsone7245742012-09-05 17:12:55 -07006572typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006573{
6574 tANI_U8 dataOffset; /* from start of the respective frame header */
6575 tANI_U32 cMulticastAddr;
6576 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006577 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006578} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6579
6580typedef PACKED_PRE struct PACKED_POST
6581{
6582 /* success or failure */
6583 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006584 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006585} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6586
6587typedef PACKED_PRE struct PACKED_POST
6588{
6589 tHalMsgHeader header;
6590 tHalSetPktFilterRspParams pktFilterRspParams;
6591} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6592
Jeff Johnsone7245742012-09-05 17:12:55 -07006593typedef PACKED_PRE struct PACKED_POST
6594{
6595 tANI_U8 bssIdx;
6596} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006597
6598typedef PACKED_PRE struct PACKED_POST
6599{
6600 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006601 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006602} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6603
Jeff Johnsone7245742012-09-05 17:12:55 -07006604
Jeff Johnson295189b2012-06-20 16:38:30 -07006605typedef PACKED_PRE struct PACKED_POST
6606{
6607 tANI_U8 filterId;
6608 tANI_U32 matchCnt;
6609} tHalRcvFltPktMatchCnt;
6610typedef PACKED_PRE struct PACKED_POST
6611{
6612 /* Success or Failure */
6613 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306614 tANI_U32 matchCnt;
6615 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006616 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006617} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6618
6619typedef PACKED_PRE struct PACKED_POST
6620{
6621 tHalMsgHeader header;
6622 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6623} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6624
6625typedef PACKED_PRE struct PACKED_POST
6626{
6627 tANI_U32 status; /* only valid for response message */
6628 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006629 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006630}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6631
6632typedef PACKED_PRE struct PACKED_POST
6633{
6634 tHalMsgHeader header;
6635 tHalRcvFltPktClearParam filterClearParam;
6636} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6637
6638typedef PACKED_PRE struct PACKED_POST
6639{
6640 tHalMsgHeader header;
6641 tHalRcvFltPktClearParam filterClearParam;
6642} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6643
6644typedef PACKED_PRE struct PACKED_POST
6645{
Dino Mycle8afbac12014-07-04 22:06:17 +05306646 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006647 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006648}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6649
6650typedef PACKED_PRE struct PACKED_POST
6651{
6652 tHalMsgHeader header;
6653 tHalRcvFltMcAddrListType mcAddrList;
6654} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6655
6656typedef PACKED_PRE struct PACKED_POST
6657{
6658 tHalMsgHeader header;
6659 tHalRcvFltPktSetMcListRspType rspParam;
6660} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6661
6662
6663/*---------------------------------------------------------------------------
6664 *******************Packet Filtering Definitions End*******************
6665 *--------------------------------------------------------------------------*/
6666
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006667/*
6668 * There are two versions of this message
6669 * Version 1 : Base version
6670 * Current version : Base version + Max LI modulated DTIM
6671 */
6672typedef PACKED_PRE struct PACKED_POST
6673{
6674 /* Ignore DTIM */
6675 tANI_U32 uIgnoreDTIM;
6676
6677 /*DTIM Period*/
6678 tANI_U32 uDTIMPeriod;
6679
6680 /* Listen Interval */
6681 tANI_U32 uListenInterval;
6682
6683 /* Broadcast Multicast Filter */
6684 tANI_U32 uBcastMcastFilter;
6685
6686 /* Beacon Early Termination */
6687 tANI_U32 uEnableBET;
6688
6689 /* Beacon Early Termination Interval */
6690 tANI_U32 uBETInterval;
6691}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6692
6693typedef PACKED_PRE struct PACKED_POST
6694{
6695 tHalMsgHeader header;
6696 tSetPowerParamsVer1Type powerParams;
6697} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6698
Jeff Johnson295189b2012-06-20 16:38:30 -07006699typedef PACKED_PRE struct PACKED_POST
6700{
6701 /* Ignore DTIM */
6702 tANI_U32 uIgnoreDTIM;
6703
6704 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306705 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006706
6707 /* Listen Interval */
6708 tANI_U32 uListenInterval;
6709
6710 /* Broadcast Multicast Filter */
6711 tANI_U32 uBcastMcastFilter;
6712
6713 /* Beacon Early Termination */
6714 tANI_U32 uEnableBET;
6715
6716 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306717 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006718
6719 /* MAX LI for modulated DTIM */
6720 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006721}tSetPowerParamsType, *tpSetPowerParamsType;
6722
6723typedef PACKED_PRE struct PACKED_POST
6724{
6725 tHalMsgHeader header;
6726 tSetPowerParamsType powerParams;
6727} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6728
6729typedef PACKED_PRE struct PACKED_POST{
6730
6731 tHalMsgHeader header;
6732
6733 /*status of the request */
6734 tANI_U32 status;
6735
6736} tSetPowerParamsResp, *tpSetPowerParamsResp;
6737
6738/*---------------------------------------------------------------------------
6739 ****************Capability bitmap exchange definitions and macros starts*************
6740 *--------------------------------------------------------------------------*/
6741
Anand Kumar012623a2013-01-11 17:00:00 -08006742typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006743 MCC = 0,
6744 P2P = 1,
6745 DOT11AC = 2,
6746 SLM_SESSIONIZATION = 3,
6747 DOT11AC_OPMODE = 4,
6748 SAP32STA = 5,
6749 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006750 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006751 WLANACTIVE_OFFLOAD = 8,
6752 BEACON_OFFLOAD = 9,
6753 SCAN_OFFLOAD = 10,
6754 ROAM_OFFLOAD = 11,
6755 BCN_MISS_OFFLOAD = 12,
6756 STA_POWERSAVE = 13,
6757 STA_ADVANCED_PWRSAVE = 14,
6758 AP_UAPSD = 15,
6759 AP_DFS = 16,
6760 BLOCKACK = 17,
6761 PHY_ERR = 18,
6762 BCN_FILTER = 19,
6763 RTT = 20,
6764 RATECTRL = 21,
6765 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006766 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006767 SPECULATIVE_PS_POLL = 24,
6768 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006769 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006770 WLAN_SCAN_OFFLOAD = 27,
6771 WLAN_PERIODIC_TX_PTRN = 28,
6772 ADVANCE_TDLS = 29,
6773 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306774 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306775 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306776 CH_SWITCH_V1 = 33,
6777 HT40_OBSS_SCAN = 34,
6778 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006779 WLAN_MCADDR_FLT = 36,
6780 WLAN_CH144 = 37,
6781 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306782 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306783 LINK_LAYER_STATS_MEAS = 40,
6784 MU_MIMO = 41,
6785 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306786 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306787 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306788 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306789 DISA = 46,
6790 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306791 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306792 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306793 TDLS_OFF_CHANNEL = 51,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306794 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306795 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306796 LOGGING_ENHANCEMENT = 55,
c_manjeecfd1efb2015-09-25 19:32:34 +05306797 MEMORY_DUMP_SUPPORTED = 57,
Sushant Kaushik33200572015-08-05 16:46:20 +05306798 PER_PKT_STATS_SUPPORTED = 58,
Kumar Anandea78e792013-10-10 23:47:01 -07006799 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006800} placeHolderInCapBitmap;
6801
Jeff Johnson295189b2012-06-20 16:38:30 -07006802typedef PACKED_PRE struct PACKED_POST{
6803
6804 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006805} tWlanFeatCaps, *tpWlanFeatCaps;
6806
6807typedef PACKED_PRE struct PACKED_POST{
6808
Dino Mycle8afbac12014-07-04 22:06:17 +05306809 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006810 tWlanFeatCaps wlanFeatCaps;
6811
6812} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6813
Jeff Johnsone7245742012-09-05 17:12:55 -07006814#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6815#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006816#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006817#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006818#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006819#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006820#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006821#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306822#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306823#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306824#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306825#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306826#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006827
Jeff Johnsone7245742012-09-05 17:12:55 -07006828tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6829
Jeff Johnson295189b2012-06-20 16:38:30 -07006830#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006831 if ((b)<=127) { \
6832 arr_index = (b)/32; \
6833 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006834 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006835 (a)->featCaps[arr_index] |= (1<<bit_index); \
6836 } \
6837 }
6838#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006839 if ((b)<=127) { \
6840 arr_index = (b)/32; \
6841 bit_index = (b)%32; \
6842 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006843 } \
6844 }
6845#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006846 if ((b)<=127) { \
6847 arr_index = (b)/32; \
6848 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006849 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006850 } \
6851 }
6852
6853/*---------------------------------------------------------------------------
6854 * WLAN_HAL_WAKE_REASON_IND
6855 *--------------------------------------------------------------------------*/
6856
6857/* status codes to help debug rekey failures */
6858typedef enum
6859{
6860 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6861 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6862 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6863 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6864 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6865 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6866 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6867 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6868 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6869 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6870
6871 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6872} tGTKRekeyStatus;
6873
6874/* wake reason types */
6875typedef enum
6876{
6877 WLAN_HAL_WAKE_REASON_NONE = 0,
6878 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6879 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6880 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6881 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6882 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6883 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6884 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6885} tWakeReasonType;
6886
6887/*
6888 Wake Packet which is saved at tWakeReasonParams.DataStart
6889 This data is sent for any wake reasons that involve a packet-based wakeup :
6890
6891 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6892 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6893 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6894 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6895 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6896
6897 The information is provided to the host for auditing and debug purposes
6898
6899*/
6900
6901/*
6902 Wake reason indication parameters
6903*/
6904typedef PACKED_PRE struct PACKED_POST
6905{
6906 uint32 ulReason; /* see tWakeReasonType */
6907 uint32 ulReasonArg; /* argument specific to the reason type */
6908 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6909 HAL truncates the data (i.e. data packets) this length
6910 will be less than the actual length */
6911 uint32 ulActualDataLen; /* actual length of data */
6912 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6913 see specific wake type */
6914} tWakeReasonParams, *tpWakeReasonParams;
6915
6916/*
6917 Wake reason indication
6918*/
6919typedef PACKED_PRE struct PACKED_POST
6920{
6921 tHalMsgHeader header;
6922 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006923 tANI_U32 uBssIdx : 8;
6924 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006925} tHalWakeReasonInd, *tpHalWakeReasonInd;
6926
6927/*---------------------------------------------------------------------------
6928* WLAN_HAL_GTK_OFFLOAD_REQ
6929*--------------------------------------------------------------------------*/
6930
6931#define HAL_GTK_KEK_BYTES 16
6932#define HAL_GTK_KCK_BYTES 16
6933
6934#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6935
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006936#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6937
Jeff Johnson295189b2012-06-20 16:38:30 -07006938typedef PACKED_PRE struct PACKED_POST
6939{
6940 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306941 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006942 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6943 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006944 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006945} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6946
6947typedef PACKED_PRE struct PACKED_POST
6948{
6949 tHalMsgHeader header;
6950 tHalGtkOffloadReqParams gtkOffloadReqParams;
6951} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6952
6953/*---------------------------------------------------------------------------
6954* WLAN_HAL_GTK_OFFLOAD_RSP
6955*--------------------------------------------------------------------------*/
6956typedef PACKED_PRE struct PACKED_POST
6957{
6958 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006959 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006960} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6961
6962typedef PACKED_PRE struct PACKED_POST
6963{
6964 tHalMsgHeader header;
6965 tHalGtkOffloadRspParams gtkOffloadRspParams;
6966} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6967
6968
6969/*---------------------------------------------------------------------------
6970* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6971*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006972typedef PACKED_PRE struct PACKED_POST
6973{
6974 tANI_U8 bssIdx;
6975
6976} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006977
6978typedef PACKED_PRE struct PACKED_POST
6979{
6980 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006981 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006982} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6983
6984/*---------------------------------------------------------------------------
6985* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6986*--------------------------------------------------------------------------*/
6987typedef PACKED_PRE struct PACKED_POST
6988{
6989 tANI_U32 ulStatus; /* success or failure */
6990 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6991 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6992 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6993 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6994 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006995 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006996} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6997
6998typedef PACKED_PRE struct PACKED_POST
6999{
7000 tHalMsgHeader header;
7001 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
7002} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
7003
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08007004/*---------------------------------------------------------------------------
7005* WLAN_HAL_DHCP_IND
7006*--------------------------------------------------------------------------*/
7007typedef PACKED_PRE struct PACKED_POST
7008{
7009 /*Indicates the device mode which indicates about the DHCP activity */
7010 tANI_U8 device_mode;
7011 tSirMacAddr macAddr;
7012} tDHCPInfo, *tpDHCPInfo;
7013
7014typedef PACKED_PRE struct PACKED_POST
7015{
7016 tHalMsgHeader header;
7017 tANI_U32 status; /* success or failure */
7018} tDHCPIndStatus, *tpDHCPIndstatus;
7019
Jeff Johnson295189b2012-06-20 16:38:30 -07007020/*
7021 Thermal Mitigation mode of operation.
7022 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7023 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7024 reducing transmit power
7025 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7026*/
7027typedef enum
7028{
7029 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7030 HAL_THERMAL_MITIGATION_MODE_0,
7031 HAL_THERMAL_MITIGATION_MODE_1,
7032 HAL_THERMAL_MITIGATION_MODE_2,
7033 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7034}tHalThermalMitigationModeType;
7035//typedef tANI_S16 tHalThermalMitigationModeType;
7036
7037/*
7038 Thermal Mitigation level.
7039 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7040 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7041
7042 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7043 level indicates normal mode of operation
7044 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7045 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7046 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7047 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7048*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307049typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007050{
7051 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7052 HAL_THERMAL_MITIGATION_LEVEL_0,
7053 HAL_THERMAL_MITIGATION_LEVEL_1,
7054 HAL_THERMAL_MITIGATION_LEVEL_2,
7055 HAL_THERMAL_MITIGATION_LEVEL_3,
7056 HAL_THERMAL_MITIGATION_LEVEL_4,
7057 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7058}tHalThermalMitigationLevelType;
7059//typedef tANI_S16 tHalThermalMitigationLevelType;
7060
7061typedef PACKED_PRE struct PACKED_POST
7062{
7063 /* Thermal Mitigation Operation Mode */
7064 tHalThermalMitigationModeType thermalMitMode;
7065
7066 /* Thermal Mitigation Level */
7067 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307068
Jeff Johnson295189b2012-06-20 16:38:30 -07007069}tSetThermalMitgationType, *tpSetThermalMitgationType;
7070
7071/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7072typedef PACKED_PRE struct PACKED_POST
7073{
7074 tHalMsgHeader header;
7075 tSetThermalMitgationType thermalMitParams;
7076} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7077
7078typedef PACKED_PRE struct PACKED_POST{
7079
7080 tHalMsgHeader header;
7081
7082 /*status of the request */
7083 tANI_U32 status;
7084
7085} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7086
Dino Mycle8afbac12014-07-04 22:06:17 +05307087/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007088provided to FW from Host via periodic messages */
7089typedef PACKED_PRE struct PACKED_POST {
7090 /* TX stats */
7091 uint32 txBytesPushed;
7092 uint32 txPacketsPushed;
7093
7094 /* RX stats */
7095 uint32 rxBytesRcvd;
7096 uint32 rxPacketsRcvd;
7097 uint32 rxTimeTotal;
7098} tStaStatsClassB, *tpStaStatsClassB;
7099
7100typedef PACKED_PRE struct PACKED_POST {
7101
7102 /* Duration over which this stats was collected */
7103 tANI_U32 duration;
7104
7105 /* Per STA Stats */
7106 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7107} tStatsClassBIndParams, *tpStatsClassBIndParams;
7108
7109typedef PACKED_PRE struct PACKED_POST {
7110
7111 tHalMsgHeader header;
7112
7113 /* Class B Stats */
7114 tStatsClassBIndParams statsClassBIndParams;
7115} tStatsClassBInd, *tpStatsClassBInd;
7116
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307117/*Wifi Proximity paramters in AP mode*/
7118#ifdef FEATURE_WIFI_PROXIMITY
7119
7120typedef PACKED_PRE struct PACKED_POST{
7121
7122 tANI_U8 wifiProximityChannel;
7123 tANI_U32 wifiProximityDuration;
7124 tANI_U32 wifiProximityInterval;
7125 tANI_U32 wifiProximityMode;
7126 tANI_U32 wifiProximityStatus;
7127 tSirMacAddr bssId;
7128 tSirMacSSid ssId;
7129
7130} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7131
7132typedef PACKED_PRE struct PACKED_POST
7133{
7134 tHalMsgHeader header;
7135
7136 tSetWifiProximityReqParam wifiProximityReqParams;
7137
7138}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7139
7140/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7141typedef PACKED_PRE struct PACKED_POST{
7142
7143 tHalMsgHeader header;
7144
7145 /*status of the request */
7146 tANI_U32 status;
7147
7148} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7149
7150#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007151
7152#ifdef FEATURE_SPECULATIVE_PS_POLL
7153/*---------------------------------------------------------------------------
7154 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7155 *--------------------------------------------------------------------------*/
7156typedef PACKED_PRE struct PACKED_POST
7157{
7158 tANI_U8 bssIdx;
7159 tANI_U16 serviceInterval;
7160 tANI_U16 suspendInterval;
7161 tANI_U8 acMask;
7162} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7163
7164typedef PACKED_PRE struct PACKED_POST
7165{
7166 tHalMsgHeader header;
7167 tHalStartSpecPsPollReqParams specPsPollReq;
7168} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7169
7170/*---------------------------------------------------------------------------
7171 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7172 *--------------------------------------------------------------------------*/
7173typedef PACKED_PRE struct PACKED_POST
7174{
7175 /* success or failure */
7176 tANI_U32 status;
7177 tANI_U8 bssIdx;
7178} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7179
7180typedef PACKED_PRE struct PACKED_POST
7181{
7182 tHalMsgHeader header;
7183 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7184} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7185
7186/*---------------------------------------------------------------------------
7187 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7188 *--------------------------------------------------------------------------*/
7189typedef PACKED_PRE struct PACKED_POST
7190{
7191 tHalMsgHeader header;
7192 tANI_U8 bssIdx;
7193} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7194#endif
7195
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307196#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307197#define HAL_MAX_SUPP_CHANNELS 128
7198#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307199/*---------------------------------------------------------------------------
7200 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7201 *-------------------------------------------------------------------------*/
7202typedef PACKED_PRE struct PACKED_POST
7203{
7204 /*STA Index*/
7205 tANI_U16 staIdx;
7206
7207 /* if this is 1, self is initiator and peer is reponder */
7208 tANI_U8 bIsResponder;
7209
7210 /* QoS Info */
7211 tANI_U8 acVOUAPSDFlag:1;
7212 tANI_U8 acVIUAPSDFlag:1;
7213 tANI_U8 acBKUAPSDFlag:1;
7214 tANI_U8 acBEUAPSDFlag:1;
7215 tANI_U8 aAck:1;
7216 tANI_U8 maxServicePeriodLength:2;
7217 tANI_U8 moreDataAck:1;
7218
7219 /*TDLS Peer U-APSD Buffer STA Support*/
7220 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007221
7222 /*TDLS off channel related params */
7223 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307224 tANI_U8 peerCurrOperClass;
7225 tANI_U8 selfCurrOperClass;
7226 tANI_U8 validChannelsLen;
7227 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7228 tANI_U8 validOperClassesLen;
7229 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307230}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7231
7232typedef PACKED_PRE struct PACKED_POST
7233{
7234 tHalMsgHeader header;
7235 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7236} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7237
7238/*---------------------------------------------------------------------------
7239 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7240 *-------------------------------------------------------------------------*/
7241
7242typedef PACKED_PRE struct PACKED_POST
7243{
7244 tANI_U32 status;
7245
7246 /*STA Index*/
7247 tANI_U16 staIdx;
7248} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7249
7250typedef PACKED_PRE struct PACKED_POST
7251{
7252 tHalMsgHeader header;
7253 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7254} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307255/*---------------------------------------------------------------------------
7256 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7257 + *-------------------------------------------------------------------------*/
7258typedef PACKED_PRE struct PACKED_POST
7259{
7260 /*STA Index*/
7261 tANI_U16 staIdx;
7262 /* if this is 1, self is initiator otherwise responder only*/
7263 tANI_U8 isOffchannelInitiator;
7264 /*TDLS off channel related params */
7265 tANI_U8 targetOperClass;
7266 tANI_U8 targetChannel;
7267 tANI_U8 secondaryChannelOffset;
7268 tANI_U8 reserved[32];
7269}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7270
7271typedef PACKED_PRE struct PACKED_POST
7272{
7273 tHalMsgHeader header;
7274 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7275} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7276/*---------------------------------------------------------------------------
7277 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7278 *-------------------------------------------------------------------------*/
7279
7280typedef PACKED_PRE struct PACKED_POST
7281{
7282 tANI_U32 status;
7283 /*STA Index*/
7284 tANI_U16 staIdx;
7285} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7286
7287typedef PACKED_PRE struct PACKED_POST
7288{
7289 tHalMsgHeader header;
7290 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7291} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7292
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307293
7294/*---------------------------------------------------------------------------
7295 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7296 *-------------------------------------------------------------------------*/
7297typedef PACKED_PRE struct PACKED_POST
7298{
7299 /*STA Index*/
7300 tANI_U16 staIdx;
7301}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7302
7303typedef PACKED_PRE struct PACKED_POST
7304{
7305 tHalMsgHeader header;
7306 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7307} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7308
7309/*---------------------------------------------------------------------------
7310 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7311 *-------------------------------------------------------------------------*/
7312
7313typedef PACKED_PRE struct PACKED_POST
7314{
7315 tANI_U32 status;
7316
7317 /*STA Index*/
7318 tANI_U16 staIdx;
7319} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7320
7321typedef PACKED_PRE struct PACKED_POST
7322{
7323 tHalMsgHeader header;
7324 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7325} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7326
7327/*---------------------------------------------------------------------------
7328 *WLAN_HAL_TDLS_IND
7329 *--------------------------------------------------------------------------*/
7330
7331typedef PACKED_PRE struct PACKED_POST
7332{
7333 tANI_U16 assocId;
7334 tANI_U16 staIdx;
7335 tANI_U16 status;
7336 tANI_U16 reasonCode;
7337}tTdlsIndParams, *tpTdlsIndParams;
7338
7339
7340typedef PACKED_PRE struct PACKED_POST
7341{
7342 tHalMsgHeader header;
7343 tTdlsIndParams tdlsIndParams;
7344}tTdlsIndMsg, *tpTdlsIndMsg;
7345
7346#endif
7347
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007348/*---------------------------------------------------------------------------
7349 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7350 *--------------------------------------------------------------------------*/
7351
7352typedef PACKED_PRE struct PACKED_POST
7353{
7354 tANI_U8 bssIdx;
7355 tANI_U8 staIdx;
7356 tSirMacAddr staAddr;
7357}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7358
7359
7360typedef PACKED_PRE struct PACKED_POST
7361{
7362 tHalMsgHeader header;
7363 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7364}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7365
7366
Kumar Anandea78e792013-10-10 23:47:01 -07007367/*********** Scan Offload Related Structures *************/
7368#define HAL_NUM_SCAN_SSID 10
7369#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007370
Kumar Anandea78e792013-10-10 23:47:01 -07007371/*
7372 * Enumetation to indicate scan type (active/passive)
7373 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007374typedef enum
7375{
Kumar Anandea78e792013-10-10 23:47:01 -07007376 eSIR_PASSIVE_SCAN,
7377 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7378} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007379
7380typedef PACKED_PRE struct PACKED_POST
7381{
Kumar Anandea78e792013-10-10 23:47:01 -07007382 tANI_U8 numBssid;
7383 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7384 tANI_U8 numSsid;
7385 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7386 tANI_BOOLEAN hiddenSsid;
7387 tSirMacAddr selfMacAddr;
7388 tSirBssType bssType;
7389 tSirScanType scanType;
7390 tANI_U32 minChannelTime;
7391 tANI_U32 maxChannelTime;
7392 tANI_BOOLEAN p2pSearch;
7393 tANI_U8 channelCount;
7394 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7395 tANI_U16 ieFieldLen;
7396 tANI_U8 ieField[1];
7397}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007398
7399/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007400 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007401 *-------------------------------------------------------------------------*/
7402typedef PACKED_PRE struct PACKED_POST
7403{
Kumar Anandf53016f2013-09-04 15:15:53 -07007404 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007405 tScanOffloadReqType scanOffloadParams;
7406} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007407
7408/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007409 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007410 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007411typedef PACKED_PRE struct PACKED_POST
7412{
7413 tHalMsgHeader header;
7414
7415 /*status of the request - just to indicate SO has acknowledged
7416 * * the request and will start scanning*/
7417 tANI_U32 status;
7418} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7419
7420/*---------------------------------------------------------------------------
7421 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7422 *-------------------------------------------------------------------------*/
7423typedef PACKED_PRE struct PACKED_POST
7424{
7425 tHalMsgHeader header;
7426} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7427
7428/*---------------------------------------------------------------------------
7429 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7430 *-------------------------------------------------------------------------*/
7431typedef PACKED_PRE struct PACKED_POST
7432{
7433 tHalMsgHeader header;
7434
7435 /*status of the request - just to indicate SO has acknowledged
7436 the request and will start scanning*/
7437 tANI_U32 status;
7438} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7439
7440/*
7441 * Enumetation of scan events indicated by firmware to the host
7442 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007443typedef enum
7444{
Kumar Anandea78e792013-10-10 23:47:01 -07007445 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7446 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7447 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7448 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7449 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7450 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7451 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7452 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7453 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7454} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007455
7456typedef PACKED_PRE struct PACKED_POST
7457{
Kumar Anandea78e792013-10-10 23:47:01 -07007458 tScanEventType event;
7459 tANI_U32 channel;
7460 tANI_U32 scanId;
7461} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007462
Kumar Anandea78e792013-10-10 23:47:01 -07007463/*---------------------------------------------------------------------------
7464 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7465 *-------------------------------------------------------------------------*/
7466typedef PACKED_PRE struct PACKED_POST
7467{
7468 tHalMsgHeader header;
7469 tScanOffloadEventInfo scanOffloadInd;
7470} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007471
Kumar Anandea78e792013-10-10 23:47:01 -07007472typedef PACKED_PRE struct PACKED_POST {
7473 /** primary 20 MHz channel frequency in mhz */
7474 tANI_U32 mhz;
7475 /** Center frequency 1 in MHz*/
7476 tANI_U32 band_center_freq1;
7477 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7478 tANI_U32 band_center_freq2;
7479 /* The first 26 bits are a bit mask to indicate any channel flags,
7480 (see WLAN_HAL_CHAN_FLAG*)
7481 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7482 tANI_U32 channel_info;
7483 /** contains min power, max power, reg power and reg class id. */
7484 tANI_U32 reg_info_1;
7485 /** contains antennamax */
7486 tANI_U32 reg_info_2;
7487} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007488
Kumar Anandf53016f2013-09-04 15:15:53 -07007489
Kumar Anandea78e792013-10-10 23:47:01 -07007490typedef enum {
7491 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7492 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7493 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7494 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7495 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7496 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7497 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7498 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7499 WLAN_HAL_MODE_11AC_VHT20 = 8,
7500 WLAN_HAL_MODE_11AC_VHT40 = 9,
7501 WLAN_HAL_MODE_11AC_VHT80 = 10,
7502 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7503 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7504 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7505 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007506
Kumar Anandea78e792013-10-10 23:47:01 -07007507} tChannelPhyModeType;
7508
7509#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7510#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7511#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7512#define WLAN_HAL_CHAN_AP_DISABLED 9
7513#define WLAN_HAL_CHAN_FLAG_DFS 10
7514#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7515#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007516#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7517
7518#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007519 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007520 } while(0)
7521
7522#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007523 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007524
7525#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7526 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7527 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7528 } while(0)
7529#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7530
7531#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7532 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7533 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7534 } while(0)
7535#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7536
7537#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7538 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7539 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7540 } while(0)
7541#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7542#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7543 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7544 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7545 } while(0)
7546#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7547
7548#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7549 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7550 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7551 } while(0)
7552#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7553
7554#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7555 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7556 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7557 } while(0)
7558#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 -07007559
7560typedef PACKED_PRE struct PACKED_POST
7561{
7562 tANI_U8 numChan;
7563 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7564} tUpdateChannelReqType;
7565
7566/*---------------------------------------------------------------------------
7567 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7568 *-------------------------------------------------------------------------*/
7569typedef PACKED_PRE struct PACKED_POST
7570{
7571 tHalMsgHeader header;
7572 tUpdateChannelReqType updateChannelParams;
7573} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7574
7575/*---------------------------------------------------------------------------
7576 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7577 *-------------------------------------------------------------------------*/
7578typedef PACKED_PRE struct PACKED_POST
7579{
7580 tHalMsgHeader header;
7581
7582 /*status of the request - just to indicate SO has acknowledged
7583 * * the request and will start scanning*/
7584 tANI_U32 status;
7585} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7586
7587
7588/*---------------------------------------------------------------------------
7589* WLAN_HAL_TX_FAIL_IND
7590*--------------------------------------------------------------------------*/
7591// Northbound indication from FW to host on weak link detection
7592typedef PACKED_PRE struct PACKED_POST
7593{
7594 // Sequence number increases by 1 whenever the device driver
7595 // sends a notification event. This is cleared as 0 when the
7596 // JOIN IBSS commamd is issued
7597 tANI_U16 seqNo;
7598 tANI_U16 staId;
7599 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7600} tHalTXFailIndParams, *tpHalTXFailIndParams;
7601
7602typedef PACKED_PRE struct PACKED_POST
7603{
7604 tHalMsgHeader header;
7605 tHalTXFailIndParams txFailIndParams;
7606} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7607
7608/*---------------------------------------------------------------------------
7609* WLAN_HAL_TX_FAIL_MONITOR_IND
7610*--------------------------------------------------------------------------*/
7611// Southbound message from Host to monitor the Tx failures
7612typedef PACKED_PRE struct PACKED_POST
7613{
7614 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7615 tANI_U8 tx_fail_count;
7616} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7617
7618typedef PACKED_PRE struct PACKED_POST
7619{
7620 tHalMsgHeader header;
7621 tTXFailMonitorInfo txFailMonitor;
7622} tTXFailMonitorInd, *tpTXFailMonitorInd;
7623
7624/*---------------------------------------------------------------------------
7625* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7626*--------------------------------------------------------------------------*/
7627typedef PACKED_PRE struct PACKED_POST
7628{
7629 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7630 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7631} tDestIpNextHopMacPair;
7632
7633typedef PACKED_PRE struct PACKED_POST
7634{
7635 tANI_U8 numEntries;
7636 tDestIpNextHopMacPair destIpMacPair[1];
7637} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007638
7639typedef PACKED_PRE struct PACKED_POST
7640{
7641 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007642 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7643} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007644
Kumar Anandf53016f2013-09-04 15:15:53 -07007645/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007646 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7647 *-------------------------------------------------------------------------*/
7648typedef enum
7649{
7650 /* reassociation is done, but couldn't finish security handshake */
7651 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7652
7653 /* roam has successfully completed by firmware */
7654 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7655
7656 /* UNKONW error */
7657 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7658}tHalRoamOffloadRoamAuthStatus;
7659
7660typedef enum
7661{
7662 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7663 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7664 WLAN_HAL_ROAM_TYPE_OKC,
7665 WLAN_HAL_ROAM_TYPE_CCKM,
7666 WLAN_HAL_ROAM_TYPE_FT,
7667 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7668} tHalRoamOffloadType;
7669
7670typedef PACKED_PRE struct PACKED_POST
7671{
7672 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7673 tANI_U16 beaconProbeRespOffset;
7674
7675 /* Length of beaon / probe resp. */
7676 tANI_U16 beaconProbeRespLength;
7677
7678 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7679 tANI_U16 reassocRespOffset;
7680
7681 /* Length of reassoc resp. */
7682 tANI_U16 reassocRespLength;
7683
7684 /* 0 for probe response frame, 1 for beacon frame, */
7685 tANI_U8 isBeacon;
7686
7687 /* staIdx of old AP */
7688 tANI_U8 oldStaIdx;
7689
7690 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7691 tConfigBssRspParams */
7692 /* bssIdx of new roamed AP */
7693 tANI_U8 bssIdx;
7694
7695 /* DPU descriptor index for PTK */
7696 tANI_U8 dpuDescIndx;
7697
7698 /* PTK DPU signature */
7699 tANI_U8 ucastDpuSignature;
7700
7701 /* DPU descriptor index for GTK*/
7702 tANI_U8 bcastDpuDescIndx;
7703
7704 /* GTK DPU signature */
7705 tANI_U8 bcastDpuSignature;
7706
7707 /*DPU descriptor for IGTK*/
7708 tANI_U8 mgmtDpuDescIndx;
7709
7710 /* IGTK DPU signature */
7711 tANI_U8 mgmtDpuSignature;
7712
7713 /* Station Index for BSS entry*/
7714 tANI_U8 staIdx;
7715
7716 /* Self station index for this BSS */
7717 tANI_U8 selfStaIdx;
7718
7719 /* Bcast station for buffering bcast frames in AP role */
7720 tANI_U8 bcastStaIdx;
7721
7722 /* MAC address of roamed AP */
7723 tSirMacAddr bssid;
7724
7725 /*HAL fills in the tx power used for mgmt frames in this field. */
7726 tANI_S8 txMgmtPower;
7727
7728 /* success or failure */
7729 tHalRoamOffloadRoamAuthStatus authStatus;
7730
7731 /* TODO : add more info as needed */
7732
7733 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7734 /* Beacon or probe resp from new AP. This is in 802.11
7735 frame format starting with MAC header. */
7736 /* Up to beaconProbeRespLength */
7737
7738 /* reassocRespOffset points to starting of reassoc resp frame */
7739 /* Reassoc resp from new AP. This is in 802.11
7740 frame format starting with MAC header. */
7741 /* Up to reassocRespLength */
7742
7743} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7744
7745
7746typedef PACKED_PRE struct PACKED_POST
7747{
7748 tHalMsgHeader header;
7749 tHalRoamOffloadSynchIndParams params;
7750} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7751
7752/*---------------------------------------------------------------------------
7753 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7754 *-------------------------------------------------------------------------*/
7755typedef PACKED_PRE struct PACKED_POST
7756{
7757 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7758 tSirMacAddr bssid;
7759} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7760
7761typedef PACKED_PRE struct PACKED_POST
7762{
7763 tHalMsgHeader header;
7764 tHalRoamOffloadSynchCnfParams params;
7765} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7766
7767
7768/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007769 WLAN_HAL_RATE_UPDATE_IND
7770 *-------------------------------------------------------------------------*/
7771
7772typedef PACKED_PRE struct PACKED_POST
7773{
7774 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7775 tANI_S32 ucastDataRate; //unit Mbpsx10
7776
7777 /* TX flag to differentiate between HT20, HT40 etc */
7778 tTxRateInfoFlags ucastDataRateTxFlag;
7779
7780 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7781 tSirMacAddr bssid;
7782
7783 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7784 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7785
7786 /* TX flag to differentiate between HT20, HT40 etc */
7787 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7788
7789 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7790 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7791
7792 /* TX flag to differentiate between HT20, HT40 etc */
7793 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7794
7795 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7796 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7797
7798 /* TX flag to differentiate between HT20, HT40 etc */
7799 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7800
7801} tHalRateUpdateParams, *tpHalRateUpdateParams;
7802
7803typedef PACKED_PRE struct PACKED_POST
7804{
7805 tHalMsgHeader header;
7806 tHalRateUpdateParams halRateUpdateParams;
7807} tHalRateUpdateInd, * tpHalRateUpdateInd;
7808
7809/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307810 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7811 *-------------------------------------------------------------------------*/
7812
Abhishek Singhe0443152015-06-18 10:07:43 +05307813#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307814
7815typedef PACKED_PRE struct PACKED_POST
7816{
7817 tANI_U32 startFreq;
7818 tANI_U32 endFreq;
7819} tHalFreqRange, *tpHalFreqRange;
7820
7821typedef PACKED_PRE struct PACKED_POST
7822{
7823 tANI_U32 avoidCnt;
7824 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7825} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7826
7827typedef PACKED_PRE struct PACKED_POST
7828{
7829 tHalMsgHeader header;
7830 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7831} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7832
7833/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307834 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007835 *-------------------------------------------------------------------------*/
7836
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307837typedef enum
7838{
7839 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7840 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7841 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7842}tHT40OBssScanCmdType;
7843
7844typedef PACKED_PRE struct PACKED_POST
7845{
7846 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007847
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307848 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007849 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7850 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7851 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7852 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7853 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7854 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7855 tANI_U16 OBSSScanActivityThreshold;
7856
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307857 tANI_U8 selfStaIdx;
7858 tANI_U8 bssIdx;
7859 tANI_U8 fortyMHZIntolerent;
7860 tANI_U8 channelCount;
7861 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7862 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007863
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307864 tANI_U16 ieFieldLen;
7865 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7866}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7867
7868typedef PACKED_PRE struct PACKED_POST
7869{
7870 tHalMsgHeader header;
7871 tHT40ObssScanIndType scanHT40ObssScanParams;
7872} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7873
7874/*---------------------------------------------------------------------------
7875 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7876 *-------------------------------------------------------------------------*/
7877typedef PACKED_PRE struct PACKED_POST
7878{
7879 tHalMsgHeader header;
7880 tANI_U8 bssIdx;
7881} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307882
7883/*---------------------------------------------------------------------------
7884 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7885 *-------------------------------------------------------------------------*/
7886
7887typedef PACKED_PRE struct PACKED_POST
7888{
7889 /* Valid BSS Idx for beacon miss rate */
7890 tANI_U8 bssIdx;
7891
7892}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7893
7894typedef PACKED_PRE struct PACKED_POST
7895{
7896 tHalMsgHeader header;
7897 tHalBcnMissRateReqParams bcnMissRateReqParams;
7898} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7899
7900/*---------------------------------------------------------------------------
7901 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7902 *-------------------------------------------------------------------------*/
7903
7904typedef PACKED_PRE struct PACKED_POST
7905{
7906 tANI_U32 status;
7907 tANI_U32 bcnMissCnt;
7908}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7909
7910typedef PACKED_PRE struct PACKED_POST
7911{
7912 tHalMsgHeader header;
7913 tHalBcnMissRateRspParams bcnMissRateRspParams;
7914}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7915
Sunil Dutt8377a382014-05-26 21:18:04 +05307916/*--------------------------------------------------------------------------
7917* WLAN_HAL_LL_SET_STATS_REQ
7918*---------------------------------------------------------------------------*/
7919
7920typedef PACKED_PRE struct PACKED_POST
7921{
7922 tANI_U32 req_id;
7923 tANI_U8 sta_id;
7924 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7925 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7926} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7927
7928typedef PACKED_PRE struct PACKED_POST
7929{
7930 tHalMsgHeader header;
7931 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7932} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7933
7934/*---------------------------------------------------------------------------
7935 WLAN_HAL_LL_SET_STATS_RSP
7936---------------------------------------------------------------------------*/
7937
7938typedef PACKED_PRE struct PACKED_POST
7939{
7940 tANI_U32 status;
7941 tANI_U32 resp_id;
7942 tANI_U8 iface_id;
7943} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7944
7945typedef PACKED_PRE struct PACKED_POST
7946{
7947 tHalMsgHeader header;
7948 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7949} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7950
7951/*---------------------------------------------------------------------------
7952 WLAN_HAL_LL_GET_STATS_REQ
7953---------------------------------------------------------------------------*/
7954
7955typedef PACKED_PRE struct PACKED_POST
7956{
7957 tANI_U32 req_id;
7958 tANI_U8 sta_id;
7959 tANI_U32 param_id_mask;
7960} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7961
7962typedef PACKED_PRE struct PACKED_POST
7963{
7964 tHalMsgHeader header;
7965 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7966} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7967
7968/*---------------------------------------------------------------------------
7969 WLAN_HAL_LL_GET_STATS_RSP
7970---------------------------------------------------------------------------*/
7971typedef PACKED_PRE struct PACKED_POST
7972{
7973 tANI_U32 status;
7974 tANI_U32 resp_id;
7975 tANI_U8 iface_id;
7976} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7977
7978typedef PACKED_PRE struct PACKED_POST
7979{
7980 tHalMsgHeader header;
7981 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7982} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7983
7984/*---------------------------------------------------------------------------
7985 WLAN_HAL_LL_CLEAR_STATS_REQ
7986---------------------------------------------------------------------------*/
7987typedef PACKED_PRE struct PACKED_POST
7988{
7989 tANI_U32 req_id;
7990 tANI_U8 sta_id;
7991 tANI_U32 stats_clear_req_mask;
7992 tANI_U8 stop_req;
7993} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
7994
7995typedef PACKED_PRE struct PACKED_POST
7996{
7997 tHalMsgHeader header;
7998 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
7999} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
8000
8001/*---------------------------------------------------------------------------
8002 WLAN_HAL_LL_CLEAR_STATS_RSP
8003---------------------------------------------------------------------------*/
8004typedef PACKED_PRE struct PACKED_POST
8005{
8006 tANI_U32 status;
8007 tANI_U8 sta_id;
8008 tANI_U32 resp_id;
8009 tANI_U32 stats_clear_rsp_mask;
8010 tANI_U8 stop_req_status;
8011} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
8012
8013typedef PACKED_PRE struct PACKED_POST
8014{
8015 tHalMsgHeader header;
8016 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
8017} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
8018
8019/*---------------------------------------------------------------------------
8020 WLAN_HAL_LL_NOTIFY_STATS
8021---------------------------------------------------------------------------*/
8022
8023typedef PACKED_PRE struct PACKED_POST
8024{
8025 tHalMsgHeader header;
8026 tANI_U32 param_id;
8027 tANI_U8 iface_id;
8028 tANI_U32 resp_id;
8029 tANI_U32 more_result_to_follow;
8030 tANI_U8 result[1];
8031} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008032
Dino Mycle108eff22014-06-10 09:36:44 +05308033/*---------------------------------------------------------------------------
8034 * WLAN_HAL_EXT_SCAN_START_REQ
8035 *-------------------------------------------------------------------------*/
8036
Dino Mycle8afbac12014-07-04 22:06:17 +05308037typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308038{
8039 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8040 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8041 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8042 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8043 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8044 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8045 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308046 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308047} tExtScanChannelBandMask;
8048
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308049#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
8050#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
8051
8052#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
8053
8054#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
8055#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
8056#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
8057#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
8058
Dino Mycle108eff22014-06-10 09:36:44 +05308059typedef PACKED_PRE struct PACKED_POST
8060{
8061 tANI_U32 channel; // frequency
8062 tANI_U32 dwellTimeMs; // dwell time hint
8063 tANI_U8 passive; // 0 => active,
8064 // 1 => passive scan; ignored for DFS
8065}tExtScanChannelSpec, *tpExtScanChannelSpec;
8066
8067typedef PACKED_PRE struct PACKED_POST
8068 {
8069 /* bucket index, 0 based */
8070 tANI_U8 bucketId;
8071 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8072 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308073 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308074 tANI_U32 period;
Padma, Santhosh Kumar9acee012015-08-21 19:58:01 +05308075 /* This is a bit field; which defines following bits -
8076 * REPORT_EVENTS_BUFFER_FULL => report only when scan history
8077 is % full
8078 * REPORT_EVENTS_EACH_SCAN => report a scan completion event
8079 after scan
8080 * REPORT_EVENTS_FULL_RESULTS => forward scan results
8081 (beacons/probe responses + IEs) in real time to HAL, in addition
8082 to completion events
8083 Note: To keep backward compatibility, fire completion events
8084 regardless of REPORT_EVENTS_EACH_SCAN.
8085 * REPORT_EVENTS_NO_BATCH => controls batching,
8086 0 => batching, 1 => no batching
8087 */
Dino Mycle108eff22014-06-10 09:36:44 +05308088 tANI_U8 reportEvents;
8089 /* number of channels */
8090 tANI_U8 numChannels;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308091 // new Exponential Scan params
8092 tANI_U32 max_period;
8093 tANI_U32 exponent;
8094 tANI_U32 step_count;
Dino Mycle108eff22014-06-10 09:36:44 +05308095 /* if channels to scan. In the TLV channelList[] */
8096 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8097}tExtScanBucketData, *tpExtScanBucketData;
8098
8099typedef PACKED_PRE struct PACKED_POST
8100{
8101 tANI_U32 requestId;
8102 tANI_U8 sessionId;
8103 /* Base period (milliseconds) used by scan buckets to define periodicity
8104 of the scans */
8105 tANI_U32 basePeriod;
8106 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8107 (keep the most significant, i.e. stronger RSSI) */
8108 tANI_U32 maxApPerScan;
8109 /* in %, when buffer is this much full, wake up host */
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308110 tANI_U32 reportThresholdPercent;
8111 /* in number of scans, wake up AP after these many scans */
8112 tANI_U32 reportThresholdNumScans;
Dino Mycle108eff22014-06-10 09:36:44 +05308113 /* This will be off channel minimum time */
8114 tANI_U16 neighborScanChannelMinTime;
8115 /* This will be out off channel max time */
8116 tANI_U16 neighborScanChannelMaxTime;
8117 /* This will be the home (BSS) channel time */
8118 tANI_U16 homeAwayTime;
8119 /* number of buckets (maximum 8) */
8120 tANI_U8 numBuckets;
8121 /* Buckets data */
8122 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8123} tHalExtScanStartReq, *tpHalExtScanStartReq;
8124
8125typedef PACKED_PRE struct PACKED_POST
8126{
8127 tHalMsgHeader header;
8128 tHalExtScanStartReq extScanStartReq;
8129}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8130
8131/*---------------------------------------------------------------------------
8132 * WLAN_HAL_EXT_SCAN_START_RSP
8133 *-------------------------------------------------------------------------*/
8134
8135typedef PACKED_PRE struct PACKED_POST
8136{
8137 tANI_U32 requestId;
8138 tANI_U32 status;
8139}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8140
8141typedef PACKED_PRE struct PACKED_POST
8142{
8143 tHalMsgHeader header;
8144 tHalExtScanStartRsp extScanStartRsp;
8145}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8146
8147/*---------------------------------------------------------------------------
8148 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8149 *-------------------------------------------------------------------------*/
8150
8151typedef PACKED_PRE struct PACKED_POST
8152{
8153 tANI_U32 requestId;
8154 tANI_U8 sessionId;
8155}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8156
8157typedef PACKED_PRE struct PACKED_POST
8158{
8159 tHalMsgHeader header;
8160 tHalExtScanGetCapReq extScanGetCapReq;
8161}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8162
8163/*---------------------------------------------------------------------------
8164 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8165 *-------------------------------------------------------------------------*/
8166
8167typedef PACKED_PRE struct PACKED_POST
8168{
8169 tANI_U32 requestId;
8170 tANI_U32 status;
8171
8172 tANI_U32 scanCacheSize;
8173 tANI_U32 scanBuckets;
8174 tANI_U32 maxApPerScan;
8175 tANI_U32 maxRssiSampleSize;
8176 tANI_U32 maxScanReportingThreshold;
8177
8178 tANI_U32 maxHotlistAPs;
Padma, Santhosh Kumara7cfc492015-09-12 13:46:27 +05308179 tANI_U32 maxHotlistSSIDs;
Dino Mycle108eff22014-06-10 09:36:44 +05308180
8181 tANI_U32 maxBssidHistoryEntries;
8182}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8183
8184typedef PACKED_PRE struct PACKED_POST
8185{
8186 tHalMsgHeader header;
8187 tHalExtScanGetCapRsp extScanGetCapRsp;
8188}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8189
8190/*---------------------------------------------------------------------------
8191 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8192 *-------------------------------------------------------------------------*/
8193
8194typedef PACKED_PRE struct PACKED_POST
8195{
8196 tANI_U32 requestId;
8197 tANI_U8 sessionId;
8198 /*
8199 * 1 return cached results and flush it
8200 * 0 return cached results and do not flush
8201 */
8202 tANI_BOOLEAN flush;
8203}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8204
8205typedef PACKED_PRE struct PACKED_POST
8206{
8207 tHalMsgHeader header;
8208 tHalExtScanGetScanReq getScanReq;
8209}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8210
8211/*---------------------------------------------------------------------------
8212 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8213 *-------------------------------------------------------------------------*/
8214
8215typedef PACKED_PRE struct PACKED_POST
8216{
8217 tANI_U32 requestId;
8218 tANI_U32 status;
8219}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8220
8221typedef PACKED_PRE struct PACKED_POST
8222{
8223 tHalMsgHeader header;
8224 tHalExtScanGetScanRsp getScanRsp;
8225}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8226
8227/*---------------------------------------------------------------------------
8228 * WLAN_HAL_EXT_SCAN_RESULT_IND
8229 *-------------------------------------------------------------------------*/
8230
8231typedef PACKED_PRE struct PACKED_POST
8232{
8233 tANI_U64 ts; // time of discovery
8234 tANI_U8 ssid[32+1]; // null terminated SSID
8235 tSirMacAddr bssid; // BSSID
8236 tANI_U32 channel; // channel frequency in MHz
8237 tANI_S32 rssi; // RSSI in dBm
8238 tANI_U32 rtt; // RTT in nanoseconds - not expected
8239 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308240 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308241 tANI_U16 capability; // capabilities advertised in the beacon
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308242 tANI_U16 ieLength; // size of the ie_data blob
8243 tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308244} tHalExtScanResultParams, *tpHalExtScanResultParams;
8245
Padma, Santhosh Kumare1b8a942015-08-25 12:44:24 +05308246/* Get the GSCAN cached scan results */
8247typedef struct {
8248 tANI_U16 scan_id; // a unique identifier for the scan unit
8249 tANI_U8 flags; // a bitmask with additional
8250 // information about scan
8251 tANI_U8 num_results; // number of bssids retrieved by the scan
8252 tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
8253 // scan results - one for each bssid
8254} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
8255
Dino Mycle108eff22014-06-10 09:36:44 +05308256typedef PACKED_PRE struct PACKED_POST
8257{
8258 tHalMsgHeader header;
8259 tANI_U32 requestId;
8260 tANI_U32 scanResultSize;
8261 tANI_BOOLEAN moreData;
8262 tANI_U8 extScanResult[1];
8263}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8264
8265/*---------------------------------------------------------------------------
8266 * WLAN_HAL_EXT_SCAN_STOP_REQ
8267 *-------------------------------------------------------------------------*/
8268
8269typedef PACKED_PRE struct PACKED_POST
8270{
8271 tANI_U32 requestId;
8272 tANI_U8 sessionId;
8273}tHalExtScanStopReq, *tpHalExtScanStopReq;
8274
8275typedef PACKED_PRE struct PACKED_POST
8276{
8277 tHalMsgHeader header;
8278 tHalExtScanStopReq extScanStopReq;
8279}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8280
8281/*---------------------------------------------------------------------------
8282 * WLAN_HAL_EXT_SCAN_STOP_RSP
8283 *-------------------------------------------------------------------------*/
8284
8285typedef PACKED_PRE struct PACKED_POST
8286{
8287 tANI_U32 requestId;
8288 tANI_U32 status;
8289}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8290
8291typedef PACKED_PRE struct PACKED_POST
8292{
8293 tHalMsgHeader header;
8294 tHalExtScanStopRsp extScanStopRsp;
8295}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8296
8297/*---------------------------------------------------------------------------
8298 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8299 *-------------------------------------------------------------------------*/
8300
Dino Mycle8afbac12014-07-04 22:06:17 +05308301typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308302{
8303 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8304 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308305 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308306} tHalExtScanProgressEventType;
8307
8308typedef PACKED_PRE struct PACKED_POST
8309{
8310 tANI_U32 requestId;
8311 tANI_U32 status;
8312 tHalExtScanProgressEventType extScanEventType;
8313}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8314
8315typedef PACKED_PRE struct PACKED_POST
8316{
8317 tHalMsgHeader header;
8318 tHalExtScanProgressInd extScanProgressInd;
8319}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8320
8321/*---------------------------------------------------------------------------
8322 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8323 *-------------------------------------------------------------------------*/
8324
8325typedef PACKED_PRE struct PACKED_POST
8326{
8327 tANI_U32 requestId;
8328 tANI_U32 numOfScanResAvailable;
8329}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8330
8331typedef PACKED_PRE struct PACKED_POST
8332{
8333 tHalMsgHeader header;
8334 tHalExtScanResAvailableInd extScanResAvailableInd;
8335}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8336
Dino Mycle108eff22014-06-10 09:36:44 +05308337typedef PACKED_PRE struct PACKED_POST
8338{
8339 /* AP BSSID */
8340 tSirMacAddr bssid;
8341 /* low threshold - used in L for significant_change - not used in L for
8342 hotlist*/
8343 tANI_S32 lowRssiThreshold;
8344 /* high threshold - used in L for significant rssi - used in L for hotlist */
8345 tANI_S32 highRssiThreshold;
Dino Mycle108eff22014-06-10 09:36:44 +05308346} tApThresholdParams, *tpApThresholdParams;
8347
Dino Mycle108eff22014-06-10 09:36:44 +05308348/*---------------------------------------------------------------------------
8349 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8350 *-------------------------------------------------------------------------*/
8351
8352typedef PACKED_PRE struct PACKED_POST
8353{
8354 tANI_U32 requestId;
8355 tANI_U8 sessionId;
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308356 tANI_U32 lostBssidSampleSize;
Dino Mycle108eff22014-06-10 09:36:44 +05308357 // number of hotlist APs
Padma, Santhosh Kumar37f4fd12015-08-19 14:37:37 +05308358 tANI_U32 numBssid;
Dino Mycle108eff22014-06-10 09:36:44 +05308359 // hotlist APs
8360 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8361} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8362
8363typedef PACKED_PRE struct PACKED_POST
8364{
8365 tHalMsgHeader header;
8366 tHalBssidHotlistSetReq bssidHotlistSetReq;
8367}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8368
8369/*---------------------------------------------------------------------------
8370 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8371 *-------------------------------------------------------------------------*/
8372
8373typedef PACKED_PRE struct PACKED_POST
8374{
8375 tANI_U32 requestId;
8376 tANI_U32 status;
8377}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8378
8379typedef PACKED_PRE struct PACKED_POST
8380{
8381 tHalMsgHeader header;
8382 tHalHotlistSetRsp hotlistSetRsp;
8383}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8384
8385/*---------------------------------------------------------------------------
8386 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8387 *-------------------------------------------------------------------------*/
8388
8389typedef PACKED_PRE struct PACKED_POST
8390{
8391 tANI_U32 requestId;
8392}tHalHotlistResetReq, *tpHalHotlistResetReq;
8393
8394typedef PACKED_PRE struct PACKED_POST
8395{
8396 tHalMsgHeader header;
8397 tHalHotlistResetReq hotlistResetReq;
8398}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8399
8400/*---------------------------------------------------------------------------
8401 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8402 *-------------------------------------------------------------------------*/
8403
8404typedef PACKED_PRE struct PACKED_POST
8405{
8406 tANI_U32 requestId;
8407 tANI_U32 status;
8408}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8409
8410typedef PACKED_PRE struct PACKED_POST
8411{
8412 tHalMsgHeader header;
8413 tHalHotlistResetRsp hotlistResetRsp;
8414}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8415
8416/*---------------------------------------------------------------------------
8417 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8418 *-------------------------------------------------------------------------*/
8419
8420typedef PACKED_PRE struct PACKED_POST
8421{
8422 tHalMsgHeader header;
8423 tANI_U32 requestId;
8424 tANI_U32 numHotlistBss;
8425 tANI_BOOLEAN moreData;
8426 tANI_U8 bssHotlist[1];
8427}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8428
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308429/*---------------------------------------------------------------------------
Padma, Santhosh Kumar208ca412015-09-10 20:47:34 +05308430 * WLAN_HAL_SSID_HOTLIST_SET_REQ
8431 *-------------------------------------------------------------------------*/
8432
8433typedef PACKED_PRE struct PACKED_POST
8434{
8435 /* SSID */
8436 char ssid [32+1];
8437 /* low threshold - used in L for significant_change - not used in L for
8438 hotlist*/
8439 tANI_S32 lowRssiThreshold;
8440 /* high threshold - used in L for significant rssi - used in L for hotlist */
8441 tANI_S32 highRssiThreshold;
8442 /* band */
8443 tANI_U32 band;
8444 } tSsidThresholdParams, *tpSsidThresholdParams;
8445
8446
8447typedef PACKED_PRE struct PACKED_POST
8448{
8449 tANI_U32 requestId;
8450 tANI_U8 sessionId;
8451 tANI_U32 lostSsidSampleSize;
8452 // number of hotlist SSIDs
8453 tANI_U32 numSsid;
8454 // hotlist SSIDs
8455 tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
8456} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
8457
8458typedef PACKED_PRE struct PACKED_POST
8459{
8460 tHalMsgHeader header;
8461 tHalSsidHotlistSetReq ssidHotlistSetReq;
8462}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
8463
8464/*---------------------------------------------------------------------------
8465 * WLAN_HAL_SSID_HOTLIST_SET_RSP
8466 *-------------------------------------------------------------------------*/
8467typedef PACKED_PRE struct PACKED_POST
8468{
8469 tANI_U32 requestId;
8470 tANI_U32 status;
8471}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
8472
8473typedef PACKED_PRE struct PACKED_POST
8474{
8475 tHalMsgHeader header;
8476 tHalSsidHotlistSetRsp hotlistSetRsp;
8477}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
8478
8479/*---------------------------------------------------------------------------
8480 * WLAN_HAL_SSID_HOTLIST_RESET_REQ
8481 *-------------------------------------------------------------------------*/
8482
8483typedef PACKED_PRE struct PACKED_POST
8484{
8485 tANI_U32 requestId;
8486}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
8487
8488typedef PACKED_PRE struct PACKED_POST
8489{
8490 tHalMsgHeader header;
8491 tHalSsidHotlistResetReq hotlistResetReq;
8492}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
8493
8494/*---------------------------------------------------------------------------
8495 * WLAN_HAL_SSID_HOTLIST_RESET_RSP
8496 *-------------------------------------------------------------------------*/
8497
8498typedef PACKED_PRE struct PACKED_POST
8499{
8500 tANI_U32 requestId;
8501 tANI_U32 status;
8502}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
8503
8504typedef PACKED_PRE struct PACKED_POST
8505{
8506 tHalMsgHeader header;
8507 tHalSsidHotlistResetRsp hotlistResetRsp;
8508}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
8509
8510/*---------------------------------------------------------------------------
8511 * WLAN_HAL_SSID_HOTLIST_RESULT_IND
8512 *-------------------------------------------------------------------------*/
8513
8514typedef PACKED_PRE struct PACKED_POST
8515{
8516 tHalMsgHeader header;
8517 tANI_U32 requestId;
8518 tANI_BOOLEAN ssid_found;
8519 tANI_U32 numHotlistSsid;
8520 tANI_BOOLEAN moreData;
8521 tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
8522}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
8523
8524/*---------------------------------------------------------------------------
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308525 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8526 *--------------------------------------------------------------------------*/
8527typedef PACKED_PRE struct PACKED_POST
8528{
8529 tANI_U8 macAddr[6];
8530 tANI_U32 reserved1;
8531 tANI_U32 reserved2;
8532}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8533
8534typedef PACKED_PRE struct PACKED_POST
8535{
8536 tHalMsgHeader header;
8537 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8538} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8539
8540/*---------------------------------------------------------------------------
8541* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8542*-------------------------------------------------------------------------*/
8543
8544typedef PACKED_PRE struct PACKED_POST
8545{
8546 tANI_U32 status;
8547 tANI_U32 reserved1;
8548} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8549
8550typedef PACKED_PRE struct PACKED_POST
8551{
8552 tHalMsgHeader header;
8553 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8554} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308555/*---------------------------------------------------------------------------
8556 *WLAN_HAL_GET_FRAME_LOG_REQ
8557 *--------------------------------------------------------------------------*/
8558typedef PACKED_PRE struct PACKED_POST
8559{
8560 tANI_U8 flags;
8561}tGetFrameLogReqType, * tpGetFrameLogReqType;
8562
8563typedef PACKED_PRE struct PACKED_POST
8564{
8565 tHalMsgHeader header;
8566 tGetFrameLogReqType tGetFrameLogReqParams;
8567} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8568
8569/*---------------------------------------------------------------------------
8570 * WLAN_HAL_GET_FRAME_LOG_RSP
8571 *-------------------------------------------------------------------------*/
8572typedef PACKED_PRE struct PACKED_POST
8573{
8574 tANI_U32 status;
8575} tGetFrameLogResp, * tpGetFrameLogResp;
8576
8577typedef PACKED_PRE struct PACKED_POST
8578{
8579 tHalMsgHeader header;
8580 tGetFrameLogResp tGetFrameLogRespParams;
8581} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8582
8583/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308584 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8585 *-------------------------------------------------------------------------*/
8586typedef PACKED_PRE struct PACKED_POST
8587{
8588 tANI_U32 reasonCode;
8589}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8590
8591typedef PACKED_PRE struct PACKED_POST
8592{
8593 tHalMsgHeader header;
8594 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8595}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8596
8597/*---------------------------------------------------------------------------
8598 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8599 *-------------------------------------------------------------------------*/
8600typedef PACKED_PRE struct PACKED_POST
8601{ tANI_U32 status;
8602}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8603
8604typedef PACKED_PRE struct PACKED_POST
8605{
8606 tHalMsgHeader header;
8607 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8608}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8609
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308610/*---------------------------------------------------------------------------
8611 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8612 *-------------------------------------------------------------------------*/
8613typedef PACKED_PRE struct PACKED_POST
8614{
8615 tANI_U8 bssIdx;
8616 tANI_U8 rssi;
8617 tSirMacAddr selfMacAddr;
8618 tANI_U32 linkFlCnt;
8619 tANI_U32 linkFlTx;
8620 tANI_U32 lastDataRate;
8621 tANI_U32 rsvd1;
8622 tANI_U32 rsvd2;
8623}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8624
8625typedef PACKED_PRE struct PACKED_POST
8626{
8627 tHalMsgHeader header;
8628 tHalLostLinkParametersIndParams lostLinkParameters;
8629}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308630
8631
8632/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308633 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308634 *--------------------------------------------------------------------------*/
8635typedef PACKED_PRE struct PACKED_POST
8636{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308637 /* BIT0 - enable frame logging
8638 * BIT1 - enableBMUHWtracing
8639 * BIT2 - enableQXDMlogging
8640 * BIT3 - enableUElogDpuTxp
8641 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308642 tANI_U8 enableFlag;
8643 tANI_U8 frameType;
8644 tANI_U8 frameSize;
8645 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308646 /* Host mem address to be used as logmailbox */
8647 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308648 /* firmware will wakeup the host to send logs always */
8649 tANI_U8 continuousFrameLogging;
8650 /* Logging mail box version */
8651 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308652 /* Max ring size in firmware to log msgs when host is suspended state */
8653 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308654 /* when firmware log reaches this threshold and
8655 * if host is awake it will push the logs.
8656 */
8657 tANI_U8 minLogBuffSize;
8658 /* Reserved for future purpose */
8659 tANI_U32 reserved0;
8660 tANI_U32 reserved1;
8661 tANI_U32 reserved2;
8662}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308663
8664typedef PACKED_PRE struct PACKED_POST
8665{
8666 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308667 tFWLoggingInitReqType tFWLoggingInitReqParams;
8668} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308669
8670/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308671 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308672 *-------------------------------------------------------------------------*/
8673typedef PACKED_PRE struct PACKED_POST
8674{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308675 tANI_U32 status;
8676 /* FW mail box address */
8677 tANI_U64 logMailBoxAddr;
8678 /* Logging mail box version */
8679 tANI_U8 logMailBoxVer;
8680 /* Qshrink is enabled */
8681 tANI_BOOLEAN logCompressEnabled;
c_manjeecfd1efb2015-09-25 19:32:34 +05308682 /* fw_dump_max_size is used to tell fwr mem dump size */
8683 tANI_U32 fw_dump_max_size;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308684 /* Reserved for future purpose */
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308685 tANI_U32 reserved1;
8686 tANI_U32 reserved2;
8687} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308688
8689typedef PACKED_PRE struct PACKED_POST
8690{
8691 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308692 tFWLoggingInitResp tFWLoggingInitRespParams;
8693} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
8694
8695/*---------------------------------------------------------------------------
8696 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
8697 *-------------------------------------------------------------------------*/
8698typedef PACKED_PRE struct PACKED_POST
8699{
Hanumantha Reddy Pothula33df9702015-09-15 20:05:45 +05308700 tANI_U16 status;
8701 tANI_U16 doneIndicationForSource;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308702 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8703 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8704} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
8705
8706typedef PACKED_PRE struct PACKED_POST
8707{
8708 tHalMsgHeader header;
8709 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
8710} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
8711
8712/*---------------------------------------------------------------------------
8713 * Logging mail box structure
8714 *-------------------------------------------------------------------------*/
8715
8716#define MAILBOX_VERSION_V1 0x1
8717
8718typedef PACKED_PRE struct PACKED_POST
8719{
8720 /* Logging mail box version */
8721 tANI_U8 logMbVersion;
8722 /* Current logging buffer address */
8723 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8724 /* Current logging buffer length */
8725 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8726 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
8727 tANI_U16 reasonCode;
8728 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
8729 tANI_U8 logType;
8730 /* Indicate if Last segment of log is received*/
8731 tANI_BOOLEAN done;
8732}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308733
Katya Nigamf0511f62015-05-05 16:40:57 +05308734/*---------------------------------------------------------------------------
c_manjeecfd1efb2015-09-25 19:32:34 +05308735 *WLAN_HAL_FW_MEMORY_DUMP_REQ
8736 *--------------------------------------------------------------------------*/
8737typedef PACKED_PRE struct PACKED_POST
8738{
8739 tANI_U32 reserved;
8740}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
8741
8742typedef PACKED_PRE struct PACKED_POST
8743{
8744 tHalMsgHeader header;
8745 tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
8746} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
8747
8748/*---------------------------------------------------------------------------
8749 * WLAN_HAL_FW_MEMORY_DUMP_RSP
8750 *-------------------------------------------------------------------------*/
8751typedef PACKED_PRE struct PACKED_POST
8752{
8753 tANI_U32 status;
8754} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
8755
8756typedef PACKED_PRE struct PACKED_POST
8757{
8758 tHalMsgHeader header;
8759 tHalFwMemoryDumpRespType tFwMemoryDumpResp;
8760} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
8761
8762
8763/*---------------------------------------------------------------------------
Katya Nigamf0511f62015-05-05 16:40:57 +05308764* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
8765*-------------------------------------------------------------------------*/
8766
8767/* only 1 filter is supported as of now */
8768#define NUM_FILTERS_SUPPORTED 1
8769
8770typedef PACKED_PRE struct PACKED_POST
8771{
8772 tSirMacAddr macAddr;
8773 tANI_U8 isA1filteringNeeded;
8774 tANI_U8 isA2filteringNeeded;
8775 tANI_U8 isA3filteringNeeded;
8776}tHalMacFilter, *tpHalMacFilter;
8777
8778typedef PACKED_PRE struct PACKED_POST
8779{
8780 tANI_U8 channelNumber;
8781 ePhyChanBondState cbState;
8782
8783 tANI_U32 maxAmpduLen;
8784 tANI_U32 maxMpduInAmpduLen;
8785
8786 tANI_U8 crcCheckEnabled;
8787
8788 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
8789 tANI_U8 numMacFilters;
8790 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
8791
8792 /* Each bit position maps to IEEE convention of typeSubtype */
8793 tANI_U64 typeSubtypeBitmap;
8794
8795 tANI_U64 reserved;
8796
8797}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
8798
8799typedef PACKED_PRE struct PACKED_POST
8800{
8801 tHalMsgHeader header;
8802 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
8803}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
8804
8805
8806/*---------------------------------------------------------------------------
8807* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
8808*-------------------------------------------------------------------------*/
8809
8810typedef PACKED_PRE struct PACKED_POST
8811{
8812 tANI_U32 status;
8813}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
8814
8815typedef PACKED_PRE struct PACKED_POST
8816{
8817 tHalMsgHeader header;
8818 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
8819}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
8820
8821/*---------------------------------------------------------------------------
8822* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
8823*-------------------------------------------------------------------------*/
8824
8825typedef PACKED_PRE struct PACKED_POST
8826{
8827 tHalMsgHeader header;
8828 tANI_U8 resetConfiguration;
8829}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
8830
8831/*---------------------------------------------------------------------------
8832* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
8833*-------------------------------------------------------------------------*/
8834
8835typedef PACKED_PRE struct PACKED_POST
8836{
8837 tANI_U32 status;
8838}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
8839
8840typedef PACKED_PRE struct PACKED_POST
8841{
8842 tHalMsgHeader header;
8843 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
8844}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
8845
Mahesh A Saptasagar94c7cd42015-09-08 13:19:14 +05308846typedef PACKED_PRE struct PACKED_POST
8847{
8848 tANI_U8 status;
8849}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
8850
Jeff Johnson295189b2012-06-20 16:38:30 -07008851#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8852#pragma pack(pop)
8853#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8854#else
8855#endif
8856
8857#endif /* _WLAN_HAL_MSG_H_ */