blob: feae5a26bc7f0aa7b3fe24321df6eea53e1a2ef0 [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
Sunil Dutt8377a382014-05-26 21:18:04 +0530531 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700532}tHalHostMsgType;
533
Jeff Johnsone7245742012-09-05 17:12:55 -0700534/* Enumeration for Version */
535typedef enum
536{
537 WLAN_HAL_MSG_VERSION0 = 0,
538 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800539 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
540 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700541}tHalHostMsgVersion;
542
Jeff Johnson295189b2012-06-20 16:38:30 -0700543/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530544typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700545{
546 eANI_BOOLEAN_FALSE = 0,
547 eANI_BOOLEAN_TRUE,
548 eANI_BOOLEAN_OFF = 0,
549 eANI_BOOLEAN_ON = 1,
550 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
551} eAniBoolean;
552
553typedef enum
554{
555 eDRIVER_TYPE_PRODUCTION = 0,
556 eDRIVER_TYPE_MFG = 1,
557 eDRIVER_TYPE_DVT = 2,
558 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
559} tDriverType;
560
561typedef enum
562{
563 HAL_STOP_TYPE_SYS_RESET,
564 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
565 HAL_STOP_TYPE_RF_KILL,
566 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
567}tHalStopType;
568
569typedef enum
570{
571 eHAL_SYS_MODE_NORMAL,
572 eHAL_SYS_MODE_LEARN,
573 eHAL_SYS_MODE_SCAN,
574 eHAL_SYS_MODE_PROMISC,
575 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700576 eHAL_SYS_MODE_ROAM_SCAN,
577 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700578 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700579 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
580} eHalSysMode;
581
582typedef enum
583{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800584 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
585 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
586 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
587 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
588 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
589 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
590 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
591 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
592 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700593 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800594 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
595} eHalChanSwitchSource;
596
597typedef enum
598{
Jeff Johnson295189b2012-06-20 16:38:30 -0700599 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
600 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
601 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
602 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700603#ifdef WLAN_FEATURE_11AC
604 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
605 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
606 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
607 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
608 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
609 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
610 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
611#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700612 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
613}ePhyChanBondState;
614
615// Spatial Multiplexing(SM) Power Save mode
616typedef enum eSirMacHTMIMOPowerSaveState
617{
618 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
619 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
620 eSIR_HT_MIMO_PS_NA = 2, // reserved
621 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
622 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
623} tSirMacHTMIMOPowerSaveState;
624
625/* each station added has a rate mode which specifies the sta attributes */
626typedef enum eStaRateMode {
627 eSTA_TAURUS = 0,
628 eSTA_TITAN,
629 eSTA_POLARIS,
630 eSTA_11b,
631 eSTA_11bg,
632 eSTA_11a,
633 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700634#ifdef WLAN_FEATURE_11AC
635 eSTA_11ac,
636#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700637 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
638} tStaRateMode, *tpStaRateMode;
639
640#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
641#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
642#define SIR_NUM_POLARIS_RATES 3 //72,96,108
643
644#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
645
646
647typedef enum eSirBssType
648{
649 eSIR_INFRASTRUCTURE_MODE,
650 eSIR_INFRA_AP_MODE, //Added for softAP support
651 eSIR_IBSS_MODE,
652 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
653 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
654 eSIR_AUTO_MODE,
655 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
656} tSirBssType;
657
658typedef enum eSirNwType
659{
660 eSIR_11A_NW_TYPE,
661 eSIR_11B_NW_TYPE,
662 eSIR_11G_NW_TYPE,
663 eSIR_11N_NW_TYPE,
664 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
665} tSirNwType;
666
667typedef tANI_U16 tSirMacBeaconInterval;
668
669#define SIR_MAC_RATESET_EID_MAX 12
670
671typedef enum eSirMacHTOperatingMode
672{
673 eSIR_HT_OP_MODE_PURE, // No Protection
674 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
675 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
676 eSIR_HT_OP_MODE_MIXED, // Protection is required
677 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
678} tSirMacHTOperatingMode;
679
Jeff Johnson295189b2012-06-20 16:38:30 -0700680/// Encryption type enum used with peer
681typedef enum eAniEdType
682{
683 eSIR_ED_NONE,
684 eSIR_ED_WEP40,
685 eSIR_ED_WEP104,
686 eSIR_ED_TKIP,
687 eSIR_ED_CCMP,
688 eSIR_ED_WPI,
689 eSIR_ED_AES_128_CMAC,
690 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
691} tAniEdType;
692
693#define WLAN_MAX_KEY_RSC_LEN 16
694#define WLAN_WAPI_KEY_RSC_LEN 16
695
696/// MAX key length when ULA is used
697#define SIR_MAC_MAX_KEY_LENGTH 32
698#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
699
700/// Enum to specify whether key is used
701/// for TX only, RX only or both
702typedef enum eAniKeyDirection
703{
704 eSIR_TX_ONLY,
705 eSIR_RX_ONLY,
706 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700707 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700708 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
709} tAniKeyDirection;
710
711typedef enum eAniWepType
712{
713 eSIR_WEP_STATIC,
714 eSIR_WEP_DYNAMIC,
715 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
716} tAniWepType;
717
718typedef enum eSriLinkState {
719
720 eSIR_LINK_IDLE_STATE = 0,
721 eSIR_LINK_PREASSOC_STATE = 1,
722 eSIR_LINK_POSTASSOC_STATE = 2,
723 eSIR_LINK_AP_STATE = 3,
724 eSIR_LINK_IBSS_STATE = 4,
725
726 /* BT-AMP Case */
727 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
728 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
729 eSIR_LINK_BTAMP_AP_STATE = 7,
730 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530731
Jeff Johnson295189b2012-06-20 16:38:30 -0700732 /* Reserved for HAL Internal Use */
733 eSIR_LINK_LEARN_STATE = 9,
734 eSIR_LINK_SCAN_STATE = 10,
735 eSIR_LINK_FINISH_SCAN_STATE = 11,
736 eSIR_LINK_INIT_CAL_STATE = 12,
737 eSIR_LINK_FINISH_CAL_STATE = 13,
738#ifdef WLAN_FEATURE_P2P
739 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530740 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700741#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700742#ifdef WLAN_FEATURE_ROAM_OFFLOAD
743 eSIR_LINK_FT_PREASSOC_STATE = 16,
744#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700745 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
746} tSirLinkState;
747
748typedef enum
749{
750 HAL_SUMMARY_STATS_INFO = 0x00000001,
751 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
752 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
753 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
754 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
755 HAL_PER_STA_STATS_INFO = 0x00000020
756}eHalStatsMask;
757
758/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530759typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700760{
761 BTAMP_EVENT_CONNECTION_START,
762 BTAMP_EVENT_CONNECTION_STOP,
763 BTAMP_EVENT_CONNECTION_TERMINATED,
764 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
765} tBtAmpEventType;
766
767//***************************************************************
768
769
770/*******************PE Statistics*************************/
771typedef enum
772{
773 PE_SUMMARY_STATS_INFO = 0x00000001,
774 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
775 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
776 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
777 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
778 PE_PER_STA_STATS_INFO = 0x00000020,
779 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
780}ePEStatsMask;
781
Sunil Dutt8377a382014-05-26 21:18:04 +0530782
783/******************************LINK LAYER Statitics**********************/
784
785typedef int wifi_radio;
786typedef int wifi_channel;
787typedef int wifi_tx_rate;
788
789/* channel operating width */
790typedef enum {
791 WIFI_CHAN_WIDTH_20 = 0,
792 WIFI_CHAN_WIDTH_40 = 1,
793 WIFI_CHAN_WIDTH_80 = 2,
794 WIFI_CHAN_WIDTH_160 = 3,
795 WIFI_CHAN_WIDTH_80P80 = 4,
796 WIFI_CHAN_WIDTH_5 = 5,
797 WIFI_CHAN_WIDTH_10 = 6,
798} wifi_channel_width;
799
800typedef enum {
801 WIFI_DISCONNECTED = 0,
802 WIFI_AUTHENTICATING = 1,
803 WIFI_ASSOCIATING = 2,
804 WIFI_ASSOCIATED = 3,
805 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
806 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
807} wifi_connection_state;
808
809typedef enum {
810 WIFI_ROAMING_IDLE = 0,
811 WIFI_ROAMING_ACTIVE = 1,
812} wifi_roam_state;
813
814typedef enum {
815 WIFI_INTERFACE_STA = 0,
816 WIFI_INTERFACE_SOFTAP = 1,
817 WIFI_INTERFACE_IBSS = 2,
818 WIFI_INTERFACE_P2P_CLIENT = 3,
819 WIFI_INTERFACE_P2P_GO = 4,
820 WIFI_INTERFACE_NAN = 5,
821 WIFI_INTERFACE_MESH = 6,
822 } wifi_interface_mode;
823
824#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
825#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
826#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
827#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
828#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
829#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
830
831typedef PACKED_PRE struct PACKED_POST
832{
833 wifi_interface_mode mode; // interface mode
834 tANI_U8 mac_addr[6]; // interface mac address (self)
835 wifi_connection_state state; // connection state (valid for STA, CLI only)
836 wifi_roam_state roaming; // roaming state
837 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
838 tANI_U8 ssid[33]; // null terminated SSID
839 tANI_U8 bssid[6]; // bssid
840 tANI_U8 ap_country_str[3]; // country string advertised by AP
841 tANI_U8 country_str[3]; // country string for this association
842} wifi_interface_info;
843
844/* channel information */
845typedef PACKED_PRE struct PACKED_POST
846{
847 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
848 wifi_channel center_freq; // primary 20 MHz channel
849 wifi_channel center_freq0; // center frequency (MHz) first segment
850 wifi_channel center_freq1; // center frequency (MHz) second segment
851} wifi_channel_info;
852
853/* wifi rate info */
854typedef PACKED_PRE struct PACKED_POST
855{
856 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
857 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
858 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
859 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
860 // HT/VHT it would be mcs index
861 tANI_U32 reserved :16; // reserved
862 tANI_U32 bitrate; // units of 100 Kbps
863} wifi_rate;
864
865/* channel statistics */
866typedef PACKED_PRE struct PACKED_POST
867{
868 wifi_channel_info channel; // channel
869 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
870 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
871} wifi_channel_stats;
872
873/* radio statistics */
874typedef PACKED_PRE struct PACKED_POST
875{
876 wifi_radio radio; // wifi radio (if multiple radio supported)
877 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
878 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
879 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
880 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
881 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
882 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
883 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
884 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
885 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
886 tANI_U32 num_channels; // number of channels
887 wifi_channel_stats channels[1]; // channel statistics
888} wifi_radio_stat;
889
890/* per rate statistics */
891typedef PACKED_PRE struct PACKED_POST
892{
893 wifi_rate rate; // rate information *
894 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
895 tANI_U32 rx_mpdu; // number of received data pkts
896 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
897 tANI_U32 retries; // total number of data pkt retries *
898 tANI_U32 retries_short; // number of short data pkt retries
899 tANI_U32 retries_long; // number of long data pkt retries
900} wifi_rate_stat;
901
902/* access categories */
903typedef enum {
904 WIFI_AC_VO = 0,
905 WIFI_AC_VI = 1,
906 WIFI_AC_BE = 2,
907 WIFI_AC_BK = 3,
908 WIFI_AC_MAX = 4,
909} wifi_traffic_ac;
910
911/* wifi peer type */
912typedef enum
913{
914 WIFI_PEER_STA,
915 WIFI_PEER_AP,
916 WIFI_PEER_P2P_GO,
917 WIFI_PEER_P2P_CLIENT,
918 WIFI_PEER_NAN,
919 WIFI_PEER_TDLS,
920 WIFI_PEER_INVALID,
921} wifi_peer_type;
922
923/* per peer statistics */
924typedef PACKED_PRE struct PACKED_POST
925{
926 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
927 tANI_U8 peer_mac_address[6]; // mac address
928 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
929 tANI_U32 num_rate; // number of rates
930 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
931} wifi_peer_info;
932
933/* per access category statistics */
934typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530935{
936 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
937 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
938 tANI_U32 rx_mpdu; // number of received unicast mpdus
939 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
940 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
941 tANI_U32 rx_mcast; // number of received multicast data packets
942 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
943 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
944 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
945 tANI_U32 retries; // total number of data pkt retries
946 tANI_U32 retries_short; // number of short data pkt retries
947 tANI_U32 retries_long; // number of long data pkt retries
948 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
949 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
950 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
951 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
952} wifi_wmm_ac_stat;
953
954/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
955typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530956{
957 wifi_interface_info info; // current state of the interface
958 tANI_U32 beacon_rx; // access point beacon received count from connected AP
959 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
960 tANI_U32 mgmt_action_rx; // action frames received count
961 tANI_U32 mgmt_action_tx; // action frames transmit count
962 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
963 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
964 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
965 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
966} wifi_iface_stat;
967
968/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
969typedef PACKED_PRE struct PACKED_POST
970{
971 tANI_U32 num_peers; // number of peers
972 wifi_peer_info peer_info[1]; // per peer statistics
973} wifi_peer_stat;
974
975/* wifi statistics bitmap for getting statistics */
976#define WMI_LINK_STATS_RADIO 0x00000001
977#define WMI_LINK_STATS_IFACE 0x00000002
978#define WMI_LINK_STATS_ALL_PEER 0x00000004
979#define WMI_LINK_STATS_PER_PEER 0x00000008
980
981/* wifi statistics bitmap for clearing statistics */
982#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
983#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
984#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
985#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
986#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
987#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
988#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
989#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
990
991
Jeff Johnson295189b2012-06-20 16:38:30 -0700992/*---------------------------------------------------------------------------
993 Message definitons - All the messages below need to be packed
994 ---------------------------------------------------------------------------*/
995
996#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
997#pragma pack(push, 1)
998#elif defined(__ANI_COMPILER_PRAGMA_PACK)
999#pragma pack(1)
1000#else
1001#endif
1002
1003/// Definition for HAL API Version.
1004typedef PACKED_PRE struct PACKED_POST
1005{
1006 tANI_U8 revision;
1007 tANI_U8 version;
1008 tANI_U8 minor;
1009 tANI_U8 major;
1010} tWcnssWlanVersion, *tpWcnssWlanVersion;
1011
1012/// Definition for Encryption Keys
1013typedef PACKED_PRE struct PACKED_POST
1014{
1015 tANI_U8 keyId;
1016 tANI_U8 unicast; // 0 for multicast
1017 tAniKeyDirection keyDirection;
1018 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1019 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1020 tANI_U16 keyLength;
1021 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1022} tSirKeys, *tpSirKeys;
1023
1024
1025//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1026typedef PACKED_PRE struct PACKED_POST
1027{
1028 /*STA Index*/
1029 tANI_U16 staIdx;
1030
1031 /*Encryption Type used with peer*/
1032 tAniEdType encType;
1033
1034 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301035 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001036
1037 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1038 tANI_U8 defWEPIdx;
1039
Jeff Johnson295189b2012-06-20 16:38:30 -07001040 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301041 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1042
Jeff Johnson295189b2012-06-20 16:38:30 -07001043 /*Control for Replay Count, 1= Single TID based replay count on Tx
1044 0 = Per TID based replay count on TX */
1045 tANI_U8 singleTidRc;
1046
1047} tSetStaKeyParams, *tpSetStaKeyParams;
1048
1049
1050
1051/* 4-byte control message header used by HAL*/
1052typedef PACKED_PRE struct PACKED_POST
1053{
Jeff Johnsone7245742012-09-05 17:12:55 -07001054 tHalHostMsgType msgType:16;
1055 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001056 tANI_U32 msgLen;
1057} tHalMsgHeader, *tpHalMsgHeader;
1058
1059/* Config format required by HAL for each CFG item*/
1060typedef PACKED_PRE struct PACKED_POST
1061{
1062 /* Cfg Id. The Id required by HAL is exported by HAL
1063 * in shared header file between UMAC and HAL.*/
1064 tANI_U16 uCfgId;
1065
Dino Mycle8afbac12014-07-04 22:06:17 +05301066 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001067 * in the TLV format.*/
1068 tANI_U16 uCfgLen;
1069
1070 /* Padding bytes for unaligned address's */
1071 tANI_U16 uCfgPadBytes;
1072
1073 /* Reserve bytes for making cfgVal to align address */
1074 tANI_U16 uCfgReserve;
1075
1076 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1077 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1078} tHalCfg, *tpHalCfg;
1079
1080/*---------------------------------------------------------------------------
1081 WLAN_HAL_START_REQ
1082---------------------------------------------------------------------------*/
1083
1084typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1085{
1086 /* Drive Type - Production or FTM etc */
1087 tDriverType driverType;
1088
1089 /*Length of the config buffer*/
1090 tANI_U32 uConfigBufferLen;
1091
Dino Mycle8afbac12014-07-04 22:06:17 +05301092 /* Following this there is a TLV formatted buffer of length
1093 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001094 * The TLV is expected to be formatted like this:
1095 * 0 15 31 31+CFG_LEN-1 length-1
1096 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1097 */
1098} tHalMacStartParameters, *tpHalMacStartParameters;
1099
1100typedef PACKED_PRE struct PACKED_POST
1101{
1102 /* Note: The length specified in tHalMacStartReqMsg messages should be
1103 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1104 tHalMsgHeader header;
1105 tHalMacStartParameters startReqParams;
1106} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1107
1108/*---------------------------------------------------------------------------
1109 WLAN_HAL_START_RSP
1110---------------------------------------------------------------------------*/
1111
1112typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1113{
1114 /*success or failure */
1115 tANI_U16 status;
1116
1117 /*Max number of STA supported by the device*/
1118 tANI_U8 ucMaxStations;
1119
1120 /*Max number of BSS supported by the device*/
1121 tANI_U8 ucMaxBssids;
1122
1123 /*API Version */
1124 tWcnssWlanVersion wcnssWlanVersion;
1125
1126 /*CRM build information */
1127 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1128
1129 /*hardware/chipset/misc version information */
1130 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1131
1132} tHalMacStartRspParams, *tpHalMacStartRspParams;
1133
1134typedef PACKED_PRE struct PACKED_POST
1135{
1136 tHalMsgHeader header;
1137 tHalMacStartRspParams startRspParams;
1138} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1139
1140/*---------------------------------------------------------------------------
1141 WLAN_HAL_STOP_REQ
1142---------------------------------------------------------------------------*/
1143
1144typedef PACKED_PRE struct PACKED_POST
1145{
1146 /*The reason for which the device is being stopped*/
1147 tHalStopType reason;
1148
1149}tHalMacStopReqParams, *tpHalMacStopReqParams;
1150
1151typedef PACKED_PRE struct PACKED_POST
1152{
1153 tHalMsgHeader header;
1154 tHalMacStopReqParams stopReqParams;
1155} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1156
1157/*---------------------------------------------------------------------------
1158 WLAN_HAL_STOP_RSP
1159---------------------------------------------------------------------------*/
1160
1161typedef PACKED_PRE struct PACKED_POST
1162{
1163 /*success or failure */
1164 tANI_U32 status;
1165
1166}tHalMacStopRspParams, *tpHalMacStopRspParams;
1167
1168typedef PACKED_PRE struct PACKED_POST
1169{
1170 tHalMsgHeader header;
1171 tHalMacStopRspParams stopRspParams;
1172} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1173
1174/*---------------------------------------------------------------------------
1175 WLAN_HAL_UPDATE_CFG_REQ
1176---------------------------------------------------------------------------*/
1177
1178typedef PACKED_PRE struct PACKED_POST
1179{
1180 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1181 tANI_U32 uConfigBufferLen;
1182
Dino Mycle8afbac12014-07-04 22:06:17 +05301183 /* Following this there is a TLV formatted buffer of length
1184 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001185 * The TLV is expected to be formatted like this:
1186 * 0 15 31 31+CFG_LEN-1 length-1
1187 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1188 */
1189} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1190
1191typedef PACKED_PRE struct PACKED_POST
1192{
1193 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1194 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1195 tHalMsgHeader header;
1196 tHalUpdateCfgReqParams updateCfgReqParams;
1197} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1198
1199/*---------------------------------------------------------------------------
1200 WLAN_HAL_UPDATE_CFG_RSP
1201---------------------------------------------------------------------------*/
1202
1203typedef PACKED_PRE struct PACKED_POST
1204{
1205 /* success or failure */
1206 tANI_U32 status;
1207
1208}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1209
1210typedef PACKED_PRE struct PACKED_POST
1211{
1212 tHalMsgHeader header;
1213 tHalUpdateCfgRspParams updateCfgRspParams;
1214} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1215
1216/*---------------------------------------------------------------------------
1217 WLAN_HAL_INIT_SCAN_REQ
1218---------------------------------------------------------------------------*/
1219
1220/// Frame control field format (2 bytes)
1221typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1222{
1223
1224#ifndef ANI_LITTLE_BIT_ENDIAN
1225
1226 tANI_U8 subType :4;
1227 tANI_U8 type :2;
1228 tANI_U8 protVer :2;
1229
1230 tANI_U8 order :1;
1231 tANI_U8 wep :1;
1232 tANI_U8 moreData :1;
1233 tANI_U8 powerMgmt :1;
1234 tANI_U8 retry :1;
1235 tANI_U8 moreFrag :1;
1236 tANI_U8 fromDS :1;
1237 tANI_U8 toDS :1;
1238
1239#else
1240
1241 tANI_U8 protVer :2;
1242 tANI_U8 type :2;
1243 tANI_U8 subType :4;
1244
1245 tANI_U8 toDS :1;
1246 tANI_U8 fromDS :1;
1247 tANI_U8 moreFrag :1;
1248 tANI_U8 retry :1;
1249 tANI_U8 powerMgmt :1;
1250 tANI_U8 moreData :1;
1251 tANI_U8 wep :1;
1252 tANI_U8 order :1;
1253
1254#endif
1255
1256} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1257
1258/// Sequence control field
1259typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1260{
1261 tANI_U8 fragNum : 4;
1262 tANI_U8 seqNumLo : 4;
1263 tANI_U8 seqNumHi : 8;
1264} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1265
1266/// Management header format
1267typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1268{
1269 tSirMacFrameCtl fc;
1270 tANI_U8 durationLo;
1271 tANI_U8 durationHi;
1272 tANI_U8 da[6];
1273 tANI_U8 sa[6];
1274 tANI_U8 bssId[6];
1275 tSirMacSeqCtl seqControl;
1276} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1277
1278/// Scan Entry to hold active BSS idx's
1279typedef __ani_attr_pre_packed struct sSirScanEntry
1280{
1281 tANI_U8 bssIdx[HAL_NUM_BSSID];
1282 tANI_U8 activeBSScnt;
1283}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1284
1285typedef PACKED_PRE struct PACKED_POST {
1286
1287 /*LEARN - AP Role
1288 SCAN - STA Role*/
1289 eHalSysMode scanMode;
1290
1291 /*BSSID of the BSS*/
1292 tSirMacAddr bssid;
1293
1294 /*Whether BSS needs to be notified*/
1295 tANI_U8 notifyBss;
1296
1297 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1298 CTS to Self). Must always be a valid frame type.*/
1299 tANI_U8 frameType;
1300
1301 /*UMAC has the option of passing the MAC frame to be used for notifying
1302 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1303 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1304 frameType.*/
1305 tANI_U8 frameLength;
1306
Dino Mycle8afbac12014-07-04 22:06:17 +05301307 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001308 is non-zero. */
1309 tSirMacMgmtHdr macMgmtHdr;
1310
1311 /*Entry to hold number of active BSS idx's*/
1312 tSirScanEntry scanEntry;
1313
1314} tInitScanParams, * tpInitScanParams;
1315
1316typedef PACKED_PRE struct PACKED_POST
1317{
1318 tHalMsgHeader header;
1319 tInitScanParams initScanParams;
1320} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1321
1322typedef PACKED_PRE struct PACKED_POST {
1323
1324 /*LEARN - AP Role
1325 SCAN - STA Role*/
1326 eHalSysMode scanMode;
1327
1328 /*BSSID of the BSS*/
1329 tSirMacAddr bssid;
1330
1331 /*Whether BSS needs to be notified*/
1332 tANI_U8 notifyBss;
1333
1334 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1335 CTS to Self). Must always be a valid frame type.*/
1336 tANI_U8 frameType;
1337
1338 /*UMAC has the option of passing the MAC frame to be used for notifying
1339 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1340 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1341 frameType.*/
1342 tANI_U8 frameLength;
1343
Dino Mycle8afbac12014-07-04 22:06:17 +05301344 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001345 is non-zero. */
1346 tSirMacMgmtHdr macMgmtHdr;
1347
1348 /*Entry to hold number of active BSS idx's*/
1349 tSirScanEntry scanEntry;
1350
1351 /* Single NoA usage in Scanning */
1352 tANI_U8 useNoA;
1353
1354 /* Indicates the scan duration (in ms) */
1355 tANI_U16 scanDuration;
1356
1357} tInitScanConParams, * tpInitScanConParams;
1358
1359typedef PACKED_PRE struct PACKED_POST
1360{
1361 tHalMsgHeader header;
1362 tInitScanConParams initScanParams;
1363} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1364
1365
1366/*---------------------------------------------------------------------------
1367 WLAN_HAL_INIT_SCAN_RSP
1368---------------------------------------------------------------------------*/
1369
1370typedef PACKED_PRE struct PACKED_POST
1371{
1372 /*success or failure */
1373 tANI_U32 status;
1374
1375}tHalInitScanRspParams, *tpHalInitScanRspParams;
1376
1377typedef PACKED_PRE struct PACKED_POST
1378{
1379 tHalMsgHeader header;
1380 tHalInitScanRspParams initScanRspParams;
1381} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1382
1383/*---------------------------------------------------------------------------
1384 WLAN_HAL_START_SCAN_REQ
1385---------------------------------------------------------------------------*/
1386
Dino Mycle8afbac12014-07-04 22:06:17 +05301387typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001388{
1389 /*Indicates the channel to scan*/
1390 tANI_U8 scanChannel;
1391
1392 } tStartScanParams, * tpStartScanParams;
1393
1394typedef PACKED_PRE struct PACKED_POST
1395{
1396 tHalMsgHeader header;
1397 tStartScanParams startScanParams;
1398} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1399
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001400typedef PACKED_PRE struct PACKED_POST
1401{
1402 tHalMsgHeader header;
1403} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1404
Jeff Johnson295189b2012-06-20 16:38:30 -07001405/*---------------------------------------------------------------------------
1406 WLAN_HAL_START_SCAN_RSP
1407---------------------------------------------------------------------------*/
1408
1409typedef PACKED_PRE struct PACKED_POST
1410{
1411 /*success or failure */
1412 tANI_U32 status;
1413
1414 tANI_U32 startTSF[2];
1415 tPowerdBm txMgmtPower;
1416
1417}tHalStartScanRspParams, *tpHalStartScanRspParams;
1418
1419typedef PACKED_PRE struct PACKED_POST
1420{
1421 tHalMsgHeader header;
1422 tHalStartScanRspParams startScanRspParams;
1423} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1424
1425/*---------------------------------------------------------------------------
1426 WLAN_HAL_END_SCAN_REQ
1427---------------------------------------------------------------------------*/
1428
1429typedef PACKED_PRE struct PACKED_POST
1430{
1431 /*Indicates the channel to stop scanning. Not used really. But retained
1432 for symmetry with "start Scan" message. It can also help in error
1433 check if needed.*/
1434 tANI_U8 scanChannel;
1435
1436} tEndScanParams, *tpEndScanParams;
1437
1438typedef PACKED_PRE struct PACKED_POST
1439{
1440 tHalMsgHeader header;
1441 tEndScanParams endScanParams;
1442} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1443
1444/*---------------------------------------------------------------------------
1445 WLAN_HAL_END_SCAN_RSP
1446---------------------------------------------------------------------------*/
1447
1448typedef PACKED_PRE struct PACKED_POST
1449{
1450 /*success or failure */
1451 tANI_U32 status;
1452
1453}tHalEndScanRspParams, *tpHalEndScanRspParams;
1454
1455typedef PACKED_PRE struct PACKED_POST
1456{
1457 tHalMsgHeader header;
1458 tHalEndScanRspParams endScanRspParams;
1459} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1460
1461/*---------------------------------------------------------------------------
1462 WLAN_HAL_FINISH_SCAN_REQ
1463---------------------------------------------------------------------------*/
1464
1465typedef PACKED_PRE struct PACKED_POST
1466{
1467 /* Identifies the operational state of the AP/STA
1468 * LEARN - AP Role SCAN - STA Role */
1469 eHalSysMode scanMode;
1470
1471 /*Operating channel to tune to.*/
1472 tANI_U8 currentOperChannel;
1473
1474 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1475 40 MHz extension channel in combination with the control channel*/
1476 ePhyChanBondState cbState;
1477
1478 /*BSSID of the BSS*/
1479 tSirMacAddr bssid;
1480
1481 /*Whether BSS needs to be notified*/
1482 tANI_U8 notifyBss;
1483
1484 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1485 CTS to Self). Must always be a valid frame type.*/
1486 tANI_U8 frameType;
1487
1488 /*UMAC has the option of passing the MAC frame to be used for notifying
1489 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1490 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1491 frameType.*/
1492 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301493
1494 /*Following the framelength there is a MAC frame buffer if frameLength
1495 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001496 tSirMacMgmtHdr macMgmtHdr;
1497
1498 /*Entry to hold number of active BSS idx's*/
1499 tSirScanEntry scanEntry;
1500
1501} tFinishScanParams, *tpFinishScanParams;
1502
1503typedef PACKED_PRE struct PACKED_POST
1504{
1505 tHalMsgHeader header;
1506 tFinishScanParams finishScanParams;
1507} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1508
1509/*---------------------------------------------------------------------------
1510 WLAN_HAL_FINISH_SCAN_RSP
1511---------------------------------------------------------------------------*/
1512
1513typedef PACKED_PRE struct PACKED_POST
1514{
1515 /*success or failure */
1516 tANI_U32 status;
1517
1518}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1519
1520typedef PACKED_PRE struct PACKED_POST
1521{
1522 tHalMsgHeader header;
1523 tHalFinishScanRspParams finishScanRspParams;
1524} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1525
Srinivas Dasari42584632014-11-26 20:37:19 +05301526typedef PACKED_PRE struct PACKED_POST
1527{
1528 tSetStaKeyParams keyParams;
1529 uint8 pn[6];
1530} tHalEncConfigParams;
1531
1532typedef PACKED_PRE struct PACKED_POST
1533{
1534 uint16 length;
1535 uint8 data[DISA_MAX_PAYLOAD_SIZE];
1536} tHalDisaPayload;
1537
1538typedef PACKED_PRE struct PACKED_POST
1539{
1540#ifdef BYTE_ORDER_BIG_ENDIAN
1541 uint8 reserved1 : 1;
1542 uint8 ackpolicy : 2;
1543 uint8 eosp : 1;
1544 uint8 tid : 4;
1545
1546 uint8 appsbufferstate : 8;
1547#else
1548 uint8 appsbufferstate : 8;
1549
1550 uint8 tid : 4;
1551 uint8 eosp : 1;
1552 uint8 ackpolicy : 2;
1553 uint8 reserved1 : 1;
1554#endif
1555} tHalQosCtrlFieldType;
1556
1557typedef PACKED_PRE struct PACKED_POST
1558 {
1559#ifdef BYTE_ORDER_BIG_ENDIAN
1560 uint16 subtype : 4;
1561 uint16 type : 2;
1562 uint16 protocol : 2;
1563
1564 uint16 order : 1;
1565 uint16 wep : 1;
1566 uint16 moredata : 1;
1567 uint16 pm : 1;
1568 uint16 retry : 1;
1569 uint16 morefrag : 1;
1570 uint16 fromds : 1;
1571 uint16 tods : 1;
1572#else
1573
1574 uint16 tods : 1;
1575 uint16 fromds : 1;
1576 uint16 morefrag : 1;
1577 uint16 retry : 1;
1578 uint16 pm : 1;
1579 uint16 moredata : 1;
1580 uint16 wep : 1;
1581 uint16 order : 1;
1582
1583 uint16 protocol : 2;
1584 uint16 type : 2;
1585 uint16 subtype : 4;
1586#endif
1587} tHalFrmCtrlType;
1588
1589typedef PACKED_PRE struct PACKED_POST
1590{
1591 /* Frame control field */
1592 tHalFrmCtrlType fc;
1593 /* Duration ID */
1594 uint16 usDurationId;
1595 /* Address 1 field */
1596 uint8 vA1[HAL_MAC_ADDR_LEN];
1597 /* Address 2 field */
1598 uint8 vA2[HAL_MAC_ADDR_LEN];
1599 /* Address 3 field */
1600 uint8 vA3[HAL_MAC_ADDR_LEN];
1601 /* Sequence control field */
1602 uint16 seqNum;
1603 /* Optional A4 address */
1604 uint8 optvA4[HAL_MAC_ADDR_LEN];
1605 /* Optional QOS control field */
1606 tHalQosCtrlFieldType usQosCtrl;
1607} tHal80211Header;
1608
1609typedef PACKED_PRE struct PACKED_POST
1610{
1611 tHal80211Header macHeader;
1612 tHalEncConfigParams encParams;
1613 tHalDisaPayload data;
1614} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
1615
1616typedef PACKED_PRE struct PACKED_POST
1617{
1618 tHalMsgHeader header;
1619 tSetEncryptedDataParams encryptedDataParams;
1620} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
1621
1622typedef PACKED_PRE struct PACKED_POST
1623{
1624 tANI_U32 status;
1625 tHalDisaPayload encryptedPayload;
1626} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
1627
1628typedef PACKED_PRE struct PACKED_POST
1629{
1630 tHalMsgHeader header;
1631 tSetEncryptedDataRspParams encryptedDataRspParams;
1632} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
1633
Jeff Johnson295189b2012-06-20 16:38:30 -07001634/*---------------------------------------------------------------------------
1635 WLAN_HAL_CONFIG_STA_REQ
1636---------------------------------------------------------------------------*/
1637
1638typedef PACKED_PRE struct PACKED_POST {
1639 /*
1640 * For Self STA Entry: this represents Self Mode.
1641 * For Peer Stations, this represents the mode of the peer.
1642 * On Station:
1643 * --this mode is updated when PE adds the Self Entry.
1644 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1645 * ON AP:
1646 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1647 * to indicate the self mode of the AP.
1648 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1649 */
1650
1651 tStaRateMode opRateMode;
1652 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1653 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1654 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1655 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1656 tANI_U16 reserved;
1657
1658 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1659 //First 26 bits are reserved for those Titan rates and
1660 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1661 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1662
1663 /*
1664 * 0-76 bits used, remaining reserved
1665 * bits 0-15 and 32 should be set.
1666 */
1667 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1668
1669 /*
1670 * RX Highest Supported Data Rate defines the highest data
1671 * rate that the STA is able to receive, in unites of 1Mbps.
1672 * This value is derived from "Supported MCS Set field" inside
1673 * the HT capability element.
1674 */
1675 tANI_U16 rxHighestDataRate;
1676
1677} tSirSupportedRates, *tpSirSupportedRates;
1678
1679typedef PACKED_PRE struct PACKED_POST
1680{
1681 /*BSSID of STA*/
1682 tSirMacAddr bssId;
1683
1684 /*ASSOC ID, as assigned by UMAC*/
1685 tANI_U16 assocId;
1686
1687 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1688 tANI_U8 staType;
1689
1690 /*Short Preamble Supported.*/
1691 tANI_U8 shortPreambleSupported;
1692
1693 /*MAC Address of STA*/
1694 tSirMacAddr staMac;
1695
1696 /*Listen interval of the STA*/
1697 tANI_U16 listenInterval;
1698
1699 /*Support for 11e/WMM*/
1700 tANI_U8 wmmEnabled;
1701
1702 /*11n HT capable STA*/
1703 tANI_U8 htCapable;
1704
1705 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1706 tANI_U8 txChannelWidthSet;
1707
1708 /*RIFS mode 0 - NA, 1 - Allowed */
1709 tANI_U8 rifsMode;
1710
Dino Mycle8afbac12014-07-04 22:06:17 +05301711 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001712 0 - No Support, 1 - Supported
1713 SG - there is global field */
1714 tANI_U8 lsigTxopProtection;
1715
1716 /*Max Ampdu Size supported by STA. TPE programming.
1717 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1718 tANI_U8 maxAmpduSize;
1719
1720 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1721 tANI_U8 maxAmpduDensity;
1722
1723 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1724 tANI_U8 maxAmsduSize;
1725
1726 /*Short GI support for 40Mhz packets*/
1727 tANI_U8 fShortGI40Mhz;
1728
1729 /*Short GI support for 20Mhz packets*/
1730 tANI_U8 fShortGI20Mhz;
1731
Jeff Johnson295189b2012-06-20 16:38:30 -07001732 /*Robust Management Frame (RMF) enabled/disabled*/
1733 tANI_U8 rmfEnabled;
1734
1735 /* The unicast encryption type in the association */
1736 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001737
1738 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001739 will set this flag in case of RE-ASSOC, where we want to reuse the old
1740 STA ID. 0 = Add, 1 = Update*/
1741 tANI_U8 action;
1742
1743 /*U-APSD Flags: 1b per AC. Encoded as follows:
1744 b7 b6 b5 b4 b3 b2 b1 b0 =
1745 X X X X BE BK VI VO */
1746 tANI_U8 uAPSD;
1747
1748 /*Max SP Length*/
1749 tANI_U8 maxSPLen;
1750
1751 /*11n Green Field preamble support
1752 0 - Not supported, 1 - Supported */
1753 tANI_U8 greenFieldCapable;
1754
1755 /*MIMO Power Save mode*/
1756 tSirMacHTMIMOPowerSaveState mimoPS;
1757
1758 /*Delayed BA Support*/
1759 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001760
Jeff Johnson295189b2012-06-20 16:38:30 -07001761 /*Max AMPDU duration in 32us*/
1762 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001763
Jeff Johnson295189b2012-06-20 16:38:30 -07001764 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1765 it to 0 if AP does not support it. This indication is sent to HAL and
1766 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1767 tANI_U8 fDsssCckMode40Mhz;
1768
1769 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1770 Retained for backward compalibity with existing HAL code*/
1771 tANI_U8 staIdx;
1772
1773 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1774 Retained for backward compalibity with existing HAL code*/
1775 tANI_U8 bssIdx;
1776
1777 tANI_U8 p2pCapableSta;
1778
Jeff Johnsone7245742012-09-05 17:12:55 -07001779 /*Reserved to align next field on a dword boundary*/
1780 tANI_U8 reserved;
1781
1782 /*These rates are the intersection of peer and self capabilities.*/
1783 tSirSupportedRates supportedRates;
1784
Jeff Johnson295189b2012-06-20 16:38:30 -07001785} tConfigStaParams, *tpConfigStaParams;
1786
Jeff Johnsone7245742012-09-05 17:12:55 -07001787/*------------------------------------------------------------------------
1788 * WLAN_HAL_CONFIG_STA_REQ
1789 * ----------------------------------------------------------------------*/
1790
1791typedef PACKED_PRE struct PACKED_POST {
1792 /*
1793 * For Self STA Entry: this represents Self Mode.
1794 * For Peer Stations, this represents the mode of the peer.
1795 * On Station:
1796 * --this mode is updated when PE adds the Self Entry.
1797 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1798 * ON AP:
1799 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1800 * to indicate the self mode of the AP.
1801 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1802 */
1803
1804 tStaRateMode opRateMode;
1805 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1806 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1807 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1808 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1809 tANI_U16 reserved;
1810
1811 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1812 //First 26 bits are reserved for those Titan rates and
1813 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1814 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1815
1816 /*
1817 * 0-76 bits used, remaining reserved
1818 * bits 0-15 and 32 should be set.
1819 */
1820 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1821
1822 /*
1823 * RX Highest Supported Data Rate defines the highest data
1824 * rate that the STA is able to receive, in unites of 1Mbps.
1825 * This value is derived from "Supported MCS Set field" inside
1826 * the HT capability element.
1827 */
1828 tANI_U16 rxHighestDataRate;
1829
1830 /* Indicates the Maximum MCS that can be received for each number
1831 * of spacial streams */
1832 tANI_U16 vhtRxMCSMap;
1833
1834 /*Indicate the highest VHT data rate that the STA is able to receive*/
1835 tANI_U16 vhtRxHighestDataRate;
1836
1837 /* Indicates the Maximum MCS that can be transmitted for each number
1838 * of spacial streams */
1839 tANI_U16 vhtTxMCSMap;
1840
1841 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1842 tANI_U16 vhtTxHighestDataRate;
1843
1844} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1845
1846typedef PACKED_PRE struct PACKED_POST
1847{
1848 /*BSSID of STA*/
1849 tSirMacAddr bssId;
1850
1851 /*ASSOC ID, as assigned by UMAC*/
1852 tANI_U16 assocId;
1853
1854 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1855 tANI_U8 staType;
1856
1857 /*Short Preamble Supported.*/
1858 tANI_U8 shortPreambleSupported;
1859
1860 /*MAC Address of STA*/
1861 tSirMacAddr staMac;
1862
1863 /*Listen interval of the STA*/
1864 tANI_U16 listenInterval;
1865
1866 /*Support for 11e/WMM*/
1867 tANI_U8 wmmEnabled;
1868
1869 /*11n HT capable STA*/
1870 tANI_U8 htCapable;
1871
1872 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1873 tANI_U8 txChannelWidthSet;
1874
1875 /*RIFS mode 0 - NA, 1 - Allowed */
1876 tANI_U8 rifsMode;
1877
1878 /*L-SIG TXOP Protection mechanism
1879 0 - No Support, 1 - Supported
1880 SG - there is global field */
1881 tANI_U8 lsigTxopProtection;
1882
1883 /*Max Ampdu Size supported by STA. TPE programming.
1884 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1885 tANI_U8 maxAmpduSize;
1886
1887 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1888 tANI_U8 maxAmpduDensity;
1889
1890 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1891 tANI_U8 maxAmsduSize;
1892
1893 /*Short GI support for 40Mhz packets*/
1894 tANI_U8 fShortGI40Mhz;
1895
1896 /*Short GI support for 20Mhz packets*/
1897 tANI_U8 fShortGI20Mhz;
1898
1899 /*Robust Management Frame (RMF) enabled/disabled*/
1900 tANI_U8 rmfEnabled;
1901
1902 /* The unicast encryption type in the association */
1903 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301904
1905 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001906 will set this flag in case of RE-ASSOC, where we want to reuse the old
1907 STA ID. 0 = Add, 1 = Update*/
1908 tANI_U8 action;
1909
1910 /*U-APSD Flags: 1b per AC. Encoded as follows:
1911 b7 b6 b5 b4 b3 b2 b1 b0 =
1912 X X X X BE BK VI VO */
1913 tANI_U8 uAPSD;
1914
1915 /*Max SP Length*/
1916 tANI_U8 maxSPLen;
1917
1918 /*11n Green Field preamble support
1919 0 - Not supported, 1 - Supported */
1920 tANI_U8 greenFieldCapable;
1921
1922 /*MIMO Power Save mode*/
1923 tSirMacHTMIMOPowerSaveState mimoPS;
1924
1925 /*Delayed BA Support*/
1926 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05301927
Jeff Johnsone7245742012-09-05 17:12:55 -07001928 /*Max AMPDU duration in 32us*/
1929 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05301930
Jeff Johnsone7245742012-09-05 17:12:55 -07001931 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1932 it to 0 if AP does not support it. This indication is sent to HAL and
1933 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1934 tANI_U8 fDsssCckMode40Mhz;
1935
1936 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1937 Retained for backward compalibity with existing HAL code*/
1938 tANI_U8 staIdx;
1939
1940 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1941 Retained for backward compalibity with existing HAL code*/
1942 tANI_U8 bssIdx;
1943
1944 tANI_U8 p2pCapableSta;
1945
1946 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001947 tANI_U8 htLdpcEnabled:1;
1948 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001949 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05301950 tANI_U8 vhtTxMUBformeeCapable:1;
1951 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001952
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001953 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001954 tSirSupportedRates_V1 supportedRates;
1955
1956 tANI_U8 vhtCapable;
1957 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001958
Jeff Johnsone7245742012-09-05 17:12:55 -07001959} tConfigStaParams_V1, *tpConfigStaParams_V1;
1960
Jeff Johnson295189b2012-06-20 16:38:30 -07001961typedef PACKED_PRE struct PACKED_POST
1962{
1963 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001964 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001965 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001966 tConfigStaParams_V1 configStaParams_V1;
1967 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001968} tConfigStaReqMsg, *tpConfigStaReqMsg;
1969
1970/*---------------------------------------------------------------------------
1971 WLAN_HAL_CONFIG_STA_RSP
1972---------------------------------------------------------------------------*/
1973
1974typedef PACKED_PRE struct PACKED_POST
1975{
1976 /*success or failure */
1977 tANI_U32 status;
1978
1979 /* Station index; valid only when 'status' field value SUCCESS */
1980 tANI_U8 staIdx;
1981
1982 /* BSSID Index of BSS to which the station is associated */
1983 tANI_U8 bssIdx;
1984
1985 /* DPU Index for PTK */
1986 tANI_U8 dpuIndex;
1987
Dino Mycle8afbac12014-07-04 22:06:17 +05301988 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001989 tANI_U8 bcastDpuIndex;
1990
1991 /*DPU Index for IGTK */
1992 tANI_U8 bcastMgmtDpuIdx;
1993
1994 /*PTK DPU signature*/
1995 tANI_U8 ucUcastSig;
1996
1997 /*GTK DPU isignature*/
1998 tANI_U8 ucBcastSig;
1999
2000 /* IGTK DPU signature*/
2001 tANI_U8 ucMgmtSig;
2002
2003 tANI_U8 p2pCapableSta;
2004
2005}tConfigStaRspParams, *tpConfigStaRspParams;
2006
2007typedef PACKED_PRE struct PACKED_POST
2008{
2009 tHalMsgHeader header;
2010 tConfigStaRspParams configStaRspParams;
2011}tConfigStaRspMsg, *tpConfigStaRspMsg;
2012
2013/*---------------------------------------------------------------------------
2014 WLAN_HAL_DELETE_STA_REQ
2015---------------------------------------------------------------------------*/
2016
2017/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302018typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002019{
2020 /* Index of STA to delete */
2021 tANI_U8 staIdx;
2022} tDeleteStaParams, *tpDeleteStaParams;
2023
2024/* Delete STA Request message*/
2025typedef PACKED_PRE struct PACKED_POST
2026{
2027 tHalMsgHeader header;
2028 tDeleteStaParams delStaParams;
2029} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
2030
2031/*---------------------------------------------------------------------------
2032 WLAN_HAL_DELETE_STA_RSP
2033---------------------------------------------------------------------------*/
2034
2035/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05302036typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07002037{
2038 /*success or failure */
2039 tANI_U32 status;
2040
2041 /* Index of STA deleted */
2042 tANI_U8 staId;
2043} tDeleteStaRspParams, *tpDeleteStaRspParams;
2044
2045/* Delete STA Response message*/
2046typedef PACKED_PRE struct PACKED_POST
2047{
2048 tHalMsgHeader header;
2049 tDeleteStaRspParams delStaRspParams;
2050} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
2051
2052/*---------------------------------------------------------------------------
2053 WLAN_HAL_CONFIG_BSS_REQ
2054---------------------------------------------------------------------------*/
2055
2056//12 Bytes long because this structure can be used to represent rate
2057//and extended rate set IEs. The parser assume this to be at least 12
2058typedef __ani_attr_pre_packed struct sSirMacRateSet
2059{
2060 tANI_U8 numRates;
2061 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
2062} __ani_attr_packed tSirMacRateSet;
2063
2064// access category record
2065typedef __ani_attr_pre_packed struct sSirMacAciAifsn
2066{
2067#ifndef ANI_LITTLE_BIT_ENDIAN
2068 tANI_U8 rsvd : 1;
2069 tANI_U8 aci : 2;
2070 tANI_U8 acm : 1;
2071 tANI_U8 aifsn : 4;
2072#else
2073 tANI_U8 aifsn : 4;
2074 tANI_U8 acm : 1;
2075 tANI_U8 aci : 2;
2076 tANI_U8 rsvd : 1;
2077#endif
2078} __ani_attr_packed tSirMacAciAifsn;
2079
2080// contention window size
2081typedef __ani_attr_pre_packed struct sSirMacCW
2082{
2083#ifndef ANI_LITTLE_BIT_ENDIAN
2084 tANI_U8 max : 4;
2085 tANI_U8 min : 4;
2086#else
2087 tANI_U8 min : 4;
2088 tANI_U8 max : 4;
2089#endif
2090} __ani_attr_packed tSirMacCW;
2091
2092typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
2093{
2094 tSirMacAciAifsn aci;
2095 tSirMacCW cw;
2096 tANI_U16 txoplimit;
2097} __ani_attr_packed tSirMacEdcaParamRecord;
2098
2099typedef __ani_attr_pre_packed struct sSirMacSSid
2100{
2101 tANI_U8 length;
2102 tANI_U8 ssId[32];
2103} __ani_attr_packed tSirMacSSid;
2104
2105// Concurrency role. These are generic IDs that identify the various roles
2106// in the software system.
2107typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05302108 HAL_STA_MODE=0,
2109 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07002110 HAL_P2P_CLIENT_MODE,
2111 HAL_P2P_GO_MODE,
2112 HAL_MONITOR_MODE,
2113} tHalConMode;
2114
2115//This is a bit pattern to be set for each mode
2116//bit 0 - sta mode
2117//bit 1 - ap mode
2118//bit 2 - p2p client mode
2119//bit 3 - p2p go mode
2120typedef enum
2121{
Dino Mycle8afbac12014-07-04 22:06:17 +05302122 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002123 HAL_SAP=2,
2124 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2125 HAL_P2P_CLIENT=4,
2126 HAL_P2P_GO=8,
2127 HAL_MAX_CONCURRENCY_PERSONA=4
2128} tHalConcurrencyMode;
2129
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002130// IFACE PERSONA for different Operating modes
2131typedef enum
2132{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002133 HAL_IFACE_UNKNOWN=0,
2134 HAL_IFACE_STA_MODE=1,
2135 HAL_IFACE_P2P_MODE=2,
2136 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002137} tHalIfacePersona;
2138
Jeff Johnson295189b2012-06-20 16:38:30 -07002139typedef PACKED_PRE struct PACKED_POST
2140{
2141 /* BSSID */
2142 tSirMacAddr bssId;
2143
Jeff Johnson295189b2012-06-20 16:38:30 -07002144 /* Self Mac Address */
2145 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002146
2147 /* BSS type */
2148 tSirBssType bssType;
2149
2150 /*Operational Mode: AP =0, STA = 1*/
2151 tANI_U8 operMode;
2152
2153 /*Network Type*/
2154 tSirNwType nwType;
2155
2156 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2157 tANI_U8 shortSlotTimeSupported;
2158
2159 /*Co-exist with 11a STA*/
2160 tANI_U8 llaCoexist;
2161
2162 /*Co-exist with 11b STA*/
2163 tANI_U8 llbCoexist;
2164
2165 /*Co-exist with 11g STA*/
2166 tANI_U8 llgCoexist;
2167
2168 /*Coexistence with 11n STA*/
2169 tANI_U8 ht20Coexist;
2170
2171 /*Non GF coexist flag*/
2172 tANI_U8 llnNonGFCoexist;
2173
2174 /*TXOP protection support*/
2175 tANI_U8 fLsigTXOPProtectionFullSupport;
2176
2177 /*RIFS mode*/
2178 tANI_U8 fRIFSMode;
2179
2180 /*Beacon Interval in TU*/
2181 tSirMacBeaconInterval beaconInterval;
2182
2183 /*DTIM period*/
2184 tANI_U8 dtimPeriod;
2185
2186 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2187 tANI_U8 txChannelWidthSet;
2188
2189 /*Operating channel*/
2190 tANI_U8 currentOperChannel;
2191
2192 /*Extension channel for channel bonding*/
2193 tANI_U8 currentExtChannel;
2194
2195 /*Reserved to align next field on a dword boundary*/
2196 tANI_U8 reserved;
2197
Jeff Johnsone7245742012-09-05 17:12:55 -07002198 /*SSID of the BSS*/
2199 tSirMacSSid ssId;
2200
2201 /*HAL should update the existing BSS entry, if this flag is set.
2202 UMAC will set this flag in case of reassoc, where we want to resue the
2203 the old BSSID and still return success 0 = Add, 1 = Update*/
2204 tANI_U8 action;
2205
2206 /* MAC Rate Set */
2207 tSirMacRateSet rateSet;
2208
2209 /*Enable/Disable HT capabilities of the BSS*/
2210 tANI_U8 htCapable;
2211
2212 // Enable/Disable OBSS protection
2213 tANI_U8 obssProtEnabled;
2214
2215 /*RMF enabled/disabled*/
2216 tANI_U8 rmfEnabled;
2217
2218 /*HT Operating Mode operating mode of the 802.11n STA*/
2219 tSirMacHTOperatingMode htOperMode;
2220
2221 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2222 tANI_U8 dualCTSProtection;
2223
2224 /* Probe Response Max retries */
2225 tANI_U8 ucMaxProbeRespRetryLimit;
2226
2227 /* To Enable Hidden ssid */
2228 tANI_U8 bHiddenSSIDEn;
2229
2230 /* To Enable Disable FW Proxy Probe Resp */
2231 tANI_U8 bProxyProbeRespEn;
2232
2233 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2234 EDCA params or might not desire to apply EDCA params during config BSS.
2235 0 implies Not Valid ; Non-Zero implies valid*/
2236 tANI_U8 edcaParamsValid;
2237
2238 /*EDCA Parameters for Best Effort Access Category*/
2239 tSirMacEdcaParamRecord acbe;
2240
2241 /*EDCA Parameters forBackground Access Category*/
2242 tSirMacEdcaParamRecord acbk;
2243
2244 /*EDCA Parameters for Video Access Category*/
2245 tSirMacEdcaParamRecord acvi;
2246
2247 /*EDCA Parameters for Voice Access Category*/
2248 tSirMacEdcaParamRecord acvo;
2249
2250#ifdef WLAN_FEATURE_VOWIFI_11R
2251 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2252 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2253#endif
2254
2255 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2256 tANI_U8 halPersona;
2257
2258 tANI_U8 bSpectrumMgtEnable;
2259
2260 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2261 tANI_S8 txMgmtPower;
2262 /*maxTxPower has max power to be used after applying the power constraint if any */
2263 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002264 /*Context of the station being added in HW
2265 Add a STA entry for "itself" -
2266 On AP - Add the AP itself in an "STA context"
2267 On STA - Add the AP to which this STA is joining in an "STA context" */
2268 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002269} tConfigBssParams, * tpConfigBssParams;
2270
2271
2272/*--------------------------------------------------------------------------
2273 * WLAN_HAL_CONFIG_BSS_REQ
2274 *--------------------------------------------------------------------------*/
2275typedef PACKED_PRE struct PACKED_POST
2276{
2277 /* BSSID */
2278 tSirMacAddr bssId;
2279
Jeff Johnsone7245742012-09-05 17:12:55 -07002280 /* Self Mac Address */
2281 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002282
2283 /* BSS type */
2284 tSirBssType bssType;
2285
2286 /*Operational Mode: AP =0, STA = 1*/
2287 tANI_U8 operMode;
2288
2289 /*Network Type*/
2290 tSirNwType nwType;
2291
2292 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2293 tANI_U8 shortSlotTimeSupported;
2294
2295 /*Co-exist with 11a STA*/
2296 tANI_U8 llaCoexist;
2297
2298 /*Co-exist with 11b STA*/
2299 tANI_U8 llbCoexist;
2300
2301 /*Co-exist with 11g STA*/
2302 tANI_U8 llgCoexist;
2303
2304 /*Coexistence with 11n STA*/
2305 tANI_U8 ht20Coexist;
2306
2307 /*Non GF coexist flag*/
2308 tANI_U8 llnNonGFCoexist;
2309
2310 /*TXOP protection support*/
2311 tANI_U8 fLsigTXOPProtectionFullSupport;
2312 /*RIFS mode*/
2313 tANI_U8 fRIFSMode;
2314
2315 /*Beacon Interval in TU*/
2316 tSirMacBeaconInterval beaconInterval;
2317
2318 /*DTIM period*/
2319 tANI_U8 dtimPeriod;
2320
2321 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2322 tANI_U8 txChannelWidthSet;
2323
2324 /*Operating channel*/
2325 tANI_U8 currentOperChannel;
2326
2327 /*Extension channel for channel bonding*/
2328 tANI_U8 currentExtChannel;
2329
2330 /*Reserved to align next field on a dword boundary*/
2331 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002332
2333 /*SSID of the BSS*/
2334 tSirMacSSid ssId;
2335
2336 /*HAL should update the existing BSS entry, if this flag is set.
2337 UMAC will set this flag in case of reassoc, where we want to resue the
2338 the old BSSID and still return success 0 = Add, 1 = Update*/
2339 tANI_U8 action;
2340
2341 /* MAC Rate Set */
2342 tSirMacRateSet rateSet;
2343
2344 /*Enable/Disable HT capabilities of the BSS*/
2345 tANI_U8 htCapable;
2346
2347 // Enable/Disable OBSS protection
2348 tANI_U8 obssProtEnabled;
2349
2350 /*RMF enabled/disabled*/
2351 tANI_U8 rmfEnabled;
2352
2353 /*HT Operating Mode operating mode of the 802.11n STA*/
2354 tSirMacHTOperatingMode htOperMode;
2355
2356 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2357 tANI_U8 dualCTSProtection;
2358
2359 /* Probe Response Max retries */
2360 tANI_U8 ucMaxProbeRespRetryLimit;
2361
2362 /* To Enable Hidden ssid */
2363 tANI_U8 bHiddenSSIDEn;
2364
2365 /* To Enable Disable FW Proxy Probe Resp */
2366 tANI_U8 bProxyProbeRespEn;
2367
Dino Mycle8afbac12014-07-04 22:06:17 +05302368 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2369 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002370 0 implies Not Valid ; Non-Zero implies valid*/
2371 tANI_U8 edcaParamsValid;
2372
2373 /*EDCA Parameters for Best Effort Access Category*/
2374 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302375
Jeff Johnson295189b2012-06-20 16:38:30 -07002376 /*EDCA Parameters forBackground Access Category*/
2377 tSirMacEdcaParamRecord acbk;
2378
2379 /*EDCA Parameters for Video Access Category*/
2380 tSirMacEdcaParamRecord acvi;
2381
2382 /*EDCA Parameters for Voice Access Category*/
2383 tSirMacEdcaParamRecord acvo;
2384
2385#ifdef WLAN_FEATURE_VOWIFI_11R
2386 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2387 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2388#endif
2389
Dino Mycle8afbac12014-07-04 22:06:17 +05302390 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002391 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302392
Jeff Johnson295189b2012-06-20 16:38:30 -07002393 tANI_U8 bSpectrumMgtEnable;
2394
2395 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2396 tANI_S8 txMgmtPower;
2397 /*maxTxPower has max power to be used after applying the power constraint if any */
2398 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002399 /*Context of the station being added in HW
2400 Add a STA entry for "itself" -
2401 On AP - Add the AP itself in an "STA context"
2402 On STA - Add the AP to which this STA is joining in an "STA context" */
2403 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302404
Jeff Johnsone7245742012-09-05 17:12:55 -07002405 tANI_U8 vhtCapable;
2406 tANI_U8 vhtTxChannelWidthSet;
2407} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002408
2409typedef PACKED_PRE struct PACKED_POST
2410{
2411 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002412 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002413 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002414 tConfigBssParams_V1 configBssParams_V1;
2415 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002416} tConfigBssReqMsg, *tpConfigBssReqMsg;
2417
2418/*---------------------------------------------------------------------------
2419 WLAN_HAL_CONFIG_BSS_RSP
2420---------------------------------------------------------------------------*/
2421
2422typedef PACKED_PRE struct PACKED_POST
2423{
2424 /* Success or Failure */
2425 tANI_U32 status;
2426
2427 /* BSS index allocated by HAL */
2428 tANI_U8 bssIdx;
2429
2430 /* DPU descriptor index for PTK */
2431 tANI_U8 dpuDescIndx;
2432
2433 /* PTK DPU signature */
2434 tANI_U8 ucastDpuSignature;
2435
2436 /* DPU descriptor index for GTK*/
2437 tANI_U8 bcastDpuDescIndx;
2438
2439 /* GTK DPU signature */
2440 tANI_U8 bcastDpuSignature;
2441
2442 /*DPU descriptor for IGTK*/
2443 tANI_U8 mgmtDpuDescIndx;
2444
2445 /* IGTK DPU signature */
2446 tANI_U8 mgmtDpuSignature;
2447
2448 /* Station Index for BSS entry*/
2449 tANI_U8 bssStaIdx;
2450
2451 /* Self station index for this BSS */
2452 tANI_U8 bssSelfStaIdx;
2453
2454 /* Bcast station for buffering bcast frames in AP role */
2455 tANI_U8 bssBcastStaIdx;
2456
2457 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2458 tSirMacAddr staMac;
2459
2460 /*HAL fills in the tx power used for mgmt frames in this field. */
2461 tANI_S8 txMgmtPower;
2462
2463} tConfigBssRspParams, * tpConfigBssRspParams;
2464
2465typedef PACKED_PRE struct PACKED_POST
2466{
2467 tHalMsgHeader header;
2468 tConfigBssRspParams configBssRspParams;
2469} tConfigBssRspMsg, *tpConfigBssRspMsg;
2470
2471/*---------------------------------------------------------------------------
2472 WLAN_HAL_DELETE_BSS_REQ
2473---------------------------------------------------------------------------*/
2474
2475typedef PACKED_PRE struct PACKED_POST
2476{
2477 /* BSS index to be deleted */
2478 tANI_U8 bssIdx;
2479
2480} tDeleteBssParams, *tpDeleteBssParams;
2481
2482typedef PACKED_PRE struct PACKED_POST
2483{
2484 tHalMsgHeader header;
2485 tDeleteBssParams deleteBssParams;
2486} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2487
2488/*---------------------------------------------------------------------------
2489 WLAN_HAL_DELETE_BSS_RSP
2490---------------------------------------------------------------------------*/
2491
2492typedef PACKED_PRE struct PACKED_POST
2493{
2494 /* Success or Failure */
2495 tANI_U32 status;
2496
2497 /* BSS index that has been deleted */
2498 tANI_U8 bssIdx;
2499
2500} tDeleteBssRspParams, *tpDeleteBssRspParams;
2501
2502typedef PACKED_PRE struct PACKED_POST
2503{
2504 tHalMsgHeader header;
2505 tDeleteBssRspParams deleteBssRspParams;
2506} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2507
2508/*---------------------------------------------------------------------------
2509 WLAN_HAL_JOIN_REQ
2510---------------------------------------------------------------------------*/
2511
2512typedef PACKED_PRE struct PACKED_POST
2513{
2514 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302515 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002516
2517 /*Indicates the channel to switch to.*/
2518 tANI_U8 ucChannel;
2519
2520 /* Self STA MAC */
2521 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302522
Jeff Johnson295189b2012-06-20 16:38:30 -07002523 /*Local power constraint*/
2524 tANI_U8 ucLocalPowerConstraint;
2525
2526 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002527 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002528
2529 /*link State*/
2530 tSirLinkState linkState;
2531
2532 /* Max TX power */
2533 tANI_S8 maxTxPower;
2534
2535} tHalJoinReqParams, *tpHalJoinReqParams;
2536
2537typedef PACKED_PRE struct PACKED_POST
2538{
2539 tHalMsgHeader header;
2540 tHalJoinReqParams joinReqParams;
2541} tHalJoinReqMsg, *tpHalJoinReqMsg;
2542
2543/*---------------------------------------------------------------------------
2544 WLAN_HAL_JOIN_RSP
2545---------------------------------------------------------------------------*/
2546
2547typedef PACKED_PRE struct PACKED_POST
2548{
2549 /*success or failure */
2550 tANI_U32 status;
2551
2552 /* HAL fills in the tx power used for mgmt frames in this field */
2553 tPowerdBm txMgmtPower;
2554
2555}tHalJoinRspParams, *tpHalJoinRspParams;
2556
2557typedef PACKED_PRE struct PACKED_POST
2558{
2559 tHalMsgHeader header;
2560 tHalJoinRspParams joinRspParams;
2561}tHalJoinRspMsg, *tpHalJoinRspMsg;
2562
2563/*---------------------------------------------------------------------------
2564 WLAN_HAL_POST_ASSOC_REQ
2565---------------------------------------------------------------------------*/
2566
2567typedef PACKED_PRE struct PACKED_POST
2568{
2569 tConfigStaParams configStaParams;
2570 tConfigBssParams configBssParams;
2571} tPostAssocReqParams, *tpPostAssocReqParams;
2572
2573typedef PACKED_PRE struct PACKED_POST
2574{
2575 tHalMsgHeader header;
2576 tPostAssocReqParams postAssocReqParams;
2577} tPostAssocReqMsg, *tpPostAssocReqMsg;
2578
2579/*---------------------------------------------------------------------------
2580 WLAN_HAL_POST_ASSOC_RSP
2581---------------------------------------------------------------------------*/
2582
2583typedef PACKED_PRE struct PACKED_POST
2584{
2585 tConfigStaRspParams configStaRspParams;
2586 tConfigBssRspParams configBssRspParams;
2587} tPostAssocRspParams, *tpPostAssocRspParams;
2588
2589typedef PACKED_PRE struct PACKED_POST
2590{
2591 tHalMsgHeader header;
2592 tPostAssocRspParams postAssocRspParams;
2593} tPostAssocRspMsg, *tpPostAssocRspMsg;
2594
2595/*---------------------------------------------------------------------------
2596 WLAN_HAL_SET_BSSKEY_REQ
2597---------------------------------------------------------------------------*/
2598
2599/*
2600 * This is used by PE to create a set of WEP keys for a given BSS.
2601 */
2602typedef PACKED_PRE struct PACKED_POST
2603{
2604 /*BSS Index of the BSS*/
2605 tANI_U8 bssIdx;
2606
2607 /*Encryption Type used with peer*/
2608 tAniEdType encType;
2609
2610 /*Number of keys*/
2611 tANI_U8 numKeys;
2612
2613 /*Array of keys.*/
2614 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302615
Jeff Johnson295189b2012-06-20 16:38:30 -07002616 /*Control for Replay Count, 1= Single TID based replay count on Tx
2617 0 = Per TID based replay count on TX */
2618 tANI_U8 singleTidRc;
2619} tSetBssKeyParams, *tpSetBssKeyParams;
2620
2621typedef PACKED_PRE struct PACKED_POST
2622{
2623 tHalMsgHeader header;
2624 tSetBssKeyParams setBssKeyParams;
2625} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2626
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002627/* tagged version of set bss key */
2628typedef PACKED_PRE struct PACKED_POST
2629{
2630 tSetBssKeyReqMsg Msg;
2631 uint32 Tag;
2632} tSetBssKeyReqMsgTagged;
2633
Jeff Johnson295189b2012-06-20 16:38:30 -07002634/*---------------------------------------------------------------------------
2635 WLAN_HAL_SET_BSSKEY_RSP
2636---------------------------------------------------------------------------*/
2637typedef PACKED_PRE struct PACKED_POST
2638{
2639 /*success or failure */
2640 tANI_U32 status;
2641
2642} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2643
2644typedef PACKED_PRE struct PACKED_POST
2645{
2646 tHalMsgHeader header;
2647 tSetBssKeyRspParams setBssKeyRspParams;
2648} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2649
2650/*---------------------------------------------------------------------------
2651 WLAN_HAL_SET_STAKEY_REQ,
2652---------------------------------------------------------------------------*/
2653
2654/*
2655 * This is used by PE to configure the key information on a given station.
2656 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2657 * a preconfigured key from a BSS the station assoicated with; otherwise
2658 * a new key descriptor is created based on the key field.
2659 */
2660
2661typedef PACKED_PRE struct PACKED_POST
2662{
2663 tHalMsgHeader header;
2664 tSetStaKeyParams setStaKeyParams;
2665} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2666
2667/*---------------------------------------------------------------------------
2668 WLAN_HAL_SET_STAKEY_RSP,
2669---------------------------------------------------------------------------*/
2670typedef PACKED_PRE struct PACKED_POST
2671{
2672 /*success or failure */
2673 tANI_U32 status;
2674
2675} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2676
2677typedef PACKED_PRE struct PACKED_POST
2678{
2679 tHalMsgHeader header;
2680 tSetStaKeyRspParams setStaKeyRspParams;
2681} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2682
2683/*---------------------------------------------------------------------------
2684 WLAN_HAL_RMV_BSSKEY_REQ,
2685---------------------------------------------------------------------------*/
2686/*
2687 * This is used by PE to remove keys for a given BSS.
2688 */
2689typedef PACKED_PRE struct PACKED_POST
2690
2691{
2692 /*BSS Index of the BSS*/
2693 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302694
Jeff Johnson295189b2012-06-20 16:38:30 -07002695 /*Encryption Type used with peer*/
2696 tAniEdType encType;
2697
2698 /*Key Id*/
2699 tANI_U8 keyId;
2700
2701 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2702 tAniWepType wepType;
2703
2704} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2705
2706typedef PACKED_PRE struct PACKED_POST
2707{
2708 tHalMsgHeader header;
2709 tRemoveBssKeyParams removeBssKeyParams;
2710} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2711
2712/*---------------------------------------------------------------------------
2713 WLAN_HAL_RMV_BSSKEY_RSP,
2714---------------------------------------------------------------------------*/
2715typedef PACKED_PRE struct PACKED_POST
2716{
2717 /*success or failure */
2718 tANI_U32 status;
2719
2720} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2721
2722typedef PACKED_PRE struct PACKED_POST
2723{
2724 tHalMsgHeader header;
2725 tRemoveBssKeyRspParams removeBssKeyRspParams;
2726} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2727
2728/*---------------------------------------------------------------------------
2729 WLAN_HAL_RMV_STAKEY_REQ,
2730---------------------------------------------------------------------------*/
2731/*
2732 * This is used by PE to Remove the key information on a given station.
2733 */
2734typedef PACKED_PRE struct PACKED_POST
2735{
2736 /*STA Index*/
2737 tANI_U16 staIdx;
2738
2739 /*Encryption Type used with peer*/
2740 tAniEdType encType;
2741
2742 /*Key Id*/
2743 tANI_U8 keyId;
2744
2745 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2746 the same key is used for both broadcast and unicast.*/
2747 tANI_BOOLEAN unicast;
2748
2749} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2750
2751typedef PACKED_PRE struct PACKED_POST
2752{
2753 tHalMsgHeader header;
2754 tRemoveStaKeyParams removeStaKeyParams;
2755} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2756
2757/*---------------------------------------------------------------------------
2758 WLAN_HAL_RMV_STAKEY_RSP,
2759---------------------------------------------------------------------------*/
2760typedef PACKED_PRE struct PACKED_POST
2761{
2762 /*success or failure */
2763 tANI_U32 status;
2764} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2765
2766typedef PACKED_PRE struct PACKED_POST
2767{
2768 tHalMsgHeader header;
2769 tRemoveStaKeyRspParams removeStaKeyRspParams;
2770} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2771
Jeff Johnsone7245742012-09-05 17:12:55 -07002772#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002773
Jeff Johnsone7245742012-09-05 17:12:55 -07002774#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002775#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002776#endif
2777
2778#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002779#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002780#endif
2781
2782/*-------------------------------------------------------------------------
2783WLAN_HAL_START_OEM_DATA_REQ
2784--------------------------------------------------------------------------*/
2785typedef PACKED_PRE struct PACKED_POST
2786{
2787 tANI_U32 status;
2788 tSirMacAddr selfMacAddr;
2789 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2790} tStartOemDataReqParams, *tpStartOemDataReqParams;
2791
2792typedef PACKED_PRE struct PACKED_POST
2793{
2794 tHalMsgHeader header;
2795 tStartOemDataReqParams startOemDataReqParams;
2796} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2797
2798/*-------------------------------------------------------------------------
2799WLAN_HAL_START_OEM_DATA_RSP
2800--------------------------------------------------------------------------*/
2801
2802typedef PACKED_PRE struct PACKED_POST
2803{
2804 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2805} tStartOemDataRspParams, *tpStartOemDataRspParams;
2806
2807typedef PACKED_PRE struct PACKED_POST
2808{
2809 tHalMsgHeader header;
2810 tStartOemDataRspParams startOemDataRspParams;
2811} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2812
2813#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002814
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002815/*---------------------------------------------------------------------------
2816WLAN_HAL_CH_SWITCH_V1_REQ
2817---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002818
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002819typedef PACKED_PRE struct PACKED_POST
2820{
2821 /* Channel number */
2822 tANI_U8 channelNumber;
2823
2824 /* Local power constraint */
2825 tANI_U8 localPowerConstraint;
2826
2827 /*Secondary channel offset */
2828 ePhyChanBondState secondaryChannelOffset;
2829
2830 //HAL fills in the tx power used for mgmt frames in this field.
2831 tPowerdBm txMgmtPower;
2832
2833 /* Max TX power */
2834 tPowerdBm maxTxPower;
2835
2836 /* Self STA MAC */
2837 tSirMacAddr selfStaMacAddr;
2838
2839 /*VO WIFI comment: BSSID needed to identify session. As the request has
2840 * power constraints, this should be applied only to that session
2841 * Since MTU timing and EDCA are sessionized, this struct needs to be
2842 * sessionized and bssid needs to be out of the VOWifi feature flag
2843 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002844 * mantain backward compatbility
2845 * by way of ignoring if using new host/old FW or old host/new FW since
2846 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002847 */
2848 tSirMacAddr bssId;
2849
2850 /* Source of Channel Switch */
2851 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002852
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002853} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2854
2855typedef PACKED_PRE struct PACKED_POST
2856{
2857 tHalMsgHeader header;
2858 tSwitchChannelParams_V1 switchChannelParams_V1;
2859} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2860
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002861/*---------------------------------------------------------------------------
2862WLAN_HAL_CH_SWITCH_V1_RSP
2863---------------------------------------------------------------------------*/
2864
2865typedef PACKED_PRE struct PACKED_POST
2866{
2867 /* Status */
2868 tANI_U32 status;
2869
2870 /* Channel number - same as in request*/
2871 tANI_U8 channelNumber;
2872
2873 /* HAL fills in the tx power used for mgmt frames in this field */
2874 tPowerdBm txMgmtPower;
2875
2876 /* BSSID needed to identify session - same as in request*/
2877 tSirMacAddr bssId;
2878
2879 /* Source of Channel Switch */
2880 eHalChanSwitchSource channelSwitchSrc;
2881
2882} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2883
2884typedef PACKED_PRE struct PACKED_POST
2885{
2886 tHalMsgHeader header;
2887 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2888} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002889
2890/*---------------------------------------------------------------------------
2891WLAN_HAL_CH_SWITCH_REQ
2892---------------------------------------------------------------------------*/
2893
2894typedef PACKED_PRE struct PACKED_POST
2895{
2896 /* Channel number */
2897 tANI_U8 channelNumber;
2898
2899 /* Local power constraint */
2900 tANI_U8 localPowerConstraint;
2901
2902 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002903 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002904
2905 //HAL fills in the tx power used for mgmt frames in this field.
2906 tPowerdBm txMgmtPower;
2907
2908 /* Max TX power */
2909 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302910
Jeff Johnson295189b2012-06-20 16:38:30 -07002911 /* Self STA MAC */
2912 tSirMacAddr selfStaMacAddr;
2913
2914 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2915 this should be applied only to that session*/
2916 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2917 * bssid needs to be out of the VOWifi feature flag */
2918 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2919 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2920 */
2921 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302922
Jeff Johnson295189b2012-06-20 16:38:30 -07002923}tSwitchChannelParams, *tpSwitchChannelParams;
2924
2925typedef PACKED_PRE struct PACKED_POST
2926{
2927 tHalMsgHeader header;
2928 tSwitchChannelParams switchChannelParams;
2929} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2930
2931/*---------------------------------------------------------------------------
2932WLAN_HAL_CH_SWITCH_RSP
2933---------------------------------------------------------------------------*/
2934
2935typedef PACKED_PRE struct PACKED_POST
2936{
2937 /* Status */
2938 tANI_U32 status;
2939
2940 /* Channel number - same as in request*/
2941 tANI_U8 channelNumber;
2942
2943 /* HAL fills in the tx power used for mgmt frames in this field */
2944 tPowerdBm txMgmtPower;
2945
2946 /* BSSID needed to identify session - same as in request*/
2947 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302948
Jeff Johnson295189b2012-06-20 16:38:30 -07002949}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2950
2951typedef PACKED_PRE struct PACKED_POST
2952{
2953 tHalMsgHeader header;
2954 tSwitchChannelRspParams switchChannelRspParams;
2955} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2956
2957/*---------------------------------------------------------------------------
2958WLAN_HAL_UPD_EDCA_PARAMS_REQ
2959---------------------------------------------------------------------------*/
2960
2961typedef PACKED_PRE struct PACKED_POST
2962{
2963 /*BSS Index*/
2964 tANI_U16 bssIdx;
2965
2966 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05302967 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002968
2969 /* Background */
2970 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05302971
Jeff Johnson295189b2012-06-20 16:38:30 -07002972 /* Video */
2973 tSirMacEdcaParamRecord acvi;
2974
2975 /* Voice */
2976 tSirMacEdcaParamRecord acvo;
2977
2978} tEdcaParams, *tpEdcaParams;
2979
2980typedef PACKED_PRE struct PACKED_POST
2981{
2982 tHalMsgHeader header;
2983 tEdcaParams edcaParams;
2984} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2985
2986/*---------------------------------------------------------------------------
2987WLAN_HAL_UPD_EDCA_PARAMS_RSP
2988---------------------------------------------------------------------------*/
2989typedef PACKED_PRE struct PACKED_POST
2990{
2991 /*success or failure */
2992 tANI_U32 status;
2993} tEdcaRspParams, *tpEdcaRspParams;
2994
2995typedef PACKED_PRE struct PACKED_POST
2996{
2997 tHalMsgHeader header;
2998 tEdcaRspParams edcaRspParams;
2999} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
3000
3001
3002
3003/*---------------------------------------------------------------------------
3004 * WLAN_HAL_GET_STATS_REQ
3005 *--------------------------------------------------------------------------*/
3006typedef PACKED_PRE struct PACKED_POST
3007
3008{
3009 /* Index of STA to which the statistics */
3010 tANI_U16 staIdx;
3011
3012 /* Encryption mode */
3013 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05303014
Jeff Johnson295189b2012-06-20 16:38:30 -07003015 /* status */
3016 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05303017
Jeff Johnson295189b2012-06-20 16:38:30 -07003018 /* Statistics */
3019 tANI_U32 sendBlocks;
3020 tANI_U32 recvBlocks;
3021 tANI_U32 replays;
3022 tANI_U8 micErrorCnt;
3023 tANI_U32 protExclCnt;
3024 tANI_U16 formatErrCnt;
3025 tANI_U16 unDecryptableCnt;
3026 tANI_U32 decryptErrCnt;
3027 tANI_U32 decryptOkCnt;
3028} tDpuStatsParams, * tpDpuStatsParams;
3029
3030typedef PACKED_PRE struct PACKED_POST
3031{
3032 /* Valid STA Idx for per STA stats request */
3033 tANI_U32 staId;
3034
3035 /* Categories of stats requested as specified in eHalStatsMask*/
3036 tANI_U32 statsMask;
3037}tHalStatsReqParams, *tpHalStatsReqParams;
3038
3039typedef PACKED_PRE struct PACKED_POST
3040{
3041 tHalMsgHeader header;
3042 tHalStatsReqParams statsReqParams;
3043} tHalStatsReqMsg, *tpHalStatsReqMsg;
3044
3045/*---------------------------------------------------------------------------
3046 * WLAN_HAL_GET_STATS_RSP
3047 *--------------------------------------------------------------------------*/
3048
3049typedef PACKED_PRE struct PACKED_POST
3050{
3051 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
3052 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
3053 // station successfully transmitted after more than one retransmission attempt
3054
Dino Mycle8afbac12014-07-04 22:06:17 +05303055 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
3056 //(with and without retries, including multi-cast, broadcast)
3057 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
3058 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07003059 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
3060 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
3061 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
3062 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 +05303063 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
3064 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 -07003065 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
3066 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 +05303067 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
3068 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07003069 //to provide this.
3070}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
3071
3072
3073// defines tx_rate_flags
3074typedef enum eTxRateInfo
3075{
3076 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
3077 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
3078 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
3079 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07003080 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
3081 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
3082 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
3083 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
3084 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
3085 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
3086} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07003087
3088
3089typedef PACKED_PRE struct PACKED_POST
3090{
Dino Mycle8afbac12014-07-04 22:06:17 +05303091 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 -07003092 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05303093 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 -07003094 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303095 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
3096 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07003097 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05303098 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
3099 //for eg: if it is 10.5dBm, the value would be 105
3100 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
3101 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07003102
Dino Mycle8afbac12014-07-04 22:06:17 +05303103 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
3104 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07003105 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05303106 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
3107 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07003108}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
3109
3110typedef PACKED_PRE struct PACKED_POST
3111{
Dino Mycle8afbac12014-07-04 22:06:17 +05303112 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
3113 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07003114 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05303115 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 -07003116 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303117 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 -07003118 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303119 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 -07003120 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303121 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 -07003122 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303123 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 -07003124 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303125 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 -07003126 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303127 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 -07003128 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303129 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 -07003130 //decrypted
3131 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3132
3133}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303134
Jeff Johnson295189b2012-06-20 16:38:30 -07003135typedef PACKED_PRE struct PACKED_POST
3136{
3137 tAniGlobalSecurityStats ucStats;
3138 tAniGlobalSecurityStats mcbcStats;
3139}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3140
3141typedef PACKED_PRE struct PACKED_POST
3142{
Dino Mycle8afbac12014-07-04 22:06:17 +05303143 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3144 //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 -07003145 //address 1 field
3146 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 +05303147 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 -07003148 //primary channel
3149 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 +05303150 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 -07003151 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303152 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3153 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003154 //decoded correctly
3155}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3156
3157typedef PACKED_PRE struct PACKED_POST
3158{
Dino Mycle8afbac12014-07-04 22:06:17 +05303159 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 -07003160 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303161 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3162 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 -07003163 //is transmitted
3164}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3165
3166typedef PACKED_PRE struct PACKED_POST
3167{
3168 /* Success or Failure */
3169 tANI_U32 status;
3170
3171 /* STA Idx */
3172 tANI_U32 staId;
3173
3174 /* Categories of STATS being returned as per eHalStatsMask*/
3175 tANI_U32 statsMask;
3176
3177 /* message type is same as the request type */
3178 tANI_U16 msgType;
3179
3180 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303181 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003182
3183} tHalStatsRspParams, *tpHalStatsRspParams;
3184
3185
3186
3187typedef PACKED_PRE struct PACKED_POST
3188{
3189 tHalMsgHeader header;
3190 tHalStatsRspParams statsRspParams;
3191} tHalStatsRspMsg, *tpHalStatsRspMsg;
3192
3193/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303194 * WLAN_HAL_FW_STATS_REQ
3195 *---------------------------------------------------------------------------*/
3196 typedef PACKED_PRE struct PACKED_POST
3197{
3198 tANI_U32 type;
3199}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3200
3201typedef PACKED_PRE struct PACKED_POST
3202{
3203 tHalMsgHeader header;
3204 tHalfwStatsReqParams fwstatsReqParams;
3205} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3206
3207/*---------------------------------------------------------------------------
3208 * WLAN_HAL_FW_STATS_RSP
3209 *---------------------------------------------------------------------------*/
3210 typedef PACKED_PRE struct PACKED_POST
3211{
3212 tANI_U32 type;
3213 tANI_U32 length;
3214 tANI_U8 data[1];
3215
3216}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3217
3218typedef PACKED_PRE struct PACKED_POST
3219{
3220 tHalMsgHeader header;
3221 tHalfwStatsRspParams fwstatsRspParams;
3222} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3223
3224typedef enum
3225{
3226 FW_UBSP_STATS = 1,
3227} fwstatstype;
3228
3229
3230/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003231 * WLAN_HAL_SET_LINK_ST_REQ
3232 *--------------------------------------------------------------------------*/
3233typedef PACKED_PRE struct PACKED_POST
3234{
3235 tSirMacAddr bssid;
3236 tSirLinkState state;
3237 tSirMacAddr selfMacAddr;
3238} tLinkStateParams, *tpLinkStateParams;
3239
3240typedef PACKED_PRE struct PACKED_POST
3241{
3242 tHalMsgHeader header;
3243 tLinkStateParams linkStateParams;
3244} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3245
3246/*---------------------------------------------------------------------------
3247 * WLAN_HAL_SET_LINK_ST_RSP
3248 *--------------------------------------------------------------------------*/
3249
3250typedef PACKED_PRE struct PACKED_POST
3251{
3252 /*success or failure */
3253 tANI_U32 status;
3254} tLinkStateRspParams, *tpLinkStateRspParams;
3255
3256typedef PACKED_PRE struct PACKED_POST
3257{
3258 tHalMsgHeader header;
3259 tLinkStateRspParams linkStateRspParams;
3260} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3261
3262/*---------------------------------------------------------------------------
3263 * WLAN_HAL_ADD_TS_REQ
3264 *--------------------------------------------------------------------------*/
3265
3266/* TSPEC Params */
3267typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3268{
Jeff Johnson295189b2012-06-20 16:38:30 -07003269 tANI_U16 trafficType : 1;
3270 tANI_U16 tsid : 4;
3271 tANI_U16 direction : 2;
3272 tANI_U16 accessPolicy : 2;
3273 tANI_U16 aggregation : 1;
3274 tANI_U16 psb : 1;
3275 tANI_U16 userPrio : 3;
3276 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003277} __ani_attr_packed tSirMacTSInfoTfc;
3278
3279/* Flag to schedule the traffic type */
3280typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3281{
Jeff Johnson295189b2012-06-20 16:38:30 -07003282 tANI_U8 schedule : 1;
3283 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003284} __ani_attr_packed tSirMacTSInfoSch;
3285
3286/* Traffic and scheduling info */
3287typedef __ani_attr_pre_packed struct sSirMacTSInfo
3288{
3289 tSirMacTSInfoTfc traffic;
3290 tSirMacTSInfoSch schedule;
3291} __ani_attr_packed tSirMacTSInfo;
3292
3293/* Information elements */
3294typedef __ani_attr_pre_packed struct sSirMacTspecIE
3295{
3296 tANI_U8 type;
3297 tANI_U8 length;
3298 tSirMacTSInfo tsinfo;
3299 tANI_U16 nomMsduSz;
3300 tANI_U16 maxMsduSz;
3301 tANI_U32 minSvcInterval;
3302 tANI_U32 maxSvcInterval;
3303 tANI_U32 inactInterval;
3304 tANI_U32 suspendInterval;
3305 tANI_U32 svcStartTime;
3306 tANI_U32 minDataRate;
3307 tANI_U32 meanDataRate;
3308 tANI_U32 peakDataRate;
3309 tANI_U32 maxBurstSz;
3310 tANI_U32 delayBound;
3311 tANI_U32 minPhyRate;
3312 tANI_U16 surplusBw;
3313 tANI_U16 mediumTime;
3314}__ani_attr_packed tSirMacTspecIE;
3315
3316typedef PACKED_PRE struct PACKED_POST
3317{
3318 /* Station Index */
3319 tANI_U16 staIdx;
3320
3321 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3322 tANI_U16 tspecIdx;
3323
3324 /* To program TPE with required parameters */
3325 tSirMacTspecIE tspec;
3326
3327 /* U-APSD Flags: 1b per AC. Encoded as follows:
3328 b7 b6 b5 b4 b3 b2 b1 b0 =
3329 X X X X BE BK VI VO */
3330 tANI_U8 uAPSD;
3331
3332 /* These parameters are for all the access categories */
3333 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3334 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3335 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303336
Jeff Johnson295189b2012-06-20 16:38:30 -07003337} tAddTsParams, *tpAddTsParams;
3338
3339typedef PACKED_PRE struct PACKED_POST
3340{
3341 tHalMsgHeader header;
3342 tAddTsParams addTsParams;
3343} tAddTsReqMsg, *tpAddTsReqMsg;
3344
3345/*---------------------------------------------------------------------------
3346 * WLAN_HAL_ADD_TS_RSP
3347 *--------------------------------------------------------------------------*/
3348
3349typedef PACKED_PRE struct PACKED_POST
3350{
3351 /*success or failure */
3352 tANI_U32 status;
3353} tAddTsRspParams, *tpAddTsRspParams;
3354
3355typedef PACKED_PRE struct PACKED_POST
3356{
3357 tHalMsgHeader header;
3358 tAddTsRspParams addTsRspParams;
3359} tAddTsRspMsg, *tpAddTsRspMsg;
3360
3361
3362/*---------------------------------------------------------------------------
3363 * WLAN_HAL_DEL_TS_REQ
3364 *--------------------------------------------------------------------------*/
3365
3366typedef PACKED_PRE struct PACKED_POST
3367{
3368 /* Station Index */
3369 tANI_U16 staIdx;
3370
3371 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3372 tANI_U16 tspecIdx;
3373
3374 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303375 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003376
3377} tDelTsParams, *tpDelTsParams;
3378
3379typedef PACKED_PRE struct PACKED_POST
3380{
3381 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303382 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003383} tDelTsReqMsg, *tpDelTsReqMsg;
3384
3385/*---------------------------------------------------------------------------
3386 * WLAN_HAL_DEL_TS_RSP
3387 *--------------------------------------------------------------------------*/
3388
3389typedef PACKED_PRE struct PACKED_POST
3390{
3391 /*success or failure */
3392 tANI_U32 status;
3393} tDelTsRspParams, *tpDelTsRspParams;
3394
3395typedef PACKED_PRE struct PACKED_POST
3396{
3397 tHalMsgHeader header;
3398 tDelTsRspParams delTsRspParams;
3399} tDelTsRspMsg, *tpDelTsRspMsg;
3400
3401/* End of TSpec Parameters */
3402
3403/* Start of BLOCK ACK related Parameters */
3404
3405/*---------------------------------------------------------------------------
3406 * WLAN_HAL_ADD_BA_SESSION_REQ
3407 *--------------------------------------------------------------------------*/
3408
3409typedef PACKED_PRE struct PACKED_POST
3410{
3411 /* Station Index */
3412 tANI_U16 staIdx;
3413
3414 /* Peer MAC Address */
3415 tSirMacAddr peerMacAddr;
3416
3417 /* ADDBA Action Frame dialog token
3418 HAL will not interpret this object */
3419 tANI_U8 baDialogToken;
3420
3421 /* TID for which the BA is being setup
3422 This identifies the TC or TS of interest */
3423 tANI_U8 baTID;
3424
3425 /* 0 - Delayed BA (Not supported)
3426 1 - Immediate BA */
3427 tANI_U8 baPolicy;
3428
3429 /* Indicates the number of buffers for this TID (baTID)
3430 NOTE - This is the requested buffer size. When this
3431 is processed by HAL and subsequently by HDD, it is
3432 possible that HDD may change this buffer size. Any
3433 change in the buffer size should be noted by PE and
3434 advertized appropriately in the ADDBA response */
3435 tANI_U16 baBufferSize;
3436
3437 /* BA timeout in TU's 0 means no timeout will occur */
3438 tANI_U16 baTimeout;
3439
3440 /* b0..b3 - Fragment Number - Always set to 0
3441 b4..b15 - Starting Sequence Number of first MSDU
3442 for which this BA is setup */
3443 tANI_U16 baSSN;
3444
3445 /* ADDBA direction
3446 1 - Originator
3447 0 - Recipient */
3448 tANI_U8 baDirection;
3449} tAddBASessionParams, *tpAddBASessionParams;
3450
3451typedef PACKED_PRE struct PACKED_POST
3452{
3453 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303454 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003455}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3456
3457/*---------------------------------------------------------------------------
3458 * WLAN_HAL_ADD_BA_SESSION_RSP
3459 *--------------------------------------------------------------------------*/
3460
3461typedef PACKED_PRE struct PACKED_POST
3462{
3463 /*success or failure */
3464 tANI_U32 status;
3465
3466 /* Dialog token */
3467 tANI_U8 baDialogToken;
3468
3469 /* TID for which the BA session has been setup */
3470 tANI_U8 baTID;
3471
3472 /* BA Buffer Size allocated for the current BA session */
3473 tANI_U8 baBufferSize;
3474
3475 tANI_U8 baSessionID;
3476
3477 /* Reordering Window buffer */
3478 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303479
Jeff Johnson295189b2012-06-20 16:38:30 -07003480 /*Station Index to id the sta */
3481 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303482
Jeff Johnson295189b2012-06-20 16:38:30 -07003483 /* Starting Sequence Number */
3484 tANI_U16 SSN;
3485} tAddBASessionRspParams, *tpAddBASessionRspParams;
3486
3487typedef PACKED_PRE struct PACKED_POST
3488{
3489 tHalMsgHeader header;
3490 tAddBASessionRspParams addBASessionRspParams;
3491} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3492
3493/*---------------------------------------------------------------------------
3494 * WLAN_HAL_ADD_BA_REQ
3495 *--------------------------------------------------------------------------*/
3496
3497typedef PACKED_PRE struct PACKED_POST
3498{
3499 /* Session Id */
3500 tANI_U8 baSessionID;
3501
3502 /* Reorder Window Size */
3503 tANI_U8 winSize;
3504
3505#ifdef FEATURE_ON_CHIP_REORDERING
3506 tANI_BOOLEAN isReorderingDoneOnChip;
3507#endif
3508} tAddBAParams, *tpAddBAParams;
3509
3510typedef PACKED_PRE struct PACKED_POST
3511{
3512 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303513 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003514} tAddBAReqMsg, *tpAddBAReqMsg;
3515
3516
3517/*---------------------------------------------------------------------------
3518 * WLAN_HAL_ADD_BA_RSP
3519 *--------------------------------------------------------------------------*/
3520
3521typedef PACKED_PRE struct PACKED_POST
3522{
3523 /*success or failure */
3524 tANI_U32 status;
3525
3526 /* Dialog token */
3527 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303528
Jeff Johnson295189b2012-06-20 16:38:30 -07003529} tAddBARspParams, *tpAddBARspParams;
3530
3531typedef PACKED_PRE struct PACKED_POST
3532{
3533 tHalMsgHeader header;
3534 tAddBARspParams addBARspParams;
3535} tAddBARspMsg, *tpAddBARspMsg;
3536
3537
3538/*---------------------------------------------------------------------------
3539 * WLAN_HAL_TRIGGER_BA_REQ
3540 *--------------------------------------------------------------------------*/
3541
3542
3543typedef struct sAddBaInfo
3544{
3545 tANI_U16 fBaEnable : 1;
3546 tANI_U16 startingSeqNum: 12;
3547 tANI_U16 reserved : 3;
3548}tAddBaInfo, *tpAddBaInfo;
3549
3550typedef struct sTriggerBaRspCandidate
3551{
3552 tSirMacAddr staAddr;
3553 tAddBaInfo baInfo[STACFG_MAX_TC];
3554}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3555
3556typedef struct sTriggerBaCandidate
3557{
3558 tANI_U8 staIdx;
3559 tANI_U8 tidBitmap;
3560}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3561
3562typedef PACKED_PRE struct PACKED_POST
3563{
3564 /* Session Id */
3565 tANI_U8 baSessionID;
3566
Dino Mycle8afbac12014-07-04 22:06:17 +05303567 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003568 * Candidate List(tTriggerBaCandidate)
3569 */
3570 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303571
Jeff Johnson295189b2012-06-20 16:38:30 -07003572} tTriggerBAParams, *tpTriggerBAParams;
3573
3574typedef PACKED_PRE struct PACKED_POST
3575{
3576 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303577 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003578} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3579
3580
3581/*---------------------------------------------------------------------------
3582 * WLAN_HAL_TRIGGER_BA_RSP
3583 *--------------------------------------------------------------------------*/
3584
3585typedef PACKED_PRE struct PACKED_POST
3586{
Dino Mycle8afbac12014-07-04 22:06:17 +05303587
Jeff Johnson295189b2012-06-20 16:38:30 -07003588 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303589 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003590
3591 /* success or failure */
3592 tANI_U32 status;
3593
Dino Mycle8afbac12014-07-04 22:06:17 +05303594 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003595 * Rsp Candidate List(tTriggerRspBaCandidate)
3596 */
3597 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303598
Jeff Johnson295189b2012-06-20 16:38:30 -07003599
3600} tTriggerBARspParams, *tpTriggerBARspParams;
3601
3602typedef PACKED_PRE struct PACKED_POST
3603{
3604 tHalMsgHeader header;
3605 tTriggerBARspParams triggerBARspParams;
3606} tTriggerBARspMsg, *tpTriggerBARspMsg;
3607
3608/*---------------------------------------------------------------------------
3609 * WLAN_HAL_DEL_BA_REQ
3610 *--------------------------------------------------------------------------*/
3611
3612typedef PACKED_PRE struct PACKED_POST
3613{
3614 /* Station Index */
3615 tANI_U16 staIdx;
3616
3617 /* TID for which the BA session is being deleted */
3618 tANI_U8 baTID;
3619
3620 /* DELBA direction
3621 1 - Originator
3622 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303623 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003624} tDelBAParams, *tpDelBAParams;
3625
3626typedef PACKED_PRE struct PACKED_POST
3627{
3628 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303629 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003630} tDelBAReqMsg, *tpDelBAReqMsg;
3631
3632/*---------------------------------------------------------------------------
3633 * WLAN_HAL_DEL_BA_RSP
3634 *--------------------------------------------------------------------------*/
3635
3636typedef PACKED_PRE struct PACKED_POST
3637{
3638 /* success or failure */
3639 tANI_U32 status;
3640} tDelBARspParams, *tpDelBARspParams;
3641
3642typedef PACKED_PRE struct PACKED_POST
3643{
3644 tHalMsgHeader header;
3645 tDelBARspParams delBARspParams;
3646} tDelBARspMsg, *tpDelBARspMsg;
3647
3648
Jeff Johnson295189b2012-06-20 16:38:30 -07003649/*---------------------------------------------------------------------------
3650 * WLAN_HAL_TSM_STATS_REQ
3651 *--------------------------------------------------------------------------*/
3652typedef PACKED_PRE struct PACKED_POST
3653{
3654 /* Traffic Id */
3655 tANI_U8 tsmTID;
3656
3657 tSirMacAddr bssId;
3658} tTsmStatsParams, *tpTsmStatsParams;
3659
3660typedef PACKED_PRE struct PACKED_POST
3661{
3662 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303663 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003664} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3665
3666
3667/*---------------------------------------------------------------------------
3668 * WLAN_HAL_TSM_STATS_RSP
3669 *--------------------------------------------------------------------------*/
3670typedef PACKED_PRE struct PACKED_POST
3671{
3672 /*success or failure */
3673 tANI_U32 status;
3674
Dino Mycle8afbac12014-07-04 22:06:17 +05303675 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003676 tANI_U16 UplinkPktQueueDly;
3677
Dino Mycle8afbac12014-07-04 22:06:17 +05303678 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003679 tANI_U16 UplinkPktQueueDlyHist[4];
3680
Dino Mycle8afbac12014-07-04 22:06:17 +05303681 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003682 tANI_U32 UplinkPktTxDly;
3683
Dino Mycle8afbac12014-07-04 22:06:17 +05303684 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003685 tANI_U16 UplinkPktLoss;
3686
Dino Mycle8afbac12014-07-04 22:06:17 +05303687 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003688 tANI_U16 UplinkPktCount;
3689
Dino Mycle8afbac12014-07-04 22:06:17 +05303690 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003691 tANI_U8 RoamingCount;
3692
Dino Mycle8afbac12014-07-04 22:06:17 +05303693 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003694 tANI_U16 RoamingDly;
3695} tTsmStatsRspParams, *tpTsmStatsRspParams;
3696
3697typedef PACKED_PRE struct PACKED_POST
3698{
3699 tHalMsgHeader header;
3700 tTsmStatsRspParams tsmStatsRspParams;
3701} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3702
3703
Jeff Johnson295189b2012-06-20 16:38:30 -07003704/*---------------------------------------------------------------------------
3705 * WLAN_HAL_SET_KEYDONE_MSG
3706 *--------------------------------------------------------------------------*/
3707
3708typedef PACKED_PRE struct PACKED_POST
3709{
3710 /*bssid of the keys */
3711 tANI_U8 bssidx;
3712 tANI_U8 encType;
3713} tSetKeyDoneParams, *tpSetKeyDoneParams;
3714
3715typedef PACKED_PRE struct PACKED_POST
3716{
3717 tHalMsgHeader header;
3718 tSetKeyDoneParams setKeyDoneParams;
3719} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3720
3721/*---------------------------------------------------------------------------
3722 * WLAN_HAL_DOWNLOAD_NV_REQ
3723 *--------------------------------------------------------------------------*/
3724typedef PACKED_PRE struct PACKED_POST
3725{
3726 /* Fragment sequence number of the NV Image. Note that NV Image might not
3727 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303728 * can hence choose to chop the NV blob into multiple fragments starting with
3729 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003730 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3731 * concatenated together by HAL without any padding bytes in between.*/
3732 tANI_U16 fragNumber;
3733
3734 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303735 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003736 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3737 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3738 tANI_U16 isLastFragment;
3739
3740 /* NV Image size (number of bytes) */
3741 tANI_U32 nvImgBufferSize;
3742
3743 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3744 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3745} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3746
3747typedef PACKED_PRE struct PACKED_POST
3748{
3749 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3750 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3751 tHalMsgHeader header;
3752 tHalNvImgDownloadReqParams nvImageReqParams;
3753} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3754
3755/*---------------------------------------------------------------------------
3756 * WLAN_HAL_DOWNLOAD_NV_RSP
3757 *--------------------------------------------------------------------------*/
3758typedef PACKED_PRE struct PACKED_POST
3759{
3760 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3761 * after each fragment */
3762 tANI_U32 status;
3763} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3764
3765typedef PACKED_PRE struct PACKED_POST
3766{
3767 tHalMsgHeader header;
3768 tHalNvImgDownloadRspParams nvImageRspParams;
3769} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3770
3771/*---------------------------------------------------------------------------
3772 * WLAN_HAL_STORE_NV_IND
3773 *--------------------------------------------------------------------------*/
3774typedef PACKED_PRE struct PACKED_POST
3775{
3776 /* NV Item */
3777 eNvTable tableID;
3778
3779 /* Size of NV Blob */
3780 tANI_U32 nvBlobSize;
3781
Dino Mycle8afbac12014-07-04 22:06:17 +05303782 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003783 * NV blob i.e. uint8[nvBlobSize] */
3784} tHalNvStoreParams, *tpHalNvStoreParams;
3785
3786typedef PACKED_PRE struct PACKED_POST
3787{
3788 /* Note: The length specified in tHalNvStoreInd messages should be
3789 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3790 tHalMsgHeader header;
3791 tHalNvStoreParams nvStoreParams;
3792} tHalNvStoreInd, *tpHalNvStoreInd;
3793
3794/* End of Block Ack Related Parameters */
3795
3796/*---------------------------------------------------------------------------
3797 * WLAN_HAL_MIC_FAILURE_IND
3798 *--------------------------------------------------------------------------*/
3799
3800#define SIR_CIPHER_SEQ_CTR_SIZE 6
3801
3802typedef PACKED_PRE struct PACKED_POST
3803{
Dino Mycle8afbac12014-07-04 22:06:17 +05303804 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003805 tSirMacAddr taMacAddr; //transmitter address
3806 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303807 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003808 tANI_U8 IV1; // first byte of IV
3809 tANI_U8 keyId; // second byte of IV
3810 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3811 tSirMacAddr rxMacAddr; // receive address
3812} tSirMicFailureInfo, *tpSirMicFailureInfo;
3813
3814/* Definition for MIC failure indication
3815 MAC reports this each time a MIC failure occures on Rx TKIP packet
3816 */
3817typedef PACKED_PRE struct PACKED_POST
3818{
3819 tSirMacAddr bssId; // BSSID
3820 tSirMicFailureInfo info;
3821} tSirMicFailureInd, *tpSirMicFailureInd;
3822
3823typedef PACKED_PRE struct PACKED_POST
3824{
3825 tHalMsgHeader header;
3826 tSirMicFailureInd micFailureInd;
3827} tMicFailureIndMsg, *tpMicFailureIndMsg;
3828
Mohit Khanna4a70d262012-09-11 16:30:12 -07003829typedef PACKED_PRE struct PACKED_POST
3830{
3831 tANI_U16 opMode;
3832 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303833}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003834
3835typedef PACKED_PRE struct PACKED_POST
3836{
3837 tHalMsgHeader header;
3838 tUpdateVHTOpMode updateVhtOpMode;
3839} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3840
3841typedef PACKED_PRE struct PACKED_POST
3842{
3843 tANI_U32 status;
3844} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3845
3846typedef PACKED_PRE struct PACKED_POST
3847{
3848 tHalMsgHeader header;
3849 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3850} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3851
Jeff Johnson295189b2012-06-20 16:38:30 -07003852/*---------------------------------------------------------------------------
3853 * WLAN_HAL_UPDATE_BEACON_REQ
3854 *--------------------------------------------------------------------------*/
3855typedef PACKED_PRE struct PACKED_POST
3856{
3857
3858 tANI_U8 bssIdx;
3859
3860 //shortPreamble mode. HAL should update all the STA rates when it
3861 //receives this message
3862 tANI_U8 fShortPreamble;
3863 //short Slot time.
3864 tANI_U8 fShortSlotTime;
3865 //Beacon Interval
3866 tANI_U16 beaconInterval;
3867 //Protection related
3868 tANI_U8 llaCoexist;
3869 tANI_U8 llbCoexist;
3870 tANI_U8 llgCoexist;
3871 tANI_U8 ht20MhzCoexist;
3872 tANI_U8 llnNonGFCoexist;
3873 tANI_U8 fLsigTXOPProtectionFullSupport;
3874 tANI_U8 fRIFSMode;
3875
3876 tANI_U16 paramChangeBitmap;
3877}tUpdateBeaconParams, *tpUpdateBeaconParams;
3878
3879
3880typedef PACKED_PRE struct PACKED_POST
3881{
3882 tHalMsgHeader header;
3883 tUpdateBeaconParams updateBeaconParam;
3884} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3885
3886/*---------------------------------------------------------------------------
3887 * WLAN_HAL_UPDATE_BEACON_RSP
3888 *--------------------------------------------------------------------------*/
3889typedef PACKED_PRE struct PACKED_POST
3890{
3891 tANI_U32 status;
3892} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3893
3894typedef PACKED_PRE struct PACKED_POST
3895{
3896 tHalMsgHeader header;
3897 tUpdateBeaconRspParams updateBeaconRspParam;
3898} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3899
3900/*---------------------------------------------------------------------------
3901 * WLAN_HAL_SEND_BEACON_REQ
3902 *--------------------------------------------------------------------------*/
3903typedef PACKED_PRE struct PACKED_POST
3904{
3905 tANI_U32 beaconLength; //length of the template.
3906 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3907 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003908 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003909 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3910}tSendBeaconParams, *tpSendBeaconParams;
3911
3912
3913typedef PACKED_PRE struct PACKED_POST
3914{
3915 tHalMsgHeader header;
3916 tSendBeaconParams sendBeaconParam;
3917}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3918
3919/*---------------------------------------------------------------------------
3920 * WLAN_HAL_SEND_BEACON_RSP
3921 *--------------------------------------------------------------------------*/
3922typedef PACKED_PRE struct PACKED_POST
3923{
3924 tANI_U32 status;
3925} tSendBeaconRspParams, *tpSendBeaconRspParams;
3926
3927typedef PACKED_PRE struct PACKED_POST
3928{
3929 tHalMsgHeader header;
3930 tSendBeaconRspParams sendBeaconRspParam;
3931} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3932
3933#ifdef FEATURE_5GHZ_BAND
3934
3935/*---------------------------------------------------------------------------
3936 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3937 *--------------------------------------------------------------------------*/
3938typedef PACKED_PRE struct PACKED_POST
3939{
3940 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303941 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003942}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3943
3944
3945typedef PACKED_PRE struct PACKED_POST
3946{
3947 /* Link Parameters */
3948 tSirEnableRadarInfoType EnableRadarInfo;
3949}tEnableRadarReqParams, *tpEnableRadarReqParams;
3950
3951typedef PACKED_PRE struct PACKED_POST
3952{
3953 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303954 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003955}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3956
3957/*---------------------------------------------------------------------------
3958 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3959 *--------------------------------------------------------------------------*/
3960
3961typedef PACKED_PRE struct PACKED_POST
3962{
3963 /* Link Parameters */
3964 tSirMacAddr BSSID;
3965 /* success or failure */
3966 tANI_U32 status;
3967}tEnableRadarRspParams, *tpEnableRadarRspParams;
3968
3969typedef PACKED_PRE struct PACKED_POST
3970{
3971 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303972 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003973}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3974
3975/*---------------------------------------------------------------------------
3976 *WLAN_HAL_RADAR_DETECT_INTR_IND
3977 *--------------------------------------------------------------------------*/
3978
3979typedef PACKED_PRE struct PACKED_POST
3980{
3981 tANI_U8 radarDetChannel;
3982}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3983
3984typedef PACKED_PRE struct PACKED_POST
3985{
3986 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303987 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003988}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3989
3990/*---------------------------------------------------------------------------
3991 *WLAN_HAL_RADAR_DETECT_IND
3992 *-------------------------------------------------------------------------*/
3993typedef PACKED_PRE struct PACKED_POST
3994{
3995 /*channel number in which the RADAR detected*/
3996 tANI_U8 channelNumber;
3997
3998 /*RADAR pulse width*/
3999 tANI_U16 radarPulseWidth; // in usecond
4000
4001 /*Number of RADAR pulses */
4002 tANI_U16 numRadarPulse;
4003}tRadarDetectIndParams,*tpRadarDetectIndParams;
4004
4005typedef PACKED_PRE struct PACKED_POST
4006{
4007 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304008 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004009}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
4010
4011
4012/*---------------------------------------------------------------------------
4013 *WLAN_HAL_GET_TPC_REPORT_REQ
4014 *-------------------------------------------------------------------------*/
4015typedef PACKED_PRE struct PACKED_POST
4016{
4017 tSirMacAddr sta;
4018 tANI_U8 dialogToken;
4019 tANI_U8 txpower;
4020}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
4021
4022
4023typedef PACKED_PRE struct PACKED_POST
4024{
4025 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304026 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004027}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
4028
4029/*---------------------------------------------------------------------------
4030 * WLAN_HAL_GET_TPC_REPORT_RSP
4031 *--------------------------------------------------------------------------*/
4032
4033typedef PACKED_PRE struct PACKED_POST
4034{
4035 /* success or failure */
4036 tANI_U32 status;
4037}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
4038
4039typedef PACKED_PRE struct PACKED_POST
4040{
4041 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05304042 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004043}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
4044
4045#endif
4046
Jeff Johnson295189b2012-06-20 16:38:30 -07004047/*---------------------------------------------------------------------------
4048 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
4049 *-------------------------------------------------------------------------*/
4050typedef PACKED_PRE struct PACKED_POST
4051{
4052 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
4053 tANI_U32 probeRespTemplateLen;
4054 tANI_U32 ucProxyProbeReqValidIEBmap[8];
4055 tSirMacAddr bssId;
4056
4057}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
4058
4059typedef PACKED_PRE struct PACKED_POST
4060{
4061 tHalMsgHeader header;
4062 tSendProbeRespReqParams sendProbeRespReqParams ;
4063}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
4064
4065/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304066 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07004067 *--------------------------------------------------------------------------*/
4068
4069typedef PACKED_PRE struct PACKED_POST
4070{
4071 /* success or failure */
4072 tANI_U32 status;
4073}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
4074
4075typedef PACKED_PRE struct PACKED_POST
4076{
4077 tHalMsgHeader header;
4078 tSendProbeRespRspParams sendProbeRespRspParams;
4079}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
4080
4081
4082/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304083 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07004084 *--------------------------------------------------------------------------*/
4085
4086typedef PACKED_PRE struct PACKED_POST
4087{
4088 /* success or failure */
4089 tANI_U32 status;
4090}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
4091
4092typedef PACKED_PRE struct PACKED_POST
4093{
4094 tHalMsgHeader header;
4095 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
4096}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
4097
4098/*---------------------------------------------------------------------------
4099 *WLAN_HAL_DELETE_STA_CONTEXT_IND
4100 *--------------------------------------------------------------------------*/
4101
4102typedef PACKED_PRE struct PACKED_POST
4103{
4104 tANI_U16 assocId;
4105 tANI_U16 staId;
4106 tSirMacAddr bssId; // TO SUPPORT BT-AMP
4107 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07004108 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05304109 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07004110
4111}tDeleteStaContextParams, *tpDeleteStaContextParams;
4112
4113
4114typedef PACKED_PRE struct PACKED_POST
4115{
4116 tHalMsgHeader header;
4117 tDeleteStaContextParams deleteStaContextParams;
4118}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4119
Anand Kumar012623a2013-01-11 17:00:00 -08004120typedef PACKED_PRE struct PACKED_POST
4121{
4122 tHalMsgHeader header;
4123 tANI_U8 assocId;
4124 tANI_U8 staIdx;
4125 tANI_U8 bssIdx;
4126 tANI_U8 uReasonCode;
4127 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004128#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4129 tANI_U8 staAddr[6];
4130 tANI_U8 bssId[6];
4131#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004132} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004133
4134/*---------------------------------------------------------------------------
4135 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4136 *--------------------------------------------------------------------------*/
4137
4138typedef PACKED_PRE struct PACKED_POST
4139{
4140 tBtAmpEventType btAmpEventType;
4141
4142}tBtAmpEventParams, *tpBtAmpEventParams;
4143
4144
4145
4146typedef PACKED_PRE struct PACKED_POST
4147{
4148 tHalMsgHeader header;
4149 tBtAmpEventParams btAmpEventParams;
4150}tBtAmpEventMsg, *tpBtAmpEventMsg;
4151
4152/*---------------------------------------------------------------------------
4153*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4154*--------------------------------------------------------------------------*/
4155
4156typedef PACKED_PRE struct PACKED_POST
4157{
4158 /* success or failure */
4159 tANI_U32 status;
4160}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4161
4162typedef PACKED_PRE struct PACKED_POST
4163{
4164 tHalMsgHeader header;
4165 tBtAmpEventRspParams btAmpEventRspParams;
4166}tBtAmpEventRsp, *tpBtAmpEventRsp;
4167
4168
4169/*---------------------------------------------------------------------------
4170 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4171 *--------------------------------------------------------------------------*/
4172
4173typedef PACKED_PRE struct PACKED_POST
4174{
4175 // Station Index. originates from HAL
4176 tANI_U8 ucSTAId;
4177
4178 // TID for which the transmit queue is being flushed
4179 tANI_U8 ucTid;
4180
4181}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4182
4183
4184typedef PACKED_PRE struct PACKED_POST
4185{
4186 tHalMsgHeader header;
4187 tTlHalFlushAcParams tlHalFlushAcParam;
4188}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4189
4190/*---------------------------------------------------------------------------
4191*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4192*--------------------------------------------------------------------------*/
4193
4194typedef PACKED_PRE struct PACKED_POST
4195{
4196 // Station Index. originates from HAL
4197 tANI_U8 ucSTAId;
4198
4199 // TID for which the transmit queue is being flushed
4200 tANI_U8 ucTid;
4201
4202 /* success or failure */
4203 tANI_U32 status;
4204}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4205
4206typedef PACKED_PRE struct PACKED_POST
4207{
4208 tHalMsgHeader header;
4209 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4210}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4211
4212/*---------------------------------------------------------------------------
4213 * WLAN_HAL_ENTER_IMPS_REQ
4214 *--------------------------------------------------------------------------*/
4215typedef PACKED_PRE struct PACKED_POST
4216{
4217 tHalMsgHeader header;
4218} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4219
4220/*---------------------------------------------------------------------------
4221 * WLAN_HAL_EXIT_IMPS_REQ
4222 *--------------------------------------------------------------------------*/
4223typedef PACKED_PRE struct PACKED_POST
4224{
4225 tHalMsgHeader header;
4226} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4227
4228/*---------------------------------------------------------------------------
4229 * WLAN_HAL_ENTER_BMPS_REQ
4230 *--------------------------------------------------------------------------*/
4231
4232typedef PACKED_PRE struct PACKED_POST
4233{
4234 tANI_U8 bssIdx;
4235 //TBTT value derived from the last beacon
4236#ifndef BUILD_QWPTTSTATIC
4237 tANI_U64 tbtt;
4238#endif
4239 tANI_U8 dtimCount;
4240 //DTIM period given to HAL during association may not be valid,
4241 //if association is based on ProbeRsp instead of beacon.
4242 tANI_U8 dtimPeriod;
4243
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004244 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004245 tANI_U32 rssiFilterPeriod;
4246 tANI_U32 numBeaconPerRssiAverage;
4247 tANI_U8 bRssiFilterEnable;
4248
4249} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4250
4251
4252typedef PACKED_PRE struct PACKED_POST
4253{
4254 tHalMsgHeader header;
4255 tHalEnterBmpsReqParams enterBmpsReq;
4256} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4257
4258/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304259 * WLAN_HAL_PRINT_REG_INFO_IND
4260 *--------------------------------------------------------------------------*/
4261typedef PACKED_PRE struct PACKED_POST
4262{
4263 uint32 regAddr;
4264 uint32 regValue;
4265} tHalRegDebugInfo, *tpRegDebugInfo;
4266
4267typedef PACKED_PRE struct PACKED_POST
4268{
4269 uint32 regCount;
4270 uint32 scenario;
4271 uint32 reasonCode;
4272} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4273
4274typedef PACKED_PRE struct PACKED_POST
4275{
4276 tHalMsgHeader header;
4277 tHalRegDebugInfoParams regParams;
4278} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4279
4280/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004281 * WLAN_HAL_EXIT_BMPS_REQ
4282 *--------------------------------------------------------------------------*/
4283typedef PACKED_PRE struct PACKED_POST
4284{
4285 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004286 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004287} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4288
4289typedef PACKED_PRE struct PACKED_POST
4290{
4291 tHalMsgHeader header;
4292 tHalExitBmpsReqParams exitBmpsReqParams;
4293} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4294
4295/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004296 * WLAN_HAL_MISSED_BEACON_IND
4297 *--------------------------------------------------------------------------*/
4298typedef PACKED_PRE struct PACKED_POST
4299{
4300 tANI_U8 bssIdx;
4301} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4302
4303typedef PACKED_PRE struct PACKED_POST
4304{
4305 tHalMsgHeader header;
4306 tHalMissedBeaconIndParams missedBeaconIndParams;
4307} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4308
4309/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004310 * WLAN_HAL_ADD_BCN_FILTER_REQ
4311 *--------------------------------------------------------------------------*/
4312/* Beacon Filtering data structures */
4313typedef PACKED_PRE struct PACKED_POST
4314{
4315 tANI_U8 offset;
4316 tANI_U8 value;
4317 tANI_U8 bitMask;
4318 tANI_U8 ref;
4319} tEidByteInfo, *tpEidByteInfo;
4320
Dino Mycle8afbac12014-07-04 22:06:17 +05304321typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004322{
4323 tANI_U16 capabilityInfo;
4324 tANI_U16 capabilityMask;
4325 tANI_U16 beaconInterval;
4326 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004327 tANI_U8 bssIdx;
4328 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004329} tBeaconFilterMsg, *tpBeaconFilterMsg;
4330
4331/* The above structure would be followed by multiple of below mentioned structure */
4332typedef PACKED_PRE struct PACKED_POST
4333{
4334 tANI_U8 elementId;
4335 tANI_U8 checkIePresence;
4336 tEidByteInfo byte;
4337} tBeaconFilterIe, *tpBeaconFilterIe;
4338
4339typedef PACKED_PRE struct PACKED_POST
4340{
4341 tHalMsgHeader header;
4342 tBeaconFilterMsg addBcnFilterParams;
4343} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4344
4345/*---------------------------------------------------------------------------
4346 * WLAN_HAL_REM_BCN_FILTER_REQ
4347 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304348typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004349{
4350 tANI_U8 ucIeCount;
4351 tANI_U8 ucRemIeId[1];
4352} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4353
4354typedef PACKED_PRE struct PACKED_POST
4355{
4356 tHalMsgHeader header;
4357 tRemBeaconFilterMsg remBcnFilterParams;
4358} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4359
4360/*---------------------------------------------------------------------------
4361 * WLAN_HAL_HOST_OFFLOAD_REQ
4362 *--------------------------------------------------------------------------*/
4363#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4364#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4365#define HAL_IPV6_NS_OFFLOAD 2
4366#define HAL_IPV6_ADDR_LEN 16
4367#define HAL_MAC_ADDR_LEN 6
4368#define HAL_OFFLOAD_DISABLE 0
4369#define HAL_OFFLOAD_ENABLE 1
4370#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004371#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004372#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004373#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004374
4375typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4376{
4377 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4378 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4379 //Only support 2 possible Network Advertisement IPv6 address
4380 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4381 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4382 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4383 tANI_U8 srcIPv6AddrValid : 1;
4384 tANI_U8 targetIPv6Addr1Valid : 1;
4385 tANI_U8 targetIPv6Addr2Valid : 1;
4386 tANI_U8 reserved1 : 5;
4387 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004388 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004389 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004390} tHalNSOffloadParams;
4391
4392typedef PACKED_PRE struct PACKED_POST
4393{
4394 tANI_U8 offloadType;
4395 tANI_U8 enableOrDisable;
4396 PACKED_PRE union PACKED_POST
4397 {
4398 tANI_U8 hostIpv4Addr [4];
4399 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4400 } params;
4401} tHalHostOffloadReq, *tpHalHostOffloadReq;
4402
4403typedef PACKED_PRE struct PACKED_POST
4404{
4405 tHalMsgHeader header;
4406 tHalHostOffloadReq hostOffloadParams;
4407 tHalNSOffloadParams nsOffloadParams;
4408} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4409
Leo Chang397deb72013-08-22 11:33:16 -07004410
4411#ifdef FEATURE_WLAN_LPHB
4412typedef enum
4413{
4414 WIFI_HB_SET_ENABLE = 0x0001,
4415 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4416 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4417 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4418 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4419 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4420}tLowPowerHeartBeatCmdType ;
4421
4422#define MAX_FLITER_SIZE 64
4423/*---------------------------------------------------------------------------
4424 *FEATURE_WLAN_LPHB REQ
4425 *--------------------------------------------------------------------------*/
4426typedef PACKED_PRE struct PACKED_POST
4427{
4428 uint32 hostIpv4Addr;
4429 uint32 destIpv4Addr;
4430 uint16 hostPort;
4431 uint16 destPort;
4432 uint16 timeOutSec; // in seconds
4433 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004434 uint16 timePeriodSec; // in seconds
4435 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004436} tlowPowerHeartBeatParamsTcpStruct;
4437
4438typedef PACKED_PRE struct PACKED_POST
4439{
4440 uint32 hostIpv4Addr;
4441 uint32 destIpv4Addr;
4442 uint16 hostPort;
4443 uint16 destPort;
4444 uint16 timePeriodSec;// in seconds
4445 uint16 timeOutSec; // in seconds
4446 tSirMacAddr gatewayMacAddr;
4447} tlowPowerHeartBeatParamsUdpStruct;
4448
4449typedef PACKED_PRE struct PACKED_POST
4450{
4451 uint32 offset;
4452 uint32 filterLength;
4453 uint8 filter[MAX_FLITER_SIZE];
4454} tlowPowerHeartBeatFilterStruct;
4455
4456typedef PACKED_PRE struct PACKED_POST
4457{
4458 uint8 heartBeatEnable;
4459 uint8 heartBeatType; //TCP or UDP
4460} tlowPowerHeartBeatEnableStruct;
4461
4462typedef PACKED_PRE struct PACKED_POST
4463{
4464 uint8 dummy;
4465} tlowPowerHeartBeatNetworkInfoStruct;
4466
4467
4468typedef PACKED_PRE struct PACKED_POST
4469{
4470 uint8 sessionIdx;
4471 uint16 lowPowerHeartBeatCmdType;
4472 PACKED_PRE union PACKED_PRO
4473 {
4474 tlowPowerHeartBeatEnableStruct control;
4475 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4476 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4477 tlowPowerHeartBeatParamsUdpStruct udpParams;
4478 tlowPowerHeartBeatNetworkInfoStruct info;
4479 }options;
4480} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4481
4482
4483typedef PACKED_PRE struct PACKED_POST
4484{
4485 tHalMsgHeader header;
4486 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4487} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4488
4489/*---------------------------------------------------------------------------
4490 * FEATURE_WLAN_LPHB RSP
4491 *--------------------------------------------------------------------------*/
4492
4493typedef PACKED_PRE struct PACKED_POST
4494{
4495 /* success or failure */
4496 uint8 sessionIdx;
4497 uint32 status;
4498 uint16 lowPowerHeartBeatCmdType;
4499}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4500
4501typedef PACKED_PRE struct PACKED_POST
4502{
4503 tHalMsgHeader header;
4504 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4505}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4506
4507
4508/*---------------------------------------------------------------------------
4509 * FEATURE_WLAN_LPHB IND
4510 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004511#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4512#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4513
4514#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4515#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004516#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004517
Kumar Anandea78e792013-10-10 23:47:01 -07004518
4519#define WIFI_LPHB_PROTO_UDP 0x01
4520#define WIFI_LPHB_PROTO_TCP 0x02
4521
Leo Chang397deb72013-08-22 11:33:16 -07004522typedef PACKED_PRE struct PACKED_POST
4523{
4524 uint8 bssIdx;
4525 uint8 sessionIdx;
4526 uint8 protocolType; /*TCP or UDP*/
4527 uint8 eventReason;
4528
4529}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4530
4531typedef PACKED_PRE struct PACKED_POST
4532{
4533 tHalMsgHeader header;
4534 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4535}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4536
4537#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004538
4539#ifdef FEATURE_WLAN_BATCH_SCAN
4540
4541/*---------------------------------------------------------------------------
4542 * WLAN_HAL_BATCHSCAN_SET_REQ
4543 *--------------------------------------------------------------------------*/
4544typedef PACKED_PRE struct PACKED_POST
4545{
4546 /* Scan Frerquency - default to 30Sec*/
4547 tANI_U32 scanInterval;
4548 tANI_U32 numScan2Batch;
4549 tANI_U32 bestNetworks;
4550 tANI_U8 rfBand;
4551 tANI_U8 rtt;
4552} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4553
4554typedef PACKED_PRE struct PACKED_POST
4555{
4556 tHalMsgHeader header;
4557 tHalBatchScanSetParams batchScanParams;
4558} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4559
4560/*---------------------------------------------------------------------------
4561 * WLAN_HAL_BATCHSCAN_SET_RSP
4562 *--------------------------------------------------------------------------*/
4563typedef PACKED_PRE struct PACKED_POST
4564{
4565 tANI_U32 supportedMscan;
4566} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4567
4568typedef PACKED_PRE struct PACKED_POST
4569{
4570 tHalMsgHeader header;
4571 tHalBatchScanSetRspParam setBatchScanRspParam;
4572} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4573
4574/*---------------------------------------------------------------------------
4575* WLAN_HAL_BATCHSCAN_STOP_IND
4576*--------------------------------------------------------------------------*/
4577typedef PACKED_PRE struct PACKED_POST
4578{
4579 tANI_U32 param;
4580} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4581
4582typedef PACKED_PRE struct PACKED_POST
4583{
4584 tHalMsgHeader header;
4585 tHalBatchScanStopIndParam param;
4586} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4587
4588/*---------------------------------------------------------------------------
4589* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4590*--------------------------------------------------------------------------*/
4591typedef PACKED_PRE struct PACKED_POST
4592{
4593 tANI_U32 param;
4594} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4595
4596typedef PACKED_PRE struct PACKED_POST
4597{
4598 tHalMsgHeader header;
4599 tHalBatchScanTriggerResultParam param;
4600} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4601
4602/*---------------------------------------------------------------------------
4603 * WLAN_HAL_BATCHSCAN_GET_RSP
4604 *--------------------------------------------------------------------------*/
4605typedef PACKED_PRE struct PACKED_POST
4606{
4607 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004608 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004609 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304610 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004611 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4612 tANI_U32 timestamp;
4613} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4614
4615typedef PACKED_PRE struct PACKED_POST
4616{
4617 tANI_U32 scanId; /* Scan List ID. */
4618 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4619 tANI_U32 numNetworksInScanList;
4620 /* Variable data ptr: Number of AP in Scan List */
4621 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4622 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4623 tANI_U8 scanList[1];
4624} tHalBatchScanList, *tpHalBatchScanList;
4625
4626typedef PACKED_PRE struct PACKED_POST
4627{
4628 tANI_U32 timestamp;
4629 tANI_U32 numScanLists;
4630 boolean isLastResult;
4631 /* Variable Data ptr: Number of Scan Lists*/
4632 /* following isLastResult is data of type tHalBatchScanList
4633 * of sizeof(tHalBatchScanList) * numScanLists*/
4634 tANI_U8 scanResults[1];
4635} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4636
4637typedef PACKED_PRE struct PACKED_POST
4638{
4639 tHalMsgHeader header;
4640 tHalBatchScanResultIndParam resultIndMsgParam;
4641} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4642
4643#endif
4644
Jeff Johnson295189b2012-06-20 16:38:30 -07004645/*---------------------------------------------------------------------------
4646 * WLAN_HAL_KEEP_ALIVE_REQ
4647 *--------------------------------------------------------------------------*/
4648/* Packet Types. */
4649#define HAL_KEEP_ALIVE_NULL_PKT 1
4650#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4651
4652/* Enable or disable keep alive */
4653#define HAL_KEEP_ALIVE_DISABLE 0
4654#define HAL_KEEP_ALIVE_ENABLE 1
4655
4656/* Keep Alive request. */
4657typedef PACKED_PRE struct PACKED_POST
4658{
4659 tANI_U8 packetType;
4660 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304661 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004662 tHalIpv4Addr destIpv4Addr;
4663 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004664 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004665} tHalKeepAliveReq, *tpHalKeepAliveReq;
4666
4667typedef PACKED_PRE struct PACKED_POST
4668{
4669 tHalMsgHeader header;
4670 tHalKeepAliveReq KeepAliveParams;
4671} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4672
4673/*---------------------------------------------------------------------------
4674 * WLAN_HAL_SET_RSSI_THRESH_REQ
4675 *--------------------------------------------------------------------------*/
4676typedef PACKED_PRE struct PACKED_POST
4677{
4678 tANI_S8 ucRssiThreshold1 : 8;
4679 tANI_S8 ucRssiThreshold2 : 8;
4680 tANI_S8 ucRssiThreshold3 : 8;
4681 tANI_U8 bRssiThres1PosNotify : 1;
4682 tANI_U8 bRssiThres1NegNotify : 1;
4683 tANI_U8 bRssiThres2PosNotify : 1;
4684 tANI_U8 bRssiThres2NegNotify : 1;
4685 tANI_U8 bRssiThres3PosNotify : 1;
4686 tANI_U8 bRssiThres3NegNotify : 1;
4687 tANI_U8 bReserved10 : 2;
4688} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304689
Jeff Johnson295189b2012-06-20 16:38:30 -07004690typedef PACKED_PRE struct PACKED_POST
4691{
4692 tHalMsgHeader header;
4693 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004694} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004695
4696/*---------------------------------------------------------------------------
4697 * WLAN_HAL_ENTER_UAPSD_REQ
4698 *--------------------------------------------------------------------------*/
4699typedef PACKED_PRE struct PACKED_POST
4700{
4701 tANI_U8 bkDeliveryEnabled:1;
4702 tANI_U8 beDeliveryEnabled:1;
4703 tANI_U8 viDeliveryEnabled:1;
4704 tANI_U8 voDeliveryEnabled:1;
4705 tANI_U8 bkTriggerEnabled:1;
4706 tANI_U8 beTriggerEnabled:1;
4707 tANI_U8 viTriggerEnabled:1;
4708 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004709 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004710} tUapsdReqParams, *tpUapsdReqParams;
4711
4712typedef PACKED_PRE struct PACKED_POST
4713{
4714 tHalMsgHeader header;
4715 tUapsdReqParams enterUapsdParams;
4716} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4717
4718/*---------------------------------------------------------------------------
4719 * WLAN_HAL_EXIT_UAPSD_REQ
4720 *--------------------------------------------------------------------------*/
4721typedef PACKED_PRE struct PACKED_POST
4722{
4723 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004724 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004725} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4726
Kumar Anandea78e792013-10-10 23:47:01 -07004727#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4728#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004729/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004730 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4731 *--------------------------------------------------------------------------*/
4732typedef PACKED_PRE struct PACKED_POST
4733{
4734 tANI_U32 selfStaIdx:8;
4735 tANI_U32 ucPtrnId:8; // Pattern ID
4736 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4737 tANI_U32 uPtrnIntervalMs; // In msec
4738 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4739} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4740
4741typedef PACKED_PRE struct PACKED_POST
4742{
4743 tHalMsgHeader header;
4744 tHalAddPeriodicTxPtrn ptrnParams;
4745} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4746
4747/*---------------------------------------------------------------------------
4748 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4749 *--------------------------------------------------------------------------*/
4750typedef PACKED_PRE struct PACKED_POST
4751{
4752 tANI_U32 selfStaIdx:8;
4753 tANI_U32 rsvd:24;
4754 /* Bitmap of pattern IDs that needs to be deleted */
4755 tANI_U32 uPatternIdBitmap;
4756} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4757
4758typedef PACKED_PRE struct PACKED_POST
4759{
4760 tHalMsgHeader header;
4761 tHalDelPeriodicTxPtrn ptrnParams;
4762} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4763
4764/*---------------------------------------------------------------------------
4765 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4766 *--------------------------------------------------------------------------*/
4767typedef PACKED_PRE struct PACKED_POST
4768{
4769 /* Type of Failure indication */
4770 tANI_U32 bssIdx:8;
4771 tANI_U32 selfStaIdx:8;
4772 tANI_U32 rsvd:16;
4773 tANI_U32 status;
4774 tANI_U32 patternIdBitmap;
4775} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4776
4777typedef PACKED_PRE struct PACKED_POST
4778{
4779 tHalMsgHeader header;
4780 tHalPeriodicTxPtrnFwInd fwIndParams;
4781} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4782
4783/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004784 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4785 *--------------------------------------------------------------------------*/
4786#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4787#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4788
4789typedef PACKED_PRE struct PACKED_POST
4790{
4791 tANI_U8 ucPatternId; // Pattern ID
4792 // Pattern byte offset from beginning of the 802.11 packet to start of the
4793 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304794 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004795 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4796 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4797 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4798 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4799 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4800 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004801 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004802} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4803
4804typedef PACKED_PRE struct PACKED_POST
4805{
4806 tHalMsgHeader header;
4807 tHalWowlAddBcastPtrn ptrnParams;
4808} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304809
Jeff Johnsone7245742012-09-05 17:12:55 -07004810
4811
Jeff Johnson295189b2012-06-20 16:38:30 -07004812/*---------------------------------------------------------------------------
4813 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4814 *--------------------------------------------------------------------------*/
4815typedef PACKED_PRE struct PACKED_POST
4816{
4817 /* Pattern ID of the wakeup pattern to be deleted */
4818 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004819 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004820} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4821
4822typedef PACKED_PRE struct PACKED_POST
4823{
4824 tHalMsgHeader header;
4825 tHalWowlDelBcastPtrn ptrnParams;
4826} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4827
4828/*---------------------------------------------------------------------------
4829 * WLAN_HAL_ENTER_WOWL_REQ
4830 *--------------------------------------------------------------------------*/
4831typedef PACKED_PRE struct PACKED_POST
4832{
4833 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304834 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004835
4836 /* Magic pattern */
4837 tSirMacAddr magicPtrn;
4838
Dino Mycle8afbac12014-07-04 22:06:17 +05304839 /* Enables/disables packet pattern filtering in firmware.
4840 Enabling this flag enables broadcast pattern matching
4841 in Firmware. If unicast pattern matching is also desired,
4842 ucUcastPatternFilteringEnable flag must be set tot true
4843 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004844 */
4845 tANI_U8 ucPatternFilteringEnable;
4846
Dino Mycle8afbac12014-07-04 22:06:17 +05304847 /* Enables/disables unicast packet pattern filtering.
4848 This flag specifies whether we want to do pattern match
4849 on unicast packets as well and not just broadcast packets.
4850 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004851 (main controlling flag) is set to false
4852 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304853 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004854
Dino Mycle8afbac12014-07-04 22:06:17 +05304855 /* This configuration is valid only when magicPktEnable=1.
4856 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004857 * Channel Switch Action Frame.
4858 */
4859 tANI_U8 ucWowChnlSwitchRcv;
4860
Dino Mycle8afbac12014-07-04 22:06:17 +05304861 /* This configuration is valid only when magicPktEnable=1.
4862 * It requests hardware to wake up when it receives the
4863 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004864 */
4865 tANI_U8 ucWowDeauthRcv;
4866
Dino Mycle8afbac12014-07-04 22:06:17 +05304867 /* This configuration is valid only when magicPktEnable=1.
4868 * It requests hardware to wake up when it receives the
4869 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004870 */
4871 tANI_U8 ucWowDisassocRcv;
4872
Dino Mycle8afbac12014-07-04 22:06:17 +05304873 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004874 * It requests hardware to wake up when it has missed
4875 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304876 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004877 */
4878 tANI_U8 ucWowMaxMissedBeacons;
4879
Dino Mycle8afbac12014-07-04 22:06:17 +05304880 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004881 * This is a timeout value in units of microsec. It requests
4882 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304883 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004884 */
4885 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304886
Jeff Johnson295189b2012-06-20 16:38:30 -07004887 /* This configuration directs the WoW packet filtering to look for EAP-ID
4888 * requests embedded in EAPOL frames and use this as a wake source.
4889 */
4890 tANI_U8 ucWoWEAPIDRequestEnable;
4891
4892 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4893 * requests and use this as a wake source.
4894 */
4895 tANI_U8 ucWoWEAPOL4WayEnable;
4896
4897 /* This configuration allows a host wakeup on an network scan offload match.
4898 */
4899 tANI_U8 ucWowNetScanOffloadMatch;
4900
4901 /* This configuration allows a host wakeup on any GTK rekeying error.
4902 */
4903 tANI_U8 ucWowGTKRekeyError;
4904
4905 /* This configuration allows a host wakeup on BSS connection loss.
4906 */
4907 tANI_U8 ucWoWBSSConnLoss;
4908
Jeff Johnsone7245742012-09-05 17:12:55 -07004909 tANI_U8 bssIdx;
4910
Jeff Johnson295189b2012-06-20 16:38:30 -07004911} tHalWowlEnterParams, *tpHalWowlEnterParams;
4912
4913typedef PACKED_PRE struct PACKED_POST
4914{
4915 tHalMsgHeader header;
4916 tHalWowlEnterParams enterWowlParams;
4917} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4918
4919/*---------------------------------------------------------------------------
4920 * WLAN_HAL_EXIT_WOWL_REQ
4921 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004922
Jeff Johnson295189b2012-06-20 16:38:30 -07004923typedef PACKED_PRE struct PACKED_POST
4924{
Jeff Johnsone7245742012-09-05 17:12:55 -07004925 tANI_U8 bssIdx;
4926
4927} tHalWowlExitParams, *tpHalWowlExitParams;
4928
4929typedef PACKED_PRE struct PACKED_POST
4930{
4931 tHalMsgHeader header;
4932 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004933} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4934
4935/*---------------------------------------------------------------------------
4936 * WLAN_HAL_GET_RSSI_REQ
4937 *--------------------------------------------------------------------------*/
4938typedef PACKED_PRE struct PACKED_POST
4939{
4940 tHalMsgHeader header;
4941} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4942
Anand Kumar012623a2013-01-11 17:00:00 -08004943typedef PACKED_PRE struct PACKED_POST
4944{
4945 /* Valid STA Idx for per STA stats request */
4946 tANI_U32 staId;
4947
4948}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4949
4950
4951/*---------------------------------------------------------------------------
4952 * WLAN_HAL_GET_ROAM_RSSI_REQ
4953 *--------------------------------------------------------------------------*/
4954typedef PACKED_PRE struct PACKED_POST
4955{
4956 tHalMsgHeader header;
4957 tHalRoamRssiReqParams roamRssiReqParams;
4958} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4959
4960
Jeff Johnson295189b2012-06-20 16:38:30 -07004961/*---------------------------------------------------------------------------
4962 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4963 *--------------------------------------------------------------------------*/
4964typedef PACKED_PRE struct PACKED_POST {
4965 tANI_U8 staidx; // STA index
4966 tANI_U8 ac; // Access Category
4967 tANI_U8 up; // User Priority
4968 tANI_U32 srvInterval; // Service Interval
4969 tANI_U32 susInterval; // Suspend Interval
4970 tANI_U32 delayInterval; // Delay Interval
4971} tUapsdInfo, tpUapsdInfo;
4972
4973typedef PACKED_PRE struct PACKED_POST
4974{
4975 tHalMsgHeader header;
4976 tUapsdInfo enableUapsdAcParams;
4977} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4978
4979/*---------------------------------------------------------------------------
4980 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4981 *--------------------------------------------------------------------------*/
4982typedef PACKED_PRE struct PACKED_POST {
4983 tANI_U8 setMcstBcstFilterSetting;
4984 tANI_U8 setMcstBcstFilter;
4985} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4986
4987typedef PACKED_PRE struct PACKED_POST
4988{
4989 tHalMsgHeader header;
4990 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4991} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4992
4993/*---------------------------------------------------------------------------
4994 * WLAN_HAL_ENTER_IMPS_RSP
4995 *--------------------------------------------------------------------------*/
4996typedef PACKED_PRE struct PACKED_POST
4997{
4998 /* success or failure */
4999 tANI_U32 status;
5000} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
5001
5002typedef PACKED_PRE struct PACKED_POST
5003{
5004 tHalMsgHeader header;
5005 tHalEnterImpsRspParams enterImpsRspParams;
5006} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
5007
5008/*---------------------------------------------------------------------------
5009 * WLAN_HAL_EXIT_IMPS_RSP
5010 *--------------------------------------------------------------------------*/
5011typedef PACKED_PRE struct PACKED_POST
5012{
5013 /* success or failure */
5014 tANI_U32 status;
5015} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
5016
5017typedef PACKED_PRE struct PACKED_POST
5018{
5019 tHalMsgHeader header;
5020 tHalExitImpsRspParams exitImpsRspParams;
5021} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
5022
5023/*---------------------------------------------------------------------------
5024 * WLAN_HAL_ENTER_BMPS_RSP
5025 *--------------------------------------------------------------------------*/
5026typedef PACKED_PRE struct PACKED_POST
5027{
5028 /* success or failure */
5029 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005030 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005031} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
5032
5033typedef PACKED_PRE struct PACKED_POST
5034{
5035 tHalMsgHeader header;
5036 tHalEnterBmpsRspParams enterBmpsRspParams;
5037} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
5038
5039/*---------------------------------------------------------------------------
5040 * WLAN_HAL_EXIT_BMPS_RSP
5041 *--------------------------------------------------------------------------*/
5042typedef PACKED_PRE struct PACKED_POST
5043{
5044 /* success or failure */
5045 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005046 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005047} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
5048
5049typedef PACKED_PRE struct PACKED_POST
5050{
5051 tHalMsgHeader header;
5052 tHalExitBmpsRspParams exitBmpsRspParams;
5053} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
5054
5055/*---------------------------------------------------------------------------
5056 * WLAN_HAL_ENTER_UAPSD_RSP
5057 *--------------------------------------------------------------------------*/
5058typedef PACKED_PRE struct PACKED_POST
5059{
5060 /* success or failure */
5061 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005062 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005063}tUapsdRspParams, *tpUapsdRspParams;
5064
5065typedef PACKED_PRE struct PACKED_POST
5066{
5067 tHalMsgHeader header;
5068 tUapsdRspParams enterUapsdRspParams;
5069} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
5070
5071/*---------------------------------------------------------------------------
5072 * WLAN_HAL_EXIT_UAPSD_RSP
5073 *--------------------------------------------------------------------------*/
5074typedef PACKED_PRE struct PACKED_POST
5075{
5076 /* success or failure */
5077 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005078 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005079} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
5080
5081typedef PACKED_PRE struct PACKED_POST
5082{
5083 tHalMsgHeader header;
5084 tHalExitUapsdRspParams exitUapsdRspParams;
5085} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
5086
5087/*---------------------------------------------------------------------------
5088 * WLAN_HAL_RSSI_NOTIFICATION_IND
5089 *--------------------------------------------------------------------------*/
5090typedef PACKED_PRE struct PACKED_POST
5091{
5092 tANI_U32 bRssiThres1PosCross : 1;
5093 tANI_U32 bRssiThres1NegCross : 1;
5094 tANI_U32 bRssiThres2PosCross : 1;
5095 tANI_U32 bRssiThres2NegCross : 1;
5096 tANI_U32 bRssiThres3PosCross : 1;
5097 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08005098 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07005099 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07005100 tANI_U32 isBTCoexCompromise : 1;
5101 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005102 tANI_S8 refRssiThreshold1;
5103 tANI_S8 refRssiThreshold2;
5104 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07005105} tHalRSSINotification, *tpHalRSSINotification;
5106
5107typedef PACKED_PRE struct PACKED_POST
5108{
5109 tHalMsgHeader header;
5110 tHalRSSINotification rssiNotificationParams;
5111} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
5112
5113/*---------------------------------------------------------------------------
5114 * WLAN_HAL_GET_RSSI_RSP
5115 *--------------------------------------------------------------------------*/
5116typedef PACKED_PRE struct PACKED_POST
5117{
5118 /* success or failure */
5119 tANI_U32 status;
5120 tANI_S8 rssi;
5121} tHalGetRssiParams, *tpHalGetRspParams;
5122
5123typedef PACKED_PRE struct PACKED_POST
5124{
5125 tHalMsgHeader header;
5126 tHalGetRssiParams rssiRspParams;
5127} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5128
5129/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005130 * WLAN_HAL_GET_ROAM_RSSI_RSP
5131 *--------------------------------------------------------------------------*/
5132typedef PACKED_PRE struct PACKED_POST
5133{
5134 /* success or failure */
5135 tANI_U32 status;
5136
5137 tANI_U8 staId;
5138 tANI_S8 rssi;
5139} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5140
5141typedef PACKED_PRE struct PACKED_POST
5142{
5143 tHalMsgHeader header;
5144 tHalGetRoamRssiParams roamRssiRspParams;
5145} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5146
5147/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005148 * WLAN_HAL_ENTER_WOWL_RSP
5149 *--------------------------------------------------------------------------*/
5150typedef PACKED_PRE struct PACKED_POST
5151{
5152 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005153 tANI_U32 status;
5154 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005155} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5156
5157typedef PACKED_PRE struct PACKED_POST
5158{
5159 tHalMsgHeader header;
5160 tHalEnterWowlRspParams enterWowlRspParams;
5161} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5162
5163/*---------------------------------------------------------------------------
5164 * WLAN_HAL_EXIT_WOWL_RSP
5165 *--------------------------------------------------------------------------*/
5166typedef PACKED_PRE struct PACKED_POST
5167{
5168 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005169 tANI_U32 status;
5170 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005171} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5172
5173typedef PACKED_PRE struct PACKED_POST
5174{
5175 tHalMsgHeader header;
5176 tHalExitWowlRspParams exitWowlRspParams;
5177} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5178
5179/*---------------------------------------------------------------------------
5180 * WLAN_HAL_ADD_BCN_FILTER_RSP
5181 *--------------------------------------------------------------------------*/
5182typedef PACKED_PRE struct PACKED_POST
5183{
5184 /* success or failure */
5185 tANI_U32 status;
5186} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5187
5188typedef PACKED_PRE struct PACKED_POST
5189{
5190 tHalMsgHeader header;
5191 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5192} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5193
5194/*---------------------------------------------------------------------------
5195 * WLAN_HAL_REM_BCN_FILTER_RSP
5196 *--------------------------------------------------------------------------*/
5197typedef PACKED_PRE struct PACKED_POST
5198{
5199 /* success or failure */
5200 tANI_U32 status;
5201} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5202
5203typedef PACKED_PRE struct PACKED_POST
5204{
5205 tHalMsgHeader header;
5206 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5207} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5208
5209/*---------------------------------------------------------------------------
5210 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5211 *--------------------------------------------------------------------------*/
5212typedef PACKED_PRE struct PACKED_POST
5213{
5214 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005215 tANI_U32 status;
5216 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005217} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5218
5219typedef PACKED_PRE struct PACKED_POST
5220{
5221 tHalMsgHeader header;
5222 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5223} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5224
5225/*---------------------------------------------------------------------------
5226 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5227 *--------------------------------------------------------------------------*/
5228typedef PACKED_PRE struct PACKED_POST
5229{
5230 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005231 tANI_U32 status;
5232 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005233} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5234
5235typedef PACKED_PRE struct PACKED_POST
5236{
5237 tHalMsgHeader header;
5238 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5239} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5240
5241/*---------------------------------------------------------------------------
5242 * WLAN_HAL_HOST_OFFLOAD_RSP
5243 *--------------------------------------------------------------------------*/
5244typedef PACKED_PRE struct PACKED_POST
5245{
5246 /* success or failure */
5247 tANI_U32 status;
5248} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5249
5250typedef PACKED_PRE struct PACKED_POST
5251{
5252 tHalMsgHeader header;
5253 tHalHostOffloadRspParams hostOffloadRspParams;
5254} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5255
5256/*---------------------------------------------------------------------------
5257 * WLAN_HAL_KEEP_ALIVE_RSP
5258 *--------------------------------------------------------------------------*/
5259typedef PACKED_PRE struct PACKED_POST
5260{
5261 /* success or failure */
5262 tANI_U32 status;
5263} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5264
5265typedef PACKED_PRE struct PACKED_POST
5266{
5267 tHalMsgHeader header;
5268 tHalKeepAliveRspParams keepAliveRspParams;
5269} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5270
5271/*---------------------------------------------------------------------------
5272 * WLAN_HAL_SET_RSSI_THRESH_RSP
5273 *--------------------------------------------------------------------------*/
5274typedef PACKED_PRE struct PACKED_POST
5275{
5276 /* success or failure */
5277 tANI_U32 status;
5278} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5279
5280typedef PACKED_PRE struct PACKED_POST
5281{
5282 tHalMsgHeader header;
5283 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5284} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5285
5286/*---------------------------------------------------------------------------
5287 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5288 *--------------------------------------------------------------------------*/
5289typedef PACKED_PRE struct PACKED_POST
5290{
5291 /* success or failure */
5292 tANI_U32 status;
5293} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5294
5295typedef PACKED_PRE struct PACKED_POST
5296{
5297 tHalMsgHeader header;
5298 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5299} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5300
5301/*---------------------------------------------------------------------------
5302 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5303 *--------------------------------------------------------------------------*/
5304typedef PACKED_PRE struct PACKED_POST
5305{
5306 /* success or failure */
5307 tANI_U32 status;
5308} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5309
5310typedef PACKED_PRE struct PACKED_POST
5311{
5312 tHalMsgHeader header;
5313 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5314} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5315
5316/*---------------------------------------------------------------------------
5317 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5318 *--------------------------------------------------------------------------*/
5319
5320typedef PACKED_PRE struct PACKED_POST
5321{
5322 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5323 //the request has power constraints, this should be applied only to that session
5324 tSirMacAddr selfStaMacAddr;
5325 //In request,
5326 //power == MaxTx power to be used.
5327 tPowerdBm power;
5328
5329}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5330
5331
5332typedef PACKED_PRE struct PACKED_POST
5333{
5334 tHalMsgHeader header;
5335 tSetMaxTxPwrParams setMaxTxPwrParams;
5336}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5337
5338/*---------------------------------------------------------------------------
5339*WLAN_HAL_SET_MAX_TX_POWER_RSP
5340*--------------------------------------------------------------------------*/
5341
5342typedef PACKED_PRE struct PACKED_POST
5343{
5344 //power == tx power used for management frames.
5345 tPowerdBm power;
5346
5347 /* success or failure */
5348 tANI_U32 status;
5349}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5350
5351typedef PACKED_PRE struct PACKED_POST
5352{
5353 tHalMsgHeader header;
5354 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5355}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5356
Kumar Anandea78e792013-10-10 23:47:01 -07005357
Jeff Johnson295189b2012-06-20 16:38:30 -07005358/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005359 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5360 *--------------------------------------------------------------------------*/
5361
5362/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5363typedef enum
5364{
5365 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5366 // For 2.4GHz or 5GHz bands
5367 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5368 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5369 // End of valid enums
5370 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5371}tHalSetMaxTxPwrBandInfo;
5372
5373typedef PACKED_PRE struct PACKED_POST
5374{
5375 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005376 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005377}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5378
Kumar Anandea78e792013-10-10 23:47:01 -07005379
Arif Hussain36fda162013-08-30 14:46:57 -07005380typedef PACKED_PRE struct PACKED_POST
5381{
5382 tHalMsgHeader header;
5383 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5384}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5385
5386/*---------------------------------------------------------------------------
5387*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5388*--------------------------------------------------------------------------*/
5389
5390typedef PACKED_PRE struct PACKED_POST
5391{
5392 //power == tx power used for management frames.
5393 tPowerdBm power;
5394
5395 /* success or failure */
5396 tANI_U32 status;
5397}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5398
5399typedef PACKED_PRE struct PACKED_POST
5400{
5401 tHalMsgHeader header;
5402 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5403}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5404
5405/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005406 *WLAN_HAL_SET_TX_POWER_REQ
5407 *--------------------------------------------------------------------------*/
5408
5409typedef PACKED_PRE struct PACKED_POST
5410{
5411 /* TX Power in milli watts */
5412 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005413 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005414}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5415
5416
5417typedef PACKED_PRE struct PACKED_POST
5418{
5419 tHalMsgHeader header;
5420 tSetTxPwrReqParams setTxPwrReqParams;
5421}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5422
5423/*---------------------------------------------------------------------------
5424*WLAN_HAL_SET_TX_POWER_RSP
5425*--------------------------------------------------------------------------*/
5426
5427typedef PACKED_PRE struct PACKED_POST
5428{
5429 /* success or failure */
5430 tANI_U32 status;
5431}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5432
5433typedef PACKED_PRE struct PACKED_POST
5434{
5435 tHalMsgHeader header;
5436 tSetTxPwrRspParams setTxPwrRspParams;
5437}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5438
5439/*---------------------------------------------------------------------------
5440 *WLAN_HAL_GET_TX_POWER_REQ
5441 *--------------------------------------------------------------------------*/
5442
5443typedef PACKED_PRE struct PACKED_POST
5444{
5445 tANI_U8 staId;
5446}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5447
5448typedef PACKED_PRE struct PACKED_POST
5449{
5450 tHalMsgHeader header;
5451 tGetTxPwrReqParams getTxPwrReqParams;
5452}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5453
5454/*---------------------------------------------------------------------------
5455*WLAN_HAL_GET_TX_POWER_RSP
5456*--------------------------------------------------------------------------*/
5457
5458typedef PACKED_PRE struct PACKED_POST
5459{
5460 /* success or failure */
5461 tANI_U32 status;
5462
5463 /* TX Power in milli watts */
5464 tANI_U32 txPower;
5465}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5466
5467typedef PACKED_PRE struct PACKED_POST
5468{
5469 tHalMsgHeader header;
5470 tGetTxPwrRspParams getTxPwrRspParams;
5471}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5472
5473#ifdef WLAN_FEATURE_P2P
5474/*---------------------------------------------------------------------------
5475 *WLAN_HAL_SET_P2P_GONOA_REQ
5476 *--------------------------------------------------------------------------*/
5477
5478typedef PACKED_PRE struct PACKED_POST
5479{
5480 tANI_U8 opp_ps;
5481 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305482 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005483 tANI_U32 duration;
5484 tANI_U32 interval;
5485 tANI_U32 single_noa_duration;
5486 tANI_U8 psSelection;
5487}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5488
5489
5490typedef PACKED_PRE struct PACKED_POST
5491{
5492 tHalMsgHeader header;
5493 tSetP2PGONOAParams setP2PGONOAParams;
5494}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5495
5496/*---------------------------------------------------------------------------
5497*WLAN_HAL_SET_P2P_GONOA_RSP
5498*--------------------------------------------------------------------------*/
5499
5500typedef PACKED_PRE struct PACKED_POST
5501{
5502 /* success or failure */
5503 tANI_U32 status;
5504}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5505
5506typedef PACKED_PRE struct PACKED_POST
5507{
5508 tHalMsgHeader header;
5509 tSetP2PGONOARspParams setP2PGONOARspParams;
5510}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5511#endif
5512
5513/*---------------------------------------------------------------------------
5514 *WLAN_HAL_ADD_SELF_STA_REQ
5515 *--------------------------------------------------------------------------*/
5516
5517typedef PACKED_PRE struct PACKED_POST
5518{
5519 tSirMacAddr selfMacAddr;
5520 tANI_U32 status;
5521}tAddStaSelfParams, *tpAddStaSelfParams;
5522
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005523typedef PACKED_PRE struct PACKED_POST
5524{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005525 tHalMsgHeader header;
5526 tAddStaSelfParams addStaSelfParams;
5527}tAddStaSelfReq, *tpAddStaSelfReq;
5528
5529/* This V1 structure carries additionally the IFACE PERSONA
5530 of the interface as compared to the legacy control
5531 message */
5532typedef PACKED_PRE struct PACKED_POST
5533{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005534 tSirMacAddr selfMacAddr;
5535 tANI_U32 status;
5536 tHalIfacePersona iface_persona;
5537}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005538
5539typedef PACKED_PRE struct PACKED_POST
5540{
5541 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005542 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005543}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005544
5545/*---------------------------------------------------------------------------
5546*WLAN_HAL_ADD_SELF_STA_RSP
5547*--------------------------------------------------------------------------*/
5548
5549typedef PACKED_PRE struct PACKED_POST
5550{
5551 /* success or failure */
5552 tANI_U32 status;
5553
5554 /*Self STA Index */
5555 tANI_U8 selfStaIdx;
5556
5557 /* DPU Index (IGTK, PTK, GTK all same) */
5558 tANI_U8 dpuIdx;
5559
5560 /* DPU Signature */
5561 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305562
Jeff Johnson295189b2012-06-20 16:38:30 -07005563}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5564
5565typedef PACKED_PRE struct PACKED_POST
5566{
5567 tHalMsgHeader header;
5568 tAddStaSelfRspParams addStaSelfRspParams;
5569}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5570
5571
5572/*---------------------------------------------------------------------------
5573 WLAN_HAL_DEL_STA_SELF_REQ
5574---------------------------------------------------------------------------*/
5575
5576typedef PACKED_PRE struct PACKED_POST
5577{
5578 tSirMacAddr selfMacAddr;
5579
5580}tDelStaSelfParams, *tpDelStaSelfParams;
5581
5582typedef PACKED_PRE struct PACKED_POST
5583{
5584 tHalMsgHeader header;
5585 tDelStaSelfParams delStaSelfParams;
5586} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5587
5588
5589/*---------------------------------------------------------------------------
5590 WLAN_HAL_DEL_STA_SELF_RSP
5591---------------------------------------------------------------------------*/
5592
5593typedef PACKED_PRE struct PACKED_POST
5594{
5595 /*success or failure */
5596 tANI_U32 status;
5597
5598 tSirMacAddr selfMacAddr;
5599}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5600
5601typedef PACKED_PRE struct PACKED_POST
5602{
5603 tHalMsgHeader header;
5604 tDelStaSelfRspParams delStaSelfRspParams;
5605} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5606
5607
5608#ifdef WLAN_FEATURE_VOWIFI_11R
5609
5610/*---------------------------------------------------------------------------
5611 *WLAN_HAL_AGGR_ADD_TS_REQ
5612 *--------------------------------------------------------------------------*/
5613
5614typedef PACKED_PRE struct PACKED_POST
5615{
5616 /* Station Index */
5617 tANI_U16 staIdx;
5618
5619 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5620 /* This will carry the bitmap with the bit positions representing different AC.s*/
5621 tANI_U16 tspecIdx;
5622
5623 /* Tspec info per AC To program TPE with required parameters */
5624 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5625
5626 /* U-APSD Flags: 1b per AC. Encoded as follows:
5627 b7 b6 b5 b4 b3 b2 b1 b0 =
5628 X X X X BE BK VI VO */
5629 tANI_U8 uAPSD;
5630
5631 /* These parameters are for all the access categories */
5632 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5633 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5634 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5635
5636}tAggrAddTsParams, *tpAggrAddTsParams;
5637
5638
5639typedef PACKED_PRE struct PACKED_POST
5640{
5641 tHalMsgHeader header;
5642 tAggrAddTsParams aggrAddTsParam;
5643}tAggrAddTsReq, *tpAggrAddTsReq;
5644
5645/*---------------------------------------------------------------------------
5646*WLAN_HAL_AGGR_ADD_TS_RSP
5647*--------------------------------------------------------------------------*/
5648
5649typedef PACKED_PRE struct PACKED_POST
5650{
5651 /* success or failure */
5652 tANI_U32 status0;
5653 /* FIXME PRIMA for future use for 11R */
5654 tANI_U32 status1;
5655}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5656
5657typedef PACKED_PRE struct PACKED_POST
5658{
5659 tHalMsgHeader header;
5660 tAggrAddTsRspParams aggrAddTsRspParam;
5661}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5662
5663#endif
5664
5665/*---------------------------------------------------------------------------
5666 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5667 *--------------------------------------------------------------------------*/
5668typedef PACKED_PRE struct PACKED_POST
5669{
5670 tANI_U8 isAppsCpuAwake;
5671} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5672
5673typedef PACKED_PRE struct PACKED_POST
5674{
5675 tHalMsgHeader header;
5676 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5677} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5678
5679/*---------------------------------------------------------------------------
5680 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5681 *--------------------------------------------------------------------------*/
5682typedef PACKED_PRE struct PACKED_POST
5683{
5684 /* success or failure */
5685 tANI_U32 status;
5686} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5687
5688typedef PACKED_PRE struct PACKED_POST
5689{
5690 tHalMsgHeader header;
5691 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5692} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5693/*---------------------------------------------------------------------------
5694 * WLAN_HAL_DUMP_COMMAND_REQ
5695 *--------------------------------------------------------------------------*/
5696
5697typedef PACKED_PRE struct PACKED_POST
5698{
5699 tANI_U32 argument1;
5700 tANI_U32 argument2;
5701 tANI_U32 argument3;
5702 tANI_U32 argument4;
5703 tANI_U32 argument5;
5704
5705}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5706
5707typedef PACKED_PRE struct PACKED_POST
5708{
5709 tHalMsgHeader header;
5710 tHalDumpCmdReqParams dumpCmdReqParams;
5711} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5712
5713/*---------------------------------------------------------------------------
5714 * WLAN_HAL_DUMP_COMMAND_RSP
5715 *--------------------------------------------------------------------------*/
5716
5717typedef PACKED_PRE struct PACKED_POST
5718{
5719 /* success or failure */
5720 tANI_U32 status;
5721 /*Length of the responce message*/
5722 tANI_U32 rspLength;
5723 /*FiXME: Currently considering the the responce will be less than 100bytes */
5724 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305725
Jeff Johnson295189b2012-06-20 16:38:30 -07005726} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5727
5728typedef PACKED_PRE struct PACKED_POST
5729{
5730 tHalMsgHeader header;
5731 tHalDumpCmdRspParams dumpCmdRspParams;
5732} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5733
5734/*---------------------------------------------------------------------------
5735 *WLAN_HAL_COEX_IND
5736 *-------------------------------------------------------------------------*/
5737#define WLAN_COEX_IND_DATA_SIZE (4)
5738#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5739#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005740#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5741#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005742#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5743#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305744#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5745#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305746#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005747
5748typedef PACKED_PRE struct PACKED_POST
5749{
5750 /*Coex Indication Type*/
5751 tANI_U32 coexIndType;
5752
5753 /*Coex Indication Data*/
5754 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5755}tCoexIndParams,*tpCoexIndParams;
5756
5757typedef PACKED_PRE struct PACKED_POST
5758{
5759 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305760 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005761}tCoexIndMsg, *tpCoexIndMsg;
5762
5763/*---------------------------------------------------------------------------
5764 *WLAN_HAL_OTA_TX_COMPL_IND
5765 *-------------------------------------------------------------------------*/
5766
5767typedef PACKED_PRE struct PACKED_POST
5768{
5769 /*Tx Complete Indication Success or Failure*/
5770 tANI_U32 status;
5771}tTxComplParams,*tpTxComplParams;
5772
5773typedef PACKED_PRE struct PACKED_POST
5774{
5775 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305776 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005777}tTxComplIndMsg, *tpTxComplIndMsg;
5778
5779/*---------------------------------------------------------------------------
5780 * WLAN_HAL_HOST_SUSPEND_IND
5781 *-------------------------------------------------------------------------*/
5782
5783typedef PACKED_PRE struct PACKED_POST
5784{
5785 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305786 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005787}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5788
5789typedef PACKED_PRE struct PACKED_POST
5790{
5791 tHalMsgHeader header;
5792 tHalWlanHostSuspendIndParam suspendIndParams;
5793}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5794
5795/*---------------------------------------------------------------------------
5796 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5797 *-------------------------------------------------------------------------*/
5798
5799typedef PACKED_PRE struct PACKED_POST
5800{
5801 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305802 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005803}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5804
5805typedef PACKED_PRE struct PACKED_POST
5806{
5807 tHalMsgHeader header;
5808 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5809}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5810
5811#ifdef WLAN_FEATURE_P2P
5812/*---------------------------------------------------------------------------
5813 *WLAN_HAL_NOA_ATTR_IND
5814 *-------------------------------------------------------------------------*/
5815
5816typedef PACKED_PRE struct PACKED_POST
5817{
5818 tANI_U8 index ;
5819 tANI_U8 oppPsFlag ;
5820 tANI_U16 ctWin ;
5821
5822 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005823 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005824 tANI_U32 uNoa1Duration;
5825 tANI_U32 uNoa1Interval;
5826 tANI_U32 uNoa1StartTime;
5827
5828 tANI_U16 uNoa2IntervalCnt;
5829 tANI_U16 rsvd2;
5830 tANI_U32 uNoa2Duration;
5831 tANI_U32 uNoa2Interval;
5832 tANI_U32 uNoa2StartTime;
5833
5834 tANI_U32 status;
5835}tNoaAttrIndParams, *tpNoaAttrIndParams;
5836
5837typedef PACKED_PRE struct PACKED_POST
5838{
5839 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305840 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005841}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005842
5843/*---------------------------------------------------------------------------
5844 *WLAN_HAL_NOA_START_IND
5845 *-------------------------------------------------------------------------*/
5846
5847typedef PACKED_PRE struct PACKED_POST
5848{
5849 tANI_U32 status;
5850 tANI_U32 bssIdx;
5851}tNoaStartIndParams, *tpNoaStartIndParams;
5852
5853typedef PACKED_PRE struct PACKED_POST
5854{
5855 tHalMsgHeader header;
5856 tNoaStartIndParams noaStartIndParams;
5857}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005858#endif
5859
5860/*---------------------------------------------------------------------------
5861 * WLAN_HAL_HOST_RESUME_REQ
5862 *-------------------------------------------------------------------------*/
5863
5864typedef PACKED_PRE struct PACKED_POST
5865{
5866 tANI_U8 configuredMcstBcstFilterSetting;
5867}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5868
5869typedef PACKED_PRE struct PACKED_POST
5870{
5871 tHalMsgHeader header;
5872 tHalWlanHostResumeReqParam resumeReqParams;
5873}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5874
5875/*---------------------------------------------------------------------------
5876 * WLAN_HAL_HOST_RESUME_RSP
5877 *--------------------------------------------------------------------------*/
5878typedef PACKED_PRE struct PACKED_POST
5879{
5880 /* success or failure */
5881 tANI_U32 status;
5882} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5883
5884typedef PACKED_PRE struct PACKED_POST
5885{
5886 tHalMsgHeader header;
5887 tHalHostResumeRspParams hostResumeRspParams;
5888} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5889
Anand Kumar012623a2013-01-11 17:00:00 -08005890typedef PACKED_PRE struct PACKED_POST
5891{
5892 tANI_U16 staIdx;
5893 // Peer MAC Address, whose BA session has timed out
5894 tSirMacAddr peerMacAddr;
5895 // TID for which a BA session timeout is being triggered
5896 tANI_U8 baTID;
5897 // DELBA direction
5898 // 1 - Originator
5899 // 0 - Recipient
5900 tANI_U8 baDirection;
5901 tANI_U32 reasonCode;
5902 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5903} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5904
5905typedef PACKED_PRE struct PACKED_POST
5906{
5907 tHalMsgHeader header;
5908 tHalWlanDelBaIndMsg hostdelBaParam;
5909} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5910
Jeff Johnson295189b2012-06-20 16:38:30 -07005911/*---------------------------------------------------------------------------
5912 *PNO Messages
5913 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005914/* Max number of channels that a network can be found on*/
5915/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5916 * be changed at same time
5917 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005918#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005919
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305920/*Max number of channels that a network can be found on*/
5921#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5922
Jeff Johnson295189b2012-06-20 16:38:30 -07005923/*Maximum numbers of networks supported by PNO*/
5924#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5925
5926/*The number of scan time intervals that can be programmed into PNO*/
5927#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5928
5929/*Maximum size of the probe template*/
5930#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5931
Dino Mycle8afbac12014-07-04 22:06:17 +05305932/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005933 Immediate - scanning will start immediately and PNO procedure will
5934 be repeated based on timer
5935 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005936 Resume - scanning will start on system resume
5937 Delay - start the scan timer to trigger PNO scan
5938 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005939typedef enum
5940{
5941 ePNO_MODE_IMMEDIATE,
5942 ePNO_MODE_ON_SUSPEND,
5943 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305944 ePNO_MODE_DELAY,
5945 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005946 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5947} ePNOMode;
5948
5949/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305950typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005951{
Dino Mycle8afbac12014-07-04 22:06:17 +05305952 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005953 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05305954
Jeff Johnson295189b2012-06-20 16:38:30 -07005955 // Upper layer authentication types
5956 eAUTH_TYPE_WPA = 2,
5957 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05305958
Jeff Johnson295189b2012-06-20 16:38:30 -07005959 eAUTH_TYPE_RSN = 4,
5960 eAUTH_TYPE_RSN_PSK = 5,
5961 eAUTH_TYPE_FT_RSN = 6,
5962 eAUTH_TYPE_FT_RSN_PSK = 7,
5963 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5964 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005965 eAUTH_TYPE_CCKM_WPA = 10,
5966 eAUTH_TYPE_CCKM_RSN = 11,
Dino Mycle8afbac12014-07-04 22:06:17 +05305967
Jeff Johnson295189b2012-06-20 16:38:30 -07005968 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5969
5970}tAuthType;
5971
5972/* Encryption type */
5973typedef enum eEdType
5974{
5975 eED_ANY = 0,
5976 eED_NONE = 1,
5977 eED_WEP = 2,
5978 eED_TKIP = 3,
5979 eED_CCMP = 4,
5980 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05305981
Jeff Johnson295189b2012-06-20 16:38:30 -07005982 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5983} tEdType;
5984
5985/* SSID broadcast type */
5986typedef enum eSSIDBcastType
5987{
5988 eBCAST_UNKNOWN = 0,
5989 eBCAST_NORMAL = 1,
5990 eBCAST_HIDDEN = 2,
5991
5992 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5993} tSSIDBcastType;
5994
Dino Mycle8afbac12014-07-04 22:06:17 +05305995/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005996 The network description for which PNO will have to look for
5997*/
5998typedef PACKED_PRE struct PACKED_POST
5999{
6000 /*SSID of the BSS*/
6001 tSirMacSSid ssId;
6002
6003 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306004 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006005
6006 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306007 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006008
Dino Mycle8afbac12014-07-04 22:06:17 +05306009 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006010 0 - if all channels */
6011 tANI_U8 ucChannelCount;
6012 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6013
6014 /*Indicates the RSSI threshold for the network to be considered*/
6015 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306016}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006017
6018typedef PACKED_PRE struct PACKED_POST
6019{
6020 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05306021 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07006022
Dino Mycle8afbac12014-07-04 22:06:17 +05306023 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07006024 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306025 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07006026
Dino Mycle8afbac12014-07-04 22:06:17 +05306027 /*e.g: 2 3
6028 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07006029 - it will wait 2s between consecutive scans for 3 times
6030 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306031}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07006032
Dino Mycle8afbac12014-07-04 22:06:17 +05306033/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006034 The network parameters to be sent to the PNO algorithm
6035*/
6036typedef PACKED_PRE struct PACKED_POST
6037{
6038 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306039 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006040
Dino Mycle8afbac12014-07-04 22:06:17 +05306041 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07006042 two consecutive scan procedures
6043 If the desired is for a uniform timer that fires always at the exact same
6044 interval - one single value is to be set
6045 If there is a desire for a more complex - telescopic like timer multiple
6046 values can be set - once PNO reaches the end of the array it will
6047 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306048 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006049
6050}tScanTimersType;
6051
6052typedef PACKED_PRE struct PACKED_POST {
6053
6054 /*Enable PNO*/
6055 tANI_U32 enable;
6056
6057 /*Immediate, On Suspend, On Resume*/
6058 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306059
Jeff Johnson295189b2012-06-20 16:38:30 -07006060 /*Number of networks sent for PNO*/
6061 tANI_U32 ucNetworksCount;
6062
6063 /*The networks that PNO needs to look for*/
6064 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6065
6066 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306067 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006068
6069 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306070 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006071 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6072
6073 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306074 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006075 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6076
6077} tPrefNetwListParams, * tpPrefNetwListParams;
6078
6079/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306080 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07006081*/
6082typedef PACKED_PRE struct PACKED_POST
6083{
6084 tHalMsgHeader header;
6085 tPrefNetwListParams prefNetwListParams;
6086} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
6087
6088
Dino Mycle8afbac12014-07-04 22:06:17 +05306089/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006090 The network description for which PNO will have to look for
6091*/
6092typedef PACKED_PRE struct PACKED_POST
6093{
6094 /*SSID of the BSS*/
6095 tSirMacSSid ssId;
6096
6097 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306098 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07006099
6100 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306101 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07006102
6103 /*SSID broadcast type, normal, hidden or unknown*/
6104 tSSIDBcastType bcastNetworkType;
6105
Dino Mycle8afbac12014-07-04 22:06:17 +05306106 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07006107 0 - if all channels */
6108 tANI_U8 ucChannelCount;
6109 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
6110
6111 /*Indicates the RSSI threshold for the network to be considered*/
6112 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05306113}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07006114
6115typedef PACKED_PRE struct PACKED_POST {
6116
6117 /*Enable PNO*/
6118 tANI_U32 enable;
6119
6120 /*Immediate, On Suspend, On Resume*/
6121 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306122
Jeff Johnson295189b2012-06-20 16:38:30 -07006123 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306124 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006125
6126 /*The networks that PNO needs to look for*/
6127 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6128
6129 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306130 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006131
6132 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306133 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006134 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6135
6136 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306137 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006138 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6139
6140} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6141
6142/*
6143 Preferred network list request new
6144*/
6145typedef PACKED_PRE struct PACKED_POST
6146{
6147 tHalMsgHeader header;
6148 tPrefNetwListParamsNew prefNetwListParams;
6149} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6150
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006151#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6152typedef PACKED_PRE struct PACKED_POST
6153{
6154 tSirMacSSid ssId;
6155 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6156 tANI_U32 authentication;
6157 tEdType encryption;
6158 tEdType mcencryption;
6159 tANI_U8 ChannelCount;
6160 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6161}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006162
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006163typedef PACKED_PRE struct PACKED_POST
6164{
6165 tANI_U8 mdiePresent;
6166 tANI_U16 mobilityDomain;
6167}tMobilityDomainInfo;
6168
6169typedef PACKED_PRE struct PACKED_POST {
6170 eAniBoolean RoamScanOffloadEnabled;
6171 tANI_S8 LookupThreshold;
6172 tANI_U8 RoamRssiDiff;
6173 tANI_U8 ChannelCacheType;
6174 tANI_U8 Command;
6175 tANI_U8 StartScanReason;
6176 tANI_U16 NeighborScanTimerPeriod;
6177 tANI_U16 NeighborRoamScanRefreshPeriod;
6178 tANI_U16 NeighborScanChannelMinTime;
6179 tANI_U16 NeighborScanChannelMaxTime;
6180 tANI_U16 EmptyRefreshScanPeriod;
6181 tANI_U8 ValidChannelCount;
6182 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006183 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006184
6185 tANI_U16 us24GProbeSize;
6186 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6187 tANI_U16 us5GProbeSize;
6188 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6189 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006190 tANI_U8 nProbes;
6191 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006192 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006193 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006194 tANI_U8 RoamOffloadEnabled;
6195 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6196 tANI_U8 Prefer5GHz;
6197 tANI_U8 RoamRssiCatGap;
6198 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006199 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6200 tRoamNetworkType ConnectedNetwork;
6201 tMobilityDomainInfo MDID;
6202} tRoamCandidateListParams, * tpRoamCandidateListParams;
6203
6204typedef PACKED_PRE struct PACKED_POST
6205{
Kumar Anandea78e792013-10-10 23:47:01 -07006206 tHalMsgHeader header;
6207 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006208} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6209
6210typedef PACKED_PRE struct PACKED_POST
6211{
Kumar Anandea78e792013-10-10 23:47:01 -07006212 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006213
Kumar Anandea78e792013-10-10 23:47:01 -07006214 /* status of the request - just to indicate that PNO has acknowledged
6215 * the request and will start scanning */
6216 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006217} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6218#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006219
6220/*
6221 Preferred network list response
6222*/
6223typedef PACKED_PRE struct PACKED_POST
6224{
6225 tHalMsgHeader header;
6226
6227 /* status of the request - just to indicate that PNO has acknowledged
6228 * the request and will start scanning*/
6229 tANI_U32 status;
6230} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6231
6232/*
6233 Preferred network indication parameters
6234*/
6235typedef PACKED_PRE struct PACKED_POST {
6236
6237 /*Network that was found with the highest RSSI*/
6238 tSirMacSSid ssId;
6239
6240 /*Indicates the RSSI */
6241 tANI_U8 rssi;
6242
6243 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6244 tANI_U16 frameLength;
6245
6246} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6247
6248/*
6249 Preferred network found indication
6250*/
6251typedef PACKED_PRE struct PACKED_POST {
6252
6253 tHalMsgHeader header;
6254 tPrefNetwFoundParams prefNetwFoundParams;
6255} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6256
6257
6258typedef PACKED_PRE struct PACKED_POST {
6259
6260 /*RSSI Threshold*/
6261 tANI_U8 ucRssiThreshold;
6262
6263} tRssiFilterParams, * tpRssiFilterParams;
6264
Jeff Johnson295189b2012-06-20 16:38:30 -07006265/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306266 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006267*/
6268typedef PACKED_PRE struct PACKED_POST
6269{
6270 tHalMsgHeader header;
6271 tRssiFilterParams prefRSSIFilterParams;
6272} tSetRssiFilterReq, *tpSetRssiFilterReq;
6273
6274/*
6275 Set RSSI filter resp
6276*/
6277typedef PACKED_PRE struct PACKED_POST{
6278 tHalMsgHeader header;
6279 /*status of the request */
6280 tANI_U32 status;
6281} tSetRssiFilterResp, *tpSetRssiFilterResp;
6282/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306283 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006284*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306285typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006286{
6287
6288 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306289 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006290
6291 /*Lets PNO know that host has determined the regulatory domain*/
6292 tANI_U8 b11dResolved;
6293
6294 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306295 tANI_U8 ucChannelCount;
6296 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006297
6298 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306299 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006300
6301 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306302 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006303
6304 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306305 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006306
6307 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306308 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006309
6310 /*Cb State*/
6311 ePhyChanBondState cbState;
6312
6313} tUpdateScanParams, * tpUpdateScanParams;
6314
6315/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306316 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306317*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306318typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306319{
6320
6321 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306322 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306323
6324 /*Lets PNO know that host has determined the regulatory domain*/
6325 tANI_U8 b11dResolved;
6326
6327 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306328 tANI_U8 ucChannelCount;
6329 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306330
6331 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306332 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306333
6334 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306335 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306336
6337 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306338 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306339
6340 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306341 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306342
6343 /*Cb State*/
6344 ePhyChanBondState cbState;
6345
6346} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6347
6348/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006349 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306350 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006351*/
6352typedef PACKED_PRE struct PACKED_POST{
6353
6354 tHalMsgHeader header;
6355 tUpdateScanParams scanParams;
6356} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6357
6358/*
6359 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306360 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006361*/
6362typedef PACKED_PRE struct PACKED_POST{
6363
6364 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306365 tUpdateScanParamsEx scanParams;
6366} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6367
6368/*
6369 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306370 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306371*/
6372typedef PACKED_PRE struct PACKED_POST{
6373
6374 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006375
6376 /*status of the request */
6377 tANI_U32 status;
6378
6379} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6380
6381/*---------------------------------------------------------------------------
6382 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6383 *--------------------------------------------------------------------------*/
6384typedef PACKED_PRE struct PACKED_POST
6385{
6386 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6387 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6388 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6389 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6390} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6391
6392typedef PACKED_PRE struct PACKED_POST
6393{
6394 tHalMsgHeader header;
6395 tHalTxPerTrackingReqParam txPerTrackingParams;
6396} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6397
6398/*---------------------------------------------------------------------------
6399 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6400 *--------------------------------------------------------------------------*/
6401typedef PACKED_PRE struct PACKED_POST
6402{
6403 /* success or failure */
6404 tANI_U32 status;
6405} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6406
6407typedef PACKED_PRE struct PACKED_POST
6408{
6409 tHalMsgHeader header;
6410 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6411} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6412
6413/*---------------------------------------------------------------------------
6414 * WLAN_HAL_TX_PER_HIT_IND
6415 *--------------------------------------------------------------------------*/
6416typedef PACKED_PRE struct PACKED_POST
6417{
6418 tHalMsgHeader header;
6419}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6420
6421/*---------------------------------------------------------------------------
6422 *******************Packet Filtering Definitions Begin*******************
6423 *--------------------------------------------------------------------------*/
6424#define HAL_PROTOCOL_DATA_LEN 8
6425#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6426#define HAL_MAX_NUM_FILTERS 20
6427#define HAL_MAX_CMP_PER_FILTER 10
6428
6429typedef enum
6430{
6431 HAL_RCV_FILTER_TYPE_INVALID,
6432 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6433 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6434 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6435}tHalReceivePacketFilterType;
6436
Dino Mycle8afbac12014-07-04 22:06:17 +05306437typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006438{
6439 HAL_FILTER_PROTO_TYPE_INVALID,
6440 HAL_FILTER_PROTO_TYPE_MAC,
6441 HAL_FILTER_PROTO_TYPE_ARP,
6442 HAL_FILTER_PROTO_TYPE_IPV4,
6443 HAL_FILTER_PROTO_TYPE_IPV6,
6444 HAL_FILTER_PROTO_TYPE_UDP,
6445 HAL_FILTER_PROTO_TYPE_MAX
6446}tHalRcvPktFltProtocolType;
6447
Dino Mycle8afbac12014-07-04 22:06:17 +05306448typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006449{
6450 HAL_FILTER_CMP_TYPE_INVALID,
6451 HAL_FILTER_CMP_TYPE_EQUAL,
6452 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6453 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6454 HAL_FILTER_CMP_TYPE_MAX
6455}tHalRcvPktFltCmpFlagType;
6456
Dino Mycle8afbac12014-07-04 22:06:17 +05306457typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006458{
6459 tANI_U8 protocolLayer;
6460 tANI_U8 cmpFlag;
6461 tANI_U16 dataLength; /* Length of the data to compare */
6462 tANI_U8 dataOffset; /* from start of the respective frame header */
6463 tANI_U8 reserved; /* Reserved field */
6464 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6465 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6466}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6467
6468typedef PACKED_PRE struct PACKED_POST
6469{
6470 tANI_U8 filterId;
6471 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306472 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006473 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006474 tHalRcvPktFilterParams paramsData[1];
6475}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6476
6477typedef PACKED_PRE struct PACKED_POST
6478{
Jeff Johnsone7245742012-09-05 17:12:55 -07006479 tANI_U8 filterId;
6480 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306481 tANI_U8 numParams;
6482 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006483 tANI_U8 bssIdx;
6484 tHalRcvPktFilterParams paramsData[1];
6485}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6486
6487typedef PACKED_PRE struct PACKED_POST
6488{
Jeff Johnson295189b2012-06-20 16:38:30 -07006489 tHalMsgHeader header;
6490 tHalRcvPktFilterCfgType pktFilterCfg;
6491} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6492
Jeff Johnsone7245742012-09-05 17:12:55 -07006493typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006494{
6495 tANI_U8 dataOffset; /* from start of the respective frame header */
6496 tANI_U32 cMulticastAddr;
6497 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006498 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006499} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6500
6501typedef PACKED_PRE struct PACKED_POST
6502{
6503 /* success or failure */
6504 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006505 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006506} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6507
6508typedef PACKED_PRE struct PACKED_POST
6509{
6510 tHalMsgHeader header;
6511 tHalSetPktFilterRspParams pktFilterRspParams;
6512} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6513
Jeff Johnsone7245742012-09-05 17:12:55 -07006514typedef PACKED_PRE struct PACKED_POST
6515{
6516 tANI_U8 bssIdx;
6517} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006518
6519typedef PACKED_PRE struct PACKED_POST
6520{
6521 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006522 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006523} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6524
Jeff Johnsone7245742012-09-05 17:12:55 -07006525
Jeff Johnson295189b2012-06-20 16:38:30 -07006526typedef PACKED_PRE struct PACKED_POST
6527{
6528 tANI_U8 filterId;
6529 tANI_U32 matchCnt;
6530} tHalRcvFltPktMatchCnt;
6531typedef PACKED_PRE struct PACKED_POST
6532{
6533 /* Success or Failure */
6534 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306535 tANI_U32 matchCnt;
6536 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006537 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006538} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6539
6540typedef PACKED_PRE struct PACKED_POST
6541{
6542 tHalMsgHeader header;
6543 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6544} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6545
6546typedef PACKED_PRE struct PACKED_POST
6547{
6548 tANI_U32 status; /* only valid for response message */
6549 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006550 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006551}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6552
6553typedef PACKED_PRE struct PACKED_POST
6554{
6555 tHalMsgHeader header;
6556 tHalRcvFltPktClearParam filterClearParam;
6557} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6558
6559typedef PACKED_PRE struct PACKED_POST
6560{
6561 tHalMsgHeader header;
6562 tHalRcvFltPktClearParam filterClearParam;
6563} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6564
6565typedef PACKED_PRE struct PACKED_POST
6566{
Dino Mycle8afbac12014-07-04 22:06:17 +05306567 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006568 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006569}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6570
6571typedef PACKED_PRE struct PACKED_POST
6572{
6573 tHalMsgHeader header;
6574 tHalRcvFltMcAddrListType mcAddrList;
6575} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6576
6577typedef PACKED_PRE struct PACKED_POST
6578{
6579 tHalMsgHeader header;
6580 tHalRcvFltPktSetMcListRspType rspParam;
6581} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6582
6583
6584/*---------------------------------------------------------------------------
6585 *******************Packet Filtering Definitions End*******************
6586 *--------------------------------------------------------------------------*/
6587
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006588/*
6589 * There are two versions of this message
6590 * Version 1 : Base version
6591 * Current version : Base version + Max LI modulated DTIM
6592 */
6593typedef PACKED_PRE struct PACKED_POST
6594{
6595 /* Ignore DTIM */
6596 tANI_U32 uIgnoreDTIM;
6597
6598 /*DTIM Period*/
6599 tANI_U32 uDTIMPeriod;
6600
6601 /* Listen Interval */
6602 tANI_U32 uListenInterval;
6603
6604 /* Broadcast Multicast Filter */
6605 tANI_U32 uBcastMcastFilter;
6606
6607 /* Beacon Early Termination */
6608 tANI_U32 uEnableBET;
6609
6610 /* Beacon Early Termination Interval */
6611 tANI_U32 uBETInterval;
6612}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6613
6614typedef PACKED_PRE struct PACKED_POST
6615{
6616 tHalMsgHeader header;
6617 tSetPowerParamsVer1Type powerParams;
6618} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6619
Jeff Johnson295189b2012-06-20 16:38:30 -07006620typedef PACKED_PRE struct PACKED_POST
6621{
6622 /* Ignore DTIM */
6623 tANI_U32 uIgnoreDTIM;
6624
6625 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306626 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006627
6628 /* Listen Interval */
6629 tANI_U32 uListenInterval;
6630
6631 /* Broadcast Multicast Filter */
6632 tANI_U32 uBcastMcastFilter;
6633
6634 /* Beacon Early Termination */
6635 tANI_U32 uEnableBET;
6636
6637 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306638 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006639
6640 /* MAX LI for modulated DTIM */
6641 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006642}tSetPowerParamsType, *tpSetPowerParamsType;
6643
6644typedef PACKED_PRE struct PACKED_POST
6645{
6646 tHalMsgHeader header;
6647 tSetPowerParamsType powerParams;
6648} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6649
6650typedef PACKED_PRE struct PACKED_POST{
6651
6652 tHalMsgHeader header;
6653
6654 /*status of the request */
6655 tANI_U32 status;
6656
6657} tSetPowerParamsResp, *tpSetPowerParamsResp;
6658
6659/*---------------------------------------------------------------------------
6660 ****************Capability bitmap exchange definitions and macros starts*************
6661 *--------------------------------------------------------------------------*/
6662
Anand Kumar012623a2013-01-11 17:00:00 -08006663typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006664 MCC = 0,
6665 P2P = 1,
6666 DOT11AC = 2,
6667 SLM_SESSIONIZATION = 3,
6668 DOT11AC_OPMODE = 4,
6669 SAP32STA = 5,
6670 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006671 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006672 WLANACTIVE_OFFLOAD = 8,
6673 BEACON_OFFLOAD = 9,
6674 SCAN_OFFLOAD = 10,
6675 ROAM_OFFLOAD = 11,
6676 BCN_MISS_OFFLOAD = 12,
6677 STA_POWERSAVE = 13,
6678 STA_ADVANCED_PWRSAVE = 14,
6679 AP_UAPSD = 15,
6680 AP_DFS = 16,
6681 BLOCKACK = 17,
6682 PHY_ERR = 18,
6683 BCN_FILTER = 19,
6684 RTT = 20,
6685 RATECTRL = 21,
6686 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006687 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006688 SPECULATIVE_PS_POLL = 24,
6689 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006690 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006691 WLAN_SCAN_OFFLOAD = 27,
6692 WLAN_PERIODIC_TX_PTRN = 28,
6693 ADVANCE_TDLS = 29,
6694 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306695 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306696 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306697 CH_SWITCH_V1 = 33,
6698 HT40_OBSS_SCAN = 34,
6699 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006700 WLAN_MCADDR_FLT = 36,
6701 WLAN_CH144 = 37,
6702 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306703 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306704 LINK_LAYER_STATS_MEAS = 40,
6705 MU_MIMO = 41,
6706 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306707 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306708 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306709 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306710 DISA = 46,
6711 FW_STATS = 47,
Sachin Ahuja2b1c5f72014-11-25 17:20:26 +05306712 WPS_PRBRSP_TMPL = 48,
Abhishek Singh073cee82014-11-26 14:55:26 +05306713 BCN_IE_FLT_DELTA = 49,
Pradeep Reddy POTTETI88a23ee2015-02-25 18:17:39 +05306714 TDLS_OFF_CHANNEL = 51,
Kumar Anandea78e792013-10-10 23:47:01 -07006715 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006716} placeHolderInCapBitmap;
6717
Jeff Johnson295189b2012-06-20 16:38:30 -07006718typedef PACKED_PRE struct PACKED_POST{
6719
6720 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006721} tWlanFeatCaps, *tpWlanFeatCaps;
6722
6723typedef PACKED_PRE struct PACKED_POST{
6724
Dino Mycle8afbac12014-07-04 22:06:17 +05306725 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006726 tWlanFeatCaps wlanFeatCaps;
6727
6728} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6729
Jeff Johnsone7245742012-09-05 17:12:55 -07006730#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6731#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006732#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006733#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006734#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006735#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006736#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006737#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306738#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306739#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306740#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306741#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006742
Jeff Johnsone7245742012-09-05 17:12:55 -07006743tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6744
Jeff Johnson295189b2012-06-20 16:38:30 -07006745#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006746 if ((b)<=127) { \
6747 arr_index = (b)/32; \
6748 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006749 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006750 (a)->featCaps[arr_index] |= (1<<bit_index); \
6751 } \
6752 }
6753#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006754 if ((b)<=127) { \
6755 arr_index = (b)/32; \
6756 bit_index = (b)%32; \
6757 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006758 } \
6759 }
6760#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006761 if ((b)<=127) { \
6762 arr_index = (b)/32; \
6763 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006764 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006765 } \
6766 }
6767
6768/*---------------------------------------------------------------------------
6769 * WLAN_HAL_WAKE_REASON_IND
6770 *--------------------------------------------------------------------------*/
6771
6772/* status codes to help debug rekey failures */
6773typedef enum
6774{
6775 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6776 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6777 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6778 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6779 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6780 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6781 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6782 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6783 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6784 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6785
6786 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6787} tGTKRekeyStatus;
6788
6789/* wake reason types */
6790typedef enum
6791{
6792 WLAN_HAL_WAKE_REASON_NONE = 0,
6793 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6794 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6795 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6796 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6797 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6798 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6799 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6800} tWakeReasonType;
6801
6802/*
6803 Wake Packet which is saved at tWakeReasonParams.DataStart
6804 This data is sent for any wake reasons that involve a packet-based wakeup :
6805
6806 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6807 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6808 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6809 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6810 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6811
6812 The information is provided to the host for auditing and debug purposes
6813
6814*/
6815
6816/*
6817 Wake reason indication parameters
6818*/
6819typedef PACKED_PRE struct PACKED_POST
6820{
6821 uint32 ulReason; /* see tWakeReasonType */
6822 uint32 ulReasonArg; /* argument specific to the reason type */
6823 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6824 HAL truncates the data (i.e. data packets) this length
6825 will be less than the actual length */
6826 uint32 ulActualDataLen; /* actual length of data */
6827 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6828 see specific wake type */
6829} tWakeReasonParams, *tpWakeReasonParams;
6830
6831/*
6832 Wake reason indication
6833*/
6834typedef PACKED_PRE struct PACKED_POST
6835{
6836 tHalMsgHeader header;
6837 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006838 tANI_U32 uBssIdx : 8;
6839 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006840} tHalWakeReasonInd, *tpHalWakeReasonInd;
6841
6842/*---------------------------------------------------------------------------
6843* WLAN_HAL_GTK_OFFLOAD_REQ
6844*--------------------------------------------------------------------------*/
6845
6846#define HAL_GTK_KEK_BYTES 16
6847#define HAL_GTK_KCK_BYTES 16
6848
6849#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6850
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006851#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6852
Jeff Johnson295189b2012-06-20 16:38:30 -07006853typedef PACKED_PRE struct PACKED_POST
6854{
6855 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306856 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006857 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6858 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006859 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006860} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6861
6862typedef PACKED_PRE struct PACKED_POST
6863{
6864 tHalMsgHeader header;
6865 tHalGtkOffloadReqParams gtkOffloadReqParams;
6866} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6867
6868/*---------------------------------------------------------------------------
6869* WLAN_HAL_GTK_OFFLOAD_RSP
6870*--------------------------------------------------------------------------*/
6871typedef PACKED_PRE struct PACKED_POST
6872{
6873 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006874 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006875} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6876
6877typedef PACKED_PRE struct PACKED_POST
6878{
6879 tHalMsgHeader header;
6880 tHalGtkOffloadRspParams gtkOffloadRspParams;
6881} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6882
6883
6884/*---------------------------------------------------------------------------
6885* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6886*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006887typedef PACKED_PRE struct PACKED_POST
6888{
6889 tANI_U8 bssIdx;
6890
6891} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006892
6893typedef PACKED_PRE struct PACKED_POST
6894{
6895 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006896 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006897} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6898
6899/*---------------------------------------------------------------------------
6900* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6901*--------------------------------------------------------------------------*/
6902typedef PACKED_PRE struct PACKED_POST
6903{
6904 tANI_U32 ulStatus; /* success or failure */
6905 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6906 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6907 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6908 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6909 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006910 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006911} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6912
6913typedef PACKED_PRE struct PACKED_POST
6914{
6915 tHalMsgHeader header;
6916 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6917} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6918
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006919/*---------------------------------------------------------------------------
6920* WLAN_HAL_DHCP_IND
6921*--------------------------------------------------------------------------*/
6922typedef PACKED_PRE struct PACKED_POST
6923{
6924 /*Indicates the device mode which indicates about the DHCP activity */
6925 tANI_U8 device_mode;
6926 tSirMacAddr macAddr;
6927} tDHCPInfo, *tpDHCPInfo;
6928
6929typedef PACKED_PRE struct PACKED_POST
6930{
6931 tHalMsgHeader header;
6932 tANI_U32 status; /* success or failure */
6933} tDHCPIndStatus, *tpDHCPIndstatus;
6934
Jeff Johnson295189b2012-06-20 16:38:30 -07006935/*
6936 Thermal Mitigation mode of operation.
6937 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6938 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6939 reducing transmit power
6940 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6941*/
6942typedef enum
6943{
6944 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6945 HAL_THERMAL_MITIGATION_MODE_0,
6946 HAL_THERMAL_MITIGATION_MODE_1,
6947 HAL_THERMAL_MITIGATION_MODE_2,
6948 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6949}tHalThermalMitigationModeType;
6950//typedef tANI_S16 tHalThermalMitigationModeType;
6951
6952/*
6953 Thermal Mitigation level.
6954 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6955 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6956
6957 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6958 level indicates normal mode of operation
6959 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6960 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6961 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6962 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6963*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306964typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006965{
6966 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6967 HAL_THERMAL_MITIGATION_LEVEL_0,
6968 HAL_THERMAL_MITIGATION_LEVEL_1,
6969 HAL_THERMAL_MITIGATION_LEVEL_2,
6970 HAL_THERMAL_MITIGATION_LEVEL_3,
6971 HAL_THERMAL_MITIGATION_LEVEL_4,
6972 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6973}tHalThermalMitigationLevelType;
6974//typedef tANI_S16 tHalThermalMitigationLevelType;
6975
6976typedef PACKED_PRE struct PACKED_POST
6977{
6978 /* Thermal Mitigation Operation Mode */
6979 tHalThermalMitigationModeType thermalMitMode;
6980
6981 /* Thermal Mitigation Level */
6982 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05306983
Jeff Johnson295189b2012-06-20 16:38:30 -07006984}tSetThermalMitgationType, *tpSetThermalMitgationType;
6985
6986/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6987typedef PACKED_PRE struct PACKED_POST
6988{
6989 tHalMsgHeader header;
6990 tSetThermalMitgationType thermalMitParams;
6991} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6992
6993typedef PACKED_PRE struct PACKED_POST{
6994
6995 tHalMsgHeader header;
6996
6997 /*status of the request */
6998 tANI_U32 status;
6999
7000} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
7001
Dino Mycle8afbac12014-07-04 22:06:17 +05307002/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08007003provided to FW from Host via periodic messages */
7004typedef PACKED_PRE struct PACKED_POST {
7005 /* TX stats */
7006 uint32 txBytesPushed;
7007 uint32 txPacketsPushed;
7008
7009 /* RX stats */
7010 uint32 rxBytesRcvd;
7011 uint32 rxPacketsRcvd;
7012 uint32 rxTimeTotal;
7013} tStaStatsClassB, *tpStaStatsClassB;
7014
7015typedef PACKED_PRE struct PACKED_POST {
7016
7017 /* Duration over which this stats was collected */
7018 tANI_U32 duration;
7019
7020 /* Per STA Stats */
7021 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
7022} tStatsClassBIndParams, *tpStatsClassBIndParams;
7023
7024typedef PACKED_PRE struct PACKED_POST {
7025
7026 tHalMsgHeader header;
7027
7028 /* Class B Stats */
7029 tStatsClassBIndParams statsClassBIndParams;
7030} tStatsClassBInd, *tpStatsClassBInd;
7031
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05307032/*Wifi Proximity paramters in AP mode*/
7033#ifdef FEATURE_WIFI_PROXIMITY
7034
7035typedef PACKED_PRE struct PACKED_POST{
7036
7037 tANI_U8 wifiProximityChannel;
7038 tANI_U32 wifiProximityDuration;
7039 tANI_U32 wifiProximityInterval;
7040 tANI_U32 wifiProximityMode;
7041 tANI_U32 wifiProximityStatus;
7042 tSirMacAddr bssId;
7043 tSirMacSSid ssId;
7044
7045} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
7046
7047typedef PACKED_PRE struct PACKED_POST
7048{
7049 tHalMsgHeader header;
7050
7051 tSetWifiProximityReqParam wifiProximityReqParams;
7052
7053}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
7054
7055/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
7056typedef PACKED_PRE struct PACKED_POST{
7057
7058 tHalMsgHeader header;
7059
7060 /*status of the request */
7061 tANI_U32 status;
7062
7063} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
7064
7065#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07007066
7067#ifdef FEATURE_SPECULATIVE_PS_POLL
7068/*---------------------------------------------------------------------------
7069 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
7070 *--------------------------------------------------------------------------*/
7071typedef PACKED_PRE struct PACKED_POST
7072{
7073 tANI_U8 bssIdx;
7074 tANI_U16 serviceInterval;
7075 tANI_U16 suspendInterval;
7076 tANI_U8 acMask;
7077} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
7078
7079typedef PACKED_PRE struct PACKED_POST
7080{
7081 tHalMsgHeader header;
7082 tHalStartSpecPsPollReqParams specPsPollReq;
7083} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
7084
7085/*---------------------------------------------------------------------------
7086 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
7087 *--------------------------------------------------------------------------*/
7088typedef PACKED_PRE struct PACKED_POST
7089{
7090 /* success or failure */
7091 tANI_U32 status;
7092 tANI_U8 bssIdx;
7093} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
7094
7095typedef PACKED_PRE struct PACKED_POST
7096{
7097 tHalMsgHeader header;
7098 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
7099} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
7100
7101/*---------------------------------------------------------------------------
7102 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
7103 *--------------------------------------------------------------------------*/
7104typedef PACKED_PRE struct PACKED_POST
7105{
7106 tHalMsgHeader header;
7107 tANI_U8 bssIdx;
7108} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
7109#endif
7110
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307111#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307112#define HAL_MAX_SUPP_CHANNELS 128
7113#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307114/*---------------------------------------------------------------------------
7115 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
7116 *-------------------------------------------------------------------------*/
7117typedef PACKED_PRE struct PACKED_POST
7118{
7119 /*STA Index*/
7120 tANI_U16 staIdx;
7121
7122 /* if this is 1, self is initiator and peer is reponder */
7123 tANI_U8 bIsResponder;
7124
7125 /* QoS Info */
7126 tANI_U8 acVOUAPSDFlag:1;
7127 tANI_U8 acVIUAPSDFlag:1;
7128 tANI_U8 acBKUAPSDFlag:1;
7129 tANI_U8 acBEUAPSDFlag:1;
7130 tANI_U8 aAck:1;
7131 tANI_U8 maxServicePeriodLength:2;
7132 tANI_U8 moreDataAck:1;
7133
7134 /*TDLS Peer U-APSD Buffer STA Support*/
7135 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007136
7137 /*TDLS off channel related params */
7138 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307139 tANI_U8 peerCurrOperClass;
7140 tANI_U8 selfCurrOperClass;
7141 tANI_U8 validChannelsLen;
7142 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7143 tANI_U8 validOperClassesLen;
7144 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307145}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7146
7147typedef PACKED_PRE struct PACKED_POST
7148{
7149 tHalMsgHeader header;
7150 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7151} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7152
7153/*---------------------------------------------------------------------------
7154 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7155 *-------------------------------------------------------------------------*/
7156
7157typedef PACKED_PRE struct PACKED_POST
7158{
7159 tANI_U32 status;
7160
7161 /*STA Index*/
7162 tANI_U16 staIdx;
7163} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7164
7165typedef PACKED_PRE struct PACKED_POST
7166{
7167 tHalMsgHeader header;
7168 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7169} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307170/*---------------------------------------------------------------------------
7171 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7172 + *-------------------------------------------------------------------------*/
7173typedef PACKED_PRE struct PACKED_POST
7174{
7175 /*STA Index*/
7176 tANI_U16 staIdx;
7177 /* if this is 1, self is initiator otherwise responder only*/
7178 tANI_U8 isOffchannelInitiator;
7179 /*TDLS off channel related params */
7180 tANI_U8 targetOperClass;
7181 tANI_U8 targetChannel;
7182 tANI_U8 secondaryChannelOffset;
7183 tANI_U8 reserved[32];
7184}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7185
7186typedef PACKED_PRE struct PACKED_POST
7187{
7188 tHalMsgHeader header;
7189 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7190} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7191/*---------------------------------------------------------------------------
7192 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7193 *-------------------------------------------------------------------------*/
7194
7195typedef PACKED_PRE struct PACKED_POST
7196{
7197 tANI_U32 status;
7198 /*STA Index*/
7199 tANI_U16 staIdx;
7200} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7201
7202typedef PACKED_PRE struct PACKED_POST
7203{
7204 tHalMsgHeader header;
7205 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7206} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7207
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307208
7209/*---------------------------------------------------------------------------
7210 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7211 *-------------------------------------------------------------------------*/
7212typedef PACKED_PRE struct PACKED_POST
7213{
7214 /*STA Index*/
7215 tANI_U16 staIdx;
7216}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7217
7218typedef PACKED_PRE struct PACKED_POST
7219{
7220 tHalMsgHeader header;
7221 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7222} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7223
7224/*---------------------------------------------------------------------------
7225 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7226 *-------------------------------------------------------------------------*/
7227
7228typedef PACKED_PRE struct PACKED_POST
7229{
7230 tANI_U32 status;
7231
7232 /*STA Index*/
7233 tANI_U16 staIdx;
7234} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7235
7236typedef PACKED_PRE struct PACKED_POST
7237{
7238 tHalMsgHeader header;
7239 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7240} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7241
7242/*---------------------------------------------------------------------------
7243 *WLAN_HAL_TDLS_IND
7244 *--------------------------------------------------------------------------*/
7245
7246typedef PACKED_PRE struct PACKED_POST
7247{
7248 tANI_U16 assocId;
7249 tANI_U16 staIdx;
7250 tANI_U16 status;
7251 tANI_U16 reasonCode;
7252}tTdlsIndParams, *tpTdlsIndParams;
7253
7254
7255typedef PACKED_PRE struct PACKED_POST
7256{
7257 tHalMsgHeader header;
7258 tTdlsIndParams tdlsIndParams;
7259}tTdlsIndMsg, *tpTdlsIndMsg;
7260
7261#endif
7262
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007263/*---------------------------------------------------------------------------
7264 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7265 *--------------------------------------------------------------------------*/
7266
7267typedef PACKED_PRE struct PACKED_POST
7268{
7269 tANI_U8 bssIdx;
7270 tANI_U8 staIdx;
7271 tSirMacAddr staAddr;
7272}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7273
7274
7275typedef PACKED_PRE struct PACKED_POST
7276{
7277 tHalMsgHeader header;
7278 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7279}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7280
7281
Kumar Anandea78e792013-10-10 23:47:01 -07007282/*********** Scan Offload Related Structures *************/
7283#define HAL_NUM_SCAN_SSID 10
7284#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007285
Kumar Anandea78e792013-10-10 23:47:01 -07007286/*
7287 * Enumetation to indicate scan type (active/passive)
7288 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007289typedef enum
7290{
Kumar Anandea78e792013-10-10 23:47:01 -07007291 eSIR_PASSIVE_SCAN,
7292 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7293} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007294
7295typedef PACKED_PRE struct PACKED_POST
7296{
Kumar Anandea78e792013-10-10 23:47:01 -07007297 tANI_U8 numBssid;
7298 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7299 tANI_U8 numSsid;
7300 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7301 tANI_BOOLEAN hiddenSsid;
7302 tSirMacAddr selfMacAddr;
7303 tSirBssType bssType;
7304 tSirScanType scanType;
7305 tANI_U32 minChannelTime;
7306 tANI_U32 maxChannelTime;
7307 tANI_BOOLEAN p2pSearch;
7308 tANI_U8 channelCount;
7309 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7310 tANI_U16 ieFieldLen;
7311 tANI_U8 ieField[1];
7312}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007313
7314/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007315 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007316 *-------------------------------------------------------------------------*/
7317typedef PACKED_PRE struct PACKED_POST
7318{
Kumar Anandf53016f2013-09-04 15:15:53 -07007319 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007320 tScanOffloadReqType scanOffloadParams;
7321} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007322
7323/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007324 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007325 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007326typedef PACKED_PRE struct PACKED_POST
7327{
7328 tHalMsgHeader header;
7329
7330 /*status of the request - just to indicate SO has acknowledged
7331 * * the request and will start scanning*/
7332 tANI_U32 status;
7333} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7334
7335/*---------------------------------------------------------------------------
7336 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7337 *-------------------------------------------------------------------------*/
7338typedef PACKED_PRE struct PACKED_POST
7339{
7340 tHalMsgHeader header;
7341} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7342
7343/*---------------------------------------------------------------------------
7344 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7345 *-------------------------------------------------------------------------*/
7346typedef PACKED_PRE struct PACKED_POST
7347{
7348 tHalMsgHeader header;
7349
7350 /*status of the request - just to indicate SO has acknowledged
7351 the request and will start scanning*/
7352 tANI_U32 status;
7353} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7354
7355/*
7356 * Enumetation of scan events indicated by firmware to the host
7357 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007358typedef enum
7359{
Kumar Anandea78e792013-10-10 23:47:01 -07007360 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7361 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7362 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7363 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7364 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7365 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7366 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7367 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7368 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7369} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007370
7371typedef PACKED_PRE struct PACKED_POST
7372{
Kumar Anandea78e792013-10-10 23:47:01 -07007373 tScanEventType event;
7374 tANI_U32 channel;
7375 tANI_U32 scanId;
7376} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007377
Kumar Anandea78e792013-10-10 23:47:01 -07007378/*---------------------------------------------------------------------------
7379 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7380 *-------------------------------------------------------------------------*/
7381typedef PACKED_PRE struct PACKED_POST
7382{
7383 tHalMsgHeader header;
7384 tScanOffloadEventInfo scanOffloadInd;
7385} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007386
Kumar Anandea78e792013-10-10 23:47:01 -07007387typedef PACKED_PRE struct PACKED_POST {
7388 /** primary 20 MHz channel frequency in mhz */
7389 tANI_U32 mhz;
7390 /** Center frequency 1 in MHz*/
7391 tANI_U32 band_center_freq1;
7392 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7393 tANI_U32 band_center_freq2;
7394 /* The first 26 bits are a bit mask to indicate any channel flags,
7395 (see WLAN_HAL_CHAN_FLAG*)
7396 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7397 tANI_U32 channel_info;
7398 /** contains min power, max power, reg power and reg class id. */
7399 tANI_U32 reg_info_1;
7400 /** contains antennamax */
7401 tANI_U32 reg_info_2;
7402} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007403
Kumar Anandf53016f2013-09-04 15:15:53 -07007404
Kumar Anandea78e792013-10-10 23:47:01 -07007405typedef enum {
7406 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7407 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7408 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7409 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7410 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7411 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7412 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7413 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7414 WLAN_HAL_MODE_11AC_VHT20 = 8,
7415 WLAN_HAL_MODE_11AC_VHT40 = 9,
7416 WLAN_HAL_MODE_11AC_VHT80 = 10,
7417 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7418 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7419 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7420 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007421
Kumar Anandea78e792013-10-10 23:47:01 -07007422} tChannelPhyModeType;
7423
7424#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7425#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7426#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7427#define WLAN_HAL_CHAN_AP_DISABLED 9
7428#define WLAN_HAL_CHAN_FLAG_DFS 10
7429#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7430#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007431#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7432
7433#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007434 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007435 } while(0)
7436
7437#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007438 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007439
7440#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7441 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7442 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7443 } while(0)
7444#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7445
7446#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7447 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7448 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7449 } while(0)
7450#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7451
7452#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7453 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7454 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7455 } while(0)
7456#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7457#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7458 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7459 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7460 } while(0)
7461#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7462
7463#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7464 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7465 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7466 } while(0)
7467#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7468
7469#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7470 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7471 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7472 } while(0)
7473#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 -07007474
7475typedef PACKED_PRE struct PACKED_POST
7476{
7477 tANI_U8 numChan;
7478 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7479} tUpdateChannelReqType;
7480
7481/*---------------------------------------------------------------------------
7482 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7483 *-------------------------------------------------------------------------*/
7484typedef PACKED_PRE struct PACKED_POST
7485{
7486 tHalMsgHeader header;
7487 tUpdateChannelReqType updateChannelParams;
7488} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7489
7490/*---------------------------------------------------------------------------
7491 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7492 *-------------------------------------------------------------------------*/
7493typedef PACKED_PRE struct PACKED_POST
7494{
7495 tHalMsgHeader header;
7496
7497 /*status of the request - just to indicate SO has acknowledged
7498 * * the request and will start scanning*/
7499 tANI_U32 status;
7500} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7501
7502
7503/*---------------------------------------------------------------------------
7504* WLAN_HAL_TX_FAIL_IND
7505*--------------------------------------------------------------------------*/
7506// Northbound indication from FW to host on weak link detection
7507typedef PACKED_PRE struct PACKED_POST
7508{
7509 // Sequence number increases by 1 whenever the device driver
7510 // sends a notification event. This is cleared as 0 when the
7511 // JOIN IBSS commamd is issued
7512 tANI_U16 seqNo;
7513 tANI_U16 staId;
7514 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7515} tHalTXFailIndParams, *tpHalTXFailIndParams;
7516
7517typedef PACKED_PRE struct PACKED_POST
7518{
7519 tHalMsgHeader header;
7520 tHalTXFailIndParams txFailIndParams;
7521} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7522
7523/*---------------------------------------------------------------------------
7524* WLAN_HAL_TX_FAIL_MONITOR_IND
7525*--------------------------------------------------------------------------*/
7526// Southbound message from Host to monitor the Tx failures
7527typedef PACKED_PRE struct PACKED_POST
7528{
7529 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7530 tANI_U8 tx_fail_count;
7531} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7532
7533typedef PACKED_PRE struct PACKED_POST
7534{
7535 tHalMsgHeader header;
7536 tTXFailMonitorInfo txFailMonitor;
7537} tTXFailMonitorInd, *tpTXFailMonitorInd;
7538
7539/*---------------------------------------------------------------------------
7540* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7541*--------------------------------------------------------------------------*/
7542typedef PACKED_PRE struct PACKED_POST
7543{
7544 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7545 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7546} tDestIpNextHopMacPair;
7547
7548typedef PACKED_PRE struct PACKED_POST
7549{
7550 tANI_U8 numEntries;
7551 tDestIpNextHopMacPair destIpMacPair[1];
7552} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007553
7554typedef PACKED_PRE struct PACKED_POST
7555{
7556 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007557 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7558} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007559
Kumar Anandf53016f2013-09-04 15:15:53 -07007560/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007561 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7562 *-------------------------------------------------------------------------*/
7563typedef enum
7564{
7565 /* reassociation is done, but couldn't finish security handshake */
7566 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7567
7568 /* roam has successfully completed by firmware */
7569 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7570
7571 /* UNKONW error */
7572 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7573}tHalRoamOffloadRoamAuthStatus;
7574
7575typedef enum
7576{
7577 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7578 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7579 WLAN_HAL_ROAM_TYPE_OKC,
7580 WLAN_HAL_ROAM_TYPE_CCKM,
7581 WLAN_HAL_ROAM_TYPE_FT,
7582 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7583} tHalRoamOffloadType;
7584
7585typedef PACKED_PRE struct PACKED_POST
7586{
7587 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7588 tANI_U16 beaconProbeRespOffset;
7589
7590 /* Length of beaon / probe resp. */
7591 tANI_U16 beaconProbeRespLength;
7592
7593 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7594 tANI_U16 reassocRespOffset;
7595
7596 /* Length of reassoc resp. */
7597 tANI_U16 reassocRespLength;
7598
7599 /* 0 for probe response frame, 1 for beacon frame, */
7600 tANI_U8 isBeacon;
7601
7602 /* staIdx of old AP */
7603 tANI_U8 oldStaIdx;
7604
7605 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7606 tConfigBssRspParams */
7607 /* bssIdx of new roamed AP */
7608 tANI_U8 bssIdx;
7609
7610 /* DPU descriptor index for PTK */
7611 tANI_U8 dpuDescIndx;
7612
7613 /* PTK DPU signature */
7614 tANI_U8 ucastDpuSignature;
7615
7616 /* DPU descriptor index for GTK*/
7617 tANI_U8 bcastDpuDescIndx;
7618
7619 /* GTK DPU signature */
7620 tANI_U8 bcastDpuSignature;
7621
7622 /*DPU descriptor for IGTK*/
7623 tANI_U8 mgmtDpuDescIndx;
7624
7625 /* IGTK DPU signature */
7626 tANI_U8 mgmtDpuSignature;
7627
7628 /* Station Index for BSS entry*/
7629 tANI_U8 staIdx;
7630
7631 /* Self station index for this BSS */
7632 tANI_U8 selfStaIdx;
7633
7634 /* Bcast station for buffering bcast frames in AP role */
7635 tANI_U8 bcastStaIdx;
7636
7637 /* MAC address of roamed AP */
7638 tSirMacAddr bssid;
7639
7640 /*HAL fills in the tx power used for mgmt frames in this field. */
7641 tANI_S8 txMgmtPower;
7642
7643 /* success or failure */
7644 tHalRoamOffloadRoamAuthStatus authStatus;
7645
7646 /* TODO : add more info as needed */
7647
7648 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7649 /* Beacon or probe resp from new AP. This is in 802.11
7650 frame format starting with MAC header. */
7651 /* Up to beaconProbeRespLength */
7652
7653 /* reassocRespOffset points to starting of reassoc resp frame */
7654 /* Reassoc resp from new AP. This is in 802.11
7655 frame format starting with MAC header. */
7656 /* Up to reassocRespLength */
7657
7658} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7659
7660
7661typedef PACKED_PRE struct PACKED_POST
7662{
7663 tHalMsgHeader header;
7664 tHalRoamOffloadSynchIndParams params;
7665} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7666
7667/*---------------------------------------------------------------------------
7668 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7669 *-------------------------------------------------------------------------*/
7670typedef PACKED_PRE struct PACKED_POST
7671{
7672 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7673 tSirMacAddr bssid;
7674} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7675
7676typedef PACKED_PRE struct PACKED_POST
7677{
7678 tHalMsgHeader header;
7679 tHalRoamOffloadSynchCnfParams params;
7680} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7681
7682
7683/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007684 WLAN_HAL_RATE_UPDATE_IND
7685 *-------------------------------------------------------------------------*/
7686
7687typedef PACKED_PRE struct PACKED_POST
7688{
7689 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7690 tANI_S32 ucastDataRate; //unit Mbpsx10
7691
7692 /* TX flag to differentiate between HT20, HT40 etc */
7693 tTxRateInfoFlags ucastDataRateTxFlag;
7694
7695 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7696 tSirMacAddr bssid;
7697
7698 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7699 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7700
7701 /* TX flag to differentiate between HT20, HT40 etc */
7702 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7703
7704 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7705 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7706
7707 /* TX flag to differentiate between HT20, HT40 etc */
7708 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7709
7710 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7711 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7712
7713 /* TX flag to differentiate between HT20, HT40 etc */
7714 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7715
7716} tHalRateUpdateParams, *tpHalRateUpdateParams;
7717
7718typedef PACKED_PRE struct PACKED_POST
7719{
7720 tHalMsgHeader header;
7721 tHalRateUpdateParams halRateUpdateParams;
7722} tHalRateUpdateInd, * tpHalRateUpdateInd;
7723
7724/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307725 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7726 *-------------------------------------------------------------------------*/
7727
7728#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 4
7729
7730typedef PACKED_PRE struct PACKED_POST
7731{
7732 tANI_U32 startFreq;
7733 tANI_U32 endFreq;
7734} tHalFreqRange, *tpHalFreqRange;
7735
7736typedef PACKED_PRE struct PACKED_POST
7737{
7738 tANI_U32 avoidCnt;
7739 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7740} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7741
7742typedef PACKED_PRE struct PACKED_POST
7743{
7744 tHalMsgHeader header;
7745 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7746} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7747
7748/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307749 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007750 *-------------------------------------------------------------------------*/
7751
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307752typedef enum
7753{
7754 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7755 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7756 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7757}tHT40OBssScanCmdType;
7758
7759typedef PACKED_PRE struct PACKED_POST
7760{
7761 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007762
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307763 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007764 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7765 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7766 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7767 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7768 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7769 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7770 tANI_U16 OBSSScanActivityThreshold;
7771
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307772 tANI_U8 selfStaIdx;
7773 tANI_U8 bssIdx;
7774 tANI_U8 fortyMHZIntolerent;
7775 tANI_U8 channelCount;
7776 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7777 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007778
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307779 tANI_U16 ieFieldLen;
7780 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7781}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7782
7783typedef PACKED_PRE struct PACKED_POST
7784{
7785 tHalMsgHeader header;
7786 tHT40ObssScanIndType scanHT40ObssScanParams;
7787} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7788
7789/*---------------------------------------------------------------------------
7790 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7791 *-------------------------------------------------------------------------*/
7792typedef PACKED_PRE struct PACKED_POST
7793{
7794 tHalMsgHeader header;
7795 tANI_U8 bssIdx;
7796} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307797
7798/*---------------------------------------------------------------------------
7799 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7800 *-------------------------------------------------------------------------*/
7801
7802typedef PACKED_PRE struct PACKED_POST
7803{
7804 /* Valid BSS Idx for beacon miss rate */
7805 tANI_U8 bssIdx;
7806
7807}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7808
7809typedef PACKED_PRE struct PACKED_POST
7810{
7811 tHalMsgHeader header;
7812 tHalBcnMissRateReqParams bcnMissRateReqParams;
7813} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7814
7815/*---------------------------------------------------------------------------
7816 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7817 *-------------------------------------------------------------------------*/
7818
7819typedef PACKED_PRE struct PACKED_POST
7820{
7821 tANI_U32 status;
7822 tANI_U32 bcnMissCnt;
7823}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7824
7825typedef PACKED_PRE struct PACKED_POST
7826{
7827 tHalMsgHeader header;
7828 tHalBcnMissRateRspParams bcnMissRateRspParams;
7829}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7830
Sunil Dutt8377a382014-05-26 21:18:04 +05307831/*--------------------------------------------------------------------------
7832* WLAN_HAL_LL_SET_STATS_REQ
7833*---------------------------------------------------------------------------*/
7834
7835typedef PACKED_PRE struct PACKED_POST
7836{
7837 tANI_U32 req_id;
7838 tANI_U8 sta_id;
7839 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7840 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7841} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7842
7843typedef PACKED_PRE struct PACKED_POST
7844{
7845 tHalMsgHeader header;
7846 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7847} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7848
7849/*---------------------------------------------------------------------------
7850 WLAN_HAL_LL_SET_STATS_RSP
7851---------------------------------------------------------------------------*/
7852
7853typedef PACKED_PRE struct PACKED_POST
7854{
7855 tANI_U32 status;
7856 tANI_U32 resp_id;
7857 tANI_U8 iface_id;
7858} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7859
7860typedef PACKED_PRE struct PACKED_POST
7861{
7862 tHalMsgHeader header;
7863 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7864} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7865
7866/*---------------------------------------------------------------------------
7867 WLAN_HAL_LL_GET_STATS_REQ
7868---------------------------------------------------------------------------*/
7869
7870typedef PACKED_PRE struct PACKED_POST
7871{
7872 tANI_U32 req_id;
7873 tANI_U8 sta_id;
7874 tANI_U32 param_id_mask;
7875} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7876
7877typedef PACKED_PRE struct PACKED_POST
7878{
7879 tHalMsgHeader header;
7880 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7881} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7882
7883/*---------------------------------------------------------------------------
7884 WLAN_HAL_LL_GET_STATS_RSP
7885---------------------------------------------------------------------------*/
7886typedef PACKED_PRE struct PACKED_POST
7887{
7888 tANI_U32 status;
7889 tANI_U32 resp_id;
7890 tANI_U8 iface_id;
7891} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7892
7893typedef PACKED_PRE struct PACKED_POST
7894{
7895 tHalMsgHeader header;
7896 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7897} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7898
7899/*---------------------------------------------------------------------------
7900 WLAN_HAL_LL_CLEAR_STATS_REQ
7901---------------------------------------------------------------------------*/
7902typedef PACKED_PRE struct PACKED_POST
7903{
7904 tANI_U32 req_id;
7905 tANI_U8 sta_id;
7906 tANI_U32 stats_clear_req_mask;
7907 tANI_U8 stop_req;
7908} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
7909
7910typedef PACKED_PRE struct PACKED_POST
7911{
7912 tHalMsgHeader header;
7913 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
7914} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
7915
7916/*---------------------------------------------------------------------------
7917 WLAN_HAL_LL_CLEAR_STATS_RSP
7918---------------------------------------------------------------------------*/
7919typedef PACKED_PRE struct PACKED_POST
7920{
7921 tANI_U32 status;
7922 tANI_U8 sta_id;
7923 tANI_U32 resp_id;
7924 tANI_U32 stats_clear_rsp_mask;
7925 tANI_U8 stop_req_status;
7926} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
7927
7928typedef PACKED_PRE struct PACKED_POST
7929{
7930 tHalMsgHeader header;
7931 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
7932} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
7933
7934/*---------------------------------------------------------------------------
7935 WLAN_HAL_LL_NOTIFY_STATS
7936---------------------------------------------------------------------------*/
7937
7938typedef PACKED_PRE struct PACKED_POST
7939{
7940 tHalMsgHeader header;
7941 tANI_U32 param_id;
7942 tANI_U8 iface_id;
7943 tANI_U32 resp_id;
7944 tANI_U32 more_result_to_follow;
7945 tANI_U8 result[1];
7946} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007947
Dino Mycle108eff22014-06-10 09:36:44 +05307948/*---------------------------------------------------------------------------
7949 * WLAN_HAL_EXT_SCAN_START_REQ
7950 *-------------------------------------------------------------------------*/
7951
Dino Mycle8afbac12014-07-04 22:06:17 +05307952typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05307953{
7954 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
7955 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
7956 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
7957 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
7958 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
7959 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
7960 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05307961 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05307962} tExtScanChannelBandMask;
7963
7964typedef PACKED_PRE struct PACKED_POST
7965{
7966 tANI_U32 channel; // frequency
7967 tANI_U32 dwellTimeMs; // dwell time hint
7968 tANI_U8 passive; // 0 => active,
7969 // 1 => passive scan; ignored for DFS
7970}tExtScanChannelSpec, *tpExtScanChannelSpec;
7971
7972typedef PACKED_PRE struct PACKED_POST
7973 {
7974 /* bucket index, 0 based */
7975 tANI_U8 bucketId;
7976 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
7977 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05307978 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05307979 tANI_U32 period;
7980 /* 0 => normal reporting (reporting rssi history only,
7981 when rssi history buffer is % full)
7982 * 1 => same as 0 + report a scan completion event after scanning this bucket
7983 * 2 => same as 1 + forward scan results (beacons/probe responses + IEs) in
7984 real time to HAL (Required for L = P0)
7985 * 3 => same as 2 + forward scan results (beacons/probe responses + IEs) in
7986 real time to host (Not required for L = P3) */
7987 tANI_U8 reportEvents;
7988 /* number of channels */
7989 tANI_U8 numChannels;
7990 /* if channels to scan. In the TLV channelList[] */
7991 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
7992}tExtScanBucketData, *tpExtScanBucketData;
7993
7994typedef PACKED_PRE struct PACKED_POST
7995{
7996 tANI_U32 requestId;
7997 tANI_U8 sessionId;
7998 /* Base period (milliseconds) used by scan buckets to define periodicity
7999 of the scans */
8000 tANI_U32 basePeriod;
8001 /* number of APs to store in each scan in the BSSID/RSSI history buffer
8002 (keep the most significant, i.e. stronger RSSI) */
8003 tANI_U32 maxApPerScan;
8004 /* in %, when buffer is this much full, wake up host */
8005 tANI_U32 reportThreshold;
8006 /* This will be off channel minimum time */
8007 tANI_U16 neighborScanChannelMinTime;
8008 /* This will be out off channel max time */
8009 tANI_U16 neighborScanChannelMaxTime;
8010 /* This will be the home (BSS) channel time */
8011 tANI_U16 homeAwayTime;
8012 /* number of buckets (maximum 8) */
8013 tANI_U8 numBuckets;
8014 /* Buckets data */
8015 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
8016} tHalExtScanStartReq, *tpHalExtScanStartReq;
8017
8018typedef PACKED_PRE struct PACKED_POST
8019{
8020 tHalMsgHeader header;
8021 tHalExtScanStartReq extScanStartReq;
8022}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
8023
8024/*---------------------------------------------------------------------------
8025 * WLAN_HAL_EXT_SCAN_START_RSP
8026 *-------------------------------------------------------------------------*/
8027
8028typedef PACKED_PRE struct PACKED_POST
8029{
8030 tANI_U32 requestId;
8031 tANI_U32 status;
8032}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
8033
8034typedef PACKED_PRE struct PACKED_POST
8035{
8036 tHalMsgHeader header;
8037 tHalExtScanStartRsp extScanStartRsp;
8038}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
8039
8040/*---------------------------------------------------------------------------
8041 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
8042 *-------------------------------------------------------------------------*/
8043
8044typedef PACKED_PRE struct PACKED_POST
8045{
8046 tANI_U32 requestId;
8047 tANI_U8 sessionId;
8048}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
8049
8050typedef PACKED_PRE struct PACKED_POST
8051{
8052 tHalMsgHeader header;
8053 tHalExtScanGetCapReq extScanGetCapReq;
8054}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
8055
8056/*---------------------------------------------------------------------------
8057 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
8058 *-------------------------------------------------------------------------*/
8059
8060typedef PACKED_PRE struct PACKED_POST
8061{
8062 tANI_U32 requestId;
8063 tANI_U32 status;
8064
8065 tANI_U32 scanCacheSize;
8066 tANI_U32 scanBuckets;
8067 tANI_U32 maxApPerScan;
8068 tANI_U32 maxRssiSampleSize;
8069 tANI_U32 maxScanReportingThreshold;
8070
8071 tANI_U32 maxHotlistAPs;
8072 tANI_U32 maxSignificantWifiChangeAPs;
8073
8074 tANI_U32 maxBssidHistoryEntries;
8075}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
8076
8077typedef PACKED_PRE struct PACKED_POST
8078{
8079 tHalMsgHeader header;
8080 tHalExtScanGetCapRsp extScanGetCapRsp;
8081}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
8082
8083/*---------------------------------------------------------------------------
8084 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
8085 *-------------------------------------------------------------------------*/
8086
8087typedef PACKED_PRE struct PACKED_POST
8088{
8089 tANI_U32 requestId;
8090 tANI_U8 sessionId;
8091 /*
8092 * 1 return cached results and flush it
8093 * 0 return cached results and do not flush
8094 */
8095 tANI_BOOLEAN flush;
8096}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
8097
8098typedef PACKED_PRE struct PACKED_POST
8099{
8100 tHalMsgHeader header;
8101 tHalExtScanGetScanReq getScanReq;
8102}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
8103
8104/*---------------------------------------------------------------------------
8105 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
8106 *-------------------------------------------------------------------------*/
8107
8108typedef PACKED_PRE struct PACKED_POST
8109{
8110 tANI_U32 requestId;
8111 tANI_U32 status;
8112}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
8113
8114typedef PACKED_PRE struct PACKED_POST
8115{
8116 tHalMsgHeader header;
8117 tHalExtScanGetScanRsp getScanRsp;
8118}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
8119
8120/*---------------------------------------------------------------------------
8121 * WLAN_HAL_EXT_SCAN_RESULT_IND
8122 *-------------------------------------------------------------------------*/
8123
8124typedef PACKED_PRE struct PACKED_POST
8125{
8126 tANI_U64 ts; // time of discovery
8127 tANI_U8 ssid[32+1]; // null terminated SSID
8128 tSirMacAddr bssid; // BSSID
8129 tANI_U32 channel; // channel frequency in MHz
8130 tANI_S32 rssi; // RSSI in dBm
8131 tANI_U32 rtt; // RTT in nanoseconds - not expected
8132 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308133 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308134 tANI_U16 capability; // capabilities advertised in the beacon
8135} tHalExtScanResultParams, *tpHalExtScanResultParams;
8136
8137typedef PACKED_PRE struct PACKED_POST
8138{
8139 tHalMsgHeader header;
8140 tANI_U32 requestId;
8141 tANI_U32 scanResultSize;
8142 tANI_BOOLEAN moreData;
8143 tANI_U8 extScanResult[1];
8144}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8145
8146/*---------------------------------------------------------------------------
8147 * WLAN_HAL_EXT_SCAN_STOP_REQ
8148 *-------------------------------------------------------------------------*/
8149
8150typedef PACKED_PRE struct PACKED_POST
8151{
8152 tANI_U32 requestId;
8153 tANI_U8 sessionId;
8154}tHalExtScanStopReq, *tpHalExtScanStopReq;
8155
8156typedef PACKED_PRE struct PACKED_POST
8157{
8158 tHalMsgHeader header;
8159 tHalExtScanStopReq extScanStopReq;
8160}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8161
8162/*---------------------------------------------------------------------------
8163 * WLAN_HAL_EXT_SCAN_STOP_RSP
8164 *-------------------------------------------------------------------------*/
8165
8166typedef PACKED_PRE struct PACKED_POST
8167{
8168 tANI_U32 requestId;
8169 tANI_U32 status;
8170}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8171
8172typedef PACKED_PRE struct PACKED_POST
8173{
8174 tHalMsgHeader header;
8175 tHalExtScanStopRsp extScanStopRsp;
8176}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8177
8178/*---------------------------------------------------------------------------
8179 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8180 *-------------------------------------------------------------------------*/
8181
Dino Mycle8afbac12014-07-04 22:06:17 +05308182typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308183{
8184 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8185 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308186 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308187} tHalExtScanProgressEventType;
8188
8189typedef PACKED_PRE struct PACKED_POST
8190{
8191 tANI_U32 requestId;
8192 tANI_U32 status;
8193 tHalExtScanProgressEventType extScanEventType;
8194}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8195
8196typedef PACKED_PRE struct PACKED_POST
8197{
8198 tHalMsgHeader header;
8199 tHalExtScanProgressInd extScanProgressInd;
8200}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8201
8202/*---------------------------------------------------------------------------
8203 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8204 *-------------------------------------------------------------------------*/
8205
8206typedef PACKED_PRE struct PACKED_POST
8207{
8208 tANI_U32 requestId;
8209 tANI_U32 numOfScanResAvailable;
8210}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8211
8212typedef PACKED_PRE struct PACKED_POST
8213{
8214 tHalMsgHeader header;
8215 tHalExtScanResAvailableInd extScanResAvailableInd;
8216}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8217
8218/*---------------------------------------------------------------------------
8219 * WLAN_HAL_SIG_RSSI_SET_REQ
8220 *-------------------------------------------------------------------------*/
8221
8222typedef PACKED_PRE struct PACKED_POST
8223{
8224 /* AP BSSID */
8225 tSirMacAddr bssid;
8226 /* low threshold - used in L for significant_change - not used in L for
8227 hotlist*/
8228 tANI_S32 lowRssiThreshold;
8229 /* high threshold - used in L for significant rssi - used in L for hotlist */
8230 tANI_S32 highRssiThreshold;
8231 /* channel hint */
8232 tANI_U32 channel;
8233} tApThresholdParams, *tpApThresholdParams;
8234
8235typedef PACKED_PRE struct PACKED_POST
8236{
8237 tANI_U32 requestId;
8238 tANI_U8 sessionId;
8239 /* number of samples for averaging RSSI */
8240 tANI_U32 rssiSampleSize;
8241 /* number of missed samples to confirm AP loss */
8242 tANI_U32 lostApSampleSize;
8243 /* number of APs breaching threshold required for firmware to generate event */
8244 tANI_U32 minBreaching;
8245 /* number of significant APs */
8246 tANI_U32 numAp;
8247 /* significant APs */
8248 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_SIG_CHANGE_APS];
8249} tHalSigRssiSetReq, *tpHalSigRssiSetReq;
8250
8251typedef PACKED_PRE struct PACKED_POST
8252{
8253 tHalMsgHeader header;
8254 tHalSigRssiSetReq extScanSigRssiReq;
8255}tHalSigRssiSetReqMsg, *tpHalSigRssiSetReqMsg;
8256
8257/*---------------------------------------------------------------------------
8258 * WLAN_HAL_SIG_RSSI_SET_RSP
8259 *-------------------------------------------------------------------------*/
8260
8261typedef PACKED_PRE struct PACKED_POST
8262{
8263 tANI_U32 requestId;
8264 tANI_U32 status;
8265}tHalSigRssiSetRsp, *tpHalSigRssiSetRsp;
8266
8267
8268typedef PACKED_PRE struct PACKED_POST
8269{
8270 tHalMsgHeader header;
8271 tHalSigRssiSetRsp sigRssiSetRsp;
8272}tHalSigRssiSetRspMsg, *tpHalSigRssiSetRspMsg;
8273
8274/*---------------------------------------------------------------------------
8275 * WLAN_HAL_SIG_RSSI_RESET_REQ
8276 *-------------------------------------------------------------------------*/
8277
8278typedef PACKED_PRE struct PACKED_POST
8279{
8280 tANI_U32 requestId;
8281}tHalSigRssiResetReq, *tpHalSigRssiResetReq;
8282
8283typedef PACKED_PRE struct PACKED_POST
8284{
8285 tHalMsgHeader header;
8286 tHalSigRssiResetReq sigRssiResetReq;
8287}tHalSigRssiResetReqMsg, *tpHalSigRssiResetReqMsg;
8288
8289/*---------------------------------------------------------------------------
8290 * WLAN_HAL_SIG_RSSI_RESET_RSP
8291 *-------------------------------------------------------------------------*/
8292
8293typedef PACKED_PRE struct PACKED_POST
8294{
8295 tANI_U32 requestId;
8296 tANI_U32 status;
8297}tHalSigRssiResetRsp, *tpHalSigRssiResetRsp;
8298
8299typedef PACKED_PRE struct PACKED_POST
8300{
8301 tHalMsgHeader header;
8302 tHalSigRssiResetRsp sigRssiResetRsp;
8303}tHalSigRssiResetRspMsg, *tpHalSigRssiResetRspMsg;
8304
8305/*---------------------------------------------------------------------------
8306 * WLAN_HAL_SIG_RSSI_RESULT_IND
8307 *-------------------------------------------------------------------------*/
8308
8309typedef PACKED_PRE struct PACKED_POST
8310{
8311 // BSSID
8312 tSirMacAddr bssid;
8313 // channel frequency in MHz
8314 tANI_U32 channel;
8315 // number of rssi samples
8316 tANI_U8 numRssi;
8317 // RSSI history in db
8318 tANI_S32 rssi[WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE];
8319} tHalSigRssiResultParams, *tpHalSigRssiResultParams;
8320
8321typedef PACKED_PRE struct PACKED_POST
8322{
8323 tHalMsgHeader header;
8324 tANI_U32 requestId;
8325 tANI_U32 numSigRssiBss;
8326 tANI_BOOLEAN moreData;
8327 tANI_U8 sigRssiResult[1];
8328}tHalSigRssiResultIndMsg, *tpHalSigRssiResultIndMsg;
8329
8330/*---------------------------------------------------------------------------
8331 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8332 *-------------------------------------------------------------------------*/
8333
8334typedef PACKED_PRE struct PACKED_POST
8335{
8336 tANI_U32 requestId;
8337 tANI_U8 sessionId;
8338 // number of hotlist APs
8339 tANI_U32 numAp;
8340 // hotlist APs
8341 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8342} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8343
8344typedef PACKED_PRE struct PACKED_POST
8345{
8346 tHalMsgHeader header;
8347 tHalBssidHotlistSetReq bssidHotlistSetReq;
8348}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8349
8350/*---------------------------------------------------------------------------
8351 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8352 *-------------------------------------------------------------------------*/
8353
8354typedef PACKED_PRE struct PACKED_POST
8355{
8356 tANI_U32 requestId;
8357 tANI_U32 status;
8358}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8359
8360typedef PACKED_PRE struct PACKED_POST
8361{
8362 tHalMsgHeader header;
8363 tHalHotlistSetRsp hotlistSetRsp;
8364}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8365
8366/*---------------------------------------------------------------------------
8367 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8368 *-------------------------------------------------------------------------*/
8369
8370typedef PACKED_PRE struct PACKED_POST
8371{
8372 tANI_U32 requestId;
8373}tHalHotlistResetReq, *tpHalHotlistResetReq;
8374
8375typedef PACKED_PRE struct PACKED_POST
8376{
8377 tHalMsgHeader header;
8378 tHalHotlistResetReq hotlistResetReq;
8379}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8380
8381/*---------------------------------------------------------------------------
8382 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8383 *-------------------------------------------------------------------------*/
8384
8385typedef PACKED_PRE struct PACKED_POST
8386{
8387 tANI_U32 requestId;
8388 tANI_U32 status;
8389}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8390
8391typedef PACKED_PRE struct PACKED_POST
8392{
8393 tHalMsgHeader header;
8394 tHalHotlistResetRsp hotlistResetRsp;
8395}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8396
8397/*---------------------------------------------------------------------------
8398 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8399 *-------------------------------------------------------------------------*/
8400
8401typedef PACKED_PRE struct PACKED_POST
8402{
8403 tHalMsgHeader header;
8404 tANI_U32 requestId;
8405 tANI_U32 numHotlistBss;
8406 tANI_BOOLEAN moreData;
8407 tANI_U8 bssHotlist[1];
8408}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8409
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308410
8411/*---------------------------------------------------------------------------
8412 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8413 *--------------------------------------------------------------------------*/
8414typedef PACKED_PRE struct PACKED_POST
8415{
8416 tANI_U8 macAddr[6];
8417 tANI_U32 reserved1;
8418 tANI_U32 reserved2;
8419}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8420
8421typedef PACKED_PRE struct PACKED_POST
8422{
8423 tHalMsgHeader header;
8424 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8425} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8426
8427/*---------------------------------------------------------------------------
8428* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8429*-------------------------------------------------------------------------*/
8430
8431typedef PACKED_PRE struct PACKED_POST
8432{
8433 tANI_U32 status;
8434 tANI_U32 reserved1;
8435} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8436
8437typedef PACKED_PRE struct PACKED_POST
8438{
8439 tHalMsgHeader header;
8440 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8441} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
Siddharth Bhale8bfd5f2015-03-04 14:51:13 +05308442/*---------------------------------------------------------------------------
8443 *WLAN_HAL_GET_FRAME_LOG_REQ
8444 *--------------------------------------------------------------------------*/
8445typedef PACKED_PRE struct PACKED_POST
8446{
8447 tANI_U8 flags;
8448}tGetFrameLogReqType, * tpGetFrameLogReqType;
8449
8450typedef PACKED_PRE struct PACKED_POST
8451{
8452 tHalMsgHeader header;
8453 tGetFrameLogReqType tGetFrameLogReqParams;
8454} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
8455
8456/*---------------------------------------------------------------------------
8457 * WLAN_HAL_GET_FRAME_LOG_RSP
8458 *-------------------------------------------------------------------------*/
8459typedef PACKED_PRE struct PACKED_POST
8460{
8461 tANI_U32 status;
8462} tGetFrameLogResp, * tpGetFrameLogResp;
8463
8464typedef PACKED_PRE struct PACKED_POST
8465{
8466 tHalMsgHeader header;
8467 tGetFrameLogResp tGetFrameLogRespParams;
8468} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
8469
8470/*---------------------------------------------------------------------------
8471 *WLAN_HAL_MGMT_LOGGING_INIT_REQ
8472 *--------------------------------------------------------------------------*/
8473typedef PACKED_PRE struct PACKED_POST
8474{
8475 tANI_U8 enableFlag;
8476 tANI_U8 frameType;
8477 tANI_U8 frameSize;
8478 tANI_U8 bufferMode;
8479}tMgmtLoggingInitReqType, * tpMgmtLoggingInitReqType;
8480
8481typedef PACKED_PRE struct PACKED_POST
8482{
8483 tHalMsgHeader header;
8484 tMgmtLoggingInitReqType tMgmtLoggingInitReqParams;
8485} tHalMgmtLoggingInitReqMsg, * tpHalMgmtLoggingInitReqMsg;
8486
8487/*---------------------------------------------------------------------------
8488 * WLAN_HAL_MGMT_LOGGING_INIT_RSP
8489 *-------------------------------------------------------------------------*/
8490typedef PACKED_PRE struct PACKED_POST
8491{
8492 tANI_U32 status;
8493} tMgmtLoggingInitResp, * tpMgmtLoggingInitReep;
8494
8495typedef PACKED_PRE struct PACKED_POST
8496{
8497 tHalMsgHeader header;
8498 tMgmtLoggingInitResp tMgmtLoggingInitRespParams;
8499} tMgmtLoggingInitRespMsg, * tpMgmtLoggingInitRespMsg;
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308500
Jeff Johnson295189b2012-06-20 16:38:30 -07008501#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8502#pragma pack(pop)
8503#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8504#else
8505#endif
8506
8507#endif /* _WLAN_HAL_MSG_H_ */