blob: 9cd61576e2b548aec10e51dea3f5b4e7a6a5c5a0 [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
Jeff Johnson295189b2012-06-20 16:38:30 -0700133/* Message types for messages exchanged between WDI and HAL */
Dino Mycle8afbac12014-07-04 22:06:17 +0530134typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700135{
136 //Init/De-Init
137 WLAN_HAL_START_REQ = 0,
138 WLAN_HAL_START_RSP = 1,
139 WLAN_HAL_STOP_REQ = 2,
140 WLAN_HAL_STOP_RSP = 3,
141
142 //Scan
143 WLAN_HAL_INIT_SCAN_REQ = 4,
144 WLAN_HAL_INIT_SCAN_RSP = 5,
145 WLAN_HAL_START_SCAN_REQ = 6,
146 WLAN_HAL_START_SCAN_RSP = 7 ,
147 WLAN_HAL_END_SCAN_REQ = 8,
148 WLAN_HAL_END_SCAN_RSP = 9,
149 WLAN_HAL_FINISH_SCAN_REQ = 10,
150 WLAN_HAL_FINISH_SCAN_RSP = 11,
151
152 // HW STA configuration/deconfiguration
153 WLAN_HAL_CONFIG_STA_REQ = 12,
154 WLAN_HAL_CONFIG_STA_RSP = 13,
155 WLAN_HAL_DELETE_STA_REQ = 14,
156 WLAN_HAL_DELETE_STA_RSP = 15,
157 WLAN_HAL_CONFIG_BSS_REQ = 16,
158 WLAN_HAL_CONFIG_BSS_RSP = 17,
159 WLAN_HAL_DELETE_BSS_REQ = 18,
160 WLAN_HAL_DELETE_BSS_RSP = 19,
161
162 //Infra STA asscoiation
163 WLAN_HAL_JOIN_REQ = 20,
164 WLAN_HAL_JOIN_RSP = 21,
165 WLAN_HAL_POST_ASSOC_REQ = 22,
166 WLAN_HAL_POST_ASSOC_RSP = 23,
167
168 //Security
169 WLAN_HAL_SET_BSSKEY_REQ = 24,
170 WLAN_HAL_SET_BSSKEY_RSP = 25,
171 WLAN_HAL_SET_STAKEY_REQ = 26,
172 WLAN_HAL_SET_STAKEY_RSP = 27,
173 WLAN_HAL_RMV_BSSKEY_REQ = 28,
174 WLAN_HAL_RMV_BSSKEY_RSP = 29,
175 WLAN_HAL_RMV_STAKEY_REQ = 30,
176 WLAN_HAL_RMV_STAKEY_RSP = 31,
177
178 //Qos Related
179 WLAN_HAL_ADD_TS_REQ = 32,
180 WLAN_HAL_ADD_TS_RSP = 33,
181 WLAN_HAL_DEL_TS_REQ = 34,
182 WLAN_HAL_DEL_TS_RSP = 35,
183 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
184 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
185 WLAN_HAL_ADD_BA_REQ = 38,
186 WLAN_HAL_ADD_BA_RSP = 39,
187 WLAN_HAL_DEL_BA_REQ = 40,
188 WLAN_HAL_DEL_BA_RSP = 41,
189
190 WLAN_HAL_CH_SWITCH_REQ = 42,
191 WLAN_HAL_CH_SWITCH_RSP = 43,
192 WLAN_HAL_SET_LINK_ST_REQ = 44,
193 WLAN_HAL_SET_LINK_ST_RSP = 45,
194 WLAN_HAL_GET_STATS_REQ = 46,
195 WLAN_HAL_GET_STATS_RSP = 47,
196 WLAN_HAL_UPDATE_CFG_REQ = 48,
197 WLAN_HAL_UPDATE_CFG_RSP = 49,
198
199 WLAN_HAL_MISSED_BEACON_IND = 50,
200 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
201 WLAN_HAL_MIC_FAILURE_IND = 52,
202 WLAN_HAL_FATAL_ERROR_IND = 53,
203 WLAN_HAL_SET_KEYDONE_MSG = 54,
Dino Mycle8afbac12014-07-04 22:06:17 +0530204
Jeff Johnson295189b2012-06-20 16:38:30 -0700205 //NV Interface
206 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
207 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
208
209 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
210 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
211 WLAN_HAL_TRIGGER_BA_REQ = 59,
212 WLAN_HAL_TRIGGER_BA_RSP = 60,
213 WLAN_HAL_UPDATE_BEACON_REQ = 61,
214 WLAN_HAL_UPDATE_BEACON_RSP = 62,
215 WLAN_HAL_SEND_BEACON_REQ = 63,
216 WLAN_HAL_SEND_BEACON_RSP = 64,
217
218 WLAN_HAL_SET_BCASTKEY_REQ = 65,
219 WLAN_HAL_SET_BCASTKEY_RSP = 66,
220 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
221 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
222 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Dino Mycle8afbac12014-07-04 22:06:17 +0530223
Jeff Johnson295189b2012-06-20 16:38:30 -0700224 // PTT interface support
225 WLAN_HAL_PROCESS_PTT_REQ = 70,
226 WLAN_HAL_PROCESS_PTT_RSP = 71,
Dino Mycle8afbac12014-07-04 22:06:17 +0530227
Jeff Johnson295189b2012-06-20 16:38:30 -0700228 // BTAMP related events
229 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
230 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
231 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
232 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
233
234 WLAN_HAL_ENTER_IMPS_REQ = 76,
235 WLAN_HAL_EXIT_IMPS_REQ = 77,
236 WLAN_HAL_ENTER_BMPS_REQ = 78,
237 WLAN_HAL_EXIT_BMPS_REQ = 79,
238 WLAN_HAL_ENTER_UAPSD_REQ = 80,
239 WLAN_HAL_EXIT_UAPSD_REQ = 81,
240 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
241 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
242 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
243 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
244 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
245 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
246 WLAN_HAL_ENTER_WOWL_REQ = 88,
247 WLAN_HAL_EXIT_WOWL_REQ = 89,
248 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
249 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
250 WLAN_HAL_GET_RSSI_REQ = 92,
251 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
252 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
253
254 WLAN_HAL_ENTER_IMPS_RSP = 95,
255 WLAN_HAL_EXIT_IMPS_RSP = 96,
256 WLAN_HAL_ENTER_BMPS_RSP = 97,
257 WLAN_HAL_EXIT_BMPS_RSP = 98,
258 WLAN_HAL_ENTER_UAPSD_RSP = 99,
259 WLAN_HAL_EXIT_UAPSD_RSP = 100,
260 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
261 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
262 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
263 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
264 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
265 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
266 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
267 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
268 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
269 WLAN_HAL_ENTER_WOWL_RSP = 110,
270 WLAN_HAL_EXIT_WOWL_RSP = 111,
271 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
272 WLAN_HAL_GET_RSSI_RSP = 113,
273 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
274
275 //11k related events
276 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
277 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
278
279 //11R related msgs
280 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
281 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
282
283 //P2P WLAN_FEATURE_P2P
284 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
285 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Dino Mycle8afbac12014-07-04 22:06:17 +0530286
Jeff Johnson295189b2012-06-20 16:38:30 -0700287 //WLAN Dump commands
288 WLAN_HAL_DUMP_COMMAND_REQ = 121,
289 WLAN_HAL_DUMP_COMMAND_RSP = 122,
290
Jeff Johnsone7245742012-09-05 17:12:55 -0700291 //OEM_DATA FEATURE SUPPORT
292 WLAN_HAL_START_OEM_DATA_REQ = 123,
293 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700294
295 //ADD SELF STA REQ and RSP
296 WLAN_HAL_ADD_STA_SELF_REQ = 125,
297 WLAN_HAL_ADD_STA_SELF_RSP = 126,
298
299 //DEL SELF STA SUPPORT
300 WLAN_HAL_DEL_STA_SELF_REQ = 127,
301 WLAN_HAL_DEL_STA_SELF_RSP = 128,
302
303 // Coex Indication
304 WLAN_HAL_COEX_IND = 129,
305
Dino Mycle8afbac12014-07-04 22:06:17 +0530306 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700307 WLAN_HAL_OTA_TX_COMPL_IND = 130,
308
309 //Host Suspend/resume messages
310 WLAN_HAL_HOST_SUSPEND_IND = 131,
311 WLAN_HAL_HOST_RESUME_REQ = 132,
312 WLAN_HAL_HOST_RESUME_RSP = 133,
313
314 WLAN_HAL_SET_TX_POWER_REQ = 134,
315 WLAN_HAL_SET_TX_POWER_RSP = 135,
316 WLAN_HAL_GET_TX_POWER_REQ = 136,
317 WLAN_HAL_GET_TX_POWER_RSP = 137,
318
319 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Dino Mycle8afbac12014-07-04 22:06:17 +0530320
Jeff Johnson295189b2012-06-20 16:38:30 -0700321 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
322 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
323 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
324 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
325 WLAN_HAL_RADAR_DETECT_IND = 143,
326 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
327 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Dino Mycle8afbac12014-07-04 22:06:17 +0530328 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700329
330 /*PNO messages*/
331 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
332 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
333 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
334 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
335 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
336 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Dino Mycle8afbac12014-07-04 22:06:17 +0530337 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700338
339 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
340 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
341 WLAN_HAL_TX_PER_HIT_IND = 156,
Dino Mycle8afbac12014-07-04 22:06:17 +0530342
Jeff Johnson295189b2012-06-20 16:38:30 -0700343 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Dino Mycle8afbac12014-07-04 22:06:17 +0530344 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700345
346 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Dino Mycle8afbac12014-07-04 22:06:17 +0530347 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700348 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Dino Mycle8afbac12014-07-04 22:06:17 +0530349 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700350 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Dino Mycle8afbac12014-07-04 22:06:17 +0530351 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
352 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700353 * Host and Riva code is in sync*/
354 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Dino Mycle8afbac12014-07-04 22:06:17 +0530355
Jeff Johnson295189b2012-06-20 16:38:30 -0700356 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
357 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
358
359 WLAN_HAL_TSM_STATS_REQ = 168,
360 WLAN_HAL_TSM_STATS_RSP = 169,
361
362 // wake reason indication (WOW)
363 WLAN_HAL_WAKE_REASON_IND = 170,
Dino Mycle8afbac12014-07-04 22:06:17 +0530364 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700365 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
366 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
367 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
368 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
369
370 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
371 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
372 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
373
374 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
375 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
376
Anand Kumar012623a2013-01-11 17:00:00 -0800377 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
378 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800379
Anand Kumar012623a2013-01-11 17:00:00 -0800380 WLAN_HAL_P2P_NOA_START_IND = 184,
381
382 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
383 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Dino Mycle8afbac12014-07-04 22:06:17 +0530384
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800385 WLAN_HAL_CLASS_B_STATS_IND = 187,
386 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800387 WLAN_HAL_DHCP_START_IND = 189,
388 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700389 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
390 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530391 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
392 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700393
394 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
395 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
396 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
397
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530398 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
399 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
400 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
401 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
402 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700403 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700404
Kumar Anandf53016f2013-09-04 15:15:53 -0700405 /* Scan Offload APIs */
406 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
407 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
408 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
409 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
410 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
411 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
412 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
413
Leo Chang397deb72013-08-22 11:33:16 -0700414 /* APIs to offload TCP/UDP Heartbeat handshakes */
415 WLAN_HAL_LPHB_CFG_REQ = 211,
416 WLAN_HAL_LPHB_CFG_RSP = 212,
417 WLAN_HAL_LPHB_IND = 213,
418
Yue Maab3ccfc2013-08-14 17:19:08 -0700419 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
420 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
421 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530422
Kumar Anandf53016f2013-09-04 15:15:53 -0700423 // Events to set Per-Band Tx Power Limit
424 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
425 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
426
427 /* Reliable Multicast using Leader Based Protocol */
428 WLAN_HAL_LBP_LEADER_REQ = 219,
429 WLAN_HAL_LBP_LEADER_RSP = 220,
430 WLAN_HAL_LBP_UPDATE_IND = 221,
431
krunal soni2a4728d2013-09-20 21:56:50 -0700432 /* Batchscan */
433 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
434 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
435 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
436 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
437 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
438
439 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
440 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
441
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700442 WLAN_HAL_RATE_UPDATE_IND = 229,
443
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530444 /* Tx Fail for weak link notification */
445 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
446 WLAN_HAL_TX_FAIL_IND = 231,
447
448 /* Multi-hop IP routing offload */
449 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
450
Amar Singhalb41c45b2014-03-21 14:44:14 -0700451 /* Channel avoidance for LTE Coex */
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530452 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800453
Amar Singhalb41c45b2014-03-21 14:44:14 -0700454 /* Fast Roam Offload Synchup request protocol */
455 /* TODO_LFR3 : change this value accordingly before final check-in */
456 WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
457 WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
458
459 WLAN_HAL_MOTION_START_EVENT_REQ = 250,
460 WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
461
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800462 /* Channel Switch Request version 1 */
463 WLAN_HAL_CH_SWITCH_V1_REQ = 252,
464 WLAN_HAL_CH_SWITCH_V1_RSP = 253,
465
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530466 /* 2G4 HT40 OBSS scan */
467 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700468 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
469
470 /* WLAN NAN Messages */
471 WLAN_HAL_NAN_FIRST = 256,
472 WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
473 WLAN_HAL_NAN_RSP = 257,
474 WLAN_HAL_NAN_EVT = 258,
475 WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
c_hpothu80c30472014-04-14 19:04:48 +0530476 WLAN_HAL_PRINT_REG_INFO_IND = 259,
477
c_hpothua047e572014-05-01 15:03:11 +0530478 WLAN_HAL_GET_BCN_MISS_RATE_REQ = 260,
479 WLAN_HAL_GET_BCN_MISS_RATE_RSP = 261,
480
Sunil Dutt8377a382014-05-26 21:18:04 +0530481 /* WLAN LINK LAYER STATS Messages */
482 WLAN_HAL_LL_SET_STATS_REQ = 262,
483 WLAN_HAL_LL_SET_STATS_RSP = 263,
484 WLAN_HAL_LL_GET_STATS_REQ = 264,
485 WLAN_HAL_LL_GET_STATS_RSP = 265,
486 WLAN_HAL_LL_CLEAR_STATS_REQ = 266,
487 WLAN_HAL_LL_CLEAR_STATS_RSP = 267,
488 WLAN_HAL_LL_NOTIFY_STATS = 268,
Dino Mycle8afbac12014-07-04 22:06:17 +0530489 WLAN_HAL_LL_LAST = WLAN_HAL_LL_NOTIFY_STATS,
Dino Mycle108eff22014-06-10 09:36:44 +0530490
Dino Mycle8afbac12014-07-04 22:06:17 +0530491 /* WLAN EXT_SCAN Messages */
492 WLAN_HAL_EXT_SCAN_START_REQ = 269,
493 WLAN_HAL_EXT_SCAN_START_RSP = 270,
494 WLAN_HAL_EXT_SCAN_GET_CAP_REQ = 271,
495 WLAN_HAL_EXT_SCAN_GET_CAP_RSP = 272,
496 WLAN_HAL_EXT_SCAN_STOP_REQ = 273,
497 WLAN_HAL_EXT_SCAN_STOP_RSP = 274,
498 WLAN_HAL_EXT_SCAN_GET_SCAN_REQ = 275,
499 WLAN_HAL_EXT_SCAN_GET_SCAN_RSP = 276,
Dino Mycle108eff22014-06-10 09:36:44 +0530500
501 WLAN_HAL_BSSID_HOTLIST_SET_REQ = 277,
502 WLAN_HAL_BSSID_HOTLIST_SET_RSP = 278,
503 WLAN_HAL_BSSID_HOTLIST_RESET_REQ = 279,
504 WLAN_HAL_BSSID_HOTLIST_RESET_RSP = 280,
505
506 WLAN_HAL_SIG_RSSI_SET_REQ = 281,
507 WLAN_HAL_SIG_RSSI_SET_RSP = 282,
508 WLAN_HAL_SIG_RSSI_RESET_REQ = 283,
509 WLAN_HAL_SIG_RSSI_RESET_RSP = 284,
510
Dino Mycle8afbac12014-07-04 22:06:17 +0530511 WLAN_HAL_EXT_SCAN_RESULT_IND = 285,
Dino Mycle108eff22014-06-10 09:36:44 +0530512 WLAN_HAL_BSSID_HOTLIST_RESULT_IND = 286,
513 WLAN_HAL_SIG_RSSI_RESULT_IND = 287,
Dino Mycle8afbac12014-07-04 22:06:17 +0530514 WLAN_HAL_EXT_SCAN_PROGRESS_IND = 288,
515 WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND = 289,
Atul Mittal53419ed2014-08-03 19:41:23 +0530516 WLAN_HAL_TDLS_CHAN_SWITCH_REQ = 290,
517 WLAN_HAL_TDLS_CHAN_SWITCH_RSP = 291,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +0530518 WLAN_HAL_MAC_SPOOFED_SCAN_REQ = 292,
519 WLAN_HAL_MAC_SPOOFED_SCAN_RSP = 293,
Srinivas Dasari42584632014-11-26 20:37:19 +0530520 /* LGE DISA encrypt-decrypt Messages */
521 WLAN_HAL_ENCRYPT_DATA_REQ = 294,
522 WLAN_HAL_ENCRYPT_DATA_RSP = 295,
Sunil Dutt8377a382014-05-26 21:18:04 +0530523
Abhishek Singh725c1582014-11-24 11:47:48 +0530524 WLAN_HAL_FW_STATS_REQ = 296,
525 WLAN_HAL_FW_STATS_RSP = 297,
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +0530526 WLAN_HAL_MGMT_LOGGING_INIT_REQ = 298,
527 WLAN_HAL_MGMT_LOGGING_INIT_RSP = 299,
528 WLAN_HAL_GET_FRAME_LOG_REQ = 300,
529 WLAN_HAL_GET_FRAME_LOG_RSP = 301,
Abhishek Singh725c1582014-11-24 11:47:48 +0530530
Abhishek Singhbc310882015-05-22 15:17:02 +0530531 /* Monitor Mode */
532 WLAN_HAL_ENABLE_MONITOR_MODE_REQ = 302,
533 WLAN_HAL_ENABLE_MONITOR_MODE_RSP = 303,
534
535 WLAN_HAL_DISABLE_MONITOR_MODE_REQ = 304,
536 WLAN_HAL_DISABLE_MONITOR_MODE_RSP = 305,
537 WLAN_HAL_SET_RTS_CTS_HTVHT_IND = 306,
538
Sunil Dutt8377a382014-05-26 21:18:04 +0530539 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700540}tHalHostMsgType;
541
Jeff Johnsone7245742012-09-05 17:12:55 -0700542/* Enumeration for Version */
543typedef enum
544{
545 WLAN_HAL_MSG_VERSION0 = 0,
546 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800547 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
548 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700549}tHalHostMsgVersion;
550
Jeff Johnson295189b2012-06-20 16:38:30 -0700551/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530552typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700553{
554 eANI_BOOLEAN_FALSE = 0,
555 eANI_BOOLEAN_TRUE,
556 eANI_BOOLEAN_OFF = 0,
557 eANI_BOOLEAN_ON = 1,
558 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
559} eAniBoolean;
560
561typedef enum
562{
563 eDRIVER_TYPE_PRODUCTION = 0,
564 eDRIVER_TYPE_MFG = 1,
565 eDRIVER_TYPE_DVT = 2,
566 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
567} tDriverType;
568
569typedef enum
570{
571 HAL_STOP_TYPE_SYS_RESET,
572 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
573 HAL_STOP_TYPE_RF_KILL,
574 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
575}tHalStopType;
576
577typedef enum
578{
579 eHAL_SYS_MODE_NORMAL,
580 eHAL_SYS_MODE_LEARN,
581 eHAL_SYS_MODE_SCAN,
582 eHAL_SYS_MODE_PROMISC,
583 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700584 eHAL_SYS_MODE_ROAM_SCAN,
585 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700586 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700587 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
588} eHalSysMode;
589
590typedef enum
591{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800592 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
593 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
594 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
595 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
596 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
597 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
598 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
599 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
600 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700601 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800602 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
603} eHalChanSwitchSource;
604
605typedef enum
606{
Jeff Johnson295189b2012-06-20 16:38:30 -0700607 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
608 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
609 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
610 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700611#ifdef WLAN_FEATURE_11AC
612 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
613 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
614 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
615 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
616 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
617 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
618 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
619#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700620 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
621}ePhyChanBondState;
622
623// Spatial Multiplexing(SM) Power Save mode
624typedef enum eSirMacHTMIMOPowerSaveState
625{
626 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
627 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
628 eSIR_HT_MIMO_PS_NA = 2, // reserved
629 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
630 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
631} tSirMacHTMIMOPowerSaveState;
632
633/* each station added has a rate mode which specifies the sta attributes */
634typedef enum eStaRateMode {
635 eSTA_TAURUS = 0,
636 eSTA_TITAN,
637 eSTA_POLARIS,
638 eSTA_11b,
639 eSTA_11bg,
640 eSTA_11a,
641 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700642#ifdef WLAN_FEATURE_11AC
643 eSTA_11ac,
644#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700645 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
646} tStaRateMode, *tpStaRateMode;
647
648#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
649#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
650#define SIR_NUM_POLARIS_RATES 3 //72,96,108
651
652#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
653
654
655typedef enum eSirBssType
656{
657 eSIR_INFRASTRUCTURE_MODE,
658 eSIR_INFRA_AP_MODE, //Added for softAP support
659 eSIR_IBSS_MODE,
660 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
661 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
662 eSIR_AUTO_MODE,
663 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
664} tSirBssType;
665
666typedef enum eSirNwType
667{
668 eSIR_11A_NW_TYPE,
669 eSIR_11B_NW_TYPE,
670 eSIR_11G_NW_TYPE,
671 eSIR_11N_NW_TYPE,
672 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
673} tSirNwType;
674
675typedef tANI_U16 tSirMacBeaconInterval;
676
677#define SIR_MAC_RATESET_EID_MAX 12
678
679typedef enum eSirMacHTOperatingMode
680{
681 eSIR_HT_OP_MODE_PURE, // No Protection
682 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
683 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
684 eSIR_HT_OP_MODE_MIXED, // Protection is required
685 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
686} tSirMacHTOperatingMode;
687
Jeff Johnson295189b2012-06-20 16:38:30 -0700688/// Encryption type enum used with peer
689typedef enum eAniEdType
690{
691 eSIR_ED_NONE,
692 eSIR_ED_WEP40,
693 eSIR_ED_WEP104,
694 eSIR_ED_TKIP,
695 eSIR_ED_CCMP,
696 eSIR_ED_WPI,
697 eSIR_ED_AES_128_CMAC,
698 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
699} tAniEdType;
700
701#define WLAN_MAX_KEY_RSC_LEN 16
702#define WLAN_WAPI_KEY_RSC_LEN 16
703
704/// MAX key length when ULA is used
705#define SIR_MAC_MAX_KEY_LENGTH 32
706#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
707
708/// Enum to specify whether key is used
709/// for TX only, RX only or both
710typedef enum eAniKeyDirection
711{
712 eSIR_TX_ONLY,
713 eSIR_RX_ONLY,
714 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700715 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700716 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
717} tAniKeyDirection;
718
719typedef enum eAniWepType
720{
721 eSIR_WEP_STATIC,
722 eSIR_WEP_DYNAMIC,
723 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
724} tAniWepType;
725
726typedef enum eSriLinkState {
727
728 eSIR_LINK_IDLE_STATE = 0,
729 eSIR_LINK_PREASSOC_STATE = 1,
730 eSIR_LINK_POSTASSOC_STATE = 2,
731 eSIR_LINK_AP_STATE = 3,
732 eSIR_LINK_IBSS_STATE = 4,
733
734 /* BT-AMP Case */
735 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
736 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
737 eSIR_LINK_BTAMP_AP_STATE = 7,
738 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530739
Jeff Johnson295189b2012-06-20 16:38:30 -0700740 /* Reserved for HAL Internal Use */
741 eSIR_LINK_LEARN_STATE = 9,
742 eSIR_LINK_SCAN_STATE = 10,
743 eSIR_LINK_FINISH_SCAN_STATE = 11,
744 eSIR_LINK_INIT_CAL_STATE = 12,
745 eSIR_LINK_FINISH_CAL_STATE = 13,
746#ifdef WLAN_FEATURE_P2P
747 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530748 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700749#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700750#ifdef WLAN_FEATURE_ROAM_OFFLOAD
751 eSIR_LINK_FT_PREASSOC_STATE = 16,
752#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700753 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
754} tSirLinkState;
755
756typedef enum
757{
758 HAL_SUMMARY_STATS_INFO = 0x00000001,
759 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
760 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
761 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
762 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
763 HAL_PER_STA_STATS_INFO = 0x00000020
764}eHalStatsMask;
765
766/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530767typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700768{
769 BTAMP_EVENT_CONNECTION_START,
770 BTAMP_EVENT_CONNECTION_STOP,
771 BTAMP_EVENT_CONNECTION_TERMINATED,
772 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
773} tBtAmpEventType;
774
775//***************************************************************
776
777
778/*******************PE Statistics*************************/
779typedef enum
780{
781 PE_SUMMARY_STATS_INFO = 0x00000001,
782 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
783 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
784 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
785 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
786 PE_PER_STA_STATS_INFO = 0x00000020,
787 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
788}ePEStatsMask;
789
Sunil Dutt8377a382014-05-26 21:18:04 +0530790
791/******************************LINK LAYER Statitics**********************/
792
793typedef int wifi_radio;
794typedef int wifi_channel;
795typedef int wifi_tx_rate;
796
797/* channel operating width */
798typedef enum {
799 WIFI_CHAN_WIDTH_20 = 0,
800 WIFI_CHAN_WIDTH_40 = 1,
801 WIFI_CHAN_WIDTH_80 = 2,
802 WIFI_CHAN_WIDTH_160 = 3,
803 WIFI_CHAN_WIDTH_80P80 = 4,
804 WIFI_CHAN_WIDTH_5 = 5,
805 WIFI_CHAN_WIDTH_10 = 6,
806} wifi_channel_width;
807
808typedef enum {
809 WIFI_DISCONNECTED = 0,
810 WIFI_AUTHENTICATING = 1,
811 WIFI_ASSOCIATING = 2,
812 WIFI_ASSOCIATED = 3,
813 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
814 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
815} wifi_connection_state;
816
817typedef enum {
818 WIFI_ROAMING_IDLE = 0,
819 WIFI_ROAMING_ACTIVE = 1,
820} wifi_roam_state;
821
822typedef enum {
823 WIFI_INTERFACE_STA = 0,
824 WIFI_INTERFACE_SOFTAP = 1,
825 WIFI_INTERFACE_IBSS = 2,
826 WIFI_INTERFACE_P2P_CLIENT = 3,
827 WIFI_INTERFACE_P2P_GO = 4,
828 WIFI_INTERFACE_NAN = 5,
829 WIFI_INTERFACE_MESH = 6,
830 } wifi_interface_mode;
831
832#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
833#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
834#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
835#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
836#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
837#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
838
839typedef PACKED_PRE struct PACKED_POST
840{
841 wifi_interface_mode mode; // interface mode
842 tANI_U8 mac_addr[6]; // interface mac address (self)
843 wifi_connection_state state; // connection state (valid for STA, CLI only)
844 wifi_roam_state roaming; // roaming state
845 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
846 tANI_U8 ssid[33]; // null terminated SSID
847 tANI_U8 bssid[6]; // bssid
848 tANI_U8 ap_country_str[3]; // country string advertised by AP
849 tANI_U8 country_str[3]; // country string for this association
850} wifi_interface_info;
851
852/* channel information */
853typedef PACKED_PRE struct PACKED_POST
854{
855 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
856 wifi_channel center_freq; // primary 20 MHz channel
857 wifi_channel center_freq0; // center frequency (MHz) first segment
858 wifi_channel center_freq1; // center frequency (MHz) second segment
859} wifi_channel_info;
860
861/* wifi rate info */
862typedef PACKED_PRE struct PACKED_POST
863{
864 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
865 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
866 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
867 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
868 // HT/VHT it would be mcs index
869 tANI_U32 reserved :16; // reserved
870 tANI_U32 bitrate; // units of 100 Kbps
871} wifi_rate;
872
873/* channel statistics */
874typedef PACKED_PRE struct PACKED_POST
875{
876 wifi_channel_info channel; // channel
877 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
878 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
879} wifi_channel_stats;
880
881/* radio statistics */
882typedef PACKED_PRE struct PACKED_POST
883{
884 wifi_radio radio; // wifi radio (if multiple radio supported)
885 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
886 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
887 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
888 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
889 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
890 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
891 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
892 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
893 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
894 tANI_U32 num_channels; // number of channels
895 wifi_channel_stats channels[1]; // channel statistics
896} wifi_radio_stat;
897
898/* per rate statistics */
899typedef PACKED_PRE struct PACKED_POST
900{
901 wifi_rate rate; // rate information *
902 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
903 tANI_U32 rx_mpdu; // number of received data pkts
904 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
905 tANI_U32 retries; // total number of data pkt retries *
906 tANI_U32 retries_short; // number of short data pkt retries
907 tANI_U32 retries_long; // number of long data pkt retries
908} wifi_rate_stat;
909
910/* access categories */
911typedef enum {
912 WIFI_AC_VO = 0,
913 WIFI_AC_VI = 1,
914 WIFI_AC_BE = 2,
915 WIFI_AC_BK = 3,
916 WIFI_AC_MAX = 4,
917} wifi_traffic_ac;
918
919/* wifi peer type */
920typedef enum
921{
922 WIFI_PEER_STA,
923 WIFI_PEER_AP,
924 WIFI_PEER_P2P_GO,
925 WIFI_PEER_P2P_CLIENT,
926 WIFI_PEER_NAN,
927 WIFI_PEER_TDLS,
928 WIFI_PEER_INVALID,
929} wifi_peer_type;
930
931/* per peer statistics */
932typedef PACKED_PRE struct PACKED_POST
933{
934 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
935 tANI_U8 peer_mac_address[6]; // mac address
936 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
937 tANI_U32 num_rate; // number of rates
938 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
939} wifi_peer_info;
940
941/* per access category statistics */
942typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530943{
944 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
945 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
946 tANI_U32 rx_mpdu; // number of received unicast mpdus
947 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
948 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
949 tANI_U32 rx_mcast; // number of received multicast data packets
950 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
951 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
952 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
953 tANI_U32 retries; // total number of data pkt retries
954 tANI_U32 retries_short; // number of short data pkt retries
955 tANI_U32 retries_long; // number of long data pkt retries
956 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
957 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
958 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
959 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
960} wifi_wmm_ac_stat;
961
962/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
963typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530964{
965 wifi_interface_info info; // current state of the interface
966 tANI_U32 beacon_rx; // access point beacon received count from connected AP
967 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
968 tANI_U32 mgmt_action_rx; // action frames received count
969 tANI_U32 mgmt_action_tx; // action frames transmit count
970 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
971 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
972 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
973 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
974} wifi_iface_stat;
975
976/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
977typedef PACKED_PRE struct PACKED_POST
978{
979 tANI_U32 num_peers; // number of peers
980 wifi_peer_info peer_info[1]; // per peer statistics
981} wifi_peer_stat;
982
983/* wifi statistics bitmap for getting statistics */
984#define WMI_LINK_STATS_RADIO 0x00000001
985#define WMI_LINK_STATS_IFACE 0x00000002
986#define WMI_LINK_STATS_ALL_PEER 0x00000004
987#define WMI_LINK_STATS_PER_PEER 0x00000008
988
989/* wifi statistics bitmap for clearing statistics */
990#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
991#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
992#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
993#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
994#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
995#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
996#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
997#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
998
999
Jeff Johnson295189b2012-06-20 16:38:30 -07001000/*---------------------------------------------------------------------------
1001 Message definitons - All the messages below need to be packed
1002 ---------------------------------------------------------------------------*/
1003
1004#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
1005#pragma pack(push, 1)
1006#elif defined(__ANI_COMPILER_PRAGMA_PACK)
1007#pragma pack(1)
1008#else
1009#endif
1010
1011/// Definition for HAL API Version.
1012typedef PACKED_PRE struct PACKED_POST
1013{
1014 tANI_U8 revision;
1015 tANI_U8 version;
1016 tANI_U8 minor;
1017 tANI_U8 major;
1018} tWcnssWlanVersion, *tpWcnssWlanVersion;
1019
1020/// Definition for Encryption Keys
1021typedef PACKED_PRE struct PACKED_POST
1022{
1023 tANI_U8 keyId;
1024 tANI_U8 unicast; // 0 for multicast
1025 tAniKeyDirection keyDirection;
1026 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1027 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1028 tANI_U16 keyLength;
1029 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1030} tSirKeys, *tpSirKeys;
1031
1032
1033//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1034typedef PACKED_PRE struct PACKED_POST
1035{
1036 /*STA Index*/
1037 tANI_U16 staIdx;
1038
1039 /*Encryption Type used with peer*/
1040 tAniEdType encType;
1041
1042 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301043 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001044
1045 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1046 tANI_U8 defWEPIdx;
1047
Jeff Johnson295189b2012-06-20 16:38:30 -07001048 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301049 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1050
Jeff Johnson295189b2012-06-20 16:38:30 -07001051 /*Control for Replay Count, 1= Single TID based replay count on Tx
1052 0 = Per TID based replay count on TX */
1053 tANI_U8 singleTidRc;
1054
1055} tSetStaKeyParams, *tpSetStaKeyParams;
1056
1057
1058
1059/* 4-byte control message header used by HAL*/
1060typedef PACKED_PRE struct PACKED_POST
1061{
Jeff Johnsone7245742012-09-05 17:12:55 -07001062 tHalHostMsgType msgType:16;
1063 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001064 tANI_U32 msgLen;
1065} tHalMsgHeader, *tpHalMsgHeader;
1066
1067/* Config format required by HAL for each CFG item*/
1068typedef PACKED_PRE struct PACKED_POST
1069{
1070 /* Cfg Id. The Id required by HAL is exported by HAL
1071 * in shared header file between UMAC and HAL.*/
1072 tANI_U16 uCfgId;
1073
Dino Mycle8afbac12014-07-04 22:06:17 +05301074 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001075 * in the TLV format.*/
1076 tANI_U16 uCfgLen;
1077
1078 /* Padding bytes for unaligned address's */
1079 tANI_U16 uCfgPadBytes;
1080
1081 /* Reserve bytes for making cfgVal to align address */
1082 tANI_U16 uCfgReserve;
1083
1084 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1085 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1086} tHalCfg, *tpHalCfg;
1087
1088/*---------------------------------------------------------------------------
1089 WLAN_HAL_START_REQ
1090---------------------------------------------------------------------------*/
1091
1092typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1093{
1094 /* Drive Type - Production or FTM etc */
1095 tDriverType driverType;
1096
1097 /*Length of the config buffer*/
1098 tANI_U32 uConfigBufferLen;
1099
Dino Mycle8afbac12014-07-04 22:06:17 +05301100 /* Following this there is a TLV formatted buffer of length
1101 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001102 * The TLV is expected to be formatted like this:
1103 * 0 15 31 31+CFG_LEN-1 length-1
1104 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1105 */
1106} tHalMacStartParameters, *tpHalMacStartParameters;
1107
1108typedef PACKED_PRE struct PACKED_POST
1109{
1110 /* Note: The length specified in tHalMacStartReqMsg messages should be
1111 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1112 tHalMsgHeader header;
1113 tHalMacStartParameters startReqParams;
1114} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1115
1116/*---------------------------------------------------------------------------
1117 WLAN_HAL_START_RSP
1118---------------------------------------------------------------------------*/
1119
1120typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1121{
1122 /*success or failure */
1123 tANI_U16 status;
1124
1125 /*Max number of STA supported by the device*/
1126 tANI_U8 ucMaxStations;
1127
1128 /*Max number of BSS supported by the device*/
1129 tANI_U8 ucMaxBssids;
1130
1131 /*API Version */
1132 tWcnssWlanVersion wcnssWlanVersion;
1133
1134 /*CRM build information */
1135 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1136
1137 /*hardware/chipset/misc version information */
1138 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1139
1140} tHalMacStartRspParams, *tpHalMacStartRspParams;
1141
1142typedef PACKED_PRE struct PACKED_POST
1143{
1144 tHalMsgHeader header;
1145 tHalMacStartRspParams startRspParams;
1146} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1147
1148/*---------------------------------------------------------------------------
1149 WLAN_HAL_STOP_REQ
1150---------------------------------------------------------------------------*/
1151
1152typedef PACKED_PRE struct PACKED_POST
1153{
1154 /*The reason for which the device is being stopped*/
1155 tHalStopType reason;
1156
1157}tHalMacStopReqParams, *tpHalMacStopReqParams;
1158
1159typedef PACKED_PRE struct PACKED_POST
1160{
1161 tHalMsgHeader header;
1162 tHalMacStopReqParams stopReqParams;
1163} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1164
1165/*---------------------------------------------------------------------------
1166 WLAN_HAL_STOP_RSP
1167---------------------------------------------------------------------------*/
1168
1169typedef PACKED_PRE struct PACKED_POST
1170{
1171 /*success or failure */
1172 tANI_U32 status;
1173
1174}tHalMacStopRspParams, *tpHalMacStopRspParams;
1175
1176typedef PACKED_PRE struct PACKED_POST
1177{
1178 tHalMsgHeader header;
1179 tHalMacStopRspParams stopRspParams;
1180} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1181
1182/*---------------------------------------------------------------------------
1183 WLAN_HAL_UPDATE_CFG_REQ
1184---------------------------------------------------------------------------*/
1185
1186typedef PACKED_PRE struct PACKED_POST
1187{
1188 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1189 tANI_U32 uConfigBufferLen;
1190
Dino Mycle8afbac12014-07-04 22:06:17 +05301191 /* Following this there is a TLV formatted buffer of length
1192 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001193 * The TLV is expected to be formatted like this:
1194 * 0 15 31 31+CFG_LEN-1 length-1
1195 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1196 */
1197} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1198
1199typedef PACKED_PRE struct PACKED_POST
1200{
1201 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1202 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1203 tHalMsgHeader header;
1204 tHalUpdateCfgReqParams updateCfgReqParams;
1205} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1206
1207/*---------------------------------------------------------------------------
1208 WLAN_HAL_UPDATE_CFG_RSP
1209---------------------------------------------------------------------------*/
1210
1211typedef PACKED_PRE struct PACKED_POST
1212{
1213 /* success or failure */
1214 tANI_U32 status;
1215
1216}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1217
1218typedef PACKED_PRE struct PACKED_POST
1219{
1220 tHalMsgHeader header;
1221 tHalUpdateCfgRspParams updateCfgRspParams;
1222} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1223
1224/*---------------------------------------------------------------------------
1225 WLAN_HAL_INIT_SCAN_REQ
1226---------------------------------------------------------------------------*/
1227
1228/// Frame control field format (2 bytes)
1229typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1230{
1231
1232#ifndef ANI_LITTLE_BIT_ENDIAN
1233
1234 tANI_U8 subType :4;
1235 tANI_U8 type :2;
1236 tANI_U8 protVer :2;
1237
1238 tANI_U8 order :1;
1239 tANI_U8 wep :1;
1240 tANI_U8 moreData :1;
1241 tANI_U8 powerMgmt :1;
1242 tANI_U8 retry :1;
1243 tANI_U8 moreFrag :1;
1244 tANI_U8 fromDS :1;
1245 tANI_U8 toDS :1;
1246
1247#else
1248
1249 tANI_U8 protVer :2;
1250 tANI_U8 type :2;
1251 tANI_U8 subType :4;
1252
1253 tANI_U8 toDS :1;
1254 tANI_U8 fromDS :1;
1255 tANI_U8 moreFrag :1;
1256 tANI_U8 retry :1;
1257 tANI_U8 powerMgmt :1;
1258 tANI_U8 moreData :1;
1259 tANI_U8 wep :1;
1260 tANI_U8 order :1;
1261
1262#endif
1263
1264} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1265
1266/// Sequence control field
1267typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1268{
1269 tANI_U8 fragNum : 4;
1270 tANI_U8 seqNumLo : 4;
1271 tANI_U8 seqNumHi : 8;
1272} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1273
1274/// Management header format
1275typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1276{
1277 tSirMacFrameCtl fc;
1278 tANI_U8 durationLo;
1279 tANI_U8 durationHi;
1280 tANI_U8 da[6];
1281 tANI_U8 sa[6];
1282 tANI_U8 bssId[6];
1283 tSirMacSeqCtl seqControl;
1284} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1285
1286/// Scan Entry to hold active BSS idx's
1287typedef __ani_attr_pre_packed struct sSirScanEntry
1288{
1289 tANI_U8 bssIdx[HAL_NUM_BSSID];
1290 tANI_U8 activeBSScnt;
1291}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1292
1293typedef PACKED_PRE struct PACKED_POST {
1294
1295 /*LEARN - AP Role
1296 SCAN - STA Role*/
1297 eHalSysMode scanMode;
1298
1299 /*BSSID of the BSS*/
1300 tSirMacAddr bssid;
1301
1302 /*Whether BSS needs to be notified*/
1303 tANI_U8 notifyBss;
1304
1305 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1306 CTS to Self). Must always be a valid frame type.*/
1307 tANI_U8 frameType;
1308
1309 /*UMAC has the option of passing the MAC frame to be used for notifying
1310 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1311 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1312 frameType.*/
1313 tANI_U8 frameLength;
1314
Dino Mycle8afbac12014-07-04 22:06:17 +05301315 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001316 is non-zero. */
1317 tSirMacMgmtHdr macMgmtHdr;
1318
1319 /*Entry to hold number of active BSS idx's*/
1320 tSirScanEntry scanEntry;
1321
1322} tInitScanParams, * tpInitScanParams;
1323
1324typedef PACKED_PRE struct PACKED_POST
1325{
1326 tHalMsgHeader header;
1327 tInitScanParams initScanParams;
1328} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1329
1330typedef PACKED_PRE struct PACKED_POST {
1331
1332 /*LEARN - AP Role
1333 SCAN - STA Role*/
1334 eHalSysMode scanMode;
1335
1336 /*BSSID of the BSS*/
1337 tSirMacAddr bssid;
1338
1339 /*Whether BSS needs to be notified*/
1340 tANI_U8 notifyBss;
1341
1342 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1343 CTS to Self). Must always be a valid frame type.*/
1344 tANI_U8 frameType;
1345
1346 /*UMAC has the option of passing the MAC frame to be used for notifying
1347 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1348 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1349 frameType.*/
1350 tANI_U8 frameLength;
1351
Dino Mycle8afbac12014-07-04 22:06:17 +05301352 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001353 is non-zero. */
1354 tSirMacMgmtHdr macMgmtHdr;
1355
1356 /*Entry to hold number of active BSS idx's*/
1357 tSirScanEntry scanEntry;
1358
1359 /* Single NoA usage in Scanning */
1360 tANI_U8 useNoA;
1361
1362 /* Indicates the scan duration (in ms) */
1363 tANI_U16 scanDuration;
1364
1365} tInitScanConParams, * tpInitScanConParams;
1366
1367typedef PACKED_PRE struct PACKED_POST
1368{
1369 tHalMsgHeader header;
1370 tInitScanConParams initScanParams;
1371} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1372
1373
1374/*---------------------------------------------------------------------------
1375 WLAN_HAL_INIT_SCAN_RSP
1376---------------------------------------------------------------------------*/
1377
1378typedef PACKED_PRE struct PACKED_POST
1379{
1380 /*success or failure */
1381 tANI_U32 status;
1382
1383}tHalInitScanRspParams, *tpHalInitScanRspParams;
1384
1385typedef PACKED_PRE struct PACKED_POST
1386{
1387 tHalMsgHeader header;
1388 tHalInitScanRspParams initScanRspParams;
1389} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1390
1391/*---------------------------------------------------------------------------
1392 WLAN_HAL_START_SCAN_REQ
1393---------------------------------------------------------------------------*/
1394
Dino Mycle8afbac12014-07-04 22:06:17 +05301395typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001396{
1397 /*Indicates the channel to scan*/
1398 tANI_U8 scanChannel;
1399
1400 } tStartScanParams, * tpStartScanParams;
1401
1402typedef PACKED_PRE struct PACKED_POST
1403{
1404 tHalMsgHeader header;
1405 tStartScanParams startScanParams;
1406} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1407
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001408typedef PACKED_PRE struct PACKED_POST
1409{
1410 tHalMsgHeader header;
1411} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1412
Jeff Johnson295189b2012-06-20 16:38:30 -07001413/*---------------------------------------------------------------------------
1414 WLAN_HAL_START_SCAN_RSP
1415---------------------------------------------------------------------------*/
1416
1417typedef PACKED_PRE struct PACKED_POST
1418{
1419 /*success or failure */
1420 tANI_U32 status;
1421
1422 tANI_U32 startTSF[2];
1423 tPowerdBm txMgmtPower;
1424
1425}tHalStartScanRspParams, *tpHalStartScanRspParams;
1426
1427typedef PACKED_PRE struct PACKED_POST
1428{
1429 tHalMsgHeader header;
1430 tHalStartScanRspParams startScanRspParams;
1431} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1432
1433/*---------------------------------------------------------------------------
1434 WLAN_HAL_END_SCAN_REQ
1435---------------------------------------------------------------------------*/
1436
1437typedef PACKED_PRE struct PACKED_POST
1438{
1439 /*Indicates the channel to stop scanning. Not used really. But retained
1440 for symmetry with "start Scan" message. It can also help in error
1441 check if needed.*/
1442 tANI_U8 scanChannel;
1443
1444} tEndScanParams, *tpEndScanParams;
1445
1446typedef PACKED_PRE struct PACKED_POST
1447{
1448 tHalMsgHeader header;
1449 tEndScanParams endScanParams;
1450} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1451
1452/*---------------------------------------------------------------------------
1453 WLAN_HAL_END_SCAN_RSP
1454---------------------------------------------------------------------------*/
1455
1456typedef PACKED_PRE struct PACKED_POST
1457{
1458 /*success or failure */
1459 tANI_U32 status;
1460
1461}tHalEndScanRspParams, *tpHalEndScanRspParams;
1462
1463typedef PACKED_PRE struct PACKED_POST
1464{
1465 tHalMsgHeader header;
1466 tHalEndScanRspParams endScanRspParams;
1467} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1468
1469/*---------------------------------------------------------------------------
1470 WLAN_HAL_FINISH_SCAN_REQ
1471---------------------------------------------------------------------------*/
1472
1473typedef PACKED_PRE struct PACKED_POST
1474{
1475 /* Identifies the operational state of the AP/STA
1476 * LEARN - AP Role SCAN - STA Role */
1477 eHalSysMode scanMode;
1478
1479 /*Operating channel to tune to.*/
1480 tANI_U8 currentOperChannel;
1481
1482 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1483 40 MHz extension channel in combination with the control channel*/
1484 ePhyChanBondState cbState;
1485
1486 /*BSSID of the BSS*/
1487 tSirMacAddr bssid;
1488
1489 /*Whether BSS needs to be notified*/
1490 tANI_U8 notifyBss;
1491
1492 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1493 CTS to Self). Must always be a valid frame type.*/
1494 tANI_U8 frameType;
1495
1496 /*UMAC has the option of passing the MAC frame to be used for notifying
1497 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1498 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1499 frameType.*/
1500 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301501
1502 /*Following the framelength there is a MAC frame buffer if frameLength
1503 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001504 tSirMacMgmtHdr macMgmtHdr;
1505
1506 /*Entry to hold number of active BSS idx's*/
1507 tSirScanEntry scanEntry;
1508
1509} tFinishScanParams, *tpFinishScanParams;
1510
1511typedef PACKED_PRE struct PACKED_POST
1512{
1513 tHalMsgHeader header;
1514 tFinishScanParams finishScanParams;
1515} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1516
1517/*---------------------------------------------------------------------------
1518 WLAN_HAL_FINISH_SCAN_RSP
1519---------------------------------------------------------------------------*/
1520
1521typedef PACKED_PRE struct PACKED_POST
1522{
1523 /*success or failure */
1524 tANI_U32 status;
1525
1526}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1527
1528typedef PACKED_PRE struct PACKED_POST
1529{
1530 tHalMsgHeader header;
1531 tHalFinishScanRspParams finishScanRspParams;
1532} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1533
Srinivas Dasari42584632014-11-26 20:37:19 +05301534typedef PACKED_PRE struct PACKED_POST
1535{
1536 tSetStaKeyParams keyParams;
1537 uint8 pn[6];
1538} tHalEncConfigParams;
1539
1540typedef PACKED_PRE struct PACKED_POST
1541{
1542 uint16 length;
1543 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1544} tHalDisaPayload;
1545
1546typedef PACKED_PRE struct PACKED_POST
1547{
1548#ifdef BYTE_ORDER_BIG_ENDIAN
1549 uint8 reserved1 : 1;
1550 uint8 ackpolicy : 2;
1551 uint8 eosp : 1;
1552 uint8 tid : 4;
1553
1554 uint8 appsbufferstate : 8;
1555#else
1556 uint8 appsbufferstate : 8;
1557
1558 uint8 tid : 4;
1559 uint8 eosp : 1;
1560 uint8 ackpolicy : 2;
1561 uint8 reserved1 : 1;
1562#endif
1563} tHalQosCtrlFieldType;
1564
1565typedef PACKED_PRE struct PACKED_POST
1566 {
1567#ifdef BYTE_ORDER_BIG_ENDIAN
1568 uint16 subtype : 4;
1569 uint16 type : 2;
1570 uint16 protocol : 2;
1571
1572 uint16 order : 1;
1573 uint16 wep : 1;
1574 uint16 moredata : 1;
1575 uint16 pm : 1;
1576 uint16 retry : 1;
1577 uint16 morefrag : 1;
1578 uint16 fromds : 1;
1579 uint16 tods : 1;
1580#else
1581
1582 uint16 tods : 1;
1583 uint16 fromds : 1;
1584 uint16 morefrag : 1;
1585 uint16 retry : 1;
1586 uint16 pm : 1;
1587 uint16 moredata : 1;
1588 uint16 wep : 1;
1589 uint16 order : 1;
1590
1591 uint16 protocol : 2;
1592 uint16 type : 2;
1593 uint16 subtype : 4;
1594#endif
1595} tHalFrmCtrlType;
1596
1597typedef PACKED_PRE struct PACKED_POST
1598{
1599 /* Frame control field */
1600 tHalFrmCtrlType fc;
1601 /* Duration ID */
1602 uint16 usDurationId;
1603 /* Address 1 field */
1604 uint8 vA1[HAL_MAC_ADDR_LEN];
1605 /* Address 2 field */
1606 uint8 vA2[HAL_MAC_ADDR_LEN];
1607 /* Address 3 field */
1608 uint8 vA3[HAL_MAC_ADDR_LEN];
1609 /* Sequence control field */
1610 uint16 seqNum;
1611 /* Optional A4 address */
1612 uint8 optvA4[HAL_MAC_ADDR_LEN];
1613 /* Optional QOS control field */
1614 tHalQosCtrlFieldType usQosCtrl;
1615} tHal80211Header;
1616
1617typedef PACKED_PRE struct PACKED_POST
1618{
1619 tHal80211Header macHeader;
1620 tHalEncConfigParams encParams;
1621 tHalDisaPayload data;
1622} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1623
1624typedef PACKED_PRE struct PACKED_POST
1625{
1626 tHalMsgHeader header;
1627 tSetEncryptedDataParams encryptedDataParams;
1628} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1629
1630typedef PACKED_PRE struct PACKED_POST
1631{
1632 tANI_U32 status;
1633 tHalDisaPayload encryptedPayload;
1634} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1635
1636typedef PACKED_PRE struct PACKED_POST
1637{
1638 tHalMsgHeader header;
1639 tSetEncryptedDataRspParams encryptedDataRspParams;
1640} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1641
Jeff Johnson295189b2012-06-20 16:38:30 -07001642/*---------------------------------------------------------------------------
1643 WLAN_HAL_CONFIG_STA_REQ
1644---------------------------------------------------------------------------*/
1645
1646typedef PACKED_PRE struct PACKED_POST {
1647 /*
1648 * For Self STA Entry: this represents Self Mode.
1649 * For Peer Stations, this represents the mode of the peer.
1650 * On Station:
1651 * --this mode is updated when PE adds the Self Entry.
1652 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1653 * ON AP:
1654 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1655 * to indicate the self mode of the AP.
1656 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1657 */
1658
1659 tStaRateMode opRateMode;
1660 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1661 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1662 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1663 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1664 tANI_U16 reserved;
1665
1666 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1667 //First 26 bits are reserved for those Titan rates and
1668 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1669 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1670
1671 /*
1672 * 0-76 bits used, remaining reserved
1673 * bits 0-15 and 32 should be set.
1674 */
1675 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1676
1677 /*
1678 * RX Highest Supported Data Rate defines the highest data
1679 * rate that the STA is able to receive, in unites of 1Mbps.
1680 * This value is derived from "Supported MCS Set field" inside
1681 * the HT capability element.
1682 */
1683 tANI_U16 rxHighestDataRate;
1684
1685} tSirSupportedRates, *tpSirSupportedRates;
1686
1687typedef PACKED_PRE struct PACKED_POST
1688{
1689 /*BSSID of STA*/
1690 tSirMacAddr bssId;
1691
1692 /*ASSOC ID, as assigned by UMAC*/
1693 tANI_U16 assocId;
1694
1695 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1696 tANI_U8 staType;
1697
1698 /*Short Preamble Supported.*/
1699 tANI_U8 shortPreambleSupported;
1700
1701 /*MAC Address of STA*/
1702 tSirMacAddr staMac;
1703
1704 /*Listen interval of the STA*/
1705 tANI_U16 listenInterval;
1706
1707 /*Support for 11e/WMM*/
1708 tANI_U8 wmmEnabled;
1709
1710 /*11n HT capable STA*/
1711 tANI_U8 htCapable;
1712
1713 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1714 tANI_U8 txChannelWidthSet;
1715
1716 /*RIFS mode 0 - NA, 1 - Allowed */
1717 tANI_U8 rifsMode;
1718
Dino Mycle8afbac12014-07-04 22:06:17 +05301719 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001720 0 - No Support, 1 - Supported
1721 SG - there is global field */
1722 tANI_U8 lsigTxopProtection;
1723
1724 /*Max Ampdu Size supported by STA. TPE programming.
1725 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1726 tANI_U8 maxAmpduSize;
1727
1728 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1729 tANI_U8 maxAmpduDensity;
1730
1731 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1732 tANI_U8 maxAmsduSize;
1733
1734 /*Short GI support for 40Mhz packets*/
1735 tANI_U8 fShortGI40Mhz;
1736
1737 /*Short GI support for 20Mhz packets*/
1738 tANI_U8 fShortGI20Mhz;
1739
Jeff Johnson295189b2012-06-20 16:38:30 -07001740 /*Robust Management Frame (RMF) enabled/disabled*/
1741 tANI_U8 rmfEnabled;
1742
1743 /* The unicast encryption type in the association */
1744 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001745
1746 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001747 will set this flag in case of RE-ASSOC, where we want to reuse the old
1748 STA ID. 0 = Add, 1 = Update*/
1749 tANI_U8 action;
1750
1751 /*U-APSD Flags: 1b per AC. Encoded as follows:
1752 b7 b6 b5 b4 b3 b2 b1 b0 =
1753 X X X X BE BK VI VO */
1754 tANI_U8 uAPSD;
1755
1756 /*Max SP Length*/
1757 tANI_U8 maxSPLen;
1758
1759 /*11n Green Field preamble support
1760 0 - Not supported, 1 - Supported */
1761 tANI_U8 greenFieldCapable;
1762
1763 /*MIMO Power Save mode*/
1764 tSirMacHTMIMOPowerSaveState mimoPS;
1765
1766 /*Delayed BA Support*/
1767 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001768
Jeff Johnson295189b2012-06-20 16:38:30 -07001769 /*Max AMPDU duration in 32us*/
1770 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001771
Jeff Johnson295189b2012-06-20 16:38:30 -07001772 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1773 it to 0 if AP does not support it. This indication is sent to HAL and
1774 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1775 tANI_U8 fDsssCckMode40Mhz;
1776
1777 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1778 Retained for backward compalibity with existing HAL code*/
1779 tANI_U8 staIdx;
1780
1781 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1782 Retained for backward compalibity with existing HAL code*/
1783 tANI_U8 bssIdx;
1784
1785 tANI_U8 p2pCapableSta;
1786
Jeff Johnsone7245742012-09-05 17:12:55 -07001787 /*Reserved to align next field on a dword boundary*/
1788 tANI_U8 reserved;
1789
1790 /*These rates are the intersection of peer and self capabilities.*/
1791 tSirSupportedRates supportedRates;
1792
Jeff Johnson295189b2012-06-20 16:38:30 -07001793} tConfigStaParams, *tpConfigStaParams;
1794
Jeff Johnsone7245742012-09-05 17:12:55 -07001795/*------------------------------------------------------------------------
1796 * WLAN_HAL_CONFIG_STA_REQ
1797 * ----------------------------------------------------------------------*/
1798
1799typedef PACKED_PRE struct PACKED_POST {
1800 /*
1801 * For Self STA Entry: this represents Self Mode.
1802 * For Peer Stations, this represents the mode of the peer.
1803 * On Station:
1804 * --this mode is updated when PE adds the Self Entry.
1805 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1806 * ON AP:
1807 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1808 * to indicate the self mode of the AP.
1809 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1810 */
1811
1812 tStaRateMode opRateMode;
1813 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1814 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1815 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1816 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1817 tANI_U16 reserved;
1818
1819 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1820 //First 26 bits are reserved for those Titan rates and
1821 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1822 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1823
1824 /*
1825 * 0-76 bits used, remaining reserved
1826 * bits 0-15 and 32 should be set.
1827 */
1828 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1829
1830 /*
1831 * RX Highest Supported Data Rate defines the highest data
1832 * rate that the STA is able to receive, in unites of 1Mbps.
1833 * This value is derived from "Supported MCS Set field" inside
1834 * the HT capability element.
1835 */
1836 tANI_U16 rxHighestDataRate;
1837
1838 /* Indicates the Maximum MCS that can be received for each number
1839 * of spacial streams */
1840 tANI_U16 vhtRxMCSMap;
1841
1842 /*Indicate the highest VHT data rate that the STA is able to receive*/
1843 tANI_U16 vhtRxHighestDataRate;
1844
1845 /* Indicates the Maximum MCS that can be transmitted for each number
1846 * of spacial streams */
1847 tANI_U16 vhtTxMCSMap;
1848
1849 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1850 tANI_U16 vhtTxHighestDataRate;
1851
1852} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1853
1854typedef PACKED_PRE struct PACKED_POST
1855{
1856 /*BSSID of STA*/
1857 tSirMacAddr bssId;
1858
1859 /*ASSOC ID, as assigned by UMAC*/
1860 tANI_U16 assocId;
1861
1862 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1863 tANI_U8 staType;
1864
1865 /*Short Preamble Supported.*/
1866 tANI_U8 shortPreambleSupported;
1867
1868 /*MAC Address of STA*/
1869 tSirMacAddr staMac;
1870
1871 /*Listen interval of the STA*/
1872 tANI_U16 listenInterval;
1873
1874 /*Support for 11e/WMM*/
1875 tANI_U8 wmmEnabled;
1876
1877 /*11n HT capable STA*/
1878 tANI_U8 htCapable;
1879
1880 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1881 tANI_U8 txChannelWidthSet;
1882
1883 /*RIFS mode 0 - NA, 1 - Allowed */
1884 tANI_U8 rifsMode;
1885
1886 /*L-SIG TXOP Protection mechanism
1887 0 - No Support, 1 - Supported
1888 SG - there is global field */
1889 tANI_U8 lsigTxopProtection;
1890
1891 /*Max Ampdu Size supported by STA. TPE programming.
1892 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1893 tANI_U8 maxAmpduSize;
1894
1895 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1896 tANI_U8 maxAmpduDensity;
1897
1898 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1899 tANI_U8 maxAmsduSize;
1900
1901 /*Short GI support for 40Mhz packets*/
1902 tANI_U8 fShortGI40Mhz;
1903
1904 /*Short GI support for 20Mhz packets*/
1905 tANI_U8 fShortGI20Mhz;
1906
1907 /*Robust Management Frame (RMF) enabled/disabled*/
1908 tANI_U8 rmfEnabled;
1909
1910 /* The unicast encryption type in the association */
1911 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301912
1913 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001914 will set this flag in case of RE-ASSOC, where we want to reuse the old
1915 STA ID. 0 = Add, 1 = Update*/
1916 tANI_U8 action;
1917
1918 /*U-APSD Flags: 1b per AC. Encoded as follows:
1919 b7 b6 b5 b4 b3 b2 b1 b0 =
1920 X X X X BE BK VI VO */
1921 tANI_U8 uAPSD;
1922
1923 /*Max SP Length*/
1924 tANI_U8 maxSPLen;
1925
1926 /*11n Green Field preamble support
1927 0 - Not supported, 1 - Supported */
1928 tANI_U8 greenFieldCapable;
1929
1930 /*MIMO Power Save mode*/
1931 tSirMacHTMIMOPowerSaveState mimoPS;
1932
1933 /*Delayed BA Support*/
1934 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05301935
Jeff Johnsone7245742012-09-05 17:12:55 -07001936 /*Max AMPDU duration in 32us*/
1937 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05301938
Jeff Johnsone7245742012-09-05 17:12:55 -07001939 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1940 it to 0 if AP does not support it. This indication is sent to HAL and
1941 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1942 tANI_U8 fDsssCckMode40Mhz;
1943
1944 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1945 Retained for backward compalibity with existing HAL code*/
1946 tANI_U8 staIdx;
1947
1948 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1949 Retained for backward compalibity with existing HAL code*/
1950 tANI_U8 bssIdx;
1951
1952 tANI_U8 p2pCapableSta;
1953
1954 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001955 tANI_U8 htLdpcEnabled:1;
1956 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001957 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05301958 tANI_U8 vhtTxMUBformeeCapable:1;
1959 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001960
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001961 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001962 tSirSupportedRates_V1 supportedRates;
1963
1964 tANI_U8 vhtCapable;
1965 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001966
Jeff Johnsone7245742012-09-05 17:12:55 -07001967} tConfigStaParams_V1, *tpConfigStaParams_V1;
1968
Jeff Johnson295189b2012-06-20 16:38:30 -07001969typedef PACKED_PRE struct PACKED_POST
1970{
1971 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001972 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001973 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001974 tConfigStaParams_V1 configStaParams_V1;
1975 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001976} tConfigStaReqMsg, *tpConfigStaReqMsg;
1977
1978/*---------------------------------------------------------------------------
1979 WLAN_HAL_CONFIG_STA_RSP
1980---------------------------------------------------------------------------*/
1981
1982typedef PACKED_PRE struct PACKED_POST
1983{
1984 /*success or failure */
1985 tANI_U32 status;
1986
1987 /* Station index; valid only when 'status' field value SUCCESS */
1988 tANI_U8 staIdx;
1989
1990 /* BSSID Index of BSS to which the station is associated */
1991 tANI_U8 bssIdx;
1992
1993 /* DPU Index for PTK */
1994 tANI_U8 dpuIndex;
1995
Dino Mycle8afbac12014-07-04 22:06:17 +05301996 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001997 tANI_U8 bcastDpuIndex;
1998
1999 /*DPU Index for IGTK */
2000 tANI_U8 bcastMgmtDpuIdx;
2001
2002 /*PTK DPU signature*/
2003 tANI_U8 ucUcastSig;
2004
2005 /*GTK DPU isignature*/
2006 tANI_U8 ucBcastSig;
2007
2008 /* IGTK DPU signature*/
2009 tANI_U8 ucMgmtSig;
2010
2011 tANI_U8 p2pCapableSta;
2012
2013}tConfigStaRspParams, *tpConfigStaRspParams;
2014
2015typedef PACKED_PRE struct PACKED_POST
2016{
2017 tHalMsgHeader header;
2018 tConfigStaRspParams configStaRspParams;
2019}tConfigStaRspMsg, *tpConfigStaRspMsg;
2020
2021/*---------------------------------------------------------------------------
2022 WLAN_HAL_DELETE_STA_REQ
2023---------------------------------------------------------------------------*/
2024
2025/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302026typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002027{
2028 /* Index of STA to delete */
2029 tANI_U8 staIdx;
2030} tDeleteStaParams, *tpDeleteStaParams;
2031
2032/* Delete STA Request message*/
2033typedef PACKED_PRE struct PACKED_POST
2034{
2035 tHalMsgHeader header;
2036 tDeleteStaParams delStaParams;
2037} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2038
2039/*---------------------------------------------------------------------------
2040 WLAN_HAL_DELETE_STA_RSP
2041---------------------------------------------------------------------------*/
2042
2043/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302044typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002045{
2046 /*success or failure */
2047 tANI_U32 status;
2048
2049 /* Index of STA deleted */
2050 tANI_U8 staId;
2051} tDeleteStaRspParams, *tpDeleteStaRspParams;
2052
2053/* Delete STA Response message*/
2054typedef PACKED_PRE struct PACKED_POST
2055{
2056 tHalMsgHeader header;
2057 tDeleteStaRspParams delStaRspParams;
2058} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2059
2060/*---------------------------------------------------------------------------
2061 WLAN_HAL_CONFIG_BSS_REQ
2062---------------------------------------------------------------------------*/
2063
2064//12 Bytes long because this structure can be used to represent rate
2065//and extended rate set IEs. The parser assume this to be at least 12
2066typedef __ani_attr_pre_packed struct sSirMacRateSet
2067{
2068 tANI_U8 numRates;
2069 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2070} __ani_attr_packed tSirMacRateSet;
2071
2072// access category record
2073typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2074{
2075#ifndef ANI_LITTLE_BIT_ENDIAN
2076 tANI_U8 rsvd : 1;
2077 tANI_U8 aci : 2;
2078 tANI_U8 acm : 1;
2079 tANI_U8 aifsn : 4;
2080#else
2081 tANI_U8 aifsn : 4;
2082 tANI_U8 acm : 1;
2083 tANI_U8 aci : 2;
2084 tANI_U8 rsvd : 1;
2085#endif
2086} __ani_attr_packed tSirMacAciAifsn;
2087
2088// contention window size
2089typedef __ani_attr_pre_packed struct sSirMacCW
2090{
2091#ifndef ANI_LITTLE_BIT_ENDIAN
2092 tANI_U8 max : 4;
2093 tANI_U8 min : 4;
2094#else
2095 tANI_U8 min : 4;
2096 tANI_U8 max : 4;
2097#endif
2098} __ani_attr_packed tSirMacCW;
2099
2100typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2101{
2102 tSirMacAciAifsn aci;
2103 tSirMacCW cw;
2104 tANI_U16 txoplimit;
2105} __ani_attr_packed tSirMacEdcaParamRecord;
2106
2107typedef __ani_attr_pre_packed struct sSirMacSSid
2108{
2109 tANI_U8 length;
2110 tANI_U8 ssId[32];
2111} __ani_attr_packed tSirMacSSid;
2112
2113// Concurrency role. These are generic IDs that identify the various roles
2114// in the software system.
2115typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302116 HAL_STA_MODE=0,
2117 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002118 HAL_P2P_CLIENT_MODE,
2119 HAL_P2P_GO_MODE,
2120 HAL_MONITOR_MODE,
2121} tHalConMode;
2122
2123//This is a bit pattern to be set for each mode
2124//bit 0 - sta mode
2125//bit 1 - ap mode
2126//bit 2 - p2p client mode
2127//bit 3 - p2p go mode
2128typedef enum
2129{
Dino Mycle8afbac12014-07-04 22:06:17 +05302130 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002131 HAL_SAP=2,
2132 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2133 HAL_P2P_CLIENT=4,
2134 HAL_P2P_GO=8,
2135 HAL_MAX_CONCURRENCY_PERSONA=4
2136} tHalConcurrencyMode;
2137
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002138// IFACE PERSONA for different Operating modes
2139typedef enum
2140{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002141 HAL_IFACE_UNKNOWN=0,
2142 HAL_IFACE_STA_MODE=1,
2143 HAL_IFACE_P2P_MODE=2,
2144 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002145} tHalIfacePersona;
2146
Jeff Johnson295189b2012-06-20 16:38:30 -07002147typedef PACKED_PRE struct PACKED_POST
2148{
2149 /* BSSID */
2150 tSirMacAddr bssId;
2151
Jeff Johnson295189b2012-06-20 16:38:30 -07002152 /* Self Mac Address */
2153 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002154
2155 /* BSS type */
2156 tSirBssType bssType;
2157
2158 /*Operational Mode: AP =0, STA = 1*/
2159 tANI_U8 operMode;
2160
2161 /*Network Type*/
2162 tSirNwType nwType;
2163
2164 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2165 tANI_U8 shortSlotTimeSupported;
2166
2167 /*Co-exist with 11a STA*/
2168 tANI_U8 llaCoexist;
2169
2170 /*Co-exist with 11b STA*/
2171 tANI_U8 llbCoexist;
2172
2173 /*Co-exist with 11g STA*/
2174 tANI_U8 llgCoexist;
2175
2176 /*Coexistence with 11n STA*/
2177 tANI_U8 ht20Coexist;
2178
2179 /*Non GF coexist flag*/
2180 tANI_U8 llnNonGFCoexist;
2181
2182 /*TXOP protection support*/
2183 tANI_U8 fLsigTXOPProtectionFullSupport;
2184
2185 /*RIFS mode*/
2186 tANI_U8 fRIFSMode;
2187
2188 /*Beacon Interval in TU*/
2189 tSirMacBeaconInterval beaconInterval;
2190
2191 /*DTIM period*/
2192 tANI_U8 dtimPeriod;
2193
2194 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2195 tANI_U8 txChannelWidthSet;
2196
2197 /*Operating channel*/
2198 tANI_U8 currentOperChannel;
2199
2200 /*Extension channel for channel bonding*/
2201 tANI_U8 currentExtChannel;
2202
2203 /*Reserved to align next field on a dword boundary*/
2204 tANI_U8 reserved;
2205
Jeff Johnsone7245742012-09-05 17:12:55 -07002206 /*SSID of the BSS*/
2207 tSirMacSSid ssId;
2208
2209 /*HAL should update the existing BSS entry, if this flag is set.
2210 UMAC will set this flag in case of reassoc, where we want to resue the
2211 the old BSSID and still return success 0 = Add, 1 = Update*/
2212 tANI_U8 action;
2213
2214 /* MAC Rate Set */
2215 tSirMacRateSet rateSet;
2216
2217 /*Enable/Disable HT capabilities of the BSS*/
2218 tANI_U8 htCapable;
2219
2220 // Enable/Disable OBSS protection
2221 tANI_U8 obssProtEnabled;
2222
2223 /*RMF enabled/disabled*/
2224 tANI_U8 rmfEnabled;
2225
2226 /*HT Operating Mode operating mode of the 802.11n STA*/
2227 tSirMacHTOperatingMode htOperMode;
2228
2229 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2230 tANI_U8 dualCTSProtection;
2231
2232 /* Probe Response Max retries */
2233 tANI_U8 ucMaxProbeRespRetryLimit;
2234
2235 /* To Enable Hidden ssid */
2236 tANI_U8 bHiddenSSIDEn;
2237
2238 /* To Enable Disable FW Proxy Probe Resp */
2239 tANI_U8 bProxyProbeRespEn;
2240
2241 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2242 EDCA params or might not desire to apply EDCA params during config BSS.
2243 0 implies Not Valid ; Non-Zero implies valid*/
2244 tANI_U8 edcaParamsValid;
2245
2246 /*EDCA Parameters for Best Effort Access Category*/
2247 tSirMacEdcaParamRecord acbe;
2248
2249 /*EDCA Parameters forBackground Access Category*/
2250 tSirMacEdcaParamRecord acbk;
2251
2252 /*EDCA Parameters for Video Access Category*/
2253 tSirMacEdcaParamRecord acvi;
2254
2255 /*EDCA Parameters for Voice Access Category*/
2256 tSirMacEdcaParamRecord acvo;
2257
2258#ifdef WLAN_FEATURE_VOWIFI_11R
2259 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2260 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2261#endif
2262
2263 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2264 tANI_U8 halPersona;
2265
2266 tANI_U8 bSpectrumMgtEnable;
2267
2268 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2269 tANI_S8 txMgmtPower;
2270 /*maxTxPower has max power to be used after applying the power constraint if any */
2271 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002272 /*Context of the station being added in HW
2273 Add a STA entry for "itself" -
2274 On AP - Add the AP itself in an "STA context"
2275 On STA - Add the AP to which this STA is joining in an "STA context" */
2276 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002277} tConfigBssParams, * tpConfigBssParams;
2278
2279
2280/*--------------------------------------------------------------------------
2281 * WLAN_HAL_CONFIG_BSS_REQ
2282 *--------------------------------------------------------------------------*/
2283typedef PACKED_PRE struct PACKED_POST
2284{
2285 /* BSSID */
2286 tSirMacAddr bssId;
2287
Jeff Johnsone7245742012-09-05 17:12:55 -07002288 /* Self Mac Address */
2289 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002290
2291 /* BSS type */
2292 tSirBssType bssType;
2293
2294 /*Operational Mode: AP =0, STA = 1*/
2295 tANI_U8 operMode;
2296
2297 /*Network Type*/
2298 tSirNwType nwType;
2299
2300 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2301 tANI_U8 shortSlotTimeSupported;
2302
2303 /*Co-exist with 11a STA*/
2304 tANI_U8 llaCoexist;
2305
2306 /*Co-exist with 11b STA*/
2307 tANI_U8 llbCoexist;
2308
2309 /*Co-exist with 11g STA*/
2310 tANI_U8 llgCoexist;
2311
2312 /*Coexistence with 11n STA*/
2313 tANI_U8 ht20Coexist;
2314
2315 /*Non GF coexist flag*/
2316 tANI_U8 llnNonGFCoexist;
2317
2318 /*TXOP protection support*/
2319 tANI_U8 fLsigTXOPProtectionFullSupport;
2320 /*RIFS mode*/
2321 tANI_U8 fRIFSMode;
2322
2323 /*Beacon Interval in TU*/
2324 tSirMacBeaconInterval beaconInterval;
2325
2326 /*DTIM period*/
2327 tANI_U8 dtimPeriod;
2328
2329 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2330 tANI_U8 txChannelWidthSet;
2331
2332 /*Operating channel*/
2333 tANI_U8 currentOperChannel;
2334
2335 /*Extension channel for channel bonding*/
2336 tANI_U8 currentExtChannel;
2337
2338 /*Reserved to align next field on a dword boundary*/
2339 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002340
2341 /*SSID of the BSS*/
2342 tSirMacSSid ssId;
2343
2344 /*HAL should update the existing BSS entry, if this flag is set.
2345 UMAC will set this flag in case of reassoc, where we want to resue the
2346 the old BSSID and still return success 0 = Add, 1 = Update*/
2347 tANI_U8 action;
2348
2349 /* MAC Rate Set */
2350 tSirMacRateSet rateSet;
2351
2352 /*Enable/Disable HT capabilities of the BSS*/
2353 tANI_U8 htCapable;
2354
2355 // Enable/Disable OBSS protection
2356 tANI_U8 obssProtEnabled;
2357
2358 /*RMF enabled/disabled*/
2359 tANI_U8 rmfEnabled;
2360
2361 /*HT Operating Mode operating mode of the 802.11n STA*/
2362 tSirMacHTOperatingMode htOperMode;
2363
2364 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2365 tANI_U8 dualCTSProtection;
2366
2367 /* Probe Response Max retries */
2368 tANI_U8 ucMaxProbeRespRetryLimit;
2369
2370 /* To Enable Hidden ssid */
2371 tANI_U8 bHiddenSSIDEn;
2372
2373 /* To Enable Disable FW Proxy Probe Resp */
2374 tANI_U8 bProxyProbeRespEn;
2375
Dino Mycle8afbac12014-07-04 22:06:17 +05302376 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2377 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002378 0 implies Not Valid ; Non-Zero implies valid*/
2379 tANI_U8 edcaParamsValid;
2380
2381 /*EDCA Parameters for Best Effort Access Category*/
2382 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302383
Jeff Johnson295189b2012-06-20 16:38:30 -07002384 /*EDCA Parameters forBackground Access Category*/
2385 tSirMacEdcaParamRecord acbk;
2386
2387 /*EDCA Parameters for Video Access Category*/
2388 tSirMacEdcaParamRecord acvi;
2389
2390 /*EDCA Parameters for Voice Access Category*/
2391 tSirMacEdcaParamRecord acvo;
2392
2393#ifdef WLAN_FEATURE_VOWIFI_11R
2394 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2395 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2396#endif
2397
Dino Mycle8afbac12014-07-04 22:06:17 +05302398 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002399 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302400
Jeff Johnson295189b2012-06-20 16:38:30 -07002401 tANI_U8 bSpectrumMgtEnable;
2402
2403 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2404 tANI_S8 txMgmtPower;
2405 /*maxTxPower has max power to be used after applying the power constraint if any */
2406 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002407 /*Context of the station being added in HW
2408 Add a STA entry for "itself" -
2409 On AP - Add the AP itself in an "STA context"
2410 On STA - Add the AP to which this STA is joining in an "STA context" */
2411 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302412
Jeff Johnsone7245742012-09-05 17:12:55 -07002413 tANI_U8 vhtCapable;
2414 tANI_U8 vhtTxChannelWidthSet;
2415} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002416
2417typedef PACKED_PRE struct PACKED_POST
2418{
2419 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002420 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002421 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002422 tConfigBssParams_V1 configBssParams_V1;
2423 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002424} tConfigBssReqMsg, *tpConfigBssReqMsg;
2425
2426/*---------------------------------------------------------------------------
2427 WLAN_HAL_CONFIG_BSS_RSP
2428---------------------------------------------------------------------------*/
2429
2430typedef PACKED_PRE struct PACKED_POST
2431{
2432 /* Success or Failure */
2433 tANI_U32 status;
2434
2435 /* BSS index allocated by HAL */
2436 tANI_U8 bssIdx;
2437
2438 /* DPU descriptor index for PTK */
2439 tANI_U8 dpuDescIndx;
2440
2441 /* PTK DPU signature */
2442 tANI_U8 ucastDpuSignature;
2443
2444 /* DPU descriptor index for GTK*/
2445 tANI_U8 bcastDpuDescIndx;
2446
2447 /* GTK DPU signature */
2448 tANI_U8 bcastDpuSignature;
2449
2450 /*DPU descriptor for IGTK*/
2451 tANI_U8 mgmtDpuDescIndx;
2452
2453 /* IGTK DPU signature */
2454 tANI_U8 mgmtDpuSignature;
2455
2456 /* Station Index for BSS entry*/
2457 tANI_U8 bssStaIdx;
2458
2459 /* Self station index for this BSS */
2460 tANI_U8 bssSelfStaIdx;
2461
2462 /* Bcast station for buffering bcast frames in AP role */
2463 tANI_U8 bssBcastStaIdx;
2464
2465 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2466 tSirMacAddr staMac;
2467
2468 /*HAL fills in the tx power used for mgmt frames in this field. */
2469 tANI_S8 txMgmtPower;
2470
2471} tConfigBssRspParams, * tpConfigBssRspParams;
2472
2473typedef PACKED_PRE struct PACKED_POST
2474{
2475 tHalMsgHeader header;
2476 tConfigBssRspParams configBssRspParams;
2477} tConfigBssRspMsg, *tpConfigBssRspMsg;
2478
2479/*---------------------------------------------------------------------------
2480 WLAN_HAL_DELETE_BSS_REQ
2481---------------------------------------------------------------------------*/
2482
2483typedef PACKED_PRE struct PACKED_POST
2484{
2485 /* BSS index to be deleted */
2486 tANI_U8 bssIdx;
2487
2488} tDeleteBssParams, *tpDeleteBssParams;
2489
2490typedef PACKED_PRE struct PACKED_POST
2491{
2492 tHalMsgHeader header;
2493 tDeleteBssParams deleteBssParams;
2494} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2495
2496/*---------------------------------------------------------------------------
2497 WLAN_HAL_DELETE_BSS_RSP
2498---------------------------------------------------------------------------*/
2499
2500typedef PACKED_PRE struct PACKED_POST
2501{
2502 /* Success or Failure */
2503 tANI_U32 status;
2504
2505 /* BSS index that has been deleted */
2506 tANI_U8 bssIdx;
2507
2508} tDeleteBssRspParams, *tpDeleteBssRspParams;
2509
2510typedef PACKED_PRE struct PACKED_POST
2511{
2512 tHalMsgHeader header;
2513 tDeleteBssRspParams deleteBssRspParams;
2514} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2515
2516/*---------------------------------------------------------------------------
2517 WLAN_HAL_JOIN_REQ
2518---------------------------------------------------------------------------*/
2519
2520typedef PACKED_PRE struct PACKED_POST
2521{
2522 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302523 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002524
2525 /*Indicates the channel to switch to.*/
2526 tANI_U8 ucChannel;
2527
2528 /* Self STA MAC */
2529 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302530
Jeff Johnson295189b2012-06-20 16:38:30 -07002531 /*Local power constraint*/
2532 tANI_U8 ucLocalPowerConstraint;
2533
2534 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002535 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002536
2537 /*link State*/
2538 tSirLinkState linkState;
2539
2540 /* Max TX power */
2541 tANI_S8 maxTxPower;
2542
2543} tHalJoinReqParams, *tpHalJoinReqParams;
2544
2545typedef PACKED_PRE struct PACKED_POST
2546{
2547 tHalMsgHeader header;
2548 tHalJoinReqParams joinReqParams;
2549} tHalJoinReqMsg, *tpHalJoinReqMsg;
2550
2551/*---------------------------------------------------------------------------
2552 WLAN_HAL_JOIN_RSP
2553---------------------------------------------------------------------------*/
2554
2555typedef PACKED_PRE struct PACKED_POST
2556{
2557 /*success or failure */
2558 tANI_U32 status;
2559
2560 /* HAL fills in the tx power used for mgmt frames in this field */
2561 tPowerdBm txMgmtPower;
2562
2563}tHalJoinRspParams, *tpHalJoinRspParams;
2564
2565typedef PACKED_PRE struct PACKED_POST
2566{
2567 tHalMsgHeader header;
2568 tHalJoinRspParams joinRspParams;
2569}tHalJoinRspMsg, *tpHalJoinRspMsg;
2570
2571/*---------------------------------------------------------------------------
2572 WLAN_HAL_POST_ASSOC_REQ
2573---------------------------------------------------------------------------*/
2574
2575typedef PACKED_PRE struct PACKED_POST
2576{
2577 tConfigStaParams configStaParams;
2578 tConfigBssParams configBssParams;
2579} tPostAssocReqParams, *tpPostAssocReqParams;
2580
2581typedef PACKED_PRE struct PACKED_POST
2582{
2583 tHalMsgHeader header;
2584 tPostAssocReqParams postAssocReqParams;
2585} tPostAssocReqMsg, *tpPostAssocReqMsg;
2586
2587/*---------------------------------------------------------------------------
2588 WLAN_HAL_POST_ASSOC_RSP
2589---------------------------------------------------------------------------*/
2590
2591typedef PACKED_PRE struct PACKED_POST
2592{
2593 tConfigStaRspParams configStaRspParams;
2594 tConfigBssRspParams configBssRspParams;
2595} tPostAssocRspParams, *tpPostAssocRspParams;
2596
2597typedef PACKED_PRE struct PACKED_POST
2598{
2599 tHalMsgHeader header;
2600 tPostAssocRspParams postAssocRspParams;
2601} tPostAssocRspMsg, *tpPostAssocRspMsg;
2602
2603/*---------------------------------------------------------------------------
2604 WLAN_HAL_SET_BSSKEY_REQ
2605---------------------------------------------------------------------------*/
2606
2607/*
2608 * This is used by PE to create a set of WEP keys for a given BSS.
2609 */
2610typedef PACKED_PRE struct PACKED_POST
2611{
2612 /*BSS Index of the BSS*/
2613 tANI_U8 bssIdx;
2614
2615 /*Encryption Type used with peer*/
2616 tAniEdType encType;
2617
2618 /*Number of keys*/
2619 tANI_U8 numKeys;
2620
2621 /*Array of keys.*/
2622 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302623
Jeff Johnson295189b2012-06-20 16:38:30 -07002624 /*Control for Replay Count, 1= Single TID based replay count on Tx
2625 0 = Per TID based replay count on TX */
2626 tANI_U8 singleTidRc;
2627} tSetBssKeyParams, *tpSetBssKeyParams;
2628
2629typedef PACKED_PRE struct PACKED_POST
2630{
2631 tHalMsgHeader header;
2632 tSetBssKeyParams setBssKeyParams;
2633} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2634
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002635/* tagged version of set bss key */
2636typedef PACKED_PRE struct PACKED_POST
2637{
2638 tSetBssKeyReqMsg Msg;
2639 uint32 Tag;
2640} tSetBssKeyReqMsgTagged;
2641
Jeff Johnson295189b2012-06-20 16:38:30 -07002642/*---------------------------------------------------------------------------
2643 WLAN_HAL_SET_BSSKEY_RSP
2644---------------------------------------------------------------------------*/
2645typedef PACKED_PRE struct PACKED_POST
2646{
2647 /*success or failure */
2648 tANI_U32 status;
2649
2650} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2651
2652typedef PACKED_PRE struct PACKED_POST
2653{
2654 tHalMsgHeader header;
2655 tSetBssKeyRspParams setBssKeyRspParams;
2656} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2657
2658/*---------------------------------------------------------------------------
2659 WLAN_HAL_SET_STAKEY_REQ,
2660---------------------------------------------------------------------------*/
2661
2662/*
2663 * This is used by PE to configure the key information on a given station.
2664 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2665 * a preconfigured key from a BSS the station assoicated with; otherwise
2666 * a new key descriptor is created based on the key field.
2667 */
2668
2669typedef PACKED_PRE struct PACKED_POST
2670{
2671 tHalMsgHeader header;
2672 tSetStaKeyParams setStaKeyParams;
2673} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2674
2675/*---------------------------------------------------------------------------
2676 WLAN_HAL_SET_STAKEY_RSP,
2677---------------------------------------------------------------------------*/
2678typedef PACKED_PRE struct PACKED_POST
2679{
2680 /*success or failure */
2681 tANI_U32 status;
2682
2683} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2684
2685typedef PACKED_PRE struct PACKED_POST
2686{
2687 tHalMsgHeader header;
2688 tSetStaKeyRspParams setStaKeyRspParams;
2689} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2690
2691/*---------------------------------------------------------------------------
2692 WLAN_HAL_RMV_BSSKEY_REQ,
2693---------------------------------------------------------------------------*/
2694/*
2695 * This is used by PE to remove keys for a given BSS.
2696 */
2697typedef PACKED_PRE struct PACKED_POST
2698
2699{
2700 /*BSS Index of the BSS*/
2701 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302702
Jeff Johnson295189b2012-06-20 16:38:30 -07002703 /*Encryption Type used with peer*/
2704 tAniEdType encType;
2705
2706 /*Key Id*/
2707 tANI_U8 keyId;
2708
2709 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2710 tAniWepType wepType;
2711
2712} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2713
2714typedef PACKED_PRE struct PACKED_POST
2715{
2716 tHalMsgHeader header;
2717 tRemoveBssKeyParams removeBssKeyParams;
2718} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2719
2720/*---------------------------------------------------------------------------
2721 WLAN_HAL_RMV_BSSKEY_RSP,
2722---------------------------------------------------------------------------*/
2723typedef PACKED_PRE struct PACKED_POST
2724{
2725 /*success or failure */
2726 tANI_U32 status;
2727
2728} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2729
2730typedef PACKED_PRE struct PACKED_POST
2731{
2732 tHalMsgHeader header;
2733 tRemoveBssKeyRspParams removeBssKeyRspParams;
2734} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2735
2736/*---------------------------------------------------------------------------
2737 WLAN_HAL_RMV_STAKEY_REQ,
2738---------------------------------------------------------------------------*/
2739/*
2740 * This is used by PE to Remove the key information on a given station.
2741 */
2742typedef PACKED_PRE struct PACKED_POST
2743{
2744 /*STA Index*/
2745 tANI_U16 staIdx;
2746
2747 /*Encryption Type used with peer*/
2748 tAniEdType encType;
2749
2750 /*Key Id*/
2751 tANI_U8 keyId;
2752
2753 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2754 the same key is used for both broadcast and unicast.*/
2755 tANI_BOOLEAN unicast;
2756
2757} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2758
2759typedef PACKED_PRE struct PACKED_POST
2760{
2761 tHalMsgHeader header;
2762 tRemoveStaKeyParams removeStaKeyParams;
2763} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2764
2765/*---------------------------------------------------------------------------
2766 WLAN_HAL_RMV_STAKEY_RSP,
2767---------------------------------------------------------------------------*/
2768typedef PACKED_PRE struct PACKED_POST
2769{
2770 /*success or failure */
2771 tANI_U32 status;
2772} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2773
2774typedef PACKED_PRE struct PACKED_POST
2775{
2776 tHalMsgHeader header;
2777 tRemoveStaKeyRspParams removeStaKeyRspParams;
2778} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2779
Jeff Johnsone7245742012-09-05 17:12:55 -07002780#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002781
Jeff Johnsone7245742012-09-05 17:12:55 -07002782#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002783#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002784#endif
2785
2786#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002787#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002788#endif
2789
2790/*-------------------------------------------------------------------------
2791WLAN_HAL_START_OEM_DATA_REQ
2792--------------------------------------------------------------------------*/
2793typedef PACKED_PRE struct PACKED_POST
2794{
2795 tANI_U32 status;
2796 tSirMacAddr selfMacAddr;
2797 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2798} tStartOemDataReqParams, *tpStartOemDataReqParams;
2799
2800typedef PACKED_PRE struct PACKED_POST
2801{
2802 tHalMsgHeader header;
2803 tStartOemDataReqParams startOemDataReqParams;
2804} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2805
2806/*-------------------------------------------------------------------------
2807WLAN_HAL_START_OEM_DATA_RSP
2808--------------------------------------------------------------------------*/
2809
2810typedef PACKED_PRE struct PACKED_POST
2811{
2812 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2813} tStartOemDataRspParams, *tpStartOemDataRspParams;
2814
2815typedef PACKED_PRE struct PACKED_POST
2816{
2817 tHalMsgHeader header;
2818 tStartOemDataRspParams startOemDataRspParams;
2819} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2820
2821#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002822
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002823/*---------------------------------------------------------------------------
2824WLAN_HAL_CH_SWITCH_V1_REQ
2825---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002826
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002827typedef PACKED_PRE struct PACKED_POST
2828{
2829 /* Channel number */
2830 tANI_U8 channelNumber;
2831
2832 /* Local power constraint */
2833 tANI_U8 localPowerConstraint;
2834
2835 /*Secondary channel offset */
2836 ePhyChanBondState secondaryChannelOffset;
2837
2838 //HAL fills in the tx power used for mgmt frames in this field.
2839 tPowerdBm txMgmtPower;
2840
2841 /* Max TX power */
2842 tPowerdBm maxTxPower;
2843
2844 /* Self STA MAC */
2845 tSirMacAddr selfStaMacAddr;
2846
2847 /*VO WIFI comment: BSSID needed to identify session. As the request has
2848 * power constraints, this should be applied only to that session
2849 * Since MTU timing and EDCA are sessionized, this struct needs to be
2850 * sessionized and bssid needs to be out of the VOWifi feature flag
2851 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002852 * mantain backward compatbility
2853 * by way of ignoring if using new host/old FW or old host/new FW since
2854 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002855 */
2856 tSirMacAddr bssId;
2857
2858 /* Source of Channel Switch */
2859 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002860
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002861} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2862
2863typedef PACKED_PRE struct PACKED_POST
2864{
2865 tHalMsgHeader header;
2866 tSwitchChannelParams_V1 switchChannelParams_V1;
2867} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2868
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002869/*---------------------------------------------------------------------------
2870WLAN_HAL_CH_SWITCH_V1_RSP
2871---------------------------------------------------------------------------*/
2872
2873typedef PACKED_PRE struct PACKED_POST
2874{
2875 /* Status */
2876 tANI_U32 status;
2877
2878 /* Channel number - same as in request*/
2879 tANI_U8 channelNumber;
2880
2881 /* HAL fills in the tx power used for mgmt frames in this field */
2882 tPowerdBm txMgmtPower;
2883
2884 /* BSSID needed to identify session - same as in request*/
2885 tSirMacAddr bssId;
2886
2887 /* Source of Channel Switch */
2888 eHalChanSwitchSource channelSwitchSrc;
2889
2890} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2891
2892typedef PACKED_PRE struct PACKED_POST
2893{
2894 tHalMsgHeader header;
2895 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2896} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002897
2898/*---------------------------------------------------------------------------
2899WLAN_HAL_CH_SWITCH_REQ
2900---------------------------------------------------------------------------*/
2901
2902typedef PACKED_PRE struct PACKED_POST
2903{
2904 /* Channel number */
2905 tANI_U8 channelNumber;
2906
2907 /* Local power constraint */
2908 tANI_U8 localPowerConstraint;
2909
2910 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002911 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002912
2913 //HAL fills in the tx power used for mgmt frames in this field.
2914 tPowerdBm txMgmtPower;
2915
2916 /* Max TX power */
2917 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302918
Jeff Johnson295189b2012-06-20 16:38:30 -07002919 /* Self STA MAC */
2920 tSirMacAddr selfStaMacAddr;
2921
2922 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2923 this should be applied only to that session*/
2924 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2925 * bssid needs to be out of the VOWifi feature flag */
2926 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2927 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2928 */
2929 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302930
Jeff Johnson295189b2012-06-20 16:38:30 -07002931}tSwitchChannelParams, *tpSwitchChannelParams;
2932
2933typedef PACKED_PRE struct PACKED_POST
2934{
2935 tHalMsgHeader header;
2936 tSwitchChannelParams switchChannelParams;
2937} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2938
2939/*---------------------------------------------------------------------------
2940WLAN_HAL_CH_SWITCH_RSP
2941---------------------------------------------------------------------------*/
2942
2943typedef PACKED_PRE struct PACKED_POST
2944{
2945 /* Status */
2946 tANI_U32 status;
2947
2948 /* Channel number - same as in request*/
2949 tANI_U8 channelNumber;
2950
2951 /* HAL fills in the tx power used for mgmt frames in this field */
2952 tPowerdBm txMgmtPower;
2953
2954 /* BSSID needed to identify session - same as in request*/
2955 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302956
Jeff Johnson295189b2012-06-20 16:38:30 -07002957}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2958
2959typedef PACKED_PRE struct PACKED_POST
2960{
2961 tHalMsgHeader header;
2962 tSwitchChannelRspParams switchChannelRspParams;
2963} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2964
2965/*---------------------------------------------------------------------------
2966WLAN_HAL_UPD_EDCA_PARAMS_REQ
2967---------------------------------------------------------------------------*/
2968
2969typedef PACKED_PRE struct PACKED_POST
2970{
2971 /*BSS Index*/
2972 tANI_U16 bssIdx;
2973
2974 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05302975 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002976
2977 /* Background */
2978 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05302979
Jeff Johnson295189b2012-06-20 16:38:30 -07002980 /* Video */
2981 tSirMacEdcaParamRecord acvi;
2982
2983 /* Voice */
2984 tSirMacEdcaParamRecord acvo;
2985
2986} tEdcaParams, *tpEdcaParams;
2987
2988typedef PACKED_PRE struct PACKED_POST
2989{
2990 tHalMsgHeader header;
2991 tEdcaParams edcaParams;
2992} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2993
2994/*---------------------------------------------------------------------------
2995WLAN_HAL_UPD_EDCA_PARAMS_RSP
2996---------------------------------------------------------------------------*/
2997typedef PACKED_PRE struct PACKED_POST
2998{
2999 /*success or failure */
3000 tANI_U32 status;
3001} tEdcaRspParams, *tpEdcaRspParams;
3002
3003typedef PACKED_PRE struct PACKED_POST
3004{
3005 tHalMsgHeader header;
3006 tEdcaRspParams edcaRspParams;
3007} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3008
3009
3010
3011/*---------------------------------------------------------------------------
3012 * WLAN_HAL_GET_STATS_REQ
3013 *--------------------------------------------------------------------------*/
3014typedef PACKED_PRE struct PACKED_POST
3015
3016{
3017 /* Index of STA to which the statistics */
3018 tANI_U16 staIdx;
3019
3020 /* Encryption mode */
3021 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303022
Jeff Johnson295189b2012-06-20 16:38:30 -07003023 /* status */
3024 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303025
Jeff Johnson295189b2012-06-20 16:38:30 -07003026 /* Statistics */
3027 tANI_U32 sendBlocks;
3028 tANI_U32 recvBlocks;
3029 tANI_U32 replays;
3030 tANI_U8 micErrorCnt;
3031 tANI_U32 protExclCnt;
3032 tANI_U16 formatErrCnt;
3033 tANI_U16 unDecryptableCnt;
3034 tANI_U32 decryptErrCnt;
3035 tANI_U32 decryptOkCnt;
3036} tDpuStatsParams, * tpDpuStatsParams;
3037
3038typedef PACKED_PRE struct PACKED_POST
3039{
3040 /* Valid STA Idx for per STA stats request */
3041 tANI_U32 staId;
3042
3043 /* Categories of stats requested as specified in eHalStatsMask*/
3044 tANI_U32 statsMask;
3045}tHalStatsReqParams, *tpHalStatsReqParams;
3046
3047typedef PACKED_PRE struct PACKED_POST
3048{
3049 tHalMsgHeader header;
3050 tHalStatsReqParams statsReqParams;
3051} tHalStatsReqMsg, *tpHalStatsReqMsg;
3052
3053/*---------------------------------------------------------------------------
3054 * WLAN_HAL_GET_STATS_RSP
3055 *--------------------------------------------------------------------------*/
3056
3057typedef PACKED_PRE struct PACKED_POST
3058{
3059 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3060 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3061 // station successfully transmitted after more than one retransmission attempt
3062
Dino Mycle8afbac12014-07-04 22:06:17 +05303063 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3064 //(with and without retries, including multi-cast, broadcast)
3065 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3066 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003067 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3068 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3069 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3070 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 +05303071 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3072 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 -07003073 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3074 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 +05303075 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3076 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003077 //to provide this.
3078}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3079
3080
3081// defines tx_rate_flags
3082typedef enum eTxRateInfo
3083{
3084 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3085 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3086 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3087 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003088 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3089 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3090 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3091 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3092 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3093 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3094} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003095
3096
3097typedef PACKED_PRE struct PACKED_POST
3098{
Dino Mycle8afbac12014-07-04 22:06:17 +05303099 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 -07003100 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303101 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 -07003102 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303103 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3104 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003105 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303106 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3107 //for eg: if it is 10.5dBm, the value would be 105
3108 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3109 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003110
Dino Mycle8afbac12014-07-04 22:06:17 +05303111 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3112 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003113 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303114 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3115 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003116}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3117
3118typedef PACKED_PRE struct PACKED_POST
3119{
Dino Mycle8afbac12014-07-04 22:06:17 +05303120 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3121 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003122 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303123 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 -07003124 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303125 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 -07003126 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303127 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 -07003128 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303129 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 -07003130 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303131 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 -07003132 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303133 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 -07003134 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303135 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 -07003136 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303137 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 -07003138 //decrypted
3139 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3140
3141}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303142
Jeff Johnson295189b2012-06-20 16:38:30 -07003143typedef PACKED_PRE struct PACKED_POST
3144{
3145 tAniGlobalSecurityStats ucStats;
3146 tAniGlobalSecurityStats mcbcStats;
3147}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3148
3149typedef PACKED_PRE struct PACKED_POST
3150{
Dino Mycle8afbac12014-07-04 22:06:17 +05303151 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3152 //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 -07003153 //address 1 field
3154 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 +05303155 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 -07003156 //primary channel
3157 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 +05303158 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 -07003159 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303160 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3161 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003162 //decoded correctly
3163}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3164
3165typedef PACKED_PRE struct PACKED_POST
3166{
Dino Mycle8afbac12014-07-04 22:06:17 +05303167 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 -07003168 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303169 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3170 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 -07003171 //is transmitted
3172}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3173
3174typedef PACKED_PRE struct PACKED_POST
3175{
3176 /* Success or Failure */
3177 tANI_U32 status;
3178
3179 /* STA Idx */
3180 tANI_U32 staId;
3181
3182 /* Categories of STATS being returned as per eHalStatsMask*/
3183 tANI_U32 statsMask;
3184
3185 /* message type is same as the request type */
3186 tANI_U16 msgType;
3187
3188 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303189 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003190
3191} tHalStatsRspParams, *tpHalStatsRspParams;
3192
3193
3194
3195typedef PACKED_PRE struct PACKED_POST
3196{
3197 tHalMsgHeader header;
3198 tHalStatsRspParams statsRspParams;
3199} tHalStatsRspMsg, *tpHalStatsRspMsg;
3200
Abhishek Singhbc310882015-05-22 15:17:02 +05303201 /*---------------------------------------------------------------------------
3202 * WLAN_HAL_SET_RTS_CTS_HTVHT_IND
3203 *---------------------------------------------------------------------------*/
3204typedef PACKED_PRE struct PACKED_POST
3205{
3206 tANI_U32 rtsCtsValue;
3207}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
3208
3209typedef PACKED_PRE struct PACKED_POST
3210{
3211 tHalMsgHeader header;
3212 tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
3213} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
3214
Jeff Johnson295189b2012-06-20 16:38:30 -07003215/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303216 * WLAN_HAL_FW_STATS_REQ
3217 *---------------------------------------------------------------------------*/
3218 typedef PACKED_PRE struct PACKED_POST
3219{
3220 tANI_U32 type;
3221}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3222
3223typedef PACKED_PRE struct PACKED_POST
3224{
3225 tHalMsgHeader header;
3226 tHalfwStatsReqParams fwstatsReqParams;
3227} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3228
3229/*---------------------------------------------------------------------------
3230 * WLAN_HAL_FW_STATS_RSP
3231 *---------------------------------------------------------------------------*/
3232 typedef PACKED_PRE struct PACKED_POST
3233{
3234 tANI_U32 type;
3235 tANI_U32 length;
3236 tANI_U8 data[1];
3237
3238}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3239
3240typedef PACKED_PRE struct PACKED_POST
3241{
3242 tHalMsgHeader header;
3243 tHalfwStatsRspParams fwstatsRspParams;
3244} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3245
3246typedef enum
3247{
3248 FW_UBSP_STATS = 1,
3249} fwstatstype;
3250
3251
3252/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003253 * WLAN_HAL_SET_LINK_ST_REQ
3254 *--------------------------------------------------------------------------*/
3255typedef PACKED_PRE struct PACKED_POST
3256{
3257 tSirMacAddr bssid;
3258 tSirLinkState state;
3259 tSirMacAddr selfMacAddr;
3260} tLinkStateParams, *tpLinkStateParams;
3261
3262typedef PACKED_PRE struct PACKED_POST
3263{
3264 tHalMsgHeader header;
3265 tLinkStateParams linkStateParams;
3266} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3267
3268/*---------------------------------------------------------------------------
3269 * WLAN_HAL_SET_LINK_ST_RSP
3270 *--------------------------------------------------------------------------*/
3271
3272typedef PACKED_PRE struct PACKED_POST
3273{
3274 /*success or failure */
3275 tANI_U32 status;
3276} tLinkStateRspParams, *tpLinkStateRspParams;
3277
3278typedef PACKED_PRE struct PACKED_POST
3279{
3280 tHalMsgHeader header;
3281 tLinkStateRspParams linkStateRspParams;
3282} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3283
3284/*---------------------------------------------------------------------------
3285 * WLAN_HAL_ADD_TS_REQ
3286 *--------------------------------------------------------------------------*/
3287
3288/* TSPEC Params */
3289typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3290{
Jeff Johnson295189b2012-06-20 16:38:30 -07003291 tANI_U16 trafficType : 1;
3292 tANI_U16 tsid : 4;
3293 tANI_U16 direction : 2;
3294 tANI_U16 accessPolicy : 2;
3295 tANI_U16 aggregation : 1;
3296 tANI_U16 psb : 1;
3297 tANI_U16 userPrio : 3;
3298 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003299} __ani_attr_packed tSirMacTSInfoTfc;
3300
3301/* Flag to schedule the traffic type */
3302typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3303{
Jeff Johnson295189b2012-06-20 16:38:30 -07003304 tANI_U8 schedule : 1;
3305 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003306} __ani_attr_packed tSirMacTSInfoSch;
3307
3308/* Traffic and scheduling info */
3309typedef __ani_attr_pre_packed struct sSirMacTSInfo
3310{
3311 tSirMacTSInfoTfc traffic;
3312 tSirMacTSInfoSch schedule;
3313} __ani_attr_packed tSirMacTSInfo;
3314
3315/* Information elements */
3316typedef __ani_attr_pre_packed struct sSirMacTspecIE
3317{
3318 tANI_U8 type;
3319 tANI_U8 length;
3320 tSirMacTSInfo tsinfo;
3321 tANI_U16 nomMsduSz;
3322 tANI_U16 maxMsduSz;
3323 tANI_U32 minSvcInterval;
3324 tANI_U32 maxSvcInterval;
3325 tANI_U32 inactInterval;
3326 tANI_U32 suspendInterval;
3327 tANI_U32 svcStartTime;
3328 tANI_U32 minDataRate;
3329 tANI_U32 meanDataRate;
3330 tANI_U32 peakDataRate;
3331 tANI_U32 maxBurstSz;
3332 tANI_U32 delayBound;
3333 tANI_U32 minPhyRate;
3334 tANI_U16 surplusBw;
3335 tANI_U16 mediumTime;
3336}__ani_attr_packed tSirMacTspecIE;
3337
3338typedef PACKED_PRE struct PACKED_POST
3339{
3340 /* Station Index */
3341 tANI_U16 staIdx;
3342
3343 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3344 tANI_U16 tspecIdx;
3345
3346 /* To program TPE with required parameters */
3347 tSirMacTspecIE tspec;
3348
3349 /* U-APSD Flags: 1b per AC. Encoded as follows:
3350 b7 b6 b5 b4 b3 b2 b1 b0 =
3351 X X X X BE BK VI VO */
3352 tANI_U8 uAPSD;
3353
3354 /* These parameters are for all the access categories */
3355 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3356 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3357 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303358
Jeff Johnson295189b2012-06-20 16:38:30 -07003359} tAddTsParams, *tpAddTsParams;
3360
3361typedef PACKED_PRE struct PACKED_POST
3362{
3363 tHalMsgHeader header;
3364 tAddTsParams addTsParams;
3365} tAddTsReqMsg, *tpAddTsReqMsg;
3366
3367/*---------------------------------------------------------------------------
3368 * WLAN_HAL_ADD_TS_RSP
3369 *--------------------------------------------------------------------------*/
3370
3371typedef PACKED_PRE struct PACKED_POST
3372{
3373 /*success or failure */
3374 tANI_U32 status;
3375} tAddTsRspParams, *tpAddTsRspParams;
3376
3377typedef PACKED_PRE struct PACKED_POST
3378{
3379 tHalMsgHeader header;
3380 tAddTsRspParams addTsRspParams;
3381} tAddTsRspMsg, *tpAddTsRspMsg;
3382
3383
3384/*---------------------------------------------------------------------------
3385 * WLAN_HAL_DEL_TS_REQ
3386 *--------------------------------------------------------------------------*/
3387
3388typedef PACKED_PRE struct PACKED_POST
3389{
3390 /* Station Index */
3391 tANI_U16 staIdx;
3392
3393 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3394 tANI_U16 tspecIdx;
3395
3396 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303397 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003398
3399} tDelTsParams, *tpDelTsParams;
3400
3401typedef PACKED_PRE struct PACKED_POST
3402{
3403 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303404 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003405} tDelTsReqMsg, *tpDelTsReqMsg;
3406
3407/*---------------------------------------------------------------------------
3408 * WLAN_HAL_DEL_TS_RSP
3409 *--------------------------------------------------------------------------*/
3410
3411typedef PACKED_PRE struct PACKED_POST
3412{
3413 /*success or failure */
3414 tANI_U32 status;
3415} tDelTsRspParams, *tpDelTsRspParams;
3416
3417typedef PACKED_PRE struct PACKED_POST
3418{
3419 tHalMsgHeader header;
3420 tDelTsRspParams delTsRspParams;
3421} tDelTsRspMsg, *tpDelTsRspMsg;
3422
3423/* End of TSpec Parameters */
3424
3425/* Start of BLOCK ACK related Parameters */
3426
3427/*---------------------------------------------------------------------------
3428 * WLAN_HAL_ADD_BA_SESSION_REQ
3429 *--------------------------------------------------------------------------*/
3430
3431typedef PACKED_PRE struct PACKED_POST
3432{
3433 /* Station Index */
3434 tANI_U16 staIdx;
3435
3436 /* Peer MAC Address */
3437 tSirMacAddr peerMacAddr;
3438
3439 /* ADDBA Action Frame dialog token
3440 HAL will not interpret this object */
3441 tANI_U8 baDialogToken;
3442
3443 /* TID for which the BA is being setup
3444 This identifies the TC or TS of interest */
3445 tANI_U8 baTID;
3446
3447 /* 0 - Delayed BA (Not supported)
3448 1 - Immediate BA */
3449 tANI_U8 baPolicy;
3450
3451 /* Indicates the number of buffers for this TID (baTID)
3452 NOTE - This is the requested buffer size. When this
3453 is processed by HAL and subsequently by HDD, it is
3454 possible that HDD may change this buffer size. Any
3455 change in the buffer size should be noted by PE and
3456 advertized appropriately in the ADDBA response */
3457 tANI_U16 baBufferSize;
3458
3459 /* BA timeout in TU's 0 means no timeout will occur */
3460 tANI_U16 baTimeout;
3461
3462 /* b0..b3 - Fragment Number - Always set to 0
3463 b4..b15 - Starting Sequence Number of first MSDU
3464 for which this BA is setup */
3465 tANI_U16 baSSN;
3466
3467 /* ADDBA direction
3468 1 - Originator
3469 0 - Recipient */
3470 tANI_U8 baDirection;
3471} tAddBASessionParams, *tpAddBASessionParams;
3472
3473typedef PACKED_PRE struct PACKED_POST
3474{
3475 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303476 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003477}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3478
3479/*---------------------------------------------------------------------------
3480 * WLAN_HAL_ADD_BA_SESSION_RSP
3481 *--------------------------------------------------------------------------*/
3482
3483typedef PACKED_PRE struct PACKED_POST
3484{
3485 /*success or failure */
3486 tANI_U32 status;
3487
3488 /* Dialog token */
3489 tANI_U8 baDialogToken;
3490
3491 /* TID for which the BA session has been setup */
3492 tANI_U8 baTID;
3493
3494 /* BA Buffer Size allocated for the current BA session */
3495 tANI_U8 baBufferSize;
3496
3497 tANI_U8 baSessionID;
3498
3499 /* Reordering Window buffer */
3500 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303501
Jeff Johnson295189b2012-06-20 16:38:30 -07003502 /*Station Index to id the sta */
3503 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303504
Jeff Johnson295189b2012-06-20 16:38:30 -07003505 /* Starting Sequence Number */
3506 tANI_U16 SSN;
3507} tAddBASessionRspParams, *tpAddBASessionRspParams;
3508
3509typedef PACKED_PRE struct PACKED_POST
3510{
3511 tHalMsgHeader header;
3512 tAddBASessionRspParams addBASessionRspParams;
3513} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3514
3515/*---------------------------------------------------------------------------
3516 * WLAN_HAL_ADD_BA_REQ
3517 *--------------------------------------------------------------------------*/
3518
3519typedef PACKED_PRE struct PACKED_POST
3520{
3521 /* Session Id */
3522 tANI_U8 baSessionID;
3523
3524 /* Reorder Window Size */
3525 tANI_U8 winSize;
3526
3527#ifdef FEATURE_ON_CHIP_REORDERING
3528 tANI_BOOLEAN isReorderingDoneOnChip;
3529#endif
3530} tAddBAParams, *tpAddBAParams;
3531
3532typedef PACKED_PRE struct PACKED_POST
3533{
3534 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303535 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003536} tAddBAReqMsg, *tpAddBAReqMsg;
3537
3538
3539/*---------------------------------------------------------------------------
3540 * WLAN_HAL_ADD_BA_RSP
3541 *--------------------------------------------------------------------------*/
3542
3543typedef PACKED_PRE struct PACKED_POST
3544{
3545 /*success or failure */
3546 tANI_U32 status;
3547
3548 /* Dialog token */
3549 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303550
Jeff Johnson295189b2012-06-20 16:38:30 -07003551} tAddBARspParams, *tpAddBARspParams;
3552
3553typedef PACKED_PRE struct PACKED_POST
3554{
3555 tHalMsgHeader header;
3556 tAddBARspParams addBARspParams;
3557} tAddBARspMsg, *tpAddBARspMsg;
3558
3559
3560/*---------------------------------------------------------------------------
3561 * WLAN_HAL_TRIGGER_BA_REQ
3562 *--------------------------------------------------------------------------*/
3563
3564
3565typedef struct sAddBaInfo
3566{
3567 tANI_U16 fBaEnable : 1;
3568 tANI_U16 startingSeqNum: 12;
3569 tANI_U16 reserved : 3;
3570}tAddBaInfo, *tpAddBaInfo;
3571
3572typedef struct sTriggerBaRspCandidate
3573{
3574 tSirMacAddr staAddr;
3575 tAddBaInfo baInfo[STACFG_MAX_TC];
3576}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3577
3578typedef struct sTriggerBaCandidate
3579{
3580 tANI_U8 staIdx;
3581 tANI_U8 tidBitmap;
3582}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3583
3584typedef PACKED_PRE struct PACKED_POST
3585{
3586 /* Session Id */
3587 tANI_U8 baSessionID;
3588
Dino Mycle8afbac12014-07-04 22:06:17 +05303589 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003590 * Candidate List(tTriggerBaCandidate)
3591 */
3592 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303593
Jeff Johnson295189b2012-06-20 16:38:30 -07003594} tTriggerBAParams, *tpTriggerBAParams;
3595
3596typedef PACKED_PRE struct PACKED_POST
3597{
3598 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303599 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003600} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3601
3602
3603/*---------------------------------------------------------------------------
3604 * WLAN_HAL_TRIGGER_BA_RSP
3605 *--------------------------------------------------------------------------*/
3606
3607typedef PACKED_PRE struct PACKED_POST
3608{
Dino Mycle8afbac12014-07-04 22:06:17 +05303609
Jeff Johnson295189b2012-06-20 16:38:30 -07003610 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303611 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003612
3613 /* success or failure */
3614 tANI_U32 status;
3615
Dino Mycle8afbac12014-07-04 22:06:17 +05303616 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003617 * Rsp Candidate List(tTriggerRspBaCandidate)
3618 */
3619 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303620
Jeff Johnson295189b2012-06-20 16:38:30 -07003621
3622} tTriggerBARspParams, *tpTriggerBARspParams;
3623
3624typedef PACKED_PRE struct PACKED_POST
3625{
3626 tHalMsgHeader header;
3627 tTriggerBARspParams triggerBARspParams;
3628} tTriggerBARspMsg, *tpTriggerBARspMsg;
3629
3630/*---------------------------------------------------------------------------
3631 * WLAN_HAL_DEL_BA_REQ
3632 *--------------------------------------------------------------------------*/
3633
3634typedef PACKED_PRE struct PACKED_POST
3635{
3636 /* Station Index */
3637 tANI_U16 staIdx;
3638
3639 /* TID for which the BA session is being deleted */
3640 tANI_U8 baTID;
3641
3642 /* DELBA direction
3643 1 - Originator
3644 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303645 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003646} tDelBAParams, *tpDelBAParams;
3647
3648typedef PACKED_PRE struct PACKED_POST
3649{
3650 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303651 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003652} tDelBAReqMsg, *tpDelBAReqMsg;
3653
3654/*---------------------------------------------------------------------------
3655 * WLAN_HAL_DEL_BA_RSP
3656 *--------------------------------------------------------------------------*/
3657
3658typedef PACKED_PRE struct PACKED_POST
3659{
3660 /* success or failure */
3661 tANI_U32 status;
3662} tDelBARspParams, *tpDelBARspParams;
3663
3664typedef PACKED_PRE struct PACKED_POST
3665{
3666 tHalMsgHeader header;
3667 tDelBARspParams delBARspParams;
3668} tDelBARspMsg, *tpDelBARspMsg;
3669
3670
Jeff Johnson295189b2012-06-20 16:38:30 -07003671/*---------------------------------------------------------------------------
3672 * WLAN_HAL_TSM_STATS_REQ
3673 *--------------------------------------------------------------------------*/
3674typedef PACKED_PRE struct PACKED_POST
3675{
3676 /* Traffic Id */
3677 tANI_U8 tsmTID;
3678
3679 tSirMacAddr bssId;
3680} tTsmStatsParams, *tpTsmStatsParams;
3681
3682typedef PACKED_PRE struct PACKED_POST
3683{
3684 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303685 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003686} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3687
3688
3689/*---------------------------------------------------------------------------
3690 * WLAN_HAL_TSM_STATS_RSP
3691 *--------------------------------------------------------------------------*/
3692typedef PACKED_PRE struct PACKED_POST
3693{
3694 /*success or failure */
3695 tANI_U32 status;
3696
Dino Mycle8afbac12014-07-04 22:06:17 +05303697 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003698 tANI_U16 UplinkPktQueueDly;
3699
Dino Mycle8afbac12014-07-04 22:06:17 +05303700 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003701 tANI_U16 UplinkPktQueueDlyHist[4];
3702
Dino Mycle8afbac12014-07-04 22:06:17 +05303703 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003704 tANI_U32 UplinkPktTxDly;
3705
Dino Mycle8afbac12014-07-04 22:06:17 +05303706 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003707 tANI_U16 UplinkPktLoss;
3708
Dino Mycle8afbac12014-07-04 22:06:17 +05303709 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003710 tANI_U16 UplinkPktCount;
3711
Dino Mycle8afbac12014-07-04 22:06:17 +05303712 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003713 tANI_U8 RoamingCount;
3714
Dino Mycle8afbac12014-07-04 22:06:17 +05303715 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003716 tANI_U16 RoamingDly;
3717} tTsmStatsRspParams, *tpTsmStatsRspParams;
3718
3719typedef PACKED_PRE struct PACKED_POST
3720{
3721 tHalMsgHeader header;
3722 tTsmStatsRspParams tsmStatsRspParams;
3723} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3724
3725
Jeff Johnson295189b2012-06-20 16:38:30 -07003726/*---------------------------------------------------------------------------
3727 * WLAN_HAL_SET_KEYDONE_MSG
3728 *--------------------------------------------------------------------------*/
3729
3730typedef PACKED_PRE struct PACKED_POST
3731{
3732 /*bssid of the keys */
3733 tANI_U8 bssidx;
3734 tANI_U8 encType;
3735} tSetKeyDoneParams, *tpSetKeyDoneParams;
3736
3737typedef PACKED_PRE struct PACKED_POST
3738{
3739 tHalMsgHeader header;
3740 tSetKeyDoneParams setKeyDoneParams;
3741} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3742
3743/*---------------------------------------------------------------------------
3744 * WLAN_HAL_DOWNLOAD_NV_REQ
3745 *--------------------------------------------------------------------------*/
3746typedef PACKED_PRE struct PACKED_POST
3747{
3748 /* Fragment sequence number of the NV Image. Note that NV Image might not
3749 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303750 * can hence choose to chop the NV blob into multiple fragments starting with
3751 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003752 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3753 * concatenated together by HAL without any padding bytes in between.*/
3754 tANI_U16 fragNumber;
3755
3756 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303757 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003758 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3759 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3760 tANI_U16 isLastFragment;
3761
3762 /* NV Image size (number of bytes) */
3763 tANI_U32 nvImgBufferSize;
3764
3765 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3766 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3767} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3768
3769typedef PACKED_PRE struct PACKED_POST
3770{
3771 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3772 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3773 tHalMsgHeader header;
3774 tHalNvImgDownloadReqParams nvImageReqParams;
3775} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3776
3777/*---------------------------------------------------------------------------
3778 * WLAN_HAL_DOWNLOAD_NV_RSP
3779 *--------------------------------------------------------------------------*/
3780typedef PACKED_PRE struct PACKED_POST
3781{
3782 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3783 * after each fragment */
3784 tANI_U32 status;
3785} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3786
3787typedef PACKED_PRE struct PACKED_POST
3788{
3789 tHalMsgHeader header;
3790 tHalNvImgDownloadRspParams nvImageRspParams;
3791} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3792
3793/*---------------------------------------------------------------------------
3794 * WLAN_HAL_STORE_NV_IND
3795 *--------------------------------------------------------------------------*/
3796typedef PACKED_PRE struct PACKED_POST
3797{
3798 /* NV Item */
3799 eNvTable tableID;
3800
3801 /* Size of NV Blob */
3802 tANI_U32 nvBlobSize;
3803
Dino Mycle8afbac12014-07-04 22:06:17 +05303804 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003805 * NV blob i.e. uint8[nvBlobSize] */
3806} tHalNvStoreParams, *tpHalNvStoreParams;
3807
3808typedef PACKED_PRE struct PACKED_POST
3809{
3810 /* Note: The length specified in tHalNvStoreInd messages should be
3811 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3812 tHalMsgHeader header;
3813 tHalNvStoreParams nvStoreParams;
3814} tHalNvStoreInd, *tpHalNvStoreInd;
3815
3816/* End of Block Ack Related Parameters */
3817
3818/*---------------------------------------------------------------------------
3819 * WLAN_HAL_MIC_FAILURE_IND
3820 *--------------------------------------------------------------------------*/
3821
3822#define SIR_CIPHER_SEQ_CTR_SIZE 6
3823
3824typedef PACKED_PRE struct PACKED_POST
3825{
Dino Mycle8afbac12014-07-04 22:06:17 +05303826 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003827 tSirMacAddr taMacAddr; //transmitter address
3828 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303829 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003830 tANI_U8 IV1; // first byte of IV
3831 tANI_U8 keyId; // second byte of IV
3832 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3833 tSirMacAddr rxMacAddr; // receive address
3834} tSirMicFailureInfo, *tpSirMicFailureInfo;
3835
3836/* Definition for MIC failure indication
3837 MAC reports this each time a MIC failure occures on Rx TKIP packet
3838 */
3839typedef PACKED_PRE struct PACKED_POST
3840{
3841 tSirMacAddr bssId; // BSSID
3842 tSirMicFailureInfo info;
3843} tSirMicFailureInd, *tpSirMicFailureInd;
3844
3845typedef PACKED_PRE struct PACKED_POST
3846{
3847 tHalMsgHeader header;
3848 tSirMicFailureInd micFailureInd;
3849} tMicFailureIndMsg, *tpMicFailureIndMsg;
3850
Mohit Khanna4a70d262012-09-11 16:30:12 -07003851typedef PACKED_PRE struct PACKED_POST
3852{
3853 tANI_U16 opMode;
3854 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303855}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003856
3857typedef PACKED_PRE struct PACKED_POST
3858{
3859 tHalMsgHeader header;
3860 tUpdateVHTOpMode updateVhtOpMode;
3861} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3862
3863typedef PACKED_PRE struct PACKED_POST
3864{
3865 tANI_U32 status;
3866} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3867
3868typedef PACKED_PRE struct PACKED_POST
3869{
3870 tHalMsgHeader header;
3871 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3872} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3873
Jeff Johnson295189b2012-06-20 16:38:30 -07003874/*---------------------------------------------------------------------------
3875 * WLAN_HAL_UPDATE_BEACON_REQ
3876 *--------------------------------------------------------------------------*/
3877typedef PACKED_PRE struct PACKED_POST
3878{
3879
3880 tANI_U8 bssIdx;
3881
3882 //shortPreamble mode. HAL should update all the STA rates when it
3883 //receives this message
3884 tANI_U8 fShortPreamble;
3885 //short Slot time.
3886 tANI_U8 fShortSlotTime;
3887 //Beacon Interval
3888 tANI_U16 beaconInterval;
3889 //Protection related
3890 tANI_U8 llaCoexist;
3891 tANI_U8 llbCoexist;
3892 tANI_U8 llgCoexist;
3893 tANI_U8 ht20MhzCoexist;
3894 tANI_U8 llnNonGFCoexist;
3895 tANI_U8 fLsigTXOPProtectionFullSupport;
3896 tANI_U8 fRIFSMode;
3897
3898 tANI_U16 paramChangeBitmap;
3899}tUpdateBeaconParams, *tpUpdateBeaconParams;
3900
3901
3902typedef PACKED_PRE struct PACKED_POST
3903{
3904 tHalMsgHeader header;
3905 tUpdateBeaconParams updateBeaconParam;
3906} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3907
3908/*---------------------------------------------------------------------------
3909 * WLAN_HAL_UPDATE_BEACON_RSP
3910 *--------------------------------------------------------------------------*/
3911typedef PACKED_PRE struct PACKED_POST
3912{
3913 tANI_U32 status;
3914} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3915
3916typedef PACKED_PRE struct PACKED_POST
3917{
3918 tHalMsgHeader header;
3919 tUpdateBeaconRspParams updateBeaconRspParam;
3920} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3921
3922/*---------------------------------------------------------------------------
3923 * WLAN_HAL_SEND_BEACON_REQ
3924 *--------------------------------------------------------------------------*/
3925typedef PACKED_PRE struct PACKED_POST
3926{
3927 tANI_U32 beaconLength; //length of the template.
3928 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3929 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003930 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003931 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3932}tSendBeaconParams, *tpSendBeaconParams;
3933
3934
3935typedef PACKED_PRE struct PACKED_POST
3936{
3937 tHalMsgHeader header;
3938 tSendBeaconParams sendBeaconParam;
3939}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3940
3941/*---------------------------------------------------------------------------
3942 * WLAN_HAL_SEND_BEACON_RSP
3943 *--------------------------------------------------------------------------*/
3944typedef PACKED_PRE struct PACKED_POST
3945{
3946 tANI_U32 status;
3947} tSendBeaconRspParams, *tpSendBeaconRspParams;
3948
3949typedef PACKED_PRE struct PACKED_POST
3950{
3951 tHalMsgHeader header;
3952 tSendBeaconRspParams sendBeaconRspParam;
3953} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3954
3955#ifdef FEATURE_5GHZ_BAND
3956
3957/*---------------------------------------------------------------------------
3958 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3959 *--------------------------------------------------------------------------*/
3960typedef PACKED_PRE struct PACKED_POST
3961{
3962 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303963 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003964}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3965
3966
3967typedef PACKED_PRE struct PACKED_POST
3968{
3969 /* Link Parameters */
3970 tSirEnableRadarInfoType EnableRadarInfo;
3971}tEnableRadarReqParams, *tpEnableRadarReqParams;
3972
3973typedef PACKED_PRE struct PACKED_POST
3974{
3975 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303976 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003977}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3978
3979/*---------------------------------------------------------------------------
3980 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3981 *--------------------------------------------------------------------------*/
3982
3983typedef PACKED_PRE struct PACKED_POST
3984{
3985 /* Link Parameters */
3986 tSirMacAddr BSSID;
3987 /* success or failure */
3988 tANI_U32 status;
3989}tEnableRadarRspParams, *tpEnableRadarRspParams;
3990
3991typedef PACKED_PRE struct PACKED_POST
3992{
3993 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303994 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003995}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3996
3997/*---------------------------------------------------------------------------
3998 *WLAN_HAL_RADAR_DETECT_INTR_IND
3999 *--------------------------------------------------------------------------*/
4000
4001typedef PACKED_PRE struct PACKED_POST
4002{
4003 tANI_U8 radarDetChannel;
4004}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
4005
4006typedef PACKED_PRE struct PACKED_POST
4007{
4008 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304009 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004010}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
4011
4012/*---------------------------------------------------------------------------
4013 *WLAN_HAL_RADAR_DETECT_IND
4014 *-------------------------------------------------------------------------*/
4015typedef PACKED_PRE struct PACKED_POST
4016{
4017 /*channel number in which the RADAR detected*/
4018 tANI_U8 channelNumber;
4019
4020 /*RADAR pulse width*/
4021 tANI_U16 radarPulseWidth; // in usecond
4022
4023 /*Number of RADAR pulses */
4024 tANI_U16 numRadarPulse;
4025}tRadarDetectIndParams,*tpRadarDetectIndParams;
4026
4027typedef PACKED_PRE struct PACKED_POST
4028{
4029 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304030 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004031}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4032
4033
4034/*---------------------------------------------------------------------------
4035 *WLAN_HAL_GET_TPC_REPORT_REQ
4036 *-------------------------------------------------------------------------*/
4037typedef PACKED_PRE struct PACKED_POST
4038{
4039 tSirMacAddr sta;
4040 tANI_U8 dialogToken;
4041 tANI_U8 txpower;
4042}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4043
4044
4045typedef PACKED_PRE struct PACKED_POST
4046{
4047 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304048 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004049}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4050
4051/*---------------------------------------------------------------------------
4052 * WLAN_HAL_GET_TPC_REPORT_RSP
4053 *--------------------------------------------------------------------------*/
4054
4055typedef PACKED_PRE struct PACKED_POST
4056{
4057 /* success or failure */
4058 tANI_U32 status;
4059}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4060
4061typedef PACKED_PRE struct PACKED_POST
4062{
4063 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304064 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004065}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4066
4067#endif
4068
Jeff Johnson295189b2012-06-20 16:38:30 -07004069/*---------------------------------------------------------------------------
4070 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4071 *-------------------------------------------------------------------------*/
4072typedef PACKED_PRE struct PACKED_POST
4073{
4074 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4075 tANI_U32 probeRespTemplateLen;
4076 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4077 tSirMacAddr bssId;
4078
4079}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4080
4081typedef PACKED_PRE struct PACKED_POST
4082{
4083 tHalMsgHeader header;
4084 tSendProbeRespReqParams sendProbeRespReqParams ;
4085}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4086
4087/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304088 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004089 *--------------------------------------------------------------------------*/
4090
4091typedef PACKED_PRE struct PACKED_POST
4092{
4093 /* success or failure */
4094 tANI_U32 status;
4095}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4096
4097typedef PACKED_PRE struct PACKED_POST
4098{
4099 tHalMsgHeader header;
4100 tSendProbeRespRspParams sendProbeRespRspParams;
4101}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4102
4103
4104/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304105 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004106 *--------------------------------------------------------------------------*/
4107
4108typedef PACKED_PRE struct PACKED_POST
4109{
4110 /* success or failure */
4111 tANI_U32 status;
4112}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4113
4114typedef PACKED_PRE struct PACKED_POST
4115{
4116 tHalMsgHeader header;
4117 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4118}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4119
4120/*---------------------------------------------------------------------------
4121 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4122 *--------------------------------------------------------------------------*/
4123
4124typedef PACKED_PRE struct PACKED_POST
4125{
4126 tANI_U16 assocId;
4127 tANI_U16 staId;
4128 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4129 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004130 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304131 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004132
4133}tDeleteStaContextParams, *tpDeleteStaContextParams;
4134
4135
4136typedef PACKED_PRE struct PACKED_POST
4137{
4138 tHalMsgHeader header;
4139 tDeleteStaContextParams deleteStaContextParams;
4140}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4141
Anand Kumar012623a2013-01-11 17:00:00 -08004142typedef PACKED_PRE struct PACKED_POST
4143{
4144 tHalMsgHeader header;
4145 tANI_U8 assocId;
4146 tANI_U8 staIdx;
4147 tANI_U8 bssIdx;
4148 tANI_U8 uReasonCode;
4149 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004150#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4151 tANI_U8 staAddr[6];
4152 tANI_U8 bssId[6];
4153#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004154} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004155
4156/*---------------------------------------------------------------------------
4157 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4158 *--------------------------------------------------------------------------*/
4159
4160typedef PACKED_PRE struct PACKED_POST
4161{
4162 tBtAmpEventType btAmpEventType;
4163
4164}tBtAmpEventParams, *tpBtAmpEventParams;
4165
4166
4167
4168typedef PACKED_PRE struct PACKED_POST
4169{
4170 tHalMsgHeader header;
4171 tBtAmpEventParams btAmpEventParams;
4172}tBtAmpEventMsg, *tpBtAmpEventMsg;
4173
4174/*---------------------------------------------------------------------------
4175*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4176*--------------------------------------------------------------------------*/
4177
4178typedef PACKED_PRE struct PACKED_POST
4179{
4180 /* success or failure */
4181 tANI_U32 status;
4182}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4183
4184typedef PACKED_PRE struct PACKED_POST
4185{
4186 tHalMsgHeader header;
4187 tBtAmpEventRspParams btAmpEventRspParams;
4188}tBtAmpEventRsp, *tpBtAmpEventRsp;
4189
4190
4191/*---------------------------------------------------------------------------
4192 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4193 *--------------------------------------------------------------------------*/
4194
4195typedef PACKED_PRE struct PACKED_POST
4196{
4197 // Station Index. originates from HAL
4198 tANI_U8 ucSTAId;
4199
4200 // TID for which the transmit queue is being flushed
4201 tANI_U8 ucTid;
4202
4203}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4204
4205
4206typedef PACKED_PRE struct PACKED_POST
4207{
4208 tHalMsgHeader header;
4209 tTlHalFlushAcParams tlHalFlushAcParam;
4210}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4211
4212/*---------------------------------------------------------------------------
4213*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4214*--------------------------------------------------------------------------*/
4215
4216typedef PACKED_PRE struct PACKED_POST
4217{
4218 // Station Index. originates from HAL
4219 tANI_U8 ucSTAId;
4220
4221 // TID for which the transmit queue is being flushed
4222 tANI_U8 ucTid;
4223
4224 /* success or failure */
4225 tANI_U32 status;
4226}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4227
4228typedef PACKED_PRE struct PACKED_POST
4229{
4230 tHalMsgHeader header;
4231 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4232}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4233
4234/*---------------------------------------------------------------------------
4235 * WLAN_HAL_ENTER_IMPS_REQ
4236 *--------------------------------------------------------------------------*/
4237typedef PACKED_PRE struct PACKED_POST
4238{
4239 tHalMsgHeader header;
4240} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4241
4242/*---------------------------------------------------------------------------
4243 * WLAN_HAL_EXIT_IMPS_REQ
4244 *--------------------------------------------------------------------------*/
4245typedef PACKED_PRE struct PACKED_POST
4246{
4247 tHalMsgHeader header;
4248} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4249
4250/*---------------------------------------------------------------------------
4251 * WLAN_HAL_ENTER_BMPS_REQ
4252 *--------------------------------------------------------------------------*/
4253
4254typedef PACKED_PRE struct PACKED_POST
4255{
4256 tANI_U8 bssIdx;
4257 //TBTT value derived from the last beacon
4258#ifndef BUILD_QWPTTSTATIC
4259 tANI_U64 tbtt;
4260#endif
4261 tANI_U8 dtimCount;
4262 //DTIM period given to HAL during association may not be valid,
4263 //if association is based on ProbeRsp instead of beacon.
4264 tANI_U8 dtimPeriod;
4265
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004266 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004267 tANI_U32 rssiFilterPeriod;
4268 tANI_U32 numBeaconPerRssiAverage;
4269 tANI_U8 bRssiFilterEnable;
4270
4271} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4272
4273
4274typedef PACKED_PRE struct PACKED_POST
4275{
4276 tHalMsgHeader header;
4277 tHalEnterBmpsReqParams enterBmpsReq;
4278} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4279
4280/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304281 * WLAN_HAL_PRINT_REG_INFO_IND
4282 *--------------------------------------------------------------------------*/
4283typedef PACKED_PRE struct PACKED_POST
4284{
4285 uint32 regAddr;
4286 uint32 regValue;
4287} tHalRegDebugInfo, *tpRegDebugInfo;
4288
4289typedef PACKED_PRE struct PACKED_POST
4290{
4291 uint32 regCount;
4292 uint32 scenario;
4293 uint32 reasonCode;
4294} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4295
4296typedef PACKED_PRE struct PACKED_POST
4297{
4298 tHalMsgHeader header;
4299 tHalRegDebugInfoParams regParams;
4300} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4301
4302/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004303 * WLAN_HAL_EXIT_BMPS_REQ
4304 *--------------------------------------------------------------------------*/
4305typedef PACKED_PRE struct PACKED_POST
4306{
4307 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004308 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004309} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4310
4311typedef PACKED_PRE struct PACKED_POST
4312{
4313 tHalMsgHeader header;
4314 tHalExitBmpsReqParams exitBmpsReqParams;
4315} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4316
4317/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004318 * WLAN_HAL_MISSED_BEACON_IND
4319 *--------------------------------------------------------------------------*/
4320typedef PACKED_PRE struct PACKED_POST
4321{
4322 tANI_U8 bssIdx;
4323} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4324
4325typedef PACKED_PRE struct PACKED_POST
4326{
4327 tHalMsgHeader header;
4328 tHalMissedBeaconIndParams missedBeaconIndParams;
4329} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4330
4331/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004332 * WLAN_HAL_ADD_BCN_FILTER_REQ
4333 *--------------------------------------------------------------------------*/
4334/* Beacon Filtering data structures */
4335typedef PACKED_PRE struct PACKED_POST
4336{
4337 tANI_U8 offset;
4338 tANI_U8 value;
4339 tANI_U8 bitMask;
4340 tANI_U8 ref;
4341} tEidByteInfo, *tpEidByteInfo;
4342
Dino Mycle8afbac12014-07-04 22:06:17 +05304343typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004344{
4345 tANI_U16 capabilityInfo;
4346 tANI_U16 capabilityMask;
4347 tANI_U16 beaconInterval;
4348 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004349 tANI_U8 bssIdx;
4350 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004351} tBeaconFilterMsg, *tpBeaconFilterMsg;
4352
4353/* The above structure would be followed by multiple of below mentioned structure */
4354typedef PACKED_PRE struct PACKED_POST
4355{
4356 tANI_U8 elementId;
4357 tANI_U8 checkIePresence;
4358 tEidByteInfo byte;
4359} tBeaconFilterIe, *tpBeaconFilterIe;
4360
4361typedef PACKED_PRE struct PACKED_POST
4362{
4363 tHalMsgHeader header;
4364 tBeaconFilterMsg addBcnFilterParams;
4365} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4366
4367/*---------------------------------------------------------------------------
4368 * WLAN_HAL_REM_BCN_FILTER_REQ
4369 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304370typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004371{
4372 tANI_U8 ucIeCount;
4373 tANI_U8 ucRemIeId[1];
4374} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4375
4376typedef PACKED_PRE struct PACKED_POST
4377{
4378 tHalMsgHeader header;
4379 tRemBeaconFilterMsg remBcnFilterParams;
4380} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4381
4382/*---------------------------------------------------------------------------
4383 * WLAN_HAL_HOST_OFFLOAD_REQ
4384 *--------------------------------------------------------------------------*/
4385#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4386#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4387#define HAL_IPV6_NS_OFFLOAD 2
4388#define HAL_IPV6_ADDR_LEN 16
4389#define HAL_MAC_ADDR_LEN 6
4390#define HAL_OFFLOAD_DISABLE 0
4391#define HAL_OFFLOAD_ENABLE 1
4392#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004393#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004394#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004395#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004396
4397typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4398{
4399 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4400 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4401 //Only support 2 possible Network Advertisement IPv6 address
4402 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4403 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4404 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4405 tANI_U8 srcIPv6AddrValid : 1;
4406 tANI_U8 targetIPv6Addr1Valid : 1;
4407 tANI_U8 targetIPv6Addr2Valid : 1;
4408 tANI_U8 reserved1 : 5;
4409 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004410 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004411 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004412} tHalNSOffloadParams;
4413
4414typedef PACKED_PRE struct PACKED_POST
4415{
4416 tANI_U8 offloadType;
4417 tANI_U8 enableOrDisable;
4418 PACKED_PRE union PACKED_POST
4419 {
4420 tANI_U8 hostIpv4Addr [4];
4421 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4422 } params;
4423} tHalHostOffloadReq, *tpHalHostOffloadReq;
4424
4425typedef PACKED_PRE struct PACKED_POST
4426{
4427 tHalMsgHeader header;
4428 tHalHostOffloadReq hostOffloadParams;
4429 tHalNSOffloadParams nsOffloadParams;
4430} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4431
Leo Chang397deb72013-08-22 11:33:16 -07004432
4433#ifdef FEATURE_WLAN_LPHB
4434typedef enum
4435{
4436 WIFI_HB_SET_ENABLE = 0x0001,
4437 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4438 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4439 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4440 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4441 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4442}tLowPowerHeartBeatCmdType ;
4443
4444#define MAX_FLITER_SIZE 64
4445/*---------------------------------------------------------------------------
4446 *FEATURE_WLAN_LPHB REQ
4447 *--------------------------------------------------------------------------*/
4448typedef PACKED_PRE struct PACKED_POST
4449{
4450 uint32 hostIpv4Addr;
4451 uint32 destIpv4Addr;
4452 uint16 hostPort;
4453 uint16 destPort;
4454 uint16 timeOutSec; // in seconds
4455 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004456 uint16 timePeriodSec; // in seconds
4457 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004458} tlowPowerHeartBeatParamsTcpStruct;
4459
4460typedef PACKED_PRE struct PACKED_POST
4461{
4462 uint32 hostIpv4Addr;
4463 uint32 destIpv4Addr;
4464 uint16 hostPort;
4465 uint16 destPort;
4466 uint16 timePeriodSec;// in seconds
4467 uint16 timeOutSec; // in seconds
4468 tSirMacAddr gatewayMacAddr;
4469} tlowPowerHeartBeatParamsUdpStruct;
4470
4471typedef PACKED_PRE struct PACKED_POST
4472{
4473 uint32 offset;
4474 uint32 filterLength;
4475 uint8 filter[MAX_FLITER_SIZE];
4476} tlowPowerHeartBeatFilterStruct;
4477
4478typedef PACKED_PRE struct PACKED_POST
4479{
4480 uint8 heartBeatEnable;
4481 uint8 heartBeatType; //TCP or UDP
4482} tlowPowerHeartBeatEnableStruct;
4483
4484typedef PACKED_PRE struct PACKED_POST
4485{
4486 uint8 dummy;
4487} tlowPowerHeartBeatNetworkInfoStruct;
4488
4489
4490typedef PACKED_PRE struct PACKED_POST
4491{
4492 uint8 sessionIdx;
4493 uint16 lowPowerHeartBeatCmdType;
4494 PACKED_PRE union PACKED_PRO
4495 {
4496 tlowPowerHeartBeatEnableStruct control;
4497 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4498 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4499 tlowPowerHeartBeatParamsUdpStruct udpParams;
4500 tlowPowerHeartBeatNetworkInfoStruct info;
4501 }options;
4502} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4503
4504
4505typedef PACKED_PRE struct PACKED_POST
4506{
4507 tHalMsgHeader header;
4508 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4509} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4510
4511/*---------------------------------------------------------------------------
4512 * FEATURE_WLAN_LPHB RSP
4513 *--------------------------------------------------------------------------*/
4514
4515typedef PACKED_PRE struct PACKED_POST
4516{
4517 /* success or failure */
4518 uint8 sessionIdx;
4519 uint32 status;
4520 uint16 lowPowerHeartBeatCmdType;
4521}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4522
4523typedef PACKED_PRE struct PACKED_POST
4524{
4525 tHalMsgHeader header;
4526 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4527}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4528
4529
4530/*---------------------------------------------------------------------------
4531 * FEATURE_WLAN_LPHB IND
4532 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004533#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4534#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4535
4536#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4537#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004538#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004539
Kumar Anandea78e792013-10-10 23:47:01 -07004540
4541#define WIFI_LPHB_PROTO_UDP 0x01
4542#define WIFI_LPHB_PROTO_TCP 0x02
4543
Leo Chang397deb72013-08-22 11:33:16 -07004544typedef PACKED_PRE struct PACKED_POST
4545{
4546 uint8 bssIdx;
4547 uint8 sessionIdx;
4548 uint8 protocolType; /*TCP or UDP*/
4549 uint8 eventReason;
4550
4551}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4552
4553typedef PACKED_PRE struct PACKED_POST
4554{
4555 tHalMsgHeader header;
4556 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4557}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4558
4559#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004560
4561#ifdef FEATURE_WLAN_BATCH_SCAN
4562
4563/*---------------------------------------------------------------------------
4564 * WLAN_HAL_BATCHSCAN_SET_REQ
4565 *--------------------------------------------------------------------------*/
4566typedef PACKED_PRE struct PACKED_POST
4567{
4568 /* Scan Frerquency - default to 30Sec*/
4569 tANI_U32 scanInterval;
4570 tANI_U32 numScan2Batch;
4571 tANI_U32 bestNetworks;
4572 tANI_U8 rfBand;
4573 tANI_U8 rtt;
4574} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4575
4576typedef PACKED_PRE struct PACKED_POST
4577{
4578 tHalMsgHeader header;
4579 tHalBatchScanSetParams batchScanParams;
4580} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4581
4582/*---------------------------------------------------------------------------
4583 * WLAN_HAL_BATCHSCAN_SET_RSP
4584 *--------------------------------------------------------------------------*/
4585typedef PACKED_PRE struct PACKED_POST
4586{
4587 tANI_U32 supportedMscan;
4588} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4589
4590typedef PACKED_PRE struct PACKED_POST
4591{
4592 tHalMsgHeader header;
4593 tHalBatchScanSetRspParam setBatchScanRspParam;
4594} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4595
4596/*---------------------------------------------------------------------------
4597* WLAN_HAL_BATCHSCAN_STOP_IND
4598*--------------------------------------------------------------------------*/
4599typedef PACKED_PRE struct PACKED_POST
4600{
4601 tANI_U32 param;
4602} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4603
4604typedef PACKED_PRE struct PACKED_POST
4605{
4606 tHalMsgHeader header;
4607 tHalBatchScanStopIndParam param;
4608} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4609
4610/*---------------------------------------------------------------------------
4611* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4612*--------------------------------------------------------------------------*/
4613typedef PACKED_PRE struct PACKED_POST
4614{
4615 tANI_U32 param;
4616} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4617
4618typedef PACKED_PRE struct PACKED_POST
4619{
4620 tHalMsgHeader header;
4621 tHalBatchScanTriggerResultParam param;
4622} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4623
4624/*---------------------------------------------------------------------------
4625 * WLAN_HAL_BATCHSCAN_GET_RSP
4626 *--------------------------------------------------------------------------*/
4627typedef PACKED_PRE struct PACKED_POST
4628{
4629 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004630 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004631 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304632 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004633 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4634 tANI_U32 timestamp;
4635} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4636
4637typedef PACKED_PRE struct PACKED_POST
4638{
4639 tANI_U32 scanId; /* Scan List ID. */
4640 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4641 tANI_U32 numNetworksInScanList;
4642 /* Variable data ptr: Number of AP in Scan List */
4643 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4644 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4645 tANI_U8 scanList[1];
4646} tHalBatchScanList, *tpHalBatchScanList;
4647
4648typedef PACKED_PRE struct PACKED_POST
4649{
4650 tANI_U32 timestamp;
4651 tANI_U32 numScanLists;
4652 boolean isLastResult;
4653 /* Variable Data ptr: Number of Scan Lists*/
4654 /* following isLastResult is data of type tHalBatchScanList
4655 * of sizeof(tHalBatchScanList) * numScanLists*/
4656 tANI_U8 scanResults[1];
4657} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4658
4659typedef PACKED_PRE struct PACKED_POST
4660{
4661 tHalMsgHeader header;
4662 tHalBatchScanResultIndParam resultIndMsgParam;
4663} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4664
4665#endif
4666
Jeff Johnson295189b2012-06-20 16:38:30 -07004667/*---------------------------------------------------------------------------
4668 * WLAN_HAL_KEEP_ALIVE_REQ
4669 *--------------------------------------------------------------------------*/
4670/* Packet Types. */
4671#define HAL_KEEP_ALIVE_NULL_PKT 1
4672#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4673
4674/* Enable or disable keep alive */
4675#define HAL_KEEP_ALIVE_DISABLE 0
4676#define HAL_KEEP_ALIVE_ENABLE 1
4677
4678/* Keep Alive request. */
4679typedef PACKED_PRE struct PACKED_POST
4680{
4681 tANI_U8 packetType;
4682 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304683 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004684 tHalIpv4Addr destIpv4Addr;
4685 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004686 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004687} tHalKeepAliveReq, *tpHalKeepAliveReq;
4688
4689typedef PACKED_PRE struct PACKED_POST
4690{
4691 tHalMsgHeader header;
4692 tHalKeepAliveReq KeepAliveParams;
4693} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4694
4695/*---------------------------------------------------------------------------
4696 * WLAN_HAL_SET_RSSI_THRESH_REQ
4697 *--------------------------------------------------------------------------*/
4698typedef PACKED_PRE struct PACKED_POST
4699{
4700 tANI_S8 ucRssiThreshold1 : 8;
4701 tANI_S8 ucRssiThreshold2 : 8;
4702 tANI_S8 ucRssiThreshold3 : 8;
4703 tANI_U8 bRssiThres1PosNotify : 1;
4704 tANI_U8 bRssiThres1NegNotify : 1;
4705 tANI_U8 bRssiThres2PosNotify : 1;
4706 tANI_U8 bRssiThres2NegNotify : 1;
4707 tANI_U8 bRssiThres3PosNotify : 1;
4708 tANI_U8 bRssiThres3NegNotify : 1;
4709 tANI_U8 bReserved10 : 2;
4710} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304711
Jeff Johnson295189b2012-06-20 16:38:30 -07004712typedef PACKED_PRE struct PACKED_POST
4713{
4714 tHalMsgHeader header;
4715 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004716} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004717
4718/*---------------------------------------------------------------------------
4719 * WLAN_HAL_ENTER_UAPSD_REQ
4720 *--------------------------------------------------------------------------*/
4721typedef PACKED_PRE struct PACKED_POST
4722{
4723 tANI_U8 bkDeliveryEnabled:1;
4724 tANI_U8 beDeliveryEnabled:1;
4725 tANI_U8 viDeliveryEnabled:1;
4726 tANI_U8 voDeliveryEnabled:1;
4727 tANI_U8 bkTriggerEnabled:1;
4728 tANI_U8 beTriggerEnabled:1;
4729 tANI_U8 viTriggerEnabled:1;
4730 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004731 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004732} tUapsdReqParams, *tpUapsdReqParams;
4733
4734typedef PACKED_PRE struct PACKED_POST
4735{
4736 tHalMsgHeader header;
4737 tUapsdReqParams enterUapsdParams;
4738} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4739
4740/*---------------------------------------------------------------------------
4741 * WLAN_HAL_EXIT_UAPSD_REQ
4742 *--------------------------------------------------------------------------*/
4743typedef PACKED_PRE struct PACKED_POST
4744{
4745 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004746 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004747} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4748
Kumar Anandea78e792013-10-10 23:47:01 -07004749#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4750#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004751/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004752 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4753 *--------------------------------------------------------------------------*/
4754typedef PACKED_PRE struct PACKED_POST
4755{
4756 tANI_U32 selfStaIdx:8;
4757 tANI_U32 ucPtrnId:8; // Pattern ID
4758 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4759 tANI_U32 uPtrnIntervalMs; // In msec
4760 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4761} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4762
4763typedef PACKED_PRE struct PACKED_POST
4764{
4765 tHalMsgHeader header;
4766 tHalAddPeriodicTxPtrn ptrnParams;
4767} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4768
4769/*---------------------------------------------------------------------------
4770 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4771 *--------------------------------------------------------------------------*/
4772typedef PACKED_PRE struct PACKED_POST
4773{
4774 tANI_U32 selfStaIdx:8;
4775 tANI_U32 rsvd:24;
4776 /* Bitmap of pattern IDs that needs to be deleted */
4777 tANI_U32 uPatternIdBitmap;
4778} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4779
4780typedef PACKED_PRE struct PACKED_POST
4781{
4782 tHalMsgHeader header;
4783 tHalDelPeriodicTxPtrn ptrnParams;
4784} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4785
4786/*---------------------------------------------------------------------------
4787 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4788 *--------------------------------------------------------------------------*/
4789typedef PACKED_PRE struct PACKED_POST
4790{
4791 /* Type of Failure indication */
4792 tANI_U32 bssIdx:8;
4793 tANI_U32 selfStaIdx:8;
4794 tANI_U32 rsvd:16;
4795 tANI_U32 status;
4796 tANI_U32 patternIdBitmap;
4797} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4798
4799typedef PACKED_PRE struct PACKED_POST
4800{
4801 tHalMsgHeader header;
4802 tHalPeriodicTxPtrnFwInd fwIndParams;
4803} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4804
4805/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004806 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4807 *--------------------------------------------------------------------------*/
4808#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4809#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4810
4811typedef PACKED_PRE struct PACKED_POST
4812{
4813 tANI_U8 ucPatternId; // Pattern ID
4814 // Pattern byte offset from beginning of the 802.11 packet to start of the
4815 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304816 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004817 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4818 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4819 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4820 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4821 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4822 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004823 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004824} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4825
4826typedef PACKED_PRE struct PACKED_POST
4827{
4828 tHalMsgHeader header;
4829 tHalWowlAddBcastPtrn ptrnParams;
4830} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304831
Jeff Johnsone7245742012-09-05 17:12:55 -07004832
4833
Jeff Johnson295189b2012-06-20 16:38:30 -07004834/*---------------------------------------------------------------------------
4835 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4836 *--------------------------------------------------------------------------*/
4837typedef PACKED_PRE struct PACKED_POST
4838{
4839 /* Pattern ID of the wakeup pattern to be deleted */
4840 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004841 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004842} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4843
4844typedef PACKED_PRE struct PACKED_POST
4845{
4846 tHalMsgHeader header;
4847 tHalWowlDelBcastPtrn ptrnParams;
4848} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4849
4850/*---------------------------------------------------------------------------
4851 * WLAN_HAL_ENTER_WOWL_REQ
4852 *--------------------------------------------------------------------------*/
4853typedef PACKED_PRE struct PACKED_POST
4854{
4855 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304856 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004857
4858 /* Magic pattern */
4859 tSirMacAddr magicPtrn;
4860
Dino Mycle8afbac12014-07-04 22:06:17 +05304861 /* Enables/disables packet pattern filtering in firmware.
4862 Enabling this flag enables broadcast pattern matching
4863 in Firmware. If unicast pattern matching is also desired,
4864 ucUcastPatternFilteringEnable flag must be set tot true
4865 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004866 */
4867 tANI_U8 ucPatternFilteringEnable;
4868
Dino Mycle8afbac12014-07-04 22:06:17 +05304869 /* Enables/disables unicast packet pattern filtering.
4870 This flag specifies whether we want to do pattern match
4871 on unicast packets as well and not just broadcast packets.
4872 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004873 (main controlling flag) is set to false
4874 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304875 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004876
Dino Mycle8afbac12014-07-04 22:06:17 +05304877 /* This configuration is valid only when magicPktEnable=1.
4878 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004879 * Channel Switch Action Frame.
4880 */
4881 tANI_U8 ucWowChnlSwitchRcv;
4882
Dino Mycle8afbac12014-07-04 22:06:17 +05304883 /* This configuration is valid only when magicPktEnable=1.
4884 * It requests hardware to wake up when it receives the
4885 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004886 */
4887 tANI_U8 ucWowDeauthRcv;
4888
Dino Mycle8afbac12014-07-04 22:06:17 +05304889 /* This configuration is valid only when magicPktEnable=1.
4890 * It requests hardware to wake up when it receives the
4891 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004892 */
4893 tANI_U8 ucWowDisassocRcv;
4894
Dino Mycle8afbac12014-07-04 22:06:17 +05304895 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004896 * It requests hardware to wake up when it has missed
4897 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304898 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004899 */
4900 tANI_U8 ucWowMaxMissedBeacons;
4901
Dino Mycle8afbac12014-07-04 22:06:17 +05304902 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004903 * This is a timeout value in units of microsec. It requests
4904 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304905 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004906 */
4907 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304908
Jeff Johnson295189b2012-06-20 16:38:30 -07004909 /* This configuration directs the WoW packet filtering to look for EAP-ID
4910 * requests embedded in EAPOL frames and use this as a wake source.
4911 */
4912 tANI_U8 ucWoWEAPIDRequestEnable;
4913
4914 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4915 * requests and use this as a wake source.
4916 */
4917 tANI_U8 ucWoWEAPOL4WayEnable;
4918
4919 /* This configuration allows a host wakeup on an network scan offload match.
4920 */
4921 tANI_U8 ucWowNetScanOffloadMatch;
4922
4923 /* This configuration allows a host wakeup on any GTK rekeying error.
4924 */
4925 tANI_U8 ucWowGTKRekeyError;
4926
4927 /* This configuration allows a host wakeup on BSS connection loss.
4928 */
4929 tANI_U8 ucWoWBSSConnLoss;
4930
Jeff Johnsone7245742012-09-05 17:12:55 -07004931 tANI_U8 bssIdx;
4932
Jeff Johnson295189b2012-06-20 16:38:30 -07004933} tHalWowlEnterParams, *tpHalWowlEnterParams;
4934
4935typedef PACKED_PRE struct PACKED_POST
4936{
4937 tHalMsgHeader header;
4938 tHalWowlEnterParams enterWowlParams;
4939} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4940
4941/*---------------------------------------------------------------------------
4942 * WLAN_HAL_EXIT_WOWL_REQ
4943 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004944
Jeff Johnson295189b2012-06-20 16:38:30 -07004945typedef PACKED_PRE struct PACKED_POST
4946{
Jeff Johnsone7245742012-09-05 17:12:55 -07004947 tANI_U8 bssIdx;
4948
4949} tHalWowlExitParams, *tpHalWowlExitParams;
4950
4951typedef PACKED_PRE struct PACKED_POST
4952{
4953 tHalMsgHeader header;
4954 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004955} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4956
4957/*---------------------------------------------------------------------------
4958 * WLAN_HAL_GET_RSSI_REQ
4959 *--------------------------------------------------------------------------*/
4960typedef PACKED_PRE struct PACKED_POST
4961{
4962 tHalMsgHeader header;
4963} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4964
Anand Kumar012623a2013-01-11 17:00:00 -08004965typedef PACKED_PRE struct PACKED_POST
4966{
4967 /* Valid STA Idx for per STA stats request */
4968 tANI_U32 staId;
4969
4970}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4971
4972
4973/*---------------------------------------------------------------------------
4974 * WLAN_HAL_GET_ROAM_RSSI_REQ
4975 *--------------------------------------------------------------------------*/
4976typedef PACKED_PRE struct PACKED_POST
4977{
4978 tHalMsgHeader header;
4979 tHalRoamRssiReqParams roamRssiReqParams;
4980} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4981
4982
Jeff Johnson295189b2012-06-20 16:38:30 -07004983/*---------------------------------------------------------------------------
4984 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4985 *--------------------------------------------------------------------------*/
4986typedef PACKED_PRE struct PACKED_POST {
4987 tANI_U8 staidx; // STA index
4988 tANI_U8 ac; // Access Category
4989 tANI_U8 up; // User Priority
4990 tANI_U32 srvInterval; // Service Interval
4991 tANI_U32 susInterval; // Suspend Interval
4992 tANI_U32 delayInterval; // Delay Interval
4993} tUapsdInfo, tpUapsdInfo;
4994
4995typedef PACKED_PRE struct PACKED_POST
4996{
4997 tHalMsgHeader header;
4998 tUapsdInfo enableUapsdAcParams;
4999} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
5000
5001/*---------------------------------------------------------------------------
5002 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
5003 *--------------------------------------------------------------------------*/
5004typedef PACKED_PRE struct PACKED_POST {
5005 tANI_U8 setMcstBcstFilterSetting;
5006 tANI_U8 setMcstBcstFilter;
5007} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
5008
5009typedef PACKED_PRE struct PACKED_POST
5010{
5011 tHalMsgHeader header;
5012 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
5013} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
5014
5015/*---------------------------------------------------------------------------
5016 * WLAN_HAL_ENTER_IMPS_RSP
5017 *--------------------------------------------------------------------------*/
5018typedef PACKED_PRE struct PACKED_POST
5019{
5020 /* success or failure */
5021 tANI_U32 status;
5022} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5023
5024typedef PACKED_PRE struct PACKED_POST
5025{
5026 tHalMsgHeader header;
5027 tHalEnterImpsRspParams enterImpsRspParams;
5028} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5029
5030/*---------------------------------------------------------------------------
5031 * WLAN_HAL_EXIT_IMPS_RSP
5032 *--------------------------------------------------------------------------*/
5033typedef PACKED_PRE struct PACKED_POST
5034{
5035 /* success or failure */
5036 tANI_U32 status;
5037} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5038
5039typedef PACKED_PRE struct PACKED_POST
5040{
5041 tHalMsgHeader header;
5042 tHalExitImpsRspParams exitImpsRspParams;
5043} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5044
5045/*---------------------------------------------------------------------------
5046 * WLAN_HAL_ENTER_BMPS_RSP
5047 *--------------------------------------------------------------------------*/
5048typedef PACKED_PRE struct PACKED_POST
5049{
5050 /* success or failure */
5051 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005052 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005053} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5054
5055typedef PACKED_PRE struct PACKED_POST
5056{
5057 tHalMsgHeader header;
5058 tHalEnterBmpsRspParams enterBmpsRspParams;
5059} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5060
5061/*---------------------------------------------------------------------------
5062 * WLAN_HAL_EXIT_BMPS_RSP
5063 *--------------------------------------------------------------------------*/
5064typedef PACKED_PRE struct PACKED_POST
5065{
5066 /* success or failure */
5067 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005068 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005069} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5070
5071typedef PACKED_PRE struct PACKED_POST
5072{
5073 tHalMsgHeader header;
5074 tHalExitBmpsRspParams exitBmpsRspParams;
5075} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5076
5077/*---------------------------------------------------------------------------
5078 * WLAN_HAL_ENTER_UAPSD_RSP
5079 *--------------------------------------------------------------------------*/
5080typedef PACKED_PRE struct PACKED_POST
5081{
5082 /* success or failure */
5083 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005084 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005085}tUapsdRspParams, *tpUapsdRspParams;
5086
5087typedef PACKED_PRE struct PACKED_POST
5088{
5089 tHalMsgHeader header;
5090 tUapsdRspParams enterUapsdRspParams;
5091} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5092
5093/*---------------------------------------------------------------------------
5094 * WLAN_HAL_EXIT_UAPSD_RSP
5095 *--------------------------------------------------------------------------*/
5096typedef PACKED_PRE struct PACKED_POST
5097{
5098 /* success or failure */
5099 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005100 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005101} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5102
5103typedef PACKED_PRE struct PACKED_POST
5104{
5105 tHalMsgHeader header;
5106 tHalExitUapsdRspParams exitUapsdRspParams;
5107} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5108
5109/*---------------------------------------------------------------------------
5110 * WLAN_HAL_RSSI_NOTIFICATION_IND
5111 *--------------------------------------------------------------------------*/
5112typedef PACKED_PRE struct PACKED_POST
5113{
5114 tANI_U32 bRssiThres1PosCross : 1;
5115 tANI_U32 bRssiThres1NegCross : 1;
5116 tANI_U32 bRssiThres2PosCross : 1;
5117 tANI_U32 bRssiThres2NegCross : 1;
5118 tANI_U32 bRssiThres3PosCross : 1;
5119 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005120 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005121 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005122 tANI_U32 isBTCoexCompromise : 1;
5123 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005124 tANI_S8 refRssiThreshold1;
5125 tANI_S8 refRssiThreshold2;
5126 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005127} tHalRSSINotification, *tpHalRSSINotification;
5128
5129typedef PACKED_PRE struct PACKED_POST
5130{
5131 tHalMsgHeader header;
5132 tHalRSSINotification rssiNotificationParams;
5133} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5134
5135/*---------------------------------------------------------------------------
5136 * WLAN_HAL_GET_RSSI_RSP
5137 *--------------------------------------------------------------------------*/
5138typedef PACKED_PRE struct PACKED_POST
5139{
5140 /* success or failure */
5141 tANI_U32 status;
5142 tANI_S8 rssi;
5143} tHalGetRssiParams, *tpHalGetRspParams;
5144
5145typedef PACKED_PRE struct PACKED_POST
5146{
5147 tHalMsgHeader header;
5148 tHalGetRssiParams rssiRspParams;
5149} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5150
5151/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005152 * WLAN_HAL_GET_ROAM_RSSI_RSP
5153 *--------------------------------------------------------------------------*/
5154typedef PACKED_PRE struct PACKED_POST
5155{
5156 /* success or failure */
5157 tANI_U32 status;
5158
5159 tANI_U8 staId;
5160 tANI_S8 rssi;
5161} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5162
5163typedef PACKED_PRE struct PACKED_POST
5164{
5165 tHalMsgHeader header;
5166 tHalGetRoamRssiParams roamRssiRspParams;
5167} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5168
5169/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005170 * WLAN_HAL_ENTER_WOWL_RSP
5171 *--------------------------------------------------------------------------*/
5172typedef PACKED_PRE struct PACKED_POST
5173{
5174 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005175 tANI_U32 status;
5176 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005177} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5178
5179typedef PACKED_PRE struct PACKED_POST
5180{
5181 tHalMsgHeader header;
5182 tHalEnterWowlRspParams enterWowlRspParams;
5183} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5184
5185/*---------------------------------------------------------------------------
5186 * WLAN_HAL_EXIT_WOWL_RSP
5187 *--------------------------------------------------------------------------*/
5188typedef PACKED_PRE struct PACKED_POST
5189{
5190 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005191 tANI_U32 status;
5192 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005193} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5194
5195typedef PACKED_PRE struct PACKED_POST
5196{
5197 tHalMsgHeader header;
5198 tHalExitWowlRspParams exitWowlRspParams;
5199} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5200
5201/*---------------------------------------------------------------------------
5202 * WLAN_HAL_ADD_BCN_FILTER_RSP
5203 *--------------------------------------------------------------------------*/
5204typedef PACKED_PRE struct PACKED_POST
5205{
5206 /* success or failure */
5207 tANI_U32 status;
5208} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5209
5210typedef PACKED_PRE struct PACKED_POST
5211{
5212 tHalMsgHeader header;
5213 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5214} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5215
5216/*---------------------------------------------------------------------------
5217 * WLAN_HAL_REM_BCN_FILTER_RSP
5218 *--------------------------------------------------------------------------*/
5219typedef PACKED_PRE struct PACKED_POST
5220{
5221 /* success or failure */
5222 tANI_U32 status;
5223} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5224
5225typedef PACKED_PRE struct PACKED_POST
5226{
5227 tHalMsgHeader header;
5228 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5229} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5230
5231/*---------------------------------------------------------------------------
5232 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5233 *--------------------------------------------------------------------------*/
5234typedef PACKED_PRE struct PACKED_POST
5235{
5236 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005237 tANI_U32 status;
5238 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005239} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5240
5241typedef PACKED_PRE struct PACKED_POST
5242{
5243 tHalMsgHeader header;
5244 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5245} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5246
5247/*---------------------------------------------------------------------------
5248 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5249 *--------------------------------------------------------------------------*/
5250typedef PACKED_PRE struct PACKED_POST
5251{
5252 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005253 tANI_U32 status;
5254 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005255} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5256
5257typedef PACKED_PRE struct PACKED_POST
5258{
5259 tHalMsgHeader header;
5260 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5261} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5262
5263/*---------------------------------------------------------------------------
5264 * WLAN_HAL_HOST_OFFLOAD_RSP
5265 *--------------------------------------------------------------------------*/
5266typedef PACKED_PRE struct PACKED_POST
5267{
5268 /* success or failure */
5269 tANI_U32 status;
5270} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5271
5272typedef PACKED_PRE struct PACKED_POST
5273{
5274 tHalMsgHeader header;
5275 tHalHostOffloadRspParams hostOffloadRspParams;
5276} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5277
5278/*---------------------------------------------------------------------------
5279 * WLAN_HAL_KEEP_ALIVE_RSP
5280 *--------------------------------------------------------------------------*/
5281typedef PACKED_PRE struct PACKED_POST
5282{
5283 /* success or failure */
5284 tANI_U32 status;
5285} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5286
5287typedef PACKED_PRE struct PACKED_POST
5288{
5289 tHalMsgHeader header;
5290 tHalKeepAliveRspParams keepAliveRspParams;
5291} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5292
5293/*---------------------------------------------------------------------------
5294 * WLAN_HAL_SET_RSSI_THRESH_RSP
5295 *--------------------------------------------------------------------------*/
5296typedef PACKED_PRE struct PACKED_POST
5297{
5298 /* success or failure */
5299 tANI_U32 status;
5300} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5301
5302typedef PACKED_PRE struct PACKED_POST
5303{
5304 tHalMsgHeader header;
5305 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5306} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5307
5308/*---------------------------------------------------------------------------
5309 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5310 *--------------------------------------------------------------------------*/
5311typedef PACKED_PRE struct PACKED_POST
5312{
5313 /* success or failure */
5314 tANI_U32 status;
5315} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5316
5317typedef PACKED_PRE struct PACKED_POST
5318{
5319 tHalMsgHeader header;
5320 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5321} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5322
5323/*---------------------------------------------------------------------------
5324 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5325 *--------------------------------------------------------------------------*/
5326typedef PACKED_PRE struct PACKED_POST
5327{
5328 /* success or failure */
5329 tANI_U32 status;
5330} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5331
5332typedef PACKED_PRE struct PACKED_POST
5333{
5334 tHalMsgHeader header;
5335 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5336} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5337
5338/*---------------------------------------------------------------------------
5339 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5340 *--------------------------------------------------------------------------*/
5341
5342typedef PACKED_PRE struct PACKED_POST
5343{
5344 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5345 //the request has power constraints, this should be applied only to that session
5346 tSirMacAddr selfStaMacAddr;
5347 //In request,
5348 //power == MaxTx power to be used.
5349 tPowerdBm power;
5350
5351}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5352
5353
5354typedef PACKED_PRE struct PACKED_POST
5355{
5356 tHalMsgHeader header;
5357 tSetMaxTxPwrParams setMaxTxPwrParams;
5358}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5359
5360/*---------------------------------------------------------------------------
5361*WLAN_HAL_SET_MAX_TX_POWER_RSP
5362*--------------------------------------------------------------------------*/
5363
5364typedef PACKED_PRE struct PACKED_POST
5365{
5366 //power == tx power used for management frames.
5367 tPowerdBm power;
5368
5369 /* success or failure */
5370 tANI_U32 status;
5371}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5372
5373typedef PACKED_PRE struct PACKED_POST
5374{
5375 tHalMsgHeader header;
5376 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5377}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5378
Kumar Anandea78e792013-10-10 23:47:01 -07005379
Jeff Johnson295189b2012-06-20 16:38:30 -07005380/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005381 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5382 *--------------------------------------------------------------------------*/
5383
5384/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5385typedef enum
5386{
5387 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5388 // For 2.4GHz or 5GHz bands
5389 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5390 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5391 // End of valid enums
5392 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5393}tHalSetMaxTxPwrBandInfo;
5394
5395typedef PACKED_PRE struct PACKED_POST
5396{
5397 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005398 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005399}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5400
Kumar Anandea78e792013-10-10 23:47:01 -07005401
Arif Hussain36fda162013-08-30 14:46:57 -07005402typedef PACKED_PRE struct PACKED_POST
5403{
5404 tHalMsgHeader header;
5405 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5406}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5407
5408/*---------------------------------------------------------------------------
5409*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5410*--------------------------------------------------------------------------*/
5411
5412typedef PACKED_PRE struct PACKED_POST
5413{
5414 //power == tx power used for management frames.
5415 tPowerdBm power;
5416
5417 /* success or failure */
5418 tANI_U32 status;
5419}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5420
5421typedef PACKED_PRE struct PACKED_POST
5422{
5423 tHalMsgHeader header;
5424 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5425}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5426
5427/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005428 *WLAN_HAL_SET_TX_POWER_REQ
5429 *--------------------------------------------------------------------------*/
5430
5431typedef PACKED_PRE struct PACKED_POST
5432{
5433 /* TX Power in milli watts */
5434 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005435 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005436}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5437
5438
5439typedef PACKED_PRE struct PACKED_POST
5440{
5441 tHalMsgHeader header;
5442 tSetTxPwrReqParams setTxPwrReqParams;
5443}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5444
5445/*---------------------------------------------------------------------------
5446*WLAN_HAL_SET_TX_POWER_RSP
5447*--------------------------------------------------------------------------*/
5448
5449typedef PACKED_PRE struct PACKED_POST
5450{
5451 /* success or failure */
5452 tANI_U32 status;
5453}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5454
5455typedef PACKED_PRE struct PACKED_POST
5456{
5457 tHalMsgHeader header;
5458 tSetTxPwrRspParams setTxPwrRspParams;
5459}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5460
5461/*---------------------------------------------------------------------------
5462 *WLAN_HAL_GET_TX_POWER_REQ
5463 *--------------------------------------------------------------------------*/
5464
5465typedef PACKED_PRE struct PACKED_POST
5466{
5467 tANI_U8 staId;
5468}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5469
5470typedef PACKED_PRE struct PACKED_POST
5471{
5472 tHalMsgHeader header;
5473 tGetTxPwrReqParams getTxPwrReqParams;
5474}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5475
5476/*---------------------------------------------------------------------------
5477*WLAN_HAL_GET_TX_POWER_RSP
5478*--------------------------------------------------------------------------*/
5479
5480typedef PACKED_PRE struct PACKED_POST
5481{
5482 /* success or failure */
5483 tANI_U32 status;
5484
5485 /* TX Power in milli watts */
5486 tANI_U32 txPower;
5487}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5488
5489typedef PACKED_PRE struct PACKED_POST
5490{
5491 tHalMsgHeader header;
5492 tGetTxPwrRspParams getTxPwrRspParams;
5493}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5494
5495#ifdef WLAN_FEATURE_P2P
5496/*---------------------------------------------------------------------------
5497 *WLAN_HAL_SET_P2P_GONOA_REQ
5498 *--------------------------------------------------------------------------*/
5499
5500typedef PACKED_PRE struct PACKED_POST
5501{
5502 tANI_U8 opp_ps;
5503 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305504 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005505 tANI_U32 duration;
5506 tANI_U32 interval;
5507 tANI_U32 single_noa_duration;
5508 tANI_U8 psSelection;
5509}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5510
5511
5512typedef PACKED_PRE struct PACKED_POST
5513{
5514 tHalMsgHeader header;
5515 tSetP2PGONOAParams setP2PGONOAParams;
5516}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5517
5518/*---------------------------------------------------------------------------
5519*WLAN_HAL_SET_P2P_GONOA_RSP
5520*--------------------------------------------------------------------------*/
5521
5522typedef PACKED_PRE struct PACKED_POST
5523{
5524 /* success or failure */
5525 tANI_U32 status;
5526}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5527
5528typedef PACKED_PRE struct PACKED_POST
5529{
5530 tHalMsgHeader header;
5531 tSetP2PGONOARspParams setP2PGONOARspParams;
5532}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5533#endif
5534
5535/*---------------------------------------------------------------------------
5536 *WLAN_HAL_ADD_SELF_STA_REQ
5537 *--------------------------------------------------------------------------*/
5538
5539typedef PACKED_PRE struct PACKED_POST
5540{
5541 tSirMacAddr selfMacAddr;
5542 tANI_U32 status;
5543}tAddStaSelfParams, *tpAddStaSelfParams;
5544
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005545typedef PACKED_PRE struct PACKED_POST
5546{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005547 tHalMsgHeader header;
5548 tAddStaSelfParams addStaSelfParams;
5549}tAddStaSelfReq, *tpAddStaSelfReq;
5550
5551/* This V1 structure carries additionally the IFACE PERSONA
5552 of the interface as compared to the legacy control
5553 message */
5554typedef PACKED_PRE struct PACKED_POST
5555{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005556 tSirMacAddr selfMacAddr;
5557 tANI_U32 status;
5558 tHalIfacePersona iface_persona;
5559}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005560
5561typedef PACKED_PRE struct PACKED_POST
5562{
5563 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005564 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005565}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005566
5567/*---------------------------------------------------------------------------
5568*WLAN_HAL_ADD_SELF_STA_RSP
5569*--------------------------------------------------------------------------*/
5570
5571typedef PACKED_PRE struct PACKED_POST
5572{
5573 /* success or failure */
5574 tANI_U32 status;
5575
5576 /*Self STA Index */
5577 tANI_U8 selfStaIdx;
5578
5579 /* DPU Index (IGTK, PTK, GTK all same) */
5580 tANI_U8 dpuIdx;
5581
5582 /* DPU Signature */
5583 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305584
Jeff Johnson295189b2012-06-20 16:38:30 -07005585}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5586
5587typedef PACKED_PRE struct PACKED_POST
5588{
5589 tHalMsgHeader header;
5590 tAddStaSelfRspParams addStaSelfRspParams;
5591}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5592
5593
5594/*---------------------------------------------------------------------------
5595 WLAN_HAL_DEL_STA_SELF_REQ
5596---------------------------------------------------------------------------*/
5597
5598typedef PACKED_PRE struct PACKED_POST
5599{
5600 tSirMacAddr selfMacAddr;
5601
5602}tDelStaSelfParams, *tpDelStaSelfParams;
5603
5604typedef PACKED_PRE struct PACKED_POST
5605{
5606 tHalMsgHeader header;
5607 tDelStaSelfParams delStaSelfParams;
5608} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5609
5610
5611/*---------------------------------------------------------------------------
5612 WLAN_HAL_DEL_STA_SELF_RSP
5613---------------------------------------------------------------------------*/
5614
5615typedef PACKED_PRE struct PACKED_POST
5616{
5617 /*success or failure */
5618 tANI_U32 status;
5619
5620 tSirMacAddr selfMacAddr;
5621}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5622
5623typedef PACKED_PRE struct PACKED_POST
5624{
5625 tHalMsgHeader header;
5626 tDelStaSelfRspParams delStaSelfRspParams;
5627} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5628
5629
5630#ifdef WLAN_FEATURE_VOWIFI_11R
5631
5632/*---------------------------------------------------------------------------
5633 *WLAN_HAL_AGGR_ADD_TS_REQ
5634 *--------------------------------------------------------------------------*/
5635
5636typedef PACKED_PRE struct PACKED_POST
5637{
5638 /* Station Index */
5639 tANI_U16 staIdx;
5640
5641 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5642 /* This will carry the bitmap with the bit positions representing different AC.s*/
5643 tANI_U16 tspecIdx;
5644
5645 /* Tspec info per AC To program TPE with required parameters */
5646 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5647
5648 /* U-APSD Flags: 1b per AC. Encoded as follows:
5649 b7 b6 b5 b4 b3 b2 b1 b0 =
5650 X X X X BE BK VI VO */
5651 tANI_U8 uAPSD;
5652
5653 /* These parameters are for all the access categories */
5654 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5655 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5656 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5657
5658}tAggrAddTsParams, *tpAggrAddTsParams;
5659
5660
5661typedef PACKED_PRE struct PACKED_POST
5662{
5663 tHalMsgHeader header;
5664 tAggrAddTsParams aggrAddTsParam;
5665}tAggrAddTsReq, *tpAggrAddTsReq;
5666
5667/*---------------------------------------------------------------------------
5668*WLAN_HAL_AGGR_ADD_TS_RSP
5669*--------------------------------------------------------------------------*/
5670
5671typedef PACKED_PRE struct PACKED_POST
5672{
5673 /* success or failure */
5674 tANI_U32 status0;
5675 /* FIXME PRIMA for future use for 11R */
5676 tANI_U32 status1;
5677}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5678
5679typedef PACKED_PRE struct PACKED_POST
5680{
5681 tHalMsgHeader header;
5682 tAggrAddTsRspParams aggrAddTsRspParam;
5683}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5684
5685#endif
5686
5687/*---------------------------------------------------------------------------
5688 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5689 *--------------------------------------------------------------------------*/
5690typedef PACKED_PRE struct PACKED_POST
5691{
5692 tANI_U8 isAppsCpuAwake;
5693} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5694
5695typedef PACKED_PRE struct PACKED_POST
5696{
5697 tHalMsgHeader header;
5698 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5699} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5700
5701/*---------------------------------------------------------------------------
5702 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5703 *--------------------------------------------------------------------------*/
5704typedef PACKED_PRE struct PACKED_POST
5705{
5706 /* success or failure */
5707 tANI_U32 status;
5708} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5709
5710typedef PACKED_PRE struct PACKED_POST
5711{
5712 tHalMsgHeader header;
5713 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5714} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5715/*---------------------------------------------------------------------------
5716 * WLAN_HAL_DUMP_COMMAND_REQ
5717 *--------------------------------------------------------------------------*/
5718
5719typedef PACKED_PRE struct PACKED_POST
5720{
5721 tANI_U32 argument1;
5722 tANI_U32 argument2;
5723 tANI_U32 argument3;
5724 tANI_U32 argument4;
5725 tANI_U32 argument5;
5726
5727}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5728
5729typedef PACKED_PRE struct PACKED_POST
5730{
5731 tHalMsgHeader header;
5732 tHalDumpCmdReqParams dumpCmdReqParams;
5733} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5734
5735/*---------------------------------------------------------------------------
5736 * WLAN_HAL_DUMP_COMMAND_RSP
5737 *--------------------------------------------------------------------------*/
5738
5739typedef PACKED_PRE struct PACKED_POST
5740{
5741 /* success or failure */
5742 tANI_U32 status;
5743 /*Length of the responce message*/
5744 tANI_U32 rspLength;
5745 /*FiXME: Currently considering the the responce will be less than 100bytes */
5746 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305747
Jeff Johnson295189b2012-06-20 16:38:30 -07005748} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5749
5750typedef PACKED_PRE struct PACKED_POST
5751{
5752 tHalMsgHeader header;
5753 tHalDumpCmdRspParams dumpCmdRspParams;
5754} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5755
5756/*---------------------------------------------------------------------------
5757 *WLAN_HAL_COEX_IND
5758 *-------------------------------------------------------------------------*/
5759#define WLAN_COEX_IND_DATA_SIZE (4)
5760#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5761#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005762#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5763#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005764#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5765#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305766#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5767#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305768#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005769
5770typedef PACKED_PRE struct PACKED_POST
5771{
5772 /*Coex Indication Type*/
5773 tANI_U32 coexIndType;
5774
5775 /*Coex Indication Data*/
5776 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5777}tCoexIndParams,*tpCoexIndParams;
5778
5779typedef PACKED_PRE struct PACKED_POST
5780{
5781 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305782 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005783}tCoexIndMsg, *tpCoexIndMsg;
5784
5785/*---------------------------------------------------------------------------
5786 *WLAN_HAL_OTA_TX_COMPL_IND
5787 *-------------------------------------------------------------------------*/
5788
5789typedef PACKED_PRE struct PACKED_POST
5790{
5791 /*Tx Complete Indication Success or Failure*/
5792 tANI_U32 status;
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05305793 /* Dialog token */
5794 tANI_U32 dialogToken;
Jeff Johnson295189b2012-06-20 16:38:30 -07005795}tTxComplParams,*tpTxComplParams;
5796
5797typedef PACKED_PRE struct PACKED_POST
5798{
5799 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305800 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005801}tTxComplIndMsg, *tpTxComplIndMsg;
5802
5803/*---------------------------------------------------------------------------
5804 * WLAN_HAL_HOST_SUSPEND_IND
5805 *-------------------------------------------------------------------------*/
5806
5807typedef PACKED_PRE struct PACKED_POST
5808{
5809 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305810 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005811}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5812
5813typedef PACKED_PRE struct PACKED_POST
5814{
5815 tHalMsgHeader header;
5816 tHalWlanHostSuspendIndParam suspendIndParams;
5817}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5818
5819/*---------------------------------------------------------------------------
5820 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5821 *-------------------------------------------------------------------------*/
5822
5823typedef PACKED_PRE struct PACKED_POST
5824{
5825 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305826 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005827}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5828
5829typedef PACKED_PRE struct PACKED_POST
5830{
5831 tHalMsgHeader header;
5832 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5833}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5834
5835#ifdef WLAN_FEATURE_P2P
5836/*---------------------------------------------------------------------------
5837 *WLAN_HAL_NOA_ATTR_IND
5838 *-------------------------------------------------------------------------*/
5839
5840typedef PACKED_PRE struct PACKED_POST
5841{
5842 tANI_U8 index ;
5843 tANI_U8 oppPsFlag ;
5844 tANI_U16 ctWin ;
5845
5846 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005847 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005848 tANI_U32 uNoa1Duration;
5849 tANI_U32 uNoa1Interval;
5850 tANI_U32 uNoa1StartTime;
5851
5852 tANI_U16 uNoa2IntervalCnt;
5853 tANI_U16 rsvd2;
5854 tANI_U32 uNoa2Duration;
5855 tANI_U32 uNoa2Interval;
5856 tANI_U32 uNoa2StartTime;
5857
5858 tANI_U32 status;
5859}tNoaAttrIndParams, *tpNoaAttrIndParams;
5860
5861typedef PACKED_PRE struct PACKED_POST
5862{
5863 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305864 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005865}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005866
5867/*---------------------------------------------------------------------------
5868 *WLAN_HAL_NOA_START_IND
5869 *-------------------------------------------------------------------------*/
5870
5871typedef PACKED_PRE struct PACKED_POST
5872{
5873 tANI_U32 status;
5874 tANI_U32 bssIdx;
5875}tNoaStartIndParams, *tpNoaStartIndParams;
5876
5877typedef PACKED_PRE struct PACKED_POST
5878{
5879 tHalMsgHeader header;
5880 tNoaStartIndParams noaStartIndParams;
5881}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005882#endif
5883
5884/*---------------------------------------------------------------------------
5885 * WLAN_HAL_HOST_RESUME_REQ
5886 *-------------------------------------------------------------------------*/
5887
5888typedef PACKED_PRE struct PACKED_POST
5889{
5890 tANI_U8 configuredMcstBcstFilterSetting;
5891}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5892
5893typedef PACKED_PRE struct PACKED_POST
5894{
5895 tHalMsgHeader header;
5896 tHalWlanHostResumeReqParam resumeReqParams;
5897}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5898
5899/*---------------------------------------------------------------------------
5900 * WLAN_HAL_HOST_RESUME_RSP
5901 *--------------------------------------------------------------------------*/
5902typedef PACKED_PRE struct PACKED_POST
5903{
5904 /* success or failure */
5905 tANI_U32 status;
5906} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5907
5908typedef PACKED_PRE struct PACKED_POST
5909{
5910 tHalMsgHeader header;
5911 tHalHostResumeRspParams hostResumeRspParams;
5912} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5913
Anand Kumar012623a2013-01-11 17:00:00 -08005914typedef PACKED_PRE struct PACKED_POST
5915{
5916 tANI_U16 staIdx;
5917 // Peer MAC Address, whose BA session has timed out
5918 tSirMacAddr peerMacAddr;
5919 // TID for which a BA session timeout is being triggered
5920 tANI_U8 baTID;
5921 // DELBA direction
5922 // 1 - Originator
5923 // 0 - Recipient
5924 tANI_U8 baDirection;
5925 tANI_U32 reasonCode;
5926 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5927} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5928
5929typedef PACKED_PRE struct PACKED_POST
5930{
5931 tHalMsgHeader header;
5932 tHalWlanDelBaIndMsg hostdelBaParam;
5933} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5934
Jeff Johnson295189b2012-06-20 16:38:30 -07005935/*---------------------------------------------------------------------------
5936 *PNO Messages
5937 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005938/* Max number of channels that a network can be found on*/
5939/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5940 * be changed at same time
5941 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005942#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005943
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305944/*Max number of channels that a network can be found on*/
5945#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5946
Jeff Johnson295189b2012-06-20 16:38:30 -07005947/*Maximum numbers of networks supported by PNO*/
5948#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5949
5950/*The number of scan time intervals that can be programmed into PNO*/
5951#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5952
5953/*Maximum size of the probe template*/
5954#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5955
Dino Mycle8afbac12014-07-04 22:06:17 +05305956/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005957 Immediate - scanning will start immediately and PNO procedure will
5958 be repeated based on timer
5959 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005960 Resume - scanning will start on system resume
5961 Delay - start the scan timer to trigger PNO scan
5962 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005963typedef enum
5964{
5965 ePNO_MODE_IMMEDIATE,
5966 ePNO_MODE_ON_SUSPEND,
5967 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305968 ePNO_MODE_DELAY,
5969 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005970 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5971} ePNOMode;
5972
5973/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305974typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005975{
Dino Mycle8afbac12014-07-04 22:06:17 +05305976 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005977 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05305978
Jeff Johnson295189b2012-06-20 16:38:30 -07005979 // Upper layer authentication types
5980 eAUTH_TYPE_WPA = 2,
5981 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05305982
Jeff Johnson295189b2012-06-20 16:38:30 -07005983 eAUTH_TYPE_RSN = 4,
5984 eAUTH_TYPE_RSN_PSK = 5,
5985 eAUTH_TYPE_FT_RSN = 6,
5986 eAUTH_TYPE_FT_RSN_PSK = 7,
5987 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5988 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005989 eAUTH_TYPE_CCKM_WPA = 10,
5990 eAUTH_TYPE_CCKM_RSN = 11,
Dino Mycle8afbac12014-07-04 22:06:17 +05305991
Jeff Johnson295189b2012-06-20 16:38:30 -07005992 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5993
5994}tAuthType;
5995
5996/* Encryption type */
5997typedef enum eEdType
5998{
5999 eED_ANY = 0,
6000 eED_NONE = 1,
6001 eED_WEP = 2,
6002 eED_TKIP = 3,
6003 eED_CCMP = 4,
6004 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05306005
Jeff Johnson295189b2012-06-20 16:38:30 -07006006 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6007} tEdType;
6008
6009/* SSID broadcast type */
6010typedef enum eSSIDBcastType
6011{
6012 eBCAST_UNKNOWN = 0,
6013 eBCAST_NORMAL = 1,
6014 eBCAST_HIDDEN = 2,
6015
6016 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
6017} tSSIDBcastType;
6018
Dino Mycle8afbac12014-07-04 22:06:17 +05306019/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006020 The network description for which PNO will have to look for
6021*/
6022typedef PACKED_PRE struct PACKED_POST
6023{
6024 /*SSID of the BSS*/
6025 tSirMacSSid ssId;
6026
6027 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306028 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006029
6030 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306031 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006032
Dino Mycle8afbac12014-07-04 22:06:17 +05306033 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006034 0 - if all channels */
6035 tANI_U8 ucChannelCount;
6036 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6037
6038 /*Indicates the RSSI threshold for the network to be considered*/
6039 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306040}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006041
6042typedef PACKED_PRE struct PACKED_POST
6043{
6044 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306045 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006046
Dino Mycle8afbac12014-07-04 22:06:17 +05306047 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006048 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306049 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006050
Dino Mycle8afbac12014-07-04 22:06:17 +05306051 /*e.g: 2 3
6052 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006053 - it will wait 2s between consecutive scans for 3 times
6054 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306055}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006056
Dino Mycle8afbac12014-07-04 22:06:17 +05306057/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006058 The network parameters to be sent to the PNO algorithm
6059*/
6060typedef PACKED_PRE struct PACKED_POST
6061{
6062 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306063 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006064
Dino Mycle8afbac12014-07-04 22:06:17 +05306065 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006066 two consecutive scan procedures
6067 If the desired is for a uniform timer that fires always at the exact same
6068 interval - one single value is to be set
6069 If there is a desire for a more complex - telescopic like timer multiple
6070 values can be set - once PNO reaches the end of the array it will
6071 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306072 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006073
6074}tScanTimersType;
6075
6076typedef PACKED_PRE struct PACKED_POST {
6077
6078 /*Enable PNO*/
6079 tANI_U32 enable;
6080
6081 /*Immediate, On Suspend, On Resume*/
6082 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306083
Jeff Johnson295189b2012-06-20 16:38:30 -07006084 /*Number of networks sent for PNO*/
6085 tANI_U32 ucNetworksCount;
6086
6087 /*The networks that PNO needs to look for*/
6088 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6089
6090 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306091 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006092
6093 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306094 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006095 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6096
6097 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306098 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006099 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6100
6101} tPrefNetwListParams, * tpPrefNetwListParams;
6102
6103/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306104 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006105*/
6106typedef PACKED_PRE struct PACKED_POST
6107{
6108 tHalMsgHeader header;
6109 tPrefNetwListParams prefNetwListParams;
6110} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6111
6112
Dino Mycle8afbac12014-07-04 22:06:17 +05306113/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006114 The network description for which PNO will have to look for
6115*/
6116typedef PACKED_PRE struct PACKED_POST
6117{
6118 /*SSID of the BSS*/
6119 tSirMacSSid ssId;
6120
6121 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306122 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006123
6124 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306125 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006126
6127 /*SSID broadcast type, normal, hidden or unknown*/
6128 tSSIDBcastType bcastNetworkType;
6129
Dino Mycle8afbac12014-07-04 22:06:17 +05306130 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006131 0 - if all channels */
6132 tANI_U8 ucChannelCount;
6133 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6134
6135 /*Indicates the RSSI threshold for the network to be considered*/
6136 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306137}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006138
6139typedef PACKED_PRE struct PACKED_POST {
6140
6141 /*Enable PNO*/
6142 tANI_U32 enable;
6143
6144 /*Immediate, On Suspend, On Resume*/
6145 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306146
Jeff Johnson295189b2012-06-20 16:38:30 -07006147 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306148 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006149
6150 /*The networks that PNO needs to look for*/
6151 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6152
6153 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306154 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006155
6156 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306157 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006158 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6159
6160 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306161 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006162 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6163
6164} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6165
6166/*
6167 Preferred network list request new
6168*/
6169typedef PACKED_PRE struct PACKED_POST
6170{
6171 tHalMsgHeader header;
6172 tPrefNetwListParamsNew prefNetwListParams;
6173} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6174
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006175#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6176typedef PACKED_PRE struct PACKED_POST
6177{
6178 tSirMacSSid ssId;
6179 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6180 tANI_U32 authentication;
6181 tEdType encryption;
6182 tEdType mcencryption;
6183 tANI_U8 ChannelCount;
6184 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6185}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006186
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006187typedef PACKED_PRE struct PACKED_POST
6188{
6189 tANI_U8 mdiePresent;
6190 tANI_U16 mobilityDomain;
6191}tMobilityDomainInfo;
6192
6193typedef PACKED_PRE struct PACKED_POST {
6194 eAniBoolean RoamScanOffloadEnabled;
6195 tANI_S8 LookupThreshold;
6196 tANI_U8 RoamRssiDiff;
6197 tANI_U8 ChannelCacheType;
6198 tANI_U8 Command;
6199 tANI_U8 StartScanReason;
6200 tANI_U16 NeighborScanTimerPeriod;
6201 tANI_U16 NeighborRoamScanRefreshPeriod;
6202 tANI_U16 NeighborScanChannelMinTime;
6203 tANI_U16 NeighborScanChannelMaxTime;
6204 tANI_U16 EmptyRefreshScanPeriod;
6205 tANI_U8 ValidChannelCount;
6206 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006207 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006208
6209 tANI_U16 us24GProbeSize;
6210 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6211 tANI_U16 us5GProbeSize;
6212 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6213 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006214 tANI_U8 nProbes;
6215 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006216 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006217 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006218 tANI_U8 RoamOffloadEnabled;
6219 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6220 tANI_U8 Prefer5GHz;
6221 tANI_U8 RoamRssiCatGap;
6222 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006223 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6224 tRoamNetworkType ConnectedNetwork;
6225 tMobilityDomainInfo MDID;
6226} tRoamCandidateListParams, * tpRoamCandidateListParams;
6227
6228typedef PACKED_PRE struct PACKED_POST
6229{
Kumar Anandea78e792013-10-10 23:47:01 -07006230 tHalMsgHeader header;
6231 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006232} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6233
6234typedef PACKED_PRE struct PACKED_POST
6235{
Kumar Anandea78e792013-10-10 23:47:01 -07006236 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006237
Kumar Anandea78e792013-10-10 23:47:01 -07006238 /* status of the request - just to indicate that PNO has acknowledged
6239 * the request and will start scanning */
6240 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006241} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6242#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006243
6244/*
6245 Preferred network list response
6246*/
6247typedef PACKED_PRE struct PACKED_POST
6248{
6249 tHalMsgHeader header;
6250
6251 /* status of the request - just to indicate that PNO has acknowledged
6252 * the request and will start scanning*/
6253 tANI_U32 status;
6254} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6255
6256/*
6257 Preferred network indication parameters
6258*/
6259typedef PACKED_PRE struct PACKED_POST {
6260
6261 /*Network that was found with the highest RSSI*/
6262 tSirMacSSid ssId;
6263
6264 /*Indicates the RSSI */
6265 tANI_U8 rssi;
6266
6267 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6268 tANI_U16 frameLength;
6269
6270} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6271
6272/*
6273 Preferred network found indication
6274*/
6275typedef PACKED_PRE struct PACKED_POST {
6276
6277 tHalMsgHeader header;
6278 tPrefNetwFoundParams prefNetwFoundParams;
6279} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6280
6281
6282typedef PACKED_PRE struct PACKED_POST {
6283
6284 /*RSSI Threshold*/
6285 tANI_U8 ucRssiThreshold;
6286
6287} tRssiFilterParams, * tpRssiFilterParams;
6288
Jeff Johnson295189b2012-06-20 16:38:30 -07006289/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306290 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006291*/
6292typedef PACKED_PRE struct PACKED_POST
6293{
6294 tHalMsgHeader header;
6295 tRssiFilterParams prefRSSIFilterParams;
6296} tSetRssiFilterReq, *tpSetRssiFilterReq;
6297
6298/*
6299 Set RSSI filter resp
6300*/
6301typedef PACKED_PRE struct PACKED_POST{
6302 tHalMsgHeader header;
6303 /*status of the request */
6304 tANI_U32 status;
6305} tSetRssiFilterResp, *tpSetRssiFilterResp;
6306/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306307 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006308*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306309typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006310{
6311
6312 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306313 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006314
6315 /*Lets PNO know that host has determined the regulatory domain*/
6316 tANI_U8 b11dResolved;
6317
6318 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306319 tANI_U8 ucChannelCount;
6320 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006321
6322 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306323 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006324
6325 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306326 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006327
6328 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306329 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006330
6331 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306332 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006333
6334 /*Cb State*/
6335 ePhyChanBondState cbState;
6336
6337} tUpdateScanParams, * tpUpdateScanParams;
6338
6339/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306340 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306341*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306342typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306343{
6344
6345 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306346 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306347
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_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306354
6355 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306356 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306357
6358 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306359 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306360
6361 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306362 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306363
6364 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306365 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306366
6367 /*Cb State*/
6368 ePhyChanBondState cbState;
6369
6370} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6371
6372/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006373 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306374 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006375*/
6376typedef PACKED_PRE struct PACKED_POST{
6377
6378 tHalMsgHeader header;
6379 tUpdateScanParams scanParams;
6380} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6381
6382/*
6383 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306384 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006385*/
6386typedef PACKED_PRE struct PACKED_POST{
6387
6388 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306389 tUpdateScanParamsEx scanParams;
6390} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6391
6392/*
6393 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306394 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306395*/
6396typedef PACKED_PRE struct PACKED_POST{
6397
6398 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006399
6400 /*status of the request */
6401 tANI_U32 status;
6402
6403} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6404
6405/*---------------------------------------------------------------------------
6406 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6407 *--------------------------------------------------------------------------*/
6408typedef PACKED_PRE struct PACKED_POST
6409{
6410 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6411 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6412 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6413 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6414} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6415
6416typedef PACKED_PRE struct PACKED_POST
6417{
6418 tHalMsgHeader header;
6419 tHalTxPerTrackingReqParam txPerTrackingParams;
6420} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6421
6422/*---------------------------------------------------------------------------
6423 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6424 *--------------------------------------------------------------------------*/
6425typedef PACKED_PRE struct PACKED_POST
6426{
6427 /* success or failure */
6428 tANI_U32 status;
6429} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6430
6431typedef PACKED_PRE struct PACKED_POST
6432{
6433 tHalMsgHeader header;
6434 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6435} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6436
6437/*---------------------------------------------------------------------------
6438 * WLAN_HAL_TX_PER_HIT_IND
6439 *--------------------------------------------------------------------------*/
6440typedef PACKED_PRE struct PACKED_POST
6441{
6442 tHalMsgHeader header;
6443}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6444
6445/*---------------------------------------------------------------------------
6446 *******************Packet Filtering Definitions Begin*******************
6447 *--------------------------------------------------------------------------*/
6448#define HAL_PROTOCOL_DATA_LEN 8
6449#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6450#define HAL_MAX_NUM_FILTERS 20
6451#define HAL_MAX_CMP_PER_FILTER 10
6452
6453typedef enum
6454{
6455 HAL_RCV_FILTER_TYPE_INVALID,
6456 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6457 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6458 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6459}tHalReceivePacketFilterType;
6460
Dino Mycle8afbac12014-07-04 22:06:17 +05306461typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006462{
6463 HAL_FILTER_PROTO_TYPE_INVALID,
6464 HAL_FILTER_PROTO_TYPE_MAC,
6465 HAL_FILTER_PROTO_TYPE_ARP,
6466 HAL_FILTER_PROTO_TYPE_IPV4,
6467 HAL_FILTER_PROTO_TYPE_IPV6,
6468 HAL_FILTER_PROTO_TYPE_UDP,
6469 HAL_FILTER_PROTO_TYPE_MAX
6470}tHalRcvPktFltProtocolType;
6471
Dino Mycle8afbac12014-07-04 22:06:17 +05306472typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006473{
6474 HAL_FILTER_CMP_TYPE_INVALID,
6475 HAL_FILTER_CMP_TYPE_EQUAL,
6476 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6477 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6478 HAL_FILTER_CMP_TYPE_MAX
6479}tHalRcvPktFltCmpFlagType;
6480
Dino Mycle8afbac12014-07-04 22:06:17 +05306481typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006482{
6483 tANI_U8 protocolLayer;
6484 tANI_U8 cmpFlag;
6485 tANI_U16 dataLength; /* Length of the data to compare */
6486 tANI_U8 dataOffset; /* from start of the respective frame header */
6487 tANI_U8 reserved; /* Reserved field */
6488 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6489 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6490}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6491
6492typedef PACKED_PRE struct PACKED_POST
6493{
6494 tANI_U8 filterId;
6495 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306496 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006497 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006498 tHalRcvPktFilterParams paramsData[1];
6499}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6500
6501typedef PACKED_PRE struct PACKED_POST
6502{
Jeff Johnsone7245742012-09-05 17:12:55 -07006503 tANI_U8 filterId;
6504 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306505 tANI_U8 numParams;
6506 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006507 tANI_U8 bssIdx;
6508 tHalRcvPktFilterParams paramsData[1];
6509}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6510
6511typedef PACKED_PRE struct PACKED_POST
6512{
Jeff Johnson295189b2012-06-20 16:38:30 -07006513 tHalMsgHeader header;
6514 tHalRcvPktFilterCfgType pktFilterCfg;
6515} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6516
Jeff Johnsone7245742012-09-05 17:12:55 -07006517typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006518{
6519 tANI_U8 dataOffset; /* from start of the respective frame header */
6520 tANI_U32 cMulticastAddr;
6521 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006522 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006523} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6524
6525typedef PACKED_PRE struct PACKED_POST
6526{
6527 /* success or failure */
6528 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006529 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006530} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6531
6532typedef PACKED_PRE struct PACKED_POST
6533{
6534 tHalMsgHeader header;
6535 tHalSetPktFilterRspParams pktFilterRspParams;
6536} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6537
Jeff Johnsone7245742012-09-05 17:12:55 -07006538typedef PACKED_PRE struct PACKED_POST
6539{
6540 tANI_U8 bssIdx;
6541} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006542
6543typedef PACKED_PRE struct PACKED_POST
6544{
6545 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006546 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006547} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6548
Jeff Johnsone7245742012-09-05 17:12:55 -07006549
Jeff Johnson295189b2012-06-20 16:38:30 -07006550typedef PACKED_PRE struct PACKED_POST
6551{
6552 tANI_U8 filterId;
6553 tANI_U32 matchCnt;
6554} tHalRcvFltPktMatchCnt;
6555typedef PACKED_PRE struct PACKED_POST
6556{
6557 /* Success or Failure */
6558 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306559 tANI_U32 matchCnt;
6560 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006561 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006562} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6563
6564typedef PACKED_PRE struct PACKED_POST
6565{
6566 tHalMsgHeader header;
6567 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6568} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6569
6570typedef PACKED_PRE struct PACKED_POST
6571{
6572 tANI_U32 status; /* only valid for response message */
6573 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006574 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006575}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6576
6577typedef PACKED_PRE struct PACKED_POST
6578{
6579 tHalMsgHeader header;
6580 tHalRcvFltPktClearParam filterClearParam;
6581} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6582
6583typedef PACKED_PRE struct PACKED_POST
6584{
6585 tHalMsgHeader header;
6586 tHalRcvFltPktClearParam filterClearParam;
6587} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6588
6589typedef PACKED_PRE struct PACKED_POST
6590{
Dino Mycle8afbac12014-07-04 22:06:17 +05306591 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006592 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006593}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6594
6595typedef PACKED_PRE struct PACKED_POST
6596{
6597 tHalMsgHeader header;
6598 tHalRcvFltMcAddrListType mcAddrList;
6599} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6600
6601typedef PACKED_PRE struct PACKED_POST
6602{
6603 tHalMsgHeader header;
6604 tHalRcvFltPktSetMcListRspType rspParam;
6605} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6606
6607
6608/*---------------------------------------------------------------------------
6609 *******************Packet Filtering Definitions End*******************
6610 *--------------------------------------------------------------------------*/
6611
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006612/*
6613 * There are two versions of this message
6614 * Version 1 : Base version
6615 * Current version : Base version + Max LI modulated DTIM
6616 */
6617typedef PACKED_PRE struct PACKED_POST
6618{
6619 /* Ignore DTIM */
6620 tANI_U32 uIgnoreDTIM;
6621
6622 /*DTIM Period*/
6623 tANI_U32 uDTIMPeriod;
6624
6625 /* Listen Interval */
6626 tANI_U32 uListenInterval;
6627
6628 /* Broadcast Multicast Filter */
6629 tANI_U32 uBcastMcastFilter;
6630
6631 /* Beacon Early Termination */
6632 tANI_U32 uEnableBET;
6633
6634 /* Beacon Early Termination Interval */
6635 tANI_U32 uBETInterval;
6636}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6637
6638typedef PACKED_PRE struct PACKED_POST
6639{
6640 tHalMsgHeader header;
6641 tSetPowerParamsVer1Type powerParams;
6642} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6643
Jeff Johnson295189b2012-06-20 16:38:30 -07006644typedef PACKED_PRE struct PACKED_POST
6645{
6646 /* Ignore DTIM */
6647 tANI_U32 uIgnoreDTIM;
6648
6649 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306650 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006651
6652 /* Listen Interval */
6653 tANI_U32 uListenInterval;
6654
6655 /* Broadcast Multicast Filter */
6656 tANI_U32 uBcastMcastFilter;
6657
6658 /* Beacon Early Termination */
6659 tANI_U32 uEnableBET;
6660
6661 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306662 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006663
6664 /* MAX LI for modulated DTIM */
6665 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006666}tSetPowerParamsType, *tpSetPowerParamsType;
6667
6668typedef PACKED_PRE struct PACKED_POST
6669{
6670 tHalMsgHeader header;
6671 tSetPowerParamsType powerParams;
6672} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6673
6674typedef PACKED_PRE struct PACKED_POST{
6675
6676 tHalMsgHeader header;
6677
6678 /*status of the request */
6679 tANI_U32 status;
6680
6681} tSetPowerParamsResp, *tpSetPowerParamsResp;
6682
6683/*---------------------------------------------------------------------------
6684 ****************Capability bitmap exchange definitions and macros starts*************
6685 *--------------------------------------------------------------------------*/
6686
Anand Kumar012623a2013-01-11 17:00:00 -08006687typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006688 MCC = 0,
6689 P2P = 1,
6690 DOT11AC = 2,
6691 SLM_SESSIONIZATION = 3,
6692 DOT11AC_OPMODE = 4,
6693 SAP32STA = 5,
6694 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006695 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006696 WLANACTIVE_OFFLOAD = 8,
6697 BEACON_OFFLOAD = 9,
6698 SCAN_OFFLOAD = 10,
6699 ROAM_OFFLOAD = 11,
6700 BCN_MISS_OFFLOAD = 12,
6701 STA_POWERSAVE = 13,
6702 STA_ADVANCED_PWRSAVE = 14,
6703 AP_UAPSD = 15,
6704 AP_DFS = 16,
6705 BLOCKACK = 17,
6706 PHY_ERR = 18,
6707 BCN_FILTER = 19,
6708 RTT = 20,
6709 RATECTRL = 21,
6710 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006711 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006712 SPECULATIVE_PS_POLL = 24,
6713 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006714 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006715 WLAN_SCAN_OFFLOAD = 27,
6716 WLAN_PERIODIC_TX_PTRN = 28,
6717 ADVANCE_TDLS = 29,
6718 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306719 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306720 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306721 CH_SWITCH_V1 = 33,
6722 HT40_OBSS_SCAN = 34,
6723 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006724 WLAN_MCADDR_FLT = 36,
6725 WLAN_CH144 = 37,
6726 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306727 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306728 LINK_LAYER_STATS_MEAS = 40,
6729 MU_MIMO = 41,
6730 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306731 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306732 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306733 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306734 DISA = 46,
6735 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306736 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306737 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306738 TDLS_OFF_CHANNEL = 51,
Siddharth Bhalf5c9c002015-03-16 14:44:20 +05306739 MGMT_FRAME_LOGGING = 53,
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306740 ENHANCED_TXBD_COMPLETION = 54,
Kumar Anandea78e792013-10-10 23:47:01 -07006741 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006742} placeHolderInCapBitmap;
6743
Jeff Johnson295189b2012-06-20 16:38:30 -07006744typedef PACKED_PRE struct PACKED_POST{
6745
6746 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006747} tWlanFeatCaps, *tpWlanFeatCaps;
6748
6749typedef PACKED_PRE struct PACKED_POST{
6750
Dino Mycle8afbac12014-07-04 22:06:17 +05306751 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006752 tWlanFeatCaps wlanFeatCaps;
6753
6754} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6755
Jeff Johnsone7245742012-09-05 17:12:55 -07006756#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6757#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006758#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006759#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006760#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006761#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006762#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006763#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306764#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306765#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306766#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306767#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Ganesh Kondabattinib18b3292015-03-16 16:59:26 +05306768#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006769
Jeff Johnsone7245742012-09-05 17:12:55 -07006770tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6771
Jeff Johnson295189b2012-06-20 16:38:30 -07006772#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006773 if ((b)<=127) { \
6774 arr_index = (b)/32; \
6775 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006776 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006777 (a)->featCaps[arr_index] |= (1<<bit_index); \
6778 } \
6779 }
6780#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006781 if ((b)<=127) { \
6782 arr_index = (b)/32; \
6783 bit_index = (b)%32; \
6784 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006785 } \
6786 }
6787#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006788 if ((b)<=127) { \
6789 arr_index = (b)/32; \
6790 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006791 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006792 } \
6793 }
6794
6795/*---------------------------------------------------------------------------
6796 * WLAN_HAL_WAKE_REASON_IND
6797 *--------------------------------------------------------------------------*/
6798
6799/* status codes to help debug rekey failures */
6800typedef enum
6801{
6802 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6803 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6804 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6805 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6806 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6807 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6808 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6809 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6810 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6811 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6812
6813 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6814} tGTKRekeyStatus;
6815
6816/* wake reason types */
6817typedef enum
6818{
6819 WLAN_HAL_WAKE_REASON_NONE = 0,
6820 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6821 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6822 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6823 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6824 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6825 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6826 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6827} tWakeReasonType;
6828
6829/*
6830 Wake Packet which is saved at tWakeReasonParams.DataStart
6831 This data is sent for any wake reasons that involve a packet-based wakeup :
6832
6833 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6834 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6835 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6836 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6837 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6838
6839 The information is provided to the host for auditing and debug purposes
6840
6841*/
6842
6843/*
6844 Wake reason indication parameters
6845*/
6846typedef PACKED_PRE struct PACKED_POST
6847{
6848 uint32 ulReason; /* see tWakeReasonType */
6849 uint32 ulReasonArg; /* argument specific to the reason type */
6850 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6851 HAL truncates the data (i.e. data packets) this length
6852 will be less than the actual length */
6853 uint32 ulActualDataLen; /* actual length of data */
6854 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6855 see specific wake type */
6856} tWakeReasonParams, *tpWakeReasonParams;
6857
6858/*
6859 Wake reason indication
6860*/
6861typedef PACKED_PRE struct PACKED_POST
6862{
6863 tHalMsgHeader header;
6864 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006865 tANI_U32 uBssIdx : 8;
6866 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006867} tHalWakeReasonInd, *tpHalWakeReasonInd;
6868
6869/*---------------------------------------------------------------------------
6870* WLAN_HAL_GTK_OFFLOAD_REQ
6871*--------------------------------------------------------------------------*/
6872
6873#define HAL_GTK_KEK_BYTES 16
6874#define HAL_GTK_KCK_BYTES 16
6875
6876#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6877
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006878#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6879
Jeff Johnson295189b2012-06-20 16:38:30 -07006880typedef PACKED_PRE struct PACKED_POST
6881{
6882 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306883 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006884 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6885 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006886 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006887} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6888
6889typedef PACKED_PRE struct PACKED_POST
6890{
6891 tHalMsgHeader header;
6892 tHalGtkOffloadReqParams gtkOffloadReqParams;
6893} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6894
6895/*---------------------------------------------------------------------------
6896* WLAN_HAL_GTK_OFFLOAD_RSP
6897*--------------------------------------------------------------------------*/
6898typedef PACKED_PRE struct PACKED_POST
6899{
6900 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006901 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006902} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6903
6904typedef PACKED_PRE struct PACKED_POST
6905{
6906 tHalMsgHeader header;
6907 tHalGtkOffloadRspParams gtkOffloadRspParams;
6908} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6909
6910
6911/*---------------------------------------------------------------------------
6912* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6913*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006914typedef PACKED_PRE struct PACKED_POST
6915{
6916 tANI_U8 bssIdx;
6917
6918} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006919
6920typedef PACKED_PRE struct PACKED_POST
6921{
6922 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006923 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006924} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6925
6926/*---------------------------------------------------------------------------
6927* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6928*--------------------------------------------------------------------------*/
6929typedef PACKED_PRE struct PACKED_POST
6930{
6931 tANI_U32 ulStatus; /* success or failure */
6932 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6933 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6934 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6935 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6936 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006937 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006938} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6939
6940typedef PACKED_PRE struct PACKED_POST
6941{
6942 tHalMsgHeader header;
6943 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6944} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6945
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006946/*---------------------------------------------------------------------------
6947* WLAN_HAL_DHCP_IND
6948*--------------------------------------------------------------------------*/
6949typedef PACKED_PRE struct PACKED_POST
6950{
6951 /*Indicates the device mode which indicates about the DHCP activity */
6952 tANI_U8 device_mode;
6953 tSirMacAddr macAddr;
6954} tDHCPInfo, *tpDHCPInfo;
6955
6956typedef PACKED_PRE struct PACKED_POST
6957{
6958 tHalMsgHeader header;
6959 tANI_U32 status; /* success or failure */
6960} tDHCPIndStatus, *tpDHCPIndstatus;
6961
Jeff Johnson295189b2012-06-20 16:38:30 -07006962/*
6963 Thermal Mitigation mode of operation.
6964 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6965 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6966 reducing transmit power
6967 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6968*/
6969typedef enum
6970{
6971 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6972 HAL_THERMAL_MITIGATION_MODE_0,
6973 HAL_THERMAL_MITIGATION_MODE_1,
6974 HAL_THERMAL_MITIGATION_MODE_2,
6975 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6976}tHalThermalMitigationModeType;
6977//typedef tANI_S16 tHalThermalMitigationModeType;
6978
6979/*
6980 Thermal Mitigation level.
6981 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6982 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6983
6984 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6985 level indicates normal mode of operation
6986 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6987 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6988 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6989 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6990*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306991typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006992{
6993 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6994 HAL_THERMAL_MITIGATION_LEVEL_0,
6995 HAL_THERMAL_MITIGATION_LEVEL_1,
6996 HAL_THERMAL_MITIGATION_LEVEL_2,
6997 HAL_THERMAL_MITIGATION_LEVEL_3,
6998 HAL_THERMAL_MITIGATION_LEVEL_4,
6999 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
7000}tHalThermalMitigationLevelType;
7001//typedef tANI_S16 tHalThermalMitigationLevelType;
7002
7003typedef PACKED_PRE struct PACKED_POST
7004{
7005 /* Thermal Mitigation Operation Mode */
7006 tHalThermalMitigationModeType thermalMitMode;
7007
7008 /* Thermal Mitigation Level */
7009 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05307010
Jeff Johnson295189b2012-06-20 16:38:30 -07007011}tSetThermalMitgationType, *tpSetThermalMitgationType;
7012
7013/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
7014typedef PACKED_PRE struct PACKED_POST
7015{
7016 tHalMsgHeader header;
7017 tSetThermalMitgationType thermalMitParams;
7018} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
7019
7020typedef PACKED_PRE struct PACKED_POST{
7021
7022 tHalMsgHeader header;
7023
7024 /*status of the request */
7025 tANI_U32 status;
7026
7027} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7028
Dino Mycle8afbac12014-07-04 22:06:17 +05307029/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007030provided to FW from Host via periodic messages */
7031typedef PACKED_PRE struct PACKED_POST {
7032 /* TX stats */
7033 uint32 txBytesPushed;
7034 uint32 txPacketsPushed;
7035
7036 /* RX stats */
7037 uint32 rxBytesRcvd;
7038 uint32 rxPacketsRcvd;
7039 uint32 rxTimeTotal;
7040} tStaStatsClassB, *tpStaStatsClassB;
7041
7042typedef PACKED_PRE struct PACKED_POST {
7043
7044 /* Duration over which this stats was collected */
7045 tANI_U32 duration;
7046
7047 /* Per STA Stats */
7048 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7049} tStatsClassBIndParams, *tpStatsClassBIndParams;
7050
7051typedef PACKED_PRE struct PACKED_POST {
7052
7053 tHalMsgHeader header;
7054
7055 /* Class B Stats */
7056 tStatsClassBIndParams statsClassBIndParams;
7057} tStatsClassBInd, *tpStatsClassBInd;
7058
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307059/*Wifi Proximity paramters in AP mode*/
7060#ifdef FEATURE_WIFI_PROXIMITY
7061
7062typedef PACKED_PRE struct PACKED_POST{
7063
7064 tANI_U8 wifiProximityChannel;
7065 tANI_U32 wifiProximityDuration;
7066 tANI_U32 wifiProximityInterval;
7067 tANI_U32 wifiProximityMode;
7068 tANI_U32 wifiProximityStatus;
7069 tSirMacAddr bssId;
7070 tSirMacSSid ssId;
7071
7072} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7073
7074typedef PACKED_PRE struct PACKED_POST
7075{
7076 tHalMsgHeader header;
7077
7078 tSetWifiProximityReqParam wifiProximityReqParams;
7079
7080}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7081
7082/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7083typedef PACKED_PRE struct PACKED_POST{
7084
7085 tHalMsgHeader header;
7086
7087 /*status of the request */
7088 tANI_U32 status;
7089
7090} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7091
7092#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007093
7094#ifdef FEATURE_SPECULATIVE_PS_POLL
7095/*---------------------------------------------------------------------------
7096 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7097 *--------------------------------------------------------------------------*/
7098typedef PACKED_PRE struct PACKED_POST
7099{
7100 tANI_U8 bssIdx;
7101 tANI_U16 serviceInterval;
7102 tANI_U16 suspendInterval;
7103 tANI_U8 acMask;
7104} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7105
7106typedef PACKED_PRE struct PACKED_POST
7107{
7108 tHalMsgHeader header;
7109 tHalStartSpecPsPollReqParams specPsPollReq;
7110} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7111
7112/*---------------------------------------------------------------------------
7113 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7114 *--------------------------------------------------------------------------*/
7115typedef PACKED_PRE struct PACKED_POST
7116{
7117 /* success or failure */
7118 tANI_U32 status;
7119 tANI_U8 bssIdx;
7120} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7121
7122typedef PACKED_PRE struct PACKED_POST
7123{
7124 tHalMsgHeader header;
7125 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7126} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7127
7128/*---------------------------------------------------------------------------
7129 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7130 *--------------------------------------------------------------------------*/
7131typedef PACKED_PRE struct PACKED_POST
7132{
7133 tHalMsgHeader header;
7134 tANI_U8 bssIdx;
7135} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7136#endif
7137
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307138#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307139#define HAL_MAX_SUPP_CHANNELS 128
7140#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307141/*---------------------------------------------------------------------------
7142 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7143 *-------------------------------------------------------------------------*/
7144typedef PACKED_PRE struct PACKED_POST
7145{
7146 /*STA Index*/
7147 tANI_U16 staIdx;
7148
7149 /* if this is 1, self is initiator and peer is reponder */
7150 tANI_U8 bIsResponder;
7151
7152 /* QoS Info */
7153 tANI_U8 acVOUAPSDFlag:1;
7154 tANI_U8 acVIUAPSDFlag:1;
7155 tANI_U8 acBKUAPSDFlag:1;
7156 tANI_U8 acBEUAPSDFlag:1;
7157 tANI_U8 aAck:1;
7158 tANI_U8 maxServicePeriodLength:2;
7159 tANI_U8 moreDataAck:1;
7160
7161 /*TDLS Peer U-APSD Buffer STA Support*/
7162 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007163
7164 /*TDLS off channel related params */
7165 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307166 tANI_U8 peerCurrOperClass;
7167 tANI_U8 selfCurrOperClass;
7168 tANI_U8 validChannelsLen;
7169 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7170 tANI_U8 validOperClassesLen;
7171 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307172}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7173
7174typedef PACKED_PRE struct PACKED_POST
7175{
7176 tHalMsgHeader header;
7177 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7178} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7179
7180/*---------------------------------------------------------------------------
7181 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7182 *-------------------------------------------------------------------------*/
7183
7184typedef PACKED_PRE struct PACKED_POST
7185{
7186 tANI_U32 status;
7187
7188 /*STA Index*/
7189 tANI_U16 staIdx;
7190} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7191
7192typedef PACKED_PRE struct PACKED_POST
7193{
7194 tHalMsgHeader header;
7195 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7196} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307197/*---------------------------------------------------------------------------
7198 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7199 + *-------------------------------------------------------------------------*/
7200typedef PACKED_PRE struct PACKED_POST
7201{
7202 /*STA Index*/
7203 tANI_U16 staIdx;
7204 /* if this is 1, self is initiator otherwise responder only*/
7205 tANI_U8 isOffchannelInitiator;
7206 /*TDLS off channel related params */
7207 tANI_U8 targetOperClass;
7208 tANI_U8 targetChannel;
7209 tANI_U8 secondaryChannelOffset;
7210 tANI_U8 reserved[32];
7211}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7212
7213typedef PACKED_PRE struct PACKED_POST
7214{
7215 tHalMsgHeader header;
7216 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7217} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7218/*---------------------------------------------------------------------------
7219 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7220 *-------------------------------------------------------------------------*/
7221
7222typedef PACKED_PRE struct PACKED_POST
7223{
7224 tANI_U32 status;
7225 /*STA Index*/
7226 tANI_U16 staIdx;
7227} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7228
7229typedef PACKED_PRE struct PACKED_POST
7230{
7231 tHalMsgHeader header;
7232 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7233} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7234
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307235
7236/*---------------------------------------------------------------------------
7237 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7238 *-------------------------------------------------------------------------*/
7239typedef PACKED_PRE struct PACKED_POST
7240{
7241 /*STA Index*/
7242 tANI_U16 staIdx;
7243}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7244
7245typedef PACKED_PRE struct PACKED_POST
7246{
7247 tHalMsgHeader header;
7248 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7249} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7250
7251/*---------------------------------------------------------------------------
7252 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7253 *-------------------------------------------------------------------------*/
7254
7255typedef PACKED_PRE struct PACKED_POST
7256{
7257 tANI_U32 status;
7258
7259 /*STA Index*/
7260 tANI_U16 staIdx;
7261} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7262
7263typedef PACKED_PRE struct PACKED_POST
7264{
7265 tHalMsgHeader header;
7266 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7267} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7268
7269/*---------------------------------------------------------------------------
7270 *WLAN_HAL_TDLS_IND
7271 *--------------------------------------------------------------------------*/
7272
7273typedef PACKED_PRE struct PACKED_POST
7274{
7275 tANI_U16 assocId;
7276 tANI_U16 staIdx;
7277 tANI_U16 status;
7278 tANI_U16 reasonCode;
7279}tTdlsIndParams, *tpTdlsIndParams;
7280
7281
7282typedef PACKED_PRE struct PACKED_POST
7283{
7284 tHalMsgHeader header;
7285 tTdlsIndParams tdlsIndParams;
7286}tTdlsIndMsg, *tpTdlsIndMsg;
7287
7288#endif
7289
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007290/*---------------------------------------------------------------------------
7291 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7292 *--------------------------------------------------------------------------*/
7293
7294typedef PACKED_PRE struct PACKED_POST
7295{
7296 tANI_U8 bssIdx;
7297 tANI_U8 staIdx;
7298 tSirMacAddr staAddr;
7299}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7300
7301
7302typedef PACKED_PRE struct PACKED_POST
7303{
7304 tHalMsgHeader header;
7305 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7306}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7307
7308
Kumar Anandea78e792013-10-10 23:47:01 -07007309/*********** Scan Offload Related Structures *************/
7310#define HAL_NUM_SCAN_SSID 10
7311#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007312
Kumar Anandea78e792013-10-10 23:47:01 -07007313/*
7314 * Enumetation to indicate scan type (active/passive)
7315 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007316typedef enum
7317{
Kumar Anandea78e792013-10-10 23:47:01 -07007318 eSIR_PASSIVE_SCAN,
7319 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7320} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007321
7322typedef PACKED_PRE struct PACKED_POST
7323{
Kumar Anandea78e792013-10-10 23:47:01 -07007324 tANI_U8 numBssid;
7325 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7326 tANI_U8 numSsid;
7327 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7328 tANI_BOOLEAN hiddenSsid;
7329 tSirMacAddr selfMacAddr;
7330 tSirBssType bssType;
7331 tSirScanType scanType;
7332 tANI_U32 minChannelTime;
7333 tANI_U32 maxChannelTime;
7334 tANI_BOOLEAN p2pSearch;
7335 tANI_U8 channelCount;
7336 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7337 tANI_U16 ieFieldLen;
7338 tANI_U8 ieField[1];
7339}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007340
7341/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007342 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007343 *-------------------------------------------------------------------------*/
7344typedef PACKED_PRE struct PACKED_POST
7345{
Kumar Anandf53016f2013-09-04 15:15:53 -07007346 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007347 tScanOffloadReqType scanOffloadParams;
7348} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007349
7350/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007351 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007352 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007353typedef PACKED_PRE struct PACKED_POST
7354{
7355 tHalMsgHeader header;
7356
7357 /*status of the request - just to indicate SO has acknowledged
7358 * * the request and will start scanning*/
7359 tANI_U32 status;
7360} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7361
7362/*---------------------------------------------------------------------------
7363 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7364 *-------------------------------------------------------------------------*/
7365typedef PACKED_PRE struct PACKED_POST
7366{
7367 tHalMsgHeader header;
7368} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7369
7370/*---------------------------------------------------------------------------
7371 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7372 *-------------------------------------------------------------------------*/
7373typedef PACKED_PRE struct PACKED_POST
7374{
7375 tHalMsgHeader header;
7376
7377 /*status of the request - just to indicate SO has acknowledged
7378 the request and will start scanning*/
7379 tANI_U32 status;
7380} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7381
7382/*
7383 * Enumetation of scan events indicated by firmware to the host
7384 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007385typedef enum
7386{
Kumar Anandea78e792013-10-10 23:47:01 -07007387 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7388 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7389 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7390 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7391 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7392 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7393 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7394 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7395 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7396} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007397
7398typedef PACKED_PRE struct PACKED_POST
7399{
Kumar Anandea78e792013-10-10 23:47:01 -07007400 tScanEventType event;
7401 tANI_U32 channel;
7402 tANI_U32 scanId;
7403} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007404
Kumar Anandea78e792013-10-10 23:47:01 -07007405/*---------------------------------------------------------------------------
7406 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7407 *-------------------------------------------------------------------------*/
7408typedef PACKED_PRE struct PACKED_POST
7409{
7410 tHalMsgHeader header;
7411 tScanOffloadEventInfo scanOffloadInd;
7412} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007413
Kumar Anandea78e792013-10-10 23:47:01 -07007414typedef PACKED_PRE struct PACKED_POST {
7415 /** primary 20 MHz channel frequency in mhz */
7416 tANI_U32 mhz;
7417 /** Center frequency 1 in MHz*/
7418 tANI_U32 band_center_freq1;
7419 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7420 tANI_U32 band_center_freq2;
7421 /* The first 26 bits are a bit mask to indicate any channel flags,
7422 (see WLAN_HAL_CHAN_FLAG*)
7423 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7424 tANI_U32 channel_info;
7425 /** contains min power, max power, reg power and reg class id. */
7426 tANI_U32 reg_info_1;
7427 /** contains antennamax */
7428 tANI_U32 reg_info_2;
7429} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007430
Kumar Anandf53016f2013-09-04 15:15:53 -07007431
Kumar Anandea78e792013-10-10 23:47:01 -07007432typedef enum {
7433 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7434 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7435 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7436 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7437 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7438 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7439 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7440 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7441 WLAN_HAL_MODE_11AC_VHT20 = 8,
7442 WLAN_HAL_MODE_11AC_VHT40 = 9,
7443 WLAN_HAL_MODE_11AC_VHT80 = 10,
7444 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7445 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7446 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7447 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007448
Kumar Anandea78e792013-10-10 23:47:01 -07007449} tChannelPhyModeType;
7450
7451#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7452#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7453#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7454#define WLAN_HAL_CHAN_AP_DISABLED 9
7455#define WLAN_HAL_CHAN_FLAG_DFS 10
7456#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7457#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007458#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7459
7460#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007461 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007462 } while(0)
7463
7464#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007465 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007466
7467#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7468 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7469 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7470 } while(0)
7471#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7472
7473#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7474 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7475 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7476 } while(0)
7477#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7478
7479#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7480 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7481 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7482 } while(0)
7483#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7484#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7485 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7486 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7487 } while(0)
7488#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7489
7490#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7491 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7492 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7493 } while(0)
7494#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7495
7496#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7497 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7498 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7499 } while(0)
7500#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 -07007501
7502typedef PACKED_PRE struct PACKED_POST
7503{
7504 tANI_U8 numChan;
7505 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7506} tUpdateChannelReqType;
7507
7508/*---------------------------------------------------------------------------
7509 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7510 *-------------------------------------------------------------------------*/
7511typedef PACKED_PRE struct PACKED_POST
7512{
7513 tHalMsgHeader header;
7514 tUpdateChannelReqType updateChannelParams;
7515} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7516
7517/*---------------------------------------------------------------------------
7518 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7519 *-------------------------------------------------------------------------*/
7520typedef PACKED_PRE struct PACKED_POST
7521{
7522 tHalMsgHeader header;
7523
7524 /*status of the request - just to indicate SO has acknowledged
7525 * * the request and will start scanning*/
7526 tANI_U32 status;
7527} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7528
7529
7530/*---------------------------------------------------------------------------
7531* WLAN_HAL_TX_FAIL_IND
7532*--------------------------------------------------------------------------*/
7533// Northbound indication from FW to host on weak link detection
7534typedef PACKED_PRE struct PACKED_POST
7535{
7536 // Sequence number increases by 1 whenever the device driver
7537 // sends a notification event. This is cleared as 0 when the
7538 // JOIN IBSS commamd is issued
7539 tANI_U16 seqNo;
7540 tANI_U16 staId;
7541 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7542} tHalTXFailIndParams, *tpHalTXFailIndParams;
7543
7544typedef PACKED_PRE struct PACKED_POST
7545{
7546 tHalMsgHeader header;
7547 tHalTXFailIndParams txFailIndParams;
7548} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7549
7550/*---------------------------------------------------------------------------
7551* WLAN_HAL_TX_FAIL_MONITOR_IND
7552*--------------------------------------------------------------------------*/
7553// Southbound message from Host to monitor the Tx failures
7554typedef PACKED_PRE struct PACKED_POST
7555{
7556 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7557 tANI_U8 tx_fail_count;
7558} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7559
7560typedef PACKED_PRE struct PACKED_POST
7561{
7562 tHalMsgHeader header;
7563 tTXFailMonitorInfo txFailMonitor;
7564} tTXFailMonitorInd, *tpTXFailMonitorInd;
7565
7566/*---------------------------------------------------------------------------
7567* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7568*--------------------------------------------------------------------------*/
7569typedef PACKED_PRE struct PACKED_POST
7570{
7571 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7572 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7573} tDestIpNextHopMacPair;
7574
7575typedef PACKED_PRE struct PACKED_POST
7576{
7577 tANI_U8 numEntries;
7578 tDestIpNextHopMacPair destIpMacPair[1];
7579} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007580
7581typedef PACKED_PRE struct PACKED_POST
7582{
7583 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007584 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7585} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007586
Kumar Anandf53016f2013-09-04 15:15:53 -07007587/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007588 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7589 *-------------------------------------------------------------------------*/
7590typedef enum
7591{
7592 /* reassociation is done, but couldn't finish security handshake */
7593 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7594
7595 /* roam has successfully completed by firmware */
7596 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7597
7598 /* UNKONW error */
7599 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7600}tHalRoamOffloadRoamAuthStatus;
7601
7602typedef enum
7603{
7604 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7605 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7606 WLAN_HAL_ROAM_TYPE_OKC,
7607 WLAN_HAL_ROAM_TYPE_CCKM,
7608 WLAN_HAL_ROAM_TYPE_FT,
7609 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7610} tHalRoamOffloadType;
7611
7612typedef PACKED_PRE struct PACKED_POST
7613{
7614 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7615 tANI_U16 beaconProbeRespOffset;
7616
7617 /* Length of beaon / probe resp. */
7618 tANI_U16 beaconProbeRespLength;
7619
7620 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7621 tANI_U16 reassocRespOffset;
7622
7623 /* Length of reassoc resp. */
7624 tANI_U16 reassocRespLength;
7625
7626 /* 0 for probe response frame, 1 for beacon frame, */
7627 tANI_U8 isBeacon;
7628
7629 /* staIdx of old AP */
7630 tANI_U8 oldStaIdx;
7631
7632 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7633 tConfigBssRspParams */
7634 /* bssIdx of new roamed AP */
7635 tANI_U8 bssIdx;
7636
7637 /* DPU descriptor index for PTK */
7638 tANI_U8 dpuDescIndx;
7639
7640 /* PTK DPU signature */
7641 tANI_U8 ucastDpuSignature;
7642
7643 /* DPU descriptor index for GTK*/
7644 tANI_U8 bcastDpuDescIndx;
7645
7646 /* GTK DPU signature */
7647 tANI_U8 bcastDpuSignature;
7648
7649 /*DPU descriptor for IGTK*/
7650 tANI_U8 mgmtDpuDescIndx;
7651
7652 /* IGTK DPU signature */
7653 tANI_U8 mgmtDpuSignature;
7654
7655 /* Station Index for BSS entry*/
7656 tANI_U8 staIdx;
7657
7658 /* Self station index for this BSS */
7659 tANI_U8 selfStaIdx;
7660
7661 /* Bcast station for buffering bcast frames in AP role */
7662 tANI_U8 bcastStaIdx;
7663
7664 /* MAC address of roamed AP */
7665 tSirMacAddr bssid;
7666
7667 /*HAL fills in the tx power used for mgmt frames in this field. */
7668 tANI_S8 txMgmtPower;
7669
7670 /* success or failure */
7671 tHalRoamOffloadRoamAuthStatus authStatus;
7672
7673 /* TODO : add more info as needed */
7674
7675 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7676 /* Beacon or probe resp from new AP. This is in 802.11
7677 frame format starting with MAC header. */
7678 /* Up to beaconProbeRespLength */
7679
7680 /* reassocRespOffset points to starting of reassoc resp frame */
7681 /* Reassoc resp from new AP. This is in 802.11
7682 frame format starting with MAC header. */
7683 /* Up to reassocRespLength */
7684
7685} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7686
7687
7688typedef PACKED_PRE struct PACKED_POST
7689{
7690 tHalMsgHeader header;
7691 tHalRoamOffloadSynchIndParams params;
7692} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7693
7694/*---------------------------------------------------------------------------
7695 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7696 *-------------------------------------------------------------------------*/
7697typedef PACKED_PRE struct PACKED_POST
7698{
7699 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7700 tSirMacAddr bssid;
7701} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7702
7703typedef PACKED_PRE struct PACKED_POST
7704{
7705 tHalMsgHeader header;
7706 tHalRoamOffloadSynchCnfParams params;
7707} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7708
7709
7710/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007711 WLAN_HAL_RATE_UPDATE_IND
7712 *-------------------------------------------------------------------------*/
7713
7714typedef PACKED_PRE struct PACKED_POST
7715{
7716 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7717 tANI_S32 ucastDataRate; //unit Mbpsx10
7718
7719 /* TX flag to differentiate between HT20, HT40 etc */
7720 tTxRateInfoFlags ucastDataRateTxFlag;
7721
7722 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7723 tSirMacAddr bssid;
7724
7725 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7726 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7727
7728 /* TX flag to differentiate between HT20, HT40 etc */
7729 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7730
7731 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7732 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7733
7734 /* TX flag to differentiate between HT20, HT40 etc */
7735 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7736
7737 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7738 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7739
7740 /* TX flag to differentiate between HT20, HT40 etc */
7741 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7742
7743} tHalRateUpdateParams, *tpHalRateUpdateParams;
7744
7745typedef PACKED_PRE struct PACKED_POST
7746{
7747 tHalMsgHeader header;
7748 tHalRateUpdateParams halRateUpdateParams;
7749} tHalRateUpdateInd, * tpHalRateUpdateInd;
7750
7751/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307752 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7753 *-------------------------------------------------------------------------*/
7754
7755#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 4
7756
7757typedef PACKED_PRE struct PACKED_POST
7758{
7759 tANI_U32 startFreq;
7760 tANI_U32 endFreq;
7761} tHalFreqRange, *tpHalFreqRange;
7762
7763typedef PACKED_PRE struct PACKED_POST
7764{
7765 tANI_U32 avoidCnt;
7766 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7767} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7768
7769typedef PACKED_PRE struct PACKED_POST
7770{
7771 tHalMsgHeader header;
7772 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7773} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7774
7775/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307776 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007777 *-------------------------------------------------------------------------*/
7778
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307779typedef enum
7780{
7781 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7782 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7783 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7784}tHT40OBssScanCmdType;
7785
7786typedef PACKED_PRE struct PACKED_POST
7787{
7788 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007789
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307790 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007791 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7792 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7793 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7794 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7795 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7796 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7797 tANI_U16 OBSSScanActivityThreshold;
7798
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307799 tANI_U8 selfStaIdx;
7800 tANI_U8 bssIdx;
7801 tANI_U8 fortyMHZIntolerent;
7802 tANI_U8 channelCount;
7803 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7804 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007805
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307806 tANI_U16 ieFieldLen;
7807 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7808}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7809
7810typedef PACKED_PRE struct PACKED_POST
7811{
7812 tHalMsgHeader header;
7813 tHT40ObssScanIndType scanHT40ObssScanParams;
7814} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7815
7816/*---------------------------------------------------------------------------
7817 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7818 *-------------------------------------------------------------------------*/
7819typedef PACKED_PRE struct PACKED_POST
7820{
7821 tHalMsgHeader header;
7822 tANI_U8 bssIdx;
7823} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307824
7825/*---------------------------------------------------------------------------
7826 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7827 *-------------------------------------------------------------------------*/
7828
7829typedef PACKED_PRE struct PACKED_POST
7830{
7831 /* Valid BSS Idx for beacon miss rate */
7832 tANI_U8 bssIdx;
7833
7834}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7835
7836typedef PACKED_PRE struct PACKED_POST
7837{
7838 tHalMsgHeader header;
7839 tHalBcnMissRateReqParams bcnMissRateReqParams;
7840} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7841
7842/*---------------------------------------------------------------------------
7843 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7844 *-------------------------------------------------------------------------*/
7845
7846typedef PACKED_PRE struct PACKED_POST
7847{
7848 tANI_U32 status;
7849 tANI_U32 bcnMissCnt;
7850}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7851
7852typedef PACKED_PRE struct PACKED_POST
7853{
7854 tHalMsgHeader header;
7855 tHalBcnMissRateRspParams bcnMissRateRspParams;
7856}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7857
Sunil Dutt8377a382014-05-26 21:18:04 +05307858/*--------------------------------------------------------------------------
7859* WLAN_HAL_LL_SET_STATS_REQ
7860*---------------------------------------------------------------------------*/
7861
7862typedef PACKED_PRE struct PACKED_POST
7863{
7864 tANI_U32 req_id;
7865 tANI_U8 sta_id;
7866 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7867 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7868} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7869
7870typedef PACKED_PRE struct PACKED_POST
7871{
7872 tHalMsgHeader header;
7873 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7874} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7875
7876/*---------------------------------------------------------------------------
7877 WLAN_HAL_LL_SET_STATS_RSP
7878---------------------------------------------------------------------------*/
7879
7880typedef PACKED_PRE struct PACKED_POST
7881{
7882 tANI_U32 status;
7883 tANI_U32 resp_id;
7884 tANI_U8 iface_id;
7885} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7886
7887typedef PACKED_PRE struct PACKED_POST
7888{
7889 tHalMsgHeader header;
7890 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7891} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7892
7893/*---------------------------------------------------------------------------
7894 WLAN_HAL_LL_GET_STATS_REQ
7895---------------------------------------------------------------------------*/
7896
7897typedef PACKED_PRE struct PACKED_POST
7898{
7899 tANI_U32 req_id;
7900 tANI_U8 sta_id;
7901 tANI_U32 param_id_mask;
7902} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7903
7904typedef PACKED_PRE struct PACKED_POST
7905{
7906 tHalMsgHeader header;
7907 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7908} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7909
7910/*---------------------------------------------------------------------------
7911 WLAN_HAL_LL_GET_STATS_RSP
7912---------------------------------------------------------------------------*/
7913typedef PACKED_PRE struct PACKED_POST
7914{
7915 tANI_U32 status;
7916 tANI_U32 resp_id;
7917 tANI_U8 iface_id;
7918} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7919
7920typedef PACKED_PRE struct PACKED_POST
7921{
7922 tHalMsgHeader header;
7923 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7924} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7925
7926/*---------------------------------------------------------------------------
7927 WLAN_HAL_LL_CLEAR_STATS_REQ
7928---------------------------------------------------------------------------*/
7929typedef PACKED_PRE struct PACKED_POST
7930{
7931 tANI_U32 req_id;
7932 tANI_U8 sta_id;
7933 tANI_U32 stats_clear_req_mask;
7934 tANI_U8 stop_req;
7935} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
7936
7937typedef PACKED_PRE struct PACKED_POST
7938{
7939 tHalMsgHeader header;
7940 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
7941} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
7942
7943/*---------------------------------------------------------------------------
7944 WLAN_HAL_LL_CLEAR_STATS_RSP
7945---------------------------------------------------------------------------*/
7946typedef PACKED_PRE struct PACKED_POST
7947{
7948 tANI_U32 status;
7949 tANI_U8 sta_id;
7950 tANI_U32 resp_id;
7951 tANI_U32 stats_clear_rsp_mask;
7952 tANI_U8 stop_req_status;
7953} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
7954
7955typedef PACKED_PRE struct PACKED_POST
7956{
7957 tHalMsgHeader header;
7958 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
7959} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
7960
7961/*---------------------------------------------------------------------------
7962 WLAN_HAL_LL_NOTIFY_STATS
7963---------------------------------------------------------------------------*/
7964
7965typedef PACKED_PRE struct PACKED_POST
7966{
7967 tHalMsgHeader header;
7968 tANI_U32 param_id;
7969 tANI_U8 iface_id;
7970 tANI_U32 resp_id;
7971 tANI_U32 more_result_to_follow;
7972 tANI_U8 result[1];
7973} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007974
Dino Mycle108eff22014-06-10 09:36:44 +05307975/*---------------------------------------------------------------------------
7976 * WLAN_HAL_EXT_SCAN_START_REQ
7977 *-------------------------------------------------------------------------*/
7978
Dino Mycle8afbac12014-07-04 22:06:17 +05307979typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05307980{
7981 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
7982 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
7983 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
7984 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
7985 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
7986 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
7987 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05307988 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05307989} tExtScanChannelBandMask;
7990
7991typedef PACKED_PRE struct PACKED_POST
7992{
7993 tANI_U32 channel; // frequency
7994 tANI_U32 dwellTimeMs; // dwell time hint
7995 tANI_U8 passive; // 0 => active,
7996 // 1 => passive scan; ignored for DFS
7997}tExtScanChannelSpec, *tpExtScanChannelSpec;
7998
7999typedef PACKED_PRE struct PACKED_POST
8000 {
8001 /* bucket index, 0 based */
8002 tANI_U8 bucketId;
8003 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
8004 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05308005 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05308006 tANI_U32 period;
8007 /* 0 => normal reporting (reporting rssi history only,
8008 when rssi history buffer is % full)
8009 * 1 => same as 0 + report a scan completion event after scanning this bucket
8010 * 2 => same as 1 + forward scan results (beacons/probe responses + IEs) in
8011 real time to HAL (Required for L = P0)
8012 * 3 => same as 2 + forward scan results (beacons/probe responses + IEs) in
8013 real time to host (Not required for L = P3) */
8014 tANI_U8 reportEvents;
8015 /* number of channels */
8016 tANI_U8 numChannels;
8017 /* if channels to scan. In the TLV channelList[] */
8018 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
8019}tExtScanBucketData, *tpExtScanBucketData;
8020
8021typedef PACKED_PRE struct PACKED_POST
8022{
8023 tANI_U32 requestId;
8024 tANI_U8 sessionId;
8025 /* Base period (milliseconds) used by scan buckets to define periodicity
8026 of the scans */
8027 tANI_U32 basePeriod;
8028 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8029 (keep the most significant, i.e. stronger RSSI) */
8030 tANI_U32 maxApPerScan;
8031 /* in %, when buffer is this much full, wake up host */
8032 tANI_U32 reportThreshold;
8033 /* This will be off channel minimum time */
8034 tANI_U16 neighborScanChannelMinTime;
8035 /* This will be out off channel max time */
8036 tANI_U16 neighborScanChannelMaxTime;
8037 /* This will be the home (BSS) channel time */
8038 tANI_U16 homeAwayTime;
8039 /* number of buckets (maximum 8) */
8040 tANI_U8 numBuckets;
8041 /* Buckets data */
8042 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8043} tHalExtScanStartReq, *tpHalExtScanStartReq;
8044
8045typedef PACKED_PRE struct PACKED_POST
8046{
8047 tHalMsgHeader header;
8048 tHalExtScanStartReq extScanStartReq;
8049}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8050
8051/*---------------------------------------------------------------------------
8052 * WLAN_HAL_EXT_SCAN_START_RSP
8053 *-------------------------------------------------------------------------*/
8054
8055typedef PACKED_PRE struct PACKED_POST
8056{
8057 tANI_U32 requestId;
8058 tANI_U32 status;
8059}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8060
8061typedef PACKED_PRE struct PACKED_POST
8062{
8063 tHalMsgHeader header;
8064 tHalExtScanStartRsp extScanStartRsp;
8065}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8066
8067/*---------------------------------------------------------------------------
8068 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8069 *-------------------------------------------------------------------------*/
8070
8071typedef PACKED_PRE struct PACKED_POST
8072{
8073 tANI_U32 requestId;
8074 tANI_U8 sessionId;
8075}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8076
8077typedef PACKED_PRE struct PACKED_POST
8078{
8079 tHalMsgHeader header;
8080 tHalExtScanGetCapReq extScanGetCapReq;
8081}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8082
8083/*---------------------------------------------------------------------------
8084 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8085 *-------------------------------------------------------------------------*/
8086
8087typedef PACKED_PRE struct PACKED_POST
8088{
8089 tANI_U32 requestId;
8090 tANI_U32 status;
8091
8092 tANI_U32 scanCacheSize;
8093 tANI_U32 scanBuckets;
8094 tANI_U32 maxApPerScan;
8095 tANI_U32 maxRssiSampleSize;
8096 tANI_U32 maxScanReportingThreshold;
8097
8098 tANI_U32 maxHotlistAPs;
8099 tANI_U32 maxSignificantWifiChangeAPs;
8100
8101 tANI_U32 maxBssidHistoryEntries;
8102}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8103
8104typedef PACKED_PRE struct PACKED_POST
8105{
8106 tHalMsgHeader header;
8107 tHalExtScanGetCapRsp extScanGetCapRsp;
8108}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8109
8110/*---------------------------------------------------------------------------
8111 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8112 *-------------------------------------------------------------------------*/
8113
8114typedef PACKED_PRE struct PACKED_POST
8115{
8116 tANI_U32 requestId;
8117 tANI_U8 sessionId;
8118 /*
8119 * 1 return cached results and flush it
8120 * 0 return cached results and do not flush
8121 */
8122 tANI_BOOLEAN flush;
8123}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8124
8125typedef PACKED_PRE struct PACKED_POST
8126{
8127 tHalMsgHeader header;
8128 tHalExtScanGetScanReq getScanReq;
8129}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8130
8131/*---------------------------------------------------------------------------
8132 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8133 *-------------------------------------------------------------------------*/
8134
8135typedef PACKED_PRE struct PACKED_POST
8136{
8137 tANI_U32 requestId;
8138 tANI_U32 status;
8139}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8140
8141typedef PACKED_PRE struct PACKED_POST
8142{
8143 tHalMsgHeader header;
8144 tHalExtScanGetScanRsp getScanRsp;
8145}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8146
8147/*---------------------------------------------------------------------------
8148 * WLAN_HAL_EXT_SCAN_RESULT_IND
8149 *-------------------------------------------------------------------------*/
8150
8151typedef PACKED_PRE struct PACKED_POST
8152{
8153 tANI_U64 ts; // time of discovery
8154 tANI_U8 ssid[32+1]; // null terminated SSID
8155 tSirMacAddr bssid; // BSSID
8156 tANI_U32 channel; // channel frequency in MHz
8157 tANI_S32 rssi; // RSSI in dBm
8158 tANI_U32 rtt; // RTT in nanoseconds - not expected
8159 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308160 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308161 tANI_U16 capability; // capabilities advertised in the beacon
8162} tHalExtScanResultParams, *tpHalExtScanResultParams;
8163
8164typedef PACKED_PRE struct PACKED_POST
8165{
8166 tHalMsgHeader header;
8167 tANI_U32 requestId;
8168 tANI_U32 scanResultSize;
8169 tANI_BOOLEAN moreData;
8170 tANI_U8 extScanResult[1];
8171}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8172
8173/*---------------------------------------------------------------------------
8174 * WLAN_HAL_EXT_SCAN_STOP_REQ
8175 *-------------------------------------------------------------------------*/
8176
8177typedef PACKED_PRE struct PACKED_POST
8178{
8179 tANI_U32 requestId;
8180 tANI_U8 sessionId;
8181}tHalExtScanStopReq, *tpHalExtScanStopReq;
8182
8183typedef PACKED_PRE struct PACKED_POST
8184{
8185 tHalMsgHeader header;
8186 tHalExtScanStopReq extScanStopReq;
8187}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8188
8189/*---------------------------------------------------------------------------
8190 * WLAN_HAL_EXT_SCAN_STOP_RSP
8191 *-------------------------------------------------------------------------*/
8192
8193typedef PACKED_PRE struct PACKED_POST
8194{
8195 tANI_U32 requestId;
8196 tANI_U32 status;
8197}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8198
8199typedef PACKED_PRE struct PACKED_POST
8200{
8201 tHalMsgHeader header;
8202 tHalExtScanStopRsp extScanStopRsp;
8203}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8204
8205/*---------------------------------------------------------------------------
8206 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8207 *-------------------------------------------------------------------------*/
8208
Dino Mycle8afbac12014-07-04 22:06:17 +05308209typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308210{
8211 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8212 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308213 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308214} tHalExtScanProgressEventType;
8215
8216typedef PACKED_PRE struct PACKED_POST
8217{
8218 tANI_U32 requestId;
8219 tANI_U32 status;
8220 tHalExtScanProgressEventType extScanEventType;
8221}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8222
8223typedef PACKED_PRE struct PACKED_POST
8224{
8225 tHalMsgHeader header;
8226 tHalExtScanProgressInd extScanProgressInd;
8227}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8228
8229/*---------------------------------------------------------------------------
8230 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8231 *-------------------------------------------------------------------------*/
8232
8233typedef PACKED_PRE struct PACKED_POST
8234{
8235 tANI_U32 requestId;
8236 tANI_U32 numOfScanResAvailable;
8237}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8238
8239typedef PACKED_PRE struct PACKED_POST
8240{
8241 tHalMsgHeader header;
8242 tHalExtScanResAvailableInd extScanResAvailableInd;
8243}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8244
8245/*---------------------------------------------------------------------------
8246 * WLAN_HAL_SIG_RSSI_SET_REQ
8247 *-------------------------------------------------------------------------*/
8248
8249typedef PACKED_PRE struct PACKED_POST
8250{
8251 /* AP BSSID */
8252 tSirMacAddr bssid;
8253 /* low threshold - used in L for significant_change - not used in L for
8254 hotlist*/
8255 tANI_S32 lowRssiThreshold;
8256 /* high threshold - used in L for significant rssi - used in L for hotlist */
8257 tANI_S32 highRssiThreshold;
8258 /* channel hint */
8259 tANI_U32 channel;
8260} tApThresholdParams, *tpApThresholdParams;
8261
8262typedef PACKED_PRE struct PACKED_POST
8263{
8264 tANI_U32 requestId;
8265 tANI_U8 sessionId;
8266 /* number of samples for averaging RSSI */
8267 tANI_U32 rssiSampleSize;
8268 /* number of missed samples to confirm AP loss */
8269 tANI_U32 lostApSampleSize;
8270 /* number of APs breaching threshold required for firmware to generate event */
8271 tANI_U32 minBreaching;
8272 /* number of significant APs */
8273 tANI_U32 numAp;
8274 /* significant APs */
8275 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_SIG_CHANGE_APS];
8276} tHalSigRssiSetReq, *tpHalSigRssiSetReq;
8277
8278typedef PACKED_PRE struct PACKED_POST
8279{
8280 tHalMsgHeader header;
8281 tHalSigRssiSetReq extScanSigRssiReq;
8282}tHalSigRssiSetReqMsg, *tpHalSigRssiSetReqMsg;
8283
8284/*---------------------------------------------------------------------------
8285 * WLAN_HAL_SIG_RSSI_SET_RSP
8286 *-------------------------------------------------------------------------*/
8287
8288typedef PACKED_PRE struct PACKED_POST
8289{
8290 tANI_U32 requestId;
8291 tANI_U32 status;
8292}tHalSigRssiSetRsp, *tpHalSigRssiSetRsp;
8293
8294
8295typedef PACKED_PRE struct PACKED_POST
8296{
8297 tHalMsgHeader header;
8298 tHalSigRssiSetRsp sigRssiSetRsp;
8299}tHalSigRssiSetRspMsg, *tpHalSigRssiSetRspMsg;
8300
8301/*---------------------------------------------------------------------------
8302 * WLAN_HAL_SIG_RSSI_RESET_REQ
8303 *-------------------------------------------------------------------------*/
8304
8305typedef PACKED_PRE struct PACKED_POST
8306{
8307 tANI_U32 requestId;
8308}tHalSigRssiResetReq, *tpHalSigRssiResetReq;
8309
8310typedef PACKED_PRE struct PACKED_POST
8311{
8312 tHalMsgHeader header;
8313 tHalSigRssiResetReq sigRssiResetReq;
8314}tHalSigRssiResetReqMsg, *tpHalSigRssiResetReqMsg;
8315
8316/*---------------------------------------------------------------------------
8317 * WLAN_HAL_SIG_RSSI_RESET_RSP
8318 *-------------------------------------------------------------------------*/
8319
8320typedef PACKED_PRE struct PACKED_POST
8321{
8322 tANI_U32 requestId;
8323 tANI_U32 status;
8324}tHalSigRssiResetRsp, *tpHalSigRssiResetRsp;
8325
8326typedef PACKED_PRE struct PACKED_POST
8327{
8328 tHalMsgHeader header;
8329 tHalSigRssiResetRsp sigRssiResetRsp;
8330}tHalSigRssiResetRspMsg, *tpHalSigRssiResetRspMsg;
8331
8332/*---------------------------------------------------------------------------
8333 * WLAN_HAL_SIG_RSSI_RESULT_IND
8334 *-------------------------------------------------------------------------*/
8335
8336typedef PACKED_PRE struct PACKED_POST
8337{
8338 // BSSID
8339 tSirMacAddr bssid;
8340 // channel frequency in MHz
8341 tANI_U32 channel;
8342 // number of rssi samples
8343 tANI_U8 numRssi;
8344 // RSSI history in db
8345 tANI_S32 rssi[WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE];
8346} tHalSigRssiResultParams, *tpHalSigRssiResultParams;
8347
8348typedef PACKED_PRE struct PACKED_POST
8349{
8350 tHalMsgHeader header;
8351 tANI_U32 requestId;
8352 tANI_U32 numSigRssiBss;
8353 tANI_BOOLEAN moreData;
8354 tANI_U8 sigRssiResult[1];
8355}tHalSigRssiResultIndMsg, *tpHalSigRssiResultIndMsg;
8356
8357/*---------------------------------------------------------------------------
8358 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8359 *-------------------------------------------------------------------------*/
8360
8361typedef PACKED_PRE struct PACKED_POST
8362{
8363 tANI_U32 requestId;
8364 tANI_U8 sessionId;
8365 // number of hotlist APs
8366 tANI_U32 numAp;
8367 // hotlist APs
8368 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8369} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8370
8371typedef PACKED_PRE struct PACKED_POST
8372{
8373 tHalMsgHeader header;
8374 tHalBssidHotlistSetReq bssidHotlistSetReq;
8375}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8376
8377/*---------------------------------------------------------------------------
8378 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8379 *-------------------------------------------------------------------------*/
8380
8381typedef PACKED_PRE struct PACKED_POST
8382{
8383 tANI_U32 requestId;
8384 tANI_U32 status;
8385}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8386
8387typedef PACKED_PRE struct PACKED_POST
8388{
8389 tHalMsgHeader header;
8390 tHalHotlistSetRsp hotlistSetRsp;
8391}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8392
8393/*---------------------------------------------------------------------------
8394 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8395 *-------------------------------------------------------------------------*/
8396
8397typedef PACKED_PRE struct PACKED_POST
8398{
8399 tANI_U32 requestId;
8400}tHalHotlistResetReq, *tpHalHotlistResetReq;
8401
8402typedef PACKED_PRE struct PACKED_POST
8403{
8404 tHalMsgHeader header;
8405 tHalHotlistResetReq hotlistResetReq;
8406}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8407
8408/*---------------------------------------------------------------------------
8409 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8410 *-------------------------------------------------------------------------*/
8411
8412typedef PACKED_PRE struct PACKED_POST
8413{
8414 tANI_U32 requestId;
8415 tANI_U32 status;
8416}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8417
8418typedef PACKED_PRE struct PACKED_POST
8419{
8420 tHalMsgHeader header;
8421 tHalHotlistResetRsp hotlistResetRsp;
8422}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8423
8424/*---------------------------------------------------------------------------
8425 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8426 *-------------------------------------------------------------------------*/
8427
8428typedef PACKED_PRE struct PACKED_POST
8429{
8430 tHalMsgHeader header;
8431 tANI_U32 requestId;
8432 tANI_U32 numHotlistBss;
8433 tANI_BOOLEAN moreData;
8434 tANI_U8 bssHotlist[1];
8435}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8436
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308437
8438/*---------------------------------------------------------------------------
8439 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8440 *--------------------------------------------------------------------------*/
8441typedef PACKED_PRE struct PACKED_POST
8442{
8443 tANI_U8 macAddr[6];
8444 tANI_U32 reserved1;
8445 tANI_U32 reserved2;
8446}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8447
8448typedef PACKED_PRE struct PACKED_POST
8449{
8450 tHalMsgHeader header;
8451 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8452} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8453
8454/*---------------------------------------------------------------------------
8455* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8456*-------------------------------------------------------------------------*/
8457
8458typedef PACKED_PRE struct PACKED_POST
8459{
8460 tANI_U32 status;
8461 tANI_U32 reserved1;
8462} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8463
8464typedef PACKED_PRE struct PACKED_POST
8465{
8466 tHalMsgHeader header;
8467 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8468} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308469/*---------------------------------------------------------------------------
8470 *WLAN_HAL_GET_FRAME_LOG_REQ
8471 *--------------------------------------------------------------------------*/
8472typedef PACKED_PRE struct PACKED_POST
8473{
8474 tANI_U8 flags;
8475}tGetFrameLogReqType, * tpGetFrameLogReqType;
8476
8477typedef PACKED_PRE struct PACKED_POST
8478{
8479 tHalMsgHeader header;
8480 tGetFrameLogReqType tGetFrameLogReqParams;
8481} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8482
8483/*---------------------------------------------------------------------------
8484 * WLAN_HAL_GET_FRAME_LOG_RSP
8485 *-------------------------------------------------------------------------*/
8486typedef PACKED_PRE struct PACKED_POST
8487{
8488 tANI_U32 status;
8489} tGetFrameLogResp, * tpGetFrameLogResp;
8490
8491typedef PACKED_PRE struct PACKED_POST
8492{
8493 tHalMsgHeader header;
8494 tGetFrameLogResp tGetFrameLogRespParams;
8495} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8496
8497/*---------------------------------------------------------------------------
8498 *WLAN_HAL_MGMT_LOGGING_INIT_REQ
8499 *--------------------------------------------------------------------------*/
8500typedef PACKED_PRE struct PACKED_POST
8501{
8502 tANI_U8 enableFlag;
8503 tANI_U8 frameType;
8504 tANI_U8 frameSize;
8505 tANI_U8 bufferMode;
8506}tMgmtLoggingInitReqType, * tpMgmtLoggingInitReqType;
8507
8508typedef PACKED_PRE struct PACKED_POST
8509{
8510 tHalMsgHeader header;
8511 tMgmtLoggingInitReqType tMgmtLoggingInitReqParams;
8512} tHalMgmtLoggingInitReqMsg, * tpHalMgmtLoggingInitReqMsg;
8513
8514/*---------------------------------------------------------------------------
8515 * WLAN_HAL_MGMT_LOGGING_INIT_RSP
8516 *-------------------------------------------------------------------------*/
8517typedef PACKED_PRE struct PACKED_POST
8518{
8519 tANI_U32 status;
8520} tMgmtLoggingInitResp, * tpMgmtLoggingInitReep;
8521
8522typedef PACKED_PRE struct PACKED_POST
8523{
8524 tHalMsgHeader header;
8525 tMgmtLoggingInitResp tMgmtLoggingInitRespParams;
8526} tMgmtLoggingInitRespMsg, * tpMgmtLoggingInitRespMsg;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308527
Jeff Johnson295189b2012-06-20 16:38:30 -07008528#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8529#pragma pack(pop)
8530#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8531#else
8532#endif
8533
8534#endif /* _WLAN_HAL_MSG_H_ */