blob: a3dc13954eddbf066b3b5cceaf30ad561cd03dad [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
130#define WLAN_HAL_EXT_SCAN_MAX_SIG_CHANGE_APS 64
131#define WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE 8
132
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530133/* For Logging enhancement feature currently max 2 address will be passed */
134/* In future we may pass 3 address and length in suspend mode corner case */
135#define MAX_NUM_OF_BUFFER 3
136
137/* Log types */
138typedef enum
139{
140 MGMT_FRAME_LOGS = 0,
141 QXDM_LOGGING = 1,
142 FW_MEMORY_DUMP = 2
143}tHalFrameLoggingType;
144
145/* Log size */
146typedef enum
147{
148 LOG_SIZE_4K = 0,
149 LOG_SIZE_8K = 1,
150 LOG_SIZE_12K = 2,
151 LOG_SIZE_16K = 3,
152 LOG_SIZE_32K = 4,
153 LOG_SIZE_64K = 5,
154 LOG_SIZE_96K = 6
155}tHalLogBuffSize;
156
Jeff Johnson295189b2012-06-20 16:38:30 -0700157/* Message types for messages exchanged between WDI and HAL */
Dino Mycle8afbac12014-07-04 22:06:17 +0530158typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700159{
160 //Init/De-Init
161 WLAN_HAL_START_REQ = 0,
162 WLAN_HAL_START_RSP = 1,
163 WLAN_HAL_STOP_REQ = 2,
164 WLAN_HAL_STOP_RSP = 3,
165
166 //Scan
167 WLAN_HAL_INIT_SCAN_REQ = 4,
168 WLAN_HAL_INIT_SCAN_RSP = 5,
169 WLAN_HAL_START_SCAN_REQ = 6,
170 WLAN_HAL_START_SCAN_RSP = 7 ,
171 WLAN_HAL_END_SCAN_REQ = 8,
172 WLAN_HAL_END_SCAN_RSP = 9,
173 WLAN_HAL_FINISH_SCAN_REQ = 10,
174 WLAN_HAL_FINISH_SCAN_RSP = 11,
175
176 // HW STA configuration/deconfiguration
177 WLAN_HAL_CONFIG_STA_REQ = 12,
178 WLAN_HAL_CONFIG_STA_RSP = 13,
179 WLAN_HAL_DELETE_STA_REQ = 14,
180 WLAN_HAL_DELETE_STA_RSP = 15,
181 WLAN_HAL_CONFIG_BSS_REQ = 16,
182 WLAN_HAL_CONFIG_BSS_RSP = 17,
183 WLAN_HAL_DELETE_BSS_REQ = 18,
184 WLAN_HAL_DELETE_BSS_RSP = 19,
185
186 //Infra STA asscoiation
187 WLAN_HAL_JOIN_REQ = 20,
188 WLAN_HAL_JOIN_RSP = 21,
189 WLAN_HAL_POST_ASSOC_REQ = 22,
190 WLAN_HAL_POST_ASSOC_RSP = 23,
191
192 //Security
193 WLAN_HAL_SET_BSSKEY_REQ = 24,
194 WLAN_HAL_SET_BSSKEY_RSP = 25,
195 WLAN_HAL_SET_STAKEY_REQ = 26,
196 WLAN_HAL_SET_STAKEY_RSP = 27,
197 WLAN_HAL_RMV_BSSKEY_REQ = 28,
198 WLAN_HAL_RMV_BSSKEY_RSP = 29,
199 WLAN_HAL_RMV_STAKEY_REQ = 30,
200 WLAN_HAL_RMV_STAKEY_RSP = 31,
201
202 //Qos Related
203 WLAN_HAL_ADD_TS_REQ = 32,
204 WLAN_HAL_ADD_TS_RSP = 33,
205 WLAN_HAL_DEL_TS_REQ = 34,
206 WLAN_HAL_DEL_TS_RSP = 35,
207 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
208 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
209 WLAN_HAL_ADD_BA_REQ = 38,
210 WLAN_HAL_ADD_BA_RSP = 39,
211 WLAN_HAL_DEL_BA_REQ = 40,
212 WLAN_HAL_DEL_BA_RSP = 41,
213
214 WLAN_HAL_CH_SWITCH_REQ = 42,
215 WLAN_HAL_CH_SWITCH_RSP = 43,
216 WLAN_HAL_SET_LINK_ST_REQ = 44,
217 WLAN_HAL_SET_LINK_ST_RSP = 45,
218 WLAN_HAL_GET_STATS_REQ = 46,
219 WLAN_HAL_GET_STATS_RSP = 47,
220 WLAN_HAL_UPDATE_CFG_REQ = 48,
221 WLAN_HAL_UPDATE_CFG_RSP = 49,
222
223 WLAN_HAL_MISSED_BEACON_IND = 50,
224 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
225 WLAN_HAL_MIC_FAILURE_IND = 52,
226 WLAN_HAL_FATAL_ERROR_IND = 53,
227 WLAN_HAL_SET_KEYDONE_MSG = 54,
Dino Mycle8afbac12014-07-04 22:06:17 +0530228
Jeff Johnson295189b2012-06-20 16:38:30 -0700229 //NV Interface
230 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
231 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
232
233 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
234 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
235 WLAN_HAL_TRIGGER_BA_REQ = 59,
236 WLAN_HAL_TRIGGER_BA_RSP = 60,
237 WLAN_HAL_UPDATE_BEACON_REQ = 61,
238 WLAN_HAL_UPDATE_BEACON_RSP = 62,
239 WLAN_HAL_SEND_BEACON_REQ = 63,
240 WLAN_HAL_SEND_BEACON_RSP = 64,
241
242 WLAN_HAL_SET_BCASTKEY_REQ = 65,
243 WLAN_HAL_SET_BCASTKEY_RSP = 66,
244 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
245 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
246 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Dino Mycle8afbac12014-07-04 22:06:17 +0530247
Jeff Johnson295189b2012-06-20 16:38:30 -0700248 // PTT interface support
249 WLAN_HAL_PROCESS_PTT_REQ = 70,
250 WLAN_HAL_PROCESS_PTT_RSP = 71,
Dino Mycle8afbac12014-07-04 22:06:17 +0530251
Jeff Johnson295189b2012-06-20 16:38:30 -0700252 // BTAMP related events
253 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
254 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
255 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
256 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
257
258 WLAN_HAL_ENTER_IMPS_REQ = 76,
259 WLAN_HAL_EXIT_IMPS_REQ = 77,
260 WLAN_HAL_ENTER_BMPS_REQ = 78,
261 WLAN_HAL_EXIT_BMPS_REQ = 79,
262 WLAN_HAL_ENTER_UAPSD_REQ = 80,
263 WLAN_HAL_EXIT_UAPSD_REQ = 81,
264 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
265 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
266 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
267 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
268 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
269 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
270 WLAN_HAL_ENTER_WOWL_REQ = 88,
271 WLAN_HAL_EXIT_WOWL_REQ = 89,
272 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
273 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
274 WLAN_HAL_GET_RSSI_REQ = 92,
275 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
276 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
277
278 WLAN_HAL_ENTER_IMPS_RSP = 95,
279 WLAN_HAL_EXIT_IMPS_RSP = 96,
280 WLAN_HAL_ENTER_BMPS_RSP = 97,
281 WLAN_HAL_EXIT_BMPS_RSP = 98,
282 WLAN_HAL_ENTER_UAPSD_RSP = 99,
283 WLAN_HAL_EXIT_UAPSD_RSP = 100,
284 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
285 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
286 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
287 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
288 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
289 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
290 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
291 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
292 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
293 WLAN_HAL_ENTER_WOWL_RSP = 110,
294 WLAN_HAL_EXIT_WOWL_RSP = 111,
295 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
296 WLAN_HAL_GET_RSSI_RSP = 113,
297 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
298
299 //11k related events
300 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
301 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
302
303 //11R related msgs
304 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
305 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
306
307 //P2P WLAN_FEATURE_P2P
308 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
309 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Dino Mycle8afbac12014-07-04 22:06:17 +0530310
Jeff Johnson295189b2012-06-20 16:38:30 -0700311 //WLAN Dump commands
312 WLAN_HAL_DUMP_COMMAND_REQ = 121,
313 WLAN_HAL_DUMP_COMMAND_RSP = 122,
314
Jeff Johnsone7245742012-09-05 17:12:55 -0700315 //OEM_DATA FEATURE SUPPORT
316 WLAN_HAL_START_OEM_DATA_REQ = 123,
317 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700318
319 //ADD SELF STA REQ and RSP
320 WLAN_HAL_ADD_STA_SELF_REQ = 125,
321 WLAN_HAL_ADD_STA_SELF_RSP = 126,
322
323 //DEL SELF STA SUPPORT
324 WLAN_HAL_DEL_STA_SELF_REQ = 127,
325 WLAN_HAL_DEL_STA_SELF_RSP = 128,
326
327 // Coex Indication
328 WLAN_HAL_COEX_IND = 129,
329
Dino Mycle8afbac12014-07-04 22:06:17 +0530330 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700331 WLAN_HAL_OTA_TX_COMPL_IND = 130,
332
333 //Host Suspend/resume messages
334 WLAN_HAL_HOST_SUSPEND_IND = 131,
335 WLAN_HAL_HOST_RESUME_REQ = 132,
336 WLAN_HAL_HOST_RESUME_RSP = 133,
337
338 WLAN_HAL_SET_TX_POWER_REQ = 134,
339 WLAN_HAL_SET_TX_POWER_RSP = 135,
340 WLAN_HAL_GET_TX_POWER_REQ = 136,
341 WLAN_HAL_GET_TX_POWER_RSP = 137,
342
343 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Dino Mycle8afbac12014-07-04 22:06:17 +0530344
Jeff Johnson295189b2012-06-20 16:38:30 -0700345 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
346 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
347 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
348 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
349 WLAN_HAL_RADAR_DETECT_IND = 143,
350 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
351 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Dino Mycle8afbac12014-07-04 22:06:17 +0530352 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700353
354 /*PNO messages*/
355 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
356 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
357 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
358 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
359 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
360 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Dino Mycle8afbac12014-07-04 22:06:17 +0530361 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700362
363 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
364 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
365 WLAN_HAL_TX_PER_HIT_IND = 156,
Dino Mycle8afbac12014-07-04 22:06:17 +0530366
Jeff Johnson295189b2012-06-20 16:38:30 -0700367 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Dino Mycle8afbac12014-07-04 22:06:17 +0530368 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700369
370 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Dino Mycle8afbac12014-07-04 22:06:17 +0530371 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700372 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Dino Mycle8afbac12014-07-04 22:06:17 +0530373 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700374 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Dino Mycle8afbac12014-07-04 22:06:17 +0530375 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
376 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700377 * Host and Riva code is in sync*/
378 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Dino Mycle8afbac12014-07-04 22:06:17 +0530379
Jeff Johnson295189b2012-06-20 16:38:30 -0700380 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
381 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
382
383 WLAN_HAL_TSM_STATS_REQ = 168,
384 WLAN_HAL_TSM_STATS_RSP = 169,
385
386 // wake reason indication (WOW)
387 WLAN_HAL_WAKE_REASON_IND = 170,
Dino Mycle8afbac12014-07-04 22:06:17 +0530388 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700389 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
390 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
391 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
392 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
393
394 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
395 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
396 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
397
398 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
399 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
400
Anand Kumar012623a2013-01-11 17:00:00 -0800401 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
402 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800403
Anand Kumar012623a2013-01-11 17:00:00 -0800404 WLAN_HAL_P2P_NOA_START_IND = 184,
405
406 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
407 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Dino Mycle8afbac12014-07-04 22:06:17 +0530408
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800409 WLAN_HAL_CLASS_B_STATS_IND = 187,
410 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800411 WLAN_HAL_DHCP_START_IND = 189,
412 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700413 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
414 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530415 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
416 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700417
418 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
419 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
420 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
421
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530422 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
423 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
424 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
425 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
426 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700427 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700428
Kumar Anandf53016f2013-09-04 15:15:53 -0700429 /* Scan Offload APIs */
430 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
431 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
432 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
433 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
434 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
435 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
436 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
437
Leo Chang397deb72013-08-22 11:33:16 -0700438 /* APIs to offload TCP/UDP Heartbeat handshakes */
439 WLAN_HAL_LPHB_CFG_REQ = 211,
440 WLAN_HAL_LPHB_CFG_RSP = 212,
441 WLAN_HAL_LPHB_IND = 213,
442
Yue Maab3ccfc2013-08-14 17:19:08 -0700443 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
444 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
445 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530446
Kumar Anandf53016f2013-09-04 15:15:53 -0700447 // Events to set Per-Band Tx Power Limit
448 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
449 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
450
451 /* Reliable Multicast using Leader Based Protocol */
452 WLAN_HAL_LBP_LEADER_REQ = 219,
453 WLAN_HAL_LBP_LEADER_RSP = 220,
454 WLAN_HAL_LBP_UPDATE_IND = 221,
455
krunal soni2a4728d2013-09-20 21:56:50 -0700456 /* Batchscan */
457 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
458 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
459 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
460 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
461 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
462
463 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
464 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
465
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700466 WLAN_HAL_RATE_UPDATE_IND = 229,
467
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530468 /* Tx Fail for weak link notification */
469 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
470 WLAN_HAL_TX_FAIL_IND = 231,
471
472 /* Multi-hop IP routing offload */
473 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
474
Amar Singhalb41c45b2014-03-21 14:44:14 -0700475 /* Channel avoidance for LTE Coex */
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530476 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800477
Amar Singhalb41c45b2014-03-21 14:44:14 -0700478 /* Fast Roam Offload Synchup request protocol */
479 /* TODO_LFR3 : change this value accordingly before final check-in */
480 WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
481 WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
482
483 WLAN_HAL_MOTION_START_EVENT_REQ = 250,
484 WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
485
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800486 /* Channel Switch Request version 1 */
487 WLAN_HAL_CH_SWITCH_V1_REQ = 252,
488 WLAN_HAL_CH_SWITCH_V1_RSP = 253,
489
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530490 /* 2G4 HT40 OBSS scan */
491 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700492 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
493
494 /* WLAN NAN Messages */
495 WLAN_HAL_NAN_FIRST = 256,
496 WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
497 WLAN_HAL_NAN_RSP = 257,
498 WLAN_HAL_NAN_EVT = 258,
499 WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
c_hpothu80c30472014-04-14 19:04:48 +0530500 WLAN_HAL_PRINT_REG_INFO_IND = 259,
501
c_hpothua047e572014-05-01 15:03:11 +0530502 WLAN_HAL_GET_BCN_MISS_RATE_REQ = 260,
503 WLAN_HAL_GET_BCN_MISS_RATE_RSP = 261,
504
Sunil Dutt8377a382014-05-26 21:18:04 +0530505 /* WLAN LINK LAYER STATS Messages */
506 WLAN_HAL_LL_SET_STATS_REQ = 262,
507 WLAN_HAL_LL_SET_STATS_RSP = 263,
508 WLAN_HAL_LL_GET_STATS_REQ = 264,
509 WLAN_HAL_LL_GET_STATS_RSP = 265,
510 WLAN_HAL_LL_CLEAR_STATS_REQ = 266,
511 WLAN_HAL_LL_CLEAR_STATS_RSP = 267,
512 WLAN_HAL_LL_NOTIFY_STATS = 268,
Dino Mycle8afbac12014-07-04 22:06:17 +0530513 WLAN_HAL_LL_LAST = WLAN_HAL_LL_NOTIFY_STATS,
Dino Mycle108eff22014-06-10 09:36:44 +0530514
Dino Mycle8afbac12014-07-04 22:06:17 +0530515 /* WLAN EXT_SCAN Messages */
516 WLAN_HAL_EXT_SCAN_START_REQ = 269,
517 WLAN_HAL_EXT_SCAN_START_RSP = 270,
518 WLAN_HAL_EXT_SCAN_GET_CAP_REQ = 271,
519 WLAN_HAL_EXT_SCAN_GET_CAP_RSP = 272,
520 WLAN_HAL_EXT_SCAN_STOP_REQ = 273,
521 WLAN_HAL_EXT_SCAN_STOP_RSP = 274,
522 WLAN_HAL_EXT_SCAN_GET_SCAN_REQ = 275,
523 WLAN_HAL_EXT_SCAN_GET_SCAN_RSP = 276,
Dino Mycle108eff22014-06-10 09:36:44 +0530524
525 WLAN_HAL_BSSID_HOTLIST_SET_REQ = 277,
526 WLAN_HAL_BSSID_HOTLIST_SET_RSP = 278,
527 WLAN_HAL_BSSID_HOTLIST_RESET_REQ = 279,
528 WLAN_HAL_BSSID_HOTLIST_RESET_RSP = 280,
529
530 WLAN_HAL_SIG_RSSI_SET_REQ = 281,
531 WLAN_HAL_SIG_RSSI_SET_RSP = 282,
532 WLAN_HAL_SIG_RSSI_RESET_REQ = 283,
533 WLAN_HAL_SIG_RSSI_RESET_RSP = 284,
534
Dino Mycle8afbac12014-07-04 22:06:17 +0530535 WLAN_HAL_EXT_SCAN_RESULT_IND = 285,
Dino Mycle108eff22014-06-10 09:36:44 +0530536 WLAN_HAL_BSSID_HOTLIST_RESULT_IND = 286,
537 WLAN_HAL_SIG_RSSI_RESULT_IND = 287,
Dino Mycle8afbac12014-07-04 22:06:17 +0530538 WLAN_HAL_EXT_SCAN_PROGRESS_IND = 288,
539 WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND = 289,
Atul Mittal53419ed2014-08-03 19:41:23 +0530540 WLAN_HAL_TDLS_CHAN_SWITCH_REQ = 290,
541 WLAN_HAL_TDLS_CHAN_SWITCH_RSP = 291,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +0530542 WLAN_HAL_MAC_SPOOFED_SCAN_REQ = 292,
543 WLAN_HAL_MAC_SPOOFED_SCAN_RSP = 293,
Srinivas Dasari42584632014-11-26 20:37:19 +0530544 /* LGE DISA encrypt-decrypt Messages */
545 WLAN_HAL_ENCRYPT_DATA_REQ = 294,
546 WLAN_HAL_ENCRYPT_DATA_RSP = 295,
Sunil Dutt8377a382014-05-26 21:18:04 +0530547
Abhishek Singh725c1582014-11-24 11:47:48 +0530548 WLAN_HAL_FW_STATS_REQ = 296,
549 WLAN_HAL_FW_STATS_RSP = 297,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530550 WLAN_HAL_FW_LOGGING_INIT_REQ = 298,
551 WLAN_HAL_FW_LOGGING_INIT_RSP = 299,
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +0530552 WLAN_HAL_GET_FRAME_LOG_REQ = 300,
553 WLAN_HAL_GET_FRAME_LOG_RSP = 301,
Abhishek Singh725c1582014-11-24 11:47:48 +0530554
Abhishek Singhbc310882015-05-22 15:17:02 +0530555 /* Monitor Mode */
556 WLAN_HAL_ENABLE_MONITOR_MODE_REQ = 302,
557 WLAN_HAL_ENABLE_MONITOR_MODE_RSP = 303,
558
559 WLAN_HAL_DISABLE_MONITOR_MODE_REQ = 304,
560 WLAN_HAL_DISABLE_MONITOR_MODE_RSP = 305,
Katya Nigamf0511f62015-05-05 16:40:57 +0530561
Abhishek Singhbc310882015-05-22 15:17:02 +0530562 WLAN_HAL_SET_RTS_CTS_HTVHT_IND = 306,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +0530563 // FW Logging
564 WLAN_HAL_FATAL_EVENT_LOGGING_REQ = 307,
565 WLAN_HAL_FATAL_EVENT_LOGGING_RSP = 308,
566 WLAN_HAL_FW_MEMORY_DUMP_REQ = 309,
567 WLAN_HAL_FW_MEMORY_DUMP_RSP = 310,
568 WLAN_HAL_FW_LOGGING_DXE_DONE_IND = 311,
Sachin Ahuja75c1fd72015-08-28 15:46:46 +0530569 WLAN_HAL_LOST_LINK_PARAMETERS_IND = 312,
Abhishek Singhbc310882015-05-22 15:17:02 +0530570
Sunil Dutt8377a382014-05-26 21:18:04 +0530571 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700572}tHalHostMsgType;
573
Jeff Johnsone7245742012-09-05 17:12:55 -0700574/* Enumeration for Version */
575typedef enum
576{
577 WLAN_HAL_MSG_VERSION0 = 0,
578 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800579 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
580 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700581}tHalHostMsgVersion;
582
Jeff Johnson295189b2012-06-20 16:38:30 -0700583/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530584typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700585{
586 eANI_BOOLEAN_FALSE = 0,
587 eANI_BOOLEAN_TRUE,
588 eANI_BOOLEAN_OFF = 0,
589 eANI_BOOLEAN_ON = 1,
590 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
591} eAniBoolean;
592
593typedef enum
594{
595 eDRIVER_TYPE_PRODUCTION = 0,
596 eDRIVER_TYPE_MFG = 1,
597 eDRIVER_TYPE_DVT = 2,
598 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
599} tDriverType;
600
601typedef enum
602{
603 HAL_STOP_TYPE_SYS_RESET,
604 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
605 HAL_STOP_TYPE_RF_KILL,
606 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
607}tHalStopType;
608
609typedef enum
610{
611 eHAL_SYS_MODE_NORMAL,
612 eHAL_SYS_MODE_LEARN,
613 eHAL_SYS_MODE_SCAN,
614 eHAL_SYS_MODE_PROMISC,
615 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700616 eHAL_SYS_MODE_ROAM_SCAN,
617 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700618 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700619 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
620} eHalSysMode;
621
622typedef enum
623{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800624 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
625 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
626 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
627 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
628 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
629 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
630 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
631 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
632 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700633 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800634 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
635} eHalChanSwitchSource;
636
637typedef enum
638{
Jeff Johnson295189b2012-06-20 16:38:30 -0700639 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
640 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
641 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
642 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700643#ifdef WLAN_FEATURE_11AC
644 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
645 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
646 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
647 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
648 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
649 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
650 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
651#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700652 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
653}ePhyChanBondState;
654
655// Spatial Multiplexing(SM) Power Save mode
656typedef enum eSirMacHTMIMOPowerSaveState
657{
658 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
659 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
660 eSIR_HT_MIMO_PS_NA = 2, // reserved
661 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
662 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
663} tSirMacHTMIMOPowerSaveState;
664
665/* each station added has a rate mode which specifies the sta attributes */
666typedef enum eStaRateMode {
667 eSTA_TAURUS = 0,
668 eSTA_TITAN,
669 eSTA_POLARIS,
670 eSTA_11b,
671 eSTA_11bg,
672 eSTA_11a,
673 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700674#ifdef WLAN_FEATURE_11AC
675 eSTA_11ac,
676#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700677 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
678} tStaRateMode, *tpStaRateMode;
679
680#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
681#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
682#define SIR_NUM_POLARIS_RATES 3 //72,96,108
683
684#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
685
686
687typedef enum eSirBssType
688{
689 eSIR_INFRASTRUCTURE_MODE,
690 eSIR_INFRA_AP_MODE, //Added for softAP support
691 eSIR_IBSS_MODE,
692 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
693 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
694 eSIR_AUTO_MODE,
695 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
696} tSirBssType;
697
698typedef enum eSirNwType
699{
700 eSIR_11A_NW_TYPE,
701 eSIR_11B_NW_TYPE,
702 eSIR_11G_NW_TYPE,
703 eSIR_11N_NW_TYPE,
704 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
705} tSirNwType;
706
707typedef tANI_U16 tSirMacBeaconInterval;
708
709#define SIR_MAC_RATESET_EID_MAX 12
710
711typedef enum eSirMacHTOperatingMode
712{
713 eSIR_HT_OP_MODE_PURE, // No Protection
714 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
715 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
716 eSIR_HT_OP_MODE_MIXED, // Protection is required
717 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
718} tSirMacHTOperatingMode;
719
Jeff Johnson295189b2012-06-20 16:38:30 -0700720/// Encryption type enum used with peer
721typedef enum eAniEdType
722{
723 eSIR_ED_NONE,
724 eSIR_ED_WEP40,
725 eSIR_ED_WEP104,
726 eSIR_ED_TKIP,
727 eSIR_ED_CCMP,
728 eSIR_ED_WPI,
729 eSIR_ED_AES_128_CMAC,
730 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
731} tAniEdType;
732
733#define WLAN_MAX_KEY_RSC_LEN 16
734#define WLAN_WAPI_KEY_RSC_LEN 16
735
736/// MAX key length when ULA is used
737#define SIR_MAC_MAX_KEY_LENGTH 32
738#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
739
740/// Enum to specify whether key is used
741/// for TX only, RX only or both
742typedef enum eAniKeyDirection
743{
744 eSIR_TX_ONLY,
745 eSIR_RX_ONLY,
746 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700747 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700748 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
749} tAniKeyDirection;
750
751typedef enum eAniWepType
752{
753 eSIR_WEP_STATIC,
754 eSIR_WEP_DYNAMIC,
755 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
756} tAniWepType;
757
758typedef enum eSriLinkState {
759
760 eSIR_LINK_IDLE_STATE = 0,
761 eSIR_LINK_PREASSOC_STATE = 1,
762 eSIR_LINK_POSTASSOC_STATE = 2,
763 eSIR_LINK_AP_STATE = 3,
764 eSIR_LINK_IBSS_STATE = 4,
765
766 /* BT-AMP Case */
767 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
768 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
769 eSIR_LINK_BTAMP_AP_STATE = 7,
770 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530771
Jeff Johnson295189b2012-06-20 16:38:30 -0700772 /* Reserved for HAL Internal Use */
773 eSIR_LINK_LEARN_STATE = 9,
774 eSIR_LINK_SCAN_STATE = 10,
775 eSIR_LINK_FINISH_SCAN_STATE = 11,
776 eSIR_LINK_INIT_CAL_STATE = 12,
777 eSIR_LINK_FINISH_CAL_STATE = 13,
778#ifdef WLAN_FEATURE_P2P
779 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530780 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700781#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700782#ifdef WLAN_FEATURE_ROAM_OFFLOAD
783 eSIR_LINK_FT_PREASSOC_STATE = 16,
784#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700785 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
786} tSirLinkState;
787
788typedef enum
789{
790 HAL_SUMMARY_STATS_INFO = 0x00000001,
791 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
792 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
793 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
794 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
795 HAL_PER_STA_STATS_INFO = 0x00000020
796}eHalStatsMask;
797
798/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530799typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700800{
801 BTAMP_EVENT_CONNECTION_START,
802 BTAMP_EVENT_CONNECTION_STOP,
803 BTAMP_EVENT_CONNECTION_TERMINATED,
804 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
805} tBtAmpEventType;
806
807//***************************************************************
808
809
810/*******************PE Statistics*************************/
811typedef enum
812{
813 PE_SUMMARY_STATS_INFO = 0x00000001,
814 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
815 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
816 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
817 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
818 PE_PER_STA_STATS_INFO = 0x00000020,
819 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
820}ePEStatsMask;
821
Sunil Dutt8377a382014-05-26 21:18:04 +0530822
823/******************************LINK LAYER Statitics**********************/
824
825typedef int wifi_radio;
826typedef int wifi_channel;
827typedef int wifi_tx_rate;
828
829/* channel operating width */
830typedef enum {
831 WIFI_CHAN_WIDTH_20 = 0,
832 WIFI_CHAN_WIDTH_40 = 1,
833 WIFI_CHAN_WIDTH_80 = 2,
834 WIFI_CHAN_WIDTH_160 = 3,
835 WIFI_CHAN_WIDTH_80P80 = 4,
836 WIFI_CHAN_WIDTH_5 = 5,
837 WIFI_CHAN_WIDTH_10 = 6,
838} wifi_channel_width;
839
840typedef enum {
841 WIFI_DISCONNECTED = 0,
842 WIFI_AUTHENTICATING = 1,
843 WIFI_ASSOCIATING = 2,
844 WIFI_ASSOCIATED = 3,
845 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
846 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
847} wifi_connection_state;
848
849typedef enum {
850 WIFI_ROAMING_IDLE = 0,
851 WIFI_ROAMING_ACTIVE = 1,
852} wifi_roam_state;
853
854typedef enum {
855 WIFI_INTERFACE_STA = 0,
856 WIFI_INTERFACE_SOFTAP = 1,
857 WIFI_INTERFACE_IBSS = 2,
858 WIFI_INTERFACE_P2P_CLIENT = 3,
859 WIFI_INTERFACE_P2P_GO = 4,
860 WIFI_INTERFACE_NAN = 5,
861 WIFI_INTERFACE_MESH = 6,
862 } wifi_interface_mode;
863
864#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
865#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
866#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
867#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
868#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
869#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
870
871typedef PACKED_PRE struct PACKED_POST
872{
873 wifi_interface_mode mode; // interface mode
874 tANI_U8 mac_addr[6]; // interface mac address (self)
875 wifi_connection_state state; // connection state (valid for STA, CLI only)
876 wifi_roam_state roaming; // roaming state
877 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
878 tANI_U8 ssid[33]; // null terminated SSID
879 tANI_U8 bssid[6]; // bssid
880 tANI_U8 ap_country_str[3]; // country string advertised by AP
881 tANI_U8 country_str[3]; // country string for this association
882} wifi_interface_info;
883
884/* channel information */
885typedef PACKED_PRE struct PACKED_POST
886{
887 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
888 wifi_channel center_freq; // primary 20 MHz channel
889 wifi_channel center_freq0; // center frequency (MHz) first segment
890 wifi_channel center_freq1; // center frequency (MHz) second segment
891} wifi_channel_info;
892
893/* wifi rate info */
894typedef PACKED_PRE struct PACKED_POST
895{
896 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
897 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
898 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
899 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
900 // HT/VHT it would be mcs index
901 tANI_U32 reserved :16; // reserved
902 tANI_U32 bitrate; // units of 100 Kbps
903} wifi_rate;
904
905/* channel statistics */
906typedef PACKED_PRE struct PACKED_POST
907{
908 wifi_channel_info channel; // channel
909 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
910 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
911} wifi_channel_stats;
912
913/* radio statistics */
914typedef PACKED_PRE struct PACKED_POST
915{
916 wifi_radio radio; // wifi radio (if multiple radio supported)
917 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
918 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
919 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
920 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
921 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
922 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
923 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
924 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
925 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
926 tANI_U32 num_channels; // number of channels
927 wifi_channel_stats channels[1]; // channel statistics
928} wifi_radio_stat;
929
930/* per rate statistics */
931typedef PACKED_PRE struct PACKED_POST
932{
933 wifi_rate rate; // rate information *
934 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
935 tANI_U32 rx_mpdu; // number of received data pkts
936 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
937 tANI_U32 retries; // total number of data pkt retries *
938 tANI_U32 retries_short; // number of short data pkt retries
939 tANI_U32 retries_long; // number of long data pkt retries
940} wifi_rate_stat;
941
942/* access categories */
943typedef enum {
944 WIFI_AC_VO = 0,
945 WIFI_AC_VI = 1,
946 WIFI_AC_BE = 2,
947 WIFI_AC_BK = 3,
948 WIFI_AC_MAX = 4,
949} wifi_traffic_ac;
950
951/* wifi peer type */
952typedef enum
953{
954 WIFI_PEER_STA,
955 WIFI_PEER_AP,
956 WIFI_PEER_P2P_GO,
957 WIFI_PEER_P2P_CLIENT,
958 WIFI_PEER_NAN,
959 WIFI_PEER_TDLS,
960 WIFI_PEER_INVALID,
961} wifi_peer_type;
962
963/* per peer statistics */
964typedef PACKED_PRE struct PACKED_POST
965{
966 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
967 tANI_U8 peer_mac_address[6]; // mac address
968 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
969 tANI_U32 num_rate; // number of rates
970 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
971} wifi_peer_info;
972
973/* per access category statistics */
974typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530975{
976 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
977 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
978 tANI_U32 rx_mpdu; // number of received unicast mpdus
979 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
980 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
981 tANI_U32 rx_mcast; // number of received multicast data packets
982 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
983 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
984 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
985 tANI_U32 retries; // total number of data pkt retries
986 tANI_U32 retries_short; // number of short data pkt retries
987 tANI_U32 retries_long; // number of long data pkt retries
988 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
989 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
990 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
991 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
992} wifi_wmm_ac_stat;
993
994/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
995typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530996{
997 wifi_interface_info info; // current state of the interface
998 tANI_U32 beacon_rx; // access point beacon received count from connected AP
999 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
1000 tANI_U32 mgmt_action_rx; // action frames received count
1001 tANI_U32 mgmt_action_tx; // action frames transmit count
1002 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1003 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1004 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1005 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
1006} wifi_iface_stat;
1007
1008/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1009typedef PACKED_PRE struct PACKED_POST
1010{
1011 tANI_U32 num_peers; // number of peers
1012 wifi_peer_info peer_info[1]; // per peer statistics
1013} wifi_peer_stat;
1014
1015/* wifi statistics bitmap for getting statistics */
1016#define WMI_LINK_STATS_RADIO 0x00000001
1017#define WMI_LINK_STATS_IFACE 0x00000002
1018#define WMI_LINK_STATS_ALL_PEER 0x00000004
1019#define WMI_LINK_STATS_PER_PEER 0x00000008
1020
1021/* wifi statistics bitmap for clearing statistics */
1022#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1023#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1024#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1025#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1026#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1027#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1028#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1029#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1030
1031
Jeff Johnson295189b2012-06-20 16:38:30 -07001032/*---------------------------------------------------------------------------
1033 Message definitons - All the messages below need to be packed
1034 ---------------------------------------------------------------------------*/
1035
1036#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1037#pragma pack(push, 1)
1038#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1039#pragma pack(1)
1040#else
1041#endif
1042
1043/// Definition for HAL API Version.
1044typedef PACKED_PRE struct PACKED_POST
1045{
1046 tANI_U8 revision;
1047 tANI_U8 version;
1048 tANI_U8 minor;
1049 tANI_U8 major;
1050} tWcnssWlanVersion, *tpWcnssWlanVersion;
1051
1052/// Definition for Encryption Keys
1053typedef PACKED_PRE struct PACKED_POST
1054{
1055 tANI_U8 keyId;
1056 tANI_U8 unicast; // 0 for multicast
1057 tAniKeyDirection keyDirection;
1058 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1059 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1060 tANI_U16 keyLength;
1061 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1062} tSirKeys, *tpSirKeys;
1063
1064
1065//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1066typedef PACKED_PRE struct PACKED_POST
1067{
1068 /*STA Index*/
1069 tANI_U16 staIdx;
1070
1071 /*Encryption Type used with peer*/
1072 tAniEdType encType;
1073
1074 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301075 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001076
1077 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1078 tANI_U8 defWEPIdx;
1079
Jeff Johnson295189b2012-06-20 16:38:30 -07001080 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301081 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1082
Jeff Johnson295189b2012-06-20 16:38:30 -07001083 /*Control for Replay Count, 1= Single TID based replay count on Tx
1084 0 = Per TID based replay count on TX */
1085 tANI_U8 singleTidRc;
1086
1087} tSetStaKeyParams, *tpSetStaKeyParams;
1088
1089
1090
1091/* 4-byte control message header used by HAL*/
1092typedef PACKED_PRE struct PACKED_POST
1093{
Jeff Johnsone7245742012-09-05 17:12:55 -07001094 tHalHostMsgType msgType:16;
1095 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001096 tANI_U32 msgLen;
1097} tHalMsgHeader, *tpHalMsgHeader;
1098
1099/* Config format required by HAL for each CFG item*/
1100typedef PACKED_PRE struct PACKED_POST
1101{
1102 /* Cfg Id. The Id required by HAL is exported by HAL
1103 * in shared header file between UMAC and HAL.*/
1104 tANI_U16 uCfgId;
1105
Dino Mycle8afbac12014-07-04 22:06:17 +05301106 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001107 * in the TLV format.*/
1108 tANI_U16 uCfgLen;
1109
1110 /* Padding bytes for unaligned address's */
1111 tANI_U16 uCfgPadBytes;
1112
1113 /* Reserve bytes for making cfgVal to align address */
1114 tANI_U16 uCfgReserve;
1115
1116 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1117 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1118} tHalCfg, *tpHalCfg;
1119
1120/*---------------------------------------------------------------------------
1121 WLAN_HAL_START_REQ
1122---------------------------------------------------------------------------*/
1123
1124typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1125{
1126 /* Drive Type - Production or FTM etc */
1127 tDriverType driverType;
1128
1129 /*Length of the config buffer*/
1130 tANI_U32 uConfigBufferLen;
1131
Dino Mycle8afbac12014-07-04 22:06:17 +05301132 /* Following this there is a TLV formatted buffer of length
1133 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001134 * The TLV is expected to be formatted like this:
1135 * 0 15 31 31+CFG_LEN-1 length-1
1136 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1137 */
1138} tHalMacStartParameters, *tpHalMacStartParameters;
1139
1140typedef PACKED_PRE struct PACKED_POST
1141{
1142 /* Note: The length specified in tHalMacStartReqMsg messages should be
1143 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1144 tHalMsgHeader header;
1145 tHalMacStartParameters startReqParams;
1146} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1147
1148/*---------------------------------------------------------------------------
1149 WLAN_HAL_START_RSP
1150---------------------------------------------------------------------------*/
1151
1152typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1153{
1154 /*success or failure */
1155 tANI_U16 status;
1156
1157 /*Max number of STA supported by the device*/
1158 tANI_U8 ucMaxStations;
1159
1160 /*Max number of BSS supported by the device*/
1161 tANI_U8 ucMaxBssids;
1162
1163 /*API Version */
1164 tWcnssWlanVersion wcnssWlanVersion;
1165
1166 /*CRM build information */
1167 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1168
1169 /*hardware/chipset/misc version information */
1170 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1171
1172} tHalMacStartRspParams, *tpHalMacStartRspParams;
1173
1174typedef PACKED_PRE struct PACKED_POST
1175{
1176 tHalMsgHeader header;
1177 tHalMacStartRspParams startRspParams;
1178} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1179
1180/*---------------------------------------------------------------------------
1181 WLAN_HAL_STOP_REQ
1182---------------------------------------------------------------------------*/
1183
1184typedef PACKED_PRE struct PACKED_POST
1185{
1186 /*The reason for which the device is being stopped*/
1187 tHalStopType reason;
1188
1189}tHalMacStopReqParams, *tpHalMacStopReqParams;
1190
1191typedef PACKED_PRE struct PACKED_POST
1192{
1193 tHalMsgHeader header;
1194 tHalMacStopReqParams stopReqParams;
1195} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1196
1197/*---------------------------------------------------------------------------
1198 WLAN_HAL_STOP_RSP
1199---------------------------------------------------------------------------*/
1200
1201typedef PACKED_PRE struct PACKED_POST
1202{
1203 /*success or failure */
1204 tANI_U32 status;
1205
1206}tHalMacStopRspParams, *tpHalMacStopRspParams;
1207
1208typedef PACKED_PRE struct PACKED_POST
1209{
1210 tHalMsgHeader header;
1211 tHalMacStopRspParams stopRspParams;
1212} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1213
1214/*---------------------------------------------------------------------------
1215 WLAN_HAL_UPDATE_CFG_REQ
1216---------------------------------------------------------------------------*/
1217
1218typedef PACKED_PRE struct PACKED_POST
1219{
1220 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1221 tANI_U32 uConfigBufferLen;
1222
Dino Mycle8afbac12014-07-04 22:06:17 +05301223 /* Following this there is a TLV formatted buffer of length
1224 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001225 * The TLV is expected to be formatted like this:
1226 * 0 15 31 31+CFG_LEN-1 length-1
1227 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1228 */
1229} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1230
1231typedef PACKED_PRE struct PACKED_POST
1232{
1233 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1234 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1235 tHalMsgHeader header;
1236 tHalUpdateCfgReqParams updateCfgReqParams;
1237} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1238
1239/*---------------------------------------------------------------------------
1240 WLAN_HAL_UPDATE_CFG_RSP
1241---------------------------------------------------------------------------*/
1242
1243typedef PACKED_PRE struct PACKED_POST
1244{
1245 /* success or failure */
1246 tANI_U32 status;
1247
1248}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1249
1250typedef PACKED_PRE struct PACKED_POST
1251{
1252 tHalMsgHeader header;
1253 tHalUpdateCfgRspParams updateCfgRspParams;
1254} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1255
1256/*---------------------------------------------------------------------------
1257 WLAN_HAL_INIT_SCAN_REQ
1258---------------------------------------------------------------------------*/
1259
1260/// Frame control field format (2 bytes)
1261typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1262{
1263
1264#ifndef ANI_LITTLE_BIT_ENDIAN
1265
1266 tANI_U8 subType :4;
1267 tANI_U8 type :2;
1268 tANI_U8 protVer :2;
1269
1270 tANI_U8 order :1;
1271 tANI_U8 wep :1;
1272 tANI_U8 moreData :1;
1273 tANI_U8 powerMgmt :1;
1274 tANI_U8 retry :1;
1275 tANI_U8 moreFrag :1;
1276 tANI_U8 fromDS :1;
1277 tANI_U8 toDS :1;
1278
1279#else
1280
1281 tANI_U8 protVer :2;
1282 tANI_U8 type :2;
1283 tANI_U8 subType :4;
1284
1285 tANI_U8 toDS :1;
1286 tANI_U8 fromDS :1;
1287 tANI_U8 moreFrag :1;
1288 tANI_U8 retry :1;
1289 tANI_U8 powerMgmt :1;
1290 tANI_U8 moreData :1;
1291 tANI_U8 wep :1;
1292 tANI_U8 order :1;
1293
1294#endif
1295
1296} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1297
1298/// Sequence control field
1299typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1300{
1301 tANI_U8 fragNum : 4;
1302 tANI_U8 seqNumLo : 4;
1303 tANI_U8 seqNumHi : 8;
1304} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1305
1306/// Management header format
1307typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1308{
1309 tSirMacFrameCtl fc;
1310 tANI_U8 durationLo;
1311 tANI_U8 durationHi;
1312 tANI_U8 da[6];
1313 tANI_U8 sa[6];
1314 tANI_U8 bssId[6];
1315 tSirMacSeqCtl seqControl;
1316} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1317
1318/// Scan Entry to hold active BSS idx's
1319typedef __ani_attr_pre_packed struct sSirScanEntry
1320{
1321 tANI_U8 bssIdx[HAL_NUM_BSSID];
1322 tANI_U8 activeBSScnt;
1323}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1324
1325typedef PACKED_PRE struct PACKED_POST {
1326
1327 /*LEARN - AP Role
1328 SCAN - STA Role*/
1329 eHalSysMode scanMode;
1330
1331 /*BSSID of the BSS*/
1332 tSirMacAddr bssid;
1333
1334 /*Whether BSS needs to be notified*/
1335 tANI_U8 notifyBss;
1336
1337 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1338 CTS to Self). Must always be a valid frame type.*/
1339 tANI_U8 frameType;
1340
1341 /*UMAC has the option of passing the MAC frame to be used for notifying
1342 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1343 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1344 frameType.*/
1345 tANI_U8 frameLength;
1346
Dino Mycle8afbac12014-07-04 22:06:17 +05301347 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001348 is non-zero. */
1349 tSirMacMgmtHdr macMgmtHdr;
1350
1351 /*Entry to hold number of active BSS idx's*/
1352 tSirScanEntry scanEntry;
1353
1354} tInitScanParams, * tpInitScanParams;
1355
1356typedef PACKED_PRE struct PACKED_POST
1357{
1358 tHalMsgHeader header;
1359 tInitScanParams initScanParams;
1360} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1361
1362typedef PACKED_PRE struct PACKED_POST {
1363
1364 /*LEARN - AP Role
1365 SCAN - STA Role*/
1366 eHalSysMode scanMode;
1367
1368 /*BSSID of the BSS*/
1369 tSirMacAddr bssid;
1370
1371 /*Whether BSS needs to be notified*/
1372 tANI_U8 notifyBss;
1373
1374 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1375 CTS to Self). Must always be a valid frame type.*/
1376 tANI_U8 frameType;
1377
1378 /*UMAC has the option of passing the MAC frame to be used for notifying
1379 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1380 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1381 frameType.*/
1382 tANI_U8 frameLength;
1383
Dino Mycle8afbac12014-07-04 22:06:17 +05301384 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001385 is non-zero. */
1386 tSirMacMgmtHdr macMgmtHdr;
1387
1388 /*Entry to hold number of active BSS idx's*/
1389 tSirScanEntry scanEntry;
1390
1391 /* Single NoA usage in Scanning */
1392 tANI_U8 useNoA;
1393
1394 /* Indicates the scan duration (in ms) */
1395 tANI_U16 scanDuration;
1396
1397} tInitScanConParams, * tpInitScanConParams;
1398
1399typedef PACKED_PRE struct PACKED_POST
1400{
1401 tHalMsgHeader header;
1402 tInitScanConParams initScanParams;
1403} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1404
1405
1406/*---------------------------------------------------------------------------
1407 WLAN_HAL_INIT_SCAN_RSP
1408---------------------------------------------------------------------------*/
1409
1410typedef PACKED_PRE struct PACKED_POST
1411{
1412 /*success or failure */
1413 tANI_U32 status;
1414
1415}tHalInitScanRspParams, *tpHalInitScanRspParams;
1416
1417typedef PACKED_PRE struct PACKED_POST
1418{
1419 tHalMsgHeader header;
1420 tHalInitScanRspParams initScanRspParams;
1421} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1422
1423/*---------------------------------------------------------------------------
1424 WLAN_HAL_START_SCAN_REQ
1425---------------------------------------------------------------------------*/
1426
Dino Mycle8afbac12014-07-04 22:06:17 +05301427typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001428{
1429 /*Indicates the channel to scan*/
1430 tANI_U8 scanChannel;
1431
1432 } tStartScanParams, * tpStartScanParams;
1433
1434typedef PACKED_PRE struct PACKED_POST
1435{
1436 tHalMsgHeader header;
1437 tStartScanParams startScanParams;
1438} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1439
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001440typedef PACKED_PRE struct PACKED_POST
1441{
1442 tHalMsgHeader header;
1443} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1444
Jeff Johnson295189b2012-06-20 16:38:30 -07001445/*---------------------------------------------------------------------------
1446 WLAN_HAL_START_SCAN_RSP
1447---------------------------------------------------------------------------*/
1448
1449typedef PACKED_PRE struct PACKED_POST
1450{
1451 /*success or failure */
1452 tANI_U32 status;
1453
1454 tANI_U32 startTSF[2];
1455 tPowerdBm txMgmtPower;
1456
1457}tHalStartScanRspParams, *tpHalStartScanRspParams;
1458
1459typedef PACKED_PRE struct PACKED_POST
1460{
1461 tHalMsgHeader header;
1462 tHalStartScanRspParams startScanRspParams;
1463} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1464
1465/*---------------------------------------------------------------------------
1466 WLAN_HAL_END_SCAN_REQ
1467---------------------------------------------------------------------------*/
1468
1469typedef PACKED_PRE struct PACKED_POST
1470{
1471 /*Indicates the channel to stop scanning. Not used really. But retained
1472 for symmetry with "start Scan" message. It can also help in error
1473 check if needed.*/
1474 tANI_U8 scanChannel;
1475
1476} tEndScanParams, *tpEndScanParams;
1477
1478typedef PACKED_PRE struct PACKED_POST
1479{
1480 tHalMsgHeader header;
1481 tEndScanParams endScanParams;
1482} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1483
1484/*---------------------------------------------------------------------------
1485 WLAN_HAL_END_SCAN_RSP
1486---------------------------------------------------------------------------*/
1487
1488typedef PACKED_PRE struct PACKED_POST
1489{
1490 /*success or failure */
1491 tANI_U32 status;
1492
1493}tHalEndScanRspParams, *tpHalEndScanRspParams;
1494
1495typedef PACKED_PRE struct PACKED_POST
1496{
1497 tHalMsgHeader header;
1498 tHalEndScanRspParams endScanRspParams;
1499} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1500
1501/*---------------------------------------------------------------------------
1502 WLAN_HAL_FINISH_SCAN_REQ
1503---------------------------------------------------------------------------*/
1504
1505typedef PACKED_PRE struct PACKED_POST
1506{
1507 /* Identifies the operational state of the AP/STA
1508 * LEARN - AP Role SCAN - STA Role */
1509 eHalSysMode scanMode;
1510
1511 /*Operating channel to tune to.*/
1512 tANI_U8 currentOperChannel;
1513
1514 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1515 40 MHz extension channel in combination with the control channel*/
1516 ePhyChanBondState cbState;
1517
1518 /*BSSID of the BSS*/
1519 tSirMacAddr bssid;
1520
1521 /*Whether BSS needs to be notified*/
1522 tANI_U8 notifyBss;
1523
1524 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1525 CTS to Self). Must always be a valid frame type.*/
1526 tANI_U8 frameType;
1527
1528 /*UMAC has the option of passing the MAC frame to be used for notifying
1529 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1530 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1531 frameType.*/
1532 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301533
1534 /*Following the framelength there is a MAC frame buffer if frameLength
1535 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001536 tSirMacMgmtHdr macMgmtHdr;
1537
1538 /*Entry to hold number of active BSS idx's*/
1539 tSirScanEntry scanEntry;
1540
1541} tFinishScanParams, *tpFinishScanParams;
1542
1543typedef PACKED_PRE struct PACKED_POST
1544{
1545 tHalMsgHeader header;
1546 tFinishScanParams finishScanParams;
1547} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1548
1549/*---------------------------------------------------------------------------
1550 WLAN_HAL_FINISH_SCAN_RSP
1551---------------------------------------------------------------------------*/
1552
1553typedef PACKED_PRE struct PACKED_POST
1554{
1555 /*success or failure */
1556 tANI_U32 status;
1557
1558}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1559
1560typedef PACKED_PRE struct PACKED_POST
1561{
1562 tHalMsgHeader header;
1563 tHalFinishScanRspParams finishScanRspParams;
1564} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1565
Srinivas Dasari42584632014-11-26 20:37:19 +05301566typedef PACKED_PRE struct PACKED_POST
1567{
1568 tSetStaKeyParams keyParams;
1569 uint8 pn[6];
1570} tHalEncConfigParams;
1571
1572typedef PACKED_PRE struct PACKED_POST
1573{
1574 uint16 length;
1575 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1576} tHalDisaPayload;
1577
1578typedef PACKED_PRE struct PACKED_POST
1579{
1580#ifdef BYTE_ORDER_BIG_ENDIAN
1581 uint8 reserved1 : 1;
1582 uint8 ackpolicy : 2;
1583 uint8 eosp : 1;
1584 uint8 tid : 4;
1585
1586 uint8 appsbufferstate : 8;
1587#else
1588 uint8 appsbufferstate : 8;
1589
1590 uint8 tid : 4;
1591 uint8 eosp : 1;
1592 uint8 ackpolicy : 2;
1593 uint8 reserved1 : 1;
1594#endif
1595} tHalQosCtrlFieldType;
1596
1597typedef PACKED_PRE struct PACKED_POST
1598 {
1599#ifdef BYTE_ORDER_BIG_ENDIAN
1600 uint16 subtype : 4;
1601 uint16 type : 2;
1602 uint16 protocol : 2;
1603
1604 uint16 order : 1;
1605 uint16 wep : 1;
1606 uint16 moredata : 1;
1607 uint16 pm : 1;
1608 uint16 retry : 1;
1609 uint16 morefrag : 1;
1610 uint16 fromds : 1;
1611 uint16 tods : 1;
1612#else
1613
1614 uint16 tods : 1;
1615 uint16 fromds : 1;
1616 uint16 morefrag : 1;
1617 uint16 retry : 1;
1618 uint16 pm : 1;
1619 uint16 moredata : 1;
1620 uint16 wep : 1;
1621 uint16 order : 1;
1622
1623 uint16 protocol : 2;
1624 uint16 type : 2;
1625 uint16 subtype : 4;
1626#endif
1627} tHalFrmCtrlType;
1628
1629typedef PACKED_PRE struct PACKED_POST
1630{
1631 /* Frame control field */
1632 tHalFrmCtrlType fc;
1633 /* Duration ID */
1634 uint16 usDurationId;
1635 /* Address 1 field */
1636 uint8 vA1[HAL_MAC_ADDR_LEN];
1637 /* Address 2 field */
1638 uint8 vA2[HAL_MAC_ADDR_LEN];
1639 /* Address 3 field */
1640 uint8 vA3[HAL_MAC_ADDR_LEN];
1641 /* Sequence control field */
1642 uint16 seqNum;
1643 /* Optional A4 address */
1644 uint8 optvA4[HAL_MAC_ADDR_LEN];
1645 /* Optional QOS control field */
1646 tHalQosCtrlFieldType usQosCtrl;
1647} tHal80211Header;
1648
1649typedef PACKED_PRE struct PACKED_POST
1650{
1651 tHal80211Header macHeader;
1652 tHalEncConfigParams encParams;
1653 tHalDisaPayload data;
1654} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1655
1656typedef PACKED_PRE struct PACKED_POST
1657{
1658 tHalMsgHeader header;
1659 tSetEncryptedDataParams encryptedDataParams;
1660} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1661
1662typedef PACKED_PRE struct PACKED_POST
1663{
1664 tANI_U32 status;
1665 tHalDisaPayload encryptedPayload;
1666} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1667
1668typedef PACKED_PRE struct PACKED_POST
1669{
1670 tHalMsgHeader header;
1671 tSetEncryptedDataRspParams encryptedDataRspParams;
1672} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1673
Jeff Johnson295189b2012-06-20 16:38:30 -07001674/*---------------------------------------------------------------------------
1675 WLAN_HAL_CONFIG_STA_REQ
1676---------------------------------------------------------------------------*/
1677
1678typedef PACKED_PRE struct PACKED_POST {
1679 /*
1680 * For Self STA Entry: this represents Self Mode.
1681 * For Peer Stations, this represents the mode of the peer.
1682 * On Station:
1683 * --this mode is updated when PE adds the Self Entry.
1684 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1685 * ON AP:
1686 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1687 * to indicate the self mode of the AP.
1688 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1689 */
1690
1691 tStaRateMode opRateMode;
1692 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1693 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1694 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1695 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1696 tANI_U16 reserved;
1697
1698 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1699 //First 26 bits are reserved for those Titan rates and
1700 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1701 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1702
1703 /*
1704 * 0-76 bits used, remaining reserved
1705 * bits 0-15 and 32 should be set.
1706 */
1707 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1708
1709 /*
1710 * RX Highest Supported Data Rate defines the highest data
1711 * rate that the STA is able to receive, in unites of 1Mbps.
1712 * This value is derived from "Supported MCS Set field" inside
1713 * the HT capability element.
1714 */
1715 tANI_U16 rxHighestDataRate;
1716
1717} tSirSupportedRates, *tpSirSupportedRates;
1718
1719typedef PACKED_PRE struct PACKED_POST
1720{
1721 /*BSSID of STA*/
1722 tSirMacAddr bssId;
1723
1724 /*ASSOC ID, as assigned by UMAC*/
1725 tANI_U16 assocId;
1726
1727 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1728 tANI_U8 staType;
1729
1730 /*Short Preamble Supported.*/
1731 tANI_U8 shortPreambleSupported;
1732
1733 /*MAC Address of STA*/
1734 tSirMacAddr staMac;
1735
1736 /*Listen interval of the STA*/
1737 tANI_U16 listenInterval;
1738
1739 /*Support for 11e/WMM*/
1740 tANI_U8 wmmEnabled;
1741
1742 /*11n HT capable STA*/
1743 tANI_U8 htCapable;
1744
1745 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1746 tANI_U8 txChannelWidthSet;
1747
1748 /*RIFS mode 0 - NA, 1 - Allowed */
1749 tANI_U8 rifsMode;
1750
Dino Mycle8afbac12014-07-04 22:06:17 +05301751 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001752 0 - No Support, 1 - Supported
1753 SG - there is global field */
1754 tANI_U8 lsigTxopProtection;
1755
1756 /*Max Ampdu Size supported by STA. TPE programming.
1757 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1758 tANI_U8 maxAmpduSize;
1759
1760 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1761 tANI_U8 maxAmpduDensity;
1762
1763 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1764 tANI_U8 maxAmsduSize;
1765
1766 /*Short GI support for 40Mhz packets*/
1767 tANI_U8 fShortGI40Mhz;
1768
1769 /*Short GI support for 20Mhz packets*/
1770 tANI_U8 fShortGI20Mhz;
1771
Jeff Johnson295189b2012-06-20 16:38:30 -07001772 /*Robust Management Frame (RMF) enabled/disabled*/
1773 tANI_U8 rmfEnabled;
1774
1775 /* The unicast encryption type in the association */
1776 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001777
1778 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001779 will set this flag in case of RE-ASSOC, where we want to reuse the old
1780 STA ID. 0 = Add, 1 = Update*/
1781 tANI_U8 action;
1782
1783 /*U-APSD Flags: 1b per AC. Encoded as follows:
1784 b7 b6 b5 b4 b3 b2 b1 b0 =
1785 X X X X BE BK VI VO */
1786 tANI_U8 uAPSD;
1787
1788 /*Max SP Length*/
1789 tANI_U8 maxSPLen;
1790
1791 /*11n Green Field preamble support
1792 0 - Not supported, 1 - Supported */
1793 tANI_U8 greenFieldCapable;
1794
1795 /*MIMO Power Save mode*/
1796 tSirMacHTMIMOPowerSaveState mimoPS;
1797
1798 /*Delayed BA Support*/
1799 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001800
Jeff Johnson295189b2012-06-20 16:38:30 -07001801 /*Max AMPDU duration in 32us*/
1802 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001803
Jeff Johnson295189b2012-06-20 16:38:30 -07001804 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1805 it to 0 if AP does not support it. This indication is sent to HAL and
1806 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1807 tANI_U8 fDsssCckMode40Mhz;
1808
1809 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1810 Retained for backward compalibity with existing HAL code*/
1811 tANI_U8 staIdx;
1812
1813 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1814 Retained for backward compalibity with existing HAL code*/
1815 tANI_U8 bssIdx;
1816
1817 tANI_U8 p2pCapableSta;
1818
Jeff Johnsone7245742012-09-05 17:12:55 -07001819 /*Reserved to align next field on a dword boundary*/
1820 tANI_U8 reserved;
1821
1822 /*These rates are the intersection of peer and self capabilities.*/
1823 tSirSupportedRates supportedRates;
1824
Jeff Johnson295189b2012-06-20 16:38:30 -07001825} tConfigStaParams, *tpConfigStaParams;
1826
Jeff Johnsone7245742012-09-05 17:12:55 -07001827/*------------------------------------------------------------------------
1828 * WLAN_HAL_CONFIG_STA_REQ
1829 * ----------------------------------------------------------------------*/
1830
1831typedef PACKED_PRE struct PACKED_POST {
1832 /*
1833 * For Self STA Entry: this represents Self Mode.
1834 * For Peer Stations, this represents the mode of the peer.
1835 * On Station:
1836 * --this mode is updated when PE adds the Self Entry.
1837 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1838 * ON AP:
1839 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1840 * to indicate the self mode of the AP.
1841 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1842 */
1843
1844 tStaRateMode opRateMode;
1845 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1846 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1847 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1848 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1849 tANI_U16 reserved;
1850
1851 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1852 //First 26 bits are reserved for those Titan rates and
1853 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1854 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1855
1856 /*
1857 * 0-76 bits used, remaining reserved
1858 * bits 0-15 and 32 should be set.
1859 */
1860 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1861
1862 /*
1863 * RX Highest Supported Data Rate defines the highest data
1864 * rate that the STA is able to receive, in unites of 1Mbps.
1865 * This value is derived from "Supported MCS Set field" inside
1866 * the HT capability element.
1867 */
1868 tANI_U16 rxHighestDataRate;
1869
1870 /* Indicates the Maximum MCS that can be received for each number
1871 * of spacial streams */
1872 tANI_U16 vhtRxMCSMap;
1873
1874 /*Indicate the highest VHT data rate that the STA is able to receive*/
1875 tANI_U16 vhtRxHighestDataRate;
1876
1877 /* Indicates the Maximum MCS that can be transmitted for each number
1878 * of spacial streams */
1879 tANI_U16 vhtTxMCSMap;
1880
1881 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1882 tANI_U16 vhtTxHighestDataRate;
1883
1884} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1885
1886typedef PACKED_PRE struct PACKED_POST
1887{
1888 /*BSSID of STA*/
1889 tSirMacAddr bssId;
1890
1891 /*ASSOC ID, as assigned by UMAC*/
1892 tANI_U16 assocId;
1893
1894 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1895 tANI_U8 staType;
1896
1897 /*Short Preamble Supported.*/
1898 tANI_U8 shortPreambleSupported;
1899
1900 /*MAC Address of STA*/
1901 tSirMacAddr staMac;
1902
1903 /*Listen interval of the STA*/
1904 tANI_U16 listenInterval;
1905
1906 /*Support for 11e/WMM*/
1907 tANI_U8 wmmEnabled;
1908
1909 /*11n HT capable STA*/
1910 tANI_U8 htCapable;
1911
1912 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1913 tANI_U8 txChannelWidthSet;
1914
1915 /*RIFS mode 0 - NA, 1 - Allowed */
1916 tANI_U8 rifsMode;
1917
1918 /*L-SIG TXOP Protection mechanism
1919 0 - No Support, 1 - Supported
1920 SG - there is global field */
1921 tANI_U8 lsigTxopProtection;
1922
1923 /*Max Ampdu Size supported by STA. TPE programming.
1924 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1925 tANI_U8 maxAmpduSize;
1926
1927 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1928 tANI_U8 maxAmpduDensity;
1929
1930 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1931 tANI_U8 maxAmsduSize;
1932
1933 /*Short GI support for 40Mhz packets*/
1934 tANI_U8 fShortGI40Mhz;
1935
1936 /*Short GI support for 20Mhz packets*/
1937 tANI_U8 fShortGI20Mhz;
1938
1939 /*Robust Management Frame (RMF) enabled/disabled*/
1940 tANI_U8 rmfEnabled;
1941
1942 /* The unicast encryption type in the association */
1943 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301944
1945 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001946 will set this flag in case of RE-ASSOC, where we want to reuse the old
1947 STA ID. 0 = Add, 1 = Update*/
1948 tANI_U8 action;
1949
1950 /*U-APSD Flags: 1b per AC. Encoded as follows:
1951 b7 b6 b5 b4 b3 b2 b1 b0 =
1952 X X X X BE BK VI VO */
1953 tANI_U8 uAPSD;
1954
1955 /*Max SP Length*/
1956 tANI_U8 maxSPLen;
1957
1958 /*11n Green Field preamble support
1959 0 - Not supported, 1 - Supported */
1960 tANI_U8 greenFieldCapable;
1961
1962 /*MIMO Power Save mode*/
1963 tSirMacHTMIMOPowerSaveState mimoPS;
1964
1965 /*Delayed BA Support*/
1966 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05301967
Jeff Johnsone7245742012-09-05 17:12:55 -07001968 /*Max AMPDU duration in 32us*/
1969 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05301970
Jeff Johnsone7245742012-09-05 17:12:55 -07001971 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1972 it to 0 if AP does not support it. This indication is sent to HAL and
1973 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1974 tANI_U8 fDsssCckMode40Mhz;
1975
1976 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1977 Retained for backward compalibity with existing HAL code*/
1978 tANI_U8 staIdx;
1979
1980 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1981 Retained for backward compalibity with existing HAL code*/
1982 tANI_U8 bssIdx;
1983
1984 tANI_U8 p2pCapableSta;
1985
1986 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001987 tANI_U8 htLdpcEnabled:1;
1988 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001989 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05301990 tANI_U8 vhtTxMUBformeeCapable:1;
1991 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001992
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001993 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001994 tSirSupportedRates_V1 supportedRates;
1995
1996 tANI_U8 vhtCapable;
1997 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001998
Jeff Johnsone7245742012-09-05 17:12:55 -07001999} tConfigStaParams_V1, *tpConfigStaParams_V1;
2000
Jeff Johnson295189b2012-06-20 16:38:30 -07002001typedef PACKED_PRE struct PACKED_POST
2002{
2003 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002004 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002005 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002006 tConfigStaParams_V1 configStaParams_V1;
2007 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002008} tConfigStaReqMsg, *tpConfigStaReqMsg;
2009
2010/*---------------------------------------------------------------------------
2011 WLAN_HAL_CONFIG_STA_RSP
2012---------------------------------------------------------------------------*/
2013
2014typedef PACKED_PRE struct PACKED_POST
2015{
2016 /*success or failure */
2017 tANI_U32 status;
2018
2019 /* Station index; valid only when 'status' field value SUCCESS */
2020 tANI_U8 staIdx;
2021
2022 /* BSSID Index of BSS to which the station is associated */
2023 tANI_U8 bssIdx;
2024
2025 /* DPU Index for PTK */
2026 tANI_U8 dpuIndex;
2027
Dino Mycle8afbac12014-07-04 22:06:17 +05302028 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002029 tANI_U8 bcastDpuIndex;
2030
2031 /*DPU Index for IGTK */
2032 tANI_U8 bcastMgmtDpuIdx;
2033
2034 /*PTK DPU signature*/
2035 tANI_U8 ucUcastSig;
2036
2037 /*GTK DPU isignature*/
2038 tANI_U8 ucBcastSig;
2039
2040 /* IGTK DPU signature*/
2041 tANI_U8 ucMgmtSig;
2042
2043 tANI_U8 p2pCapableSta;
2044
2045}tConfigStaRspParams, *tpConfigStaRspParams;
2046
2047typedef PACKED_PRE struct PACKED_POST
2048{
2049 tHalMsgHeader header;
2050 tConfigStaRspParams configStaRspParams;
2051}tConfigStaRspMsg, *tpConfigStaRspMsg;
2052
2053/*---------------------------------------------------------------------------
2054 WLAN_HAL_DELETE_STA_REQ
2055---------------------------------------------------------------------------*/
2056
2057/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302058typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002059{
2060 /* Index of STA to delete */
2061 tANI_U8 staIdx;
2062} tDeleteStaParams, *tpDeleteStaParams;
2063
2064/* Delete STA Request message*/
2065typedef PACKED_PRE struct PACKED_POST
2066{
2067 tHalMsgHeader header;
2068 tDeleteStaParams delStaParams;
2069} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2070
2071/*---------------------------------------------------------------------------
2072 WLAN_HAL_DELETE_STA_RSP
2073---------------------------------------------------------------------------*/
2074
2075/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302076typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002077{
2078 /*success or failure */
2079 tANI_U32 status;
2080
2081 /* Index of STA deleted */
2082 tANI_U8 staId;
2083} tDeleteStaRspParams, *tpDeleteStaRspParams;
2084
2085/* Delete STA Response message*/
2086typedef PACKED_PRE struct PACKED_POST
2087{
2088 tHalMsgHeader header;
2089 tDeleteStaRspParams delStaRspParams;
2090} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2091
2092/*---------------------------------------------------------------------------
2093 WLAN_HAL_CONFIG_BSS_REQ
2094---------------------------------------------------------------------------*/
2095
2096//12 Bytes long because this structure can be used to represent rate
2097//and extended rate set IEs. The parser assume this to be at least 12
2098typedef __ani_attr_pre_packed struct sSirMacRateSet
2099{
2100 tANI_U8 numRates;
2101 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2102} __ani_attr_packed tSirMacRateSet;
2103
2104// access category record
2105typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2106{
2107#ifndef ANI_LITTLE_BIT_ENDIAN
2108 tANI_U8 rsvd : 1;
2109 tANI_U8 aci : 2;
2110 tANI_U8 acm : 1;
2111 tANI_U8 aifsn : 4;
2112#else
2113 tANI_U8 aifsn : 4;
2114 tANI_U8 acm : 1;
2115 tANI_U8 aci : 2;
2116 tANI_U8 rsvd : 1;
2117#endif
2118} __ani_attr_packed tSirMacAciAifsn;
2119
2120// contention window size
2121typedef __ani_attr_pre_packed struct sSirMacCW
2122{
2123#ifndef ANI_LITTLE_BIT_ENDIAN
2124 tANI_U8 max : 4;
2125 tANI_U8 min : 4;
2126#else
2127 tANI_U8 min : 4;
2128 tANI_U8 max : 4;
2129#endif
2130} __ani_attr_packed tSirMacCW;
2131
2132typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2133{
2134 tSirMacAciAifsn aci;
2135 tSirMacCW cw;
2136 tANI_U16 txoplimit;
2137} __ani_attr_packed tSirMacEdcaParamRecord;
2138
2139typedef __ani_attr_pre_packed struct sSirMacSSid
2140{
2141 tANI_U8 length;
2142 tANI_U8 ssId[32];
2143} __ani_attr_packed tSirMacSSid;
2144
2145// Concurrency role. These are generic IDs that identify the various roles
2146// in the software system.
2147typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302148 HAL_STA_MODE=0,
2149 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002150 HAL_P2P_CLIENT_MODE,
2151 HAL_P2P_GO_MODE,
2152 HAL_MONITOR_MODE,
2153} tHalConMode;
2154
2155//This is a bit pattern to be set for each mode
2156//bit 0 - sta mode
2157//bit 1 - ap mode
2158//bit 2 - p2p client mode
2159//bit 3 - p2p go mode
2160typedef enum
2161{
Dino Mycle8afbac12014-07-04 22:06:17 +05302162 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002163 HAL_SAP=2,
2164 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2165 HAL_P2P_CLIENT=4,
2166 HAL_P2P_GO=8,
2167 HAL_MAX_CONCURRENCY_PERSONA=4
2168} tHalConcurrencyMode;
2169
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002170// IFACE PERSONA for different Operating modes
2171typedef enum
2172{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002173 HAL_IFACE_UNKNOWN=0,
2174 HAL_IFACE_STA_MODE=1,
2175 HAL_IFACE_P2P_MODE=2,
2176 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002177} tHalIfacePersona;
2178
Jeff Johnson295189b2012-06-20 16:38:30 -07002179typedef PACKED_PRE struct PACKED_POST
2180{
2181 /* BSSID */
2182 tSirMacAddr bssId;
2183
Jeff Johnson295189b2012-06-20 16:38:30 -07002184 /* Self Mac Address */
2185 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002186
2187 /* BSS type */
2188 tSirBssType bssType;
2189
2190 /*Operational Mode: AP =0, STA = 1*/
2191 tANI_U8 operMode;
2192
2193 /*Network Type*/
2194 tSirNwType nwType;
2195
2196 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2197 tANI_U8 shortSlotTimeSupported;
2198
2199 /*Co-exist with 11a STA*/
2200 tANI_U8 llaCoexist;
2201
2202 /*Co-exist with 11b STA*/
2203 tANI_U8 llbCoexist;
2204
2205 /*Co-exist with 11g STA*/
2206 tANI_U8 llgCoexist;
2207
2208 /*Coexistence with 11n STA*/
2209 tANI_U8 ht20Coexist;
2210
2211 /*Non GF coexist flag*/
2212 tANI_U8 llnNonGFCoexist;
2213
2214 /*TXOP protection support*/
2215 tANI_U8 fLsigTXOPProtectionFullSupport;
2216
2217 /*RIFS mode*/
2218 tANI_U8 fRIFSMode;
2219
2220 /*Beacon Interval in TU*/
2221 tSirMacBeaconInterval beaconInterval;
2222
2223 /*DTIM period*/
2224 tANI_U8 dtimPeriod;
2225
2226 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2227 tANI_U8 txChannelWidthSet;
2228
2229 /*Operating channel*/
2230 tANI_U8 currentOperChannel;
2231
2232 /*Extension channel for channel bonding*/
2233 tANI_U8 currentExtChannel;
2234
2235 /*Reserved to align next field on a dword boundary*/
2236 tANI_U8 reserved;
2237
Jeff Johnsone7245742012-09-05 17:12:55 -07002238 /*SSID of the BSS*/
2239 tSirMacSSid ssId;
2240
2241 /*HAL should update the existing BSS entry, if this flag is set.
2242 UMAC will set this flag in case of reassoc, where we want to resue the
2243 the old BSSID and still return success 0 = Add, 1 = Update*/
2244 tANI_U8 action;
2245
2246 /* MAC Rate Set */
2247 tSirMacRateSet rateSet;
2248
2249 /*Enable/Disable HT capabilities of the BSS*/
2250 tANI_U8 htCapable;
2251
2252 // Enable/Disable OBSS protection
2253 tANI_U8 obssProtEnabled;
2254
2255 /*RMF enabled/disabled*/
2256 tANI_U8 rmfEnabled;
2257
2258 /*HT Operating Mode operating mode of the 802.11n STA*/
2259 tSirMacHTOperatingMode htOperMode;
2260
2261 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2262 tANI_U8 dualCTSProtection;
2263
2264 /* Probe Response Max retries */
2265 tANI_U8 ucMaxProbeRespRetryLimit;
2266
2267 /* To Enable Hidden ssid */
2268 tANI_U8 bHiddenSSIDEn;
2269
2270 /* To Enable Disable FW Proxy Probe Resp */
2271 tANI_U8 bProxyProbeRespEn;
2272
2273 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2274 EDCA params or might not desire to apply EDCA params during config BSS.
2275 0 implies Not Valid ; Non-Zero implies valid*/
2276 tANI_U8 edcaParamsValid;
2277
2278 /*EDCA Parameters for Best Effort Access Category*/
2279 tSirMacEdcaParamRecord acbe;
2280
2281 /*EDCA Parameters forBackground Access Category*/
2282 tSirMacEdcaParamRecord acbk;
2283
2284 /*EDCA Parameters for Video Access Category*/
2285 tSirMacEdcaParamRecord acvi;
2286
2287 /*EDCA Parameters for Voice Access Category*/
2288 tSirMacEdcaParamRecord acvo;
2289
2290#ifdef WLAN_FEATURE_VOWIFI_11R
2291 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2292 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2293#endif
2294
2295 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2296 tANI_U8 halPersona;
2297
2298 tANI_U8 bSpectrumMgtEnable;
2299
2300 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2301 tANI_S8 txMgmtPower;
2302 /*maxTxPower has max power to be used after applying the power constraint if any */
2303 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002304 /*Context of the station being added in HW
2305 Add a STA entry for "itself" -
2306 On AP - Add the AP itself in an "STA context"
2307 On STA - Add the AP to which this STA is joining in an "STA context" */
2308 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002309} tConfigBssParams, * tpConfigBssParams;
2310
2311
2312/*--------------------------------------------------------------------------
2313 * WLAN_HAL_CONFIG_BSS_REQ
2314 *--------------------------------------------------------------------------*/
2315typedef PACKED_PRE struct PACKED_POST
2316{
2317 /* BSSID */
2318 tSirMacAddr bssId;
2319
Jeff Johnsone7245742012-09-05 17:12:55 -07002320 /* Self Mac Address */
2321 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002322
2323 /* BSS type */
2324 tSirBssType bssType;
2325
2326 /*Operational Mode: AP =0, STA = 1*/
2327 tANI_U8 operMode;
2328
2329 /*Network Type*/
2330 tSirNwType nwType;
2331
2332 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2333 tANI_U8 shortSlotTimeSupported;
2334
2335 /*Co-exist with 11a STA*/
2336 tANI_U8 llaCoexist;
2337
2338 /*Co-exist with 11b STA*/
2339 tANI_U8 llbCoexist;
2340
2341 /*Co-exist with 11g STA*/
2342 tANI_U8 llgCoexist;
2343
2344 /*Coexistence with 11n STA*/
2345 tANI_U8 ht20Coexist;
2346
2347 /*Non GF coexist flag*/
2348 tANI_U8 llnNonGFCoexist;
2349
2350 /*TXOP protection support*/
2351 tANI_U8 fLsigTXOPProtectionFullSupport;
2352 /*RIFS mode*/
2353 tANI_U8 fRIFSMode;
2354
2355 /*Beacon Interval in TU*/
2356 tSirMacBeaconInterval beaconInterval;
2357
2358 /*DTIM period*/
2359 tANI_U8 dtimPeriod;
2360
2361 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2362 tANI_U8 txChannelWidthSet;
2363
2364 /*Operating channel*/
2365 tANI_U8 currentOperChannel;
2366
2367 /*Extension channel for channel bonding*/
2368 tANI_U8 currentExtChannel;
2369
2370 /*Reserved to align next field on a dword boundary*/
2371 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002372
2373 /*SSID of the BSS*/
2374 tSirMacSSid ssId;
2375
2376 /*HAL should update the existing BSS entry, if this flag is set.
2377 UMAC will set this flag in case of reassoc, where we want to resue the
2378 the old BSSID and still return success 0 = Add, 1 = Update*/
2379 tANI_U8 action;
2380
2381 /* MAC Rate Set */
2382 tSirMacRateSet rateSet;
2383
2384 /*Enable/Disable HT capabilities of the BSS*/
2385 tANI_U8 htCapable;
2386
2387 // Enable/Disable OBSS protection
2388 tANI_U8 obssProtEnabled;
2389
2390 /*RMF enabled/disabled*/
2391 tANI_U8 rmfEnabled;
2392
2393 /*HT Operating Mode operating mode of the 802.11n STA*/
2394 tSirMacHTOperatingMode htOperMode;
2395
2396 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2397 tANI_U8 dualCTSProtection;
2398
2399 /* Probe Response Max retries */
2400 tANI_U8 ucMaxProbeRespRetryLimit;
2401
2402 /* To Enable Hidden ssid */
2403 tANI_U8 bHiddenSSIDEn;
2404
2405 /* To Enable Disable FW Proxy Probe Resp */
2406 tANI_U8 bProxyProbeRespEn;
2407
Dino Mycle8afbac12014-07-04 22:06:17 +05302408 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2409 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002410 0 implies Not Valid ; Non-Zero implies valid*/
2411 tANI_U8 edcaParamsValid;
2412
2413 /*EDCA Parameters for Best Effort Access Category*/
2414 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302415
Jeff Johnson295189b2012-06-20 16:38:30 -07002416 /*EDCA Parameters forBackground Access Category*/
2417 tSirMacEdcaParamRecord acbk;
2418
2419 /*EDCA Parameters for Video Access Category*/
2420 tSirMacEdcaParamRecord acvi;
2421
2422 /*EDCA Parameters for Voice Access Category*/
2423 tSirMacEdcaParamRecord acvo;
2424
2425#ifdef WLAN_FEATURE_VOWIFI_11R
2426 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2427 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2428#endif
2429
Dino Mycle8afbac12014-07-04 22:06:17 +05302430 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002431 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302432
Jeff Johnson295189b2012-06-20 16:38:30 -07002433 tANI_U8 bSpectrumMgtEnable;
2434
2435 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2436 tANI_S8 txMgmtPower;
2437 /*maxTxPower has max power to be used after applying the power constraint if any */
2438 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002439 /*Context of the station being added in HW
2440 Add a STA entry for "itself" -
2441 On AP - Add the AP itself in an "STA context"
2442 On STA - Add the AP to which this STA is joining in an "STA context" */
2443 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302444
Jeff Johnsone7245742012-09-05 17:12:55 -07002445 tANI_U8 vhtCapable;
2446 tANI_U8 vhtTxChannelWidthSet;
2447} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002448
2449typedef PACKED_PRE struct PACKED_POST
2450{
2451 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002452 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002453 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002454 tConfigBssParams_V1 configBssParams_V1;
2455 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002456} tConfigBssReqMsg, *tpConfigBssReqMsg;
2457
2458/*---------------------------------------------------------------------------
2459 WLAN_HAL_CONFIG_BSS_RSP
2460---------------------------------------------------------------------------*/
2461
2462typedef PACKED_PRE struct PACKED_POST
2463{
2464 /* Success or Failure */
2465 tANI_U32 status;
2466
2467 /* BSS index allocated by HAL */
2468 tANI_U8 bssIdx;
2469
2470 /* DPU descriptor index for PTK */
2471 tANI_U8 dpuDescIndx;
2472
2473 /* PTK DPU signature */
2474 tANI_U8 ucastDpuSignature;
2475
2476 /* DPU descriptor index for GTK*/
2477 tANI_U8 bcastDpuDescIndx;
2478
2479 /* GTK DPU signature */
2480 tANI_U8 bcastDpuSignature;
2481
2482 /*DPU descriptor for IGTK*/
2483 tANI_U8 mgmtDpuDescIndx;
2484
2485 /* IGTK DPU signature */
2486 tANI_U8 mgmtDpuSignature;
2487
2488 /* Station Index for BSS entry*/
2489 tANI_U8 bssStaIdx;
2490
2491 /* Self station index for this BSS */
2492 tANI_U8 bssSelfStaIdx;
2493
2494 /* Bcast station for buffering bcast frames in AP role */
2495 tANI_U8 bssBcastStaIdx;
2496
2497 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2498 tSirMacAddr staMac;
2499
2500 /*HAL fills in the tx power used for mgmt frames in this field. */
2501 tANI_S8 txMgmtPower;
2502
2503} tConfigBssRspParams, * tpConfigBssRspParams;
2504
2505typedef PACKED_PRE struct PACKED_POST
2506{
2507 tHalMsgHeader header;
2508 tConfigBssRspParams configBssRspParams;
2509} tConfigBssRspMsg, *tpConfigBssRspMsg;
2510
2511/*---------------------------------------------------------------------------
2512 WLAN_HAL_DELETE_BSS_REQ
2513---------------------------------------------------------------------------*/
2514
2515typedef PACKED_PRE struct PACKED_POST
2516{
2517 /* BSS index to be deleted */
2518 tANI_U8 bssIdx;
2519
2520} tDeleteBssParams, *tpDeleteBssParams;
2521
2522typedef PACKED_PRE struct PACKED_POST
2523{
2524 tHalMsgHeader header;
2525 tDeleteBssParams deleteBssParams;
2526} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2527
2528/*---------------------------------------------------------------------------
2529 WLAN_HAL_DELETE_BSS_RSP
2530---------------------------------------------------------------------------*/
2531
2532typedef PACKED_PRE struct PACKED_POST
2533{
2534 /* Success or Failure */
2535 tANI_U32 status;
2536
2537 /* BSS index that has been deleted */
2538 tANI_U8 bssIdx;
2539
2540} tDeleteBssRspParams, *tpDeleteBssRspParams;
2541
2542typedef PACKED_PRE struct PACKED_POST
2543{
2544 tHalMsgHeader header;
2545 tDeleteBssRspParams deleteBssRspParams;
2546} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2547
2548/*---------------------------------------------------------------------------
2549 WLAN_HAL_JOIN_REQ
2550---------------------------------------------------------------------------*/
2551
2552typedef PACKED_PRE struct PACKED_POST
2553{
2554 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302555 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002556
2557 /*Indicates the channel to switch to.*/
2558 tANI_U8 ucChannel;
2559
2560 /* Self STA MAC */
2561 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302562
Jeff Johnson295189b2012-06-20 16:38:30 -07002563 /*Local power constraint*/
2564 tANI_U8 ucLocalPowerConstraint;
2565
2566 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002567 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002568
2569 /*link State*/
2570 tSirLinkState linkState;
2571
2572 /* Max TX power */
2573 tANI_S8 maxTxPower;
2574
2575} tHalJoinReqParams, *tpHalJoinReqParams;
2576
2577typedef PACKED_PRE struct PACKED_POST
2578{
2579 tHalMsgHeader header;
2580 tHalJoinReqParams joinReqParams;
2581} tHalJoinReqMsg, *tpHalJoinReqMsg;
2582
2583/*---------------------------------------------------------------------------
2584 WLAN_HAL_JOIN_RSP
2585---------------------------------------------------------------------------*/
2586
2587typedef PACKED_PRE struct PACKED_POST
2588{
2589 /*success or failure */
2590 tANI_U32 status;
2591
2592 /* HAL fills in the tx power used for mgmt frames in this field */
2593 tPowerdBm txMgmtPower;
2594
2595}tHalJoinRspParams, *tpHalJoinRspParams;
2596
2597typedef PACKED_PRE struct PACKED_POST
2598{
2599 tHalMsgHeader header;
2600 tHalJoinRspParams joinRspParams;
2601}tHalJoinRspMsg, *tpHalJoinRspMsg;
2602
2603/*---------------------------------------------------------------------------
2604 WLAN_HAL_POST_ASSOC_REQ
2605---------------------------------------------------------------------------*/
2606
2607typedef PACKED_PRE struct PACKED_POST
2608{
2609 tConfigStaParams configStaParams;
2610 tConfigBssParams configBssParams;
2611} tPostAssocReqParams, *tpPostAssocReqParams;
2612
2613typedef PACKED_PRE struct PACKED_POST
2614{
2615 tHalMsgHeader header;
2616 tPostAssocReqParams postAssocReqParams;
2617} tPostAssocReqMsg, *tpPostAssocReqMsg;
2618
2619/*---------------------------------------------------------------------------
2620 WLAN_HAL_POST_ASSOC_RSP
2621---------------------------------------------------------------------------*/
2622
2623typedef PACKED_PRE struct PACKED_POST
2624{
2625 tConfigStaRspParams configStaRspParams;
2626 tConfigBssRspParams configBssRspParams;
2627} tPostAssocRspParams, *tpPostAssocRspParams;
2628
2629typedef PACKED_PRE struct PACKED_POST
2630{
2631 tHalMsgHeader header;
2632 tPostAssocRspParams postAssocRspParams;
2633} tPostAssocRspMsg, *tpPostAssocRspMsg;
2634
2635/*---------------------------------------------------------------------------
2636 WLAN_HAL_SET_BSSKEY_REQ
2637---------------------------------------------------------------------------*/
2638
2639/*
2640 * This is used by PE to create a set of WEP keys for a given BSS.
2641 */
2642typedef PACKED_PRE struct PACKED_POST
2643{
2644 /*BSS Index of the BSS*/
2645 tANI_U8 bssIdx;
2646
2647 /*Encryption Type used with peer*/
2648 tAniEdType encType;
2649
2650 /*Number of keys*/
2651 tANI_U8 numKeys;
2652
2653 /*Array of keys.*/
2654 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302655
Jeff Johnson295189b2012-06-20 16:38:30 -07002656 /*Control for Replay Count, 1= Single TID based replay count on Tx
2657 0 = Per TID based replay count on TX */
2658 tANI_U8 singleTidRc;
2659} tSetBssKeyParams, *tpSetBssKeyParams;
2660
2661typedef PACKED_PRE struct PACKED_POST
2662{
2663 tHalMsgHeader header;
2664 tSetBssKeyParams setBssKeyParams;
2665} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2666
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002667/* tagged version of set bss key */
2668typedef PACKED_PRE struct PACKED_POST
2669{
2670 tSetBssKeyReqMsg Msg;
2671 uint32 Tag;
2672} tSetBssKeyReqMsgTagged;
2673
Jeff Johnson295189b2012-06-20 16:38:30 -07002674/*---------------------------------------------------------------------------
2675 WLAN_HAL_SET_BSSKEY_RSP
2676---------------------------------------------------------------------------*/
2677typedef PACKED_PRE struct PACKED_POST
2678{
2679 /*success or failure */
2680 tANI_U32 status;
2681
2682} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2683
2684typedef PACKED_PRE struct PACKED_POST
2685{
2686 tHalMsgHeader header;
2687 tSetBssKeyRspParams setBssKeyRspParams;
2688} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2689
2690/*---------------------------------------------------------------------------
2691 WLAN_HAL_SET_STAKEY_REQ,
2692---------------------------------------------------------------------------*/
2693
2694/*
2695 * This is used by PE to configure the key information on a given station.
2696 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2697 * a preconfigured key from a BSS the station assoicated with; otherwise
2698 * a new key descriptor is created based on the key field.
2699 */
2700
2701typedef PACKED_PRE struct PACKED_POST
2702{
2703 tHalMsgHeader header;
2704 tSetStaKeyParams setStaKeyParams;
2705} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2706
2707/*---------------------------------------------------------------------------
2708 WLAN_HAL_SET_STAKEY_RSP,
2709---------------------------------------------------------------------------*/
2710typedef PACKED_PRE struct PACKED_POST
2711{
2712 /*success or failure */
2713 tANI_U32 status;
2714
2715} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2716
2717typedef PACKED_PRE struct PACKED_POST
2718{
2719 tHalMsgHeader header;
2720 tSetStaKeyRspParams setStaKeyRspParams;
2721} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2722
2723/*---------------------------------------------------------------------------
2724 WLAN_HAL_RMV_BSSKEY_REQ,
2725---------------------------------------------------------------------------*/
2726/*
2727 * This is used by PE to remove keys for a given BSS.
2728 */
2729typedef PACKED_PRE struct PACKED_POST
2730
2731{
2732 /*BSS Index of the BSS*/
2733 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302734
Jeff Johnson295189b2012-06-20 16:38:30 -07002735 /*Encryption Type used with peer*/
2736 tAniEdType encType;
2737
2738 /*Key Id*/
2739 tANI_U8 keyId;
2740
2741 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2742 tAniWepType wepType;
2743
2744} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2745
2746typedef PACKED_PRE struct PACKED_POST
2747{
2748 tHalMsgHeader header;
2749 tRemoveBssKeyParams removeBssKeyParams;
2750} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2751
2752/*---------------------------------------------------------------------------
2753 WLAN_HAL_RMV_BSSKEY_RSP,
2754---------------------------------------------------------------------------*/
2755typedef PACKED_PRE struct PACKED_POST
2756{
2757 /*success or failure */
2758 tANI_U32 status;
2759
2760} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2761
2762typedef PACKED_PRE struct PACKED_POST
2763{
2764 tHalMsgHeader header;
2765 tRemoveBssKeyRspParams removeBssKeyRspParams;
2766} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2767
2768/*---------------------------------------------------------------------------
2769 WLAN_HAL_RMV_STAKEY_REQ,
2770---------------------------------------------------------------------------*/
2771/*
2772 * This is used by PE to Remove the key information on a given station.
2773 */
2774typedef PACKED_PRE struct PACKED_POST
2775{
2776 /*STA Index*/
2777 tANI_U16 staIdx;
2778
2779 /*Encryption Type used with peer*/
2780 tAniEdType encType;
2781
2782 /*Key Id*/
2783 tANI_U8 keyId;
2784
2785 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2786 the same key is used for both broadcast and unicast.*/
2787 tANI_BOOLEAN unicast;
2788
2789} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2790
2791typedef PACKED_PRE struct PACKED_POST
2792{
2793 tHalMsgHeader header;
2794 tRemoveStaKeyParams removeStaKeyParams;
2795} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2796
2797/*---------------------------------------------------------------------------
2798 WLAN_HAL_RMV_STAKEY_RSP,
2799---------------------------------------------------------------------------*/
2800typedef PACKED_PRE struct PACKED_POST
2801{
2802 /*success or failure */
2803 tANI_U32 status;
2804} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2805
2806typedef PACKED_PRE struct PACKED_POST
2807{
2808 tHalMsgHeader header;
2809 tRemoveStaKeyRspParams removeStaKeyRspParams;
2810} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2811
Jeff Johnsone7245742012-09-05 17:12:55 -07002812#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002813
Jeff Johnsone7245742012-09-05 17:12:55 -07002814#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002815#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002816#endif
2817
2818#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002819#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002820#endif
2821
2822/*-------------------------------------------------------------------------
2823WLAN_HAL_START_OEM_DATA_REQ
2824--------------------------------------------------------------------------*/
2825typedef PACKED_PRE struct PACKED_POST
2826{
2827 tANI_U32 status;
2828 tSirMacAddr selfMacAddr;
2829 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2830} tStartOemDataReqParams, *tpStartOemDataReqParams;
2831
2832typedef PACKED_PRE struct PACKED_POST
2833{
2834 tHalMsgHeader header;
2835 tStartOemDataReqParams startOemDataReqParams;
2836} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2837
2838/*-------------------------------------------------------------------------
2839WLAN_HAL_START_OEM_DATA_RSP
2840--------------------------------------------------------------------------*/
2841
2842typedef PACKED_PRE struct PACKED_POST
2843{
2844 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2845} tStartOemDataRspParams, *tpStartOemDataRspParams;
2846
2847typedef PACKED_PRE struct PACKED_POST
2848{
2849 tHalMsgHeader header;
2850 tStartOemDataRspParams startOemDataRspParams;
2851} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2852
2853#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002854
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002855/*---------------------------------------------------------------------------
2856WLAN_HAL_CH_SWITCH_V1_REQ
2857---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002858
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002859typedef PACKED_PRE struct PACKED_POST
2860{
2861 /* Channel number */
2862 tANI_U8 channelNumber;
2863
2864 /* Local power constraint */
2865 tANI_U8 localPowerConstraint;
2866
2867 /*Secondary channel offset */
2868 ePhyChanBondState secondaryChannelOffset;
2869
2870 //HAL fills in the tx power used for mgmt frames in this field.
2871 tPowerdBm txMgmtPower;
2872
2873 /* Max TX power */
2874 tPowerdBm maxTxPower;
2875
2876 /* Self STA MAC */
2877 tSirMacAddr selfStaMacAddr;
2878
2879 /*VO WIFI comment: BSSID needed to identify session. As the request has
2880 * power constraints, this should be applied only to that session
2881 * Since MTU timing and EDCA are sessionized, this struct needs to be
2882 * sessionized and bssid needs to be out of the VOWifi feature flag
2883 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002884 * mantain backward compatbility
2885 * by way of ignoring if using new host/old FW or old host/new FW since
2886 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002887 */
2888 tSirMacAddr bssId;
2889
2890 /* Source of Channel Switch */
2891 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002892
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002893} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2894
2895typedef PACKED_PRE struct PACKED_POST
2896{
2897 tHalMsgHeader header;
2898 tSwitchChannelParams_V1 switchChannelParams_V1;
2899} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2900
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002901/*---------------------------------------------------------------------------
2902WLAN_HAL_CH_SWITCH_V1_RSP
2903---------------------------------------------------------------------------*/
2904
2905typedef PACKED_PRE struct PACKED_POST
2906{
2907 /* Status */
2908 tANI_U32 status;
2909
2910 /* Channel number - same as in request*/
2911 tANI_U8 channelNumber;
2912
2913 /* HAL fills in the tx power used for mgmt frames in this field */
2914 tPowerdBm txMgmtPower;
2915
2916 /* BSSID needed to identify session - same as in request*/
2917 tSirMacAddr bssId;
2918
2919 /* Source of Channel Switch */
2920 eHalChanSwitchSource channelSwitchSrc;
2921
2922} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2923
2924typedef PACKED_PRE struct PACKED_POST
2925{
2926 tHalMsgHeader header;
2927 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2928} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002929
2930/*---------------------------------------------------------------------------
2931WLAN_HAL_CH_SWITCH_REQ
2932---------------------------------------------------------------------------*/
2933
2934typedef PACKED_PRE struct PACKED_POST
2935{
2936 /* Channel number */
2937 tANI_U8 channelNumber;
2938
2939 /* Local power constraint */
2940 tANI_U8 localPowerConstraint;
2941
2942 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002943 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002944
2945 //HAL fills in the tx power used for mgmt frames in this field.
2946 tPowerdBm txMgmtPower;
2947
2948 /* Max TX power */
2949 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302950
Jeff Johnson295189b2012-06-20 16:38:30 -07002951 /* Self STA MAC */
2952 tSirMacAddr selfStaMacAddr;
2953
2954 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2955 this should be applied only to that session*/
2956 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2957 * bssid needs to be out of the VOWifi feature flag */
2958 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2959 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2960 */
2961 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302962
Jeff Johnson295189b2012-06-20 16:38:30 -07002963}tSwitchChannelParams, *tpSwitchChannelParams;
2964
2965typedef PACKED_PRE struct PACKED_POST
2966{
2967 tHalMsgHeader header;
2968 tSwitchChannelParams switchChannelParams;
2969} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2970
2971/*---------------------------------------------------------------------------
2972WLAN_HAL_CH_SWITCH_RSP
2973---------------------------------------------------------------------------*/
2974
2975typedef PACKED_PRE struct PACKED_POST
2976{
2977 /* Status */
2978 tANI_U32 status;
2979
2980 /* Channel number - same as in request*/
2981 tANI_U8 channelNumber;
2982
2983 /* HAL fills in the tx power used for mgmt frames in this field */
2984 tPowerdBm txMgmtPower;
2985
2986 /* BSSID needed to identify session - same as in request*/
2987 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302988
Jeff Johnson295189b2012-06-20 16:38:30 -07002989}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2990
2991typedef PACKED_PRE struct PACKED_POST
2992{
2993 tHalMsgHeader header;
2994 tSwitchChannelRspParams switchChannelRspParams;
2995} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2996
2997/*---------------------------------------------------------------------------
2998WLAN_HAL_UPD_EDCA_PARAMS_REQ
2999---------------------------------------------------------------------------*/
3000
3001typedef PACKED_PRE struct PACKED_POST
3002{
3003 /*BSS Index*/
3004 tANI_U16 bssIdx;
3005
3006 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303007 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003008
3009 /* Background */
3010 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303011
Jeff Johnson295189b2012-06-20 16:38:30 -07003012 /* Video */
3013 tSirMacEdcaParamRecord acvi;
3014
3015 /* Voice */
3016 tSirMacEdcaParamRecord acvo;
3017
3018} tEdcaParams, *tpEdcaParams;
3019
3020typedef PACKED_PRE struct PACKED_POST
3021{
3022 tHalMsgHeader header;
3023 tEdcaParams edcaParams;
3024} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3025
3026/*---------------------------------------------------------------------------
3027WLAN_HAL_UPD_EDCA_PARAMS_RSP
3028---------------------------------------------------------------------------*/
3029typedef PACKED_PRE struct PACKED_POST
3030{
3031 /*success or failure */
3032 tANI_U32 status;
3033} tEdcaRspParams, *tpEdcaRspParams;
3034
3035typedef PACKED_PRE struct PACKED_POST
3036{
3037 tHalMsgHeader header;
3038 tEdcaRspParams edcaRspParams;
3039} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3040
3041
3042
3043/*---------------------------------------------------------------------------
3044 * WLAN_HAL_GET_STATS_REQ
3045 *--------------------------------------------------------------------------*/
3046typedef PACKED_PRE struct PACKED_POST
3047
3048{
3049 /* Index of STA to which the statistics */
3050 tANI_U16 staIdx;
3051
3052 /* Encryption mode */
3053 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303054
Jeff Johnson295189b2012-06-20 16:38:30 -07003055 /* status */
3056 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303057
Jeff Johnson295189b2012-06-20 16:38:30 -07003058 /* Statistics */
3059 tANI_U32 sendBlocks;
3060 tANI_U32 recvBlocks;
3061 tANI_U32 replays;
3062 tANI_U8 micErrorCnt;
3063 tANI_U32 protExclCnt;
3064 tANI_U16 formatErrCnt;
3065 tANI_U16 unDecryptableCnt;
3066 tANI_U32 decryptErrCnt;
3067 tANI_U32 decryptOkCnt;
3068} tDpuStatsParams, * tpDpuStatsParams;
3069
3070typedef PACKED_PRE struct PACKED_POST
3071{
3072 /* Valid STA Idx for per STA stats request */
3073 tANI_U32 staId;
3074
3075 /* Categories of stats requested as specified in eHalStatsMask*/
3076 tANI_U32 statsMask;
3077}tHalStatsReqParams, *tpHalStatsReqParams;
3078
3079typedef PACKED_PRE struct PACKED_POST
3080{
3081 tHalMsgHeader header;
3082 tHalStatsReqParams statsReqParams;
3083} tHalStatsReqMsg, *tpHalStatsReqMsg;
3084
3085/*---------------------------------------------------------------------------
3086 * WLAN_HAL_GET_STATS_RSP
3087 *--------------------------------------------------------------------------*/
3088
3089typedef PACKED_PRE struct PACKED_POST
3090{
3091 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3092 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3093 // station successfully transmitted after more than one retransmission attempt
3094
Dino Mycle8afbac12014-07-04 22:06:17 +05303095 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3096 //(with and without retries, including multi-cast, broadcast)
3097 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3098 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003099 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3100 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3101 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3102 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 +05303103 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3104 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 -07003105 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3106 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 +05303107 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3108 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003109 //to provide this.
3110}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3111
3112
3113// defines tx_rate_flags
3114typedef enum eTxRateInfo
3115{
3116 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3117 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3118 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3119 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003120 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3121 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3122 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3123 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3124 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3125 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3126} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003127
3128
3129typedef PACKED_PRE struct PACKED_POST
3130{
Dino Mycle8afbac12014-07-04 22:06:17 +05303131 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 -07003132 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303133 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 -07003134 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303135 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3136 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003137 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303138 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3139 //for eg: if it is 10.5dBm, the value would be 105
3140 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3141 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003142
Dino Mycle8afbac12014-07-04 22:06:17 +05303143 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3144 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003145 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303146 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3147 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003148}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3149
3150typedef PACKED_PRE struct PACKED_POST
3151{
Dino Mycle8afbac12014-07-04 22:06:17 +05303152 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3153 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003154 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303155 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 -07003156 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303157 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 -07003158 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303159 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 -07003160 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303161 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 -07003162 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303163 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 -07003164 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303165 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 -07003166 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303167 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 -07003168 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303169 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 -07003170 //decrypted
3171 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3172
3173}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303174
Jeff Johnson295189b2012-06-20 16:38:30 -07003175typedef PACKED_PRE struct PACKED_POST
3176{
3177 tAniGlobalSecurityStats ucStats;
3178 tAniGlobalSecurityStats mcbcStats;
3179}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3180
3181typedef PACKED_PRE struct PACKED_POST
3182{
Dino Mycle8afbac12014-07-04 22:06:17 +05303183 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3184 //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 -07003185 //address 1 field
3186 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 +05303187 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 -07003188 //primary channel
3189 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 +05303190 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 -07003191 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303192 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3193 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003194 //decoded correctly
3195}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3196
3197typedef PACKED_PRE struct PACKED_POST
3198{
Dino Mycle8afbac12014-07-04 22:06:17 +05303199 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 -07003200 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303201 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3202 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 -07003203 //is transmitted
3204}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3205
3206typedef PACKED_PRE struct PACKED_POST
3207{
3208 /* Success or Failure */
3209 tANI_U32 status;
3210
3211 /* STA Idx */
3212 tANI_U32 staId;
3213
3214 /* Categories of STATS being returned as per eHalStatsMask*/
3215 tANI_U32 statsMask;
3216
3217 /* message type is same as the request type */
3218 tANI_U16 msgType;
3219
3220 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303221 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003222
3223} tHalStatsRspParams, *tpHalStatsRspParams;
3224
3225
3226
3227typedef PACKED_PRE struct PACKED_POST
3228{
3229 tHalMsgHeader header;
3230 tHalStatsRspParams statsRspParams;
3231} tHalStatsRspMsg, *tpHalStatsRspMsg;
3232
Abhishek Singhbc310882015-05-22 15:17:02 +05303233 /*---------------------------------------------------------------------------
3234 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3235 *---------------------------------------------------------------------------*/
3236typedef PACKED_PRE struct PACKED_POST
3237{
3238 tANI_U32 rtsCtsValue;
3239}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3240
3241typedef PACKED_PRE struct PACKED_POST
3242{
3243 tHalMsgHeader header;
3244 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3245} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3246
Jeff Johnson295189b2012-06-20 16:38:30 -07003247/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303248 * WLAN_HAL_FW_STATS_REQ
3249 *---------------------------------------------------------------------------*/
3250 typedef PACKED_PRE struct PACKED_POST
3251{
3252 tANI_U32 type;
3253}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3254
3255typedef PACKED_PRE struct PACKED_POST
3256{
3257 tHalMsgHeader header;
3258 tHalfwStatsReqParams fwstatsReqParams;
3259} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3260
3261/*---------------------------------------------------------------------------
3262 * WLAN_HAL_FW_STATS_RSP
3263 *---------------------------------------------------------------------------*/
3264 typedef PACKED_PRE struct PACKED_POST
3265{
3266 tANI_U32 type;
3267 tANI_U32 length;
3268 tANI_U8 data[1];
3269
3270}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3271
3272typedef PACKED_PRE struct PACKED_POST
3273{
3274 tHalMsgHeader header;
3275 tHalfwStatsRspParams fwstatsRspParams;
3276} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3277
3278typedef enum
3279{
3280 FW_UBSP_STATS = 1,
3281} fwstatstype;
3282
3283
3284/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003285 * WLAN_HAL_SET_LINK_ST_REQ
3286 *--------------------------------------------------------------------------*/
3287typedef PACKED_PRE struct PACKED_POST
3288{
3289 tSirMacAddr bssid;
3290 tSirLinkState state;
3291 tSirMacAddr selfMacAddr;
3292} tLinkStateParams, *tpLinkStateParams;
3293
3294typedef PACKED_PRE struct PACKED_POST
3295{
3296 tHalMsgHeader header;
3297 tLinkStateParams linkStateParams;
3298} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3299
3300/*---------------------------------------------------------------------------
3301 * WLAN_HAL_SET_LINK_ST_RSP
3302 *--------------------------------------------------------------------------*/
3303
3304typedef PACKED_PRE struct PACKED_POST
3305{
3306 /*success or failure */
3307 tANI_U32 status;
3308} tLinkStateRspParams, *tpLinkStateRspParams;
3309
3310typedef PACKED_PRE struct PACKED_POST
3311{
3312 tHalMsgHeader header;
3313 tLinkStateRspParams linkStateRspParams;
3314} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3315
3316/*---------------------------------------------------------------------------
3317 * WLAN_HAL_ADD_TS_REQ
3318 *--------------------------------------------------------------------------*/
3319
3320/* TSPEC Params */
3321typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3322{
Jeff Johnson295189b2012-06-20 16:38:30 -07003323 tANI_U16 trafficType : 1;
3324 tANI_U16 tsid : 4;
3325 tANI_U16 direction : 2;
3326 tANI_U16 accessPolicy : 2;
3327 tANI_U16 aggregation : 1;
3328 tANI_U16 psb : 1;
3329 tANI_U16 userPrio : 3;
3330 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003331} __ani_attr_packed tSirMacTSInfoTfc;
3332
3333/* Flag to schedule the traffic type */
3334typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3335{
Jeff Johnson295189b2012-06-20 16:38:30 -07003336 tANI_U8 schedule : 1;
3337 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003338} __ani_attr_packed tSirMacTSInfoSch;
3339
3340/* Traffic and scheduling info */
3341typedef __ani_attr_pre_packed struct sSirMacTSInfo
3342{
3343 tSirMacTSInfoTfc traffic;
3344 tSirMacTSInfoSch schedule;
3345} __ani_attr_packed tSirMacTSInfo;
3346
3347/* Information elements */
3348typedef __ani_attr_pre_packed struct sSirMacTspecIE
3349{
3350 tANI_U8 type;
3351 tANI_U8 length;
3352 tSirMacTSInfo tsinfo;
3353 tANI_U16 nomMsduSz;
3354 tANI_U16 maxMsduSz;
3355 tANI_U32 minSvcInterval;
3356 tANI_U32 maxSvcInterval;
3357 tANI_U32 inactInterval;
3358 tANI_U32 suspendInterval;
3359 tANI_U32 svcStartTime;
3360 tANI_U32 minDataRate;
3361 tANI_U32 meanDataRate;
3362 tANI_U32 peakDataRate;
3363 tANI_U32 maxBurstSz;
3364 tANI_U32 delayBound;
3365 tANI_U32 minPhyRate;
3366 tANI_U16 surplusBw;
3367 tANI_U16 mediumTime;
3368}__ani_attr_packed tSirMacTspecIE;
3369
3370typedef PACKED_PRE struct PACKED_POST
3371{
3372 /* Station Index */
3373 tANI_U16 staIdx;
3374
3375 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3376 tANI_U16 tspecIdx;
3377
3378 /* To program TPE with required parameters */
3379 tSirMacTspecIE tspec;
3380
3381 /* U-APSD Flags: 1b per AC. Encoded as follows:
3382 b7 b6 b5 b4 b3 b2 b1 b0 =
3383 X X X X BE BK VI VO */
3384 tANI_U8 uAPSD;
3385
3386 /* These parameters are for all the access categories */
3387 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3388 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3389 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303390
Jeff Johnson295189b2012-06-20 16:38:30 -07003391} tAddTsParams, *tpAddTsParams;
3392
3393typedef PACKED_PRE struct PACKED_POST
3394{
3395 tHalMsgHeader header;
3396 tAddTsParams addTsParams;
3397} tAddTsReqMsg, *tpAddTsReqMsg;
3398
3399/*---------------------------------------------------------------------------
3400 * WLAN_HAL_ADD_TS_RSP
3401 *--------------------------------------------------------------------------*/
3402
3403typedef PACKED_PRE struct PACKED_POST
3404{
3405 /*success or failure */
3406 tANI_U32 status;
3407} tAddTsRspParams, *tpAddTsRspParams;
3408
3409typedef PACKED_PRE struct PACKED_POST
3410{
3411 tHalMsgHeader header;
3412 tAddTsRspParams addTsRspParams;
3413} tAddTsRspMsg, *tpAddTsRspMsg;
3414
3415
3416/*---------------------------------------------------------------------------
3417 * WLAN_HAL_DEL_TS_REQ
3418 *--------------------------------------------------------------------------*/
3419
3420typedef PACKED_PRE struct PACKED_POST
3421{
3422 /* Station Index */
3423 tANI_U16 staIdx;
3424
3425 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3426 tANI_U16 tspecIdx;
3427
3428 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303429 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003430
3431} tDelTsParams, *tpDelTsParams;
3432
3433typedef PACKED_PRE struct PACKED_POST
3434{
3435 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303436 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003437} tDelTsReqMsg, *tpDelTsReqMsg;
3438
3439/*---------------------------------------------------------------------------
3440 * WLAN_HAL_DEL_TS_RSP
3441 *--------------------------------------------------------------------------*/
3442
3443typedef PACKED_PRE struct PACKED_POST
3444{
3445 /*success or failure */
3446 tANI_U32 status;
3447} tDelTsRspParams, *tpDelTsRspParams;
3448
3449typedef PACKED_PRE struct PACKED_POST
3450{
3451 tHalMsgHeader header;
3452 tDelTsRspParams delTsRspParams;
3453} tDelTsRspMsg, *tpDelTsRspMsg;
3454
3455/* End of TSpec Parameters */
3456
3457/* Start of BLOCK ACK related Parameters */
3458
3459/*---------------------------------------------------------------------------
3460 * WLAN_HAL_ADD_BA_SESSION_REQ
3461 *--------------------------------------------------------------------------*/
3462
3463typedef PACKED_PRE struct PACKED_POST
3464{
3465 /* Station Index */
3466 tANI_U16 staIdx;
3467
3468 /* Peer MAC Address */
3469 tSirMacAddr peerMacAddr;
3470
3471 /* ADDBA Action Frame dialog token
3472 HAL will not interpret this object */
3473 tANI_U8 baDialogToken;
3474
3475 /* TID for which the BA is being setup
3476 This identifies the TC or TS of interest */
3477 tANI_U8 baTID;
3478
3479 /* 0 - Delayed BA (Not supported)
3480 1 - Immediate BA */
3481 tANI_U8 baPolicy;
3482
3483 /* Indicates the number of buffers for this TID (baTID)
3484 NOTE - This is the requested buffer size. When this
3485 is processed by HAL and subsequently by HDD, it is
3486 possible that HDD may change this buffer size. Any
3487 change in the buffer size should be noted by PE and
3488 advertized appropriately in the ADDBA response */
3489 tANI_U16 baBufferSize;
3490
3491 /* BA timeout in TU's 0 means no timeout will occur */
3492 tANI_U16 baTimeout;
3493
3494 /* b0..b3 - Fragment Number - Always set to 0
3495 b4..b15 - Starting Sequence Number of first MSDU
3496 for which this BA is setup */
3497 tANI_U16 baSSN;
3498
3499 /* ADDBA direction
3500 1 - Originator
3501 0 - Recipient */
3502 tANI_U8 baDirection;
3503} tAddBASessionParams, *tpAddBASessionParams;
3504
3505typedef PACKED_PRE struct PACKED_POST
3506{
3507 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303508 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003509}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3510
3511/*---------------------------------------------------------------------------
3512 * WLAN_HAL_ADD_BA_SESSION_RSP
3513 *--------------------------------------------------------------------------*/
3514
3515typedef PACKED_PRE struct PACKED_POST
3516{
3517 /*success or failure */
3518 tANI_U32 status;
3519
3520 /* Dialog token */
3521 tANI_U8 baDialogToken;
3522
3523 /* TID for which the BA session has been setup */
3524 tANI_U8 baTID;
3525
3526 /* BA Buffer Size allocated for the current BA session */
3527 tANI_U8 baBufferSize;
3528
3529 tANI_U8 baSessionID;
3530
3531 /* Reordering Window buffer */
3532 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303533
Jeff Johnson295189b2012-06-20 16:38:30 -07003534 /*Station Index to id the sta */
3535 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303536
Jeff Johnson295189b2012-06-20 16:38:30 -07003537 /* Starting Sequence Number */
3538 tANI_U16 SSN;
3539} tAddBASessionRspParams, *tpAddBASessionRspParams;
3540
3541typedef PACKED_PRE struct PACKED_POST
3542{
3543 tHalMsgHeader header;
3544 tAddBASessionRspParams addBASessionRspParams;
3545} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3546
3547/*---------------------------------------------------------------------------
3548 * WLAN_HAL_ADD_BA_REQ
3549 *--------------------------------------------------------------------------*/
3550
3551typedef PACKED_PRE struct PACKED_POST
3552{
3553 /* Session Id */
3554 tANI_U8 baSessionID;
3555
3556 /* Reorder Window Size */
3557 tANI_U8 winSize;
3558
3559#ifdef FEATURE_ON_CHIP_REORDERING
3560 tANI_BOOLEAN isReorderingDoneOnChip;
3561#endif
3562} tAddBAParams, *tpAddBAParams;
3563
3564typedef PACKED_PRE struct PACKED_POST
3565{
3566 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303567 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003568} tAddBAReqMsg, *tpAddBAReqMsg;
3569
3570
3571/*---------------------------------------------------------------------------
3572 * WLAN_HAL_ADD_BA_RSP
3573 *--------------------------------------------------------------------------*/
3574
3575typedef PACKED_PRE struct PACKED_POST
3576{
3577 /*success or failure */
3578 tANI_U32 status;
3579
3580 /* Dialog token */
3581 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303582
Jeff Johnson295189b2012-06-20 16:38:30 -07003583} tAddBARspParams, *tpAddBARspParams;
3584
3585typedef PACKED_PRE struct PACKED_POST
3586{
3587 tHalMsgHeader header;
3588 tAddBARspParams addBARspParams;
3589} tAddBARspMsg, *tpAddBARspMsg;
3590
3591
3592/*---------------------------------------------------------------------------
3593 * WLAN_HAL_TRIGGER_BA_REQ
3594 *--------------------------------------------------------------------------*/
3595
3596
3597typedef struct sAddBaInfo
3598{
3599 tANI_U16 fBaEnable : 1;
3600 tANI_U16 startingSeqNum: 12;
3601 tANI_U16 reserved : 3;
3602}tAddBaInfo, *tpAddBaInfo;
3603
3604typedef struct sTriggerBaRspCandidate
3605{
3606 tSirMacAddr staAddr;
3607 tAddBaInfo baInfo[STACFG_MAX_TC];
3608}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3609
3610typedef struct sTriggerBaCandidate
3611{
3612 tANI_U8 staIdx;
3613 tANI_U8 tidBitmap;
3614}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3615
3616typedef PACKED_PRE struct PACKED_POST
3617{
3618 /* Session Id */
3619 tANI_U8 baSessionID;
3620
Dino Mycle8afbac12014-07-04 22:06:17 +05303621 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003622 * Candidate List(tTriggerBaCandidate)
3623 */
3624 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303625
Jeff Johnson295189b2012-06-20 16:38:30 -07003626} tTriggerBAParams, *tpTriggerBAParams;
3627
3628typedef PACKED_PRE struct PACKED_POST
3629{
3630 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303631 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003632} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3633
3634
3635/*---------------------------------------------------------------------------
3636 * WLAN_HAL_TRIGGER_BA_RSP
3637 *--------------------------------------------------------------------------*/
3638
3639typedef PACKED_PRE struct PACKED_POST
3640{
Dino Mycle8afbac12014-07-04 22:06:17 +05303641
Jeff Johnson295189b2012-06-20 16:38:30 -07003642 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303643 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003644
3645 /* success or failure */
3646 tANI_U32 status;
3647
Dino Mycle8afbac12014-07-04 22:06:17 +05303648 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003649 * Rsp Candidate List(tTriggerRspBaCandidate)
3650 */
3651 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303652
Jeff Johnson295189b2012-06-20 16:38:30 -07003653
3654} tTriggerBARspParams, *tpTriggerBARspParams;
3655
3656typedef PACKED_PRE struct PACKED_POST
3657{
3658 tHalMsgHeader header;
3659 tTriggerBARspParams triggerBARspParams;
3660} tTriggerBARspMsg, *tpTriggerBARspMsg;
3661
3662/*---------------------------------------------------------------------------
3663 * WLAN_HAL_DEL_BA_REQ
3664 *--------------------------------------------------------------------------*/
3665
3666typedef PACKED_PRE struct PACKED_POST
3667{
3668 /* Station Index */
3669 tANI_U16 staIdx;
3670
3671 /* TID for which the BA session is being deleted */
3672 tANI_U8 baTID;
3673
3674 /* DELBA direction
3675 1 - Originator
3676 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303677 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003678} tDelBAParams, *tpDelBAParams;
3679
3680typedef PACKED_PRE struct PACKED_POST
3681{
3682 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303683 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003684} tDelBAReqMsg, *tpDelBAReqMsg;
3685
3686/*---------------------------------------------------------------------------
3687 * WLAN_HAL_DEL_BA_RSP
3688 *--------------------------------------------------------------------------*/
3689
3690typedef PACKED_PRE struct PACKED_POST
3691{
3692 /* success or failure */
3693 tANI_U32 status;
3694} tDelBARspParams, *tpDelBARspParams;
3695
3696typedef PACKED_PRE struct PACKED_POST
3697{
3698 tHalMsgHeader header;
3699 tDelBARspParams delBARspParams;
3700} tDelBARspMsg, *tpDelBARspMsg;
3701
3702
Jeff Johnson295189b2012-06-20 16:38:30 -07003703/*---------------------------------------------------------------------------
3704 * WLAN_HAL_TSM_STATS_REQ
3705 *--------------------------------------------------------------------------*/
3706typedef PACKED_PRE struct PACKED_POST
3707{
3708 /* Traffic Id */
3709 tANI_U8 tsmTID;
3710
3711 tSirMacAddr bssId;
3712} tTsmStatsParams, *tpTsmStatsParams;
3713
3714typedef PACKED_PRE struct PACKED_POST
3715{
3716 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303717 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003718} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3719
3720
3721/*---------------------------------------------------------------------------
3722 * WLAN_HAL_TSM_STATS_RSP
3723 *--------------------------------------------------------------------------*/
3724typedef PACKED_PRE struct PACKED_POST
3725{
3726 /*success or failure */
3727 tANI_U32 status;
3728
Dino Mycle8afbac12014-07-04 22:06:17 +05303729 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003730 tANI_U16 UplinkPktQueueDly;
3731
Dino Mycle8afbac12014-07-04 22:06:17 +05303732 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003733 tANI_U16 UplinkPktQueueDlyHist[4];
3734
Dino Mycle8afbac12014-07-04 22:06:17 +05303735 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003736 tANI_U32 UplinkPktTxDly;
3737
Dino Mycle8afbac12014-07-04 22:06:17 +05303738 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003739 tANI_U16 UplinkPktLoss;
3740
Dino Mycle8afbac12014-07-04 22:06:17 +05303741 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003742 tANI_U16 UplinkPktCount;
3743
Dino Mycle8afbac12014-07-04 22:06:17 +05303744 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003745 tANI_U8 RoamingCount;
3746
Dino Mycle8afbac12014-07-04 22:06:17 +05303747 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003748 tANI_U16 RoamingDly;
3749} tTsmStatsRspParams, *tpTsmStatsRspParams;
3750
3751typedef PACKED_PRE struct PACKED_POST
3752{
3753 tHalMsgHeader header;
3754 tTsmStatsRspParams tsmStatsRspParams;
3755} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3756
3757
Jeff Johnson295189b2012-06-20 16:38:30 -07003758/*---------------------------------------------------------------------------
3759 * WLAN_HAL_SET_KEYDONE_MSG
3760 *--------------------------------------------------------------------------*/
3761
3762typedef PACKED_PRE struct PACKED_POST
3763{
3764 /*bssid of the keys */
3765 tANI_U8 bssidx;
3766 tANI_U8 encType;
3767} tSetKeyDoneParams, *tpSetKeyDoneParams;
3768
3769typedef PACKED_PRE struct PACKED_POST
3770{
3771 tHalMsgHeader header;
3772 tSetKeyDoneParams setKeyDoneParams;
3773} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3774
3775/*---------------------------------------------------------------------------
3776 * WLAN_HAL_DOWNLOAD_NV_REQ
3777 *--------------------------------------------------------------------------*/
3778typedef PACKED_PRE struct PACKED_POST
3779{
3780 /* Fragment sequence number of the NV Image. Note that NV Image might not
3781 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303782 * can hence choose to chop the NV blob into multiple fragments starting with
3783 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003784 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3785 * concatenated together by HAL without any padding bytes in between.*/
3786 tANI_U16 fragNumber;
3787
3788 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303789 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003790 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3791 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3792 tANI_U16 isLastFragment;
3793
3794 /* NV Image size (number of bytes) */
3795 tANI_U32 nvImgBufferSize;
3796
3797 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3798 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3799} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3800
3801typedef PACKED_PRE struct PACKED_POST
3802{
3803 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3804 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3805 tHalMsgHeader header;
3806 tHalNvImgDownloadReqParams nvImageReqParams;
3807} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3808
3809/*---------------------------------------------------------------------------
3810 * WLAN_HAL_DOWNLOAD_NV_RSP
3811 *--------------------------------------------------------------------------*/
3812typedef PACKED_PRE struct PACKED_POST
3813{
3814 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3815 * after each fragment */
3816 tANI_U32 status;
3817} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3818
3819typedef PACKED_PRE struct PACKED_POST
3820{
3821 tHalMsgHeader header;
3822 tHalNvImgDownloadRspParams nvImageRspParams;
3823} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3824
3825/*---------------------------------------------------------------------------
3826 * WLAN_HAL_STORE_NV_IND
3827 *--------------------------------------------------------------------------*/
3828typedef PACKED_PRE struct PACKED_POST
3829{
3830 /* NV Item */
3831 eNvTable tableID;
3832
3833 /* Size of NV Blob */
3834 tANI_U32 nvBlobSize;
3835
Dino Mycle8afbac12014-07-04 22:06:17 +05303836 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003837 * NV blob i.e. uint8[nvBlobSize] */
3838} tHalNvStoreParams, *tpHalNvStoreParams;
3839
3840typedef PACKED_PRE struct PACKED_POST
3841{
3842 /* Note: The length specified in tHalNvStoreInd messages should be
3843 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3844 tHalMsgHeader header;
3845 tHalNvStoreParams nvStoreParams;
3846} tHalNvStoreInd, *tpHalNvStoreInd;
3847
3848/* End of Block Ack Related Parameters */
3849
3850/*---------------------------------------------------------------------------
3851 * WLAN_HAL_MIC_FAILURE_IND
3852 *--------------------------------------------------------------------------*/
3853
3854#define SIR_CIPHER_SEQ_CTR_SIZE 6
3855
3856typedef PACKED_PRE struct PACKED_POST
3857{
Dino Mycle8afbac12014-07-04 22:06:17 +05303858 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003859 tSirMacAddr taMacAddr; //transmitter address
3860 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303861 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003862 tANI_U8 IV1; // first byte of IV
3863 tANI_U8 keyId; // second byte of IV
3864 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3865 tSirMacAddr rxMacAddr; // receive address
3866} tSirMicFailureInfo, *tpSirMicFailureInfo;
3867
3868/* Definition for MIC failure indication
3869 MAC reports this each time a MIC failure occures on Rx TKIP packet
3870 */
3871typedef PACKED_PRE struct PACKED_POST
3872{
3873 tSirMacAddr bssId; // BSSID
3874 tSirMicFailureInfo info;
3875} tSirMicFailureInd, *tpSirMicFailureInd;
3876
3877typedef PACKED_PRE struct PACKED_POST
3878{
3879 tHalMsgHeader header;
3880 tSirMicFailureInd micFailureInd;
3881} tMicFailureIndMsg, *tpMicFailureIndMsg;
3882
Mohit Khanna4a70d262012-09-11 16:30:12 -07003883typedef PACKED_PRE struct PACKED_POST
3884{
3885 tANI_U16 opMode;
3886 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303887}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003888
3889typedef PACKED_PRE struct PACKED_POST
3890{
3891 tHalMsgHeader header;
3892 tUpdateVHTOpMode updateVhtOpMode;
3893} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3894
3895typedef PACKED_PRE struct PACKED_POST
3896{
3897 tANI_U32 status;
3898} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3899
3900typedef PACKED_PRE struct PACKED_POST
3901{
3902 tHalMsgHeader header;
3903 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3904} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3905
Jeff Johnson295189b2012-06-20 16:38:30 -07003906/*---------------------------------------------------------------------------
3907 * WLAN_HAL_UPDATE_BEACON_REQ
3908 *--------------------------------------------------------------------------*/
3909typedef PACKED_PRE struct PACKED_POST
3910{
3911
3912 tANI_U8 bssIdx;
3913
3914 //shortPreamble mode. HAL should update all the STA rates when it
3915 //receives this message
3916 tANI_U8 fShortPreamble;
3917 //short Slot time.
3918 tANI_U8 fShortSlotTime;
3919 //Beacon Interval
3920 tANI_U16 beaconInterval;
3921 //Protection related
3922 tANI_U8 llaCoexist;
3923 tANI_U8 llbCoexist;
3924 tANI_U8 llgCoexist;
3925 tANI_U8 ht20MhzCoexist;
3926 tANI_U8 llnNonGFCoexist;
3927 tANI_U8 fLsigTXOPProtectionFullSupport;
3928 tANI_U8 fRIFSMode;
3929
3930 tANI_U16 paramChangeBitmap;
3931}tUpdateBeaconParams, *tpUpdateBeaconParams;
3932
3933
3934typedef PACKED_PRE struct PACKED_POST
3935{
3936 tHalMsgHeader header;
3937 tUpdateBeaconParams updateBeaconParam;
3938} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3939
3940/*---------------------------------------------------------------------------
3941 * WLAN_HAL_UPDATE_BEACON_RSP
3942 *--------------------------------------------------------------------------*/
3943typedef PACKED_PRE struct PACKED_POST
3944{
3945 tANI_U32 status;
3946} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3947
3948typedef PACKED_PRE struct PACKED_POST
3949{
3950 tHalMsgHeader header;
3951 tUpdateBeaconRspParams updateBeaconRspParam;
3952} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3953
3954/*---------------------------------------------------------------------------
3955 * WLAN_HAL_SEND_BEACON_REQ
3956 *--------------------------------------------------------------------------*/
3957typedef PACKED_PRE struct PACKED_POST
3958{
3959 tANI_U32 beaconLength; //length of the template.
3960 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3961 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003962 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003963 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3964}tSendBeaconParams, *tpSendBeaconParams;
3965
3966
3967typedef PACKED_PRE struct PACKED_POST
3968{
3969 tHalMsgHeader header;
3970 tSendBeaconParams sendBeaconParam;
3971}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3972
3973/*---------------------------------------------------------------------------
3974 * WLAN_HAL_SEND_BEACON_RSP
3975 *--------------------------------------------------------------------------*/
3976typedef PACKED_PRE struct PACKED_POST
3977{
3978 tANI_U32 status;
3979} tSendBeaconRspParams, *tpSendBeaconRspParams;
3980
3981typedef PACKED_PRE struct PACKED_POST
3982{
3983 tHalMsgHeader header;
3984 tSendBeaconRspParams sendBeaconRspParam;
3985} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3986
3987#ifdef FEATURE_5GHZ_BAND
3988
3989/*---------------------------------------------------------------------------
3990 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3991 *--------------------------------------------------------------------------*/
3992typedef PACKED_PRE struct PACKED_POST
3993{
3994 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303995 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003996}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3997
3998
3999typedef PACKED_PRE struct PACKED_POST
4000{
4001 /* Link Parameters */
4002 tSirEnableRadarInfoType EnableRadarInfo;
4003}tEnableRadarReqParams, *tpEnableRadarReqParams;
4004
4005typedef PACKED_PRE struct PACKED_POST
4006{
4007 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304008 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004009}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4010
4011/*---------------------------------------------------------------------------
4012 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4013 *--------------------------------------------------------------------------*/
4014
4015typedef PACKED_PRE struct PACKED_POST
4016{
4017 /* Link Parameters */
4018 tSirMacAddr BSSID;
4019 /* success or failure */
4020 tANI_U32 status;
4021}tEnableRadarRspParams, *tpEnableRadarRspParams;
4022
4023typedef PACKED_PRE struct PACKED_POST
4024{
4025 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304026 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004027}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4028
4029/*---------------------------------------------------------------------------
4030 *WLAN_HAL_RADAR_DETECT_INTR_IND
4031 *--------------------------------------------------------------------------*/
4032
4033typedef PACKED_PRE struct PACKED_POST
4034{
4035 tANI_U8 radarDetChannel;
4036}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4037
4038typedef PACKED_PRE struct PACKED_POST
4039{
4040 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304041 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004042}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4043
4044/*---------------------------------------------------------------------------
4045 *WLAN_HAL_RADAR_DETECT_IND
4046 *-------------------------------------------------------------------------*/
4047typedef PACKED_PRE struct PACKED_POST
4048{
4049 /*channel number in which the RADAR detected*/
4050 tANI_U8 channelNumber;
4051
4052 /*RADAR pulse width*/
4053 tANI_U16 radarPulseWidth; // in usecond
4054
4055 /*Number of RADAR pulses */
4056 tANI_U16 numRadarPulse;
4057}tRadarDetectIndParams,*tpRadarDetectIndParams;
4058
4059typedef PACKED_PRE struct PACKED_POST
4060{
4061 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304062 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004063}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4064
4065
4066/*---------------------------------------------------------------------------
4067 *WLAN_HAL_GET_TPC_REPORT_REQ
4068 *-------------------------------------------------------------------------*/
4069typedef PACKED_PRE struct PACKED_POST
4070{
4071 tSirMacAddr sta;
4072 tANI_U8 dialogToken;
4073 tANI_U8 txpower;
4074}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4075
4076
4077typedef PACKED_PRE struct PACKED_POST
4078{
4079 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304080 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004081}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4082
4083/*---------------------------------------------------------------------------
4084 * WLAN_HAL_GET_TPC_REPORT_RSP
4085 *--------------------------------------------------------------------------*/
4086
4087typedef PACKED_PRE struct PACKED_POST
4088{
4089 /* success or failure */
4090 tANI_U32 status;
4091}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4092
4093typedef PACKED_PRE struct PACKED_POST
4094{
4095 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304096 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004097}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4098
4099#endif
4100
Jeff Johnson295189b2012-06-20 16:38:30 -07004101/*---------------------------------------------------------------------------
4102 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4103 *-------------------------------------------------------------------------*/
4104typedef PACKED_PRE struct PACKED_POST
4105{
4106 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4107 tANI_U32 probeRespTemplateLen;
4108 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4109 tSirMacAddr bssId;
4110
4111}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4112
4113typedef PACKED_PRE struct PACKED_POST
4114{
4115 tHalMsgHeader header;
4116 tSendProbeRespReqParams sendProbeRespReqParams ;
4117}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4118
4119/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304120 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004121 *--------------------------------------------------------------------------*/
4122
4123typedef PACKED_PRE struct PACKED_POST
4124{
4125 /* success or failure */
4126 tANI_U32 status;
4127}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4128
4129typedef PACKED_PRE struct PACKED_POST
4130{
4131 tHalMsgHeader header;
4132 tSendProbeRespRspParams sendProbeRespRspParams;
4133}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4134
4135
4136/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304137 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004138 *--------------------------------------------------------------------------*/
4139
4140typedef PACKED_PRE struct PACKED_POST
4141{
4142 /* success or failure */
4143 tANI_U32 status;
4144}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4145
4146typedef PACKED_PRE struct PACKED_POST
4147{
4148 tHalMsgHeader header;
4149 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4150}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4151
4152/*---------------------------------------------------------------------------
4153 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4154 *--------------------------------------------------------------------------*/
4155
4156typedef PACKED_PRE struct PACKED_POST
4157{
4158 tANI_U16 assocId;
4159 tANI_U16 staId;
4160 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4161 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004162 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304163 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004164
4165}tDeleteStaContextParams, *tpDeleteStaContextParams;
4166
4167
4168typedef PACKED_PRE struct PACKED_POST
4169{
4170 tHalMsgHeader header;
4171 tDeleteStaContextParams deleteStaContextParams;
4172}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4173
Anand Kumar012623a2013-01-11 17:00:00 -08004174typedef PACKED_PRE struct PACKED_POST
4175{
4176 tHalMsgHeader header;
4177 tANI_U8 assocId;
4178 tANI_U8 staIdx;
4179 tANI_U8 bssIdx;
4180 tANI_U8 uReasonCode;
4181 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004182#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4183 tANI_U8 staAddr[6];
4184 tANI_U8 bssId[6];
4185#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004186} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004187
4188/*---------------------------------------------------------------------------
4189 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4190 *--------------------------------------------------------------------------*/
4191
4192typedef PACKED_PRE struct PACKED_POST
4193{
4194 tBtAmpEventType btAmpEventType;
4195
4196}tBtAmpEventParams, *tpBtAmpEventParams;
4197
4198
4199
4200typedef PACKED_PRE struct PACKED_POST
4201{
4202 tHalMsgHeader header;
4203 tBtAmpEventParams btAmpEventParams;
4204}tBtAmpEventMsg, *tpBtAmpEventMsg;
4205
4206/*---------------------------------------------------------------------------
4207*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4208*--------------------------------------------------------------------------*/
4209
4210typedef PACKED_PRE struct PACKED_POST
4211{
4212 /* success or failure */
4213 tANI_U32 status;
4214}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4215
4216typedef PACKED_PRE struct PACKED_POST
4217{
4218 tHalMsgHeader header;
4219 tBtAmpEventRspParams btAmpEventRspParams;
4220}tBtAmpEventRsp, *tpBtAmpEventRsp;
4221
4222
4223/*---------------------------------------------------------------------------
4224 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4225 *--------------------------------------------------------------------------*/
4226
4227typedef PACKED_PRE struct PACKED_POST
4228{
4229 // Station Index. originates from HAL
4230 tANI_U8 ucSTAId;
4231
4232 // TID for which the transmit queue is being flushed
4233 tANI_U8 ucTid;
4234
4235}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4236
4237
4238typedef PACKED_PRE struct PACKED_POST
4239{
4240 tHalMsgHeader header;
4241 tTlHalFlushAcParams tlHalFlushAcParam;
4242}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4243
4244/*---------------------------------------------------------------------------
4245*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
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 /* success or failure */
4257 tANI_U32 status;
4258}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4259
4260typedef PACKED_PRE struct PACKED_POST
4261{
4262 tHalMsgHeader header;
4263 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4264}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4265
4266/*---------------------------------------------------------------------------
4267 * WLAN_HAL_ENTER_IMPS_REQ
4268 *--------------------------------------------------------------------------*/
4269typedef PACKED_PRE struct PACKED_POST
4270{
4271 tHalMsgHeader header;
4272} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4273
4274/*---------------------------------------------------------------------------
4275 * WLAN_HAL_EXIT_IMPS_REQ
4276 *--------------------------------------------------------------------------*/
4277typedef PACKED_PRE struct PACKED_POST
4278{
4279 tHalMsgHeader header;
4280} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4281
4282/*---------------------------------------------------------------------------
4283 * WLAN_HAL_ENTER_BMPS_REQ
4284 *--------------------------------------------------------------------------*/
4285
4286typedef PACKED_PRE struct PACKED_POST
4287{
4288 tANI_U8 bssIdx;
4289 //TBTT value derived from the last beacon
4290#ifndef BUILD_QWPTTSTATIC
4291 tANI_U64 tbtt;
4292#endif
4293 tANI_U8 dtimCount;
4294 //DTIM period given to HAL during association may not be valid,
4295 //if association is based on ProbeRsp instead of beacon.
4296 tANI_U8 dtimPeriod;
4297
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004298 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004299 tANI_U32 rssiFilterPeriod;
4300 tANI_U32 numBeaconPerRssiAverage;
4301 tANI_U8 bRssiFilterEnable;
4302
4303} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4304
4305
4306typedef PACKED_PRE struct PACKED_POST
4307{
4308 tHalMsgHeader header;
4309 tHalEnterBmpsReqParams enterBmpsReq;
4310} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4311
4312/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304313 * WLAN_HAL_PRINT_REG_INFO_IND
4314 *--------------------------------------------------------------------------*/
4315typedef PACKED_PRE struct PACKED_POST
4316{
4317 uint32 regAddr;
4318 uint32 regValue;
4319} tHalRegDebugInfo, *tpRegDebugInfo;
4320
4321typedef PACKED_PRE struct PACKED_POST
4322{
4323 uint32 regCount;
4324 uint32 scenario;
4325 uint32 reasonCode;
4326} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4327
4328typedef PACKED_PRE struct PACKED_POST
4329{
4330 tHalMsgHeader header;
4331 tHalRegDebugInfoParams regParams;
4332} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4333
4334/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004335 * WLAN_HAL_EXIT_BMPS_REQ
4336 *--------------------------------------------------------------------------*/
4337typedef PACKED_PRE struct PACKED_POST
4338{
4339 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004340 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004341} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4342
4343typedef PACKED_PRE struct PACKED_POST
4344{
4345 tHalMsgHeader header;
4346 tHalExitBmpsReqParams exitBmpsReqParams;
4347} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4348
4349/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004350 * WLAN_HAL_MISSED_BEACON_IND
4351 *--------------------------------------------------------------------------*/
4352typedef PACKED_PRE struct PACKED_POST
4353{
4354 tANI_U8 bssIdx;
4355} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4356
4357typedef PACKED_PRE struct PACKED_POST
4358{
4359 tHalMsgHeader header;
4360 tHalMissedBeaconIndParams missedBeaconIndParams;
4361} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4362
4363/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004364 * WLAN_HAL_ADD_BCN_FILTER_REQ
4365 *--------------------------------------------------------------------------*/
4366/* Beacon Filtering data structures */
4367typedef PACKED_PRE struct PACKED_POST
4368{
4369 tANI_U8 offset;
4370 tANI_U8 value;
4371 tANI_U8 bitMask;
4372 tANI_U8 ref;
4373} tEidByteInfo, *tpEidByteInfo;
4374
Dino Mycle8afbac12014-07-04 22:06:17 +05304375typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004376{
4377 tANI_U16 capabilityInfo;
4378 tANI_U16 capabilityMask;
4379 tANI_U16 beaconInterval;
4380 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004381 tANI_U8 bssIdx;
4382 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004383} tBeaconFilterMsg, *tpBeaconFilterMsg;
4384
4385/* The above structure would be followed by multiple of below mentioned structure */
4386typedef PACKED_PRE struct PACKED_POST
4387{
4388 tANI_U8 elementId;
4389 tANI_U8 checkIePresence;
4390 tEidByteInfo byte;
4391} tBeaconFilterIe, *tpBeaconFilterIe;
4392
4393typedef PACKED_PRE struct PACKED_POST
4394{
4395 tHalMsgHeader header;
4396 tBeaconFilterMsg addBcnFilterParams;
4397} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4398
4399/*---------------------------------------------------------------------------
4400 * WLAN_HAL_REM_BCN_FILTER_REQ
4401 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304402typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004403{
4404 tANI_U8 ucIeCount;
4405 tANI_U8 ucRemIeId[1];
4406} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4407
4408typedef PACKED_PRE struct PACKED_POST
4409{
4410 tHalMsgHeader header;
4411 tRemBeaconFilterMsg remBcnFilterParams;
4412} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4413
4414/*---------------------------------------------------------------------------
4415 * WLAN_HAL_HOST_OFFLOAD_REQ
4416 *--------------------------------------------------------------------------*/
4417#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4418#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4419#define HAL_IPV6_NS_OFFLOAD 2
4420#define HAL_IPV6_ADDR_LEN 16
4421#define HAL_MAC_ADDR_LEN 6
4422#define HAL_OFFLOAD_DISABLE 0
4423#define HAL_OFFLOAD_ENABLE 1
4424#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004425#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004426#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004427#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004428
4429typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4430{
4431 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4432 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4433 //Only support 2 possible Network Advertisement IPv6 address
4434 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4435 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4436 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4437 tANI_U8 srcIPv6AddrValid : 1;
4438 tANI_U8 targetIPv6Addr1Valid : 1;
4439 tANI_U8 targetIPv6Addr2Valid : 1;
4440 tANI_U8 reserved1 : 5;
4441 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004442 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004443 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004444} tHalNSOffloadParams;
4445
4446typedef PACKED_PRE struct PACKED_POST
4447{
4448 tANI_U8 offloadType;
4449 tANI_U8 enableOrDisable;
4450 PACKED_PRE union PACKED_POST
4451 {
4452 tANI_U8 hostIpv4Addr [4];
4453 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4454 } params;
4455} tHalHostOffloadReq, *tpHalHostOffloadReq;
4456
4457typedef PACKED_PRE struct PACKED_POST
4458{
4459 tHalMsgHeader header;
4460 tHalHostOffloadReq hostOffloadParams;
4461 tHalNSOffloadParams nsOffloadParams;
4462} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4463
Leo Chang397deb72013-08-22 11:33:16 -07004464
4465#ifdef FEATURE_WLAN_LPHB
4466typedef enum
4467{
4468 WIFI_HB_SET_ENABLE = 0x0001,
4469 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4470 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4471 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4472 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4473 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4474}tLowPowerHeartBeatCmdType ;
4475
4476#define MAX_FLITER_SIZE 64
4477/*---------------------------------------------------------------------------
4478 *FEATURE_WLAN_LPHB REQ
4479 *--------------------------------------------------------------------------*/
4480typedef PACKED_PRE struct PACKED_POST
4481{
4482 uint32 hostIpv4Addr;
4483 uint32 destIpv4Addr;
4484 uint16 hostPort;
4485 uint16 destPort;
4486 uint16 timeOutSec; // in seconds
4487 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004488 uint16 timePeriodSec; // in seconds
4489 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004490} tlowPowerHeartBeatParamsTcpStruct;
4491
4492typedef PACKED_PRE struct PACKED_POST
4493{
4494 uint32 hostIpv4Addr;
4495 uint32 destIpv4Addr;
4496 uint16 hostPort;
4497 uint16 destPort;
4498 uint16 timePeriodSec;// in seconds
4499 uint16 timeOutSec; // in seconds
4500 tSirMacAddr gatewayMacAddr;
4501} tlowPowerHeartBeatParamsUdpStruct;
4502
4503typedef PACKED_PRE struct PACKED_POST
4504{
4505 uint32 offset;
4506 uint32 filterLength;
4507 uint8 filter[MAX_FLITER_SIZE];
4508} tlowPowerHeartBeatFilterStruct;
4509
4510typedef PACKED_PRE struct PACKED_POST
4511{
4512 uint8 heartBeatEnable;
4513 uint8 heartBeatType; //TCP or UDP
4514} tlowPowerHeartBeatEnableStruct;
4515
4516typedef PACKED_PRE struct PACKED_POST
4517{
4518 uint8 dummy;
4519} tlowPowerHeartBeatNetworkInfoStruct;
4520
4521
4522typedef PACKED_PRE struct PACKED_POST
4523{
4524 uint8 sessionIdx;
4525 uint16 lowPowerHeartBeatCmdType;
4526 PACKED_PRE union PACKED_PRO
4527 {
4528 tlowPowerHeartBeatEnableStruct control;
4529 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4530 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4531 tlowPowerHeartBeatParamsUdpStruct udpParams;
4532 tlowPowerHeartBeatNetworkInfoStruct info;
4533 }options;
4534} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4535
4536
4537typedef PACKED_PRE struct PACKED_POST
4538{
4539 tHalMsgHeader header;
4540 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4541} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4542
4543/*---------------------------------------------------------------------------
4544 * FEATURE_WLAN_LPHB RSP
4545 *--------------------------------------------------------------------------*/
4546
4547typedef PACKED_PRE struct PACKED_POST
4548{
4549 /* success or failure */
4550 uint8 sessionIdx;
4551 uint32 status;
4552 uint16 lowPowerHeartBeatCmdType;
4553}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4554
4555typedef PACKED_PRE struct PACKED_POST
4556{
4557 tHalMsgHeader header;
4558 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4559}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4560
4561
4562/*---------------------------------------------------------------------------
4563 * FEATURE_WLAN_LPHB IND
4564 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004565#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4566#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4567
4568#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4569#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004570#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004571
Kumar Anandea78e792013-10-10 23:47:01 -07004572
4573#define WIFI_LPHB_PROTO_UDP 0x01
4574#define WIFI_LPHB_PROTO_TCP 0x02
4575
Leo Chang397deb72013-08-22 11:33:16 -07004576typedef PACKED_PRE struct PACKED_POST
4577{
4578 uint8 bssIdx;
4579 uint8 sessionIdx;
4580 uint8 protocolType; /*TCP or UDP*/
4581 uint8 eventReason;
4582
4583}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4584
4585typedef PACKED_PRE struct PACKED_POST
4586{
4587 tHalMsgHeader header;
4588 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4589}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4590
4591#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004592
4593#ifdef FEATURE_WLAN_BATCH_SCAN
4594
4595/*---------------------------------------------------------------------------
4596 * WLAN_HAL_BATCHSCAN_SET_REQ
4597 *--------------------------------------------------------------------------*/
4598typedef PACKED_PRE struct PACKED_POST
4599{
4600 /* Scan Frerquency - default to 30Sec*/
4601 tANI_U32 scanInterval;
4602 tANI_U32 numScan2Batch;
4603 tANI_U32 bestNetworks;
4604 tANI_U8 rfBand;
4605 tANI_U8 rtt;
4606} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4607
4608typedef PACKED_PRE struct PACKED_POST
4609{
4610 tHalMsgHeader header;
4611 tHalBatchScanSetParams batchScanParams;
4612} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4613
4614/*---------------------------------------------------------------------------
4615 * WLAN_HAL_BATCHSCAN_SET_RSP
4616 *--------------------------------------------------------------------------*/
4617typedef PACKED_PRE struct PACKED_POST
4618{
4619 tANI_U32 supportedMscan;
4620} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4621
4622typedef PACKED_PRE struct PACKED_POST
4623{
4624 tHalMsgHeader header;
4625 tHalBatchScanSetRspParam setBatchScanRspParam;
4626} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4627
4628/*---------------------------------------------------------------------------
4629* WLAN_HAL_BATCHSCAN_STOP_IND
4630*--------------------------------------------------------------------------*/
4631typedef PACKED_PRE struct PACKED_POST
4632{
4633 tANI_U32 param;
4634} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4635
4636typedef PACKED_PRE struct PACKED_POST
4637{
4638 tHalMsgHeader header;
4639 tHalBatchScanStopIndParam param;
4640} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4641
4642/*---------------------------------------------------------------------------
4643* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4644*--------------------------------------------------------------------------*/
4645typedef PACKED_PRE struct PACKED_POST
4646{
4647 tANI_U32 param;
4648} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4649
4650typedef PACKED_PRE struct PACKED_POST
4651{
4652 tHalMsgHeader header;
4653 tHalBatchScanTriggerResultParam param;
4654} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4655
4656/*---------------------------------------------------------------------------
4657 * WLAN_HAL_BATCHSCAN_GET_RSP
4658 *--------------------------------------------------------------------------*/
4659typedef PACKED_PRE struct PACKED_POST
4660{
4661 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004662 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004663 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304664 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004665 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4666 tANI_U32 timestamp;
4667} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4668
4669typedef PACKED_PRE struct PACKED_POST
4670{
4671 tANI_U32 scanId; /* Scan List ID. */
4672 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4673 tANI_U32 numNetworksInScanList;
4674 /* Variable data ptr: Number of AP in Scan List */
4675 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4676 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4677 tANI_U8 scanList[1];
4678} tHalBatchScanList, *tpHalBatchScanList;
4679
4680typedef PACKED_PRE struct PACKED_POST
4681{
4682 tANI_U32 timestamp;
4683 tANI_U32 numScanLists;
4684 boolean isLastResult;
4685 /* Variable Data ptr: Number of Scan Lists*/
4686 /* following isLastResult is data of type tHalBatchScanList
4687 * of sizeof(tHalBatchScanList) * numScanLists*/
4688 tANI_U8 scanResults[1];
4689} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4690
4691typedef PACKED_PRE struct PACKED_POST
4692{
4693 tHalMsgHeader header;
4694 tHalBatchScanResultIndParam resultIndMsgParam;
4695} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4696
4697#endif
4698
Jeff Johnson295189b2012-06-20 16:38:30 -07004699/*---------------------------------------------------------------------------
4700 * WLAN_HAL_KEEP_ALIVE_REQ
4701 *--------------------------------------------------------------------------*/
4702/* Packet Types. */
4703#define HAL_KEEP_ALIVE_NULL_PKT 1
4704#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4705
4706/* Enable or disable keep alive */
4707#define HAL_KEEP_ALIVE_DISABLE 0
4708#define HAL_KEEP_ALIVE_ENABLE 1
4709
4710/* Keep Alive request. */
4711typedef PACKED_PRE struct PACKED_POST
4712{
4713 tANI_U8 packetType;
4714 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304715 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004716 tHalIpv4Addr destIpv4Addr;
4717 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004718 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004719} tHalKeepAliveReq, *tpHalKeepAliveReq;
4720
4721typedef PACKED_PRE struct PACKED_POST
4722{
4723 tHalMsgHeader header;
4724 tHalKeepAliveReq KeepAliveParams;
4725} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4726
4727/*---------------------------------------------------------------------------
4728 * WLAN_HAL_SET_RSSI_THRESH_REQ
4729 *--------------------------------------------------------------------------*/
4730typedef PACKED_PRE struct PACKED_POST
4731{
4732 tANI_S8 ucRssiThreshold1 : 8;
4733 tANI_S8 ucRssiThreshold2 : 8;
4734 tANI_S8 ucRssiThreshold3 : 8;
4735 tANI_U8 bRssiThres1PosNotify : 1;
4736 tANI_U8 bRssiThres1NegNotify : 1;
4737 tANI_U8 bRssiThres2PosNotify : 1;
4738 tANI_U8 bRssiThres2NegNotify : 1;
4739 tANI_U8 bRssiThres3PosNotify : 1;
4740 tANI_U8 bRssiThres3NegNotify : 1;
4741 tANI_U8 bReserved10 : 2;
4742} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304743
Jeff Johnson295189b2012-06-20 16:38:30 -07004744typedef PACKED_PRE struct PACKED_POST
4745{
4746 tHalMsgHeader header;
4747 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004748} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004749
4750/*---------------------------------------------------------------------------
4751 * WLAN_HAL_ENTER_UAPSD_REQ
4752 *--------------------------------------------------------------------------*/
4753typedef PACKED_PRE struct PACKED_POST
4754{
4755 tANI_U8 bkDeliveryEnabled:1;
4756 tANI_U8 beDeliveryEnabled:1;
4757 tANI_U8 viDeliveryEnabled:1;
4758 tANI_U8 voDeliveryEnabled:1;
4759 tANI_U8 bkTriggerEnabled:1;
4760 tANI_U8 beTriggerEnabled:1;
4761 tANI_U8 viTriggerEnabled:1;
4762 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004763 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004764} tUapsdReqParams, *tpUapsdReqParams;
4765
4766typedef PACKED_PRE struct PACKED_POST
4767{
4768 tHalMsgHeader header;
4769 tUapsdReqParams enterUapsdParams;
4770} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4771
4772/*---------------------------------------------------------------------------
4773 * WLAN_HAL_EXIT_UAPSD_REQ
4774 *--------------------------------------------------------------------------*/
4775typedef PACKED_PRE struct PACKED_POST
4776{
4777 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004778 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004779} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4780
Kumar Anandea78e792013-10-10 23:47:01 -07004781#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4782#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004783/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004784 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4785 *--------------------------------------------------------------------------*/
4786typedef PACKED_PRE struct PACKED_POST
4787{
4788 tANI_U32 selfStaIdx:8;
4789 tANI_U32 ucPtrnId:8; // Pattern ID
4790 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4791 tANI_U32 uPtrnIntervalMs; // In msec
4792 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4793} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4794
4795typedef PACKED_PRE struct PACKED_POST
4796{
4797 tHalMsgHeader header;
4798 tHalAddPeriodicTxPtrn ptrnParams;
4799} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4800
4801/*---------------------------------------------------------------------------
4802 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4803 *--------------------------------------------------------------------------*/
4804typedef PACKED_PRE struct PACKED_POST
4805{
4806 tANI_U32 selfStaIdx:8;
4807 tANI_U32 rsvd:24;
4808 /* Bitmap of pattern IDs that needs to be deleted */
4809 tANI_U32 uPatternIdBitmap;
4810} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4811
4812typedef PACKED_PRE struct PACKED_POST
4813{
4814 tHalMsgHeader header;
4815 tHalDelPeriodicTxPtrn ptrnParams;
4816} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4817
4818/*---------------------------------------------------------------------------
4819 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4820 *--------------------------------------------------------------------------*/
4821typedef PACKED_PRE struct PACKED_POST
4822{
4823 /* Type of Failure indication */
4824 tANI_U32 bssIdx:8;
4825 tANI_U32 selfStaIdx:8;
4826 tANI_U32 rsvd:16;
4827 tANI_U32 status;
4828 tANI_U32 patternIdBitmap;
4829} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4830
4831typedef PACKED_PRE struct PACKED_POST
4832{
4833 tHalMsgHeader header;
4834 tHalPeriodicTxPtrnFwInd fwIndParams;
4835} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4836
4837/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004838 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4839 *--------------------------------------------------------------------------*/
4840#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4841#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4842
4843typedef PACKED_PRE struct PACKED_POST
4844{
4845 tANI_U8 ucPatternId; // Pattern ID
4846 // Pattern byte offset from beginning of the 802.11 packet to start of the
4847 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304848 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004849 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4850 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4851 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4852 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4853 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4854 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004855 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004856} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4857
4858typedef PACKED_PRE struct PACKED_POST
4859{
4860 tHalMsgHeader header;
4861 tHalWowlAddBcastPtrn ptrnParams;
4862} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304863
Jeff Johnsone7245742012-09-05 17:12:55 -07004864
4865
Jeff Johnson295189b2012-06-20 16:38:30 -07004866/*---------------------------------------------------------------------------
4867 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4868 *--------------------------------------------------------------------------*/
4869typedef PACKED_PRE struct PACKED_POST
4870{
4871 /* Pattern ID of the wakeup pattern to be deleted */
4872 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004873 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004874} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4875
4876typedef PACKED_PRE struct PACKED_POST
4877{
4878 tHalMsgHeader header;
4879 tHalWowlDelBcastPtrn ptrnParams;
4880} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4881
4882/*---------------------------------------------------------------------------
4883 * WLAN_HAL_ENTER_WOWL_REQ
4884 *--------------------------------------------------------------------------*/
4885typedef PACKED_PRE struct PACKED_POST
4886{
4887 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304888 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004889
4890 /* Magic pattern */
4891 tSirMacAddr magicPtrn;
4892
Dino Mycle8afbac12014-07-04 22:06:17 +05304893 /* Enables/disables packet pattern filtering in firmware.
4894 Enabling this flag enables broadcast pattern matching
4895 in Firmware. If unicast pattern matching is also desired,
4896 ucUcastPatternFilteringEnable flag must be set tot true
4897 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004898 */
4899 tANI_U8 ucPatternFilteringEnable;
4900
Dino Mycle8afbac12014-07-04 22:06:17 +05304901 /* Enables/disables unicast packet pattern filtering.
4902 This flag specifies whether we want to do pattern match
4903 on unicast packets as well and not just broadcast packets.
4904 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004905 (main controlling flag) is set to false
4906 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304907 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004908
Dino Mycle8afbac12014-07-04 22:06:17 +05304909 /* This configuration is valid only when magicPktEnable=1.
4910 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004911 * Channel Switch Action Frame.
4912 */
4913 tANI_U8 ucWowChnlSwitchRcv;
4914
Dino Mycle8afbac12014-07-04 22:06:17 +05304915 /* This configuration is valid only when magicPktEnable=1.
4916 * It requests hardware to wake up when it receives the
4917 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004918 */
4919 tANI_U8 ucWowDeauthRcv;
4920
Dino Mycle8afbac12014-07-04 22:06:17 +05304921 /* This configuration is valid only when magicPktEnable=1.
4922 * It requests hardware to wake up when it receives the
4923 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004924 */
4925 tANI_U8 ucWowDisassocRcv;
4926
Dino Mycle8afbac12014-07-04 22:06:17 +05304927 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004928 * It requests hardware to wake up when it has missed
4929 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304930 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004931 */
4932 tANI_U8 ucWowMaxMissedBeacons;
4933
Dino Mycle8afbac12014-07-04 22:06:17 +05304934 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004935 * This is a timeout value in units of microsec. It requests
4936 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304937 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004938 */
4939 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304940
Jeff Johnson295189b2012-06-20 16:38:30 -07004941 /* This configuration directs the WoW packet filtering to look for EAP-ID
4942 * requests embedded in EAPOL frames and use this as a wake source.
4943 */
4944 tANI_U8 ucWoWEAPIDRequestEnable;
4945
4946 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4947 * requests and use this as a wake source.
4948 */
4949 tANI_U8 ucWoWEAPOL4WayEnable;
4950
4951 /* This configuration allows a host wakeup on an network scan offload match.
4952 */
4953 tANI_U8 ucWowNetScanOffloadMatch;
4954
4955 /* This configuration allows a host wakeup on any GTK rekeying error.
4956 */
4957 tANI_U8 ucWowGTKRekeyError;
4958
4959 /* This configuration allows a host wakeup on BSS connection loss.
4960 */
4961 tANI_U8 ucWoWBSSConnLoss;
4962
Jeff Johnsone7245742012-09-05 17:12:55 -07004963 tANI_U8 bssIdx;
4964
Jeff Johnson295189b2012-06-20 16:38:30 -07004965} tHalWowlEnterParams, *tpHalWowlEnterParams;
4966
4967typedef PACKED_PRE struct PACKED_POST
4968{
4969 tHalMsgHeader header;
4970 tHalWowlEnterParams enterWowlParams;
4971} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4972
4973/*---------------------------------------------------------------------------
4974 * WLAN_HAL_EXIT_WOWL_REQ
4975 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004976
Jeff Johnson295189b2012-06-20 16:38:30 -07004977typedef PACKED_PRE struct PACKED_POST
4978{
Jeff Johnsone7245742012-09-05 17:12:55 -07004979 tANI_U8 bssIdx;
4980
4981} tHalWowlExitParams, *tpHalWowlExitParams;
4982
4983typedef PACKED_PRE struct PACKED_POST
4984{
4985 tHalMsgHeader header;
4986 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004987} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4988
4989/*---------------------------------------------------------------------------
4990 * WLAN_HAL_GET_RSSI_REQ
4991 *--------------------------------------------------------------------------*/
4992typedef PACKED_PRE struct PACKED_POST
4993{
4994 tHalMsgHeader header;
4995} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4996
Anand Kumar012623a2013-01-11 17:00:00 -08004997typedef PACKED_PRE struct PACKED_POST
4998{
4999 /* Valid STA Idx for per STA stats request */
5000 tANI_U32 staId;
5001
5002}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5003
5004
5005/*---------------------------------------------------------------------------
5006 * WLAN_HAL_GET_ROAM_RSSI_REQ
5007 *--------------------------------------------------------------------------*/
5008typedef PACKED_PRE struct PACKED_POST
5009{
5010 tHalMsgHeader header;
5011 tHalRoamRssiReqParams roamRssiReqParams;
5012} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5013
5014
Jeff Johnson295189b2012-06-20 16:38:30 -07005015/*---------------------------------------------------------------------------
5016 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5017 *--------------------------------------------------------------------------*/
5018typedef PACKED_PRE struct PACKED_POST {
5019 tANI_U8 staidx; // STA index
5020 tANI_U8 ac; // Access Category
5021 tANI_U8 up; // User Priority
5022 tANI_U32 srvInterval; // Service Interval
5023 tANI_U32 susInterval; // Suspend Interval
5024 tANI_U32 delayInterval; // Delay Interval
5025} tUapsdInfo, tpUapsdInfo;
5026
5027typedef PACKED_PRE struct PACKED_POST
5028{
5029 tHalMsgHeader header;
5030 tUapsdInfo enableUapsdAcParams;
5031} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5032
5033/*---------------------------------------------------------------------------
5034 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5035 *--------------------------------------------------------------------------*/
5036typedef PACKED_PRE struct PACKED_POST {
5037 tANI_U8 setMcstBcstFilterSetting;
5038 tANI_U8 setMcstBcstFilter;
5039} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5040
5041typedef PACKED_PRE struct PACKED_POST
5042{
5043 tHalMsgHeader header;
5044 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5045} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5046
5047/*---------------------------------------------------------------------------
5048 * WLAN_HAL_ENTER_IMPS_RSP
5049 *--------------------------------------------------------------------------*/
5050typedef PACKED_PRE struct PACKED_POST
5051{
5052 /* success or failure */
5053 tANI_U32 status;
5054} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5055
5056typedef PACKED_PRE struct PACKED_POST
5057{
5058 tHalMsgHeader header;
5059 tHalEnterImpsRspParams enterImpsRspParams;
5060} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5061
5062/*---------------------------------------------------------------------------
5063 * WLAN_HAL_EXIT_IMPS_RSP
5064 *--------------------------------------------------------------------------*/
5065typedef PACKED_PRE struct PACKED_POST
5066{
5067 /* success or failure */
5068 tANI_U32 status;
5069} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5070
5071typedef PACKED_PRE struct PACKED_POST
5072{
5073 tHalMsgHeader header;
5074 tHalExitImpsRspParams exitImpsRspParams;
5075} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5076
5077/*---------------------------------------------------------------------------
5078 * WLAN_HAL_ENTER_BMPS_RSP
5079 *--------------------------------------------------------------------------*/
5080typedef PACKED_PRE struct PACKED_POST
5081{
5082 /* success or failure */
5083 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005084 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005085} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5086
5087typedef PACKED_PRE struct PACKED_POST
5088{
5089 tHalMsgHeader header;
5090 tHalEnterBmpsRspParams enterBmpsRspParams;
5091} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5092
5093/*---------------------------------------------------------------------------
5094 * WLAN_HAL_EXIT_BMPS_RSP
5095 *--------------------------------------------------------------------------*/
5096typedef PACKED_PRE struct PACKED_POST
5097{
5098 /* success or failure */
5099 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005100 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005101} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5102
5103typedef PACKED_PRE struct PACKED_POST
5104{
5105 tHalMsgHeader header;
5106 tHalExitBmpsRspParams exitBmpsRspParams;
5107} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5108
5109/*---------------------------------------------------------------------------
5110 * WLAN_HAL_ENTER_UAPSD_RSP
5111 *--------------------------------------------------------------------------*/
5112typedef PACKED_PRE struct PACKED_POST
5113{
5114 /* success or failure */
5115 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005116 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005117}tUapsdRspParams, *tpUapsdRspParams;
5118
5119typedef PACKED_PRE struct PACKED_POST
5120{
5121 tHalMsgHeader header;
5122 tUapsdRspParams enterUapsdRspParams;
5123} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5124
5125/*---------------------------------------------------------------------------
5126 * WLAN_HAL_EXIT_UAPSD_RSP
5127 *--------------------------------------------------------------------------*/
5128typedef PACKED_PRE struct PACKED_POST
5129{
5130 /* success or failure */
5131 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005132 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005133} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5134
5135typedef PACKED_PRE struct PACKED_POST
5136{
5137 tHalMsgHeader header;
5138 tHalExitUapsdRspParams exitUapsdRspParams;
5139} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5140
5141/*---------------------------------------------------------------------------
5142 * WLAN_HAL_RSSI_NOTIFICATION_IND
5143 *--------------------------------------------------------------------------*/
5144typedef PACKED_PRE struct PACKED_POST
5145{
5146 tANI_U32 bRssiThres1PosCross : 1;
5147 tANI_U32 bRssiThres1NegCross : 1;
5148 tANI_U32 bRssiThres2PosCross : 1;
5149 tANI_U32 bRssiThres2NegCross : 1;
5150 tANI_U32 bRssiThres3PosCross : 1;
5151 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005152 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005153 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005154 tANI_U32 isBTCoexCompromise : 1;
5155 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005156 tANI_S8 refRssiThreshold1;
5157 tANI_S8 refRssiThreshold2;
5158 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005159} tHalRSSINotification, *tpHalRSSINotification;
5160
5161typedef PACKED_PRE struct PACKED_POST
5162{
5163 tHalMsgHeader header;
5164 tHalRSSINotification rssiNotificationParams;
5165} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5166
5167/*---------------------------------------------------------------------------
5168 * WLAN_HAL_GET_RSSI_RSP
5169 *--------------------------------------------------------------------------*/
5170typedef PACKED_PRE struct PACKED_POST
5171{
5172 /* success or failure */
5173 tANI_U32 status;
5174 tANI_S8 rssi;
5175} tHalGetRssiParams, *tpHalGetRspParams;
5176
5177typedef PACKED_PRE struct PACKED_POST
5178{
5179 tHalMsgHeader header;
5180 tHalGetRssiParams rssiRspParams;
5181} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5182
5183/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005184 * WLAN_HAL_GET_ROAM_RSSI_RSP
5185 *--------------------------------------------------------------------------*/
5186typedef PACKED_PRE struct PACKED_POST
5187{
5188 /* success or failure */
5189 tANI_U32 status;
5190
5191 tANI_U8 staId;
5192 tANI_S8 rssi;
5193} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5194
5195typedef PACKED_PRE struct PACKED_POST
5196{
5197 tHalMsgHeader header;
5198 tHalGetRoamRssiParams roamRssiRspParams;
5199} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5200
5201/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005202 * WLAN_HAL_ENTER_WOWL_RSP
5203 *--------------------------------------------------------------------------*/
5204typedef PACKED_PRE struct PACKED_POST
5205{
5206 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005207 tANI_U32 status;
5208 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005209} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5210
5211typedef PACKED_PRE struct PACKED_POST
5212{
5213 tHalMsgHeader header;
5214 tHalEnterWowlRspParams enterWowlRspParams;
5215} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5216
5217/*---------------------------------------------------------------------------
5218 * WLAN_HAL_EXIT_WOWL_RSP
5219 *--------------------------------------------------------------------------*/
5220typedef PACKED_PRE struct PACKED_POST
5221{
5222 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005223 tANI_U32 status;
5224 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005225} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5226
5227typedef PACKED_PRE struct PACKED_POST
5228{
5229 tHalMsgHeader header;
5230 tHalExitWowlRspParams exitWowlRspParams;
5231} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5232
5233/*---------------------------------------------------------------------------
5234 * WLAN_HAL_ADD_BCN_FILTER_RSP
5235 *--------------------------------------------------------------------------*/
5236typedef PACKED_PRE struct PACKED_POST
5237{
5238 /* success or failure */
5239 tANI_U32 status;
5240} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5241
5242typedef PACKED_PRE struct PACKED_POST
5243{
5244 tHalMsgHeader header;
5245 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5246} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5247
5248/*---------------------------------------------------------------------------
5249 * WLAN_HAL_REM_BCN_FILTER_RSP
5250 *--------------------------------------------------------------------------*/
5251typedef PACKED_PRE struct PACKED_POST
5252{
5253 /* success or failure */
5254 tANI_U32 status;
5255} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5256
5257typedef PACKED_PRE struct PACKED_POST
5258{
5259 tHalMsgHeader header;
5260 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5261} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5262
5263/*---------------------------------------------------------------------------
5264 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5265 *--------------------------------------------------------------------------*/
5266typedef PACKED_PRE struct PACKED_POST
5267{
5268 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005269 tANI_U32 status;
5270 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005271} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5272
5273typedef PACKED_PRE struct PACKED_POST
5274{
5275 tHalMsgHeader header;
5276 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5277} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5278
5279/*---------------------------------------------------------------------------
5280 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5281 *--------------------------------------------------------------------------*/
5282typedef PACKED_PRE struct PACKED_POST
5283{
5284 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005285 tANI_U32 status;
5286 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005287} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5288
5289typedef PACKED_PRE struct PACKED_POST
5290{
5291 tHalMsgHeader header;
5292 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5293} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5294
5295/*---------------------------------------------------------------------------
5296 * WLAN_HAL_HOST_OFFLOAD_RSP
5297 *--------------------------------------------------------------------------*/
5298typedef PACKED_PRE struct PACKED_POST
5299{
5300 /* success or failure */
5301 tANI_U32 status;
5302} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5303
5304typedef PACKED_PRE struct PACKED_POST
5305{
5306 tHalMsgHeader header;
5307 tHalHostOffloadRspParams hostOffloadRspParams;
5308} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5309
5310/*---------------------------------------------------------------------------
5311 * WLAN_HAL_KEEP_ALIVE_RSP
5312 *--------------------------------------------------------------------------*/
5313typedef PACKED_PRE struct PACKED_POST
5314{
5315 /* success or failure */
5316 tANI_U32 status;
5317} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5318
5319typedef PACKED_PRE struct PACKED_POST
5320{
5321 tHalMsgHeader header;
5322 tHalKeepAliveRspParams keepAliveRspParams;
5323} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5324
5325/*---------------------------------------------------------------------------
5326 * WLAN_HAL_SET_RSSI_THRESH_RSP
5327 *--------------------------------------------------------------------------*/
5328typedef PACKED_PRE struct PACKED_POST
5329{
5330 /* success or failure */
5331 tANI_U32 status;
5332} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5333
5334typedef PACKED_PRE struct PACKED_POST
5335{
5336 tHalMsgHeader header;
5337 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5338} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5339
5340/*---------------------------------------------------------------------------
5341 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5342 *--------------------------------------------------------------------------*/
5343typedef PACKED_PRE struct PACKED_POST
5344{
5345 /* success or failure */
5346 tANI_U32 status;
5347} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5348
5349typedef PACKED_PRE struct PACKED_POST
5350{
5351 tHalMsgHeader header;
5352 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5353} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5354
5355/*---------------------------------------------------------------------------
5356 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5357 *--------------------------------------------------------------------------*/
5358typedef PACKED_PRE struct PACKED_POST
5359{
5360 /* success or failure */
5361 tANI_U32 status;
5362} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5363
5364typedef PACKED_PRE struct PACKED_POST
5365{
5366 tHalMsgHeader header;
5367 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5368} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5369
5370/*---------------------------------------------------------------------------
5371 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5372 *--------------------------------------------------------------------------*/
5373
5374typedef PACKED_PRE struct PACKED_POST
5375{
5376 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5377 //the request has power constraints, this should be applied only to that session
5378 tSirMacAddr selfStaMacAddr;
5379 //In request,
5380 //power == MaxTx power to be used.
5381 tPowerdBm power;
5382
5383}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5384
5385
5386typedef PACKED_PRE struct PACKED_POST
5387{
5388 tHalMsgHeader header;
5389 tSetMaxTxPwrParams setMaxTxPwrParams;
5390}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5391
5392/*---------------------------------------------------------------------------
5393*WLAN_HAL_SET_MAX_TX_POWER_RSP
5394*--------------------------------------------------------------------------*/
5395
5396typedef PACKED_PRE struct PACKED_POST
5397{
5398 //power == tx power used for management frames.
5399 tPowerdBm power;
5400
5401 /* success or failure */
5402 tANI_U32 status;
5403}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5404
5405typedef PACKED_PRE struct PACKED_POST
5406{
5407 tHalMsgHeader header;
5408 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5409}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5410
Kumar Anandea78e792013-10-10 23:47:01 -07005411
Jeff Johnson295189b2012-06-20 16:38:30 -07005412/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005413 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5414 *--------------------------------------------------------------------------*/
5415
5416/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5417typedef enum
5418{
5419 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5420 // For 2.4GHz or 5GHz bands
5421 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5422 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5423 // End of valid enums
5424 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5425}tHalSetMaxTxPwrBandInfo;
5426
5427typedef PACKED_PRE struct PACKED_POST
5428{
5429 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005430 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005431}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5432
Kumar Anandea78e792013-10-10 23:47:01 -07005433
Arif Hussain36fda162013-08-30 14:46:57 -07005434typedef PACKED_PRE struct PACKED_POST
5435{
5436 tHalMsgHeader header;
5437 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5438}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5439
5440/*---------------------------------------------------------------------------
5441*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5442*--------------------------------------------------------------------------*/
5443
5444typedef PACKED_PRE struct PACKED_POST
5445{
5446 //power == tx power used for management frames.
5447 tPowerdBm power;
5448
5449 /* success or failure */
5450 tANI_U32 status;
5451}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5452
5453typedef PACKED_PRE struct PACKED_POST
5454{
5455 tHalMsgHeader header;
5456 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5457}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5458
5459/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005460 *WLAN_HAL_SET_TX_POWER_REQ
5461 *--------------------------------------------------------------------------*/
5462
5463typedef PACKED_PRE struct PACKED_POST
5464{
5465 /* TX Power in milli watts */
5466 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005467 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005468}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5469
5470
5471typedef PACKED_PRE struct PACKED_POST
5472{
5473 tHalMsgHeader header;
5474 tSetTxPwrReqParams setTxPwrReqParams;
5475}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5476
5477/*---------------------------------------------------------------------------
5478*WLAN_HAL_SET_TX_POWER_RSP
5479*--------------------------------------------------------------------------*/
5480
5481typedef PACKED_PRE struct PACKED_POST
5482{
5483 /* success or failure */
5484 tANI_U32 status;
5485}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5486
5487typedef PACKED_PRE struct PACKED_POST
5488{
5489 tHalMsgHeader header;
5490 tSetTxPwrRspParams setTxPwrRspParams;
5491}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5492
5493/*---------------------------------------------------------------------------
5494 *WLAN_HAL_GET_TX_POWER_REQ
5495 *--------------------------------------------------------------------------*/
5496
5497typedef PACKED_PRE struct PACKED_POST
5498{
5499 tANI_U8 staId;
5500}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5501
5502typedef PACKED_PRE struct PACKED_POST
5503{
5504 tHalMsgHeader header;
5505 tGetTxPwrReqParams getTxPwrReqParams;
5506}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5507
5508/*---------------------------------------------------------------------------
5509*WLAN_HAL_GET_TX_POWER_RSP
5510*--------------------------------------------------------------------------*/
5511
5512typedef PACKED_PRE struct PACKED_POST
5513{
5514 /* success or failure */
5515 tANI_U32 status;
5516
5517 /* TX Power in milli watts */
5518 tANI_U32 txPower;
5519}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5520
5521typedef PACKED_PRE struct PACKED_POST
5522{
5523 tHalMsgHeader header;
5524 tGetTxPwrRspParams getTxPwrRspParams;
5525}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5526
5527#ifdef WLAN_FEATURE_P2P
5528/*---------------------------------------------------------------------------
5529 *WLAN_HAL_SET_P2P_GONOA_REQ
5530 *--------------------------------------------------------------------------*/
5531
5532typedef PACKED_PRE struct PACKED_POST
5533{
5534 tANI_U8 opp_ps;
5535 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305536 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005537 tANI_U32 duration;
5538 tANI_U32 interval;
5539 tANI_U32 single_noa_duration;
5540 tANI_U8 psSelection;
5541}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5542
5543
5544typedef PACKED_PRE struct PACKED_POST
5545{
5546 tHalMsgHeader header;
5547 tSetP2PGONOAParams setP2PGONOAParams;
5548}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5549
5550/*---------------------------------------------------------------------------
5551*WLAN_HAL_SET_P2P_GONOA_RSP
5552*--------------------------------------------------------------------------*/
5553
5554typedef PACKED_PRE struct PACKED_POST
5555{
5556 /* success or failure */
5557 tANI_U32 status;
5558}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5559
5560typedef PACKED_PRE struct PACKED_POST
5561{
5562 tHalMsgHeader header;
5563 tSetP2PGONOARspParams setP2PGONOARspParams;
5564}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5565#endif
5566
5567/*---------------------------------------------------------------------------
5568 *WLAN_HAL_ADD_SELF_STA_REQ
5569 *--------------------------------------------------------------------------*/
5570
5571typedef PACKED_PRE struct PACKED_POST
5572{
5573 tSirMacAddr selfMacAddr;
5574 tANI_U32 status;
5575}tAddStaSelfParams, *tpAddStaSelfParams;
5576
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005577typedef PACKED_PRE struct PACKED_POST
5578{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005579 tHalMsgHeader header;
5580 tAddStaSelfParams addStaSelfParams;
5581}tAddStaSelfReq, *tpAddStaSelfReq;
5582
5583/* This V1 structure carries additionally the IFACE PERSONA
5584 of the interface as compared to the legacy control
5585 message */
5586typedef PACKED_PRE struct PACKED_POST
5587{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005588 tSirMacAddr selfMacAddr;
5589 tANI_U32 status;
5590 tHalIfacePersona iface_persona;
5591}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005592
5593typedef PACKED_PRE struct PACKED_POST
5594{
5595 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005596 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005597}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005598
5599/*---------------------------------------------------------------------------
5600*WLAN_HAL_ADD_SELF_STA_RSP
5601*--------------------------------------------------------------------------*/
5602
5603typedef PACKED_PRE struct PACKED_POST
5604{
5605 /* success or failure */
5606 tANI_U32 status;
5607
5608 /*Self STA Index */
5609 tANI_U8 selfStaIdx;
5610
5611 /* DPU Index (IGTK, PTK, GTK all same) */
5612 tANI_U8 dpuIdx;
5613
5614 /* DPU Signature */
5615 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305616
Jeff Johnson295189b2012-06-20 16:38:30 -07005617}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5618
5619typedef PACKED_PRE struct PACKED_POST
5620{
5621 tHalMsgHeader header;
5622 tAddStaSelfRspParams addStaSelfRspParams;
5623}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5624
5625
5626/*---------------------------------------------------------------------------
5627 WLAN_HAL_DEL_STA_SELF_REQ
5628---------------------------------------------------------------------------*/
5629
5630typedef PACKED_PRE struct PACKED_POST
5631{
5632 tSirMacAddr selfMacAddr;
5633
5634}tDelStaSelfParams, *tpDelStaSelfParams;
5635
5636typedef PACKED_PRE struct PACKED_POST
5637{
5638 tHalMsgHeader header;
5639 tDelStaSelfParams delStaSelfParams;
5640} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5641
5642
5643/*---------------------------------------------------------------------------
5644 WLAN_HAL_DEL_STA_SELF_RSP
5645---------------------------------------------------------------------------*/
5646
5647typedef PACKED_PRE struct PACKED_POST
5648{
5649 /*success or failure */
5650 tANI_U32 status;
5651
5652 tSirMacAddr selfMacAddr;
5653}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5654
5655typedef PACKED_PRE struct PACKED_POST
5656{
5657 tHalMsgHeader header;
5658 tDelStaSelfRspParams delStaSelfRspParams;
5659} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5660
5661
5662#ifdef WLAN_FEATURE_VOWIFI_11R
5663
5664/*---------------------------------------------------------------------------
5665 *WLAN_HAL_AGGR_ADD_TS_REQ
5666 *--------------------------------------------------------------------------*/
5667
5668typedef PACKED_PRE struct PACKED_POST
5669{
5670 /* Station Index */
5671 tANI_U16 staIdx;
5672
5673 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5674 /* This will carry the bitmap with the bit positions representing different AC.s*/
5675 tANI_U16 tspecIdx;
5676
5677 /* Tspec info per AC To program TPE with required parameters */
5678 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5679
5680 /* U-APSD Flags: 1b per AC. Encoded as follows:
5681 b7 b6 b5 b4 b3 b2 b1 b0 =
5682 X X X X BE BK VI VO */
5683 tANI_U8 uAPSD;
5684
5685 /* These parameters are for all the access categories */
5686 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5687 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5688 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5689
5690}tAggrAddTsParams, *tpAggrAddTsParams;
5691
5692
5693typedef PACKED_PRE struct PACKED_POST
5694{
5695 tHalMsgHeader header;
5696 tAggrAddTsParams aggrAddTsParam;
5697}tAggrAddTsReq, *tpAggrAddTsReq;
5698
5699/*---------------------------------------------------------------------------
5700*WLAN_HAL_AGGR_ADD_TS_RSP
5701*--------------------------------------------------------------------------*/
5702
5703typedef PACKED_PRE struct PACKED_POST
5704{
5705 /* success or failure */
5706 tANI_U32 status0;
5707 /* FIXME PRIMA for future use for 11R */
5708 tANI_U32 status1;
5709}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5710
5711typedef PACKED_PRE struct PACKED_POST
5712{
5713 tHalMsgHeader header;
5714 tAggrAddTsRspParams aggrAddTsRspParam;
5715}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5716
5717#endif
5718
5719/*---------------------------------------------------------------------------
5720 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5721 *--------------------------------------------------------------------------*/
5722typedef PACKED_PRE struct PACKED_POST
5723{
5724 tANI_U8 isAppsCpuAwake;
5725} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5726
5727typedef PACKED_PRE struct PACKED_POST
5728{
5729 tHalMsgHeader header;
5730 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5731} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5732
5733/*---------------------------------------------------------------------------
5734 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5735 *--------------------------------------------------------------------------*/
5736typedef PACKED_PRE struct PACKED_POST
5737{
5738 /* success or failure */
5739 tANI_U32 status;
5740} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5741
5742typedef PACKED_PRE struct PACKED_POST
5743{
5744 tHalMsgHeader header;
5745 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5746} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5747/*---------------------------------------------------------------------------
5748 * WLAN_HAL_DUMP_COMMAND_REQ
5749 *--------------------------------------------------------------------------*/
5750
5751typedef PACKED_PRE struct PACKED_POST
5752{
5753 tANI_U32 argument1;
5754 tANI_U32 argument2;
5755 tANI_U32 argument3;
5756 tANI_U32 argument4;
5757 tANI_U32 argument5;
5758
5759}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5760
5761typedef PACKED_PRE struct PACKED_POST
5762{
5763 tHalMsgHeader header;
5764 tHalDumpCmdReqParams dumpCmdReqParams;
5765} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5766
5767/*---------------------------------------------------------------------------
5768 * WLAN_HAL_DUMP_COMMAND_RSP
5769 *--------------------------------------------------------------------------*/
5770
5771typedef PACKED_PRE struct PACKED_POST
5772{
5773 /* success or failure */
5774 tANI_U32 status;
5775 /*Length of the responce message*/
5776 tANI_U32 rspLength;
5777 /*FiXME: Currently considering the the responce will be less than 100bytes */
5778 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305779
Jeff Johnson295189b2012-06-20 16:38:30 -07005780} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5781
5782typedef PACKED_PRE struct PACKED_POST
5783{
5784 tHalMsgHeader header;
5785 tHalDumpCmdRspParams dumpCmdRspParams;
5786} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5787
5788/*---------------------------------------------------------------------------
5789 *WLAN_HAL_COEX_IND
5790 *-------------------------------------------------------------------------*/
5791#define WLAN_COEX_IND_DATA_SIZE (4)
5792#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5793#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005794#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5795#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005796#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5797#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305798#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5799#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305800#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005801
5802typedef PACKED_PRE struct PACKED_POST
5803{
5804 /*Coex Indication Type*/
5805 tANI_U32 coexIndType;
5806
5807 /*Coex Indication Data*/
5808 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5809}tCoexIndParams,*tpCoexIndParams;
5810
5811typedef PACKED_PRE struct PACKED_POST
5812{
5813 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305814 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005815}tCoexIndMsg, *tpCoexIndMsg;
5816
5817/*---------------------------------------------------------------------------
5818 *WLAN_HAL_OTA_TX_COMPL_IND
5819 *-------------------------------------------------------------------------*/
5820
5821typedef PACKED_PRE struct PACKED_POST
5822{
5823 /*Tx Complete Indication Success or Failure*/
5824 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305825 /* Dialog token */
5826 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005827}tTxComplParams,*tpTxComplParams;
5828
5829typedef PACKED_PRE struct PACKED_POST
5830{
5831 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305832 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005833}tTxComplIndMsg, *tpTxComplIndMsg;
5834
5835/*---------------------------------------------------------------------------
5836 * WLAN_HAL_HOST_SUSPEND_IND
5837 *-------------------------------------------------------------------------*/
5838
5839typedef PACKED_PRE struct PACKED_POST
5840{
5841 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305842 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005843}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5844
5845typedef PACKED_PRE struct PACKED_POST
5846{
5847 tHalMsgHeader header;
5848 tHalWlanHostSuspendIndParam suspendIndParams;
5849}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5850
5851/*---------------------------------------------------------------------------
5852 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5853 *-------------------------------------------------------------------------*/
5854
5855typedef PACKED_PRE struct PACKED_POST
5856{
5857 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305858 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005859}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5860
5861typedef PACKED_PRE struct PACKED_POST
5862{
5863 tHalMsgHeader header;
5864 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5865}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5866
5867#ifdef WLAN_FEATURE_P2P
5868/*---------------------------------------------------------------------------
5869 *WLAN_HAL_NOA_ATTR_IND
5870 *-------------------------------------------------------------------------*/
5871
5872typedef PACKED_PRE struct PACKED_POST
5873{
5874 tANI_U8 index ;
5875 tANI_U8 oppPsFlag ;
5876 tANI_U16 ctWin ;
5877
5878 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005879 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005880 tANI_U32 uNoa1Duration;
5881 tANI_U32 uNoa1Interval;
5882 tANI_U32 uNoa1StartTime;
5883
5884 tANI_U16 uNoa2IntervalCnt;
5885 tANI_U16 rsvd2;
5886 tANI_U32 uNoa2Duration;
5887 tANI_U32 uNoa2Interval;
5888 tANI_U32 uNoa2StartTime;
5889
5890 tANI_U32 status;
5891}tNoaAttrIndParams, *tpNoaAttrIndParams;
5892
5893typedef PACKED_PRE struct PACKED_POST
5894{
5895 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305896 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005897}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005898
5899/*---------------------------------------------------------------------------
5900 *WLAN_HAL_NOA_START_IND
5901 *-------------------------------------------------------------------------*/
5902
5903typedef PACKED_PRE struct PACKED_POST
5904{
5905 tANI_U32 status;
5906 tANI_U32 bssIdx;
5907}tNoaStartIndParams, *tpNoaStartIndParams;
5908
5909typedef PACKED_PRE struct PACKED_POST
5910{
5911 tHalMsgHeader header;
5912 tNoaStartIndParams noaStartIndParams;
5913}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005914#endif
5915
5916/*---------------------------------------------------------------------------
5917 * WLAN_HAL_HOST_RESUME_REQ
5918 *-------------------------------------------------------------------------*/
5919
5920typedef PACKED_PRE struct PACKED_POST
5921{
5922 tANI_U8 configuredMcstBcstFilterSetting;
5923}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5924
5925typedef PACKED_PRE struct PACKED_POST
5926{
5927 tHalMsgHeader header;
5928 tHalWlanHostResumeReqParam resumeReqParams;
5929}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5930
5931/*---------------------------------------------------------------------------
5932 * WLAN_HAL_HOST_RESUME_RSP
5933 *--------------------------------------------------------------------------*/
5934typedef PACKED_PRE struct PACKED_POST
5935{
5936 /* success or failure */
5937 tANI_U32 status;
5938} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5939
5940typedef PACKED_PRE struct PACKED_POST
5941{
5942 tHalMsgHeader header;
5943 tHalHostResumeRspParams hostResumeRspParams;
5944} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5945
Anand Kumar012623a2013-01-11 17:00:00 -08005946typedef PACKED_PRE struct PACKED_POST
5947{
5948 tANI_U16 staIdx;
5949 // Peer MAC Address, whose BA session has timed out
5950 tSirMacAddr peerMacAddr;
5951 // TID for which a BA session timeout is being triggered
5952 tANI_U8 baTID;
5953 // DELBA direction
5954 // 1 - Originator
5955 // 0 - Recipient
5956 tANI_U8 baDirection;
5957 tANI_U32 reasonCode;
5958 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5959} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5960
5961typedef PACKED_PRE struct PACKED_POST
5962{
5963 tHalMsgHeader header;
5964 tHalWlanDelBaIndMsg hostdelBaParam;
5965} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5966
Jeff Johnson295189b2012-06-20 16:38:30 -07005967/*---------------------------------------------------------------------------
5968 *PNO Messages
5969 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005970/* Max number of channels that a network can be found on*/
5971/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5972 * be changed at same time
5973 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005974#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005975
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305976/*Max number of channels that a network can be found on*/
5977#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5978
Jeff Johnson295189b2012-06-20 16:38:30 -07005979/*Maximum numbers of networks supported by PNO*/
5980#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5981
5982/*The number of scan time intervals that can be programmed into PNO*/
5983#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5984
5985/*Maximum size of the probe template*/
5986#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5987
Dino Mycle8afbac12014-07-04 22:06:17 +05305988/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005989 Immediate - scanning will start immediately and PNO procedure will
5990 be repeated based on timer
5991 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005992 Resume - scanning will start on system resume
5993 Delay - start the scan timer to trigger PNO scan
5994 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005995typedef enum
5996{
5997 ePNO_MODE_IMMEDIATE,
5998 ePNO_MODE_ON_SUSPEND,
5999 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306000 ePNO_MODE_DELAY,
6001 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006002 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6003} ePNOMode;
6004
6005/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306006typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006007{
Dino Mycle8afbac12014-07-04 22:06:17 +05306008 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006009 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306010
Jeff Johnson295189b2012-06-20 16:38:30 -07006011 // Upper layer authentication types
6012 eAUTH_TYPE_WPA = 2,
6013 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306014
Jeff Johnson295189b2012-06-20 16:38:30 -07006015 eAUTH_TYPE_RSN = 4,
6016 eAUTH_TYPE_RSN_PSK = 5,
6017 eAUTH_TYPE_FT_RSN = 6,
6018 eAUTH_TYPE_FT_RSN_PSK = 7,
6019 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6020 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006021 eAUTH_TYPE_CCKM_WPA = 10,
6022 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306023 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6024 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306025
Jeff Johnson295189b2012-06-20 16:38:30 -07006026 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6027
6028}tAuthType;
6029
6030/* Encryption type */
6031typedef enum eEdType
6032{
6033 eED_ANY = 0,
6034 eED_NONE = 1,
6035 eED_WEP = 2,
6036 eED_TKIP = 3,
6037 eED_CCMP = 4,
6038 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306039
Jeff Johnson295189b2012-06-20 16:38:30 -07006040 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6041} tEdType;
6042
6043/* SSID broadcast type */
6044typedef enum eSSIDBcastType
6045{
6046 eBCAST_UNKNOWN = 0,
6047 eBCAST_NORMAL = 1,
6048 eBCAST_HIDDEN = 2,
6049
6050 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6051} tSSIDBcastType;
6052
Dino Mycle8afbac12014-07-04 22:06:17 +05306053/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006054 The network description for which PNO will have to look for
6055*/
6056typedef PACKED_PRE struct PACKED_POST
6057{
6058 /*SSID of the BSS*/
6059 tSirMacSSid ssId;
6060
6061 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306062 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006063
6064 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306065 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006066
Dino Mycle8afbac12014-07-04 22:06:17 +05306067 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006068 0 - if all channels */
6069 tANI_U8 ucChannelCount;
6070 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6071
6072 /*Indicates the RSSI threshold for the network to be considered*/
6073 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306074}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006075
6076typedef PACKED_PRE struct PACKED_POST
6077{
6078 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306079 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006080
Dino Mycle8afbac12014-07-04 22:06:17 +05306081 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006082 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306083 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006084
Dino Mycle8afbac12014-07-04 22:06:17 +05306085 /*e.g: 2 3
6086 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006087 - it will wait 2s between consecutive scans for 3 times
6088 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306089}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006090
Dino Mycle8afbac12014-07-04 22:06:17 +05306091/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006092 The network parameters to be sent to the PNO algorithm
6093*/
6094typedef PACKED_PRE struct PACKED_POST
6095{
6096 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306097 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006098
Dino Mycle8afbac12014-07-04 22:06:17 +05306099 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006100 two consecutive scan procedures
6101 If the desired is for a uniform timer that fires always at the exact same
6102 interval - one single value is to be set
6103 If there is a desire for a more complex - telescopic like timer multiple
6104 values can be set - once PNO reaches the end of the array it will
6105 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306106 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006107
6108}tScanTimersType;
6109
6110typedef PACKED_PRE struct PACKED_POST {
6111
6112 /*Enable PNO*/
6113 tANI_U32 enable;
6114
6115 /*Immediate, On Suspend, On Resume*/
6116 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306117
Jeff Johnson295189b2012-06-20 16:38:30 -07006118 /*Number of networks sent for PNO*/
6119 tANI_U32 ucNetworksCount;
6120
6121 /*The networks that PNO needs to look for*/
6122 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6123
6124 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306125 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006126
6127 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306128 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006129 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6130
6131 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306132 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006133 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6134
6135} tPrefNetwListParams, * tpPrefNetwListParams;
6136
6137/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306138 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006139*/
6140typedef PACKED_PRE struct PACKED_POST
6141{
6142 tHalMsgHeader header;
6143 tPrefNetwListParams prefNetwListParams;
6144} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6145
6146
Dino Mycle8afbac12014-07-04 22:06:17 +05306147/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006148 The network description for which PNO will have to look for
6149*/
6150typedef PACKED_PRE struct PACKED_POST
6151{
6152 /*SSID of the BSS*/
6153 tSirMacSSid ssId;
6154
6155 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306156 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006157
6158 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306159 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006160
6161 /*SSID broadcast type, normal, hidden or unknown*/
6162 tSSIDBcastType bcastNetworkType;
6163
Dino Mycle8afbac12014-07-04 22:06:17 +05306164 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006165 0 - if all channels */
6166 tANI_U8 ucChannelCount;
6167 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6168
6169 /*Indicates the RSSI threshold for the network to be considered*/
6170 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306171}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006172
6173typedef PACKED_PRE struct PACKED_POST {
6174
6175 /*Enable PNO*/
6176 tANI_U32 enable;
6177
6178 /*Immediate, On Suspend, On Resume*/
6179 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306180
Jeff Johnson295189b2012-06-20 16:38:30 -07006181 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306182 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006183
6184 /*The networks that PNO needs to look for*/
6185 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6186
6187 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306188 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006189
6190 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306191 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006192 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6193
6194 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306195 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006196 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6197
6198} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6199
6200/*
6201 Preferred network list request new
6202*/
6203typedef PACKED_PRE struct PACKED_POST
6204{
6205 tHalMsgHeader header;
6206 tPrefNetwListParamsNew prefNetwListParams;
6207} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6208
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006209#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6210typedef PACKED_PRE struct PACKED_POST
6211{
6212 tSirMacSSid ssId;
6213 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6214 tANI_U32 authentication;
6215 tEdType encryption;
6216 tEdType mcencryption;
6217 tANI_U8 ChannelCount;
6218 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6219}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006220
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006221typedef PACKED_PRE struct PACKED_POST
6222{
6223 tANI_U8 mdiePresent;
6224 tANI_U16 mobilityDomain;
6225}tMobilityDomainInfo;
6226
6227typedef PACKED_PRE struct PACKED_POST {
6228 eAniBoolean RoamScanOffloadEnabled;
6229 tANI_S8 LookupThreshold;
6230 tANI_U8 RoamRssiDiff;
6231 tANI_U8 ChannelCacheType;
6232 tANI_U8 Command;
6233 tANI_U8 StartScanReason;
6234 tANI_U16 NeighborScanTimerPeriod;
6235 tANI_U16 NeighborRoamScanRefreshPeriod;
6236 tANI_U16 NeighborScanChannelMinTime;
6237 tANI_U16 NeighborScanChannelMaxTime;
6238 tANI_U16 EmptyRefreshScanPeriod;
6239 tANI_U8 ValidChannelCount;
6240 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006241 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006242
6243 tANI_U16 us24GProbeSize;
6244 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6245 tANI_U16 us5GProbeSize;
6246 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6247 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006248 tANI_U8 nProbes;
6249 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006250 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006251 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006252 tANI_U8 RoamOffloadEnabled;
6253 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6254 tANI_U8 Prefer5GHz;
6255 tANI_U8 RoamRssiCatGap;
6256 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006257 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6258 tRoamNetworkType ConnectedNetwork;
6259 tMobilityDomainInfo MDID;
6260} tRoamCandidateListParams, * tpRoamCandidateListParams;
6261
6262typedef PACKED_PRE struct PACKED_POST
6263{
Kumar Anandea78e792013-10-10 23:47:01 -07006264 tHalMsgHeader header;
6265 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006266} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6267
6268typedef PACKED_PRE struct PACKED_POST
6269{
Kumar Anandea78e792013-10-10 23:47:01 -07006270 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006271
Kumar Anandea78e792013-10-10 23:47:01 -07006272 /* status of the request - just to indicate that PNO has acknowledged
6273 * the request and will start scanning */
6274 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006275} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6276#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006277
6278/*
6279 Preferred network list response
6280*/
6281typedef PACKED_PRE struct PACKED_POST
6282{
6283 tHalMsgHeader header;
6284
6285 /* status of the request - just to indicate that PNO has acknowledged
6286 * the request and will start scanning*/
6287 tANI_U32 status;
6288} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6289
6290/*
6291 Preferred network indication parameters
6292*/
6293typedef PACKED_PRE struct PACKED_POST {
6294
6295 /*Network that was found with the highest RSSI*/
6296 tSirMacSSid ssId;
6297
6298 /*Indicates the RSSI */
6299 tANI_U8 rssi;
6300
6301 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6302 tANI_U16 frameLength;
6303
6304} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6305
6306/*
6307 Preferred network found indication
6308*/
6309typedef PACKED_PRE struct PACKED_POST {
6310
6311 tHalMsgHeader header;
6312 tPrefNetwFoundParams prefNetwFoundParams;
6313} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6314
6315
6316typedef PACKED_PRE struct PACKED_POST {
6317
6318 /*RSSI Threshold*/
6319 tANI_U8 ucRssiThreshold;
6320
6321} tRssiFilterParams, * tpRssiFilterParams;
6322
Jeff Johnson295189b2012-06-20 16:38:30 -07006323/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306324 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006325*/
6326typedef PACKED_PRE struct PACKED_POST
6327{
6328 tHalMsgHeader header;
6329 tRssiFilterParams prefRSSIFilterParams;
6330} tSetRssiFilterReq, *tpSetRssiFilterReq;
6331
6332/*
6333 Set RSSI filter resp
6334*/
6335typedef PACKED_PRE struct PACKED_POST{
6336 tHalMsgHeader header;
6337 /*status of the request */
6338 tANI_U32 status;
6339} tSetRssiFilterResp, *tpSetRssiFilterResp;
6340/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306341 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006342*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306343typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006344{
6345
6346 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306347 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006348
6349 /*Lets PNO know that host has determined the regulatory domain*/
6350 tANI_U8 b11dResolved;
6351
6352 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306353 tANI_U8 ucChannelCount;
6354 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006355
6356 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306357 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006358
6359 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306360 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006361
6362 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306363 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006364
6365 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306366 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006367
6368 /*Cb State*/
6369 ePhyChanBondState cbState;
6370
6371} tUpdateScanParams, * tpUpdateScanParams;
6372
6373/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306374 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306375*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306376typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306377{
6378
6379 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306380 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306381
6382 /*Lets PNO know that host has determined the regulatory domain*/
6383 tANI_U8 b11dResolved;
6384
6385 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306386 tANI_U8 ucChannelCount;
6387 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306388
6389 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306390 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306391
6392 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306393 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306394
6395 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306396 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306397
6398 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306399 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306400
6401 /*Cb State*/
6402 ePhyChanBondState cbState;
6403
6404} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6405
6406/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006407 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306408 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006409*/
6410typedef PACKED_PRE struct PACKED_POST{
6411
6412 tHalMsgHeader header;
6413 tUpdateScanParams scanParams;
6414} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6415
6416/*
6417 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306418 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006419*/
6420typedef PACKED_PRE struct PACKED_POST{
6421
6422 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306423 tUpdateScanParamsEx scanParams;
6424} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6425
6426/*
6427 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306428 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306429*/
6430typedef PACKED_PRE struct PACKED_POST{
6431
6432 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006433
6434 /*status of the request */
6435 tANI_U32 status;
6436
6437} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6438
6439/*---------------------------------------------------------------------------
6440 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6441 *--------------------------------------------------------------------------*/
6442typedef PACKED_PRE struct PACKED_POST
6443{
6444 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6445 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6446 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6447 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6448} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6449
6450typedef PACKED_PRE struct PACKED_POST
6451{
6452 tHalMsgHeader header;
6453 tHalTxPerTrackingReqParam txPerTrackingParams;
6454} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6455
6456/*---------------------------------------------------------------------------
6457 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6458 *--------------------------------------------------------------------------*/
6459typedef PACKED_PRE struct PACKED_POST
6460{
6461 /* success or failure */
6462 tANI_U32 status;
6463} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6464
6465typedef PACKED_PRE struct PACKED_POST
6466{
6467 tHalMsgHeader header;
6468 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6469} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6470
6471/*---------------------------------------------------------------------------
6472 * WLAN_HAL_TX_PER_HIT_IND
6473 *--------------------------------------------------------------------------*/
6474typedef PACKED_PRE struct PACKED_POST
6475{
6476 tHalMsgHeader header;
6477}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6478
6479/*---------------------------------------------------------------------------
6480 *******************Packet Filtering Definitions Begin*******************
6481 *--------------------------------------------------------------------------*/
6482#define HAL_PROTOCOL_DATA_LEN 8
6483#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6484#define HAL_MAX_NUM_FILTERS 20
6485#define HAL_MAX_CMP_PER_FILTER 10
6486
6487typedef enum
6488{
6489 HAL_RCV_FILTER_TYPE_INVALID,
6490 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6491 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6492 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6493}tHalReceivePacketFilterType;
6494
Dino Mycle8afbac12014-07-04 22:06:17 +05306495typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006496{
6497 HAL_FILTER_PROTO_TYPE_INVALID,
6498 HAL_FILTER_PROTO_TYPE_MAC,
6499 HAL_FILTER_PROTO_TYPE_ARP,
6500 HAL_FILTER_PROTO_TYPE_IPV4,
6501 HAL_FILTER_PROTO_TYPE_IPV6,
6502 HAL_FILTER_PROTO_TYPE_UDP,
6503 HAL_FILTER_PROTO_TYPE_MAX
6504}tHalRcvPktFltProtocolType;
6505
Dino Mycle8afbac12014-07-04 22:06:17 +05306506typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006507{
6508 HAL_FILTER_CMP_TYPE_INVALID,
6509 HAL_FILTER_CMP_TYPE_EQUAL,
6510 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6511 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6512 HAL_FILTER_CMP_TYPE_MAX
6513}tHalRcvPktFltCmpFlagType;
6514
Dino Mycle8afbac12014-07-04 22:06:17 +05306515typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006516{
6517 tANI_U8 protocolLayer;
6518 tANI_U8 cmpFlag;
6519 tANI_U16 dataLength; /* Length of the data to compare */
6520 tANI_U8 dataOffset; /* from start of the respective frame header */
6521 tANI_U8 reserved; /* Reserved field */
6522 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6523 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6524}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6525
6526typedef PACKED_PRE struct PACKED_POST
6527{
6528 tANI_U8 filterId;
6529 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306530 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006531 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006532 tHalRcvPktFilterParams paramsData[1];
6533}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6534
6535typedef PACKED_PRE struct PACKED_POST
6536{
Jeff Johnsone7245742012-09-05 17:12:55 -07006537 tANI_U8 filterId;
6538 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306539 tANI_U8 numParams;
6540 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006541 tANI_U8 bssIdx;
6542 tHalRcvPktFilterParams paramsData[1];
6543}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6544
6545typedef PACKED_PRE struct PACKED_POST
6546{
Jeff Johnson295189b2012-06-20 16:38:30 -07006547 tHalMsgHeader header;
6548 tHalRcvPktFilterCfgType pktFilterCfg;
6549} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6550
Jeff Johnsone7245742012-09-05 17:12:55 -07006551typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006552{
6553 tANI_U8 dataOffset; /* from start of the respective frame header */
6554 tANI_U32 cMulticastAddr;
6555 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006556 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006557} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6558
6559typedef PACKED_PRE struct PACKED_POST
6560{
6561 /* success or failure */
6562 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006563 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006564} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6565
6566typedef PACKED_PRE struct PACKED_POST
6567{
6568 tHalMsgHeader header;
6569 tHalSetPktFilterRspParams pktFilterRspParams;
6570} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6571
Jeff Johnsone7245742012-09-05 17:12:55 -07006572typedef PACKED_PRE struct PACKED_POST
6573{
6574 tANI_U8 bssIdx;
6575} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006576
6577typedef PACKED_PRE struct PACKED_POST
6578{
6579 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006580 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006581} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6582
Jeff Johnsone7245742012-09-05 17:12:55 -07006583
Jeff Johnson295189b2012-06-20 16:38:30 -07006584typedef PACKED_PRE struct PACKED_POST
6585{
6586 tANI_U8 filterId;
6587 tANI_U32 matchCnt;
6588} tHalRcvFltPktMatchCnt;
6589typedef PACKED_PRE struct PACKED_POST
6590{
6591 /* Success or Failure */
6592 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306593 tANI_U32 matchCnt;
6594 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006595 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006596} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6597
6598typedef PACKED_PRE struct PACKED_POST
6599{
6600 tHalMsgHeader header;
6601 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6602} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6603
6604typedef PACKED_PRE struct PACKED_POST
6605{
6606 tANI_U32 status; /* only valid for response message */
6607 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006608 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006609}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6610
6611typedef PACKED_PRE struct PACKED_POST
6612{
6613 tHalMsgHeader header;
6614 tHalRcvFltPktClearParam filterClearParam;
6615} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6616
6617typedef PACKED_PRE struct PACKED_POST
6618{
6619 tHalMsgHeader header;
6620 tHalRcvFltPktClearParam filterClearParam;
6621} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6622
6623typedef PACKED_PRE struct PACKED_POST
6624{
Dino Mycle8afbac12014-07-04 22:06:17 +05306625 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006626 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006627}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6628
6629typedef PACKED_PRE struct PACKED_POST
6630{
6631 tHalMsgHeader header;
6632 tHalRcvFltMcAddrListType mcAddrList;
6633} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6634
6635typedef PACKED_PRE struct PACKED_POST
6636{
6637 tHalMsgHeader header;
6638 tHalRcvFltPktSetMcListRspType rspParam;
6639} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6640
6641
6642/*---------------------------------------------------------------------------
6643 *******************Packet Filtering Definitions End*******************
6644 *--------------------------------------------------------------------------*/
6645
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006646/*
6647 * There are two versions of this message
6648 * Version 1 : Base version
6649 * Current version : Base version + Max LI modulated DTIM
6650 */
6651typedef PACKED_PRE struct PACKED_POST
6652{
6653 /* Ignore DTIM */
6654 tANI_U32 uIgnoreDTIM;
6655
6656 /*DTIM Period*/
6657 tANI_U32 uDTIMPeriod;
6658
6659 /* Listen Interval */
6660 tANI_U32 uListenInterval;
6661
6662 /* Broadcast Multicast Filter */
6663 tANI_U32 uBcastMcastFilter;
6664
6665 /* Beacon Early Termination */
6666 tANI_U32 uEnableBET;
6667
6668 /* Beacon Early Termination Interval */
6669 tANI_U32 uBETInterval;
6670}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6671
6672typedef PACKED_PRE struct PACKED_POST
6673{
6674 tHalMsgHeader header;
6675 tSetPowerParamsVer1Type powerParams;
6676} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6677
Jeff Johnson295189b2012-06-20 16:38:30 -07006678typedef PACKED_PRE struct PACKED_POST
6679{
6680 /* Ignore DTIM */
6681 tANI_U32 uIgnoreDTIM;
6682
6683 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306684 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006685
6686 /* Listen Interval */
6687 tANI_U32 uListenInterval;
6688
6689 /* Broadcast Multicast Filter */
6690 tANI_U32 uBcastMcastFilter;
6691
6692 /* Beacon Early Termination */
6693 tANI_U32 uEnableBET;
6694
6695 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306696 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006697
6698 /* MAX LI for modulated DTIM */
6699 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006700}tSetPowerParamsType, *tpSetPowerParamsType;
6701
6702typedef PACKED_PRE struct PACKED_POST
6703{
6704 tHalMsgHeader header;
6705 tSetPowerParamsType powerParams;
6706} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6707
6708typedef PACKED_PRE struct PACKED_POST{
6709
6710 tHalMsgHeader header;
6711
6712 /*status of the request */
6713 tANI_U32 status;
6714
6715} tSetPowerParamsResp, *tpSetPowerParamsResp;
6716
6717/*---------------------------------------------------------------------------
6718 ****************Capability bitmap exchange definitions and macros starts*************
6719 *--------------------------------------------------------------------------*/
6720
Anand Kumar012623a2013-01-11 17:00:00 -08006721typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006722 MCC = 0,
6723 P2P = 1,
6724 DOT11AC = 2,
6725 SLM_SESSIONIZATION = 3,
6726 DOT11AC_OPMODE = 4,
6727 SAP32STA = 5,
6728 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006729 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006730 WLANACTIVE_OFFLOAD = 8,
6731 BEACON_OFFLOAD = 9,
6732 SCAN_OFFLOAD = 10,
6733 ROAM_OFFLOAD = 11,
6734 BCN_MISS_OFFLOAD = 12,
6735 STA_POWERSAVE = 13,
6736 STA_ADVANCED_PWRSAVE = 14,
6737 AP_UAPSD = 15,
6738 AP_DFS = 16,
6739 BLOCKACK = 17,
6740 PHY_ERR = 18,
6741 BCN_FILTER = 19,
6742 RTT = 20,
6743 RATECTRL = 21,
6744 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006745 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006746 SPECULATIVE_PS_POLL = 24,
6747 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006748 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006749 WLAN_SCAN_OFFLOAD = 27,
6750 WLAN_PERIODIC_TX_PTRN = 28,
6751 ADVANCE_TDLS = 29,
6752 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306753 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306754 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306755 CH_SWITCH_V1 = 33,
6756 HT40_OBSS_SCAN = 34,
6757 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006758 WLAN_MCADDR_FLT = 36,
6759 WLAN_CH144 = 37,
6760 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306761 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306762 LINK_LAYER_STATS_MEAS = 40,
6763 MU_MIMO = 41,
6764 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306765 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306766 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306767 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306768 DISA = 46,
6769 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306770 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306771 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306772 TDLS_OFF_CHANNEL = 51,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306773 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306774 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306775 LOGGING_ENHANCEMENT = 55,
Kumar Anandea78e792013-10-10 23:47:01 -07006776 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006777} placeHolderInCapBitmap;
6778
Jeff Johnson295189b2012-06-20 16:38:30 -07006779typedef PACKED_PRE struct PACKED_POST{
6780
6781 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006782} tWlanFeatCaps, *tpWlanFeatCaps;
6783
6784typedef PACKED_PRE struct PACKED_POST{
6785
Dino Mycle8afbac12014-07-04 22:06:17 +05306786 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006787 tWlanFeatCaps wlanFeatCaps;
6788
6789} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6790
Jeff Johnsone7245742012-09-05 17:12:55 -07006791#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6792#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006793#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006794#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006795#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006796#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006797#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006798#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306799#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306800#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306801#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306802#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306803#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006804
Jeff Johnsone7245742012-09-05 17:12:55 -07006805tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6806
Jeff Johnson295189b2012-06-20 16:38:30 -07006807#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006808 if ((b)<=127) { \
6809 arr_index = (b)/32; \
6810 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006811 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006812 (a)->featCaps[arr_index] |= (1<<bit_index); \
6813 } \
6814 }
6815#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006816 if ((b)<=127) { \
6817 arr_index = (b)/32; \
6818 bit_index = (b)%32; \
6819 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006820 } \
6821 }
6822#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006823 if ((b)<=127) { \
6824 arr_index = (b)/32; \
6825 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006826 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006827 } \
6828 }
6829
6830/*---------------------------------------------------------------------------
6831 * WLAN_HAL_WAKE_REASON_IND
6832 *--------------------------------------------------------------------------*/
6833
6834/* status codes to help debug rekey failures */
6835typedef enum
6836{
6837 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6838 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6839 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6840 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6841 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6842 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6843 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6844 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6845 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6846 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6847
6848 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6849} tGTKRekeyStatus;
6850
6851/* wake reason types */
6852typedef enum
6853{
6854 WLAN_HAL_WAKE_REASON_NONE = 0,
6855 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6856 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6857 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6858 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6859 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6860 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6861 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6862} tWakeReasonType;
6863
6864/*
6865 Wake Packet which is saved at tWakeReasonParams.DataStart
6866 This data is sent for any wake reasons that involve a packet-based wakeup :
6867
6868 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6869 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6870 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6871 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6872 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6873
6874 The information is provided to the host for auditing and debug purposes
6875
6876*/
6877
6878/*
6879 Wake reason indication parameters
6880*/
6881typedef PACKED_PRE struct PACKED_POST
6882{
6883 uint32 ulReason; /* see tWakeReasonType */
6884 uint32 ulReasonArg; /* argument specific to the reason type */
6885 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6886 HAL truncates the data (i.e. data packets) this length
6887 will be less than the actual length */
6888 uint32 ulActualDataLen; /* actual length of data */
6889 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6890 see specific wake type */
6891} tWakeReasonParams, *tpWakeReasonParams;
6892
6893/*
6894 Wake reason indication
6895*/
6896typedef PACKED_PRE struct PACKED_POST
6897{
6898 tHalMsgHeader header;
6899 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006900 tANI_U32 uBssIdx : 8;
6901 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006902} tHalWakeReasonInd, *tpHalWakeReasonInd;
6903
6904/*---------------------------------------------------------------------------
6905* WLAN_HAL_GTK_OFFLOAD_REQ
6906*--------------------------------------------------------------------------*/
6907
6908#define HAL_GTK_KEK_BYTES 16
6909#define HAL_GTK_KCK_BYTES 16
6910
6911#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6912
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006913#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6914
Jeff Johnson295189b2012-06-20 16:38:30 -07006915typedef PACKED_PRE struct PACKED_POST
6916{
6917 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306918 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006919 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6920 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006921 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006922} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6923
6924typedef PACKED_PRE struct PACKED_POST
6925{
6926 tHalMsgHeader header;
6927 tHalGtkOffloadReqParams gtkOffloadReqParams;
6928} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6929
6930/*---------------------------------------------------------------------------
6931* WLAN_HAL_GTK_OFFLOAD_RSP
6932*--------------------------------------------------------------------------*/
6933typedef PACKED_PRE struct PACKED_POST
6934{
6935 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006936 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006937} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6938
6939typedef PACKED_PRE struct PACKED_POST
6940{
6941 tHalMsgHeader header;
6942 tHalGtkOffloadRspParams gtkOffloadRspParams;
6943} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6944
6945
6946/*---------------------------------------------------------------------------
6947* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6948*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006949typedef PACKED_PRE struct PACKED_POST
6950{
6951 tANI_U8 bssIdx;
6952
6953} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006954
6955typedef PACKED_PRE struct PACKED_POST
6956{
6957 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006958 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006959} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6960
6961/*---------------------------------------------------------------------------
6962* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6963*--------------------------------------------------------------------------*/
6964typedef PACKED_PRE struct PACKED_POST
6965{
6966 tANI_U32 ulStatus; /* success or failure */
6967 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6968 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6969 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6970 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6971 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006972 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006973} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6974
6975typedef PACKED_PRE struct PACKED_POST
6976{
6977 tHalMsgHeader header;
6978 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6979} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6980
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006981/*---------------------------------------------------------------------------
6982* WLAN_HAL_DHCP_IND
6983*--------------------------------------------------------------------------*/
6984typedef PACKED_PRE struct PACKED_POST
6985{
6986 /*Indicates the device mode which indicates about the DHCP activity */
6987 tANI_U8 device_mode;
6988 tSirMacAddr macAddr;
6989} tDHCPInfo, *tpDHCPInfo;
6990
6991typedef PACKED_PRE struct PACKED_POST
6992{
6993 tHalMsgHeader header;
6994 tANI_U32 status; /* success or failure */
6995} tDHCPIndStatus, *tpDHCPIndstatus;
6996
Jeff Johnson295189b2012-06-20 16:38:30 -07006997/*
6998 Thermal Mitigation mode of operation.
6999 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
7000 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7001 reducing transmit power
7002 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7003*/
7004typedef enum
7005{
7006 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7007 HAL_THERMAL_MITIGATION_MODE_0,
7008 HAL_THERMAL_MITIGATION_MODE_1,
7009 HAL_THERMAL_MITIGATION_MODE_2,
7010 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7011}tHalThermalMitigationModeType;
7012//typedef tANI_S16 tHalThermalMitigationModeType;
7013
7014/*
7015 Thermal Mitigation level.
7016 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7017 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7018
7019 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7020 level indicates normal mode of operation
7021 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7022 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7023 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7024 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7025*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307026typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007027{
7028 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7029 HAL_THERMAL_MITIGATION_LEVEL_0,
7030 HAL_THERMAL_MITIGATION_LEVEL_1,
7031 HAL_THERMAL_MITIGATION_LEVEL_2,
7032 HAL_THERMAL_MITIGATION_LEVEL_3,
7033 HAL_THERMAL_MITIGATION_LEVEL_4,
7034 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7035}tHalThermalMitigationLevelType;
7036//typedef tANI_S16 tHalThermalMitigationLevelType;
7037
7038typedef PACKED_PRE struct PACKED_POST
7039{
7040 /* Thermal Mitigation Operation Mode */
7041 tHalThermalMitigationModeType thermalMitMode;
7042
7043 /* Thermal Mitigation Level */
7044 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307045
Jeff Johnson295189b2012-06-20 16:38:30 -07007046}tSetThermalMitgationType, *tpSetThermalMitgationType;
7047
7048/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7049typedef PACKED_PRE struct PACKED_POST
7050{
7051 tHalMsgHeader header;
7052 tSetThermalMitgationType thermalMitParams;
7053} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7054
7055typedef PACKED_PRE struct PACKED_POST{
7056
7057 tHalMsgHeader header;
7058
7059 /*status of the request */
7060 tANI_U32 status;
7061
7062} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7063
Dino Mycle8afbac12014-07-04 22:06:17 +05307064/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007065provided to FW from Host via periodic messages */
7066typedef PACKED_PRE struct PACKED_POST {
7067 /* TX stats */
7068 uint32 txBytesPushed;
7069 uint32 txPacketsPushed;
7070
7071 /* RX stats */
7072 uint32 rxBytesRcvd;
7073 uint32 rxPacketsRcvd;
7074 uint32 rxTimeTotal;
7075} tStaStatsClassB, *tpStaStatsClassB;
7076
7077typedef PACKED_PRE struct PACKED_POST {
7078
7079 /* Duration over which this stats was collected */
7080 tANI_U32 duration;
7081
7082 /* Per STA Stats */
7083 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7084} tStatsClassBIndParams, *tpStatsClassBIndParams;
7085
7086typedef PACKED_PRE struct PACKED_POST {
7087
7088 tHalMsgHeader header;
7089
7090 /* Class B Stats */
7091 tStatsClassBIndParams statsClassBIndParams;
7092} tStatsClassBInd, *tpStatsClassBInd;
7093
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307094/*Wifi Proximity paramters in AP mode*/
7095#ifdef FEATURE_WIFI_PROXIMITY
7096
7097typedef PACKED_PRE struct PACKED_POST{
7098
7099 tANI_U8 wifiProximityChannel;
7100 tANI_U32 wifiProximityDuration;
7101 tANI_U32 wifiProximityInterval;
7102 tANI_U32 wifiProximityMode;
7103 tANI_U32 wifiProximityStatus;
7104 tSirMacAddr bssId;
7105 tSirMacSSid ssId;
7106
7107} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7108
7109typedef PACKED_PRE struct PACKED_POST
7110{
7111 tHalMsgHeader header;
7112
7113 tSetWifiProximityReqParam wifiProximityReqParams;
7114
7115}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7116
7117/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7118typedef PACKED_PRE struct PACKED_POST{
7119
7120 tHalMsgHeader header;
7121
7122 /*status of the request */
7123 tANI_U32 status;
7124
7125} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7126
7127#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007128
7129#ifdef FEATURE_SPECULATIVE_PS_POLL
7130/*---------------------------------------------------------------------------
7131 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7132 *--------------------------------------------------------------------------*/
7133typedef PACKED_PRE struct PACKED_POST
7134{
7135 tANI_U8 bssIdx;
7136 tANI_U16 serviceInterval;
7137 tANI_U16 suspendInterval;
7138 tANI_U8 acMask;
7139} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7140
7141typedef PACKED_PRE struct PACKED_POST
7142{
7143 tHalMsgHeader header;
7144 tHalStartSpecPsPollReqParams specPsPollReq;
7145} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7146
7147/*---------------------------------------------------------------------------
7148 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7149 *--------------------------------------------------------------------------*/
7150typedef PACKED_PRE struct PACKED_POST
7151{
7152 /* success or failure */
7153 tANI_U32 status;
7154 tANI_U8 bssIdx;
7155} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7156
7157typedef PACKED_PRE struct PACKED_POST
7158{
7159 tHalMsgHeader header;
7160 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7161} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7162
7163/*---------------------------------------------------------------------------
7164 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7165 *--------------------------------------------------------------------------*/
7166typedef PACKED_PRE struct PACKED_POST
7167{
7168 tHalMsgHeader header;
7169 tANI_U8 bssIdx;
7170} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7171#endif
7172
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307173#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307174#define HAL_MAX_SUPP_CHANNELS 128
7175#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307176/*---------------------------------------------------------------------------
7177 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7178 *-------------------------------------------------------------------------*/
7179typedef PACKED_PRE struct PACKED_POST
7180{
7181 /*STA Index*/
7182 tANI_U16 staIdx;
7183
7184 /* if this is 1, self is initiator and peer is reponder */
7185 tANI_U8 bIsResponder;
7186
7187 /* QoS Info */
7188 tANI_U8 acVOUAPSDFlag:1;
7189 tANI_U8 acVIUAPSDFlag:1;
7190 tANI_U8 acBKUAPSDFlag:1;
7191 tANI_U8 acBEUAPSDFlag:1;
7192 tANI_U8 aAck:1;
7193 tANI_U8 maxServicePeriodLength:2;
7194 tANI_U8 moreDataAck:1;
7195
7196 /*TDLS Peer U-APSD Buffer STA Support*/
7197 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007198
7199 /*TDLS off channel related params */
7200 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307201 tANI_U8 peerCurrOperClass;
7202 tANI_U8 selfCurrOperClass;
7203 tANI_U8 validChannelsLen;
7204 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7205 tANI_U8 validOperClassesLen;
7206 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307207}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7208
7209typedef PACKED_PRE struct PACKED_POST
7210{
7211 tHalMsgHeader header;
7212 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7213} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7214
7215/*---------------------------------------------------------------------------
7216 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7217 *-------------------------------------------------------------------------*/
7218
7219typedef PACKED_PRE struct PACKED_POST
7220{
7221 tANI_U32 status;
7222
7223 /*STA Index*/
7224 tANI_U16 staIdx;
7225} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7226
7227typedef PACKED_PRE struct PACKED_POST
7228{
7229 tHalMsgHeader header;
7230 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7231} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307232/*---------------------------------------------------------------------------
7233 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7234 + *-------------------------------------------------------------------------*/
7235typedef PACKED_PRE struct PACKED_POST
7236{
7237 /*STA Index*/
7238 tANI_U16 staIdx;
7239 /* if this is 1, self is initiator otherwise responder only*/
7240 tANI_U8 isOffchannelInitiator;
7241 /*TDLS off channel related params */
7242 tANI_U8 targetOperClass;
7243 tANI_U8 targetChannel;
7244 tANI_U8 secondaryChannelOffset;
7245 tANI_U8 reserved[32];
7246}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7247
7248typedef PACKED_PRE struct PACKED_POST
7249{
7250 tHalMsgHeader header;
7251 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7252} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7253/*---------------------------------------------------------------------------
7254 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7255 *-------------------------------------------------------------------------*/
7256
7257typedef PACKED_PRE struct PACKED_POST
7258{
7259 tANI_U32 status;
7260 /*STA Index*/
7261 tANI_U16 staIdx;
7262} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7263
7264typedef PACKED_PRE struct PACKED_POST
7265{
7266 tHalMsgHeader header;
7267 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7268} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7269
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307270
7271/*---------------------------------------------------------------------------
7272 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7273 *-------------------------------------------------------------------------*/
7274typedef PACKED_PRE struct PACKED_POST
7275{
7276 /*STA Index*/
7277 tANI_U16 staIdx;
7278}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7279
7280typedef PACKED_PRE struct PACKED_POST
7281{
7282 tHalMsgHeader header;
7283 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7284} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7285
7286/*---------------------------------------------------------------------------
7287 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7288 *-------------------------------------------------------------------------*/
7289
7290typedef PACKED_PRE struct PACKED_POST
7291{
7292 tANI_U32 status;
7293
7294 /*STA Index*/
7295 tANI_U16 staIdx;
7296} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7297
7298typedef PACKED_PRE struct PACKED_POST
7299{
7300 tHalMsgHeader header;
7301 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7302} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7303
7304/*---------------------------------------------------------------------------
7305 *WLAN_HAL_TDLS_IND
7306 *--------------------------------------------------------------------------*/
7307
7308typedef PACKED_PRE struct PACKED_POST
7309{
7310 tANI_U16 assocId;
7311 tANI_U16 staIdx;
7312 tANI_U16 status;
7313 tANI_U16 reasonCode;
7314}tTdlsIndParams, *tpTdlsIndParams;
7315
7316
7317typedef PACKED_PRE struct PACKED_POST
7318{
7319 tHalMsgHeader header;
7320 tTdlsIndParams tdlsIndParams;
7321}tTdlsIndMsg, *tpTdlsIndMsg;
7322
7323#endif
7324
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007325/*---------------------------------------------------------------------------
7326 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7327 *--------------------------------------------------------------------------*/
7328
7329typedef PACKED_PRE struct PACKED_POST
7330{
7331 tANI_U8 bssIdx;
7332 tANI_U8 staIdx;
7333 tSirMacAddr staAddr;
7334}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7335
7336
7337typedef PACKED_PRE struct PACKED_POST
7338{
7339 tHalMsgHeader header;
7340 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7341}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7342
7343
Kumar Anandea78e792013-10-10 23:47:01 -07007344/*********** Scan Offload Related Structures *************/
7345#define HAL_NUM_SCAN_SSID 10
7346#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007347
Kumar Anandea78e792013-10-10 23:47:01 -07007348/*
7349 * Enumetation to indicate scan type (active/passive)
7350 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007351typedef enum
7352{
Kumar Anandea78e792013-10-10 23:47:01 -07007353 eSIR_PASSIVE_SCAN,
7354 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7355} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007356
7357typedef PACKED_PRE struct PACKED_POST
7358{
Kumar Anandea78e792013-10-10 23:47:01 -07007359 tANI_U8 numBssid;
7360 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7361 tANI_U8 numSsid;
7362 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7363 tANI_BOOLEAN hiddenSsid;
7364 tSirMacAddr selfMacAddr;
7365 tSirBssType bssType;
7366 tSirScanType scanType;
7367 tANI_U32 minChannelTime;
7368 tANI_U32 maxChannelTime;
7369 tANI_BOOLEAN p2pSearch;
7370 tANI_U8 channelCount;
7371 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7372 tANI_U16 ieFieldLen;
7373 tANI_U8 ieField[1];
7374}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007375
7376/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007377 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007378 *-------------------------------------------------------------------------*/
7379typedef PACKED_PRE struct PACKED_POST
7380{
Kumar Anandf53016f2013-09-04 15:15:53 -07007381 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007382 tScanOffloadReqType scanOffloadParams;
7383} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007384
7385/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007386 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007387 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007388typedef PACKED_PRE struct PACKED_POST
7389{
7390 tHalMsgHeader header;
7391
7392 /*status of the request - just to indicate SO has acknowledged
7393 * * the request and will start scanning*/
7394 tANI_U32 status;
7395} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7396
7397/*---------------------------------------------------------------------------
7398 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7399 *-------------------------------------------------------------------------*/
7400typedef PACKED_PRE struct PACKED_POST
7401{
7402 tHalMsgHeader header;
7403} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7404
7405/*---------------------------------------------------------------------------
7406 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7407 *-------------------------------------------------------------------------*/
7408typedef PACKED_PRE struct PACKED_POST
7409{
7410 tHalMsgHeader header;
7411
7412 /*status of the request - just to indicate SO has acknowledged
7413 the request and will start scanning*/
7414 tANI_U32 status;
7415} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7416
7417/*
7418 * Enumetation of scan events indicated by firmware to the host
7419 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007420typedef enum
7421{
Kumar Anandea78e792013-10-10 23:47:01 -07007422 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7423 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7424 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7425 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7426 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7427 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7428 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7429 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7430 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7431} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007432
7433typedef PACKED_PRE struct PACKED_POST
7434{
Kumar Anandea78e792013-10-10 23:47:01 -07007435 tScanEventType event;
7436 tANI_U32 channel;
7437 tANI_U32 scanId;
7438} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007439
Kumar Anandea78e792013-10-10 23:47:01 -07007440/*---------------------------------------------------------------------------
7441 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7442 *-------------------------------------------------------------------------*/
7443typedef PACKED_PRE struct PACKED_POST
7444{
7445 tHalMsgHeader header;
7446 tScanOffloadEventInfo scanOffloadInd;
7447} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007448
Kumar Anandea78e792013-10-10 23:47:01 -07007449typedef PACKED_PRE struct PACKED_POST {
7450 /** primary 20 MHz channel frequency in mhz */
7451 tANI_U32 mhz;
7452 /** Center frequency 1 in MHz*/
7453 tANI_U32 band_center_freq1;
7454 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7455 tANI_U32 band_center_freq2;
7456 /* The first 26 bits are a bit mask to indicate any channel flags,
7457 (see WLAN_HAL_CHAN_FLAG*)
7458 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7459 tANI_U32 channel_info;
7460 /** contains min power, max power, reg power and reg class id. */
7461 tANI_U32 reg_info_1;
7462 /** contains antennamax */
7463 tANI_U32 reg_info_2;
7464} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007465
Kumar Anandf53016f2013-09-04 15:15:53 -07007466
Kumar Anandea78e792013-10-10 23:47:01 -07007467typedef enum {
7468 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7469 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7470 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7471 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7472 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7473 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7474 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7475 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7476 WLAN_HAL_MODE_11AC_VHT20 = 8,
7477 WLAN_HAL_MODE_11AC_VHT40 = 9,
7478 WLAN_HAL_MODE_11AC_VHT80 = 10,
7479 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7480 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7481 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7482 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007483
Kumar Anandea78e792013-10-10 23:47:01 -07007484} tChannelPhyModeType;
7485
7486#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7487#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7488#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7489#define WLAN_HAL_CHAN_AP_DISABLED 9
7490#define WLAN_HAL_CHAN_FLAG_DFS 10
7491#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7492#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007493#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7494
7495#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007496 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007497 } while(0)
7498
7499#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007500 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007501
7502#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7503 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7504 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7505 } while(0)
7506#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7507
7508#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7509 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7510 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7511 } while(0)
7512#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7513
7514#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7515 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7516 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7517 } while(0)
7518#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7519#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7520 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7521 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7522 } while(0)
7523#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7524
7525#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7526 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7527 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7528 } while(0)
7529#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7530
7531#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7532 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7533 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7534 } while(0)
7535#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 -07007536
7537typedef PACKED_PRE struct PACKED_POST
7538{
7539 tANI_U8 numChan;
7540 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7541} tUpdateChannelReqType;
7542
7543/*---------------------------------------------------------------------------
7544 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7545 *-------------------------------------------------------------------------*/
7546typedef PACKED_PRE struct PACKED_POST
7547{
7548 tHalMsgHeader header;
7549 tUpdateChannelReqType updateChannelParams;
7550} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7551
7552/*---------------------------------------------------------------------------
7553 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7554 *-------------------------------------------------------------------------*/
7555typedef PACKED_PRE struct PACKED_POST
7556{
7557 tHalMsgHeader header;
7558
7559 /*status of the request - just to indicate SO has acknowledged
7560 * * the request and will start scanning*/
7561 tANI_U32 status;
7562} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7563
7564
7565/*---------------------------------------------------------------------------
7566* WLAN_HAL_TX_FAIL_IND
7567*--------------------------------------------------------------------------*/
7568// Northbound indication from FW to host on weak link detection
7569typedef PACKED_PRE struct PACKED_POST
7570{
7571 // Sequence number increases by 1 whenever the device driver
7572 // sends a notification event. This is cleared as 0 when the
7573 // JOIN IBSS commamd is issued
7574 tANI_U16 seqNo;
7575 tANI_U16 staId;
7576 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7577} tHalTXFailIndParams, *tpHalTXFailIndParams;
7578
7579typedef PACKED_PRE struct PACKED_POST
7580{
7581 tHalMsgHeader header;
7582 tHalTXFailIndParams txFailIndParams;
7583} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7584
7585/*---------------------------------------------------------------------------
7586* WLAN_HAL_TX_FAIL_MONITOR_IND
7587*--------------------------------------------------------------------------*/
7588// Southbound message from Host to monitor the Tx failures
7589typedef PACKED_PRE struct PACKED_POST
7590{
7591 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7592 tANI_U8 tx_fail_count;
7593} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7594
7595typedef PACKED_PRE struct PACKED_POST
7596{
7597 tHalMsgHeader header;
7598 tTXFailMonitorInfo txFailMonitor;
7599} tTXFailMonitorInd, *tpTXFailMonitorInd;
7600
7601/*---------------------------------------------------------------------------
7602* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7603*--------------------------------------------------------------------------*/
7604typedef PACKED_PRE struct PACKED_POST
7605{
7606 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7607 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7608} tDestIpNextHopMacPair;
7609
7610typedef PACKED_PRE struct PACKED_POST
7611{
7612 tANI_U8 numEntries;
7613 tDestIpNextHopMacPair destIpMacPair[1];
7614} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007615
7616typedef PACKED_PRE struct PACKED_POST
7617{
7618 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007619 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7620} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007621
Kumar Anandf53016f2013-09-04 15:15:53 -07007622/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007623 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7624 *-------------------------------------------------------------------------*/
7625typedef enum
7626{
7627 /* reassociation is done, but couldn't finish security handshake */
7628 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7629
7630 /* roam has successfully completed by firmware */
7631 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7632
7633 /* UNKONW error */
7634 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7635}tHalRoamOffloadRoamAuthStatus;
7636
7637typedef enum
7638{
7639 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7640 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7641 WLAN_HAL_ROAM_TYPE_OKC,
7642 WLAN_HAL_ROAM_TYPE_CCKM,
7643 WLAN_HAL_ROAM_TYPE_FT,
7644 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7645} tHalRoamOffloadType;
7646
7647typedef PACKED_PRE struct PACKED_POST
7648{
7649 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7650 tANI_U16 beaconProbeRespOffset;
7651
7652 /* Length of beaon / probe resp. */
7653 tANI_U16 beaconProbeRespLength;
7654
7655 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7656 tANI_U16 reassocRespOffset;
7657
7658 /* Length of reassoc resp. */
7659 tANI_U16 reassocRespLength;
7660
7661 /* 0 for probe response frame, 1 for beacon frame, */
7662 tANI_U8 isBeacon;
7663
7664 /* staIdx of old AP */
7665 tANI_U8 oldStaIdx;
7666
7667 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7668 tConfigBssRspParams */
7669 /* bssIdx of new roamed AP */
7670 tANI_U8 bssIdx;
7671
7672 /* DPU descriptor index for PTK */
7673 tANI_U8 dpuDescIndx;
7674
7675 /* PTK DPU signature */
7676 tANI_U8 ucastDpuSignature;
7677
7678 /* DPU descriptor index for GTK*/
7679 tANI_U8 bcastDpuDescIndx;
7680
7681 /* GTK DPU signature */
7682 tANI_U8 bcastDpuSignature;
7683
7684 /*DPU descriptor for IGTK*/
7685 tANI_U8 mgmtDpuDescIndx;
7686
7687 /* IGTK DPU signature */
7688 tANI_U8 mgmtDpuSignature;
7689
7690 /* Station Index for BSS entry*/
7691 tANI_U8 staIdx;
7692
7693 /* Self station index for this BSS */
7694 tANI_U8 selfStaIdx;
7695
7696 /* Bcast station for buffering bcast frames in AP role */
7697 tANI_U8 bcastStaIdx;
7698
7699 /* MAC address of roamed AP */
7700 tSirMacAddr bssid;
7701
7702 /*HAL fills in the tx power used for mgmt frames in this field. */
7703 tANI_S8 txMgmtPower;
7704
7705 /* success or failure */
7706 tHalRoamOffloadRoamAuthStatus authStatus;
7707
7708 /* TODO : add more info as needed */
7709
7710 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7711 /* Beacon or probe resp from new AP. This is in 802.11
7712 frame format starting with MAC header. */
7713 /* Up to beaconProbeRespLength */
7714
7715 /* reassocRespOffset points to starting of reassoc resp frame */
7716 /* Reassoc resp from new AP. This is in 802.11
7717 frame format starting with MAC header. */
7718 /* Up to reassocRespLength */
7719
7720} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7721
7722
7723typedef PACKED_PRE struct PACKED_POST
7724{
7725 tHalMsgHeader header;
7726 tHalRoamOffloadSynchIndParams params;
7727} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7728
7729/*---------------------------------------------------------------------------
7730 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7731 *-------------------------------------------------------------------------*/
7732typedef PACKED_PRE struct PACKED_POST
7733{
7734 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7735 tSirMacAddr bssid;
7736} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7737
7738typedef PACKED_PRE struct PACKED_POST
7739{
7740 tHalMsgHeader header;
7741 tHalRoamOffloadSynchCnfParams params;
7742} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7743
7744
7745/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007746 WLAN_HAL_RATE_UPDATE_IND
7747 *-------------------------------------------------------------------------*/
7748
7749typedef PACKED_PRE struct PACKED_POST
7750{
7751 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7752 tANI_S32 ucastDataRate; //unit Mbpsx10
7753
7754 /* TX flag to differentiate between HT20, HT40 etc */
7755 tTxRateInfoFlags ucastDataRateTxFlag;
7756
7757 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7758 tSirMacAddr bssid;
7759
7760 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7761 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7762
7763 /* TX flag to differentiate between HT20, HT40 etc */
7764 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7765
7766 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7767 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7768
7769 /* TX flag to differentiate between HT20, HT40 etc */
7770 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7771
7772 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7773 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7774
7775 /* TX flag to differentiate between HT20, HT40 etc */
7776 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7777
7778} tHalRateUpdateParams, *tpHalRateUpdateParams;
7779
7780typedef PACKED_PRE struct PACKED_POST
7781{
7782 tHalMsgHeader header;
7783 tHalRateUpdateParams halRateUpdateParams;
7784} tHalRateUpdateInd, * tpHalRateUpdateInd;
7785
7786/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307787 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7788 *-------------------------------------------------------------------------*/
7789
Abhishek Singhe0443152015-06-18 10:07:43 +05307790#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307791
7792typedef PACKED_PRE struct PACKED_POST
7793{
7794 tANI_U32 startFreq;
7795 tANI_U32 endFreq;
7796} tHalFreqRange, *tpHalFreqRange;
7797
7798typedef PACKED_PRE struct PACKED_POST
7799{
7800 tANI_U32 avoidCnt;
7801 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7802} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7803
7804typedef PACKED_PRE struct PACKED_POST
7805{
7806 tHalMsgHeader header;
7807 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7808} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7809
7810/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307811 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007812 *-------------------------------------------------------------------------*/
7813
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307814typedef enum
7815{
7816 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7817 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7818 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7819}tHT40OBssScanCmdType;
7820
7821typedef PACKED_PRE struct PACKED_POST
7822{
7823 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007824
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307825 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007826 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7827 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7828 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7829 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7830 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7831 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7832 tANI_U16 OBSSScanActivityThreshold;
7833
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307834 tANI_U8 selfStaIdx;
7835 tANI_U8 bssIdx;
7836 tANI_U8 fortyMHZIntolerent;
7837 tANI_U8 channelCount;
7838 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7839 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007840
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307841 tANI_U16 ieFieldLen;
7842 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7843}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7844
7845typedef PACKED_PRE struct PACKED_POST
7846{
7847 tHalMsgHeader header;
7848 tHT40ObssScanIndType scanHT40ObssScanParams;
7849} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7850
7851/*---------------------------------------------------------------------------
7852 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7853 *-------------------------------------------------------------------------*/
7854typedef PACKED_PRE struct PACKED_POST
7855{
7856 tHalMsgHeader header;
7857 tANI_U8 bssIdx;
7858} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307859
7860/*---------------------------------------------------------------------------
7861 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7862 *-------------------------------------------------------------------------*/
7863
7864typedef PACKED_PRE struct PACKED_POST
7865{
7866 /* Valid BSS Idx for beacon miss rate */
7867 tANI_U8 bssIdx;
7868
7869}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7870
7871typedef PACKED_PRE struct PACKED_POST
7872{
7873 tHalMsgHeader header;
7874 tHalBcnMissRateReqParams bcnMissRateReqParams;
7875} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7876
7877/*---------------------------------------------------------------------------
7878 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7879 *-------------------------------------------------------------------------*/
7880
7881typedef PACKED_PRE struct PACKED_POST
7882{
7883 tANI_U32 status;
7884 tANI_U32 bcnMissCnt;
7885}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7886
7887typedef PACKED_PRE struct PACKED_POST
7888{
7889 tHalMsgHeader header;
7890 tHalBcnMissRateRspParams bcnMissRateRspParams;
7891}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7892
Sunil Dutt8377a382014-05-26 21:18:04 +05307893/*--------------------------------------------------------------------------
7894* WLAN_HAL_LL_SET_STATS_REQ
7895*---------------------------------------------------------------------------*/
7896
7897typedef PACKED_PRE struct PACKED_POST
7898{
7899 tANI_U32 req_id;
7900 tANI_U8 sta_id;
7901 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7902 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7903} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7904
7905typedef PACKED_PRE struct PACKED_POST
7906{
7907 tHalMsgHeader header;
7908 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7909} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7910
7911/*---------------------------------------------------------------------------
7912 WLAN_HAL_LL_SET_STATS_RSP
7913---------------------------------------------------------------------------*/
7914
7915typedef PACKED_PRE struct PACKED_POST
7916{
7917 tANI_U32 status;
7918 tANI_U32 resp_id;
7919 tANI_U8 iface_id;
7920} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7921
7922typedef PACKED_PRE struct PACKED_POST
7923{
7924 tHalMsgHeader header;
7925 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7926} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7927
7928/*---------------------------------------------------------------------------
7929 WLAN_HAL_LL_GET_STATS_REQ
7930---------------------------------------------------------------------------*/
7931
7932typedef PACKED_PRE struct PACKED_POST
7933{
7934 tANI_U32 req_id;
7935 tANI_U8 sta_id;
7936 tANI_U32 param_id_mask;
7937} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7938
7939typedef PACKED_PRE struct PACKED_POST
7940{
7941 tHalMsgHeader header;
7942 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7943} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7944
7945/*---------------------------------------------------------------------------
7946 WLAN_HAL_LL_GET_STATS_RSP
7947---------------------------------------------------------------------------*/
7948typedef PACKED_PRE struct PACKED_POST
7949{
7950 tANI_U32 status;
7951 tANI_U32 resp_id;
7952 tANI_U8 iface_id;
7953} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7954
7955typedef PACKED_PRE struct PACKED_POST
7956{
7957 tHalMsgHeader header;
7958 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7959} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7960
7961/*---------------------------------------------------------------------------
7962 WLAN_HAL_LL_CLEAR_STATS_REQ
7963---------------------------------------------------------------------------*/
7964typedef PACKED_PRE struct PACKED_POST
7965{
7966 tANI_U32 req_id;
7967 tANI_U8 sta_id;
7968 tANI_U32 stats_clear_req_mask;
7969 tANI_U8 stop_req;
7970} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
7971
7972typedef PACKED_PRE struct PACKED_POST
7973{
7974 tHalMsgHeader header;
7975 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
7976} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
7977
7978/*---------------------------------------------------------------------------
7979 WLAN_HAL_LL_CLEAR_STATS_RSP
7980---------------------------------------------------------------------------*/
7981typedef PACKED_PRE struct PACKED_POST
7982{
7983 tANI_U32 status;
7984 tANI_U8 sta_id;
7985 tANI_U32 resp_id;
7986 tANI_U32 stats_clear_rsp_mask;
7987 tANI_U8 stop_req_status;
7988} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
7989
7990typedef PACKED_PRE struct PACKED_POST
7991{
7992 tHalMsgHeader header;
7993 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
7994} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
7995
7996/*---------------------------------------------------------------------------
7997 WLAN_HAL_LL_NOTIFY_STATS
7998---------------------------------------------------------------------------*/
7999
8000typedef PACKED_PRE struct PACKED_POST
8001{
8002 tHalMsgHeader header;
8003 tANI_U32 param_id;
8004 tANI_U8 iface_id;
8005 tANI_U32 resp_id;
8006 tANI_U32 more_result_to_follow;
8007 tANI_U8 result[1];
8008} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008009
Dino Mycle108eff22014-06-10 09:36:44 +05308010/*---------------------------------------------------------------------------
8011 * WLAN_HAL_EXT_SCAN_START_REQ
8012 *-------------------------------------------------------------------------*/
8013
Dino Mycle8afbac12014-07-04 22:06:17 +05308014typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308015{
8016 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8017 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8018 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8019 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8020 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8021 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8022 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308023 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308024} tExtScanChannelBandMask;
8025
8026typedef PACKED_PRE struct PACKED_POST
8027{
8028 tANI_U32 channel; // frequency
8029 tANI_U32 dwellTimeMs; // dwell time hint
8030 tANI_U8 passive; // 0 => active,
8031 // 1 => passive scan; ignored for DFS
8032}tExtScanChannelSpec, *tpExtScanChannelSpec;
8033
8034typedef PACKED_PRE struct PACKED_POST
8035 {
8036 /* bucket index, 0 based */
8037 tANI_U8 bucketId;
8038 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8039 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308040 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308041 tANI_U32 period;
8042 /* 0 => normal reporting (reporting rssi history only,
8043 when rssi history buffer is % full)
8044 * 1 => same as 0 + report a scan completion event after scanning this bucket
8045 * 2 => same as 1 + forward scan results (beacons/probe responses + IEs) in
8046 real time to HAL (Required for L = P0)
8047 * 3 => same as 2 + forward scan results (beacons/probe responses + IEs) in
8048 real time to host (Not required for L = P3) */
8049 tANI_U8 reportEvents;
8050 /* number of channels */
8051 tANI_U8 numChannels;
8052 /* if channels to scan. In the TLV channelList[] */
8053 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8054}tExtScanBucketData, *tpExtScanBucketData;
8055
8056typedef PACKED_PRE struct PACKED_POST
8057{
8058 tANI_U32 requestId;
8059 tANI_U8 sessionId;
8060 /* Base period (milliseconds) used by scan buckets to define periodicity
8061 of the scans */
8062 tANI_U32 basePeriod;
8063 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8064 (keep the most significant, i.e. stronger RSSI) */
8065 tANI_U32 maxApPerScan;
8066 /* in %, when buffer is this much full, wake up host */
8067 tANI_U32 reportThreshold;
8068 /* This will be off channel minimum time */
8069 tANI_U16 neighborScanChannelMinTime;
8070 /* This will be out off channel max time */
8071 tANI_U16 neighborScanChannelMaxTime;
8072 /* This will be the home (BSS) channel time */
8073 tANI_U16 homeAwayTime;
8074 /* number of buckets (maximum 8) */
8075 tANI_U8 numBuckets;
8076 /* Buckets data */
8077 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8078} tHalExtScanStartReq, *tpHalExtScanStartReq;
8079
8080typedef PACKED_PRE struct PACKED_POST
8081{
8082 tHalMsgHeader header;
8083 tHalExtScanStartReq extScanStartReq;
8084}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8085
8086/*---------------------------------------------------------------------------
8087 * WLAN_HAL_EXT_SCAN_START_RSP
8088 *-------------------------------------------------------------------------*/
8089
8090typedef PACKED_PRE struct PACKED_POST
8091{
8092 tANI_U32 requestId;
8093 tANI_U32 status;
8094}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8095
8096typedef PACKED_PRE struct PACKED_POST
8097{
8098 tHalMsgHeader header;
8099 tHalExtScanStartRsp extScanStartRsp;
8100}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8101
8102/*---------------------------------------------------------------------------
8103 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8104 *-------------------------------------------------------------------------*/
8105
8106typedef PACKED_PRE struct PACKED_POST
8107{
8108 tANI_U32 requestId;
8109 tANI_U8 sessionId;
8110}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8111
8112typedef PACKED_PRE struct PACKED_POST
8113{
8114 tHalMsgHeader header;
8115 tHalExtScanGetCapReq extScanGetCapReq;
8116}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8117
8118/*---------------------------------------------------------------------------
8119 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8120 *-------------------------------------------------------------------------*/
8121
8122typedef PACKED_PRE struct PACKED_POST
8123{
8124 tANI_U32 requestId;
8125 tANI_U32 status;
8126
8127 tANI_U32 scanCacheSize;
8128 tANI_U32 scanBuckets;
8129 tANI_U32 maxApPerScan;
8130 tANI_U32 maxRssiSampleSize;
8131 tANI_U32 maxScanReportingThreshold;
8132
8133 tANI_U32 maxHotlistAPs;
8134 tANI_U32 maxSignificantWifiChangeAPs;
8135
8136 tANI_U32 maxBssidHistoryEntries;
8137}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8138
8139typedef PACKED_PRE struct PACKED_POST
8140{
8141 tHalMsgHeader header;
8142 tHalExtScanGetCapRsp extScanGetCapRsp;
8143}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8144
8145/*---------------------------------------------------------------------------
8146 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8147 *-------------------------------------------------------------------------*/
8148
8149typedef PACKED_PRE struct PACKED_POST
8150{
8151 tANI_U32 requestId;
8152 tANI_U8 sessionId;
8153 /*
8154 * 1 return cached results and flush it
8155 * 0 return cached results and do not flush
8156 */
8157 tANI_BOOLEAN flush;
8158}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8159
8160typedef PACKED_PRE struct PACKED_POST
8161{
8162 tHalMsgHeader header;
8163 tHalExtScanGetScanReq getScanReq;
8164}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8165
8166/*---------------------------------------------------------------------------
8167 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8168 *-------------------------------------------------------------------------*/
8169
8170typedef PACKED_PRE struct PACKED_POST
8171{
8172 tANI_U32 requestId;
8173 tANI_U32 status;
8174}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8175
8176typedef PACKED_PRE struct PACKED_POST
8177{
8178 tHalMsgHeader header;
8179 tHalExtScanGetScanRsp getScanRsp;
8180}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8181
8182/*---------------------------------------------------------------------------
8183 * WLAN_HAL_EXT_SCAN_RESULT_IND
8184 *-------------------------------------------------------------------------*/
8185
8186typedef PACKED_PRE struct PACKED_POST
8187{
8188 tANI_U64 ts; // time of discovery
8189 tANI_U8 ssid[32+1]; // null terminated SSID
8190 tSirMacAddr bssid; // BSSID
8191 tANI_U32 channel; // channel frequency in MHz
8192 tANI_S32 rssi; // RSSI in dBm
8193 tANI_U32 rtt; // RTT in nanoseconds - not expected
8194 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308195 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308196 tANI_U16 capability; // capabilities advertised in the beacon
8197} tHalExtScanResultParams, *tpHalExtScanResultParams;
8198
8199typedef PACKED_PRE struct PACKED_POST
8200{
8201 tHalMsgHeader header;
8202 tANI_U32 requestId;
8203 tANI_U32 scanResultSize;
8204 tANI_BOOLEAN moreData;
8205 tANI_U8 extScanResult[1];
8206}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8207
8208/*---------------------------------------------------------------------------
8209 * WLAN_HAL_EXT_SCAN_STOP_REQ
8210 *-------------------------------------------------------------------------*/
8211
8212typedef PACKED_PRE struct PACKED_POST
8213{
8214 tANI_U32 requestId;
8215 tANI_U8 sessionId;
8216}tHalExtScanStopReq, *tpHalExtScanStopReq;
8217
8218typedef PACKED_PRE struct PACKED_POST
8219{
8220 tHalMsgHeader header;
8221 tHalExtScanStopReq extScanStopReq;
8222}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8223
8224/*---------------------------------------------------------------------------
8225 * WLAN_HAL_EXT_SCAN_STOP_RSP
8226 *-------------------------------------------------------------------------*/
8227
8228typedef PACKED_PRE struct PACKED_POST
8229{
8230 tANI_U32 requestId;
8231 tANI_U32 status;
8232}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8233
8234typedef PACKED_PRE struct PACKED_POST
8235{
8236 tHalMsgHeader header;
8237 tHalExtScanStopRsp extScanStopRsp;
8238}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8239
8240/*---------------------------------------------------------------------------
8241 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8242 *-------------------------------------------------------------------------*/
8243
Dino Mycle8afbac12014-07-04 22:06:17 +05308244typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308245{
8246 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8247 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308248 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308249} tHalExtScanProgressEventType;
8250
8251typedef PACKED_PRE struct PACKED_POST
8252{
8253 tANI_U32 requestId;
8254 tANI_U32 status;
8255 tHalExtScanProgressEventType extScanEventType;
8256}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8257
8258typedef PACKED_PRE struct PACKED_POST
8259{
8260 tHalMsgHeader header;
8261 tHalExtScanProgressInd extScanProgressInd;
8262}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8263
8264/*---------------------------------------------------------------------------
8265 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8266 *-------------------------------------------------------------------------*/
8267
8268typedef PACKED_PRE struct PACKED_POST
8269{
8270 tANI_U32 requestId;
8271 tANI_U32 numOfScanResAvailable;
8272}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8273
8274typedef PACKED_PRE struct PACKED_POST
8275{
8276 tHalMsgHeader header;
8277 tHalExtScanResAvailableInd extScanResAvailableInd;
8278}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8279
8280/*---------------------------------------------------------------------------
8281 * WLAN_HAL_SIG_RSSI_SET_REQ
8282 *-------------------------------------------------------------------------*/
8283
8284typedef PACKED_PRE struct PACKED_POST
8285{
8286 /* AP BSSID */
8287 tSirMacAddr bssid;
8288 /* low threshold - used in L for significant_change - not used in L for
8289 hotlist*/
8290 tANI_S32 lowRssiThreshold;
8291 /* high threshold - used in L for significant rssi - used in L for hotlist */
8292 tANI_S32 highRssiThreshold;
8293 /* channel hint */
8294 tANI_U32 channel;
8295} tApThresholdParams, *tpApThresholdParams;
8296
8297typedef PACKED_PRE struct PACKED_POST
8298{
8299 tANI_U32 requestId;
8300 tANI_U8 sessionId;
8301 /* number of samples for averaging RSSI */
8302 tANI_U32 rssiSampleSize;
8303 /* number of missed samples to confirm AP loss */
8304 tANI_U32 lostApSampleSize;
8305 /* number of APs breaching threshold required for firmware to generate event */
8306 tANI_U32 minBreaching;
8307 /* number of significant APs */
8308 tANI_U32 numAp;
8309 /* significant APs */
8310 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_SIG_CHANGE_APS];
8311} tHalSigRssiSetReq, *tpHalSigRssiSetReq;
8312
8313typedef PACKED_PRE struct PACKED_POST
8314{
8315 tHalMsgHeader header;
8316 tHalSigRssiSetReq extScanSigRssiReq;
8317}tHalSigRssiSetReqMsg, *tpHalSigRssiSetReqMsg;
8318
8319/*---------------------------------------------------------------------------
8320 * WLAN_HAL_SIG_RSSI_SET_RSP
8321 *-------------------------------------------------------------------------*/
8322
8323typedef PACKED_PRE struct PACKED_POST
8324{
8325 tANI_U32 requestId;
8326 tANI_U32 status;
8327}tHalSigRssiSetRsp, *tpHalSigRssiSetRsp;
8328
8329
8330typedef PACKED_PRE struct PACKED_POST
8331{
8332 tHalMsgHeader header;
8333 tHalSigRssiSetRsp sigRssiSetRsp;
8334}tHalSigRssiSetRspMsg, *tpHalSigRssiSetRspMsg;
8335
8336/*---------------------------------------------------------------------------
8337 * WLAN_HAL_SIG_RSSI_RESET_REQ
8338 *-------------------------------------------------------------------------*/
8339
8340typedef PACKED_PRE struct PACKED_POST
8341{
8342 tANI_U32 requestId;
8343}tHalSigRssiResetReq, *tpHalSigRssiResetReq;
8344
8345typedef PACKED_PRE struct PACKED_POST
8346{
8347 tHalMsgHeader header;
8348 tHalSigRssiResetReq sigRssiResetReq;
8349}tHalSigRssiResetReqMsg, *tpHalSigRssiResetReqMsg;
8350
8351/*---------------------------------------------------------------------------
8352 * WLAN_HAL_SIG_RSSI_RESET_RSP
8353 *-------------------------------------------------------------------------*/
8354
8355typedef PACKED_PRE struct PACKED_POST
8356{
8357 tANI_U32 requestId;
8358 tANI_U32 status;
8359}tHalSigRssiResetRsp, *tpHalSigRssiResetRsp;
8360
8361typedef PACKED_PRE struct PACKED_POST
8362{
8363 tHalMsgHeader header;
8364 tHalSigRssiResetRsp sigRssiResetRsp;
8365}tHalSigRssiResetRspMsg, *tpHalSigRssiResetRspMsg;
8366
8367/*---------------------------------------------------------------------------
8368 * WLAN_HAL_SIG_RSSI_RESULT_IND
8369 *-------------------------------------------------------------------------*/
8370
8371typedef PACKED_PRE struct PACKED_POST
8372{
8373 // BSSID
8374 tSirMacAddr bssid;
8375 // channel frequency in MHz
8376 tANI_U32 channel;
8377 // number of rssi samples
8378 tANI_U8 numRssi;
8379 // RSSI history in db
8380 tANI_S32 rssi[WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE];
8381} tHalSigRssiResultParams, *tpHalSigRssiResultParams;
8382
8383typedef PACKED_PRE struct PACKED_POST
8384{
8385 tHalMsgHeader header;
8386 tANI_U32 requestId;
8387 tANI_U32 numSigRssiBss;
8388 tANI_BOOLEAN moreData;
8389 tANI_U8 sigRssiResult[1];
8390}tHalSigRssiResultIndMsg, *tpHalSigRssiResultIndMsg;
8391
8392/*---------------------------------------------------------------------------
8393 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8394 *-------------------------------------------------------------------------*/
8395
8396typedef PACKED_PRE struct PACKED_POST
8397{
8398 tANI_U32 requestId;
8399 tANI_U8 sessionId;
8400 // number of hotlist APs
8401 tANI_U32 numAp;
8402 // hotlist APs
8403 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8404} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8405
8406typedef PACKED_PRE struct PACKED_POST
8407{
8408 tHalMsgHeader header;
8409 tHalBssidHotlistSetReq bssidHotlistSetReq;
8410}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8411
8412/*---------------------------------------------------------------------------
8413 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8414 *-------------------------------------------------------------------------*/
8415
8416typedef PACKED_PRE struct PACKED_POST
8417{
8418 tANI_U32 requestId;
8419 tANI_U32 status;
8420}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8421
8422typedef PACKED_PRE struct PACKED_POST
8423{
8424 tHalMsgHeader header;
8425 tHalHotlistSetRsp hotlistSetRsp;
8426}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8427
8428/*---------------------------------------------------------------------------
8429 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8430 *-------------------------------------------------------------------------*/
8431
8432typedef PACKED_PRE struct PACKED_POST
8433{
8434 tANI_U32 requestId;
8435}tHalHotlistResetReq, *tpHalHotlistResetReq;
8436
8437typedef PACKED_PRE struct PACKED_POST
8438{
8439 tHalMsgHeader header;
8440 tHalHotlistResetReq hotlistResetReq;
8441}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8442
8443/*---------------------------------------------------------------------------
8444 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8445 *-------------------------------------------------------------------------*/
8446
8447typedef PACKED_PRE struct PACKED_POST
8448{
8449 tANI_U32 requestId;
8450 tANI_U32 status;
8451}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8452
8453typedef PACKED_PRE struct PACKED_POST
8454{
8455 tHalMsgHeader header;
8456 tHalHotlistResetRsp hotlistResetRsp;
8457}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8458
8459/*---------------------------------------------------------------------------
8460 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8461 *-------------------------------------------------------------------------*/
8462
8463typedef PACKED_PRE struct PACKED_POST
8464{
8465 tHalMsgHeader header;
8466 tANI_U32 requestId;
8467 tANI_U32 numHotlistBss;
8468 tANI_BOOLEAN moreData;
8469 tANI_U8 bssHotlist[1];
8470}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8471
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308472
8473/*---------------------------------------------------------------------------
8474 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8475 *--------------------------------------------------------------------------*/
8476typedef PACKED_PRE struct PACKED_POST
8477{
8478 tANI_U8 macAddr[6];
8479 tANI_U32 reserved1;
8480 tANI_U32 reserved2;
8481}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8482
8483typedef PACKED_PRE struct PACKED_POST
8484{
8485 tHalMsgHeader header;
8486 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8487} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8488
8489/*---------------------------------------------------------------------------
8490* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8491*-------------------------------------------------------------------------*/
8492
8493typedef PACKED_PRE struct PACKED_POST
8494{
8495 tANI_U32 status;
8496 tANI_U32 reserved1;
8497} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8498
8499typedef PACKED_PRE struct PACKED_POST
8500{
8501 tHalMsgHeader header;
8502 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8503} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308504/*---------------------------------------------------------------------------
8505 *WLAN_HAL_GET_FRAME_LOG_REQ
8506 *--------------------------------------------------------------------------*/
8507typedef PACKED_PRE struct PACKED_POST
8508{
8509 tANI_U8 flags;
8510}tGetFrameLogReqType, * tpGetFrameLogReqType;
8511
8512typedef PACKED_PRE struct PACKED_POST
8513{
8514 tHalMsgHeader header;
8515 tGetFrameLogReqType tGetFrameLogReqParams;
8516} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8517
8518/*---------------------------------------------------------------------------
8519 * WLAN_HAL_GET_FRAME_LOG_RSP
8520 *-------------------------------------------------------------------------*/
8521typedef PACKED_PRE struct PACKED_POST
8522{
8523 tANI_U32 status;
8524} tGetFrameLogResp, * tpGetFrameLogResp;
8525
8526typedef PACKED_PRE struct PACKED_POST
8527{
8528 tHalMsgHeader header;
8529 tGetFrameLogResp tGetFrameLogRespParams;
8530} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8531
8532/*---------------------------------------------------------------------------
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308533 * WLAN_HAL_FATAL_EVENT_LOGGING_REQ
8534 *-------------------------------------------------------------------------*/
8535typedef PACKED_PRE struct PACKED_POST
8536{
8537 tANI_U32 reasonCode;
8538}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
8539
8540typedef PACKED_PRE struct PACKED_POST
8541{
8542 tHalMsgHeader header;
8543 tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
8544}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
8545
8546/*---------------------------------------------------------------------------
8547 * WLAN_HAL_FATAL_EVENT_LOGGING_RSP
8548 *-------------------------------------------------------------------------*/
8549typedef PACKED_PRE struct PACKED_POST
8550{ tANI_U32 status;
8551}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
8552
8553typedef PACKED_PRE struct PACKED_POST
8554{
8555 tHalMsgHeader header;
8556 tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
8557}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
8558
Sachin Ahuja75c1fd72015-08-28 15:46:46 +05308559/*---------------------------------------------------------------------------
8560 * WLAN_HAL_LOST_LINK_PARAMETERS_IND
8561 *-------------------------------------------------------------------------*/
8562typedef PACKED_PRE struct PACKED_POST
8563{
8564 tANI_U8 bssIdx;
8565 tANI_U8 rssi;
8566 tSirMacAddr selfMacAddr;
8567 tANI_U32 linkFlCnt;
8568 tANI_U32 linkFlTx;
8569 tANI_U32 lastDataRate;
8570 tANI_U32 rsvd1;
8571 tANI_U32 rsvd2;
8572}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
8573
8574typedef PACKED_PRE struct PACKED_POST
8575{
8576 tHalMsgHeader header;
8577 tHalLostLinkParametersIndParams lostLinkParameters;
8578}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
Sachin Ahuja715aafc2015-07-21 23:35:10 +05308579
8580
8581/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308582 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308583 *--------------------------------------------------------------------------*/
8584typedef PACKED_PRE struct PACKED_POST
8585{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308586 /* BIT0 - enable frame logging
8587 * BIT1 - enableBMUHWtracing
8588 * BIT2 - enableQXDMlogging
8589 * BIT3 - enableUElogDpuTxp
8590 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308591 tANI_U8 enableFlag;
8592 tANI_U8 frameType;
8593 tANI_U8 frameSize;
8594 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308595 /* Host mem address to be used as logmailbox */
8596 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308597 /* firmware will wakeup the host to send logs always */
8598 tANI_U8 continuousFrameLogging;
8599 /* Logging mail box version */
8600 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308601 /* Max ring size in firmware to log msgs when host is suspended state */
8602 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308603 /* when firmware log reaches this threshold and
8604 * if host is awake it will push the logs.
8605 */
8606 tANI_U8 minLogBuffSize;
8607 /* Reserved for future purpose */
8608 tANI_U32 reserved0;
8609 tANI_U32 reserved1;
8610 tANI_U32 reserved2;
8611}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308612
8613typedef PACKED_PRE struct PACKED_POST
8614{
8615 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308616 tFWLoggingInitReqType tFWLoggingInitReqParams;
8617} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308618
8619/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308620 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308621 *-------------------------------------------------------------------------*/
8622typedef PACKED_PRE struct PACKED_POST
8623{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308624 tANI_U32 status;
8625 /* FW mail box address */
8626 tANI_U64 logMailBoxAddr;
8627 /* Logging mail box version */
8628 tANI_U8 logMailBoxVer;
8629 /* Qshrink is enabled */
8630 tANI_BOOLEAN logCompressEnabled;
8631 /* Reserved for future purpose */
8632 tANI_U32 reserved0;
8633 tANI_U32 reserved1;
8634 tANI_U32 reserved2;
8635} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308636
8637typedef PACKED_PRE struct PACKED_POST
8638{
8639 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308640 tFWLoggingInitResp tFWLoggingInitRespParams;
8641} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
8642
8643/*---------------------------------------------------------------------------
8644 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
8645 *-------------------------------------------------------------------------*/
8646typedef PACKED_PRE struct PACKED_POST
8647{
8648 tANI_U32 status;
8649 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8650 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8651} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
8652
8653typedef PACKED_PRE struct PACKED_POST
8654{
8655 tHalMsgHeader header;
8656 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
8657} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
8658
8659/*---------------------------------------------------------------------------
8660 * Logging mail box structure
8661 *-------------------------------------------------------------------------*/
8662
8663#define MAILBOX_VERSION_V1 0x1
8664
8665typedef PACKED_PRE struct PACKED_POST
8666{
8667 /* Logging mail box version */
8668 tANI_U8 logMbVersion;
8669 /* Current logging buffer address */
8670 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8671 /* Current logging buffer length */
8672 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8673 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
8674 tANI_U16 reasonCode;
8675 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
8676 tANI_U8 logType;
8677 /* Indicate if Last segment of log is received*/
8678 tANI_BOOLEAN done;
8679}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308680
Katya Nigamf0511f62015-05-05 16:40:57 +05308681/*---------------------------------------------------------------------------
8682* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
8683*-------------------------------------------------------------------------*/
8684
8685/* only 1 filter is supported as of now */
8686#define NUM_FILTERS_SUPPORTED 1
8687
8688typedef PACKED_PRE struct PACKED_POST
8689{
8690 tSirMacAddr macAddr;
8691 tANI_U8 isA1filteringNeeded;
8692 tANI_U8 isA2filteringNeeded;
8693 tANI_U8 isA3filteringNeeded;
8694}tHalMacFilter, *tpHalMacFilter;
8695
8696typedef PACKED_PRE struct PACKED_POST
8697{
8698 tANI_U8 channelNumber;
8699 ePhyChanBondState cbState;
8700
8701 tANI_U32 maxAmpduLen;
8702 tANI_U32 maxMpduInAmpduLen;
8703
8704 tANI_U8 crcCheckEnabled;
8705
8706 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
8707 tANI_U8 numMacFilters;
8708 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
8709
8710 /* Each bit position maps to IEEE convention of typeSubtype */
8711 tANI_U64 typeSubtypeBitmap;
8712
8713 tANI_U64 reserved;
8714
8715}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
8716
8717typedef PACKED_PRE struct PACKED_POST
8718{
8719 tHalMsgHeader header;
8720 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
8721}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
8722
8723
8724/*---------------------------------------------------------------------------
8725* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
8726*-------------------------------------------------------------------------*/
8727
8728typedef PACKED_PRE struct PACKED_POST
8729{
8730 tANI_U32 status;
8731}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
8732
8733typedef PACKED_PRE struct PACKED_POST
8734{
8735 tHalMsgHeader header;
8736 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
8737}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
8738
8739/*---------------------------------------------------------------------------
8740* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
8741*-------------------------------------------------------------------------*/
8742
8743typedef PACKED_PRE struct PACKED_POST
8744{
8745 tHalMsgHeader header;
8746 tANI_U8 resetConfiguration;
8747}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
8748
8749/*---------------------------------------------------------------------------
8750* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
8751*-------------------------------------------------------------------------*/
8752
8753typedef PACKED_PRE struct PACKED_POST
8754{
8755 tANI_U32 status;
8756}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
8757
8758typedef PACKED_PRE struct PACKED_POST
8759{
8760 tHalMsgHeader header;
8761 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
8762}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
8763
Jeff Johnson295189b2012-06-20 16:38:30 -07008764#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8765#pragma pack(pop)
8766#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8767#else
8768#endif
8769
8770#endif /* _WLAN_HAL_MSG_H_ */