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