blob: 59992bcf25890627579ce6ca56277a180bfa5689 [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,
Abhishek Singhbc310882015-05-22 15:17:02 +0530569
Sunil Dutt8377a382014-05-26 21:18:04 +0530570 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700571}tHalHostMsgType;
572
Jeff Johnsone7245742012-09-05 17:12:55 -0700573/* Enumeration for Version */
574typedef enum
575{
576 WLAN_HAL_MSG_VERSION0 = 0,
577 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800578 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
579 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700580}tHalHostMsgVersion;
581
Jeff Johnson295189b2012-06-20 16:38:30 -0700582/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530583typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700584{
585 eANI_BOOLEAN_FALSE = 0,
586 eANI_BOOLEAN_TRUE,
587 eANI_BOOLEAN_OFF = 0,
588 eANI_BOOLEAN_ON = 1,
589 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
590} eAniBoolean;
591
592typedef enum
593{
594 eDRIVER_TYPE_PRODUCTION = 0,
595 eDRIVER_TYPE_MFG = 1,
596 eDRIVER_TYPE_DVT = 2,
597 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
598} tDriverType;
599
600typedef enum
601{
602 HAL_STOP_TYPE_SYS_RESET,
603 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
604 HAL_STOP_TYPE_RF_KILL,
605 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
606}tHalStopType;
607
608typedef enum
609{
610 eHAL_SYS_MODE_NORMAL,
611 eHAL_SYS_MODE_LEARN,
612 eHAL_SYS_MODE_SCAN,
613 eHAL_SYS_MODE_PROMISC,
614 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700615 eHAL_SYS_MODE_ROAM_SCAN,
616 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700617 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700618 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
619} eHalSysMode;
620
621typedef enum
622{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800623 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
624 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
625 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
626 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
627 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
628 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
629 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
630 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
631 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700632 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800633 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
634} eHalChanSwitchSource;
635
636typedef enum
637{
Jeff Johnson295189b2012-06-20 16:38:30 -0700638 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
639 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
640 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
641 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700642#ifdef WLAN_FEATURE_11AC
643 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
644 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
645 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
646 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
647 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
648 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
649 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
650#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700651 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
652}ePhyChanBondState;
653
654// Spatial Multiplexing(SM) Power Save mode
655typedef enum eSirMacHTMIMOPowerSaveState
656{
657 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
658 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
659 eSIR_HT_MIMO_PS_NA = 2, // reserved
660 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
661 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
662} tSirMacHTMIMOPowerSaveState;
663
664/* each station added has a rate mode which specifies the sta attributes */
665typedef enum eStaRateMode {
666 eSTA_TAURUS = 0,
667 eSTA_TITAN,
668 eSTA_POLARIS,
669 eSTA_11b,
670 eSTA_11bg,
671 eSTA_11a,
672 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700673#ifdef WLAN_FEATURE_11AC
674 eSTA_11ac,
675#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700676 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
677} tStaRateMode, *tpStaRateMode;
678
679#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
680#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
681#define SIR_NUM_POLARIS_RATES 3 //72,96,108
682
683#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
684
685
686typedef enum eSirBssType
687{
688 eSIR_INFRASTRUCTURE_MODE,
689 eSIR_INFRA_AP_MODE, //Added for softAP support
690 eSIR_IBSS_MODE,
691 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
692 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
693 eSIR_AUTO_MODE,
694 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
695} tSirBssType;
696
697typedef enum eSirNwType
698{
699 eSIR_11A_NW_TYPE,
700 eSIR_11B_NW_TYPE,
701 eSIR_11G_NW_TYPE,
702 eSIR_11N_NW_TYPE,
703 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
704} tSirNwType;
705
706typedef tANI_U16 tSirMacBeaconInterval;
707
708#define SIR_MAC_RATESET_EID_MAX 12
709
710typedef enum eSirMacHTOperatingMode
711{
712 eSIR_HT_OP_MODE_PURE, // No Protection
713 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
714 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
715 eSIR_HT_OP_MODE_MIXED, // Protection is required
716 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
717} tSirMacHTOperatingMode;
718
Jeff Johnson295189b2012-06-20 16:38:30 -0700719/// Encryption type enum used with peer
720typedef enum eAniEdType
721{
722 eSIR_ED_NONE,
723 eSIR_ED_WEP40,
724 eSIR_ED_WEP104,
725 eSIR_ED_TKIP,
726 eSIR_ED_CCMP,
727 eSIR_ED_WPI,
728 eSIR_ED_AES_128_CMAC,
729 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
730} tAniEdType;
731
732#define WLAN_MAX_KEY_RSC_LEN 16
733#define WLAN_WAPI_KEY_RSC_LEN 16
734
735/// MAX key length when ULA is used
736#define SIR_MAC_MAX_KEY_LENGTH 32
737#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
738
739/// Enum to specify whether key is used
740/// for TX only, RX only or both
741typedef enum eAniKeyDirection
742{
743 eSIR_TX_ONLY,
744 eSIR_RX_ONLY,
745 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700746 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700747 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
748} tAniKeyDirection;
749
750typedef enum eAniWepType
751{
752 eSIR_WEP_STATIC,
753 eSIR_WEP_DYNAMIC,
754 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
755} tAniWepType;
756
757typedef enum eSriLinkState {
758
759 eSIR_LINK_IDLE_STATE = 0,
760 eSIR_LINK_PREASSOC_STATE = 1,
761 eSIR_LINK_POSTASSOC_STATE = 2,
762 eSIR_LINK_AP_STATE = 3,
763 eSIR_LINK_IBSS_STATE = 4,
764
765 /* BT-AMP Case */
766 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
767 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
768 eSIR_LINK_BTAMP_AP_STATE = 7,
769 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530770
Jeff Johnson295189b2012-06-20 16:38:30 -0700771 /* Reserved for HAL Internal Use */
772 eSIR_LINK_LEARN_STATE = 9,
773 eSIR_LINK_SCAN_STATE = 10,
774 eSIR_LINK_FINISH_SCAN_STATE = 11,
775 eSIR_LINK_INIT_CAL_STATE = 12,
776 eSIR_LINK_FINISH_CAL_STATE = 13,
777#ifdef WLAN_FEATURE_P2P
778 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530779 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700780#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700781#ifdef WLAN_FEATURE_ROAM_OFFLOAD
782 eSIR_LINK_FT_PREASSOC_STATE = 16,
783#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700784 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
785} tSirLinkState;
786
787typedef enum
788{
789 HAL_SUMMARY_STATS_INFO = 0x00000001,
790 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
791 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
792 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
793 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
794 HAL_PER_STA_STATS_INFO = 0x00000020
795}eHalStatsMask;
796
797/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530798typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700799{
800 BTAMP_EVENT_CONNECTION_START,
801 BTAMP_EVENT_CONNECTION_STOP,
802 BTAMP_EVENT_CONNECTION_TERMINATED,
803 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
804} tBtAmpEventType;
805
806//***************************************************************
807
808
809/*******************PE Statistics*************************/
810typedef enum
811{
812 PE_SUMMARY_STATS_INFO = 0x00000001,
813 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
814 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
815 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
816 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
817 PE_PER_STA_STATS_INFO = 0x00000020,
818 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
819}ePEStatsMask;
820
Sunil Dutt8377a382014-05-26 21:18:04 +0530821
822/******************************LINK LAYER Statitics**********************/
823
824typedef int wifi_radio;
825typedef int wifi_channel;
826typedef int wifi_tx_rate;
827
828/* channel operating width */
829typedef enum {
830 WIFI_CHAN_WIDTH_20 = 0,
831 WIFI_CHAN_WIDTH_40 = 1,
832 WIFI_CHAN_WIDTH_80 = 2,
833 WIFI_CHAN_WIDTH_160 = 3,
834 WIFI_CHAN_WIDTH_80P80 = 4,
835 WIFI_CHAN_WIDTH_5 = 5,
836 WIFI_CHAN_WIDTH_10 = 6,
837} wifi_channel_width;
838
839typedef enum {
840 WIFI_DISCONNECTED = 0,
841 WIFI_AUTHENTICATING = 1,
842 WIFI_ASSOCIATING = 2,
843 WIFI_ASSOCIATED = 3,
844 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
845 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
846} wifi_connection_state;
847
848typedef enum {
849 WIFI_ROAMING_IDLE = 0,
850 WIFI_ROAMING_ACTIVE = 1,
851} wifi_roam_state;
852
853typedef enum {
854 WIFI_INTERFACE_STA = 0,
855 WIFI_INTERFACE_SOFTAP = 1,
856 WIFI_INTERFACE_IBSS = 2,
857 WIFI_INTERFACE_P2P_CLIENT = 3,
858 WIFI_INTERFACE_P2P_GO = 4,
859 WIFI_INTERFACE_NAN = 5,
860 WIFI_INTERFACE_MESH = 6,
861 } wifi_interface_mode;
862
863#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
864#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
865#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
866#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
867#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
868#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
869
870typedef PACKED_PRE struct PACKED_POST
871{
872 wifi_interface_mode mode; // interface mode
873 tANI_U8 mac_addr[6]; // interface mac address (self)
874 wifi_connection_state state; // connection state (valid for STA, CLI only)
875 wifi_roam_state roaming; // roaming state
876 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
877 tANI_U8 ssid[33]; // null terminated SSID
878 tANI_U8 bssid[6]; // bssid
879 tANI_U8 ap_country_str[3]; // country string advertised by AP
880 tANI_U8 country_str[3]; // country string for this association
881} wifi_interface_info;
882
883/* channel information */
884typedef PACKED_PRE struct PACKED_POST
885{
886 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
887 wifi_channel center_freq; // primary 20 MHz channel
888 wifi_channel center_freq0; // center frequency (MHz) first segment
889 wifi_channel center_freq1; // center frequency (MHz) second segment
890} wifi_channel_info;
891
892/* wifi rate info */
893typedef PACKED_PRE struct PACKED_POST
894{
895 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
896 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
897 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
898 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
899 // HT/VHT it would be mcs index
900 tANI_U32 reserved :16; // reserved
901 tANI_U32 bitrate; // units of 100 Kbps
902} wifi_rate;
903
904/* channel statistics */
905typedef PACKED_PRE struct PACKED_POST
906{
907 wifi_channel_info channel; // channel
908 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
909 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
910} wifi_channel_stats;
911
912/* radio statistics */
913typedef PACKED_PRE struct PACKED_POST
914{
915 wifi_radio radio; // wifi radio (if multiple radio supported)
916 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
917 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
918 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
919 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
920 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
921 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
922 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
923 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
924 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
925 tANI_U32 num_channels; // number of channels
926 wifi_channel_stats channels[1]; // channel statistics
927} wifi_radio_stat;
928
929/* per rate statistics */
930typedef PACKED_PRE struct PACKED_POST
931{
932 wifi_rate rate; // rate information *
933 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
934 tANI_U32 rx_mpdu; // number of received data pkts
935 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
936 tANI_U32 retries; // total number of data pkt retries *
937 tANI_U32 retries_short; // number of short data pkt retries
938 tANI_U32 retries_long; // number of long data pkt retries
939} wifi_rate_stat;
940
941/* access categories */
942typedef enum {
943 WIFI_AC_VO = 0,
944 WIFI_AC_VI = 1,
945 WIFI_AC_BE = 2,
946 WIFI_AC_BK = 3,
947 WIFI_AC_MAX = 4,
948} wifi_traffic_ac;
949
950/* wifi peer type */
951typedef enum
952{
953 WIFI_PEER_STA,
954 WIFI_PEER_AP,
955 WIFI_PEER_P2P_GO,
956 WIFI_PEER_P2P_CLIENT,
957 WIFI_PEER_NAN,
958 WIFI_PEER_TDLS,
959 WIFI_PEER_INVALID,
960} wifi_peer_type;
961
962/* per peer statistics */
963typedef PACKED_PRE struct PACKED_POST
964{
965 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
966 tANI_U8 peer_mac_address[6]; // mac address
967 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
968 tANI_U32 num_rate; // number of rates
969 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
970} wifi_peer_info;
971
972/* per access category statistics */
973typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530974{
975 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
976 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
977 tANI_U32 rx_mpdu; // number of received unicast mpdus
978 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
979 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
980 tANI_U32 rx_mcast; // number of received multicast data packets
981 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
982 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
983 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
984 tANI_U32 retries; // total number of data pkt retries
985 tANI_U32 retries_short; // number of short data pkt retries
986 tANI_U32 retries_long; // number of long data pkt retries
987 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
988 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
989 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
990 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
991} wifi_wmm_ac_stat;
992
993/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
994typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530995{
996 wifi_interface_info info; // current state of the interface
997 tANI_U32 beacon_rx; // access point beacon received count from connected AP
998 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
999 tANI_U32 mgmt_action_rx; // action frames received count
1000 tANI_U32 mgmt_action_tx; // action frames transmit count
1001 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
1002 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
1003 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
1004 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
1005} wifi_iface_stat;
1006
1007/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
1008typedef PACKED_PRE struct PACKED_POST
1009{
1010 tANI_U32 num_peers; // number of peers
1011 wifi_peer_info peer_info[1]; // per peer statistics
1012} wifi_peer_stat;
1013
1014/* wifi statistics bitmap for getting statistics */
1015#define WMI_LINK_STATS_RADIO 0x00000001
1016#define WMI_LINK_STATS_IFACE 0x00000002
1017#define WMI_LINK_STATS_ALL_PEER 0x00000004
1018#define WMI_LINK_STATS_PER_PEER 0x00000008
1019
1020/* wifi statistics bitmap for clearing statistics */
1021#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
1022#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
1023#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
1024#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
1025#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
1026#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
1027#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
1028#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
1029
1030
Jeff Johnson295189b2012-06-20 16:38:30 -07001031/*---------------------------------------------------------------------------
1032 Message definitons - All the messages below need to be packed
1033 ---------------------------------------------------------------------------*/
1034
1035#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1036#pragma pack(push, 1)
1037#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1038#pragma pack(1)
1039#else
1040#endif
1041
1042/// Definition for HAL API Version.
1043typedef PACKED_PRE struct PACKED_POST
1044{
1045 tANI_U8 revision;
1046 tANI_U8 version;
1047 tANI_U8 minor;
1048 tANI_U8 major;
1049} tWcnssWlanVersion, *tpWcnssWlanVersion;
1050
1051/// Definition for Encryption Keys
1052typedef PACKED_PRE struct PACKED_POST
1053{
1054 tANI_U8 keyId;
1055 tANI_U8 unicast; // 0 for multicast
1056 tAniKeyDirection keyDirection;
1057 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1058 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1059 tANI_U16 keyLength;
1060 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1061} tSirKeys, *tpSirKeys;
1062
1063
1064//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1065typedef PACKED_PRE struct PACKED_POST
1066{
1067 /*STA Index*/
1068 tANI_U16 staIdx;
1069
1070 /*Encryption Type used with peer*/
1071 tAniEdType encType;
1072
1073 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301074 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001075
1076 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1077 tANI_U8 defWEPIdx;
1078
Jeff Johnson295189b2012-06-20 16:38:30 -07001079 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301080 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1081
Jeff Johnson295189b2012-06-20 16:38:30 -07001082 /*Control for Replay Count, 1= Single TID based replay count on Tx
1083 0 = Per TID based replay count on TX */
1084 tANI_U8 singleTidRc;
1085
1086} tSetStaKeyParams, *tpSetStaKeyParams;
1087
1088
1089
1090/* 4-byte control message header used by HAL*/
1091typedef PACKED_PRE struct PACKED_POST
1092{
Jeff Johnsone7245742012-09-05 17:12:55 -07001093 tHalHostMsgType msgType:16;
1094 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001095 tANI_U32 msgLen;
1096} tHalMsgHeader, *tpHalMsgHeader;
1097
1098/* Config format required by HAL for each CFG item*/
1099typedef PACKED_PRE struct PACKED_POST
1100{
1101 /* Cfg Id. The Id required by HAL is exported by HAL
1102 * in shared header file between UMAC and HAL.*/
1103 tANI_U16 uCfgId;
1104
Dino Mycle8afbac12014-07-04 22:06:17 +05301105 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001106 * in the TLV format.*/
1107 tANI_U16 uCfgLen;
1108
1109 /* Padding bytes for unaligned address's */
1110 tANI_U16 uCfgPadBytes;
1111
1112 /* Reserve bytes for making cfgVal to align address */
1113 tANI_U16 uCfgReserve;
1114
1115 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1116 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1117} tHalCfg, *tpHalCfg;
1118
1119/*---------------------------------------------------------------------------
1120 WLAN_HAL_START_REQ
1121---------------------------------------------------------------------------*/
1122
1123typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1124{
1125 /* Drive Type - Production or FTM etc */
1126 tDriverType driverType;
1127
1128 /*Length of the config buffer*/
1129 tANI_U32 uConfigBufferLen;
1130
Dino Mycle8afbac12014-07-04 22:06:17 +05301131 /* Following this there is a TLV formatted buffer of length
1132 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001133 * The TLV is expected to be formatted like this:
1134 * 0 15 31 31+CFG_LEN-1 length-1
1135 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1136 */
1137} tHalMacStartParameters, *tpHalMacStartParameters;
1138
1139typedef PACKED_PRE struct PACKED_POST
1140{
1141 /* Note: The length specified in tHalMacStartReqMsg messages should be
1142 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1143 tHalMsgHeader header;
1144 tHalMacStartParameters startReqParams;
1145} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1146
1147/*---------------------------------------------------------------------------
1148 WLAN_HAL_START_RSP
1149---------------------------------------------------------------------------*/
1150
1151typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1152{
1153 /*success or failure */
1154 tANI_U16 status;
1155
1156 /*Max number of STA supported by the device*/
1157 tANI_U8 ucMaxStations;
1158
1159 /*Max number of BSS supported by the device*/
1160 tANI_U8 ucMaxBssids;
1161
1162 /*API Version */
1163 tWcnssWlanVersion wcnssWlanVersion;
1164
1165 /*CRM build information */
1166 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1167
1168 /*hardware/chipset/misc version information */
1169 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1170
1171} tHalMacStartRspParams, *tpHalMacStartRspParams;
1172
1173typedef PACKED_PRE struct PACKED_POST
1174{
1175 tHalMsgHeader header;
1176 tHalMacStartRspParams startRspParams;
1177} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1178
1179/*---------------------------------------------------------------------------
1180 WLAN_HAL_STOP_REQ
1181---------------------------------------------------------------------------*/
1182
1183typedef PACKED_PRE struct PACKED_POST
1184{
1185 /*The reason for which the device is being stopped*/
1186 tHalStopType reason;
1187
1188}tHalMacStopReqParams, *tpHalMacStopReqParams;
1189
1190typedef PACKED_PRE struct PACKED_POST
1191{
1192 tHalMsgHeader header;
1193 tHalMacStopReqParams stopReqParams;
1194} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1195
1196/*---------------------------------------------------------------------------
1197 WLAN_HAL_STOP_RSP
1198---------------------------------------------------------------------------*/
1199
1200typedef PACKED_PRE struct PACKED_POST
1201{
1202 /*success or failure */
1203 tANI_U32 status;
1204
1205}tHalMacStopRspParams, *tpHalMacStopRspParams;
1206
1207typedef PACKED_PRE struct PACKED_POST
1208{
1209 tHalMsgHeader header;
1210 tHalMacStopRspParams stopRspParams;
1211} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1212
1213/*---------------------------------------------------------------------------
1214 WLAN_HAL_UPDATE_CFG_REQ
1215---------------------------------------------------------------------------*/
1216
1217typedef PACKED_PRE struct PACKED_POST
1218{
1219 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1220 tANI_U32 uConfigBufferLen;
1221
Dino Mycle8afbac12014-07-04 22:06:17 +05301222 /* Following this there is a TLV formatted buffer of length
1223 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001224 * The TLV is expected to be formatted like this:
1225 * 0 15 31 31+CFG_LEN-1 length-1
1226 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1227 */
1228} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1229
1230typedef PACKED_PRE struct PACKED_POST
1231{
1232 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1233 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1234 tHalMsgHeader header;
1235 tHalUpdateCfgReqParams updateCfgReqParams;
1236} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1237
1238/*---------------------------------------------------------------------------
1239 WLAN_HAL_UPDATE_CFG_RSP
1240---------------------------------------------------------------------------*/
1241
1242typedef PACKED_PRE struct PACKED_POST
1243{
1244 /* success or failure */
1245 tANI_U32 status;
1246
1247}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1248
1249typedef PACKED_PRE struct PACKED_POST
1250{
1251 tHalMsgHeader header;
1252 tHalUpdateCfgRspParams updateCfgRspParams;
1253} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1254
1255/*---------------------------------------------------------------------------
1256 WLAN_HAL_INIT_SCAN_REQ
1257---------------------------------------------------------------------------*/
1258
1259/// Frame control field format (2 bytes)
1260typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1261{
1262
1263#ifndef ANI_LITTLE_BIT_ENDIAN
1264
1265 tANI_U8 subType :4;
1266 tANI_U8 type :2;
1267 tANI_U8 protVer :2;
1268
1269 tANI_U8 order :1;
1270 tANI_U8 wep :1;
1271 tANI_U8 moreData :1;
1272 tANI_U8 powerMgmt :1;
1273 tANI_U8 retry :1;
1274 tANI_U8 moreFrag :1;
1275 tANI_U8 fromDS :1;
1276 tANI_U8 toDS :1;
1277
1278#else
1279
1280 tANI_U8 protVer :2;
1281 tANI_U8 type :2;
1282 tANI_U8 subType :4;
1283
1284 tANI_U8 toDS :1;
1285 tANI_U8 fromDS :1;
1286 tANI_U8 moreFrag :1;
1287 tANI_U8 retry :1;
1288 tANI_U8 powerMgmt :1;
1289 tANI_U8 moreData :1;
1290 tANI_U8 wep :1;
1291 tANI_U8 order :1;
1292
1293#endif
1294
1295} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1296
1297/// Sequence control field
1298typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1299{
1300 tANI_U8 fragNum : 4;
1301 tANI_U8 seqNumLo : 4;
1302 tANI_U8 seqNumHi : 8;
1303} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1304
1305/// Management header format
1306typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1307{
1308 tSirMacFrameCtl fc;
1309 tANI_U8 durationLo;
1310 tANI_U8 durationHi;
1311 tANI_U8 da[6];
1312 tANI_U8 sa[6];
1313 tANI_U8 bssId[6];
1314 tSirMacSeqCtl seqControl;
1315} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1316
1317/// Scan Entry to hold active BSS idx's
1318typedef __ani_attr_pre_packed struct sSirScanEntry
1319{
1320 tANI_U8 bssIdx[HAL_NUM_BSSID];
1321 tANI_U8 activeBSScnt;
1322}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1323
1324typedef PACKED_PRE struct PACKED_POST {
1325
1326 /*LEARN - AP Role
1327 SCAN - STA Role*/
1328 eHalSysMode scanMode;
1329
1330 /*BSSID of the BSS*/
1331 tSirMacAddr bssid;
1332
1333 /*Whether BSS needs to be notified*/
1334 tANI_U8 notifyBss;
1335
1336 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1337 CTS to Self). Must always be a valid frame type.*/
1338 tANI_U8 frameType;
1339
1340 /*UMAC has the option of passing the MAC frame to be used for notifying
1341 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1342 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1343 frameType.*/
1344 tANI_U8 frameLength;
1345
Dino Mycle8afbac12014-07-04 22:06:17 +05301346 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001347 is non-zero. */
1348 tSirMacMgmtHdr macMgmtHdr;
1349
1350 /*Entry to hold number of active BSS idx's*/
1351 tSirScanEntry scanEntry;
1352
1353} tInitScanParams, * tpInitScanParams;
1354
1355typedef PACKED_PRE struct PACKED_POST
1356{
1357 tHalMsgHeader header;
1358 tInitScanParams initScanParams;
1359} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1360
1361typedef PACKED_PRE struct PACKED_POST {
1362
1363 /*LEARN - AP Role
1364 SCAN - STA Role*/
1365 eHalSysMode scanMode;
1366
1367 /*BSSID of the BSS*/
1368 tSirMacAddr bssid;
1369
1370 /*Whether BSS needs to be notified*/
1371 tANI_U8 notifyBss;
1372
1373 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1374 CTS to Self). Must always be a valid frame type.*/
1375 tANI_U8 frameType;
1376
1377 /*UMAC has the option of passing the MAC frame to be used for notifying
1378 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1379 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1380 frameType.*/
1381 tANI_U8 frameLength;
1382
Dino Mycle8afbac12014-07-04 22:06:17 +05301383 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001384 is non-zero. */
1385 tSirMacMgmtHdr macMgmtHdr;
1386
1387 /*Entry to hold number of active BSS idx's*/
1388 tSirScanEntry scanEntry;
1389
1390 /* Single NoA usage in Scanning */
1391 tANI_U8 useNoA;
1392
1393 /* Indicates the scan duration (in ms) */
1394 tANI_U16 scanDuration;
1395
1396} tInitScanConParams, * tpInitScanConParams;
1397
1398typedef PACKED_PRE struct PACKED_POST
1399{
1400 tHalMsgHeader header;
1401 tInitScanConParams initScanParams;
1402} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1403
1404
1405/*---------------------------------------------------------------------------
1406 WLAN_HAL_INIT_SCAN_RSP
1407---------------------------------------------------------------------------*/
1408
1409typedef PACKED_PRE struct PACKED_POST
1410{
1411 /*success or failure */
1412 tANI_U32 status;
1413
1414}tHalInitScanRspParams, *tpHalInitScanRspParams;
1415
1416typedef PACKED_PRE struct PACKED_POST
1417{
1418 tHalMsgHeader header;
1419 tHalInitScanRspParams initScanRspParams;
1420} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1421
1422/*---------------------------------------------------------------------------
1423 WLAN_HAL_START_SCAN_REQ
1424---------------------------------------------------------------------------*/
1425
Dino Mycle8afbac12014-07-04 22:06:17 +05301426typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001427{
1428 /*Indicates the channel to scan*/
1429 tANI_U8 scanChannel;
1430
1431 } tStartScanParams, * tpStartScanParams;
1432
1433typedef PACKED_PRE struct PACKED_POST
1434{
1435 tHalMsgHeader header;
1436 tStartScanParams startScanParams;
1437} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1438
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001439typedef PACKED_PRE struct PACKED_POST
1440{
1441 tHalMsgHeader header;
1442} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1443
Jeff Johnson295189b2012-06-20 16:38:30 -07001444/*---------------------------------------------------------------------------
1445 WLAN_HAL_START_SCAN_RSP
1446---------------------------------------------------------------------------*/
1447
1448typedef PACKED_PRE struct PACKED_POST
1449{
1450 /*success or failure */
1451 tANI_U32 status;
1452
1453 tANI_U32 startTSF[2];
1454 tPowerdBm txMgmtPower;
1455
1456}tHalStartScanRspParams, *tpHalStartScanRspParams;
1457
1458typedef PACKED_PRE struct PACKED_POST
1459{
1460 tHalMsgHeader header;
1461 tHalStartScanRspParams startScanRspParams;
1462} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1463
1464/*---------------------------------------------------------------------------
1465 WLAN_HAL_END_SCAN_REQ
1466---------------------------------------------------------------------------*/
1467
1468typedef PACKED_PRE struct PACKED_POST
1469{
1470 /*Indicates the channel to stop scanning. Not used really. But retained
1471 for symmetry with "start Scan" message. It can also help in error
1472 check if needed.*/
1473 tANI_U8 scanChannel;
1474
1475} tEndScanParams, *tpEndScanParams;
1476
1477typedef PACKED_PRE struct PACKED_POST
1478{
1479 tHalMsgHeader header;
1480 tEndScanParams endScanParams;
1481} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1482
1483/*---------------------------------------------------------------------------
1484 WLAN_HAL_END_SCAN_RSP
1485---------------------------------------------------------------------------*/
1486
1487typedef PACKED_PRE struct PACKED_POST
1488{
1489 /*success or failure */
1490 tANI_U32 status;
1491
1492}tHalEndScanRspParams, *tpHalEndScanRspParams;
1493
1494typedef PACKED_PRE struct PACKED_POST
1495{
1496 tHalMsgHeader header;
1497 tHalEndScanRspParams endScanRspParams;
1498} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1499
1500/*---------------------------------------------------------------------------
1501 WLAN_HAL_FINISH_SCAN_REQ
1502---------------------------------------------------------------------------*/
1503
1504typedef PACKED_PRE struct PACKED_POST
1505{
1506 /* Identifies the operational state of the AP/STA
1507 * LEARN - AP Role SCAN - STA Role */
1508 eHalSysMode scanMode;
1509
1510 /*Operating channel to tune to.*/
1511 tANI_U8 currentOperChannel;
1512
1513 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1514 40 MHz extension channel in combination with the control channel*/
1515 ePhyChanBondState cbState;
1516
1517 /*BSSID of the BSS*/
1518 tSirMacAddr bssid;
1519
1520 /*Whether BSS needs to be notified*/
1521 tANI_U8 notifyBss;
1522
1523 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1524 CTS to Self). Must always be a valid frame type.*/
1525 tANI_U8 frameType;
1526
1527 /*UMAC has the option of passing the MAC frame to be used for notifying
1528 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1529 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1530 frameType.*/
1531 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301532
1533 /*Following the framelength there is a MAC frame buffer if frameLength
1534 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001535 tSirMacMgmtHdr macMgmtHdr;
1536
1537 /*Entry to hold number of active BSS idx's*/
1538 tSirScanEntry scanEntry;
1539
1540} tFinishScanParams, *tpFinishScanParams;
1541
1542typedef PACKED_PRE struct PACKED_POST
1543{
1544 tHalMsgHeader header;
1545 tFinishScanParams finishScanParams;
1546} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1547
1548/*---------------------------------------------------------------------------
1549 WLAN_HAL_FINISH_SCAN_RSP
1550---------------------------------------------------------------------------*/
1551
1552typedef PACKED_PRE struct PACKED_POST
1553{
1554 /*success or failure */
1555 tANI_U32 status;
1556
1557}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1558
1559typedef PACKED_PRE struct PACKED_POST
1560{
1561 tHalMsgHeader header;
1562 tHalFinishScanRspParams finishScanRspParams;
1563} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1564
Srinivas Dasari42584632014-11-26 20:37:19 +05301565typedef PACKED_PRE struct PACKED_POST
1566{
1567 tSetStaKeyParams keyParams;
1568 uint8 pn[6];
1569} tHalEncConfigParams;
1570
1571typedef PACKED_PRE struct PACKED_POST
1572{
1573 uint16 length;
1574 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1575} tHalDisaPayload;
1576
1577typedef PACKED_PRE struct PACKED_POST
1578{
1579#ifdef BYTE_ORDER_BIG_ENDIAN
1580 uint8 reserved1 : 1;
1581 uint8 ackpolicy : 2;
1582 uint8 eosp : 1;
1583 uint8 tid : 4;
1584
1585 uint8 appsbufferstate : 8;
1586#else
1587 uint8 appsbufferstate : 8;
1588
1589 uint8 tid : 4;
1590 uint8 eosp : 1;
1591 uint8 ackpolicy : 2;
1592 uint8 reserved1 : 1;
1593#endif
1594} tHalQosCtrlFieldType;
1595
1596typedef PACKED_PRE struct PACKED_POST
1597 {
1598#ifdef BYTE_ORDER_BIG_ENDIAN
1599 uint16 subtype : 4;
1600 uint16 type : 2;
1601 uint16 protocol : 2;
1602
1603 uint16 order : 1;
1604 uint16 wep : 1;
1605 uint16 moredata : 1;
1606 uint16 pm : 1;
1607 uint16 retry : 1;
1608 uint16 morefrag : 1;
1609 uint16 fromds : 1;
1610 uint16 tods : 1;
1611#else
1612
1613 uint16 tods : 1;
1614 uint16 fromds : 1;
1615 uint16 morefrag : 1;
1616 uint16 retry : 1;
1617 uint16 pm : 1;
1618 uint16 moredata : 1;
1619 uint16 wep : 1;
1620 uint16 order : 1;
1621
1622 uint16 protocol : 2;
1623 uint16 type : 2;
1624 uint16 subtype : 4;
1625#endif
1626} tHalFrmCtrlType;
1627
1628typedef PACKED_PRE struct PACKED_POST
1629{
1630 /* Frame control field */
1631 tHalFrmCtrlType fc;
1632 /* Duration ID */
1633 uint16 usDurationId;
1634 /* Address 1 field */
1635 uint8 vA1[HAL_MAC_ADDR_LEN];
1636 /* Address 2 field */
1637 uint8 vA2[HAL_MAC_ADDR_LEN];
1638 /* Address 3 field */
1639 uint8 vA3[HAL_MAC_ADDR_LEN];
1640 /* Sequence control field */
1641 uint16 seqNum;
1642 /* Optional A4 address */
1643 uint8 optvA4[HAL_MAC_ADDR_LEN];
1644 /* Optional QOS control field */
1645 tHalQosCtrlFieldType usQosCtrl;
1646} tHal80211Header;
1647
1648typedef PACKED_PRE struct PACKED_POST
1649{
1650 tHal80211Header macHeader;
1651 tHalEncConfigParams encParams;
1652 tHalDisaPayload data;
1653} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1654
1655typedef PACKED_PRE struct PACKED_POST
1656{
1657 tHalMsgHeader header;
1658 tSetEncryptedDataParams encryptedDataParams;
1659} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1660
1661typedef PACKED_PRE struct PACKED_POST
1662{
1663 tANI_U32 status;
1664 tHalDisaPayload encryptedPayload;
1665} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1666
1667typedef PACKED_PRE struct PACKED_POST
1668{
1669 tHalMsgHeader header;
1670 tSetEncryptedDataRspParams encryptedDataRspParams;
1671} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1672
Jeff Johnson295189b2012-06-20 16:38:30 -07001673/*---------------------------------------------------------------------------
1674 WLAN_HAL_CONFIG_STA_REQ
1675---------------------------------------------------------------------------*/
1676
1677typedef PACKED_PRE struct PACKED_POST {
1678 /*
1679 * For Self STA Entry: this represents Self Mode.
1680 * For Peer Stations, this represents the mode of the peer.
1681 * On Station:
1682 * --this mode is updated when PE adds the Self Entry.
1683 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1684 * ON AP:
1685 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1686 * to indicate the self mode of the AP.
1687 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1688 */
1689
1690 tStaRateMode opRateMode;
1691 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1692 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1693 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1694 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1695 tANI_U16 reserved;
1696
1697 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1698 //First 26 bits are reserved for those Titan rates and
1699 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1700 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1701
1702 /*
1703 * 0-76 bits used, remaining reserved
1704 * bits 0-15 and 32 should be set.
1705 */
1706 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1707
1708 /*
1709 * RX Highest Supported Data Rate defines the highest data
1710 * rate that the STA is able to receive, in unites of 1Mbps.
1711 * This value is derived from "Supported MCS Set field" inside
1712 * the HT capability element.
1713 */
1714 tANI_U16 rxHighestDataRate;
1715
1716} tSirSupportedRates, *tpSirSupportedRates;
1717
1718typedef PACKED_PRE struct PACKED_POST
1719{
1720 /*BSSID of STA*/
1721 tSirMacAddr bssId;
1722
1723 /*ASSOC ID, as assigned by UMAC*/
1724 tANI_U16 assocId;
1725
1726 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1727 tANI_U8 staType;
1728
1729 /*Short Preamble Supported.*/
1730 tANI_U8 shortPreambleSupported;
1731
1732 /*MAC Address of STA*/
1733 tSirMacAddr staMac;
1734
1735 /*Listen interval of the STA*/
1736 tANI_U16 listenInterval;
1737
1738 /*Support for 11e/WMM*/
1739 tANI_U8 wmmEnabled;
1740
1741 /*11n HT capable STA*/
1742 tANI_U8 htCapable;
1743
1744 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1745 tANI_U8 txChannelWidthSet;
1746
1747 /*RIFS mode 0 - NA, 1 - Allowed */
1748 tANI_U8 rifsMode;
1749
Dino Mycle8afbac12014-07-04 22:06:17 +05301750 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001751 0 - No Support, 1 - Supported
1752 SG - there is global field */
1753 tANI_U8 lsigTxopProtection;
1754
1755 /*Max Ampdu Size supported by STA. TPE programming.
1756 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1757 tANI_U8 maxAmpduSize;
1758
1759 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1760 tANI_U8 maxAmpduDensity;
1761
1762 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1763 tANI_U8 maxAmsduSize;
1764
1765 /*Short GI support for 40Mhz packets*/
1766 tANI_U8 fShortGI40Mhz;
1767
1768 /*Short GI support for 20Mhz packets*/
1769 tANI_U8 fShortGI20Mhz;
1770
Jeff Johnson295189b2012-06-20 16:38:30 -07001771 /*Robust Management Frame (RMF) enabled/disabled*/
1772 tANI_U8 rmfEnabled;
1773
1774 /* The unicast encryption type in the association */
1775 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001776
1777 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001778 will set this flag in case of RE-ASSOC, where we want to reuse the old
1779 STA ID. 0 = Add, 1 = Update*/
1780 tANI_U8 action;
1781
1782 /*U-APSD Flags: 1b per AC. Encoded as follows:
1783 b7 b6 b5 b4 b3 b2 b1 b0 =
1784 X X X X BE BK VI VO */
1785 tANI_U8 uAPSD;
1786
1787 /*Max SP Length*/
1788 tANI_U8 maxSPLen;
1789
1790 /*11n Green Field preamble support
1791 0 - Not supported, 1 - Supported */
1792 tANI_U8 greenFieldCapable;
1793
1794 /*MIMO Power Save mode*/
1795 tSirMacHTMIMOPowerSaveState mimoPS;
1796
1797 /*Delayed BA Support*/
1798 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001799
Jeff Johnson295189b2012-06-20 16:38:30 -07001800 /*Max AMPDU duration in 32us*/
1801 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001802
Jeff Johnson295189b2012-06-20 16:38:30 -07001803 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1804 it to 0 if AP does not support it. This indication is sent to HAL and
1805 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1806 tANI_U8 fDsssCckMode40Mhz;
1807
1808 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1809 Retained for backward compalibity with existing HAL code*/
1810 tANI_U8 staIdx;
1811
1812 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1813 Retained for backward compalibity with existing HAL code*/
1814 tANI_U8 bssIdx;
1815
1816 tANI_U8 p2pCapableSta;
1817
Jeff Johnsone7245742012-09-05 17:12:55 -07001818 /*Reserved to align next field on a dword boundary*/
1819 tANI_U8 reserved;
1820
1821 /*These rates are the intersection of peer and self capabilities.*/
1822 tSirSupportedRates supportedRates;
1823
Jeff Johnson295189b2012-06-20 16:38:30 -07001824} tConfigStaParams, *tpConfigStaParams;
1825
Jeff Johnsone7245742012-09-05 17:12:55 -07001826/*------------------------------------------------------------------------
1827 * WLAN_HAL_CONFIG_STA_REQ
1828 * ----------------------------------------------------------------------*/
1829
1830typedef PACKED_PRE struct PACKED_POST {
1831 /*
1832 * For Self STA Entry: this represents Self Mode.
1833 * For Peer Stations, this represents the mode of the peer.
1834 * On Station:
1835 * --this mode is updated when PE adds the Self Entry.
1836 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1837 * ON AP:
1838 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1839 * to indicate the self mode of the AP.
1840 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1841 */
1842
1843 tStaRateMode opRateMode;
1844 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1845 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1846 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1847 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1848 tANI_U16 reserved;
1849
1850 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1851 //First 26 bits are reserved for those Titan rates and
1852 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1853 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1854
1855 /*
1856 * 0-76 bits used, remaining reserved
1857 * bits 0-15 and 32 should be set.
1858 */
1859 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1860
1861 /*
1862 * RX Highest Supported Data Rate defines the highest data
1863 * rate that the STA is able to receive, in unites of 1Mbps.
1864 * This value is derived from "Supported MCS Set field" inside
1865 * the HT capability element.
1866 */
1867 tANI_U16 rxHighestDataRate;
1868
1869 /* Indicates the Maximum MCS that can be received for each number
1870 * of spacial streams */
1871 tANI_U16 vhtRxMCSMap;
1872
1873 /*Indicate the highest VHT data rate that the STA is able to receive*/
1874 tANI_U16 vhtRxHighestDataRate;
1875
1876 /* Indicates the Maximum MCS that can be transmitted for each number
1877 * of spacial streams */
1878 tANI_U16 vhtTxMCSMap;
1879
1880 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1881 tANI_U16 vhtTxHighestDataRate;
1882
1883} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1884
1885typedef PACKED_PRE struct PACKED_POST
1886{
1887 /*BSSID of STA*/
1888 tSirMacAddr bssId;
1889
1890 /*ASSOC ID, as assigned by UMAC*/
1891 tANI_U16 assocId;
1892
1893 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1894 tANI_U8 staType;
1895
1896 /*Short Preamble Supported.*/
1897 tANI_U8 shortPreambleSupported;
1898
1899 /*MAC Address of STA*/
1900 tSirMacAddr staMac;
1901
1902 /*Listen interval of the STA*/
1903 tANI_U16 listenInterval;
1904
1905 /*Support for 11e/WMM*/
1906 tANI_U8 wmmEnabled;
1907
1908 /*11n HT capable STA*/
1909 tANI_U8 htCapable;
1910
1911 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1912 tANI_U8 txChannelWidthSet;
1913
1914 /*RIFS mode 0 - NA, 1 - Allowed */
1915 tANI_U8 rifsMode;
1916
1917 /*L-SIG TXOP Protection mechanism
1918 0 - No Support, 1 - Supported
1919 SG - there is global field */
1920 tANI_U8 lsigTxopProtection;
1921
1922 /*Max Ampdu Size supported by STA. TPE programming.
1923 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1924 tANI_U8 maxAmpduSize;
1925
1926 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1927 tANI_U8 maxAmpduDensity;
1928
1929 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1930 tANI_U8 maxAmsduSize;
1931
1932 /*Short GI support for 40Mhz packets*/
1933 tANI_U8 fShortGI40Mhz;
1934
1935 /*Short GI support for 20Mhz packets*/
1936 tANI_U8 fShortGI20Mhz;
1937
1938 /*Robust Management Frame (RMF) enabled/disabled*/
1939 tANI_U8 rmfEnabled;
1940
1941 /* The unicast encryption type in the association */
1942 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301943
1944 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001945 will set this flag in case of RE-ASSOC, where we want to reuse the old
1946 STA ID. 0 = Add, 1 = Update*/
1947 tANI_U8 action;
1948
1949 /*U-APSD Flags: 1b per AC. Encoded as follows:
1950 b7 b6 b5 b4 b3 b2 b1 b0 =
1951 X X X X BE BK VI VO */
1952 tANI_U8 uAPSD;
1953
1954 /*Max SP Length*/
1955 tANI_U8 maxSPLen;
1956
1957 /*11n Green Field preamble support
1958 0 - Not supported, 1 - Supported */
1959 tANI_U8 greenFieldCapable;
1960
1961 /*MIMO Power Save mode*/
1962 tSirMacHTMIMOPowerSaveState mimoPS;
1963
1964 /*Delayed BA Support*/
1965 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05301966
Jeff Johnsone7245742012-09-05 17:12:55 -07001967 /*Max AMPDU duration in 32us*/
1968 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05301969
Jeff Johnsone7245742012-09-05 17:12:55 -07001970 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1971 it to 0 if AP does not support it. This indication is sent to HAL and
1972 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1973 tANI_U8 fDsssCckMode40Mhz;
1974
1975 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1976 Retained for backward compalibity with existing HAL code*/
1977 tANI_U8 staIdx;
1978
1979 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1980 Retained for backward compalibity with existing HAL code*/
1981 tANI_U8 bssIdx;
1982
1983 tANI_U8 p2pCapableSta;
1984
1985 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001986 tANI_U8 htLdpcEnabled:1;
1987 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001988 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05301989 tANI_U8 vhtTxMUBformeeCapable:1;
1990 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001991
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001992 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001993 tSirSupportedRates_V1 supportedRates;
1994
1995 tANI_U8 vhtCapable;
1996 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001997
Jeff Johnsone7245742012-09-05 17:12:55 -07001998} tConfigStaParams_V1, *tpConfigStaParams_V1;
1999
Jeff Johnson295189b2012-06-20 16:38:30 -07002000typedef PACKED_PRE struct PACKED_POST
2001{
2002 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002003 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002004 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002005 tConfigStaParams_V1 configStaParams_V1;
2006 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002007} tConfigStaReqMsg, *tpConfigStaReqMsg;
2008
2009/*---------------------------------------------------------------------------
2010 WLAN_HAL_CONFIG_STA_RSP
2011---------------------------------------------------------------------------*/
2012
2013typedef PACKED_PRE struct PACKED_POST
2014{
2015 /*success or failure */
2016 tANI_U32 status;
2017
2018 /* Station index; valid only when 'status' field value SUCCESS */
2019 tANI_U8 staIdx;
2020
2021 /* BSSID Index of BSS to which the station is associated */
2022 tANI_U8 bssIdx;
2023
2024 /* DPU Index for PTK */
2025 tANI_U8 dpuIndex;
2026
Dino Mycle8afbac12014-07-04 22:06:17 +05302027 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07002028 tANI_U8 bcastDpuIndex;
2029
2030 /*DPU Index for IGTK */
2031 tANI_U8 bcastMgmtDpuIdx;
2032
2033 /*PTK DPU signature*/
2034 tANI_U8 ucUcastSig;
2035
2036 /*GTK DPU isignature*/
2037 tANI_U8 ucBcastSig;
2038
2039 /* IGTK DPU signature*/
2040 tANI_U8 ucMgmtSig;
2041
2042 tANI_U8 p2pCapableSta;
2043
2044}tConfigStaRspParams, *tpConfigStaRspParams;
2045
2046typedef PACKED_PRE struct PACKED_POST
2047{
2048 tHalMsgHeader header;
2049 tConfigStaRspParams configStaRspParams;
2050}tConfigStaRspMsg, *tpConfigStaRspMsg;
2051
2052/*---------------------------------------------------------------------------
2053 WLAN_HAL_DELETE_STA_REQ
2054---------------------------------------------------------------------------*/
2055
2056/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302057typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002058{
2059 /* Index of STA to delete */
2060 tANI_U8 staIdx;
2061} tDeleteStaParams, *tpDeleteStaParams;
2062
2063/* Delete STA Request message*/
2064typedef PACKED_PRE struct PACKED_POST
2065{
2066 tHalMsgHeader header;
2067 tDeleteStaParams delStaParams;
2068} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2069
2070/*---------------------------------------------------------------------------
2071 WLAN_HAL_DELETE_STA_RSP
2072---------------------------------------------------------------------------*/
2073
2074/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302075typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002076{
2077 /*success or failure */
2078 tANI_U32 status;
2079
2080 /* Index of STA deleted */
2081 tANI_U8 staId;
2082} tDeleteStaRspParams, *tpDeleteStaRspParams;
2083
2084/* Delete STA Response message*/
2085typedef PACKED_PRE struct PACKED_POST
2086{
2087 tHalMsgHeader header;
2088 tDeleteStaRspParams delStaRspParams;
2089} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2090
2091/*---------------------------------------------------------------------------
2092 WLAN_HAL_CONFIG_BSS_REQ
2093---------------------------------------------------------------------------*/
2094
2095//12 Bytes long because this structure can be used to represent rate
2096//and extended rate set IEs. The parser assume this to be at least 12
2097typedef __ani_attr_pre_packed struct sSirMacRateSet
2098{
2099 tANI_U8 numRates;
2100 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2101} __ani_attr_packed tSirMacRateSet;
2102
2103// access category record
2104typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2105{
2106#ifndef ANI_LITTLE_BIT_ENDIAN
2107 tANI_U8 rsvd : 1;
2108 tANI_U8 aci : 2;
2109 tANI_U8 acm : 1;
2110 tANI_U8 aifsn : 4;
2111#else
2112 tANI_U8 aifsn : 4;
2113 tANI_U8 acm : 1;
2114 tANI_U8 aci : 2;
2115 tANI_U8 rsvd : 1;
2116#endif
2117} __ani_attr_packed tSirMacAciAifsn;
2118
2119// contention window size
2120typedef __ani_attr_pre_packed struct sSirMacCW
2121{
2122#ifndef ANI_LITTLE_BIT_ENDIAN
2123 tANI_U8 max : 4;
2124 tANI_U8 min : 4;
2125#else
2126 tANI_U8 min : 4;
2127 tANI_U8 max : 4;
2128#endif
2129} __ani_attr_packed tSirMacCW;
2130
2131typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2132{
2133 tSirMacAciAifsn aci;
2134 tSirMacCW cw;
2135 tANI_U16 txoplimit;
2136} __ani_attr_packed tSirMacEdcaParamRecord;
2137
2138typedef __ani_attr_pre_packed struct sSirMacSSid
2139{
2140 tANI_U8 length;
2141 tANI_U8 ssId[32];
2142} __ani_attr_packed tSirMacSSid;
2143
2144// Concurrency role. These are generic IDs that identify the various roles
2145// in the software system.
2146typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302147 HAL_STA_MODE=0,
2148 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002149 HAL_P2P_CLIENT_MODE,
2150 HAL_P2P_GO_MODE,
2151 HAL_MONITOR_MODE,
2152} tHalConMode;
2153
2154//This is a bit pattern to be set for each mode
2155//bit 0 - sta mode
2156//bit 1 - ap mode
2157//bit 2 - p2p client mode
2158//bit 3 - p2p go mode
2159typedef enum
2160{
Dino Mycle8afbac12014-07-04 22:06:17 +05302161 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002162 HAL_SAP=2,
2163 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2164 HAL_P2P_CLIENT=4,
2165 HAL_P2P_GO=8,
2166 HAL_MAX_CONCURRENCY_PERSONA=4
2167} tHalConcurrencyMode;
2168
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002169// IFACE PERSONA for different Operating modes
2170typedef enum
2171{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002172 HAL_IFACE_UNKNOWN=0,
2173 HAL_IFACE_STA_MODE=1,
2174 HAL_IFACE_P2P_MODE=2,
2175 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002176} tHalIfacePersona;
2177
Jeff Johnson295189b2012-06-20 16:38:30 -07002178typedef PACKED_PRE struct PACKED_POST
2179{
2180 /* BSSID */
2181 tSirMacAddr bssId;
2182
Jeff Johnson295189b2012-06-20 16:38:30 -07002183 /* Self Mac Address */
2184 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002185
2186 /* BSS type */
2187 tSirBssType bssType;
2188
2189 /*Operational Mode: AP =0, STA = 1*/
2190 tANI_U8 operMode;
2191
2192 /*Network Type*/
2193 tSirNwType nwType;
2194
2195 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2196 tANI_U8 shortSlotTimeSupported;
2197
2198 /*Co-exist with 11a STA*/
2199 tANI_U8 llaCoexist;
2200
2201 /*Co-exist with 11b STA*/
2202 tANI_U8 llbCoexist;
2203
2204 /*Co-exist with 11g STA*/
2205 tANI_U8 llgCoexist;
2206
2207 /*Coexistence with 11n STA*/
2208 tANI_U8 ht20Coexist;
2209
2210 /*Non GF coexist flag*/
2211 tANI_U8 llnNonGFCoexist;
2212
2213 /*TXOP protection support*/
2214 tANI_U8 fLsigTXOPProtectionFullSupport;
2215
2216 /*RIFS mode*/
2217 tANI_U8 fRIFSMode;
2218
2219 /*Beacon Interval in TU*/
2220 tSirMacBeaconInterval beaconInterval;
2221
2222 /*DTIM period*/
2223 tANI_U8 dtimPeriod;
2224
2225 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2226 tANI_U8 txChannelWidthSet;
2227
2228 /*Operating channel*/
2229 tANI_U8 currentOperChannel;
2230
2231 /*Extension channel for channel bonding*/
2232 tANI_U8 currentExtChannel;
2233
2234 /*Reserved to align next field on a dword boundary*/
2235 tANI_U8 reserved;
2236
Jeff Johnsone7245742012-09-05 17:12:55 -07002237 /*SSID of the BSS*/
2238 tSirMacSSid ssId;
2239
2240 /*HAL should update the existing BSS entry, if this flag is set.
2241 UMAC will set this flag in case of reassoc, where we want to resue the
2242 the old BSSID and still return success 0 = Add, 1 = Update*/
2243 tANI_U8 action;
2244
2245 /* MAC Rate Set */
2246 tSirMacRateSet rateSet;
2247
2248 /*Enable/Disable HT capabilities of the BSS*/
2249 tANI_U8 htCapable;
2250
2251 // Enable/Disable OBSS protection
2252 tANI_U8 obssProtEnabled;
2253
2254 /*RMF enabled/disabled*/
2255 tANI_U8 rmfEnabled;
2256
2257 /*HT Operating Mode operating mode of the 802.11n STA*/
2258 tSirMacHTOperatingMode htOperMode;
2259
2260 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2261 tANI_U8 dualCTSProtection;
2262
2263 /* Probe Response Max retries */
2264 tANI_U8 ucMaxProbeRespRetryLimit;
2265
2266 /* To Enable Hidden ssid */
2267 tANI_U8 bHiddenSSIDEn;
2268
2269 /* To Enable Disable FW Proxy Probe Resp */
2270 tANI_U8 bProxyProbeRespEn;
2271
2272 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2273 EDCA params or might not desire to apply EDCA params during config BSS.
2274 0 implies Not Valid ; Non-Zero implies valid*/
2275 tANI_U8 edcaParamsValid;
2276
2277 /*EDCA Parameters for Best Effort Access Category*/
2278 tSirMacEdcaParamRecord acbe;
2279
2280 /*EDCA Parameters forBackground Access Category*/
2281 tSirMacEdcaParamRecord acbk;
2282
2283 /*EDCA Parameters for Video Access Category*/
2284 tSirMacEdcaParamRecord acvi;
2285
2286 /*EDCA Parameters for Voice Access Category*/
2287 tSirMacEdcaParamRecord acvo;
2288
2289#ifdef WLAN_FEATURE_VOWIFI_11R
2290 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2291 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2292#endif
2293
2294 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2295 tANI_U8 halPersona;
2296
2297 tANI_U8 bSpectrumMgtEnable;
2298
2299 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2300 tANI_S8 txMgmtPower;
2301 /*maxTxPower has max power to be used after applying the power constraint if any */
2302 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002303 /*Context of the station being added in HW
2304 Add a STA entry for "itself" -
2305 On AP - Add the AP itself in an "STA context"
2306 On STA - Add the AP to which this STA is joining in an "STA context" */
2307 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002308} tConfigBssParams, * tpConfigBssParams;
2309
2310
2311/*--------------------------------------------------------------------------
2312 * WLAN_HAL_CONFIG_BSS_REQ
2313 *--------------------------------------------------------------------------*/
2314typedef PACKED_PRE struct PACKED_POST
2315{
2316 /* BSSID */
2317 tSirMacAddr bssId;
2318
Jeff Johnsone7245742012-09-05 17:12:55 -07002319 /* Self Mac Address */
2320 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002321
2322 /* BSS type */
2323 tSirBssType bssType;
2324
2325 /*Operational Mode: AP =0, STA = 1*/
2326 tANI_U8 operMode;
2327
2328 /*Network Type*/
2329 tSirNwType nwType;
2330
2331 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2332 tANI_U8 shortSlotTimeSupported;
2333
2334 /*Co-exist with 11a STA*/
2335 tANI_U8 llaCoexist;
2336
2337 /*Co-exist with 11b STA*/
2338 tANI_U8 llbCoexist;
2339
2340 /*Co-exist with 11g STA*/
2341 tANI_U8 llgCoexist;
2342
2343 /*Coexistence with 11n STA*/
2344 tANI_U8 ht20Coexist;
2345
2346 /*Non GF coexist flag*/
2347 tANI_U8 llnNonGFCoexist;
2348
2349 /*TXOP protection support*/
2350 tANI_U8 fLsigTXOPProtectionFullSupport;
2351 /*RIFS mode*/
2352 tANI_U8 fRIFSMode;
2353
2354 /*Beacon Interval in TU*/
2355 tSirMacBeaconInterval beaconInterval;
2356
2357 /*DTIM period*/
2358 tANI_U8 dtimPeriod;
2359
2360 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2361 tANI_U8 txChannelWidthSet;
2362
2363 /*Operating channel*/
2364 tANI_U8 currentOperChannel;
2365
2366 /*Extension channel for channel bonding*/
2367 tANI_U8 currentExtChannel;
2368
2369 /*Reserved to align next field on a dword boundary*/
2370 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002371
2372 /*SSID of the BSS*/
2373 tSirMacSSid ssId;
2374
2375 /*HAL should update the existing BSS entry, if this flag is set.
2376 UMAC will set this flag in case of reassoc, where we want to resue the
2377 the old BSSID and still return success 0 = Add, 1 = Update*/
2378 tANI_U8 action;
2379
2380 /* MAC Rate Set */
2381 tSirMacRateSet rateSet;
2382
2383 /*Enable/Disable HT capabilities of the BSS*/
2384 tANI_U8 htCapable;
2385
2386 // Enable/Disable OBSS protection
2387 tANI_U8 obssProtEnabled;
2388
2389 /*RMF enabled/disabled*/
2390 tANI_U8 rmfEnabled;
2391
2392 /*HT Operating Mode operating mode of the 802.11n STA*/
2393 tSirMacHTOperatingMode htOperMode;
2394
2395 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2396 tANI_U8 dualCTSProtection;
2397
2398 /* Probe Response Max retries */
2399 tANI_U8 ucMaxProbeRespRetryLimit;
2400
2401 /* To Enable Hidden ssid */
2402 tANI_U8 bHiddenSSIDEn;
2403
2404 /* To Enable Disable FW Proxy Probe Resp */
2405 tANI_U8 bProxyProbeRespEn;
2406
Dino Mycle8afbac12014-07-04 22:06:17 +05302407 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2408 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002409 0 implies Not Valid ; Non-Zero implies valid*/
2410 tANI_U8 edcaParamsValid;
2411
2412 /*EDCA Parameters for Best Effort Access Category*/
2413 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302414
Jeff Johnson295189b2012-06-20 16:38:30 -07002415 /*EDCA Parameters forBackground Access Category*/
2416 tSirMacEdcaParamRecord acbk;
2417
2418 /*EDCA Parameters for Video Access Category*/
2419 tSirMacEdcaParamRecord acvi;
2420
2421 /*EDCA Parameters for Voice Access Category*/
2422 tSirMacEdcaParamRecord acvo;
2423
2424#ifdef WLAN_FEATURE_VOWIFI_11R
2425 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2426 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2427#endif
2428
Dino Mycle8afbac12014-07-04 22:06:17 +05302429 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002430 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302431
Jeff Johnson295189b2012-06-20 16:38:30 -07002432 tANI_U8 bSpectrumMgtEnable;
2433
2434 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2435 tANI_S8 txMgmtPower;
2436 /*maxTxPower has max power to be used after applying the power constraint if any */
2437 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002438 /*Context of the station being added in HW
2439 Add a STA entry for "itself" -
2440 On AP - Add the AP itself in an "STA context"
2441 On STA - Add the AP to which this STA is joining in an "STA context" */
2442 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302443
Jeff Johnsone7245742012-09-05 17:12:55 -07002444 tANI_U8 vhtCapable;
2445 tANI_U8 vhtTxChannelWidthSet;
2446} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002447
2448typedef PACKED_PRE struct PACKED_POST
2449{
2450 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002451 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002452 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002453 tConfigBssParams_V1 configBssParams_V1;
2454 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002455} tConfigBssReqMsg, *tpConfigBssReqMsg;
2456
2457/*---------------------------------------------------------------------------
2458 WLAN_HAL_CONFIG_BSS_RSP
2459---------------------------------------------------------------------------*/
2460
2461typedef PACKED_PRE struct PACKED_POST
2462{
2463 /* Success or Failure */
2464 tANI_U32 status;
2465
2466 /* BSS index allocated by HAL */
2467 tANI_U8 bssIdx;
2468
2469 /* DPU descriptor index for PTK */
2470 tANI_U8 dpuDescIndx;
2471
2472 /* PTK DPU signature */
2473 tANI_U8 ucastDpuSignature;
2474
2475 /* DPU descriptor index for GTK*/
2476 tANI_U8 bcastDpuDescIndx;
2477
2478 /* GTK DPU signature */
2479 tANI_U8 bcastDpuSignature;
2480
2481 /*DPU descriptor for IGTK*/
2482 tANI_U8 mgmtDpuDescIndx;
2483
2484 /* IGTK DPU signature */
2485 tANI_U8 mgmtDpuSignature;
2486
2487 /* Station Index for BSS entry*/
2488 tANI_U8 bssStaIdx;
2489
2490 /* Self station index for this BSS */
2491 tANI_U8 bssSelfStaIdx;
2492
2493 /* Bcast station for buffering bcast frames in AP role */
2494 tANI_U8 bssBcastStaIdx;
2495
2496 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2497 tSirMacAddr staMac;
2498
2499 /*HAL fills in the tx power used for mgmt frames in this field. */
2500 tANI_S8 txMgmtPower;
2501
2502} tConfigBssRspParams, * tpConfigBssRspParams;
2503
2504typedef PACKED_PRE struct PACKED_POST
2505{
2506 tHalMsgHeader header;
2507 tConfigBssRspParams configBssRspParams;
2508} tConfigBssRspMsg, *tpConfigBssRspMsg;
2509
2510/*---------------------------------------------------------------------------
2511 WLAN_HAL_DELETE_BSS_REQ
2512---------------------------------------------------------------------------*/
2513
2514typedef PACKED_PRE struct PACKED_POST
2515{
2516 /* BSS index to be deleted */
2517 tANI_U8 bssIdx;
2518
2519} tDeleteBssParams, *tpDeleteBssParams;
2520
2521typedef PACKED_PRE struct PACKED_POST
2522{
2523 tHalMsgHeader header;
2524 tDeleteBssParams deleteBssParams;
2525} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2526
2527/*---------------------------------------------------------------------------
2528 WLAN_HAL_DELETE_BSS_RSP
2529---------------------------------------------------------------------------*/
2530
2531typedef PACKED_PRE struct PACKED_POST
2532{
2533 /* Success or Failure */
2534 tANI_U32 status;
2535
2536 /* BSS index that has been deleted */
2537 tANI_U8 bssIdx;
2538
2539} tDeleteBssRspParams, *tpDeleteBssRspParams;
2540
2541typedef PACKED_PRE struct PACKED_POST
2542{
2543 tHalMsgHeader header;
2544 tDeleteBssRspParams deleteBssRspParams;
2545} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2546
2547/*---------------------------------------------------------------------------
2548 WLAN_HAL_JOIN_REQ
2549---------------------------------------------------------------------------*/
2550
2551typedef PACKED_PRE struct PACKED_POST
2552{
2553 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302554 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002555
2556 /*Indicates the channel to switch to.*/
2557 tANI_U8 ucChannel;
2558
2559 /* Self STA MAC */
2560 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302561
Jeff Johnson295189b2012-06-20 16:38:30 -07002562 /*Local power constraint*/
2563 tANI_U8 ucLocalPowerConstraint;
2564
2565 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002566 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002567
2568 /*link State*/
2569 tSirLinkState linkState;
2570
2571 /* Max TX power */
2572 tANI_S8 maxTxPower;
2573
2574} tHalJoinReqParams, *tpHalJoinReqParams;
2575
2576typedef PACKED_PRE struct PACKED_POST
2577{
2578 tHalMsgHeader header;
2579 tHalJoinReqParams joinReqParams;
2580} tHalJoinReqMsg, *tpHalJoinReqMsg;
2581
2582/*---------------------------------------------------------------------------
2583 WLAN_HAL_JOIN_RSP
2584---------------------------------------------------------------------------*/
2585
2586typedef PACKED_PRE struct PACKED_POST
2587{
2588 /*success or failure */
2589 tANI_U32 status;
2590
2591 /* HAL fills in the tx power used for mgmt frames in this field */
2592 tPowerdBm txMgmtPower;
2593
2594}tHalJoinRspParams, *tpHalJoinRspParams;
2595
2596typedef PACKED_PRE struct PACKED_POST
2597{
2598 tHalMsgHeader header;
2599 tHalJoinRspParams joinRspParams;
2600}tHalJoinRspMsg, *tpHalJoinRspMsg;
2601
2602/*---------------------------------------------------------------------------
2603 WLAN_HAL_POST_ASSOC_REQ
2604---------------------------------------------------------------------------*/
2605
2606typedef PACKED_PRE struct PACKED_POST
2607{
2608 tConfigStaParams configStaParams;
2609 tConfigBssParams configBssParams;
2610} tPostAssocReqParams, *tpPostAssocReqParams;
2611
2612typedef PACKED_PRE struct PACKED_POST
2613{
2614 tHalMsgHeader header;
2615 tPostAssocReqParams postAssocReqParams;
2616} tPostAssocReqMsg, *tpPostAssocReqMsg;
2617
2618/*---------------------------------------------------------------------------
2619 WLAN_HAL_POST_ASSOC_RSP
2620---------------------------------------------------------------------------*/
2621
2622typedef PACKED_PRE struct PACKED_POST
2623{
2624 tConfigStaRspParams configStaRspParams;
2625 tConfigBssRspParams configBssRspParams;
2626} tPostAssocRspParams, *tpPostAssocRspParams;
2627
2628typedef PACKED_PRE struct PACKED_POST
2629{
2630 tHalMsgHeader header;
2631 tPostAssocRspParams postAssocRspParams;
2632} tPostAssocRspMsg, *tpPostAssocRspMsg;
2633
2634/*---------------------------------------------------------------------------
2635 WLAN_HAL_SET_BSSKEY_REQ
2636---------------------------------------------------------------------------*/
2637
2638/*
2639 * This is used by PE to create a set of WEP keys for a given BSS.
2640 */
2641typedef PACKED_PRE struct PACKED_POST
2642{
2643 /*BSS Index of the BSS*/
2644 tANI_U8 bssIdx;
2645
2646 /*Encryption Type used with peer*/
2647 tAniEdType encType;
2648
2649 /*Number of keys*/
2650 tANI_U8 numKeys;
2651
2652 /*Array of keys.*/
2653 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302654
Jeff Johnson295189b2012-06-20 16:38:30 -07002655 /*Control for Replay Count, 1= Single TID based replay count on Tx
2656 0 = Per TID based replay count on TX */
2657 tANI_U8 singleTidRc;
2658} tSetBssKeyParams, *tpSetBssKeyParams;
2659
2660typedef PACKED_PRE struct PACKED_POST
2661{
2662 tHalMsgHeader header;
2663 tSetBssKeyParams setBssKeyParams;
2664} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2665
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002666/* tagged version of set bss key */
2667typedef PACKED_PRE struct PACKED_POST
2668{
2669 tSetBssKeyReqMsg Msg;
2670 uint32 Tag;
2671} tSetBssKeyReqMsgTagged;
2672
Jeff Johnson295189b2012-06-20 16:38:30 -07002673/*---------------------------------------------------------------------------
2674 WLAN_HAL_SET_BSSKEY_RSP
2675---------------------------------------------------------------------------*/
2676typedef PACKED_PRE struct PACKED_POST
2677{
2678 /*success or failure */
2679 tANI_U32 status;
2680
2681} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2682
2683typedef PACKED_PRE struct PACKED_POST
2684{
2685 tHalMsgHeader header;
2686 tSetBssKeyRspParams setBssKeyRspParams;
2687} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2688
2689/*---------------------------------------------------------------------------
2690 WLAN_HAL_SET_STAKEY_REQ,
2691---------------------------------------------------------------------------*/
2692
2693/*
2694 * This is used by PE to configure the key information on a given station.
2695 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2696 * a preconfigured key from a BSS the station assoicated with; otherwise
2697 * a new key descriptor is created based on the key field.
2698 */
2699
2700typedef PACKED_PRE struct PACKED_POST
2701{
2702 tHalMsgHeader header;
2703 tSetStaKeyParams setStaKeyParams;
2704} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2705
2706/*---------------------------------------------------------------------------
2707 WLAN_HAL_SET_STAKEY_RSP,
2708---------------------------------------------------------------------------*/
2709typedef PACKED_PRE struct PACKED_POST
2710{
2711 /*success or failure */
2712 tANI_U32 status;
2713
2714} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2715
2716typedef PACKED_PRE struct PACKED_POST
2717{
2718 tHalMsgHeader header;
2719 tSetStaKeyRspParams setStaKeyRspParams;
2720} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2721
2722/*---------------------------------------------------------------------------
2723 WLAN_HAL_RMV_BSSKEY_REQ,
2724---------------------------------------------------------------------------*/
2725/*
2726 * This is used by PE to remove keys for a given BSS.
2727 */
2728typedef PACKED_PRE struct PACKED_POST
2729
2730{
2731 /*BSS Index of the BSS*/
2732 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302733
Jeff Johnson295189b2012-06-20 16:38:30 -07002734 /*Encryption Type used with peer*/
2735 tAniEdType encType;
2736
2737 /*Key Id*/
2738 tANI_U8 keyId;
2739
2740 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2741 tAniWepType wepType;
2742
2743} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2744
2745typedef PACKED_PRE struct PACKED_POST
2746{
2747 tHalMsgHeader header;
2748 tRemoveBssKeyParams removeBssKeyParams;
2749} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2750
2751/*---------------------------------------------------------------------------
2752 WLAN_HAL_RMV_BSSKEY_RSP,
2753---------------------------------------------------------------------------*/
2754typedef PACKED_PRE struct PACKED_POST
2755{
2756 /*success or failure */
2757 tANI_U32 status;
2758
2759} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2760
2761typedef PACKED_PRE struct PACKED_POST
2762{
2763 tHalMsgHeader header;
2764 tRemoveBssKeyRspParams removeBssKeyRspParams;
2765} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2766
2767/*---------------------------------------------------------------------------
2768 WLAN_HAL_RMV_STAKEY_REQ,
2769---------------------------------------------------------------------------*/
2770/*
2771 * This is used by PE to Remove the key information on a given station.
2772 */
2773typedef PACKED_PRE struct PACKED_POST
2774{
2775 /*STA Index*/
2776 tANI_U16 staIdx;
2777
2778 /*Encryption Type used with peer*/
2779 tAniEdType encType;
2780
2781 /*Key Id*/
2782 tANI_U8 keyId;
2783
2784 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2785 the same key is used for both broadcast and unicast.*/
2786 tANI_BOOLEAN unicast;
2787
2788} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2789
2790typedef PACKED_PRE struct PACKED_POST
2791{
2792 tHalMsgHeader header;
2793 tRemoveStaKeyParams removeStaKeyParams;
2794} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2795
2796/*---------------------------------------------------------------------------
2797 WLAN_HAL_RMV_STAKEY_RSP,
2798---------------------------------------------------------------------------*/
2799typedef PACKED_PRE struct PACKED_POST
2800{
2801 /*success or failure */
2802 tANI_U32 status;
2803} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2804
2805typedef PACKED_PRE struct PACKED_POST
2806{
2807 tHalMsgHeader header;
2808 tRemoveStaKeyRspParams removeStaKeyRspParams;
2809} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2810
Jeff Johnsone7245742012-09-05 17:12:55 -07002811#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002812
Jeff Johnsone7245742012-09-05 17:12:55 -07002813#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002814#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002815#endif
2816
2817#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002818#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002819#endif
2820
2821/*-------------------------------------------------------------------------
2822WLAN_HAL_START_OEM_DATA_REQ
2823--------------------------------------------------------------------------*/
2824typedef PACKED_PRE struct PACKED_POST
2825{
2826 tANI_U32 status;
2827 tSirMacAddr selfMacAddr;
2828 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2829} tStartOemDataReqParams, *tpStartOemDataReqParams;
2830
2831typedef PACKED_PRE struct PACKED_POST
2832{
2833 tHalMsgHeader header;
2834 tStartOemDataReqParams startOemDataReqParams;
2835} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2836
2837/*-------------------------------------------------------------------------
2838WLAN_HAL_START_OEM_DATA_RSP
2839--------------------------------------------------------------------------*/
2840
2841typedef PACKED_PRE struct PACKED_POST
2842{
2843 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2844} tStartOemDataRspParams, *tpStartOemDataRspParams;
2845
2846typedef PACKED_PRE struct PACKED_POST
2847{
2848 tHalMsgHeader header;
2849 tStartOemDataRspParams startOemDataRspParams;
2850} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2851
2852#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002853
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002854/*---------------------------------------------------------------------------
2855WLAN_HAL_CH_SWITCH_V1_REQ
2856---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002857
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002858typedef PACKED_PRE struct PACKED_POST
2859{
2860 /* Channel number */
2861 tANI_U8 channelNumber;
2862
2863 /* Local power constraint */
2864 tANI_U8 localPowerConstraint;
2865
2866 /*Secondary channel offset */
2867 ePhyChanBondState secondaryChannelOffset;
2868
2869 //HAL fills in the tx power used for mgmt frames in this field.
2870 tPowerdBm txMgmtPower;
2871
2872 /* Max TX power */
2873 tPowerdBm maxTxPower;
2874
2875 /* Self STA MAC */
2876 tSirMacAddr selfStaMacAddr;
2877
2878 /*VO WIFI comment: BSSID needed to identify session. As the request has
2879 * power constraints, this should be applied only to that session
2880 * Since MTU timing and EDCA are sessionized, this struct needs to be
2881 * sessionized and bssid needs to be out of the VOWifi feature flag
2882 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002883 * mantain backward compatbility
2884 * by way of ignoring if using new host/old FW or old host/new FW since
2885 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002886 */
2887 tSirMacAddr bssId;
2888
2889 /* Source of Channel Switch */
2890 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002891
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002892} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2893
2894typedef PACKED_PRE struct PACKED_POST
2895{
2896 tHalMsgHeader header;
2897 tSwitchChannelParams_V1 switchChannelParams_V1;
2898} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2899
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002900/*---------------------------------------------------------------------------
2901WLAN_HAL_CH_SWITCH_V1_RSP
2902---------------------------------------------------------------------------*/
2903
2904typedef PACKED_PRE struct PACKED_POST
2905{
2906 /* Status */
2907 tANI_U32 status;
2908
2909 /* Channel number - same as in request*/
2910 tANI_U8 channelNumber;
2911
2912 /* HAL fills in the tx power used for mgmt frames in this field */
2913 tPowerdBm txMgmtPower;
2914
2915 /* BSSID needed to identify session - same as in request*/
2916 tSirMacAddr bssId;
2917
2918 /* Source of Channel Switch */
2919 eHalChanSwitchSource channelSwitchSrc;
2920
2921} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2922
2923typedef PACKED_PRE struct PACKED_POST
2924{
2925 tHalMsgHeader header;
2926 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2927} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002928
2929/*---------------------------------------------------------------------------
2930WLAN_HAL_CH_SWITCH_REQ
2931---------------------------------------------------------------------------*/
2932
2933typedef PACKED_PRE struct PACKED_POST
2934{
2935 /* Channel number */
2936 tANI_U8 channelNumber;
2937
2938 /* Local power constraint */
2939 tANI_U8 localPowerConstraint;
2940
2941 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002942 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002943
2944 //HAL fills in the tx power used for mgmt frames in this field.
2945 tPowerdBm txMgmtPower;
2946
2947 /* Max TX power */
2948 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302949
Jeff Johnson295189b2012-06-20 16:38:30 -07002950 /* Self STA MAC */
2951 tSirMacAddr selfStaMacAddr;
2952
2953 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2954 this should be applied only to that session*/
2955 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2956 * bssid needs to be out of the VOWifi feature flag */
2957 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2958 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2959 */
2960 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302961
Jeff Johnson295189b2012-06-20 16:38:30 -07002962}tSwitchChannelParams, *tpSwitchChannelParams;
2963
2964typedef PACKED_PRE struct PACKED_POST
2965{
2966 tHalMsgHeader header;
2967 tSwitchChannelParams switchChannelParams;
2968} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2969
2970/*---------------------------------------------------------------------------
2971WLAN_HAL_CH_SWITCH_RSP
2972---------------------------------------------------------------------------*/
2973
2974typedef PACKED_PRE struct PACKED_POST
2975{
2976 /* Status */
2977 tANI_U32 status;
2978
2979 /* Channel number - same as in request*/
2980 tANI_U8 channelNumber;
2981
2982 /* HAL fills in the tx power used for mgmt frames in this field */
2983 tPowerdBm txMgmtPower;
2984
2985 /* BSSID needed to identify session - same as in request*/
2986 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302987
Jeff Johnson295189b2012-06-20 16:38:30 -07002988}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2989
2990typedef PACKED_PRE struct PACKED_POST
2991{
2992 tHalMsgHeader header;
2993 tSwitchChannelRspParams switchChannelRspParams;
2994} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2995
2996/*---------------------------------------------------------------------------
2997WLAN_HAL_UPD_EDCA_PARAMS_REQ
2998---------------------------------------------------------------------------*/
2999
3000typedef PACKED_PRE struct PACKED_POST
3001{
3002 /*BSS Index*/
3003 tANI_U16 bssIdx;
3004
3005 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05303006 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07003007
3008 /* Background */
3009 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05303010
Jeff Johnson295189b2012-06-20 16:38:30 -07003011 /* Video */
3012 tSirMacEdcaParamRecord acvi;
3013
3014 /* Voice */
3015 tSirMacEdcaParamRecord acvo;
3016
3017} tEdcaParams, *tpEdcaParams;
3018
3019typedef PACKED_PRE struct PACKED_POST
3020{
3021 tHalMsgHeader header;
3022 tEdcaParams edcaParams;
3023} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
3024
3025/*---------------------------------------------------------------------------
3026WLAN_HAL_UPD_EDCA_PARAMS_RSP
3027---------------------------------------------------------------------------*/
3028typedef PACKED_PRE struct PACKED_POST
3029{
3030 /*success or failure */
3031 tANI_U32 status;
3032} tEdcaRspParams, *tpEdcaRspParams;
3033
3034typedef PACKED_PRE struct PACKED_POST
3035{
3036 tHalMsgHeader header;
3037 tEdcaRspParams edcaRspParams;
3038} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3039
3040
3041
3042/*---------------------------------------------------------------------------
3043 * WLAN_HAL_GET_STATS_REQ
3044 *--------------------------------------------------------------------------*/
3045typedef PACKED_PRE struct PACKED_POST
3046
3047{
3048 /* Index of STA to which the statistics */
3049 tANI_U16 staIdx;
3050
3051 /* Encryption mode */
3052 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303053
Jeff Johnson295189b2012-06-20 16:38:30 -07003054 /* status */
3055 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303056
Jeff Johnson295189b2012-06-20 16:38:30 -07003057 /* Statistics */
3058 tANI_U32 sendBlocks;
3059 tANI_U32 recvBlocks;
3060 tANI_U32 replays;
3061 tANI_U8 micErrorCnt;
3062 tANI_U32 protExclCnt;
3063 tANI_U16 formatErrCnt;
3064 tANI_U16 unDecryptableCnt;
3065 tANI_U32 decryptErrCnt;
3066 tANI_U32 decryptOkCnt;
3067} tDpuStatsParams, * tpDpuStatsParams;
3068
3069typedef PACKED_PRE struct PACKED_POST
3070{
3071 /* Valid STA Idx for per STA stats request */
3072 tANI_U32 staId;
3073
3074 /* Categories of stats requested as specified in eHalStatsMask*/
3075 tANI_U32 statsMask;
3076}tHalStatsReqParams, *tpHalStatsReqParams;
3077
3078typedef PACKED_PRE struct PACKED_POST
3079{
3080 tHalMsgHeader header;
3081 tHalStatsReqParams statsReqParams;
3082} tHalStatsReqMsg, *tpHalStatsReqMsg;
3083
3084/*---------------------------------------------------------------------------
3085 * WLAN_HAL_GET_STATS_RSP
3086 *--------------------------------------------------------------------------*/
3087
3088typedef PACKED_PRE struct PACKED_POST
3089{
3090 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3091 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3092 // station successfully transmitted after more than one retransmission attempt
3093
Dino Mycle8afbac12014-07-04 22:06:17 +05303094 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3095 //(with and without retries, including multi-cast, broadcast)
3096 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3097 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003098 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3099 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3100 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3101 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 +05303102 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3103 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 -07003104 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3105 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 +05303106 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3107 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003108 //to provide this.
3109}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3110
3111
3112// defines tx_rate_flags
3113typedef enum eTxRateInfo
3114{
3115 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3116 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3117 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3118 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003119 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3120 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3121 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3122 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3123 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3124 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3125} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003126
3127
3128typedef PACKED_PRE struct PACKED_POST
3129{
Dino Mycle8afbac12014-07-04 22:06:17 +05303130 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 -07003131 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303132 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 -07003133 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303134 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3135 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003136 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303137 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3138 //for eg: if it is 10.5dBm, the value would be 105
3139 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3140 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003141
Dino Mycle8afbac12014-07-04 22:06:17 +05303142 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3143 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003144 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303145 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3146 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003147}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3148
3149typedef PACKED_PRE struct PACKED_POST
3150{
Dino Mycle8afbac12014-07-04 22:06:17 +05303151 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3152 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003153 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303154 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 -07003155 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303156 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 -07003157 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303158 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 -07003159 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303160 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 -07003161 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303162 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 -07003163 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303164 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 -07003165 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303166 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 -07003167 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303168 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 -07003169 //decrypted
3170 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3171
3172}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303173
Jeff Johnson295189b2012-06-20 16:38:30 -07003174typedef PACKED_PRE struct PACKED_POST
3175{
3176 tAniGlobalSecurityStats ucStats;
3177 tAniGlobalSecurityStats mcbcStats;
3178}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3179
3180typedef PACKED_PRE struct PACKED_POST
3181{
Dino Mycle8afbac12014-07-04 22:06:17 +05303182 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3183 //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 -07003184 //address 1 field
3185 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 +05303186 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 -07003187 //primary channel
3188 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 +05303189 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 -07003190 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303191 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3192 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003193 //decoded correctly
3194}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3195
3196typedef PACKED_PRE struct PACKED_POST
3197{
Dino Mycle8afbac12014-07-04 22:06:17 +05303198 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 -07003199 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303200 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3201 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 -07003202 //is transmitted
3203}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3204
3205typedef PACKED_PRE struct PACKED_POST
3206{
3207 /* Success or Failure */
3208 tANI_U32 status;
3209
3210 /* STA Idx */
3211 tANI_U32 staId;
3212
3213 /* Categories of STATS being returned as per eHalStatsMask*/
3214 tANI_U32 statsMask;
3215
3216 /* message type is same as the request type */
3217 tANI_U16 msgType;
3218
3219 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303220 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003221
3222} tHalStatsRspParams, *tpHalStatsRspParams;
3223
3224
3225
3226typedef PACKED_PRE struct PACKED_POST
3227{
3228 tHalMsgHeader header;
3229 tHalStatsRspParams statsRspParams;
3230} tHalStatsRspMsg, *tpHalStatsRspMsg;
3231
Abhishek Singhbc310882015-05-22 15:17:02 +05303232 /*---------------------------------------------------------------------------
3233 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3234 *---------------------------------------------------------------------------*/
3235typedef PACKED_PRE struct PACKED_POST
3236{
3237 tANI_U32 rtsCtsValue;
3238}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3239
3240typedef PACKED_PRE struct PACKED_POST
3241{
3242 tHalMsgHeader header;
3243 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3244} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3245
Jeff Johnson295189b2012-06-20 16:38:30 -07003246/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303247 * WLAN_HAL_FW_STATS_REQ
3248 *---------------------------------------------------------------------------*/
3249 typedef PACKED_PRE struct PACKED_POST
3250{
3251 tANI_U32 type;
3252}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3253
3254typedef PACKED_PRE struct PACKED_POST
3255{
3256 tHalMsgHeader header;
3257 tHalfwStatsReqParams fwstatsReqParams;
3258} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3259
3260/*---------------------------------------------------------------------------
3261 * WLAN_HAL_FW_STATS_RSP
3262 *---------------------------------------------------------------------------*/
3263 typedef PACKED_PRE struct PACKED_POST
3264{
3265 tANI_U32 type;
3266 tANI_U32 length;
3267 tANI_U8 data[1];
3268
3269}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3270
3271typedef PACKED_PRE struct PACKED_POST
3272{
3273 tHalMsgHeader header;
3274 tHalfwStatsRspParams fwstatsRspParams;
3275} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3276
3277typedef enum
3278{
3279 FW_UBSP_STATS = 1,
3280} fwstatstype;
3281
3282
3283/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003284 * WLAN_HAL_SET_LINK_ST_REQ
3285 *--------------------------------------------------------------------------*/
3286typedef PACKED_PRE struct PACKED_POST
3287{
3288 tSirMacAddr bssid;
3289 tSirLinkState state;
3290 tSirMacAddr selfMacAddr;
3291} tLinkStateParams, *tpLinkStateParams;
3292
3293typedef PACKED_PRE struct PACKED_POST
3294{
3295 tHalMsgHeader header;
3296 tLinkStateParams linkStateParams;
3297} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3298
3299/*---------------------------------------------------------------------------
3300 * WLAN_HAL_SET_LINK_ST_RSP
3301 *--------------------------------------------------------------------------*/
3302
3303typedef PACKED_PRE struct PACKED_POST
3304{
3305 /*success or failure */
3306 tANI_U32 status;
3307} tLinkStateRspParams, *tpLinkStateRspParams;
3308
3309typedef PACKED_PRE struct PACKED_POST
3310{
3311 tHalMsgHeader header;
3312 tLinkStateRspParams linkStateRspParams;
3313} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3314
3315/*---------------------------------------------------------------------------
3316 * WLAN_HAL_ADD_TS_REQ
3317 *--------------------------------------------------------------------------*/
3318
3319/* TSPEC Params */
3320typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3321{
Jeff Johnson295189b2012-06-20 16:38:30 -07003322 tANI_U16 trafficType : 1;
3323 tANI_U16 tsid : 4;
3324 tANI_U16 direction : 2;
3325 tANI_U16 accessPolicy : 2;
3326 tANI_U16 aggregation : 1;
3327 tANI_U16 psb : 1;
3328 tANI_U16 userPrio : 3;
3329 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003330} __ani_attr_packed tSirMacTSInfoTfc;
3331
3332/* Flag to schedule the traffic type */
3333typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3334{
Jeff Johnson295189b2012-06-20 16:38:30 -07003335 tANI_U8 schedule : 1;
3336 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003337} __ani_attr_packed tSirMacTSInfoSch;
3338
3339/* Traffic and scheduling info */
3340typedef __ani_attr_pre_packed struct sSirMacTSInfo
3341{
3342 tSirMacTSInfoTfc traffic;
3343 tSirMacTSInfoSch schedule;
3344} __ani_attr_packed tSirMacTSInfo;
3345
3346/* Information elements */
3347typedef __ani_attr_pre_packed struct sSirMacTspecIE
3348{
3349 tANI_U8 type;
3350 tANI_U8 length;
3351 tSirMacTSInfo tsinfo;
3352 tANI_U16 nomMsduSz;
3353 tANI_U16 maxMsduSz;
3354 tANI_U32 minSvcInterval;
3355 tANI_U32 maxSvcInterval;
3356 tANI_U32 inactInterval;
3357 tANI_U32 suspendInterval;
3358 tANI_U32 svcStartTime;
3359 tANI_U32 minDataRate;
3360 tANI_U32 meanDataRate;
3361 tANI_U32 peakDataRate;
3362 tANI_U32 maxBurstSz;
3363 tANI_U32 delayBound;
3364 tANI_U32 minPhyRate;
3365 tANI_U16 surplusBw;
3366 tANI_U16 mediumTime;
3367}__ani_attr_packed tSirMacTspecIE;
3368
3369typedef PACKED_PRE struct PACKED_POST
3370{
3371 /* Station Index */
3372 tANI_U16 staIdx;
3373
3374 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3375 tANI_U16 tspecIdx;
3376
3377 /* To program TPE with required parameters */
3378 tSirMacTspecIE tspec;
3379
3380 /* U-APSD Flags: 1b per AC. Encoded as follows:
3381 b7 b6 b5 b4 b3 b2 b1 b0 =
3382 X X X X BE BK VI VO */
3383 tANI_U8 uAPSD;
3384
3385 /* These parameters are for all the access categories */
3386 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3387 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3388 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303389
Jeff Johnson295189b2012-06-20 16:38:30 -07003390} tAddTsParams, *tpAddTsParams;
3391
3392typedef PACKED_PRE struct PACKED_POST
3393{
3394 tHalMsgHeader header;
3395 tAddTsParams addTsParams;
3396} tAddTsReqMsg, *tpAddTsReqMsg;
3397
3398/*---------------------------------------------------------------------------
3399 * WLAN_HAL_ADD_TS_RSP
3400 *--------------------------------------------------------------------------*/
3401
3402typedef PACKED_PRE struct PACKED_POST
3403{
3404 /*success or failure */
3405 tANI_U32 status;
3406} tAddTsRspParams, *tpAddTsRspParams;
3407
3408typedef PACKED_PRE struct PACKED_POST
3409{
3410 tHalMsgHeader header;
3411 tAddTsRspParams addTsRspParams;
3412} tAddTsRspMsg, *tpAddTsRspMsg;
3413
3414
3415/*---------------------------------------------------------------------------
3416 * WLAN_HAL_DEL_TS_REQ
3417 *--------------------------------------------------------------------------*/
3418
3419typedef PACKED_PRE struct PACKED_POST
3420{
3421 /* Station Index */
3422 tANI_U16 staIdx;
3423
3424 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3425 tANI_U16 tspecIdx;
3426
3427 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303428 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003429
3430} tDelTsParams, *tpDelTsParams;
3431
3432typedef PACKED_PRE struct PACKED_POST
3433{
3434 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303435 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003436} tDelTsReqMsg, *tpDelTsReqMsg;
3437
3438/*---------------------------------------------------------------------------
3439 * WLAN_HAL_DEL_TS_RSP
3440 *--------------------------------------------------------------------------*/
3441
3442typedef PACKED_PRE struct PACKED_POST
3443{
3444 /*success or failure */
3445 tANI_U32 status;
3446} tDelTsRspParams, *tpDelTsRspParams;
3447
3448typedef PACKED_PRE struct PACKED_POST
3449{
3450 tHalMsgHeader header;
3451 tDelTsRspParams delTsRspParams;
3452} tDelTsRspMsg, *tpDelTsRspMsg;
3453
3454/* End of TSpec Parameters */
3455
3456/* Start of BLOCK ACK related Parameters */
3457
3458/*---------------------------------------------------------------------------
3459 * WLAN_HAL_ADD_BA_SESSION_REQ
3460 *--------------------------------------------------------------------------*/
3461
3462typedef PACKED_PRE struct PACKED_POST
3463{
3464 /* Station Index */
3465 tANI_U16 staIdx;
3466
3467 /* Peer MAC Address */
3468 tSirMacAddr peerMacAddr;
3469
3470 /* ADDBA Action Frame dialog token
3471 HAL will not interpret this object */
3472 tANI_U8 baDialogToken;
3473
3474 /* TID for which the BA is being setup
3475 This identifies the TC or TS of interest */
3476 tANI_U8 baTID;
3477
3478 /* 0 - Delayed BA (Not supported)
3479 1 - Immediate BA */
3480 tANI_U8 baPolicy;
3481
3482 /* Indicates the number of buffers for this TID (baTID)
3483 NOTE - This is the requested buffer size. When this
3484 is processed by HAL and subsequently by HDD, it is
3485 possible that HDD may change this buffer size. Any
3486 change in the buffer size should be noted by PE and
3487 advertized appropriately in the ADDBA response */
3488 tANI_U16 baBufferSize;
3489
3490 /* BA timeout in TU's 0 means no timeout will occur */
3491 tANI_U16 baTimeout;
3492
3493 /* b0..b3 - Fragment Number - Always set to 0
3494 b4..b15 - Starting Sequence Number of first MSDU
3495 for which this BA is setup */
3496 tANI_U16 baSSN;
3497
3498 /* ADDBA direction
3499 1 - Originator
3500 0 - Recipient */
3501 tANI_U8 baDirection;
3502} tAddBASessionParams, *tpAddBASessionParams;
3503
3504typedef PACKED_PRE struct PACKED_POST
3505{
3506 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303507 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003508}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3509
3510/*---------------------------------------------------------------------------
3511 * WLAN_HAL_ADD_BA_SESSION_RSP
3512 *--------------------------------------------------------------------------*/
3513
3514typedef PACKED_PRE struct PACKED_POST
3515{
3516 /*success or failure */
3517 tANI_U32 status;
3518
3519 /* Dialog token */
3520 tANI_U8 baDialogToken;
3521
3522 /* TID for which the BA session has been setup */
3523 tANI_U8 baTID;
3524
3525 /* BA Buffer Size allocated for the current BA session */
3526 tANI_U8 baBufferSize;
3527
3528 tANI_U8 baSessionID;
3529
3530 /* Reordering Window buffer */
3531 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303532
Jeff Johnson295189b2012-06-20 16:38:30 -07003533 /*Station Index to id the sta */
3534 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303535
Jeff Johnson295189b2012-06-20 16:38:30 -07003536 /* Starting Sequence Number */
3537 tANI_U16 SSN;
3538} tAddBASessionRspParams, *tpAddBASessionRspParams;
3539
3540typedef PACKED_PRE struct PACKED_POST
3541{
3542 tHalMsgHeader header;
3543 tAddBASessionRspParams addBASessionRspParams;
3544} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3545
3546/*---------------------------------------------------------------------------
3547 * WLAN_HAL_ADD_BA_REQ
3548 *--------------------------------------------------------------------------*/
3549
3550typedef PACKED_PRE struct PACKED_POST
3551{
3552 /* Session Id */
3553 tANI_U8 baSessionID;
3554
3555 /* Reorder Window Size */
3556 tANI_U8 winSize;
3557
3558#ifdef FEATURE_ON_CHIP_REORDERING
3559 tANI_BOOLEAN isReorderingDoneOnChip;
3560#endif
3561} tAddBAParams, *tpAddBAParams;
3562
3563typedef PACKED_PRE struct PACKED_POST
3564{
3565 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303566 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003567} tAddBAReqMsg, *tpAddBAReqMsg;
3568
3569
3570/*---------------------------------------------------------------------------
3571 * WLAN_HAL_ADD_BA_RSP
3572 *--------------------------------------------------------------------------*/
3573
3574typedef PACKED_PRE struct PACKED_POST
3575{
3576 /*success or failure */
3577 tANI_U32 status;
3578
3579 /* Dialog token */
3580 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303581
Jeff Johnson295189b2012-06-20 16:38:30 -07003582} tAddBARspParams, *tpAddBARspParams;
3583
3584typedef PACKED_PRE struct PACKED_POST
3585{
3586 tHalMsgHeader header;
3587 tAddBARspParams addBARspParams;
3588} tAddBARspMsg, *tpAddBARspMsg;
3589
3590
3591/*---------------------------------------------------------------------------
3592 * WLAN_HAL_TRIGGER_BA_REQ
3593 *--------------------------------------------------------------------------*/
3594
3595
3596typedef struct sAddBaInfo
3597{
3598 tANI_U16 fBaEnable : 1;
3599 tANI_U16 startingSeqNum: 12;
3600 tANI_U16 reserved : 3;
3601}tAddBaInfo, *tpAddBaInfo;
3602
3603typedef struct sTriggerBaRspCandidate
3604{
3605 tSirMacAddr staAddr;
3606 tAddBaInfo baInfo[STACFG_MAX_TC];
3607}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3608
3609typedef struct sTriggerBaCandidate
3610{
3611 tANI_U8 staIdx;
3612 tANI_U8 tidBitmap;
3613}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3614
3615typedef PACKED_PRE struct PACKED_POST
3616{
3617 /* Session Id */
3618 tANI_U8 baSessionID;
3619
Dino Mycle8afbac12014-07-04 22:06:17 +05303620 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003621 * Candidate List(tTriggerBaCandidate)
3622 */
3623 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303624
Jeff Johnson295189b2012-06-20 16:38:30 -07003625} tTriggerBAParams, *tpTriggerBAParams;
3626
3627typedef PACKED_PRE struct PACKED_POST
3628{
3629 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303630 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003631} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3632
3633
3634/*---------------------------------------------------------------------------
3635 * WLAN_HAL_TRIGGER_BA_RSP
3636 *--------------------------------------------------------------------------*/
3637
3638typedef PACKED_PRE struct PACKED_POST
3639{
Dino Mycle8afbac12014-07-04 22:06:17 +05303640
Jeff Johnson295189b2012-06-20 16:38:30 -07003641 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303642 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003643
3644 /* success or failure */
3645 tANI_U32 status;
3646
Dino Mycle8afbac12014-07-04 22:06:17 +05303647 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003648 * Rsp Candidate List(tTriggerRspBaCandidate)
3649 */
3650 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303651
Jeff Johnson295189b2012-06-20 16:38:30 -07003652
3653} tTriggerBARspParams, *tpTriggerBARspParams;
3654
3655typedef PACKED_PRE struct PACKED_POST
3656{
3657 tHalMsgHeader header;
3658 tTriggerBARspParams triggerBARspParams;
3659} tTriggerBARspMsg, *tpTriggerBARspMsg;
3660
3661/*---------------------------------------------------------------------------
3662 * WLAN_HAL_DEL_BA_REQ
3663 *--------------------------------------------------------------------------*/
3664
3665typedef PACKED_PRE struct PACKED_POST
3666{
3667 /* Station Index */
3668 tANI_U16 staIdx;
3669
3670 /* TID for which the BA session is being deleted */
3671 tANI_U8 baTID;
3672
3673 /* DELBA direction
3674 1 - Originator
3675 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303676 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003677} tDelBAParams, *tpDelBAParams;
3678
3679typedef PACKED_PRE struct PACKED_POST
3680{
3681 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303682 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003683} tDelBAReqMsg, *tpDelBAReqMsg;
3684
3685/*---------------------------------------------------------------------------
3686 * WLAN_HAL_DEL_BA_RSP
3687 *--------------------------------------------------------------------------*/
3688
3689typedef PACKED_PRE struct PACKED_POST
3690{
3691 /* success or failure */
3692 tANI_U32 status;
3693} tDelBARspParams, *tpDelBARspParams;
3694
3695typedef PACKED_PRE struct PACKED_POST
3696{
3697 tHalMsgHeader header;
3698 tDelBARspParams delBARspParams;
3699} tDelBARspMsg, *tpDelBARspMsg;
3700
3701
Jeff Johnson295189b2012-06-20 16:38:30 -07003702/*---------------------------------------------------------------------------
3703 * WLAN_HAL_TSM_STATS_REQ
3704 *--------------------------------------------------------------------------*/
3705typedef PACKED_PRE struct PACKED_POST
3706{
3707 /* Traffic Id */
3708 tANI_U8 tsmTID;
3709
3710 tSirMacAddr bssId;
3711} tTsmStatsParams, *tpTsmStatsParams;
3712
3713typedef PACKED_PRE struct PACKED_POST
3714{
3715 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303716 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003717} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3718
3719
3720/*---------------------------------------------------------------------------
3721 * WLAN_HAL_TSM_STATS_RSP
3722 *--------------------------------------------------------------------------*/
3723typedef PACKED_PRE struct PACKED_POST
3724{
3725 /*success or failure */
3726 tANI_U32 status;
3727
Dino Mycle8afbac12014-07-04 22:06:17 +05303728 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003729 tANI_U16 UplinkPktQueueDly;
3730
Dino Mycle8afbac12014-07-04 22:06:17 +05303731 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003732 tANI_U16 UplinkPktQueueDlyHist[4];
3733
Dino Mycle8afbac12014-07-04 22:06:17 +05303734 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003735 tANI_U32 UplinkPktTxDly;
3736
Dino Mycle8afbac12014-07-04 22:06:17 +05303737 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003738 tANI_U16 UplinkPktLoss;
3739
Dino Mycle8afbac12014-07-04 22:06:17 +05303740 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003741 tANI_U16 UplinkPktCount;
3742
Dino Mycle8afbac12014-07-04 22:06:17 +05303743 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003744 tANI_U8 RoamingCount;
3745
Dino Mycle8afbac12014-07-04 22:06:17 +05303746 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003747 tANI_U16 RoamingDly;
3748} tTsmStatsRspParams, *tpTsmStatsRspParams;
3749
3750typedef PACKED_PRE struct PACKED_POST
3751{
3752 tHalMsgHeader header;
3753 tTsmStatsRspParams tsmStatsRspParams;
3754} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3755
3756
Jeff Johnson295189b2012-06-20 16:38:30 -07003757/*---------------------------------------------------------------------------
3758 * WLAN_HAL_SET_KEYDONE_MSG
3759 *--------------------------------------------------------------------------*/
3760
3761typedef PACKED_PRE struct PACKED_POST
3762{
3763 /*bssid of the keys */
3764 tANI_U8 bssidx;
3765 tANI_U8 encType;
3766} tSetKeyDoneParams, *tpSetKeyDoneParams;
3767
3768typedef PACKED_PRE struct PACKED_POST
3769{
3770 tHalMsgHeader header;
3771 tSetKeyDoneParams setKeyDoneParams;
3772} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3773
3774/*---------------------------------------------------------------------------
3775 * WLAN_HAL_DOWNLOAD_NV_REQ
3776 *--------------------------------------------------------------------------*/
3777typedef PACKED_PRE struct PACKED_POST
3778{
3779 /* Fragment sequence number of the NV Image. Note that NV Image might not
3780 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303781 * can hence choose to chop the NV blob into multiple fragments starting with
3782 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003783 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3784 * concatenated together by HAL without any padding bytes in between.*/
3785 tANI_U16 fragNumber;
3786
3787 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303788 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003789 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3790 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3791 tANI_U16 isLastFragment;
3792
3793 /* NV Image size (number of bytes) */
3794 tANI_U32 nvImgBufferSize;
3795
3796 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3797 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3798} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3799
3800typedef PACKED_PRE struct PACKED_POST
3801{
3802 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3803 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3804 tHalMsgHeader header;
3805 tHalNvImgDownloadReqParams nvImageReqParams;
3806} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3807
3808/*---------------------------------------------------------------------------
3809 * WLAN_HAL_DOWNLOAD_NV_RSP
3810 *--------------------------------------------------------------------------*/
3811typedef PACKED_PRE struct PACKED_POST
3812{
3813 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3814 * after each fragment */
3815 tANI_U32 status;
3816} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3817
3818typedef PACKED_PRE struct PACKED_POST
3819{
3820 tHalMsgHeader header;
3821 tHalNvImgDownloadRspParams nvImageRspParams;
3822} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3823
3824/*---------------------------------------------------------------------------
3825 * WLAN_HAL_STORE_NV_IND
3826 *--------------------------------------------------------------------------*/
3827typedef PACKED_PRE struct PACKED_POST
3828{
3829 /* NV Item */
3830 eNvTable tableID;
3831
3832 /* Size of NV Blob */
3833 tANI_U32 nvBlobSize;
3834
Dino Mycle8afbac12014-07-04 22:06:17 +05303835 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003836 * NV blob i.e. uint8[nvBlobSize] */
3837} tHalNvStoreParams, *tpHalNvStoreParams;
3838
3839typedef PACKED_PRE struct PACKED_POST
3840{
3841 /* Note: The length specified in tHalNvStoreInd messages should be
3842 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3843 tHalMsgHeader header;
3844 tHalNvStoreParams nvStoreParams;
3845} tHalNvStoreInd, *tpHalNvStoreInd;
3846
3847/* End of Block Ack Related Parameters */
3848
3849/*---------------------------------------------------------------------------
3850 * WLAN_HAL_MIC_FAILURE_IND
3851 *--------------------------------------------------------------------------*/
3852
3853#define SIR_CIPHER_SEQ_CTR_SIZE 6
3854
3855typedef PACKED_PRE struct PACKED_POST
3856{
Dino Mycle8afbac12014-07-04 22:06:17 +05303857 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003858 tSirMacAddr taMacAddr; //transmitter address
3859 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303860 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003861 tANI_U8 IV1; // first byte of IV
3862 tANI_U8 keyId; // second byte of IV
3863 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3864 tSirMacAddr rxMacAddr; // receive address
3865} tSirMicFailureInfo, *tpSirMicFailureInfo;
3866
3867/* Definition for MIC failure indication
3868 MAC reports this each time a MIC failure occures on Rx TKIP packet
3869 */
3870typedef PACKED_PRE struct PACKED_POST
3871{
3872 tSirMacAddr bssId; // BSSID
3873 tSirMicFailureInfo info;
3874} tSirMicFailureInd, *tpSirMicFailureInd;
3875
3876typedef PACKED_PRE struct PACKED_POST
3877{
3878 tHalMsgHeader header;
3879 tSirMicFailureInd micFailureInd;
3880} tMicFailureIndMsg, *tpMicFailureIndMsg;
3881
Mohit Khanna4a70d262012-09-11 16:30:12 -07003882typedef PACKED_PRE struct PACKED_POST
3883{
3884 tANI_U16 opMode;
3885 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303886}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003887
3888typedef PACKED_PRE struct PACKED_POST
3889{
3890 tHalMsgHeader header;
3891 tUpdateVHTOpMode updateVhtOpMode;
3892} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3893
3894typedef PACKED_PRE struct PACKED_POST
3895{
3896 tANI_U32 status;
3897} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3898
3899typedef PACKED_PRE struct PACKED_POST
3900{
3901 tHalMsgHeader header;
3902 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3903} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3904
Jeff Johnson295189b2012-06-20 16:38:30 -07003905/*---------------------------------------------------------------------------
3906 * WLAN_HAL_UPDATE_BEACON_REQ
3907 *--------------------------------------------------------------------------*/
3908typedef PACKED_PRE struct PACKED_POST
3909{
3910
3911 tANI_U8 bssIdx;
3912
3913 //shortPreamble mode. HAL should update all the STA rates when it
3914 //receives this message
3915 tANI_U8 fShortPreamble;
3916 //short Slot time.
3917 tANI_U8 fShortSlotTime;
3918 //Beacon Interval
3919 tANI_U16 beaconInterval;
3920 //Protection related
3921 tANI_U8 llaCoexist;
3922 tANI_U8 llbCoexist;
3923 tANI_U8 llgCoexist;
3924 tANI_U8 ht20MhzCoexist;
3925 tANI_U8 llnNonGFCoexist;
3926 tANI_U8 fLsigTXOPProtectionFullSupport;
3927 tANI_U8 fRIFSMode;
3928
3929 tANI_U16 paramChangeBitmap;
3930}tUpdateBeaconParams, *tpUpdateBeaconParams;
3931
3932
3933typedef PACKED_PRE struct PACKED_POST
3934{
3935 tHalMsgHeader header;
3936 tUpdateBeaconParams updateBeaconParam;
3937} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3938
3939/*---------------------------------------------------------------------------
3940 * WLAN_HAL_UPDATE_BEACON_RSP
3941 *--------------------------------------------------------------------------*/
3942typedef PACKED_PRE struct PACKED_POST
3943{
3944 tANI_U32 status;
3945} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3946
3947typedef PACKED_PRE struct PACKED_POST
3948{
3949 tHalMsgHeader header;
3950 tUpdateBeaconRspParams updateBeaconRspParam;
3951} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3952
3953/*---------------------------------------------------------------------------
3954 * WLAN_HAL_SEND_BEACON_REQ
3955 *--------------------------------------------------------------------------*/
3956typedef PACKED_PRE struct PACKED_POST
3957{
3958 tANI_U32 beaconLength; //length of the template.
3959 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3960 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003961 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003962 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3963}tSendBeaconParams, *tpSendBeaconParams;
3964
3965
3966typedef PACKED_PRE struct PACKED_POST
3967{
3968 tHalMsgHeader header;
3969 tSendBeaconParams sendBeaconParam;
3970}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3971
3972/*---------------------------------------------------------------------------
3973 * WLAN_HAL_SEND_BEACON_RSP
3974 *--------------------------------------------------------------------------*/
3975typedef PACKED_PRE struct PACKED_POST
3976{
3977 tANI_U32 status;
3978} tSendBeaconRspParams, *tpSendBeaconRspParams;
3979
3980typedef PACKED_PRE struct PACKED_POST
3981{
3982 tHalMsgHeader header;
3983 tSendBeaconRspParams sendBeaconRspParam;
3984} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3985
3986#ifdef FEATURE_5GHZ_BAND
3987
3988/*---------------------------------------------------------------------------
3989 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3990 *--------------------------------------------------------------------------*/
3991typedef PACKED_PRE struct PACKED_POST
3992{
3993 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303994 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003995}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3996
3997
3998typedef PACKED_PRE struct PACKED_POST
3999{
4000 /* Link Parameters */
4001 tSirEnableRadarInfoType EnableRadarInfo;
4002}tEnableRadarReqParams, *tpEnableRadarReqParams;
4003
4004typedef PACKED_PRE struct PACKED_POST
4005{
4006 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304007 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004008}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
4009
4010/*---------------------------------------------------------------------------
4011 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
4012 *--------------------------------------------------------------------------*/
4013
4014typedef PACKED_PRE struct PACKED_POST
4015{
4016 /* Link Parameters */
4017 tSirMacAddr BSSID;
4018 /* success or failure */
4019 tANI_U32 status;
4020}tEnableRadarRspParams, *tpEnableRadarRspParams;
4021
4022typedef PACKED_PRE struct PACKED_POST
4023{
4024 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304025 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004026}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
4027
4028/*---------------------------------------------------------------------------
4029 *WLAN_HAL_RADAR_DETECT_INTR_IND
4030 *--------------------------------------------------------------------------*/
4031
4032typedef PACKED_PRE struct PACKED_POST
4033{
4034 tANI_U8 radarDetChannel;
4035}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4036
4037typedef PACKED_PRE struct PACKED_POST
4038{
4039 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304040 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004041}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4042
4043/*---------------------------------------------------------------------------
4044 *WLAN_HAL_RADAR_DETECT_IND
4045 *-------------------------------------------------------------------------*/
4046typedef PACKED_PRE struct PACKED_POST
4047{
4048 /*channel number in which the RADAR detected*/
4049 tANI_U8 channelNumber;
4050
4051 /*RADAR pulse width*/
4052 tANI_U16 radarPulseWidth; // in usecond
4053
4054 /*Number of RADAR pulses */
4055 tANI_U16 numRadarPulse;
4056}tRadarDetectIndParams,*tpRadarDetectIndParams;
4057
4058typedef PACKED_PRE struct PACKED_POST
4059{
4060 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304061 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004062}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4063
4064
4065/*---------------------------------------------------------------------------
4066 *WLAN_HAL_GET_TPC_REPORT_REQ
4067 *-------------------------------------------------------------------------*/
4068typedef PACKED_PRE struct PACKED_POST
4069{
4070 tSirMacAddr sta;
4071 tANI_U8 dialogToken;
4072 tANI_U8 txpower;
4073}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4074
4075
4076typedef PACKED_PRE struct PACKED_POST
4077{
4078 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304079 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004080}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4081
4082/*---------------------------------------------------------------------------
4083 * WLAN_HAL_GET_TPC_REPORT_RSP
4084 *--------------------------------------------------------------------------*/
4085
4086typedef PACKED_PRE struct PACKED_POST
4087{
4088 /* success or failure */
4089 tANI_U32 status;
4090}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4091
4092typedef PACKED_PRE struct PACKED_POST
4093{
4094 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304095 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004096}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4097
4098#endif
4099
Jeff Johnson295189b2012-06-20 16:38:30 -07004100/*---------------------------------------------------------------------------
4101 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4102 *-------------------------------------------------------------------------*/
4103typedef PACKED_PRE struct PACKED_POST
4104{
4105 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4106 tANI_U32 probeRespTemplateLen;
4107 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4108 tSirMacAddr bssId;
4109
4110}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4111
4112typedef PACKED_PRE struct PACKED_POST
4113{
4114 tHalMsgHeader header;
4115 tSendProbeRespReqParams sendProbeRespReqParams ;
4116}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4117
4118/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304119 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004120 *--------------------------------------------------------------------------*/
4121
4122typedef PACKED_PRE struct PACKED_POST
4123{
4124 /* success or failure */
4125 tANI_U32 status;
4126}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4127
4128typedef PACKED_PRE struct PACKED_POST
4129{
4130 tHalMsgHeader header;
4131 tSendProbeRespRspParams sendProbeRespRspParams;
4132}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4133
4134
4135/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304136 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004137 *--------------------------------------------------------------------------*/
4138
4139typedef PACKED_PRE struct PACKED_POST
4140{
4141 /* success or failure */
4142 tANI_U32 status;
4143}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4144
4145typedef PACKED_PRE struct PACKED_POST
4146{
4147 tHalMsgHeader header;
4148 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4149}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4150
4151/*---------------------------------------------------------------------------
4152 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4153 *--------------------------------------------------------------------------*/
4154
4155typedef PACKED_PRE struct PACKED_POST
4156{
4157 tANI_U16 assocId;
4158 tANI_U16 staId;
4159 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4160 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004161 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304162 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004163
4164}tDeleteStaContextParams, *tpDeleteStaContextParams;
4165
4166
4167typedef PACKED_PRE struct PACKED_POST
4168{
4169 tHalMsgHeader header;
4170 tDeleteStaContextParams deleteStaContextParams;
4171}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4172
Anand Kumar012623a2013-01-11 17:00:00 -08004173typedef PACKED_PRE struct PACKED_POST
4174{
4175 tHalMsgHeader header;
4176 tANI_U8 assocId;
4177 tANI_U8 staIdx;
4178 tANI_U8 bssIdx;
4179 tANI_U8 uReasonCode;
4180 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004181#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4182 tANI_U8 staAddr[6];
4183 tANI_U8 bssId[6];
4184#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004185} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004186
4187/*---------------------------------------------------------------------------
4188 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4189 *--------------------------------------------------------------------------*/
4190
4191typedef PACKED_PRE struct PACKED_POST
4192{
4193 tBtAmpEventType btAmpEventType;
4194
4195}tBtAmpEventParams, *tpBtAmpEventParams;
4196
4197
4198
4199typedef PACKED_PRE struct PACKED_POST
4200{
4201 tHalMsgHeader header;
4202 tBtAmpEventParams btAmpEventParams;
4203}tBtAmpEventMsg, *tpBtAmpEventMsg;
4204
4205/*---------------------------------------------------------------------------
4206*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4207*--------------------------------------------------------------------------*/
4208
4209typedef PACKED_PRE struct PACKED_POST
4210{
4211 /* success or failure */
4212 tANI_U32 status;
4213}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4214
4215typedef PACKED_PRE struct PACKED_POST
4216{
4217 tHalMsgHeader header;
4218 tBtAmpEventRspParams btAmpEventRspParams;
4219}tBtAmpEventRsp, *tpBtAmpEventRsp;
4220
4221
4222/*---------------------------------------------------------------------------
4223 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4224 *--------------------------------------------------------------------------*/
4225
4226typedef PACKED_PRE struct PACKED_POST
4227{
4228 // Station Index. originates from HAL
4229 tANI_U8 ucSTAId;
4230
4231 // TID for which the transmit queue is being flushed
4232 tANI_U8 ucTid;
4233
4234}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4235
4236
4237typedef PACKED_PRE struct PACKED_POST
4238{
4239 tHalMsgHeader header;
4240 tTlHalFlushAcParams tlHalFlushAcParam;
4241}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4242
4243/*---------------------------------------------------------------------------
4244*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4245*--------------------------------------------------------------------------*/
4246
4247typedef PACKED_PRE struct PACKED_POST
4248{
4249 // Station Index. originates from HAL
4250 tANI_U8 ucSTAId;
4251
4252 // TID for which the transmit queue is being flushed
4253 tANI_U8 ucTid;
4254
4255 /* success or failure */
4256 tANI_U32 status;
4257}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4258
4259typedef PACKED_PRE struct PACKED_POST
4260{
4261 tHalMsgHeader header;
4262 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4263}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4264
4265/*---------------------------------------------------------------------------
4266 * WLAN_HAL_ENTER_IMPS_REQ
4267 *--------------------------------------------------------------------------*/
4268typedef PACKED_PRE struct PACKED_POST
4269{
4270 tHalMsgHeader header;
4271} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4272
4273/*---------------------------------------------------------------------------
4274 * WLAN_HAL_EXIT_IMPS_REQ
4275 *--------------------------------------------------------------------------*/
4276typedef PACKED_PRE struct PACKED_POST
4277{
4278 tHalMsgHeader header;
4279} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4280
4281/*---------------------------------------------------------------------------
4282 * WLAN_HAL_ENTER_BMPS_REQ
4283 *--------------------------------------------------------------------------*/
4284
4285typedef PACKED_PRE struct PACKED_POST
4286{
4287 tANI_U8 bssIdx;
4288 //TBTT value derived from the last beacon
4289#ifndef BUILD_QWPTTSTATIC
4290 tANI_U64 tbtt;
4291#endif
4292 tANI_U8 dtimCount;
4293 //DTIM period given to HAL during association may not be valid,
4294 //if association is based on ProbeRsp instead of beacon.
4295 tANI_U8 dtimPeriod;
4296
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004297 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004298 tANI_U32 rssiFilterPeriod;
4299 tANI_U32 numBeaconPerRssiAverage;
4300 tANI_U8 bRssiFilterEnable;
4301
4302} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4303
4304
4305typedef PACKED_PRE struct PACKED_POST
4306{
4307 tHalMsgHeader header;
4308 tHalEnterBmpsReqParams enterBmpsReq;
4309} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4310
4311/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304312 * WLAN_HAL_PRINT_REG_INFO_IND
4313 *--------------------------------------------------------------------------*/
4314typedef PACKED_PRE struct PACKED_POST
4315{
4316 uint32 regAddr;
4317 uint32 regValue;
4318} tHalRegDebugInfo, *tpRegDebugInfo;
4319
4320typedef PACKED_PRE struct PACKED_POST
4321{
4322 uint32 regCount;
4323 uint32 scenario;
4324 uint32 reasonCode;
4325} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4326
4327typedef PACKED_PRE struct PACKED_POST
4328{
4329 tHalMsgHeader header;
4330 tHalRegDebugInfoParams regParams;
4331} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4332
4333/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004334 * WLAN_HAL_EXIT_BMPS_REQ
4335 *--------------------------------------------------------------------------*/
4336typedef PACKED_PRE struct PACKED_POST
4337{
4338 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004339 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004340} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4341
4342typedef PACKED_PRE struct PACKED_POST
4343{
4344 tHalMsgHeader header;
4345 tHalExitBmpsReqParams exitBmpsReqParams;
4346} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4347
4348/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004349 * WLAN_HAL_MISSED_BEACON_IND
4350 *--------------------------------------------------------------------------*/
4351typedef PACKED_PRE struct PACKED_POST
4352{
4353 tANI_U8 bssIdx;
4354} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4355
4356typedef PACKED_PRE struct PACKED_POST
4357{
4358 tHalMsgHeader header;
4359 tHalMissedBeaconIndParams missedBeaconIndParams;
4360} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4361
4362/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004363 * WLAN_HAL_ADD_BCN_FILTER_REQ
4364 *--------------------------------------------------------------------------*/
4365/* Beacon Filtering data structures */
4366typedef PACKED_PRE struct PACKED_POST
4367{
4368 tANI_U8 offset;
4369 tANI_U8 value;
4370 tANI_U8 bitMask;
4371 tANI_U8 ref;
4372} tEidByteInfo, *tpEidByteInfo;
4373
Dino Mycle8afbac12014-07-04 22:06:17 +05304374typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004375{
4376 tANI_U16 capabilityInfo;
4377 tANI_U16 capabilityMask;
4378 tANI_U16 beaconInterval;
4379 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004380 tANI_U8 bssIdx;
4381 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004382} tBeaconFilterMsg, *tpBeaconFilterMsg;
4383
4384/* The above structure would be followed by multiple of below mentioned structure */
4385typedef PACKED_PRE struct PACKED_POST
4386{
4387 tANI_U8 elementId;
4388 tANI_U8 checkIePresence;
4389 tEidByteInfo byte;
4390} tBeaconFilterIe, *tpBeaconFilterIe;
4391
4392typedef PACKED_PRE struct PACKED_POST
4393{
4394 tHalMsgHeader header;
4395 tBeaconFilterMsg addBcnFilterParams;
4396} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4397
4398/*---------------------------------------------------------------------------
4399 * WLAN_HAL_REM_BCN_FILTER_REQ
4400 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304401typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004402{
4403 tANI_U8 ucIeCount;
4404 tANI_U8 ucRemIeId[1];
4405} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4406
4407typedef PACKED_PRE struct PACKED_POST
4408{
4409 tHalMsgHeader header;
4410 tRemBeaconFilterMsg remBcnFilterParams;
4411} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4412
4413/*---------------------------------------------------------------------------
4414 * WLAN_HAL_HOST_OFFLOAD_REQ
4415 *--------------------------------------------------------------------------*/
4416#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4417#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4418#define HAL_IPV6_NS_OFFLOAD 2
4419#define HAL_IPV6_ADDR_LEN 16
4420#define HAL_MAC_ADDR_LEN 6
4421#define HAL_OFFLOAD_DISABLE 0
4422#define HAL_OFFLOAD_ENABLE 1
4423#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004424#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004425#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004426#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004427
4428typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4429{
4430 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4431 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4432 //Only support 2 possible Network Advertisement IPv6 address
4433 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4434 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4435 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4436 tANI_U8 srcIPv6AddrValid : 1;
4437 tANI_U8 targetIPv6Addr1Valid : 1;
4438 tANI_U8 targetIPv6Addr2Valid : 1;
4439 tANI_U8 reserved1 : 5;
4440 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004441 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004442 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004443} tHalNSOffloadParams;
4444
4445typedef PACKED_PRE struct PACKED_POST
4446{
4447 tANI_U8 offloadType;
4448 tANI_U8 enableOrDisable;
4449 PACKED_PRE union PACKED_POST
4450 {
4451 tANI_U8 hostIpv4Addr [4];
4452 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4453 } params;
4454} tHalHostOffloadReq, *tpHalHostOffloadReq;
4455
4456typedef PACKED_PRE struct PACKED_POST
4457{
4458 tHalMsgHeader header;
4459 tHalHostOffloadReq hostOffloadParams;
4460 tHalNSOffloadParams nsOffloadParams;
4461} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4462
Leo Chang397deb72013-08-22 11:33:16 -07004463
4464#ifdef FEATURE_WLAN_LPHB
4465typedef enum
4466{
4467 WIFI_HB_SET_ENABLE = 0x0001,
4468 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4469 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4470 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4471 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4472 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4473}tLowPowerHeartBeatCmdType ;
4474
4475#define MAX_FLITER_SIZE 64
4476/*---------------------------------------------------------------------------
4477 *FEATURE_WLAN_LPHB REQ
4478 *--------------------------------------------------------------------------*/
4479typedef PACKED_PRE struct PACKED_POST
4480{
4481 uint32 hostIpv4Addr;
4482 uint32 destIpv4Addr;
4483 uint16 hostPort;
4484 uint16 destPort;
4485 uint16 timeOutSec; // in seconds
4486 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004487 uint16 timePeriodSec; // in seconds
4488 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004489} tlowPowerHeartBeatParamsTcpStruct;
4490
4491typedef PACKED_PRE struct PACKED_POST
4492{
4493 uint32 hostIpv4Addr;
4494 uint32 destIpv4Addr;
4495 uint16 hostPort;
4496 uint16 destPort;
4497 uint16 timePeriodSec;// in seconds
4498 uint16 timeOutSec; // in seconds
4499 tSirMacAddr gatewayMacAddr;
4500} tlowPowerHeartBeatParamsUdpStruct;
4501
4502typedef PACKED_PRE struct PACKED_POST
4503{
4504 uint32 offset;
4505 uint32 filterLength;
4506 uint8 filter[MAX_FLITER_SIZE];
4507} tlowPowerHeartBeatFilterStruct;
4508
4509typedef PACKED_PRE struct PACKED_POST
4510{
4511 uint8 heartBeatEnable;
4512 uint8 heartBeatType; //TCP or UDP
4513} tlowPowerHeartBeatEnableStruct;
4514
4515typedef PACKED_PRE struct PACKED_POST
4516{
4517 uint8 dummy;
4518} tlowPowerHeartBeatNetworkInfoStruct;
4519
4520
4521typedef PACKED_PRE struct PACKED_POST
4522{
4523 uint8 sessionIdx;
4524 uint16 lowPowerHeartBeatCmdType;
4525 PACKED_PRE union PACKED_PRO
4526 {
4527 tlowPowerHeartBeatEnableStruct control;
4528 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4529 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4530 tlowPowerHeartBeatParamsUdpStruct udpParams;
4531 tlowPowerHeartBeatNetworkInfoStruct info;
4532 }options;
4533} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4534
4535
4536typedef PACKED_PRE struct PACKED_POST
4537{
4538 tHalMsgHeader header;
4539 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4540} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4541
4542/*---------------------------------------------------------------------------
4543 * FEATURE_WLAN_LPHB RSP
4544 *--------------------------------------------------------------------------*/
4545
4546typedef PACKED_PRE struct PACKED_POST
4547{
4548 /* success or failure */
4549 uint8 sessionIdx;
4550 uint32 status;
4551 uint16 lowPowerHeartBeatCmdType;
4552}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4553
4554typedef PACKED_PRE struct PACKED_POST
4555{
4556 tHalMsgHeader header;
4557 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4558}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4559
4560
4561/*---------------------------------------------------------------------------
4562 * FEATURE_WLAN_LPHB IND
4563 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004564#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4565#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4566
4567#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4568#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004569#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004570
Kumar Anandea78e792013-10-10 23:47:01 -07004571
4572#define WIFI_LPHB_PROTO_UDP 0x01
4573#define WIFI_LPHB_PROTO_TCP 0x02
4574
Leo Chang397deb72013-08-22 11:33:16 -07004575typedef PACKED_PRE struct PACKED_POST
4576{
4577 uint8 bssIdx;
4578 uint8 sessionIdx;
4579 uint8 protocolType; /*TCP or UDP*/
4580 uint8 eventReason;
4581
4582}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4583
4584typedef PACKED_PRE struct PACKED_POST
4585{
4586 tHalMsgHeader header;
4587 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4588}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4589
4590#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004591
4592#ifdef FEATURE_WLAN_BATCH_SCAN
4593
4594/*---------------------------------------------------------------------------
4595 * WLAN_HAL_BATCHSCAN_SET_REQ
4596 *--------------------------------------------------------------------------*/
4597typedef PACKED_PRE struct PACKED_POST
4598{
4599 /* Scan Frerquency - default to 30Sec*/
4600 tANI_U32 scanInterval;
4601 tANI_U32 numScan2Batch;
4602 tANI_U32 bestNetworks;
4603 tANI_U8 rfBand;
4604 tANI_U8 rtt;
4605} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4606
4607typedef PACKED_PRE struct PACKED_POST
4608{
4609 tHalMsgHeader header;
4610 tHalBatchScanSetParams batchScanParams;
4611} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4612
4613/*---------------------------------------------------------------------------
4614 * WLAN_HAL_BATCHSCAN_SET_RSP
4615 *--------------------------------------------------------------------------*/
4616typedef PACKED_PRE struct PACKED_POST
4617{
4618 tANI_U32 supportedMscan;
4619} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4620
4621typedef PACKED_PRE struct PACKED_POST
4622{
4623 tHalMsgHeader header;
4624 tHalBatchScanSetRspParam setBatchScanRspParam;
4625} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4626
4627/*---------------------------------------------------------------------------
4628* WLAN_HAL_BATCHSCAN_STOP_IND
4629*--------------------------------------------------------------------------*/
4630typedef PACKED_PRE struct PACKED_POST
4631{
4632 tANI_U32 param;
4633} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4634
4635typedef PACKED_PRE struct PACKED_POST
4636{
4637 tHalMsgHeader header;
4638 tHalBatchScanStopIndParam param;
4639} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4640
4641/*---------------------------------------------------------------------------
4642* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4643*--------------------------------------------------------------------------*/
4644typedef PACKED_PRE struct PACKED_POST
4645{
4646 tANI_U32 param;
4647} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4648
4649typedef PACKED_PRE struct PACKED_POST
4650{
4651 tHalMsgHeader header;
4652 tHalBatchScanTriggerResultParam param;
4653} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4654
4655/*---------------------------------------------------------------------------
4656 * WLAN_HAL_BATCHSCAN_GET_RSP
4657 *--------------------------------------------------------------------------*/
4658typedef PACKED_PRE struct PACKED_POST
4659{
4660 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004661 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004662 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304663 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004664 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4665 tANI_U32 timestamp;
4666} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4667
4668typedef PACKED_PRE struct PACKED_POST
4669{
4670 tANI_U32 scanId; /* Scan List ID. */
4671 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4672 tANI_U32 numNetworksInScanList;
4673 /* Variable data ptr: Number of AP in Scan List */
4674 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4675 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4676 tANI_U8 scanList[1];
4677} tHalBatchScanList, *tpHalBatchScanList;
4678
4679typedef PACKED_PRE struct PACKED_POST
4680{
4681 tANI_U32 timestamp;
4682 tANI_U32 numScanLists;
4683 boolean isLastResult;
4684 /* Variable Data ptr: Number of Scan Lists*/
4685 /* following isLastResult is data of type tHalBatchScanList
4686 * of sizeof(tHalBatchScanList) * numScanLists*/
4687 tANI_U8 scanResults[1];
4688} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4689
4690typedef PACKED_PRE struct PACKED_POST
4691{
4692 tHalMsgHeader header;
4693 tHalBatchScanResultIndParam resultIndMsgParam;
4694} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4695
4696#endif
4697
Jeff Johnson295189b2012-06-20 16:38:30 -07004698/*---------------------------------------------------------------------------
4699 * WLAN_HAL_KEEP_ALIVE_REQ
4700 *--------------------------------------------------------------------------*/
4701/* Packet Types. */
4702#define HAL_KEEP_ALIVE_NULL_PKT 1
4703#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4704
4705/* Enable or disable keep alive */
4706#define HAL_KEEP_ALIVE_DISABLE 0
4707#define HAL_KEEP_ALIVE_ENABLE 1
4708
4709/* Keep Alive request. */
4710typedef PACKED_PRE struct PACKED_POST
4711{
4712 tANI_U8 packetType;
4713 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304714 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004715 tHalIpv4Addr destIpv4Addr;
4716 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004717 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004718} tHalKeepAliveReq, *tpHalKeepAliveReq;
4719
4720typedef PACKED_PRE struct PACKED_POST
4721{
4722 tHalMsgHeader header;
4723 tHalKeepAliveReq KeepAliveParams;
4724} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4725
4726/*---------------------------------------------------------------------------
4727 * WLAN_HAL_SET_RSSI_THRESH_REQ
4728 *--------------------------------------------------------------------------*/
4729typedef PACKED_PRE struct PACKED_POST
4730{
4731 tANI_S8 ucRssiThreshold1 : 8;
4732 tANI_S8 ucRssiThreshold2 : 8;
4733 tANI_S8 ucRssiThreshold3 : 8;
4734 tANI_U8 bRssiThres1PosNotify : 1;
4735 tANI_U8 bRssiThres1NegNotify : 1;
4736 tANI_U8 bRssiThres2PosNotify : 1;
4737 tANI_U8 bRssiThres2NegNotify : 1;
4738 tANI_U8 bRssiThres3PosNotify : 1;
4739 tANI_U8 bRssiThres3NegNotify : 1;
4740 tANI_U8 bReserved10 : 2;
4741} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304742
Jeff Johnson295189b2012-06-20 16:38:30 -07004743typedef PACKED_PRE struct PACKED_POST
4744{
4745 tHalMsgHeader header;
4746 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004747} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004748
4749/*---------------------------------------------------------------------------
4750 * WLAN_HAL_ENTER_UAPSD_REQ
4751 *--------------------------------------------------------------------------*/
4752typedef PACKED_PRE struct PACKED_POST
4753{
4754 tANI_U8 bkDeliveryEnabled:1;
4755 tANI_U8 beDeliveryEnabled:1;
4756 tANI_U8 viDeliveryEnabled:1;
4757 tANI_U8 voDeliveryEnabled:1;
4758 tANI_U8 bkTriggerEnabled:1;
4759 tANI_U8 beTriggerEnabled:1;
4760 tANI_U8 viTriggerEnabled:1;
4761 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004762 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004763} tUapsdReqParams, *tpUapsdReqParams;
4764
4765typedef PACKED_PRE struct PACKED_POST
4766{
4767 tHalMsgHeader header;
4768 tUapsdReqParams enterUapsdParams;
4769} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4770
4771/*---------------------------------------------------------------------------
4772 * WLAN_HAL_EXIT_UAPSD_REQ
4773 *--------------------------------------------------------------------------*/
4774typedef PACKED_PRE struct PACKED_POST
4775{
4776 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004777 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004778} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4779
Kumar Anandea78e792013-10-10 23:47:01 -07004780#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4781#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004782/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004783 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4784 *--------------------------------------------------------------------------*/
4785typedef PACKED_PRE struct PACKED_POST
4786{
4787 tANI_U32 selfStaIdx:8;
4788 tANI_U32 ucPtrnId:8; // Pattern ID
4789 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4790 tANI_U32 uPtrnIntervalMs; // In msec
4791 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4792} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4793
4794typedef PACKED_PRE struct PACKED_POST
4795{
4796 tHalMsgHeader header;
4797 tHalAddPeriodicTxPtrn ptrnParams;
4798} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4799
4800/*---------------------------------------------------------------------------
4801 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4802 *--------------------------------------------------------------------------*/
4803typedef PACKED_PRE struct PACKED_POST
4804{
4805 tANI_U32 selfStaIdx:8;
4806 tANI_U32 rsvd:24;
4807 /* Bitmap of pattern IDs that needs to be deleted */
4808 tANI_U32 uPatternIdBitmap;
4809} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4810
4811typedef PACKED_PRE struct PACKED_POST
4812{
4813 tHalMsgHeader header;
4814 tHalDelPeriodicTxPtrn ptrnParams;
4815} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4816
4817/*---------------------------------------------------------------------------
4818 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4819 *--------------------------------------------------------------------------*/
4820typedef PACKED_PRE struct PACKED_POST
4821{
4822 /* Type of Failure indication */
4823 tANI_U32 bssIdx:8;
4824 tANI_U32 selfStaIdx:8;
4825 tANI_U32 rsvd:16;
4826 tANI_U32 status;
4827 tANI_U32 patternIdBitmap;
4828} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4829
4830typedef PACKED_PRE struct PACKED_POST
4831{
4832 tHalMsgHeader header;
4833 tHalPeriodicTxPtrnFwInd fwIndParams;
4834} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4835
4836/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004837 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4838 *--------------------------------------------------------------------------*/
4839#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4840#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4841
4842typedef PACKED_PRE struct PACKED_POST
4843{
4844 tANI_U8 ucPatternId; // Pattern ID
4845 // Pattern byte offset from beginning of the 802.11 packet to start of the
4846 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304847 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004848 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4849 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4850 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4851 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4852 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4853 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004854 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004855} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4856
4857typedef PACKED_PRE struct PACKED_POST
4858{
4859 tHalMsgHeader header;
4860 tHalWowlAddBcastPtrn ptrnParams;
4861} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304862
Jeff Johnsone7245742012-09-05 17:12:55 -07004863
4864
Jeff Johnson295189b2012-06-20 16:38:30 -07004865/*---------------------------------------------------------------------------
4866 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4867 *--------------------------------------------------------------------------*/
4868typedef PACKED_PRE struct PACKED_POST
4869{
4870 /* Pattern ID of the wakeup pattern to be deleted */
4871 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004872 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004873} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4874
4875typedef PACKED_PRE struct PACKED_POST
4876{
4877 tHalMsgHeader header;
4878 tHalWowlDelBcastPtrn ptrnParams;
4879} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4880
4881/*---------------------------------------------------------------------------
4882 * WLAN_HAL_ENTER_WOWL_REQ
4883 *--------------------------------------------------------------------------*/
4884typedef PACKED_PRE struct PACKED_POST
4885{
4886 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304887 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004888
4889 /* Magic pattern */
4890 tSirMacAddr magicPtrn;
4891
Dino Mycle8afbac12014-07-04 22:06:17 +05304892 /* Enables/disables packet pattern filtering in firmware.
4893 Enabling this flag enables broadcast pattern matching
4894 in Firmware. If unicast pattern matching is also desired,
4895 ucUcastPatternFilteringEnable flag must be set tot true
4896 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004897 */
4898 tANI_U8 ucPatternFilteringEnable;
4899
Dino Mycle8afbac12014-07-04 22:06:17 +05304900 /* Enables/disables unicast packet pattern filtering.
4901 This flag specifies whether we want to do pattern match
4902 on unicast packets as well and not just broadcast packets.
4903 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004904 (main controlling flag) is set to false
4905 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304906 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004907
Dino Mycle8afbac12014-07-04 22:06:17 +05304908 /* This configuration is valid only when magicPktEnable=1.
4909 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004910 * Channel Switch Action Frame.
4911 */
4912 tANI_U8 ucWowChnlSwitchRcv;
4913
Dino Mycle8afbac12014-07-04 22:06:17 +05304914 /* This configuration is valid only when magicPktEnable=1.
4915 * It requests hardware to wake up when it receives the
4916 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004917 */
4918 tANI_U8 ucWowDeauthRcv;
4919
Dino Mycle8afbac12014-07-04 22:06:17 +05304920 /* This configuration is valid only when magicPktEnable=1.
4921 * It requests hardware to wake up when it receives the
4922 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004923 */
4924 tANI_U8 ucWowDisassocRcv;
4925
Dino Mycle8afbac12014-07-04 22:06:17 +05304926 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004927 * It requests hardware to wake up when it has missed
4928 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304929 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004930 */
4931 tANI_U8 ucWowMaxMissedBeacons;
4932
Dino Mycle8afbac12014-07-04 22:06:17 +05304933 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004934 * This is a timeout value in units of microsec. It requests
4935 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304936 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004937 */
4938 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304939
Jeff Johnson295189b2012-06-20 16:38:30 -07004940 /* This configuration directs the WoW packet filtering to look for EAP-ID
4941 * requests embedded in EAPOL frames and use this as a wake source.
4942 */
4943 tANI_U8 ucWoWEAPIDRequestEnable;
4944
4945 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4946 * requests and use this as a wake source.
4947 */
4948 tANI_U8 ucWoWEAPOL4WayEnable;
4949
4950 /* This configuration allows a host wakeup on an network scan offload match.
4951 */
4952 tANI_U8 ucWowNetScanOffloadMatch;
4953
4954 /* This configuration allows a host wakeup on any GTK rekeying error.
4955 */
4956 tANI_U8 ucWowGTKRekeyError;
4957
4958 /* This configuration allows a host wakeup on BSS connection loss.
4959 */
4960 tANI_U8 ucWoWBSSConnLoss;
4961
Jeff Johnsone7245742012-09-05 17:12:55 -07004962 tANI_U8 bssIdx;
4963
Jeff Johnson295189b2012-06-20 16:38:30 -07004964} tHalWowlEnterParams, *tpHalWowlEnterParams;
4965
4966typedef PACKED_PRE struct PACKED_POST
4967{
4968 tHalMsgHeader header;
4969 tHalWowlEnterParams enterWowlParams;
4970} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4971
4972/*---------------------------------------------------------------------------
4973 * WLAN_HAL_EXIT_WOWL_REQ
4974 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004975
Jeff Johnson295189b2012-06-20 16:38:30 -07004976typedef PACKED_PRE struct PACKED_POST
4977{
Jeff Johnsone7245742012-09-05 17:12:55 -07004978 tANI_U8 bssIdx;
4979
4980} tHalWowlExitParams, *tpHalWowlExitParams;
4981
4982typedef PACKED_PRE struct PACKED_POST
4983{
4984 tHalMsgHeader header;
4985 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004986} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4987
4988/*---------------------------------------------------------------------------
4989 * WLAN_HAL_GET_RSSI_REQ
4990 *--------------------------------------------------------------------------*/
4991typedef PACKED_PRE struct PACKED_POST
4992{
4993 tHalMsgHeader header;
4994} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4995
Anand Kumar012623a2013-01-11 17:00:00 -08004996typedef PACKED_PRE struct PACKED_POST
4997{
4998 /* Valid STA Idx for per STA stats request */
4999 tANI_U32 staId;
5000
5001}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
5002
5003
5004/*---------------------------------------------------------------------------
5005 * WLAN_HAL_GET_ROAM_RSSI_REQ
5006 *--------------------------------------------------------------------------*/
5007typedef PACKED_PRE struct PACKED_POST
5008{
5009 tHalMsgHeader header;
5010 tHalRoamRssiReqParams roamRssiReqParams;
5011} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
5012
5013
Jeff Johnson295189b2012-06-20 16:38:30 -07005014/*---------------------------------------------------------------------------
5015 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
5016 *--------------------------------------------------------------------------*/
5017typedef PACKED_PRE struct PACKED_POST {
5018 tANI_U8 staidx; // STA index
5019 tANI_U8 ac; // Access Category
5020 tANI_U8 up; // User Priority
5021 tANI_U32 srvInterval; // Service Interval
5022 tANI_U32 susInterval; // Suspend Interval
5023 tANI_U32 delayInterval; // Delay Interval
5024} tUapsdInfo, tpUapsdInfo;
5025
5026typedef PACKED_PRE struct PACKED_POST
5027{
5028 tHalMsgHeader header;
5029 tUapsdInfo enableUapsdAcParams;
5030} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5031
5032/*---------------------------------------------------------------------------
5033 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5034 *--------------------------------------------------------------------------*/
5035typedef PACKED_PRE struct PACKED_POST {
5036 tANI_U8 setMcstBcstFilterSetting;
5037 tANI_U8 setMcstBcstFilter;
5038} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5039
5040typedef PACKED_PRE struct PACKED_POST
5041{
5042 tHalMsgHeader header;
5043 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5044} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5045
5046/*---------------------------------------------------------------------------
5047 * WLAN_HAL_ENTER_IMPS_RSP
5048 *--------------------------------------------------------------------------*/
5049typedef PACKED_PRE struct PACKED_POST
5050{
5051 /* success or failure */
5052 tANI_U32 status;
5053} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5054
5055typedef PACKED_PRE struct PACKED_POST
5056{
5057 tHalMsgHeader header;
5058 tHalEnterImpsRspParams enterImpsRspParams;
5059} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5060
5061/*---------------------------------------------------------------------------
5062 * WLAN_HAL_EXIT_IMPS_RSP
5063 *--------------------------------------------------------------------------*/
5064typedef PACKED_PRE struct PACKED_POST
5065{
5066 /* success or failure */
5067 tANI_U32 status;
5068} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5069
5070typedef PACKED_PRE struct PACKED_POST
5071{
5072 tHalMsgHeader header;
5073 tHalExitImpsRspParams exitImpsRspParams;
5074} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5075
5076/*---------------------------------------------------------------------------
5077 * WLAN_HAL_ENTER_BMPS_RSP
5078 *--------------------------------------------------------------------------*/
5079typedef PACKED_PRE struct PACKED_POST
5080{
5081 /* success or failure */
5082 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005083 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005084} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5085
5086typedef PACKED_PRE struct PACKED_POST
5087{
5088 tHalMsgHeader header;
5089 tHalEnterBmpsRspParams enterBmpsRspParams;
5090} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5091
5092/*---------------------------------------------------------------------------
5093 * WLAN_HAL_EXIT_BMPS_RSP
5094 *--------------------------------------------------------------------------*/
5095typedef PACKED_PRE struct PACKED_POST
5096{
5097 /* success or failure */
5098 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005099 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005100} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5101
5102typedef PACKED_PRE struct PACKED_POST
5103{
5104 tHalMsgHeader header;
5105 tHalExitBmpsRspParams exitBmpsRspParams;
5106} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5107
5108/*---------------------------------------------------------------------------
5109 * WLAN_HAL_ENTER_UAPSD_RSP
5110 *--------------------------------------------------------------------------*/
5111typedef PACKED_PRE struct PACKED_POST
5112{
5113 /* success or failure */
5114 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005115 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005116}tUapsdRspParams, *tpUapsdRspParams;
5117
5118typedef PACKED_PRE struct PACKED_POST
5119{
5120 tHalMsgHeader header;
5121 tUapsdRspParams enterUapsdRspParams;
5122} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5123
5124/*---------------------------------------------------------------------------
5125 * WLAN_HAL_EXIT_UAPSD_RSP
5126 *--------------------------------------------------------------------------*/
5127typedef PACKED_PRE struct PACKED_POST
5128{
5129 /* success or failure */
5130 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005131 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005132} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5133
5134typedef PACKED_PRE struct PACKED_POST
5135{
5136 tHalMsgHeader header;
5137 tHalExitUapsdRspParams exitUapsdRspParams;
5138} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5139
5140/*---------------------------------------------------------------------------
5141 * WLAN_HAL_RSSI_NOTIFICATION_IND
5142 *--------------------------------------------------------------------------*/
5143typedef PACKED_PRE struct PACKED_POST
5144{
5145 tANI_U32 bRssiThres1PosCross : 1;
5146 tANI_U32 bRssiThres1NegCross : 1;
5147 tANI_U32 bRssiThres2PosCross : 1;
5148 tANI_U32 bRssiThres2NegCross : 1;
5149 tANI_U32 bRssiThres3PosCross : 1;
5150 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005151 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005152 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005153 tANI_U32 isBTCoexCompromise : 1;
5154 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005155 tANI_S8 refRssiThreshold1;
5156 tANI_S8 refRssiThreshold2;
5157 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005158} tHalRSSINotification, *tpHalRSSINotification;
5159
5160typedef PACKED_PRE struct PACKED_POST
5161{
5162 tHalMsgHeader header;
5163 tHalRSSINotification rssiNotificationParams;
5164} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5165
5166/*---------------------------------------------------------------------------
5167 * WLAN_HAL_GET_RSSI_RSP
5168 *--------------------------------------------------------------------------*/
5169typedef PACKED_PRE struct PACKED_POST
5170{
5171 /* success or failure */
5172 tANI_U32 status;
5173 tANI_S8 rssi;
5174} tHalGetRssiParams, *tpHalGetRspParams;
5175
5176typedef PACKED_PRE struct PACKED_POST
5177{
5178 tHalMsgHeader header;
5179 tHalGetRssiParams rssiRspParams;
5180} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5181
5182/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005183 * WLAN_HAL_GET_ROAM_RSSI_RSP
5184 *--------------------------------------------------------------------------*/
5185typedef PACKED_PRE struct PACKED_POST
5186{
5187 /* success or failure */
5188 tANI_U32 status;
5189
5190 tANI_U8 staId;
5191 tANI_S8 rssi;
5192} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5193
5194typedef PACKED_PRE struct PACKED_POST
5195{
5196 tHalMsgHeader header;
5197 tHalGetRoamRssiParams roamRssiRspParams;
5198} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5199
5200/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005201 * WLAN_HAL_ENTER_WOWL_RSP
5202 *--------------------------------------------------------------------------*/
5203typedef PACKED_PRE struct PACKED_POST
5204{
5205 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005206 tANI_U32 status;
5207 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005208} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5209
5210typedef PACKED_PRE struct PACKED_POST
5211{
5212 tHalMsgHeader header;
5213 tHalEnterWowlRspParams enterWowlRspParams;
5214} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5215
5216/*---------------------------------------------------------------------------
5217 * WLAN_HAL_EXIT_WOWL_RSP
5218 *--------------------------------------------------------------------------*/
5219typedef PACKED_PRE struct PACKED_POST
5220{
5221 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005222 tANI_U32 status;
5223 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005224} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5225
5226typedef PACKED_PRE struct PACKED_POST
5227{
5228 tHalMsgHeader header;
5229 tHalExitWowlRspParams exitWowlRspParams;
5230} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5231
5232/*---------------------------------------------------------------------------
5233 * WLAN_HAL_ADD_BCN_FILTER_RSP
5234 *--------------------------------------------------------------------------*/
5235typedef PACKED_PRE struct PACKED_POST
5236{
5237 /* success or failure */
5238 tANI_U32 status;
5239} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5240
5241typedef PACKED_PRE struct PACKED_POST
5242{
5243 tHalMsgHeader header;
5244 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5245} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5246
5247/*---------------------------------------------------------------------------
5248 * WLAN_HAL_REM_BCN_FILTER_RSP
5249 *--------------------------------------------------------------------------*/
5250typedef PACKED_PRE struct PACKED_POST
5251{
5252 /* success or failure */
5253 tANI_U32 status;
5254} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5255
5256typedef PACKED_PRE struct PACKED_POST
5257{
5258 tHalMsgHeader header;
5259 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5260} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5261
5262/*---------------------------------------------------------------------------
5263 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5264 *--------------------------------------------------------------------------*/
5265typedef PACKED_PRE struct PACKED_POST
5266{
5267 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005268 tANI_U32 status;
5269 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005270} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5271
5272typedef PACKED_PRE struct PACKED_POST
5273{
5274 tHalMsgHeader header;
5275 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5276} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5277
5278/*---------------------------------------------------------------------------
5279 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5280 *--------------------------------------------------------------------------*/
5281typedef PACKED_PRE struct PACKED_POST
5282{
5283 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005284 tANI_U32 status;
5285 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005286} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5287
5288typedef PACKED_PRE struct PACKED_POST
5289{
5290 tHalMsgHeader header;
5291 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5292} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5293
5294/*---------------------------------------------------------------------------
5295 * WLAN_HAL_HOST_OFFLOAD_RSP
5296 *--------------------------------------------------------------------------*/
5297typedef PACKED_PRE struct PACKED_POST
5298{
5299 /* success or failure */
5300 tANI_U32 status;
5301} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5302
5303typedef PACKED_PRE struct PACKED_POST
5304{
5305 tHalMsgHeader header;
5306 tHalHostOffloadRspParams hostOffloadRspParams;
5307} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5308
5309/*---------------------------------------------------------------------------
5310 * WLAN_HAL_KEEP_ALIVE_RSP
5311 *--------------------------------------------------------------------------*/
5312typedef PACKED_PRE struct PACKED_POST
5313{
5314 /* success or failure */
5315 tANI_U32 status;
5316} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5317
5318typedef PACKED_PRE struct PACKED_POST
5319{
5320 tHalMsgHeader header;
5321 tHalKeepAliveRspParams keepAliveRspParams;
5322} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5323
5324/*---------------------------------------------------------------------------
5325 * WLAN_HAL_SET_RSSI_THRESH_RSP
5326 *--------------------------------------------------------------------------*/
5327typedef PACKED_PRE struct PACKED_POST
5328{
5329 /* success or failure */
5330 tANI_U32 status;
5331} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5332
5333typedef PACKED_PRE struct PACKED_POST
5334{
5335 tHalMsgHeader header;
5336 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5337} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5338
5339/*---------------------------------------------------------------------------
5340 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5341 *--------------------------------------------------------------------------*/
5342typedef PACKED_PRE struct PACKED_POST
5343{
5344 /* success or failure */
5345 tANI_U32 status;
5346} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5347
5348typedef PACKED_PRE struct PACKED_POST
5349{
5350 tHalMsgHeader header;
5351 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5352} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5353
5354/*---------------------------------------------------------------------------
5355 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5356 *--------------------------------------------------------------------------*/
5357typedef PACKED_PRE struct PACKED_POST
5358{
5359 /* success or failure */
5360 tANI_U32 status;
5361} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5362
5363typedef PACKED_PRE struct PACKED_POST
5364{
5365 tHalMsgHeader header;
5366 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5367} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5368
5369/*---------------------------------------------------------------------------
5370 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5371 *--------------------------------------------------------------------------*/
5372
5373typedef PACKED_PRE struct PACKED_POST
5374{
5375 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5376 //the request has power constraints, this should be applied only to that session
5377 tSirMacAddr selfStaMacAddr;
5378 //In request,
5379 //power == MaxTx power to be used.
5380 tPowerdBm power;
5381
5382}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5383
5384
5385typedef PACKED_PRE struct PACKED_POST
5386{
5387 tHalMsgHeader header;
5388 tSetMaxTxPwrParams setMaxTxPwrParams;
5389}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5390
5391/*---------------------------------------------------------------------------
5392*WLAN_HAL_SET_MAX_TX_POWER_RSP
5393*--------------------------------------------------------------------------*/
5394
5395typedef PACKED_PRE struct PACKED_POST
5396{
5397 //power == tx power used for management frames.
5398 tPowerdBm power;
5399
5400 /* success or failure */
5401 tANI_U32 status;
5402}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5403
5404typedef PACKED_PRE struct PACKED_POST
5405{
5406 tHalMsgHeader header;
5407 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5408}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5409
Kumar Anandea78e792013-10-10 23:47:01 -07005410
Jeff Johnson295189b2012-06-20 16:38:30 -07005411/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005412 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5413 *--------------------------------------------------------------------------*/
5414
5415/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5416typedef enum
5417{
5418 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5419 // For 2.4GHz or 5GHz bands
5420 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5421 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5422 // End of valid enums
5423 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5424}tHalSetMaxTxPwrBandInfo;
5425
5426typedef PACKED_PRE struct PACKED_POST
5427{
5428 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005429 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005430}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5431
Kumar Anandea78e792013-10-10 23:47:01 -07005432
Arif Hussain36fda162013-08-30 14:46:57 -07005433typedef PACKED_PRE struct PACKED_POST
5434{
5435 tHalMsgHeader header;
5436 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5437}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5438
5439/*---------------------------------------------------------------------------
5440*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5441*--------------------------------------------------------------------------*/
5442
5443typedef PACKED_PRE struct PACKED_POST
5444{
5445 //power == tx power used for management frames.
5446 tPowerdBm power;
5447
5448 /* success or failure */
5449 tANI_U32 status;
5450}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5451
5452typedef PACKED_PRE struct PACKED_POST
5453{
5454 tHalMsgHeader header;
5455 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5456}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5457
5458/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005459 *WLAN_HAL_SET_TX_POWER_REQ
5460 *--------------------------------------------------------------------------*/
5461
5462typedef PACKED_PRE struct PACKED_POST
5463{
5464 /* TX Power in milli watts */
5465 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005466 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005467}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5468
5469
5470typedef PACKED_PRE struct PACKED_POST
5471{
5472 tHalMsgHeader header;
5473 tSetTxPwrReqParams setTxPwrReqParams;
5474}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5475
5476/*---------------------------------------------------------------------------
5477*WLAN_HAL_SET_TX_POWER_RSP
5478*--------------------------------------------------------------------------*/
5479
5480typedef PACKED_PRE struct PACKED_POST
5481{
5482 /* success or failure */
5483 tANI_U32 status;
5484}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5485
5486typedef PACKED_PRE struct PACKED_POST
5487{
5488 tHalMsgHeader header;
5489 tSetTxPwrRspParams setTxPwrRspParams;
5490}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5491
5492/*---------------------------------------------------------------------------
5493 *WLAN_HAL_GET_TX_POWER_REQ
5494 *--------------------------------------------------------------------------*/
5495
5496typedef PACKED_PRE struct PACKED_POST
5497{
5498 tANI_U8 staId;
5499}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5500
5501typedef PACKED_PRE struct PACKED_POST
5502{
5503 tHalMsgHeader header;
5504 tGetTxPwrReqParams getTxPwrReqParams;
5505}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5506
5507/*---------------------------------------------------------------------------
5508*WLAN_HAL_GET_TX_POWER_RSP
5509*--------------------------------------------------------------------------*/
5510
5511typedef PACKED_PRE struct PACKED_POST
5512{
5513 /* success or failure */
5514 tANI_U32 status;
5515
5516 /* TX Power in milli watts */
5517 tANI_U32 txPower;
5518}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5519
5520typedef PACKED_PRE struct PACKED_POST
5521{
5522 tHalMsgHeader header;
5523 tGetTxPwrRspParams getTxPwrRspParams;
5524}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5525
5526#ifdef WLAN_FEATURE_P2P
5527/*---------------------------------------------------------------------------
5528 *WLAN_HAL_SET_P2P_GONOA_REQ
5529 *--------------------------------------------------------------------------*/
5530
5531typedef PACKED_PRE struct PACKED_POST
5532{
5533 tANI_U8 opp_ps;
5534 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305535 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005536 tANI_U32 duration;
5537 tANI_U32 interval;
5538 tANI_U32 single_noa_duration;
5539 tANI_U8 psSelection;
5540}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5541
5542
5543typedef PACKED_PRE struct PACKED_POST
5544{
5545 tHalMsgHeader header;
5546 tSetP2PGONOAParams setP2PGONOAParams;
5547}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5548
5549/*---------------------------------------------------------------------------
5550*WLAN_HAL_SET_P2P_GONOA_RSP
5551*--------------------------------------------------------------------------*/
5552
5553typedef PACKED_PRE struct PACKED_POST
5554{
5555 /* success or failure */
5556 tANI_U32 status;
5557}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5558
5559typedef PACKED_PRE struct PACKED_POST
5560{
5561 tHalMsgHeader header;
5562 tSetP2PGONOARspParams setP2PGONOARspParams;
5563}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5564#endif
5565
5566/*---------------------------------------------------------------------------
5567 *WLAN_HAL_ADD_SELF_STA_REQ
5568 *--------------------------------------------------------------------------*/
5569
5570typedef PACKED_PRE struct PACKED_POST
5571{
5572 tSirMacAddr selfMacAddr;
5573 tANI_U32 status;
5574}tAddStaSelfParams, *tpAddStaSelfParams;
5575
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005576typedef PACKED_PRE struct PACKED_POST
5577{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005578 tHalMsgHeader header;
5579 tAddStaSelfParams addStaSelfParams;
5580}tAddStaSelfReq, *tpAddStaSelfReq;
5581
5582/* This V1 structure carries additionally the IFACE PERSONA
5583 of the interface as compared to the legacy control
5584 message */
5585typedef PACKED_PRE struct PACKED_POST
5586{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005587 tSirMacAddr selfMacAddr;
5588 tANI_U32 status;
5589 tHalIfacePersona iface_persona;
5590}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005591
5592typedef PACKED_PRE struct PACKED_POST
5593{
5594 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005595 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005596}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005597
5598/*---------------------------------------------------------------------------
5599*WLAN_HAL_ADD_SELF_STA_RSP
5600*--------------------------------------------------------------------------*/
5601
5602typedef PACKED_PRE struct PACKED_POST
5603{
5604 /* success or failure */
5605 tANI_U32 status;
5606
5607 /*Self STA Index */
5608 tANI_U8 selfStaIdx;
5609
5610 /* DPU Index (IGTK, PTK, GTK all same) */
5611 tANI_U8 dpuIdx;
5612
5613 /* DPU Signature */
5614 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305615
Jeff Johnson295189b2012-06-20 16:38:30 -07005616}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5617
5618typedef PACKED_PRE struct PACKED_POST
5619{
5620 tHalMsgHeader header;
5621 tAddStaSelfRspParams addStaSelfRspParams;
5622}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5623
5624
5625/*---------------------------------------------------------------------------
5626 WLAN_HAL_DEL_STA_SELF_REQ
5627---------------------------------------------------------------------------*/
5628
5629typedef PACKED_PRE struct PACKED_POST
5630{
5631 tSirMacAddr selfMacAddr;
5632
5633}tDelStaSelfParams, *tpDelStaSelfParams;
5634
5635typedef PACKED_PRE struct PACKED_POST
5636{
5637 tHalMsgHeader header;
5638 tDelStaSelfParams delStaSelfParams;
5639} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5640
5641
5642/*---------------------------------------------------------------------------
5643 WLAN_HAL_DEL_STA_SELF_RSP
5644---------------------------------------------------------------------------*/
5645
5646typedef PACKED_PRE struct PACKED_POST
5647{
5648 /*success or failure */
5649 tANI_U32 status;
5650
5651 tSirMacAddr selfMacAddr;
5652}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5653
5654typedef PACKED_PRE struct PACKED_POST
5655{
5656 tHalMsgHeader header;
5657 tDelStaSelfRspParams delStaSelfRspParams;
5658} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5659
5660
5661#ifdef WLAN_FEATURE_VOWIFI_11R
5662
5663/*---------------------------------------------------------------------------
5664 *WLAN_HAL_AGGR_ADD_TS_REQ
5665 *--------------------------------------------------------------------------*/
5666
5667typedef PACKED_PRE struct PACKED_POST
5668{
5669 /* Station Index */
5670 tANI_U16 staIdx;
5671
5672 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5673 /* This will carry the bitmap with the bit positions representing different AC.s*/
5674 tANI_U16 tspecIdx;
5675
5676 /* Tspec info per AC To program TPE with required parameters */
5677 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5678
5679 /* U-APSD Flags: 1b per AC. Encoded as follows:
5680 b7 b6 b5 b4 b3 b2 b1 b0 =
5681 X X X X BE BK VI VO */
5682 tANI_U8 uAPSD;
5683
5684 /* These parameters are for all the access categories */
5685 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5686 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5687 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5688
5689}tAggrAddTsParams, *tpAggrAddTsParams;
5690
5691
5692typedef PACKED_PRE struct PACKED_POST
5693{
5694 tHalMsgHeader header;
5695 tAggrAddTsParams aggrAddTsParam;
5696}tAggrAddTsReq, *tpAggrAddTsReq;
5697
5698/*---------------------------------------------------------------------------
5699*WLAN_HAL_AGGR_ADD_TS_RSP
5700*--------------------------------------------------------------------------*/
5701
5702typedef PACKED_PRE struct PACKED_POST
5703{
5704 /* success or failure */
5705 tANI_U32 status0;
5706 /* FIXME PRIMA for future use for 11R */
5707 tANI_U32 status1;
5708}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5709
5710typedef PACKED_PRE struct PACKED_POST
5711{
5712 tHalMsgHeader header;
5713 tAggrAddTsRspParams aggrAddTsRspParam;
5714}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5715
5716#endif
5717
5718/*---------------------------------------------------------------------------
5719 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5720 *--------------------------------------------------------------------------*/
5721typedef PACKED_PRE struct PACKED_POST
5722{
5723 tANI_U8 isAppsCpuAwake;
5724} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5725
5726typedef PACKED_PRE struct PACKED_POST
5727{
5728 tHalMsgHeader header;
5729 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5730} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5731
5732/*---------------------------------------------------------------------------
5733 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5734 *--------------------------------------------------------------------------*/
5735typedef PACKED_PRE struct PACKED_POST
5736{
5737 /* success or failure */
5738 tANI_U32 status;
5739} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5740
5741typedef PACKED_PRE struct PACKED_POST
5742{
5743 tHalMsgHeader header;
5744 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5745} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5746/*---------------------------------------------------------------------------
5747 * WLAN_HAL_DUMP_COMMAND_REQ
5748 *--------------------------------------------------------------------------*/
5749
5750typedef PACKED_PRE struct PACKED_POST
5751{
5752 tANI_U32 argument1;
5753 tANI_U32 argument2;
5754 tANI_U32 argument3;
5755 tANI_U32 argument4;
5756 tANI_U32 argument5;
5757
5758}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5759
5760typedef PACKED_PRE struct PACKED_POST
5761{
5762 tHalMsgHeader header;
5763 tHalDumpCmdReqParams dumpCmdReqParams;
5764} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5765
5766/*---------------------------------------------------------------------------
5767 * WLAN_HAL_DUMP_COMMAND_RSP
5768 *--------------------------------------------------------------------------*/
5769
5770typedef PACKED_PRE struct PACKED_POST
5771{
5772 /* success or failure */
5773 tANI_U32 status;
5774 /*Length of the responce message*/
5775 tANI_U32 rspLength;
5776 /*FiXME: Currently considering the the responce will be less than 100bytes */
5777 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305778
Jeff Johnson295189b2012-06-20 16:38:30 -07005779} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5780
5781typedef PACKED_PRE struct PACKED_POST
5782{
5783 tHalMsgHeader header;
5784 tHalDumpCmdRspParams dumpCmdRspParams;
5785} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5786
5787/*---------------------------------------------------------------------------
5788 *WLAN_HAL_COEX_IND
5789 *-------------------------------------------------------------------------*/
5790#define WLAN_COEX_IND_DATA_SIZE (4)
5791#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5792#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005793#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5794#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005795#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5796#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305797#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5798#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305799#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005800
5801typedef PACKED_PRE struct PACKED_POST
5802{
5803 /*Coex Indication Type*/
5804 tANI_U32 coexIndType;
5805
5806 /*Coex Indication Data*/
5807 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5808}tCoexIndParams,*tpCoexIndParams;
5809
5810typedef PACKED_PRE struct PACKED_POST
5811{
5812 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305813 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005814}tCoexIndMsg, *tpCoexIndMsg;
5815
5816/*---------------------------------------------------------------------------
5817 *WLAN_HAL_OTA_TX_COMPL_IND
5818 *-------------------------------------------------------------------------*/
5819
5820typedef PACKED_PRE struct PACKED_POST
5821{
5822 /*Tx Complete Indication Success or Failure*/
5823 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305824 /* Dialog token */
5825 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005826}tTxComplParams,*tpTxComplParams;
5827
5828typedef PACKED_PRE struct PACKED_POST
5829{
5830 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305831 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005832}tTxComplIndMsg, *tpTxComplIndMsg;
5833
5834/*---------------------------------------------------------------------------
5835 * WLAN_HAL_HOST_SUSPEND_IND
5836 *-------------------------------------------------------------------------*/
5837
5838typedef PACKED_PRE struct PACKED_POST
5839{
5840 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305841 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005842}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5843
5844typedef PACKED_PRE struct PACKED_POST
5845{
5846 tHalMsgHeader header;
5847 tHalWlanHostSuspendIndParam suspendIndParams;
5848}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5849
5850/*---------------------------------------------------------------------------
5851 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5852 *-------------------------------------------------------------------------*/
5853
5854typedef PACKED_PRE struct PACKED_POST
5855{
5856 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305857 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005858}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5859
5860typedef PACKED_PRE struct PACKED_POST
5861{
5862 tHalMsgHeader header;
5863 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5864}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5865
5866#ifdef WLAN_FEATURE_P2P
5867/*---------------------------------------------------------------------------
5868 *WLAN_HAL_NOA_ATTR_IND
5869 *-------------------------------------------------------------------------*/
5870
5871typedef PACKED_PRE struct PACKED_POST
5872{
5873 tANI_U8 index ;
5874 tANI_U8 oppPsFlag ;
5875 tANI_U16 ctWin ;
5876
5877 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005878 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005879 tANI_U32 uNoa1Duration;
5880 tANI_U32 uNoa1Interval;
5881 tANI_U32 uNoa1StartTime;
5882
5883 tANI_U16 uNoa2IntervalCnt;
5884 tANI_U16 rsvd2;
5885 tANI_U32 uNoa2Duration;
5886 tANI_U32 uNoa2Interval;
5887 tANI_U32 uNoa2StartTime;
5888
5889 tANI_U32 status;
5890}tNoaAttrIndParams, *tpNoaAttrIndParams;
5891
5892typedef PACKED_PRE struct PACKED_POST
5893{
5894 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305895 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005896}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005897
5898/*---------------------------------------------------------------------------
5899 *WLAN_HAL_NOA_START_IND
5900 *-------------------------------------------------------------------------*/
5901
5902typedef PACKED_PRE struct PACKED_POST
5903{
5904 tANI_U32 status;
5905 tANI_U32 bssIdx;
5906}tNoaStartIndParams, *tpNoaStartIndParams;
5907
5908typedef PACKED_PRE struct PACKED_POST
5909{
5910 tHalMsgHeader header;
5911 tNoaStartIndParams noaStartIndParams;
5912}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005913#endif
5914
5915/*---------------------------------------------------------------------------
5916 * WLAN_HAL_HOST_RESUME_REQ
5917 *-------------------------------------------------------------------------*/
5918
5919typedef PACKED_PRE struct PACKED_POST
5920{
5921 tANI_U8 configuredMcstBcstFilterSetting;
5922}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5923
5924typedef PACKED_PRE struct PACKED_POST
5925{
5926 tHalMsgHeader header;
5927 tHalWlanHostResumeReqParam resumeReqParams;
5928}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5929
5930/*---------------------------------------------------------------------------
5931 * WLAN_HAL_HOST_RESUME_RSP
5932 *--------------------------------------------------------------------------*/
5933typedef PACKED_PRE struct PACKED_POST
5934{
5935 /* success or failure */
5936 tANI_U32 status;
5937} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5938
5939typedef PACKED_PRE struct PACKED_POST
5940{
5941 tHalMsgHeader header;
5942 tHalHostResumeRspParams hostResumeRspParams;
5943} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5944
Anand Kumar012623a2013-01-11 17:00:00 -08005945typedef PACKED_PRE struct PACKED_POST
5946{
5947 tANI_U16 staIdx;
5948 // Peer MAC Address, whose BA session has timed out
5949 tSirMacAddr peerMacAddr;
5950 // TID for which a BA session timeout is being triggered
5951 tANI_U8 baTID;
5952 // DELBA direction
5953 // 1 - Originator
5954 // 0 - Recipient
5955 tANI_U8 baDirection;
5956 tANI_U32 reasonCode;
5957 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5958} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5959
5960typedef PACKED_PRE struct PACKED_POST
5961{
5962 tHalMsgHeader header;
5963 tHalWlanDelBaIndMsg hostdelBaParam;
5964} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5965
Jeff Johnson295189b2012-06-20 16:38:30 -07005966/*---------------------------------------------------------------------------
5967 *PNO Messages
5968 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005969/* Max number of channels that a network can be found on*/
5970/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5971 * be changed at same time
5972 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005973#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005974
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305975/*Max number of channels that a network can be found on*/
5976#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5977
Jeff Johnson295189b2012-06-20 16:38:30 -07005978/*Maximum numbers of networks supported by PNO*/
5979#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5980
5981/*The number of scan time intervals that can be programmed into PNO*/
5982#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5983
5984/*Maximum size of the probe template*/
5985#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5986
Dino Mycle8afbac12014-07-04 22:06:17 +05305987/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005988 Immediate - scanning will start immediately and PNO procedure will
5989 be repeated based on timer
5990 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005991 Resume - scanning will start on system resume
5992 Delay - start the scan timer to trigger PNO scan
5993 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005994typedef enum
5995{
5996 ePNO_MODE_IMMEDIATE,
5997 ePNO_MODE_ON_SUSPEND,
5998 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305999 ePNO_MODE_DELAY,
6000 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07006001 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6002} ePNOMode;
6003
6004/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306005typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006006{
Dino Mycle8afbac12014-07-04 22:06:17 +05306007 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07006008 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05306009
Jeff Johnson295189b2012-06-20 16:38:30 -07006010 // Upper layer authentication types
6011 eAUTH_TYPE_WPA = 2,
6012 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05306013
Jeff Johnson295189b2012-06-20 16:38:30 -07006014 eAUTH_TYPE_RSN = 4,
6015 eAUTH_TYPE_RSN_PSK = 5,
6016 eAUTH_TYPE_FT_RSN = 6,
6017 eAUTH_TYPE_FT_RSN_PSK = 7,
6018 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
6019 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006020 eAUTH_TYPE_CCKM_WPA = 10,
6021 eAUTH_TYPE_CCKM_RSN = 11,
Kanchanapally, Vidyullatha66a3a322015-06-09 15:19:11 +05306022 eAUTH_TYPE_RSN_PSK_SHA256 = 12,
6023 eAUTH_TYPE_RSN_8021X_SHA256 = 13,
Dino Mycle8afbac12014-07-04 22:06:17 +05306024
Jeff Johnson295189b2012-06-20 16:38:30 -07006025 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6026
6027}tAuthType;
6028
6029/* Encryption type */
6030typedef enum eEdType
6031{
6032 eED_ANY = 0,
6033 eED_NONE = 1,
6034 eED_WEP = 2,
6035 eED_TKIP = 3,
6036 eED_CCMP = 4,
6037 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306038
Jeff Johnson295189b2012-06-20 16:38:30 -07006039 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6040} tEdType;
6041
6042/* SSID broadcast type */
6043typedef enum eSSIDBcastType
6044{
6045 eBCAST_UNKNOWN = 0,
6046 eBCAST_NORMAL = 1,
6047 eBCAST_HIDDEN = 2,
6048
6049 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6050} tSSIDBcastType;
6051
Dino Mycle8afbac12014-07-04 22:06:17 +05306052/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006053 The network description for which PNO will have to look for
6054*/
6055typedef PACKED_PRE struct PACKED_POST
6056{
6057 /*SSID of the BSS*/
6058 tSirMacSSid ssId;
6059
6060 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306061 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006062
6063 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306064 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006065
Dino Mycle8afbac12014-07-04 22:06:17 +05306066 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006067 0 - if all channels */
6068 tANI_U8 ucChannelCount;
6069 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6070
6071 /*Indicates the RSSI threshold for the network to be considered*/
6072 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306073}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006074
6075typedef PACKED_PRE struct PACKED_POST
6076{
6077 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306078 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006079
Dino Mycle8afbac12014-07-04 22:06:17 +05306080 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006081 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306082 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006083
Dino Mycle8afbac12014-07-04 22:06:17 +05306084 /*e.g: 2 3
6085 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006086 - it will wait 2s between consecutive scans for 3 times
6087 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306088}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006089
Dino Mycle8afbac12014-07-04 22:06:17 +05306090/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006091 The network parameters to be sent to the PNO algorithm
6092*/
6093typedef PACKED_PRE struct PACKED_POST
6094{
6095 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306096 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006097
Dino Mycle8afbac12014-07-04 22:06:17 +05306098 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006099 two consecutive scan procedures
6100 If the desired is for a uniform timer that fires always at the exact same
6101 interval - one single value is to be set
6102 If there is a desire for a more complex - telescopic like timer multiple
6103 values can be set - once PNO reaches the end of the array it will
6104 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306105 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006106
6107}tScanTimersType;
6108
6109typedef PACKED_PRE struct PACKED_POST {
6110
6111 /*Enable PNO*/
6112 tANI_U32 enable;
6113
6114 /*Immediate, On Suspend, On Resume*/
6115 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306116
Jeff Johnson295189b2012-06-20 16:38:30 -07006117 /*Number of networks sent for PNO*/
6118 tANI_U32 ucNetworksCount;
6119
6120 /*The networks that PNO needs to look for*/
6121 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6122
6123 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306124 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006125
6126 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306127 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006128 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6129
6130 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306131 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006132 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6133
6134} tPrefNetwListParams, * tpPrefNetwListParams;
6135
6136/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306137 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006138*/
6139typedef PACKED_PRE struct PACKED_POST
6140{
6141 tHalMsgHeader header;
6142 tPrefNetwListParams prefNetwListParams;
6143} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6144
6145
Dino Mycle8afbac12014-07-04 22:06:17 +05306146/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006147 The network description for which PNO will have to look for
6148*/
6149typedef PACKED_PRE struct PACKED_POST
6150{
6151 /*SSID of the BSS*/
6152 tSirMacSSid ssId;
6153
6154 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306155 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006156
6157 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306158 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006159
6160 /*SSID broadcast type, normal, hidden or unknown*/
6161 tSSIDBcastType bcastNetworkType;
6162
Dino Mycle8afbac12014-07-04 22:06:17 +05306163 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006164 0 - if all channels */
6165 tANI_U8 ucChannelCount;
6166 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6167
6168 /*Indicates the RSSI threshold for the network to be considered*/
6169 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306170}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006171
6172typedef PACKED_PRE struct PACKED_POST {
6173
6174 /*Enable PNO*/
6175 tANI_U32 enable;
6176
6177 /*Immediate, On Suspend, On Resume*/
6178 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306179
Jeff Johnson295189b2012-06-20 16:38:30 -07006180 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306181 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006182
6183 /*The networks that PNO needs to look for*/
6184 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6185
6186 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306187 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006188
6189 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306190 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006191 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6192
6193 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306194 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006195 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6196
6197} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6198
6199/*
6200 Preferred network list request new
6201*/
6202typedef PACKED_PRE struct PACKED_POST
6203{
6204 tHalMsgHeader header;
6205 tPrefNetwListParamsNew prefNetwListParams;
6206} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6207
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006208#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6209typedef PACKED_PRE struct PACKED_POST
6210{
6211 tSirMacSSid ssId;
6212 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6213 tANI_U32 authentication;
6214 tEdType encryption;
6215 tEdType mcencryption;
6216 tANI_U8 ChannelCount;
6217 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6218}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006219
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006220typedef PACKED_PRE struct PACKED_POST
6221{
6222 tANI_U8 mdiePresent;
6223 tANI_U16 mobilityDomain;
6224}tMobilityDomainInfo;
6225
6226typedef PACKED_PRE struct PACKED_POST {
6227 eAniBoolean RoamScanOffloadEnabled;
6228 tANI_S8 LookupThreshold;
6229 tANI_U8 RoamRssiDiff;
6230 tANI_U8 ChannelCacheType;
6231 tANI_U8 Command;
6232 tANI_U8 StartScanReason;
6233 tANI_U16 NeighborScanTimerPeriod;
6234 tANI_U16 NeighborRoamScanRefreshPeriod;
6235 tANI_U16 NeighborScanChannelMinTime;
6236 tANI_U16 NeighborScanChannelMaxTime;
6237 tANI_U16 EmptyRefreshScanPeriod;
6238 tANI_U8 ValidChannelCount;
6239 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006240 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006241
6242 tANI_U16 us24GProbeSize;
6243 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6244 tANI_U16 us5GProbeSize;
6245 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6246 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006247 tANI_U8 nProbes;
6248 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006249 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006250 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006251 tANI_U8 RoamOffloadEnabled;
6252 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6253 tANI_U8 Prefer5GHz;
6254 tANI_U8 RoamRssiCatGap;
6255 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006256 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6257 tRoamNetworkType ConnectedNetwork;
6258 tMobilityDomainInfo MDID;
6259} tRoamCandidateListParams, * tpRoamCandidateListParams;
6260
6261typedef PACKED_PRE struct PACKED_POST
6262{
Kumar Anandea78e792013-10-10 23:47:01 -07006263 tHalMsgHeader header;
6264 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006265} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6266
6267typedef PACKED_PRE struct PACKED_POST
6268{
Kumar Anandea78e792013-10-10 23:47:01 -07006269 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006270
Kumar Anandea78e792013-10-10 23:47:01 -07006271 /* status of the request - just to indicate that PNO has acknowledged
6272 * the request and will start scanning */
6273 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006274} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6275#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006276
6277/*
6278 Preferred network list response
6279*/
6280typedef PACKED_PRE struct PACKED_POST
6281{
6282 tHalMsgHeader header;
6283
6284 /* status of the request - just to indicate that PNO has acknowledged
6285 * the request and will start scanning*/
6286 tANI_U32 status;
6287} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6288
6289/*
6290 Preferred network indication parameters
6291*/
6292typedef PACKED_PRE struct PACKED_POST {
6293
6294 /*Network that was found with the highest RSSI*/
6295 tSirMacSSid ssId;
6296
6297 /*Indicates the RSSI */
6298 tANI_U8 rssi;
6299
6300 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6301 tANI_U16 frameLength;
6302
6303} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6304
6305/*
6306 Preferred network found indication
6307*/
6308typedef PACKED_PRE struct PACKED_POST {
6309
6310 tHalMsgHeader header;
6311 tPrefNetwFoundParams prefNetwFoundParams;
6312} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6313
6314
6315typedef PACKED_PRE struct PACKED_POST {
6316
6317 /*RSSI Threshold*/
6318 tANI_U8 ucRssiThreshold;
6319
6320} tRssiFilterParams, * tpRssiFilterParams;
6321
Jeff Johnson295189b2012-06-20 16:38:30 -07006322/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306323 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006324*/
6325typedef PACKED_PRE struct PACKED_POST
6326{
6327 tHalMsgHeader header;
6328 tRssiFilterParams prefRSSIFilterParams;
6329} tSetRssiFilterReq, *tpSetRssiFilterReq;
6330
6331/*
6332 Set RSSI filter resp
6333*/
6334typedef PACKED_PRE struct PACKED_POST{
6335 tHalMsgHeader header;
6336 /*status of the request */
6337 tANI_U32 status;
6338} tSetRssiFilterResp, *tpSetRssiFilterResp;
6339/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306340 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006341*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306342typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006343{
6344
6345 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306346 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006347
6348 /*Lets PNO know that host has determined the regulatory domain*/
6349 tANI_U8 b11dResolved;
6350
6351 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306352 tANI_U8 ucChannelCount;
6353 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006354
6355 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306356 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006357
6358 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306359 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006360
6361 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306362 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006363
6364 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306365 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006366
6367 /*Cb State*/
6368 ePhyChanBondState cbState;
6369
6370} tUpdateScanParams, * tpUpdateScanParams;
6371
6372/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306373 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306374*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306375typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306376{
6377
6378 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306379 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306380
6381 /*Lets PNO know that host has determined the regulatory domain*/
6382 tANI_U8 b11dResolved;
6383
6384 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306385 tANI_U8 ucChannelCount;
6386 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306387
6388 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306389 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306390
6391 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306392 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306393
6394 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306395 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306396
6397 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306398 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306399
6400 /*Cb State*/
6401 ePhyChanBondState cbState;
6402
6403} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6404
6405/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006406 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306407 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006408*/
6409typedef PACKED_PRE struct PACKED_POST{
6410
6411 tHalMsgHeader header;
6412 tUpdateScanParams scanParams;
6413} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6414
6415/*
6416 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306417 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006418*/
6419typedef PACKED_PRE struct PACKED_POST{
6420
6421 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306422 tUpdateScanParamsEx scanParams;
6423} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6424
6425/*
6426 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306427 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306428*/
6429typedef PACKED_PRE struct PACKED_POST{
6430
6431 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006432
6433 /*status of the request */
6434 tANI_U32 status;
6435
6436} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6437
6438/*---------------------------------------------------------------------------
6439 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6440 *--------------------------------------------------------------------------*/
6441typedef PACKED_PRE struct PACKED_POST
6442{
6443 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6444 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6445 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6446 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6447} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6448
6449typedef PACKED_PRE struct PACKED_POST
6450{
6451 tHalMsgHeader header;
6452 tHalTxPerTrackingReqParam txPerTrackingParams;
6453} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6454
6455/*---------------------------------------------------------------------------
6456 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6457 *--------------------------------------------------------------------------*/
6458typedef PACKED_PRE struct PACKED_POST
6459{
6460 /* success or failure */
6461 tANI_U32 status;
6462} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6463
6464typedef PACKED_PRE struct PACKED_POST
6465{
6466 tHalMsgHeader header;
6467 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6468} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6469
6470/*---------------------------------------------------------------------------
6471 * WLAN_HAL_TX_PER_HIT_IND
6472 *--------------------------------------------------------------------------*/
6473typedef PACKED_PRE struct PACKED_POST
6474{
6475 tHalMsgHeader header;
6476}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6477
6478/*---------------------------------------------------------------------------
6479 *******************Packet Filtering Definitions Begin*******************
6480 *--------------------------------------------------------------------------*/
6481#define HAL_PROTOCOL_DATA_LEN 8
6482#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6483#define HAL_MAX_NUM_FILTERS 20
6484#define HAL_MAX_CMP_PER_FILTER 10
6485
6486typedef enum
6487{
6488 HAL_RCV_FILTER_TYPE_INVALID,
6489 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6490 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6491 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6492}tHalReceivePacketFilterType;
6493
Dino Mycle8afbac12014-07-04 22:06:17 +05306494typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006495{
6496 HAL_FILTER_PROTO_TYPE_INVALID,
6497 HAL_FILTER_PROTO_TYPE_MAC,
6498 HAL_FILTER_PROTO_TYPE_ARP,
6499 HAL_FILTER_PROTO_TYPE_IPV4,
6500 HAL_FILTER_PROTO_TYPE_IPV6,
6501 HAL_FILTER_PROTO_TYPE_UDP,
6502 HAL_FILTER_PROTO_TYPE_MAX
6503}tHalRcvPktFltProtocolType;
6504
Dino Mycle8afbac12014-07-04 22:06:17 +05306505typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006506{
6507 HAL_FILTER_CMP_TYPE_INVALID,
6508 HAL_FILTER_CMP_TYPE_EQUAL,
6509 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6510 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6511 HAL_FILTER_CMP_TYPE_MAX
6512}tHalRcvPktFltCmpFlagType;
6513
Dino Mycle8afbac12014-07-04 22:06:17 +05306514typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006515{
6516 tANI_U8 protocolLayer;
6517 tANI_U8 cmpFlag;
6518 tANI_U16 dataLength; /* Length of the data to compare */
6519 tANI_U8 dataOffset; /* from start of the respective frame header */
6520 tANI_U8 reserved; /* Reserved field */
6521 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6522 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6523}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6524
6525typedef PACKED_PRE struct PACKED_POST
6526{
6527 tANI_U8 filterId;
6528 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306529 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006530 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006531 tHalRcvPktFilterParams paramsData[1];
6532}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6533
6534typedef PACKED_PRE struct PACKED_POST
6535{
Jeff Johnsone7245742012-09-05 17:12:55 -07006536 tANI_U8 filterId;
6537 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306538 tANI_U8 numParams;
6539 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006540 tANI_U8 bssIdx;
6541 tHalRcvPktFilterParams paramsData[1];
6542}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6543
6544typedef PACKED_PRE struct PACKED_POST
6545{
Jeff Johnson295189b2012-06-20 16:38:30 -07006546 tHalMsgHeader header;
6547 tHalRcvPktFilterCfgType pktFilterCfg;
6548} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6549
Jeff Johnsone7245742012-09-05 17:12:55 -07006550typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006551{
6552 tANI_U8 dataOffset; /* from start of the respective frame header */
6553 tANI_U32 cMulticastAddr;
6554 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006555 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006556} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6557
6558typedef PACKED_PRE struct PACKED_POST
6559{
6560 /* success or failure */
6561 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006562 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006563} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6564
6565typedef PACKED_PRE struct PACKED_POST
6566{
6567 tHalMsgHeader header;
6568 tHalSetPktFilterRspParams pktFilterRspParams;
6569} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6570
Jeff Johnsone7245742012-09-05 17:12:55 -07006571typedef PACKED_PRE struct PACKED_POST
6572{
6573 tANI_U8 bssIdx;
6574} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006575
6576typedef PACKED_PRE struct PACKED_POST
6577{
6578 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006579 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006580} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6581
Jeff Johnsone7245742012-09-05 17:12:55 -07006582
Jeff Johnson295189b2012-06-20 16:38:30 -07006583typedef PACKED_PRE struct PACKED_POST
6584{
6585 tANI_U8 filterId;
6586 tANI_U32 matchCnt;
6587} tHalRcvFltPktMatchCnt;
6588typedef PACKED_PRE struct PACKED_POST
6589{
6590 /* Success or Failure */
6591 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306592 tANI_U32 matchCnt;
6593 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006594 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006595} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6596
6597typedef PACKED_PRE struct PACKED_POST
6598{
6599 tHalMsgHeader header;
6600 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6601} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6602
6603typedef PACKED_PRE struct PACKED_POST
6604{
6605 tANI_U32 status; /* only valid for response message */
6606 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006607 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006608}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6609
6610typedef PACKED_PRE struct PACKED_POST
6611{
6612 tHalMsgHeader header;
6613 tHalRcvFltPktClearParam filterClearParam;
6614} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6615
6616typedef PACKED_PRE struct PACKED_POST
6617{
6618 tHalMsgHeader header;
6619 tHalRcvFltPktClearParam filterClearParam;
6620} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6621
6622typedef PACKED_PRE struct PACKED_POST
6623{
Dino Mycle8afbac12014-07-04 22:06:17 +05306624 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006625 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006626}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6627
6628typedef PACKED_PRE struct PACKED_POST
6629{
6630 tHalMsgHeader header;
6631 tHalRcvFltMcAddrListType mcAddrList;
6632} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6633
6634typedef PACKED_PRE struct PACKED_POST
6635{
6636 tHalMsgHeader header;
6637 tHalRcvFltPktSetMcListRspType rspParam;
6638} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6639
6640
6641/*---------------------------------------------------------------------------
6642 *******************Packet Filtering Definitions End*******************
6643 *--------------------------------------------------------------------------*/
6644
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006645/*
6646 * There are two versions of this message
6647 * Version 1 : Base version
6648 * Current version : Base version + Max LI modulated DTIM
6649 */
6650typedef PACKED_PRE struct PACKED_POST
6651{
6652 /* Ignore DTIM */
6653 tANI_U32 uIgnoreDTIM;
6654
6655 /*DTIM Period*/
6656 tANI_U32 uDTIMPeriod;
6657
6658 /* Listen Interval */
6659 tANI_U32 uListenInterval;
6660
6661 /* Broadcast Multicast Filter */
6662 tANI_U32 uBcastMcastFilter;
6663
6664 /* Beacon Early Termination */
6665 tANI_U32 uEnableBET;
6666
6667 /* Beacon Early Termination Interval */
6668 tANI_U32 uBETInterval;
6669}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6670
6671typedef PACKED_PRE struct PACKED_POST
6672{
6673 tHalMsgHeader header;
6674 tSetPowerParamsVer1Type powerParams;
6675} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6676
Jeff Johnson295189b2012-06-20 16:38:30 -07006677typedef PACKED_PRE struct PACKED_POST
6678{
6679 /* Ignore DTIM */
6680 tANI_U32 uIgnoreDTIM;
6681
6682 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306683 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006684
6685 /* Listen Interval */
6686 tANI_U32 uListenInterval;
6687
6688 /* Broadcast Multicast Filter */
6689 tANI_U32 uBcastMcastFilter;
6690
6691 /* Beacon Early Termination */
6692 tANI_U32 uEnableBET;
6693
6694 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306695 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006696
6697 /* MAX LI for modulated DTIM */
6698 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006699}tSetPowerParamsType, *tpSetPowerParamsType;
6700
6701typedef PACKED_PRE struct PACKED_POST
6702{
6703 tHalMsgHeader header;
6704 tSetPowerParamsType powerParams;
6705} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6706
6707typedef PACKED_PRE struct PACKED_POST{
6708
6709 tHalMsgHeader header;
6710
6711 /*status of the request */
6712 tANI_U32 status;
6713
6714} tSetPowerParamsResp, *tpSetPowerParamsResp;
6715
6716/*---------------------------------------------------------------------------
6717 ****************Capability bitmap exchange definitions and macros starts*************
6718 *--------------------------------------------------------------------------*/
6719
Anand Kumar012623a2013-01-11 17:00:00 -08006720typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006721 MCC = 0,
6722 P2P = 1,
6723 DOT11AC = 2,
6724 SLM_SESSIONIZATION = 3,
6725 DOT11AC_OPMODE = 4,
6726 SAP32STA = 5,
6727 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006728 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006729 WLANACTIVE_OFFLOAD = 8,
6730 BEACON_OFFLOAD = 9,
6731 SCAN_OFFLOAD = 10,
6732 ROAM_OFFLOAD = 11,
6733 BCN_MISS_OFFLOAD = 12,
6734 STA_POWERSAVE = 13,
6735 STA_ADVANCED_PWRSAVE = 14,
6736 AP_UAPSD = 15,
6737 AP_DFS = 16,
6738 BLOCKACK = 17,
6739 PHY_ERR = 18,
6740 BCN_FILTER = 19,
6741 RTT = 20,
6742 RATECTRL = 21,
6743 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006744 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006745 SPECULATIVE_PS_POLL = 24,
6746 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006747 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006748 WLAN_SCAN_OFFLOAD = 27,
6749 WLAN_PERIODIC_TX_PTRN = 28,
6750 ADVANCE_TDLS = 29,
6751 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306752 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306753 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306754 CH_SWITCH_V1 = 33,
6755 HT40_OBSS_SCAN = 34,
6756 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006757 WLAN_MCADDR_FLT = 36,
6758 WLAN_CH144 = 37,
6759 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306760 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306761 LINK_LAYER_STATS_MEAS = 40,
6762 MU_MIMO = 41,
6763 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306764 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306765 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306766 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306767 DISA = 46,
6768 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306769 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306770 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306771 TDLS_OFF_CHANNEL = 51,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306772 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306773 ENHANCED_TXBD_COMPLETION = 54,
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05306774 LOGGING_ENHANCEMENT = 55,
Kumar Anandea78e792013-10-10 23:47:01 -07006775 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006776} placeHolderInCapBitmap;
6777
Jeff Johnson295189b2012-06-20 16:38:30 -07006778typedef PACKED_PRE struct PACKED_POST{
6779
6780 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006781} tWlanFeatCaps, *tpWlanFeatCaps;
6782
6783typedef PACKED_PRE struct PACKED_POST{
6784
Dino Mycle8afbac12014-07-04 22:06:17 +05306785 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006786 tWlanFeatCaps wlanFeatCaps;
6787
6788} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6789
Jeff Johnsone7245742012-09-05 17:12:55 -07006790#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6791#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006792#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006793#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006794#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006795#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006796#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006797#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306798#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306799#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306800#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306801#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306802#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006803
Jeff Johnsone7245742012-09-05 17:12:55 -07006804tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6805
Jeff Johnson295189b2012-06-20 16:38:30 -07006806#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006807 if ((b)<=127) { \
6808 arr_index = (b)/32; \
6809 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006810 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006811 (a)->featCaps[arr_index] |= (1<<bit_index); \
6812 } \
6813 }
6814#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006815 if ((b)<=127) { \
6816 arr_index = (b)/32; \
6817 bit_index = (b)%32; \
6818 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006819 } \
6820 }
6821#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006822 if ((b)<=127) { \
6823 arr_index = (b)/32; \
6824 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006825 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006826 } \
6827 }
6828
6829/*---------------------------------------------------------------------------
6830 * WLAN_HAL_WAKE_REASON_IND
6831 *--------------------------------------------------------------------------*/
6832
6833/* status codes to help debug rekey failures */
6834typedef enum
6835{
6836 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6837 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6838 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6839 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6840 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6841 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6842 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6843 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6844 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6845 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6846
6847 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6848} tGTKRekeyStatus;
6849
6850/* wake reason types */
6851typedef enum
6852{
6853 WLAN_HAL_WAKE_REASON_NONE = 0,
6854 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6855 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6856 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6857 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6858 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6859 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6860 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6861} tWakeReasonType;
6862
6863/*
6864 Wake Packet which is saved at tWakeReasonParams.DataStart
6865 This data is sent for any wake reasons that involve a packet-based wakeup :
6866
6867 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6868 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6869 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6870 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6871 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6872
6873 The information is provided to the host for auditing and debug purposes
6874
6875*/
6876
6877/*
6878 Wake reason indication parameters
6879*/
6880typedef PACKED_PRE struct PACKED_POST
6881{
6882 uint32 ulReason; /* see tWakeReasonType */
6883 uint32 ulReasonArg; /* argument specific to the reason type */
6884 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6885 HAL truncates the data (i.e. data packets) this length
6886 will be less than the actual length */
6887 uint32 ulActualDataLen; /* actual length of data */
6888 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6889 see specific wake type */
6890} tWakeReasonParams, *tpWakeReasonParams;
6891
6892/*
6893 Wake reason indication
6894*/
6895typedef PACKED_PRE struct PACKED_POST
6896{
6897 tHalMsgHeader header;
6898 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006899 tANI_U32 uBssIdx : 8;
6900 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006901} tHalWakeReasonInd, *tpHalWakeReasonInd;
6902
6903/*---------------------------------------------------------------------------
6904* WLAN_HAL_GTK_OFFLOAD_REQ
6905*--------------------------------------------------------------------------*/
6906
6907#define HAL_GTK_KEK_BYTES 16
6908#define HAL_GTK_KCK_BYTES 16
6909
6910#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6911
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006912#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6913
Jeff Johnson295189b2012-06-20 16:38:30 -07006914typedef PACKED_PRE struct PACKED_POST
6915{
6916 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306917 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006918 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6919 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006920 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006921} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6922
6923typedef PACKED_PRE struct PACKED_POST
6924{
6925 tHalMsgHeader header;
6926 tHalGtkOffloadReqParams gtkOffloadReqParams;
6927} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6928
6929/*---------------------------------------------------------------------------
6930* WLAN_HAL_GTK_OFFLOAD_RSP
6931*--------------------------------------------------------------------------*/
6932typedef PACKED_PRE struct PACKED_POST
6933{
6934 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006935 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006936} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6937
6938typedef PACKED_PRE struct PACKED_POST
6939{
6940 tHalMsgHeader header;
6941 tHalGtkOffloadRspParams gtkOffloadRspParams;
6942} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6943
6944
6945/*---------------------------------------------------------------------------
6946* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6947*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006948typedef PACKED_PRE struct PACKED_POST
6949{
6950 tANI_U8 bssIdx;
6951
6952} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006953
6954typedef PACKED_PRE struct PACKED_POST
6955{
6956 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006957 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006958} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6959
6960/*---------------------------------------------------------------------------
6961* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6962*--------------------------------------------------------------------------*/
6963typedef PACKED_PRE struct PACKED_POST
6964{
6965 tANI_U32 ulStatus; /* success or failure */
6966 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6967 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6968 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6969 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6970 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006971 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006972} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6973
6974typedef PACKED_PRE struct PACKED_POST
6975{
6976 tHalMsgHeader header;
6977 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6978} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6979
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006980/*---------------------------------------------------------------------------
6981* WLAN_HAL_DHCP_IND
6982*--------------------------------------------------------------------------*/
6983typedef PACKED_PRE struct PACKED_POST
6984{
6985 /*Indicates the device mode which indicates about the DHCP activity */
6986 tANI_U8 device_mode;
6987 tSirMacAddr macAddr;
6988} tDHCPInfo, *tpDHCPInfo;
6989
6990typedef PACKED_PRE struct PACKED_POST
6991{
6992 tHalMsgHeader header;
6993 tANI_U32 status; /* success or failure */
6994} tDHCPIndStatus, *tpDHCPIndstatus;
6995
Jeff Johnson295189b2012-06-20 16:38:30 -07006996/*
6997 Thermal Mitigation mode of operation.
6998 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6999 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
7000 reducing transmit power
7001 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
7002*/
7003typedef enum
7004{
7005 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
7006 HAL_THERMAL_MITIGATION_MODE_0,
7007 HAL_THERMAL_MITIGATION_MODE_1,
7008 HAL_THERMAL_MITIGATION_MODE_2,
7009 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7010}tHalThermalMitigationModeType;
7011//typedef tANI_S16 tHalThermalMitigationModeType;
7012
7013/*
7014 Thermal Mitigation level.
7015 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
7016 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
7017
7018 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
7019 level indicates normal mode of operation
7020 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
7021 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
7022 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
7023 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
7024*/
Dino Mycle8afbac12014-07-04 22:06:17 +05307025typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07007026{
7027 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
7028 HAL_THERMAL_MITIGATION_LEVEL_0,
7029 HAL_THERMAL_MITIGATION_LEVEL_1,
7030 HAL_THERMAL_MITIGATION_LEVEL_2,
7031 HAL_THERMAL_MITIGATION_LEVEL_3,
7032 HAL_THERMAL_MITIGATION_LEVEL_4,
7033 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7034}tHalThermalMitigationLevelType;
7035//typedef tANI_S16 tHalThermalMitigationLevelType;
7036
7037typedef PACKED_PRE struct PACKED_POST
7038{
7039 /* Thermal Mitigation Operation Mode */
7040 tHalThermalMitigationModeType thermalMitMode;
7041
7042 /* Thermal Mitigation Level */
7043 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307044
Jeff Johnson295189b2012-06-20 16:38:30 -07007045}tSetThermalMitgationType, *tpSetThermalMitgationType;
7046
7047/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7048typedef PACKED_PRE struct PACKED_POST
7049{
7050 tHalMsgHeader header;
7051 tSetThermalMitgationType thermalMitParams;
7052} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7053
7054typedef PACKED_PRE struct PACKED_POST{
7055
7056 tHalMsgHeader header;
7057
7058 /*status of the request */
7059 tANI_U32 status;
7060
7061} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7062
Dino Mycle8afbac12014-07-04 22:06:17 +05307063/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007064provided to FW from Host via periodic messages */
7065typedef PACKED_PRE struct PACKED_POST {
7066 /* TX stats */
7067 uint32 txBytesPushed;
7068 uint32 txPacketsPushed;
7069
7070 /* RX stats */
7071 uint32 rxBytesRcvd;
7072 uint32 rxPacketsRcvd;
7073 uint32 rxTimeTotal;
7074} tStaStatsClassB, *tpStaStatsClassB;
7075
7076typedef PACKED_PRE struct PACKED_POST {
7077
7078 /* Duration over which this stats was collected */
7079 tANI_U32 duration;
7080
7081 /* Per STA Stats */
7082 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7083} tStatsClassBIndParams, *tpStatsClassBIndParams;
7084
7085typedef PACKED_PRE struct PACKED_POST {
7086
7087 tHalMsgHeader header;
7088
7089 /* Class B Stats */
7090 tStatsClassBIndParams statsClassBIndParams;
7091} tStatsClassBInd, *tpStatsClassBInd;
7092
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307093/*Wifi Proximity paramters in AP mode*/
7094#ifdef FEATURE_WIFI_PROXIMITY
7095
7096typedef PACKED_PRE struct PACKED_POST{
7097
7098 tANI_U8 wifiProximityChannel;
7099 tANI_U32 wifiProximityDuration;
7100 tANI_U32 wifiProximityInterval;
7101 tANI_U32 wifiProximityMode;
7102 tANI_U32 wifiProximityStatus;
7103 tSirMacAddr bssId;
7104 tSirMacSSid ssId;
7105
7106} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7107
7108typedef PACKED_PRE struct PACKED_POST
7109{
7110 tHalMsgHeader header;
7111
7112 tSetWifiProximityReqParam wifiProximityReqParams;
7113
7114}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7115
7116/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7117typedef PACKED_PRE struct PACKED_POST{
7118
7119 tHalMsgHeader header;
7120
7121 /*status of the request */
7122 tANI_U32 status;
7123
7124} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7125
7126#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007127
7128#ifdef FEATURE_SPECULATIVE_PS_POLL
7129/*---------------------------------------------------------------------------
7130 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7131 *--------------------------------------------------------------------------*/
7132typedef PACKED_PRE struct PACKED_POST
7133{
7134 tANI_U8 bssIdx;
7135 tANI_U16 serviceInterval;
7136 tANI_U16 suspendInterval;
7137 tANI_U8 acMask;
7138} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7139
7140typedef PACKED_PRE struct PACKED_POST
7141{
7142 tHalMsgHeader header;
7143 tHalStartSpecPsPollReqParams specPsPollReq;
7144} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7145
7146/*---------------------------------------------------------------------------
7147 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7148 *--------------------------------------------------------------------------*/
7149typedef PACKED_PRE struct PACKED_POST
7150{
7151 /* success or failure */
7152 tANI_U32 status;
7153 tANI_U8 bssIdx;
7154} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7155
7156typedef PACKED_PRE struct PACKED_POST
7157{
7158 tHalMsgHeader header;
7159 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7160} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7161
7162/*---------------------------------------------------------------------------
7163 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7164 *--------------------------------------------------------------------------*/
7165typedef PACKED_PRE struct PACKED_POST
7166{
7167 tHalMsgHeader header;
7168 tANI_U8 bssIdx;
7169} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7170#endif
7171
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307172#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307173#define HAL_MAX_SUPP_CHANNELS 128
7174#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307175/*---------------------------------------------------------------------------
7176 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7177 *-------------------------------------------------------------------------*/
7178typedef PACKED_PRE struct PACKED_POST
7179{
7180 /*STA Index*/
7181 tANI_U16 staIdx;
7182
7183 /* if this is 1, self is initiator and peer is reponder */
7184 tANI_U8 bIsResponder;
7185
7186 /* QoS Info */
7187 tANI_U8 acVOUAPSDFlag:1;
7188 tANI_U8 acVIUAPSDFlag:1;
7189 tANI_U8 acBKUAPSDFlag:1;
7190 tANI_U8 acBEUAPSDFlag:1;
7191 tANI_U8 aAck:1;
7192 tANI_U8 maxServicePeriodLength:2;
7193 tANI_U8 moreDataAck:1;
7194
7195 /*TDLS Peer U-APSD Buffer STA Support*/
7196 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007197
7198 /*TDLS off channel related params */
7199 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307200 tANI_U8 peerCurrOperClass;
7201 tANI_U8 selfCurrOperClass;
7202 tANI_U8 validChannelsLen;
7203 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7204 tANI_U8 validOperClassesLen;
7205 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307206}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7207
7208typedef PACKED_PRE struct PACKED_POST
7209{
7210 tHalMsgHeader header;
7211 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7212} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7213
7214/*---------------------------------------------------------------------------
7215 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7216 *-------------------------------------------------------------------------*/
7217
7218typedef PACKED_PRE struct PACKED_POST
7219{
7220 tANI_U32 status;
7221
7222 /*STA Index*/
7223 tANI_U16 staIdx;
7224} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7225
7226typedef PACKED_PRE struct PACKED_POST
7227{
7228 tHalMsgHeader header;
7229 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7230} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307231/*---------------------------------------------------------------------------
7232 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7233 + *-------------------------------------------------------------------------*/
7234typedef PACKED_PRE struct PACKED_POST
7235{
7236 /*STA Index*/
7237 tANI_U16 staIdx;
7238 /* if this is 1, self is initiator otherwise responder only*/
7239 tANI_U8 isOffchannelInitiator;
7240 /*TDLS off channel related params */
7241 tANI_U8 targetOperClass;
7242 tANI_U8 targetChannel;
7243 tANI_U8 secondaryChannelOffset;
7244 tANI_U8 reserved[32];
7245}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7246
7247typedef PACKED_PRE struct PACKED_POST
7248{
7249 tHalMsgHeader header;
7250 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7251} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7252/*---------------------------------------------------------------------------
7253 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7254 *-------------------------------------------------------------------------*/
7255
7256typedef PACKED_PRE struct PACKED_POST
7257{
7258 tANI_U32 status;
7259 /*STA Index*/
7260 tANI_U16 staIdx;
7261} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7262
7263typedef PACKED_PRE struct PACKED_POST
7264{
7265 tHalMsgHeader header;
7266 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7267} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7268
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307269
7270/*---------------------------------------------------------------------------
7271 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7272 *-------------------------------------------------------------------------*/
7273typedef PACKED_PRE struct PACKED_POST
7274{
7275 /*STA Index*/
7276 tANI_U16 staIdx;
7277}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7278
7279typedef PACKED_PRE struct PACKED_POST
7280{
7281 tHalMsgHeader header;
7282 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7283} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7284
7285/*---------------------------------------------------------------------------
7286 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7287 *-------------------------------------------------------------------------*/
7288
7289typedef PACKED_PRE struct PACKED_POST
7290{
7291 tANI_U32 status;
7292
7293 /*STA Index*/
7294 tANI_U16 staIdx;
7295} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7296
7297typedef PACKED_PRE struct PACKED_POST
7298{
7299 tHalMsgHeader header;
7300 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7301} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7302
7303/*---------------------------------------------------------------------------
7304 *WLAN_HAL_TDLS_IND
7305 *--------------------------------------------------------------------------*/
7306
7307typedef PACKED_PRE struct PACKED_POST
7308{
7309 tANI_U16 assocId;
7310 tANI_U16 staIdx;
7311 tANI_U16 status;
7312 tANI_U16 reasonCode;
7313}tTdlsIndParams, *tpTdlsIndParams;
7314
7315
7316typedef PACKED_PRE struct PACKED_POST
7317{
7318 tHalMsgHeader header;
7319 tTdlsIndParams tdlsIndParams;
7320}tTdlsIndMsg, *tpTdlsIndMsg;
7321
7322#endif
7323
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007324/*---------------------------------------------------------------------------
7325 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7326 *--------------------------------------------------------------------------*/
7327
7328typedef PACKED_PRE struct PACKED_POST
7329{
7330 tANI_U8 bssIdx;
7331 tANI_U8 staIdx;
7332 tSirMacAddr staAddr;
7333}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7334
7335
7336typedef PACKED_PRE struct PACKED_POST
7337{
7338 tHalMsgHeader header;
7339 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7340}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7341
7342
Kumar Anandea78e792013-10-10 23:47:01 -07007343/*********** Scan Offload Related Structures *************/
7344#define HAL_NUM_SCAN_SSID 10
7345#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007346
Kumar Anandea78e792013-10-10 23:47:01 -07007347/*
7348 * Enumetation to indicate scan type (active/passive)
7349 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007350typedef enum
7351{
Kumar Anandea78e792013-10-10 23:47:01 -07007352 eSIR_PASSIVE_SCAN,
7353 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7354} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007355
7356typedef PACKED_PRE struct PACKED_POST
7357{
Kumar Anandea78e792013-10-10 23:47:01 -07007358 tANI_U8 numBssid;
7359 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7360 tANI_U8 numSsid;
7361 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7362 tANI_BOOLEAN hiddenSsid;
7363 tSirMacAddr selfMacAddr;
7364 tSirBssType bssType;
7365 tSirScanType scanType;
7366 tANI_U32 minChannelTime;
7367 tANI_U32 maxChannelTime;
7368 tANI_BOOLEAN p2pSearch;
7369 tANI_U8 channelCount;
7370 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7371 tANI_U16 ieFieldLen;
7372 tANI_U8 ieField[1];
7373}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007374
7375/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007376 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007377 *-------------------------------------------------------------------------*/
7378typedef PACKED_PRE struct PACKED_POST
7379{
Kumar Anandf53016f2013-09-04 15:15:53 -07007380 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007381 tScanOffloadReqType scanOffloadParams;
7382} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007383
7384/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007385 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007386 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007387typedef PACKED_PRE struct PACKED_POST
7388{
7389 tHalMsgHeader header;
7390
7391 /*status of the request - just to indicate SO has acknowledged
7392 * * the request and will start scanning*/
7393 tANI_U32 status;
7394} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7395
7396/*---------------------------------------------------------------------------
7397 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7398 *-------------------------------------------------------------------------*/
7399typedef PACKED_PRE struct PACKED_POST
7400{
7401 tHalMsgHeader header;
7402} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7403
7404/*---------------------------------------------------------------------------
7405 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7406 *-------------------------------------------------------------------------*/
7407typedef PACKED_PRE struct PACKED_POST
7408{
7409 tHalMsgHeader header;
7410
7411 /*status of the request - just to indicate SO has acknowledged
7412 the request and will start scanning*/
7413 tANI_U32 status;
7414} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7415
7416/*
7417 * Enumetation of scan events indicated by firmware to the host
7418 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007419typedef enum
7420{
Kumar Anandea78e792013-10-10 23:47:01 -07007421 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7422 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7423 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7424 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7425 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7426 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7427 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7428 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7429 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7430} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007431
7432typedef PACKED_PRE struct PACKED_POST
7433{
Kumar Anandea78e792013-10-10 23:47:01 -07007434 tScanEventType event;
7435 tANI_U32 channel;
7436 tANI_U32 scanId;
7437} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007438
Kumar Anandea78e792013-10-10 23:47:01 -07007439/*---------------------------------------------------------------------------
7440 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7441 *-------------------------------------------------------------------------*/
7442typedef PACKED_PRE struct PACKED_POST
7443{
7444 tHalMsgHeader header;
7445 tScanOffloadEventInfo scanOffloadInd;
7446} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007447
Kumar Anandea78e792013-10-10 23:47:01 -07007448typedef PACKED_PRE struct PACKED_POST {
7449 /** primary 20 MHz channel frequency in mhz */
7450 tANI_U32 mhz;
7451 /** Center frequency 1 in MHz*/
7452 tANI_U32 band_center_freq1;
7453 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7454 tANI_U32 band_center_freq2;
7455 /* The first 26 bits are a bit mask to indicate any channel flags,
7456 (see WLAN_HAL_CHAN_FLAG*)
7457 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7458 tANI_U32 channel_info;
7459 /** contains min power, max power, reg power and reg class id. */
7460 tANI_U32 reg_info_1;
7461 /** contains antennamax */
7462 tANI_U32 reg_info_2;
7463} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007464
Kumar Anandf53016f2013-09-04 15:15:53 -07007465
Kumar Anandea78e792013-10-10 23:47:01 -07007466typedef enum {
7467 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7468 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7469 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7470 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7471 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7472 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7473 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7474 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7475 WLAN_HAL_MODE_11AC_VHT20 = 8,
7476 WLAN_HAL_MODE_11AC_VHT40 = 9,
7477 WLAN_HAL_MODE_11AC_VHT80 = 10,
7478 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7479 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7480 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7481 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007482
Kumar Anandea78e792013-10-10 23:47:01 -07007483} tChannelPhyModeType;
7484
7485#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7486#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7487#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7488#define WLAN_HAL_CHAN_AP_DISABLED 9
7489#define WLAN_HAL_CHAN_FLAG_DFS 10
7490#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7491#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007492#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7493
7494#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007495 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007496 } while(0)
7497
7498#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007499 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007500
7501#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7502 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7503 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7504 } while(0)
7505#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7506
7507#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7508 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7509 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7510 } while(0)
7511#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7512
7513#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7514 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7515 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7516 } while(0)
7517#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7518#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7519 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7520 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7521 } while(0)
7522#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7523
7524#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7525 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7526 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7527 } while(0)
7528#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7529
7530#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7531 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7532 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7533 } while(0)
7534#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 -07007535
7536typedef PACKED_PRE struct PACKED_POST
7537{
7538 tANI_U8 numChan;
7539 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7540} tUpdateChannelReqType;
7541
7542/*---------------------------------------------------------------------------
7543 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7544 *-------------------------------------------------------------------------*/
7545typedef PACKED_PRE struct PACKED_POST
7546{
7547 tHalMsgHeader header;
7548 tUpdateChannelReqType updateChannelParams;
7549} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7550
7551/*---------------------------------------------------------------------------
7552 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7553 *-------------------------------------------------------------------------*/
7554typedef PACKED_PRE struct PACKED_POST
7555{
7556 tHalMsgHeader header;
7557
7558 /*status of the request - just to indicate SO has acknowledged
7559 * * the request and will start scanning*/
7560 tANI_U32 status;
7561} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7562
7563
7564/*---------------------------------------------------------------------------
7565* WLAN_HAL_TX_FAIL_IND
7566*--------------------------------------------------------------------------*/
7567// Northbound indication from FW to host on weak link detection
7568typedef PACKED_PRE struct PACKED_POST
7569{
7570 // Sequence number increases by 1 whenever the device driver
7571 // sends a notification event. This is cleared as 0 when the
7572 // JOIN IBSS commamd is issued
7573 tANI_U16 seqNo;
7574 tANI_U16 staId;
7575 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7576} tHalTXFailIndParams, *tpHalTXFailIndParams;
7577
7578typedef PACKED_PRE struct PACKED_POST
7579{
7580 tHalMsgHeader header;
7581 tHalTXFailIndParams txFailIndParams;
7582} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7583
7584/*---------------------------------------------------------------------------
7585* WLAN_HAL_TX_FAIL_MONITOR_IND
7586*--------------------------------------------------------------------------*/
7587// Southbound message from Host to monitor the Tx failures
7588typedef PACKED_PRE struct PACKED_POST
7589{
7590 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7591 tANI_U8 tx_fail_count;
7592} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7593
7594typedef PACKED_PRE struct PACKED_POST
7595{
7596 tHalMsgHeader header;
7597 tTXFailMonitorInfo txFailMonitor;
7598} tTXFailMonitorInd, *tpTXFailMonitorInd;
7599
7600/*---------------------------------------------------------------------------
7601* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7602*--------------------------------------------------------------------------*/
7603typedef PACKED_PRE struct PACKED_POST
7604{
7605 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7606 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7607} tDestIpNextHopMacPair;
7608
7609typedef PACKED_PRE struct PACKED_POST
7610{
7611 tANI_U8 numEntries;
7612 tDestIpNextHopMacPair destIpMacPair[1];
7613} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007614
7615typedef PACKED_PRE struct PACKED_POST
7616{
7617 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007618 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7619} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007620
Kumar Anandf53016f2013-09-04 15:15:53 -07007621/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007622 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7623 *-------------------------------------------------------------------------*/
7624typedef enum
7625{
7626 /* reassociation is done, but couldn't finish security handshake */
7627 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7628
7629 /* roam has successfully completed by firmware */
7630 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7631
7632 /* UNKONW error */
7633 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7634}tHalRoamOffloadRoamAuthStatus;
7635
7636typedef enum
7637{
7638 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7639 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7640 WLAN_HAL_ROAM_TYPE_OKC,
7641 WLAN_HAL_ROAM_TYPE_CCKM,
7642 WLAN_HAL_ROAM_TYPE_FT,
7643 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7644} tHalRoamOffloadType;
7645
7646typedef PACKED_PRE struct PACKED_POST
7647{
7648 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7649 tANI_U16 beaconProbeRespOffset;
7650
7651 /* Length of beaon / probe resp. */
7652 tANI_U16 beaconProbeRespLength;
7653
7654 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7655 tANI_U16 reassocRespOffset;
7656
7657 /* Length of reassoc resp. */
7658 tANI_U16 reassocRespLength;
7659
7660 /* 0 for probe response frame, 1 for beacon frame, */
7661 tANI_U8 isBeacon;
7662
7663 /* staIdx of old AP */
7664 tANI_U8 oldStaIdx;
7665
7666 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7667 tConfigBssRspParams */
7668 /* bssIdx of new roamed AP */
7669 tANI_U8 bssIdx;
7670
7671 /* DPU descriptor index for PTK */
7672 tANI_U8 dpuDescIndx;
7673
7674 /* PTK DPU signature */
7675 tANI_U8 ucastDpuSignature;
7676
7677 /* DPU descriptor index for GTK*/
7678 tANI_U8 bcastDpuDescIndx;
7679
7680 /* GTK DPU signature */
7681 tANI_U8 bcastDpuSignature;
7682
7683 /*DPU descriptor for IGTK*/
7684 tANI_U8 mgmtDpuDescIndx;
7685
7686 /* IGTK DPU signature */
7687 tANI_U8 mgmtDpuSignature;
7688
7689 /* Station Index for BSS entry*/
7690 tANI_U8 staIdx;
7691
7692 /* Self station index for this BSS */
7693 tANI_U8 selfStaIdx;
7694
7695 /* Bcast station for buffering bcast frames in AP role */
7696 tANI_U8 bcastStaIdx;
7697
7698 /* MAC address of roamed AP */
7699 tSirMacAddr bssid;
7700
7701 /*HAL fills in the tx power used for mgmt frames in this field. */
7702 tANI_S8 txMgmtPower;
7703
7704 /* success or failure */
7705 tHalRoamOffloadRoamAuthStatus authStatus;
7706
7707 /* TODO : add more info as needed */
7708
7709 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7710 /* Beacon or probe resp from new AP. This is in 802.11
7711 frame format starting with MAC header. */
7712 /* Up to beaconProbeRespLength */
7713
7714 /* reassocRespOffset points to starting of reassoc resp frame */
7715 /* Reassoc resp from new AP. This is in 802.11
7716 frame format starting with MAC header. */
7717 /* Up to reassocRespLength */
7718
7719} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7720
7721
7722typedef PACKED_PRE struct PACKED_POST
7723{
7724 tHalMsgHeader header;
7725 tHalRoamOffloadSynchIndParams params;
7726} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7727
7728/*---------------------------------------------------------------------------
7729 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7730 *-------------------------------------------------------------------------*/
7731typedef PACKED_PRE struct PACKED_POST
7732{
7733 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7734 tSirMacAddr bssid;
7735} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7736
7737typedef PACKED_PRE struct PACKED_POST
7738{
7739 tHalMsgHeader header;
7740 tHalRoamOffloadSynchCnfParams params;
7741} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7742
7743
7744/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007745 WLAN_HAL_RATE_UPDATE_IND
7746 *-------------------------------------------------------------------------*/
7747
7748typedef PACKED_PRE struct PACKED_POST
7749{
7750 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7751 tANI_S32 ucastDataRate; //unit Mbpsx10
7752
7753 /* TX flag to differentiate between HT20, HT40 etc */
7754 tTxRateInfoFlags ucastDataRateTxFlag;
7755
7756 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7757 tSirMacAddr bssid;
7758
7759 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7760 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7761
7762 /* TX flag to differentiate between HT20, HT40 etc */
7763 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7764
7765 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7766 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7767
7768 /* TX flag to differentiate between HT20, HT40 etc */
7769 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7770
7771 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7772 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7773
7774 /* TX flag to differentiate between HT20, HT40 etc */
7775 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7776
7777} tHalRateUpdateParams, *tpHalRateUpdateParams;
7778
7779typedef PACKED_PRE struct PACKED_POST
7780{
7781 tHalMsgHeader header;
7782 tHalRateUpdateParams halRateUpdateParams;
7783} tHalRateUpdateInd, * tpHalRateUpdateInd;
7784
7785/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307786 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7787 *-------------------------------------------------------------------------*/
7788
Abhishek Singhe0443152015-06-18 10:07:43 +05307789#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307790
7791typedef PACKED_PRE struct PACKED_POST
7792{
7793 tANI_U32 startFreq;
7794 tANI_U32 endFreq;
7795} tHalFreqRange, *tpHalFreqRange;
7796
7797typedef PACKED_PRE struct PACKED_POST
7798{
7799 tANI_U32 avoidCnt;
7800 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7801} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7802
7803typedef PACKED_PRE struct PACKED_POST
7804{
7805 tHalMsgHeader header;
7806 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7807} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7808
7809/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307810 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007811 *-------------------------------------------------------------------------*/
7812
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307813typedef enum
7814{
7815 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7816 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7817 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7818}tHT40OBssScanCmdType;
7819
7820typedef PACKED_PRE struct PACKED_POST
7821{
7822 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007823
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307824 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007825 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7826 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7827 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7828 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7829 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7830 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7831 tANI_U16 OBSSScanActivityThreshold;
7832
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307833 tANI_U8 selfStaIdx;
7834 tANI_U8 bssIdx;
7835 tANI_U8 fortyMHZIntolerent;
7836 tANI_U8 channelCount;
7837 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7838 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007839
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307840 tANI_U16 ieFieldLen;
7841 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7842}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7843
7844typedef PACKED_PRE struct PACKED_POST
7845{
7846 tHalMsgHeader header;
7847 tHT40ObssScanIndType scanHT40ObssScanParams;
7848} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7849
7850/*---------------------------------------------------------------------------
7851 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7852 *-------------------------------------------------------------------------*/
7853typedef PACKED_PRE struct PACKED_POST
7854{
7855 tHalMsgHeader header;
7856 tANI_U8 bssIdx;
7857} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307858
7859/*---------------------------------------------------------------------------
7860 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7861 *-------------------------------------------------------------------------*/
7862
7863typedef PACKED_PRE struct PACKED_POST
7864{
7865 /* Valid BSS Idx for beacon miss rate */
7866 tANI_U8 bssIdx;
7867
7868}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7869
7870typedef PACKED_PRE struct PACKED_POST
7871{
7872 tHalMsgHeader header;
7873 tHalBcnMissRateReqParams bcnMissRateReqParams;
7874} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7875
7876/*---------------------------------------------------------------------------
7877 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7878 *-------------------------------------------------------------------------*/
7879
7880typedef PACKED_PRE struct PACKED_POST
7881{
7882 tANI_U32 status;
7883 tANI_U32 bcnMissCnt;
7884}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7885
7886typedef PACKED_PRE struct PACKED_POST
7887{
7888 tHalMsgHeader header;
7889 tHalBcnMissRateRspParams bcnMissRateRspParams;
7890}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7891
Sunil Dutt8377a382014-05-26 21:18:04 +05307892/*--------------------------------------------------------------------------
7893* WLAN_HAL_LL_SET_STATS_REQ
7894*---------------------------------------------------------------------------*/
7895
7896typedef PACKED_PRE struct PACKED_POST
7897{
7898 tANI_U32 req_id;
7899 tANI_U8 sta_id;
7900 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7901 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7902} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7903
7904typedef PACKED_PRE struct PACKED_POST
7905{
7906 tHalMsgHeader header;
7907 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7908} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7909
7910/*---------------------------------------------------------------------------
7911 WLAN_HAL_LL_SET_STATS_RSP
7912---------------------------------------------------------------------------*/
7913
7914typedef PACKED_PRE struct PACKED_POST
7915{
7916 tANI_U32 status;
7917 tANI_U32 resp_id;
7918 tANI_U8 iface_id;
7919} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7920
7921typedef PACKED_PRE struct PACKED_POST
7922{
7923 tHalMsgHeader header;
7924 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7925} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7926
7927/*---------------------------------------------------------------------------
7928 WLAN_HAL_LL_GET_STATS_REQ
7929---------------------------------------------------------------------------*/
7930
7931typedef PACKED_PRE struct PACKED_POST
7932{
7933 tANI_U32 req_id;
7934 tANI_U8 sta_id;
7935 tANI_U32 param_id_mask;
7936} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7937
7938typedef PACKED_PRE struct PACKED_POST
7939{
7940 tHalMsgHeader header;
7941 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7942} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7943
7944/*---------------------------------------------------------------------------
7945 WLAN_HAL_LL_GET_STATS_RSP
7946---------------------------------------------------------------------------*/
7947typedef PACKED_PRE struct PACKED_POST
7948{
7949 tANI_U32 status;
7950 tANI_U32 resp_id;
7951 tANI_U8 iface_id;
7952} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7953
7954typedef PACKED_PRE struct PACKED_POST
7955{
7956 tHalMsgHeader header;
7957 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7958} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7959
7960/*---------------------------------------------------------------------------
7961 WLAN_HAL_LL_CLEAR_STATS_REQ
7962---------------------------------------------------------------------------*/
7963typedef PACKED_PRE struct PACKED_POST
7964{
7965 tANI_U32 req_id;
7966 tANI_U8 sta_id;
7967 tANI_U32 stats_clear_req_mask;
7968 tANI_U8 stop_req;
7969} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
7970
7971typedef PACKED_PRE struct PACKED_POST
7972{
7973 tHalMsgHeader header;
7974 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
7975} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
7976
7977/*---------------------------------------------------------------------------
7978 WLAN_HAL_LL_CLEAR_STATS_RSP
7979---------------------------------------------------------------------------*/
7980typedef PACKED_PRE struct PACKED_POST
7981{
7982 tANI_U32 status;
7983 tANI_U8 sta_id;
7984 tANI_U32 resp_id;
7985 tANI_U32 stats_clear_rsp_mask;
7986 tANI_U8 stop_req_status;
7987} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
7988
7989typedef PACKED_PRE struct PACKED_POST
7990{
7991 tHalMsgHeader header;
7992 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
7993} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
7994
7995/*---------------------------------------------------------------------------
7996 WLAN_HAL_LL_NOTIFY_STATS
7997---------------------------------------------------------------------------*/
7998
7999typedef PACKED_PRE struct PACKED_POST
8000{
8001 tHalMsgHeader header;
8002 tANI_U32 param_id;
8003 tANI_U8 iface_id;
8004 tANI_U32 resp_id;
8005 tANI_U32 more_result_to_follow;
8006 tANI_U8 result[1];
8007} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07008008
Dino Mycle108eff22014-06-10 09:36:44 +05308009/*---------------------------------------------------------------------------
8010 * WLAN_HAL_EXT_SCAN_START_REQ
8011 *-------------------------------------------------------------------------*/
8012
Dino Mycle8afbac12014-07-04 22:06:17 +05308013typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308014{
8015 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
8016 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
8017 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
8018 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
8019 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
8020 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
8021 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05308022 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308023} tExtScanChannelBandMask;
8024
8025typedef PACKED_PRE struct PACKED_POST
8026{
8027 tANI_U32 channel; // frequency
8028 tANI_U32 dwellTimeMs; // dwell time hint
8029 tANI_U8 passive; // 0 => active,
8030 // 1 => passive scan; ignored for DFS
8031}tExtScanChannelSpec, *tpExtScanChannelSpec;
8032
8033typedef PACKED_PRE struct PACKED_POST
8034 {
8035 /* bucket index, 0 based */
8036 tANI_U8 bucketId;
8037 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8038 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308039 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308040 tANI_U32 period;
8041 /* 0 => normal reporting (reporting rssi history only,
8042 when rssi history buffer is % full)
8043 * 1 => same as 0 + report a scan completion event after scanning this bucket
8044 * 2 => same as 1 + forward scan results (beacons/probe responses + IEs) in
8045 real time to HAL (Required for L = P0)
8046 * 3 => same as 2 + forward scan results (beacons/probe responses + IEs) in
8047 real time to host (Not required for L = P3) */
8048 tANI_U8 reportEvents;
8049 /* number of channels */
8050 tANI_U8 numChannels;
8051 /* if channels to scan. In the TLV channelList[] */
8052 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8053}tExtScanBucketData, *tpExtScanBucketData;
8054
8055typedef PACKED_PRE struct PACKED_POST
8056{
8057 tANI_U32 requestId;
8058 tANI_U8 sessionId;
8059 /* Base period (milliseconds) used by scan buckets to define periodicity
8060 of the scans */
8061 tANI_U32 basePeriod;
8062 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8063 (keep the most significant, i.e. stronger RSSI) */
8064 tANI_U32 maxApPerScan;
8065 /* in %, when buffer is this much full, wake up host */
8066 tANI_U32 reportThreshold;
8067 /* This will be off channel minimum time */
8068 tANI_U16 neighborScanChannelMinTime;
8069 /* This will be out off channel max time */
8070 tANI_U16 neighborScanChannelMaxTime;
8071 /* This will be the home (BSS) channel time */
8072 tANI_U16 homeAwayTime;
8073 /* number of buckets (maximum 8) */
8074 tANI_U8 numBuckets;
8075 /* Buckets data */
8076 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8077} tHalExtScanStartReq, *tpHalExtScanStartReq;
8078
8079typedef PACKED_PRE struct PACKED_POST
8080{
8081 tHalMsgHeader header;
8082 tHalExtScanStartReq extScanStartReq;
8083}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8084
8085/*---------------------------------------------------------------------------
8086 * WLAN_HAL_EXT_SCAN_START_RSP
8087 *-------------------------------------------------------------------------*/
8088
8089typedef PACKED_PRE struct PACKED_POST
8090{
8091 tANI_U32 requestId;
8092 tANI_U32 status;
8093}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8094
8095typedef PACKED_PRE struct PACKED_POST
8096{
8097 tHalMsgHeader header;
8098 tHalExtScanStartRsp extScanStartRsp;
8099}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8100
8101/*---------------------------------------------------------------------------
8102 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8103 *-------------------------------------------------------------------------*/
8104
8105typedef PACKED_PRE struct PACKED_POST
8106{
8107 tANI_U32 requestId;
8108 tANI_U8 sessionId;
8109}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8110
8111typedef PACKED_PRE struct PACKED_POST
8112{
8113 tHalMsgHeader header;
8114 tHalExtScanGetCapReq extScanGetCapReq;
8115}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8116
8117/*---------------------------------------------------------------------------
8118 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8119 *-------------------------------------------------------------------------*/
8120
8121typedef PACKED_PRE struct PACKED_POST
8122{
8123 tANI_U32 requestId;
8124 tANI_U32 status;
8125
8126 tANI_U32 scanCacheSize;
8127 tANI_U32 scanBuckets;
8128 tANI_U32 maxApPerScan;
8129 tANI_U32 maxRssiSampleSize;
8130 tANI_U32 maxScanReportingThreshold;
8131
8132 tANI_U32 maxHotlistAPs;
8133 tANI_U32 maxSignificantWifiChangeAPs;
8134
8135 tANI_U32 maxBssidHistoryEntries;
8136}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8137
8138typedef PACKED_PRE struct PACKED_POST
8139{
8140 tHalMsgHeader header;
8141 tHalExtScanGetCapRsp extScanGetCapRsp;
8142}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8143
8144/*---------------------------------------------------------------------------
8145 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8146 *-------------------------------------------------------------------------*/
8147
8148typedef PACKED_PRE struct PACKED_POST
8149{
8150 tANI_U32 requestId;
8151 tANI_U8 sessionId;
8152 /*
8153 * 1 return cached results and flush it
8154 * 0 return cached results and do not flush
8155 */
8156 tANI_BOOLEAN flush;
8157}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8158
8159typedef PACKED_PRE struct PACKED_POST
8160{
8161 tHalMsgHeader header;
8162 tHalExtScanGetScanReq getScanReq;
8163}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8164
8165/*---------------------------------------------------------------------------
8166 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8167 *-------------------------------------------------------------------------*/
8168
8169typedef PACKED_PRE struct PACKED_POST
8170{
8171 tANI_U32 requestId;
8172 tANI_U32 status;
8173}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8174
8175typedef PACKED_PRE struct PACKED_POST
8176{
8177 tHalMsgHeader header;
8178 tHalExtScanGetScanRsp getScanRsp;
8179}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8180
8181/*---------------------------------------------------------------------------
8182 * WLAN_HAL_EXT_SCAN_RESULT_IND
8183 *-------------------------------------------------------------------------*/
8184
8185typedef PACKED_PRE struct PACKED_POST
8186{
8187 tANI_U64 ts; // time of discovery
8188 tANI_U8 ssid[32+1]; // null terminated SSID
8189 tSirMacAddr bssid; // BSSID
8190 tANI_U32 channel; // channel frequency in MHz
8191 tANI_S32 rssi; // RSSI in dBm
8192 tANI_U32 rtt; // RTT in nanoseconds - not expected
8193 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308194 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308195 tANI_U16 capability; // capabilities advertised in the beacon
8196} tHalExtScanResultParams, *tpHalExtScanResultParams;
8197
8198typedef PACKED_PRE struct PACKED_POST
8199{
8200 tHalMsgHeader header;
8201 tANI_U32 requestId;
8202 tANI_U32 scanResultSize;
8203 tANI_BOOLEAN moreData;
8204 tANI_U8 extScanResult[1];
8205}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8206
8207/*---------------------------------------------------------------------------
8208 * WLAN_HAL_EXT_SCAN_STOP_REQ
8209 *-------------------------------------------------------------------------*/
8210
8211typedef PACKED_PRE struct PACKED_POST
8212{
8213 tANI_U32 requestId;
8214 tANI_U8 sessionId;
8215}tHalExtScanStopReq, *tpHalExtScanStopReq;
8216
8217typedef PACKED_PRE struct PACKED_POST
8218{
8219 tHalMsgHeader header;
8220 tHalExtScanStopReq extScanStopReq;
8221}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8222
8223/*---------------------------------------------------------------------------
8224 * WLAN_HAL_EXT_SCAN_STOP_RSP
8225 *-------------------------------------------------------------------------*/
8226
8227typedef PACKED_PRE struct PACKED_POST
8228{
8229 tANI_U32 requestId;
8230 tANI_U32 status;
8231}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8232
8233typedef PACKED_PRE struct PACKED_POST
8234{
8235 tHalMsgHeader header;
8236 tHalExtScanStopRsp extScanStopRsp;
8237}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8238
8239/*---------------------------------------------------------------------------
8240 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8241 *-------------------------------------------------------------------------*/
8242
Dino Mycle8afbac12014-07-04 22:06:17 +05308243typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308244{
8245 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8246 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308247 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308248} tHalExtScanProgressEventType;
8249
8250typedef PACKED_PRE struct PACKED_POST
8251{
8252 tANI_U32 requestId;
8253 tANI_U32 status;
8254 tHalExtScanProgressEventType extScanEventType;
8255}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8256
8257typedef PACKED_PRE struct PACKED_POST
8258{
8259 tHalMsgHeader header;
8260 tHalExtScanProgressInd extScanProgressInd;
8261}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8262
8263/*---------------------------------------------------------------------------
8264 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8265 *-------------------------------------------------------------------------*/
8266
8267typedef PACKED_PRE struct PACKED_POST
8268{
8269 tANI_U32 requestId;
8270 tANI_U32 numOfScanResAvailable;
8271}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8272
8273typedef PACKED_PRE struct PACKED_POST
8274{
8275 tHalMsgHeader header;
8276 tHalExtScanResAvailableInd extScanResAvailableInd;
8277}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8278
8279/*---------------------------------------------------------------------------
8280 * WLAN_HAL_SIG_RSSI_SET_REQ
8281 *-------------------------------------------------------------------------*/
8282
8283typedef PACKED_PRE struct PACKED_POST
8284{
8285 /* AP BSSID */
8286 tSirMacAddr bssid;
8287 /* low threshold - used in L for significant_change - not used in L for
8288 hotlist*/
8289 tANI_S32 lowRssiThreshold;
8290 /* high threshold - used in L for significant rssi - used in L for hotlist */
8291 tANI_S32 highRssiThreshold;
8292 /* channel hint */
8293 tANI_U32 channel;
8294} tApThresholdParams, *tpApThresholdParams;
8295
8296typedef PACKED_PRE struct PACKED_POST
8297{
8298 tANI_U32 requestId;
8299 tANI_U8 sessionId;
8300 /* number of samples for averaging RSSI */
8301 tANI_U32 rssiSampleSize;
8302 /* number of missed samples to confirm AP loss */
8303 tANI_U32 lostApSampleSize;
8304 /* number of APs breaching threshold required for firmware to generate event */
8305 tANI_U32 minBreaching;
8306 /* number of significant APs */
8307 tANI_U32 numAp;
8308 /* significant APs */
8309 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_SIG_CHANGE_APS];
8310} tHalSigRssiSetReq, *tpHalSigRssiSetReq;
8311
8312typedef PACKED_PRE struct PACKED_POST
8313{
8314 tHalMsgHeader header;
8315 tHalSigRssiSetReq extScanSigRssiReq;
8316}tHalSigRssiSetReqMsg, *tpHalSigRssiSetReqMsg;
8317
8318/*---------------------------------------------------------------------------
8319 * WLAN_HAL_SIG_RSSI_SET_RSP
8320 *-------------------------------------------------------------------------*/
8321
8322typedef PACKED_PRE struct PACKED_POST
8323{
8324 tANI_U32 requestId;
8325 tANI_U32 status;
8326}tHalSigRssiSetRsp, *tpHalSigRssiSetRsp;
8327
8328
8329typedef PACKED_PRE struct PACKED_POST
8330{
8331 tHalMsgHeader header;
8332 tHalSigRssiSetRsp sigRssiSetRsp;
8333}tHalSigRssiSetRspMsg, *tpHalSigRssiSetRspMsg;
8334
8335/*---------------------------------------------------------------------------
8336 * WLAN_HAL_SIG_RSSI_RESET_REQ
8337 *-------------------------------------------------------------------------*/
8338
8339typedef PACKED_PRE struct PACKED_POST
8340{
8341 tANI_U32 requestId;
8342}tHalSigRssiResetReq, *tpHalSigRssiResetReq;
8343
8344typedef PACKED_PRE struct PACKED_POST
8345{
8346 tHalMsgHeader header;
8347 tHalSigRssiResetReq sigRssiResetReq;
8348}tHalSigRssiResetReqMsg, *tpHalSigRssiResetReqMsg;
8349
8350/*---------------------------------------------------------------------------
8351 * WLAN_HAL_SIG_RSSI_RESET_RSP
8352 *-------------------------------------------------------------------------*/
8353
8354typedef PACKED_PRE struct PACKED_POST
8355{
8356 tANI_U32 requestId;
8357 tANI_U32 status;
8358}tHalSigRssiResetRsp, *tpHalSigRssiResetRsp;
8359
8360typedef PACKED_PRE struct PACKED_POST
8361{
8362 tHalMsgHeader header;
8363 tHalSigRssiResetRsp sigRssiResetRsp;
8364}tHalSigRssiResetRspMsg, *tpHalSigRssiResetRspMsg;
8365
8366/*---------------------------------------------------------------------------
8367 * WLAN_HAL_SIG_RSSI_RESULT_IND
8368 *-------------------------------------------------------------------------*/
8369
8370typedef PACKED_PRE struct PACKED_POST
8371{
8372 // BSSID
8373 tSirMacAddr bssid;
8374 // channel frequency in MHz
8375 tANI_U32 channel;
8376 // number of rssi samples
8377 tANI_U8 numRssi;
8378 // RSSI history in db
8379 tANI_S32 rssi[WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE];
8380} tHalSigRssiResultParams, *tpHalSigRssiResultParams;
8381
8382typedef PACKED_PRE struct PACKED_POST
8383{
8384 tHalMsgHeader header;
8385 tANI_U32 requestId;
8386 tANI_U32 numSigRssiBss;
8387 tANI_BOOLEAN moreData;
8388 tANI_U8 sigRssiResult[1];
8389}tHalSigRssiResultIndMsg, *tpHalSigRssiResultIndMsg;
8390
8391/*---------------------------------------------------------------------------
8392 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8393 *-------------------------------------------------------------------------*/
8394
8395typedef PACKED_PRE struct PACKED_POST
8396{
8397 tANI_U32 requestId;
8398 tANI_U8 sessionId;
8399 // number of hotlist APs
8400 tANI_U32 numAp;
8401 // hotlist APs
8402 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8403} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8404
8405typedef PACKED_PRE struct PACKED_POST
8406{
8407 tHalMsgHeader header;
8408 tHalBssidHotlistSetReq bssidHotlistSetReq;
8409}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8410
8411/*---------------------------------------------------------------------------
8412 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8413 *-------------------------------------------------------------------------*/
8414
8415typedef PACKED_PRE struct PACKED_POST
8416{
8417 tANI_U32 requestId;
8418 tANI_U32 status;
8419}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8420
8421typedef PACKED_PRE struct PACKED_POST
8422{
8423 tHalMsgHeader header;
8424 tHalHotlistSetRsp hotlistSetRsp;
8425}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8426
8427/*---------------------------------------------------------------------------
8428 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8429 *-------------------------------------------------------------------------*/
8430
8431typedef PACKED_PRE struct PACKED_POST
8432{
8433 tANI_U32 requestId;
8434}tHalHotlistResetReq, *tpHalHotlistResetReq;
8435
8436typedef PACKED_PRE struct PACKED_POST
8437{
8438 tHalMsgHeader header;
8439 tHalHotlistResetReq hotlistResetReq;
8440}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8441
8442/*---------------------------------------------------------------------------
8443 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8444 *-------------------------------------------------------------------------*/
8445
8446typedef PACKED_PRE struct PACKED_POST
8447{
8448 tANI_U32 requestId;
8449 tANI_U32 status;
8450}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8451
8452typedef PACKED_PRE struct PACKED_POST
8453{
8454 tHalMsgHeader header;
8455 tHalHotlistResetRsp hotlistResetRsp;
8456}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8457
8458/*---------------------------------------------------------------------------
8459 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8460 *-------------------------------------------------------------------------*/
8461
8462typedef PACKED_PRE struct PACKED_POST
8463{
8464 tHalMsgHeader header;
8465 tANI_U32 requestId;
8466 tANI_U32 numHotlistBss;
8467 tANI_BOOLEAN moreData;
8468 tANI_U8 bssHotlist[1];
8469}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8470
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308471
8472/*---------------------------------------------------------------------------
8473 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8474 *--------------------------------------------------------------------------*/
8475typedef PACKED_PRE struct PACKED_POST
8476{
8477 tANI_U8 macAddr[6];
8478 tANI_U32 reserved1;
8479 tANI_U32 reserved2;
8480}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8481
8482typedef PACKED_PRE struct PACKED_POST
8483{
8484 tHalMsgHeader header;
8485 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8486} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8487
8488/*---------------------------------------------------------------------------
8489* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8490*-------------------------------------------------------------------------*/
8491
8492typedef PACKED_PRE struct PACKED_POST
8493{
8494 tANI_U32 status;
8495 tANI_U32 reserved1;
8496} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8497
8498typedef PACKED_PRE struct PACKED_POST
8499{
8500 tHalMsgHeader header;
8501 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8502} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308503/*---------------------------------------------------------------------------
8504 *WLAN_HAL_GET_FRAME_LOG_REQ
8505 *--------------------------------------------------------------------------*/
8506typedef PACKED_PRE struct PACKED_POST
8507{
8508 tANI_U8 flags;
8509}tGetFrameLogReqType, * tpGetFrameLogReqType;
8510
8511typedef PACKED_PRE struct PACKED_POST
8512{
8513 tHalMsgHeader header;
8514 tGetFrameLogReqType tGetFrameLogReqParams;
8515} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8516
8517/*---------------------------------------------------------------------------
8518 * WLAN_HAL_GET_FRAME_LOG_RSP
8519 *-------------------------------------------------------------------------*/
8520typedef PACKED_PRE struct PACKED_POST
8521{
8522 tANI_U32 status;
8523} tGetFrameLogResp, * tpGetFrameLogResp;
8524
8525typedef PACKED_PRE struct PACKED_POST
8526{
8527 tHalMsgHeader header;
8528 tGetFrameLogResp tGetFrameLogRespParams;
8529} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8530
8531/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308532 *WLAN_HAL_FW_LOGGING_INIT_REQ
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308533 *--------------------------------------------------------------------------*/
8534typedef PACKED_PRE struct PACKED_POST
8535{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308536 /* BIT0 - enable frame logging
8537 * BIT1 - enableBMUHWtracing
8538 * BIT2 - enableQXDMlogging
8539 * BIT3 - enableUElogDpuTxp
8540 */
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308541 tANI_U8 enableFlag;
8542 tANI_U8 frameType;
8543 tANI_U8 frameSize;
8544 tANI_U8 bufferMode;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308545 /* Host mem address to be used as logmailbox */
8546 tANI_U64 logMailBoxAddr;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308547 /* firmware will wakeup the host to send logs always */
8548 tANI_U8 continuousFrameLogging;
8549 /* Logging mail box version */
8550 tANI_U8 logMailBoxVer;
Siddharth Bhalc0e09d52015-06-18 19:06:43 +05308551 /* Max ring size in firmware to log msgs when host is suspended state */
8552 tANI_U8 maxLogBuffSize;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308553 /* when firmware log reaches this threshold and
8554 * if host is awake it will push the logs.
8555 */
8556 tANI_U8 minLogBuffSize;
8557 /* Reserved for future purpose */
8558 tANI_U32 reserved0;
8559 tANI_U32 reserved1;
8560 tANI_U32 reserved2;
8561}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308562
8563typedef PACKED_PRE struct PACKED_POST
8564{
8565 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308566 tFWLoggingInitReqType tFWLoggingInitReqParams;
8567} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308568
8569/*---------------------------------------------------------------------------
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308570 * WLAN_HAL_FW_LOGGING_INIT_RSP
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308571 *-------------------------------------------------------------------------*/
8572typedef PACKED_PRE struct PACKED_POST
8573{
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308574 tANI_U32 status;
8575 /* FW mail box address */
8576 tANI_U64 logMailBoxAddr;
8577 /* Logging mail box version */
8578 tANI_U8 logMailBoxVer;
8579 /* Qshrink is enabled */
8580 tANI_BOOLEAN logCompressEnabled;
8581 /* Reserved for future purpose */
8582 tANI_U32 reserved0;
8583 tANI_U32 reserved1;
8584 tANI_U32 reserved2;
8585} tFWLoggingInitResp, * tpFWLoggingInitResp;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308586
8587typedef PACKED_PRE struct PACKED_POST
8588{
8589 tHalMsgHeader header;
Siddharth Bhal14eb5f12015-05-27 22:35:47 +05308590 tFWLoggingInitResp tFWLoggingInitRespParams;
8591} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
8592
8593/*---------------------------------------------------------------------------
8594 * WLAN_HAL_FW_LOGGING_DXE_DONE_IND
8595 *-------------------------------------------------------------------------*/
8596typedef PACKED_PRE struct PACKED_POST
8597{
8598 tANI_U32 status;
8599 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8600 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8601} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
8602
8603typedef PACKED_PRE struct PACKED_POST
8604{
8605 tHalMsgHeader header;
8606 tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
8607} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
8608
8609/*---------------------------------------------------------------------------
8610 * Logging mail box structure
8611 *-------------------------------------------------------------------------*/
8612
8613#define MAILBOX_VERSION_V1 0x1
8614
8615typedef PACKED_PRE struct PACKED_POST
8616{
8617 /* Logging mail box version */
8618 tANI_U8 logMbVersion;
8619 /* Current logging buffer address */
8620 tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
8621 /* Current logging buffer length */
8622 tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
8623 /* Flush reason code 0: Host requested Non zero FW FATAL event*/
8624 tANI_U16 reasonCode;
8625 /* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
8626 tANI_U8 logType;
8627 /* Indicate if Last segment of log is received*/
8628 tANI_BOOLEAN done;
8629}tLoggingMailBox, *tpLoggingMailBox;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308630
Katya Nigamf0511f62015-05-05 16:40:57 +05308631/*---------------------------------------------------------------------------
8632* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
8633*-------------------------------------------------------------------------*/
8634
8635/* only 1 filter is supported as of now */
8636#define NUM_FILTERS_SUPPORTED 1
8637
8638typedef PACKED_PRE struct PACKED_POST
8639{
8640 tSirMacAddr macAddr;
8641 tANI_U8 isA1filteringNeeded;
8642 tANI_U8 isA2filteringNeeded;
8643 tANI_U8 isA3filteringNeeded;
8644}tHalMacFilter, *tpHalMacFilter;
8645
8646typedef PACKED_PRE struct PACKED_POST
8647{
8648 tANI_U8 channelNumber;
8649 ePhyChanBondState cbState;
8650
8651 tANI_U32 maxAmpduLen;
8652 tANI_U32 maxMpduInAmpduLen;
8653
8654 tANI_U8 crcCheckEnabled;
8655
8656 /* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
8657 tANI_U8 numMacFilters;
8658 tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
8659
8660 /* Each bit position maps to IEEE convention of typeSubtype */
8661 tANI_U64 typeSubtypeBitmap;
8662
8663 tANI_U64 reserved;
8664
8665}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
8666
8667typedef PACKED_PRE struct PACKED_POST
8668{
8669 tHalMsgHeader header;
8670 tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
8671}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
8672
8673
8674/*---------------------------------------------------------------------------
8675* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
8676*-------------------------------------------------------------------------*/
8677
8678typedef PACKED_PRE struct PACKED_POST
8679{
8680 tANI_U32 status;
8681}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
8682
8683typedef PACKED_PRE struct PACKED_POST
8684{
8685 tHalMsgHeader header;
8686 tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
8687}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
8688
8689/*---------------------------------------------------------------------------
8690* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
8691*-------------------------------------------------------------------------*/
8692
8693typedef PACKED_PRE struct PACKED_POST
8694{
8695 tHalMsgHeader header;
8696 tANI_U8 resetConfiguration;
8697}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
8698
8699/*---------------------------------------------------------------------------
8700* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
8701*-------------------------------------------------------------------------*/
8702
8703typedef PACKED_PRE struct PACKED_POST
8704{
8705 tANI_U32 status;
8706}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
8707
8708typedef PACKED_PRE struct PACKED_POST
8709{
8710 tHalMsgHeader header;
8711 tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
8712}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
8713
Jeff Johnson295189b2012-06-20 16:38:30 -07008714#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8715#pragma pack(pop)
8716#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8717#else
8718#endif
8719
8720#endif /* _WLAN_HAL_MSG_H_ */