blob: dff16dde6753a844e48e87a236883b97b7f507b1 [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
70//This is to force compiler to use the maximum of an int ( 4 bytes )
71#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070072#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070073
74//Max no. of transmit categories
75#define STACFG_MAX_TC 8
76
77//The maximum value of access category
78#define WLAN_HAL_MAX_AC 4
79
80typedef tANI_U8 tSirMacAddr[6];
81typedef tANI_U8 tHalIpv4Addr[4];
82
83#define HAL_MAC_ADDR_LEN 6
84#define HAL_IPV4_ADDR_LEN 4
85
Amar Singhalb41c45b2014-03-21 14:44:14 -070086#define WLAN_HAL_STA_INVALID_IDX 0xFF
Jeff Johnson295189b2012-06-20 16:38:30 -070087#define WLAN_HAL_BSS_INVALID_IDX 0xFF
88
89//Default Beacon template size
Dino Mycle8afbac12014-07-04 22:06:17 +053090#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070091
Kumar Anandea78e792013-10-10 23:47:01 -070092
93//Max Tx Data Rate samples
94#define MAX_TX_RATE_SAMPLES 10
95//Max Beacon Rssi samples
96#define MAX_BCN_RSSI_SAMPLES 10
97
Dino Mycle8afbac12014-07-04 22:06:17 +053098//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -070099#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
100#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
101#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
102#define PARAM_llACOEXIST_CHANGED (1 << 3)
103#define PARAM_llBCOEXIST_CHANGED (1 << 4)
104#define PARAM_llGCOEXIST_CHANGED (1 << 5)
105#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
106#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
107#define PARAM_RIFS_MODE_CHANGED (1<<8)
108#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
109#define PARAM_OBSS_MODE_CHANGED (1<<10)
110#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
111 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)
112
113/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530114#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700115
116/*Version string max length (including NUL) */
117#define WLAN_HAL_VERSION_LENGTH 64
118
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530119#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
Amar Singhalb41c45b2014-03-21 14:44:14 -0700120/* 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 -0800121#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS 80
Amar Singhalb41c45b2014-03-21 14:44:14 -0700122#define WLAN_HAL_ROAM_SACN_PMK_SIZE 32
123#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 20
Yue Maab3ccfc2013-08-14 17:19:08 -0700124
Dino Mycle108eff22014-06-10 09:36:44 +0530125#define WLAN_HAL_EXT_SCAN_MAX_CHANNELS 16
126#define WLAN_HAL_EXT_SCAN_MAX_BUCKETS 16
127#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS 128
128#define WLAN_HAL_EXT_SCAN_MAX_SIG_CHANGE_APS 64
129#define WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE 8
130
Jeff Johnson295189b2012-06-20 16:38:30 -0700131/* Message types for messages exchanged between WDI and HAL */
Dino Mycle8afbac12014-07-04 22:06:17 +0530132typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700133{
134 //Init/De-Init
135 WLAN_HAL_START_REQ = 0,
136 WLAN_HAL_START_RSP = 1,
137 WLAN_HAL_STOP_REQ = 2,
138 WLAN_HAL_STOP_RSP = 3,
139
140 //Scan
141 WLAN_HAL_INIT_SCAN_REQ = 4,
142 WLAN_HAL_INIT_SCAN_RSP = 5,
143 WLAN_HAL_START_SCAN_REQ = 6,
144 WLAN_HAL_START_SCAN_RSP = 7 ,
145 WLAN_HAL_END_SCAN_REQ = 8,
146 WLAN_HAL_END_SCAN_RSP = 9,
147 WLAN_HAL_FINISH_SCAN_REQ = 10,
148 WLAN_HAL_FINISH_SCAN_RSP = 11,
149
150 // HW STA configuration/deconfiguration
151 WLAN_HAL_CONFIG_STA_REQ = 12,
152 WLAN_HAL_CONFIG_STA_RSP = 13,
153 WLAN_HAL_DELETE_STA_REQ = 14,
154 WLAN_HAL_DELETE_STA_RSP = 15,
155 WLAN_HAL_CONFIG_BSS_REQ = 16,
156 WLAN_HAL_CONFIG_BSS_RSP = 17,
157 WLAN_HAL_DELETE_BSS_REQ = 18,
158 WLAN_HAL_DELETE_BSS_RSP = 19,
159
160 //Infra STA asscoiation
161 WLAN_HAL_JOIN_REQ = 20,
162 WLAN_HAL_JOIN_RSP = 21,
163 WLAN_HAL_POST_ASSOC_REQ = 22,
164 WLAN_HAL_POST_ASSOC_RSP = 23,
165
166 //Security
167 WLAN_HAL_SET_BSSKEY_REQ = 24,
168 WLAN_HAL_SET_BSSKEY_RSP = 25,
169 WLAN_HAL_SET_STAKEY_REQ = 26,
170 WLAN_HAL_SET_STAKEY_RSP = 27,
171 WLAN_HAL_RMV_BSSKEY_REQ = 28,
172 WLAN_HAL_RMV_BSSKEY_RSP = 29,
173 WLAN_HAL_RMV_STAKEY_REQ = 30,
174 WLAN_HAL_RMV_STAKEY_RSP = 31,
175
176 //Qos Related
177 WLAN_HAL_ADD_TS_REQ = 32,
178 WLAN_HAL_ADD_TS_RSP = 33,
179 WLAN_HAL_DEL_TS_REQ = 34,
180 WLAN_HAL_DEL_TS_RSP = 35,
181 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
182 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
183 WLAN_HAL_ADD_BA_REQ = 38,
184 WLAN_HAL_ADD_BA_RSP = 39,
185 WLAN_HAL_DEL_BA_REQ = 40,
186 WLAN_HAL_DEL_BA_RSP = 41,
187
188 WLAN_HAL_CH_SWITCH_REQ = 42,
189 WLAN_HAL_CH_SWITCH_RSP = 43,
190 WLAN_HAL_SET_LINK_ST_REQ = 44,
191 WLAN_HAL_SET_LINK_ST_RSP = 45,
192 WLAN_HAL_GET_STATS_REQ = 46,
193 WLAN_HAL_GET_STATS_RSP = 47,
194 WLAN_HAL_UPDATE_CFG_REQ = 48,
195 WLAN_HAL_UPDATE_CFG_RSP = 49,
196
197 WLAN_HAL_MISSED_BEACON_IND = 50,
198 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
199 WLAN_HAL_MIC_FAILURE_IND = 52,
200 WLAN_HAL_FATAL_ERROR_IND = 53,
201 WLAN_HAL_SET_KEYDONE_MSG = 54,
Dino Mycle8afbac12014-07-04 22:06:17 +0530202
Jeff Johnson295189b2012-06-20 16:38:30 -0700203 //NV Interface
204 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
205 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
206
207 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
208 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
209 WLAN_HAL_TRIGGER_BA_REQ = 59,
210 WLAN_HAL_TRIGGER_BA_RSP = 60,
211 WLAN_HAL_UPDATE_BEACON_REQ = 61,
212 WLAN_HAL_UPDATE_BEACON_RSP = 62,
213 WLAN_HAL_SEND_BEACON_REQ = 63,
214 WLAN_HAL_SEND_BEACON_RSP = 64,
215
216 WLAN_HAL_SET_BCASTKEY_REQ = 65,
217 WLAN_HAL_SET_BCASTKEY_RSP = 66,
218 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
219 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
220 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Dino Mycle8afbac12014-07-04 22:06:17 +0530221
Jeff Johnson295189b2012-06-20 16:38:30 -0700222 // PTT interface support
223 WLAN_HAL_PROCESS_PTT_REQ = 70,
224 WLAN_HAL_PROCESS_PTT_RSP = 71,
Dino Mycle8afbac12014-07-04 22:06:17 +0530225
Jeff Johnson295189b2012-06-20 16:38:30 -0700226 // BTAMP related events
227 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
228 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
229 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
230 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
231
232 WLAN_HAL_ENTER_IMPS_REQ = 76,
233 WLAN_HAL_EXIT_IMPS_REQ = 77,
234 WLAN_HAL_ENTER_BMPS_REQ = 78,
235 WLAN_HAL_EXIT_BMPS_REQ = 79,
236 WLAN_HAL_ENTER_UAPSD_REQ = 80,
237 WLAN_HAL_EXIT_UAPSD_REQ = 81,
238 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
239 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
240 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
241 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
242 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
243 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
244 WLAN_HAL_ENTER_WOWL_REQ = 88,
245 WLAN_HAL_EXIT_WOWL_REQ = 89,
246 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
247 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
248 WLAN_HAL_GET_RSSI_REQ = 92,
249 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
250 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
251
252 WLAN_HAL_ENTER_IMPS_RSP = 95,
253 WLAN_HAL_EXIT_IMPS_RSP = 96,
254 WLAN_HAL_ENTER_BMPS_RSP = 97,
255 WLAN_HAL_EXIT_BMPS_RSP = 98,
256 WLAN_HAL_ENTER_UAPSD_RSP = 99,
257 WLAN_HAL_EXIT_UAPSD_RSP = 100,
258 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
259 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
260 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
261 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
262 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
263 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
264 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
265 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
266 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
267 WLAN_HAL_ENTER_WOWL_RSP = 110,
268 WLAN_HAL_EXIT_WOWL_RSP = 111,
269 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
270 WLAN_HAL_GET_RSSI_RSP = 113,
271 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
272
273 //11k related events
274 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
275 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
276
277 //11R related msgs
278 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
279 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
280
281 //P2P WLAN_FEATURE_P2P
282 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
283 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Dino Mycle8afbac12014-07-04 22:06:17 +0530284
Jeff Johnson295189b2012-06-20 16:38:30 -0700285 //WLAN Dump commands
286 WLAN_HAL_DUMP_COMMAND_REQ = 121,
287 WLAN_HAL_DUMP_COMMAND_RSP = 122,
288
Jeff Johnsone7245742012-09-05 17:12:55 -0700289 //OEM_DATA FEATURE SUPPORT
290 WLAN_HAL_START_OEM_DATA_REQ = 123,
291 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700292
293 //ADD SELF STA REQ and RSP
294 WLAN_HAL_ADD_STA_SELF_REQ = 125,
295 WLAN_HAL_ADD_STA_SELF_RSP = 126,
296
297 //DEL SELF STA SUPPORT
298 WLAN_HAL_DEL_STA_SELF_REQ = 127,
299 WLAN_HAL_DEL_STA_SELF_RSP = 128,
300
301 // Coex Indication
302 WLAN_HAL_COEX_IND = 129,
303
Dino Mycle8afbac12014-07-04 22:06:17 +0530304 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700305 WLAN_HAL_OTA_TX_COMPL_IND = 130,
306
307 //Host Suspend/resume messages
308 WLAN_HAL_HOST_SUSPEND_IND = 131,
309 WLAN_HAL_HOST_RESUME_REQ = 132,
310 WLAN_HAL_HOST_RESUME_RSP = 133,
311
312 WLAN_HAL_SET_TX_POWER_REQ = 134,
313 WLAN_HAL_SET_TX_POWER_RSP = 135,
314 WLAN_HAL_GET_TX_POWER_REQ = 136,
315 WLAN_HAL_GET_TX_POWER_RSP = 137,
316
317 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Dino Mycle8afbac12014-07-04 22:06:17 +0530318
Jeff Johnson295189b2012-06-20 16:38:30 -0700319 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
320 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
321 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
322 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
323 WLAN_HAL_RADAR_DETECT_IND = 143,
324 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
325 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Dino Mycle8afbac12014-07-04 22:06:17 +0530326 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700327
328 /*PNO messages*/
329 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
330 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
331 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
332 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
333 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
334 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Dino Mycle8afbac12014-07-04 22:06:17 +0530335 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700336
337 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
338 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
339 WLAN_HAL_TX_PER_HIT_IND = 156,
Dino Mycle8afbac12014-07-04 22:06:17 +0530340
Jeff Johnson295189b2012-06-20 16:38:30 -0700341 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Dino Mycle8afbac12014-07-04 22:06:17 +0530342 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700343
344 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Dino Mycle8afbac12014-07-04 22:06:17 +0530345 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700346 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Dino Mycle8afbac12014-07-04 22:06:17 +0530347 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700348 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Dino Mycle8afbac12014-07-04 22:06:17 +0530349 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
350 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700351 * Host and Riva code is in sync*/
352 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Dino Mycle8afbac12014-07-04 22:06:17 +0530353
Jeff Johnson295189b2012-06-20 16:38:30 -0700354 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
355 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
356
357 WLAN_HAL_TSM_STATS_REQ = 168,
358 WLAN_HAL_TSM_STATS_RSP = 169,
359
360 // wake reason indication (WOW)
361 WLAN_HAL_WAKE_REASON_IND = 170,
Dino Mycle8afbac12014-07-04 22:06:17 +0530362 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700363 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
364 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
365 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
366 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
367
368 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
369 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
370 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
371
372 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
373 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
374
Anand Kumar012623a2013-01-11 17:00:00 -0800375 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
376 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800377
Anand Kumar012623a2013-01-11 17:00:00 -0800378 WLAN_HAL_P2P_NOA_START_IND = 184,
379
380 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
381 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Dino Mycle8afbac12014-07-04 22:06:17 +0530382
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800383 WLAN_HAL_CLASS_B_STATS_IND = 187,
384 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800385 WLAN_HAL_DHCP_START_IND = 189,
386 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700387 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
388 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530389 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
390 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700391
392 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
393 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
394 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
395
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530396 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
397 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
398 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
399 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
400 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700401 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700402
Kumar Anandf53016f2013-09-04 15:15:53 -0700403 /* Scan Offload APIs */
404 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
405 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
406 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
407 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
408 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
409 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
410 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
411
Leo Chang397deb72013-08-22 11:33:16 -0700412 /* APIs to offload TCP/UDP Heartbeat handshakes */
413 WLAN_HAL_LPHB_CFG_REQ = 211,
414 WLAN_HAL_LPHB_CFG_RSP = 212,
415 WLAN_HAL_LPHB_IND = 213,
416
Yue Maab3ccfc2013-08-14 17:19:08 -0700417 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
418 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
419 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530420
Kumar Anandf53016f2013-09-04 15:15:53 -0700421 // Events to set Per-Band Tx Power Limit
422 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
423 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
424
425 /* Reliable Multicast using Leader Based Protocol */
426 WLAN_HAL_LBP_LEADER_REQ = 219,
427 WLAN_HAL_LBP_LEADER_RSP = 220,
428 WLAN_HAL_LBP_UPDATE_IND = 221,
429
krunal soni2a4728d2013-09-20 21:56:50 -0700430 /* Batchscan */
431 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
432 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
433 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
434 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
435 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
436
437 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
438 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
439
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700440 WLAN_HAL_RATE_UPDATE_IND = 229,
441
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530442 /* Tx Fail for weak link notification */
443 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
444 WLAN_HAL_TX_FAIL_IND = 231,
445
446 /* Multi-hop IP routing offload */
447 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
448
Amar Singhalb41c45b2014-03-21 14:44:14 -0700449 /* Channel avoidance for LTE Coex */
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530450 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800451
Amar Singhalb41c45b2014-03-21 14:44:14 -0700452 /* Fast Roam Offload Synchup request protocol */
453 /* TODO_LFR3 : change this value accordingly before final check-in */
454 WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
455 WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
456
457 WLAN_HAL_MOTION_START_EVENT_REQ = 250,
458 WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
459
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800460 /* Channel Switch Request version 1 */
461 WLAN_HAL_CH_SWITCH_V1_REQ = 252,
462 WLAN_HAL_CH_SWITCH_V1_RSP = 253,
463
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530464 /* 2G4 HT40 OBSS scan */
465 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700466 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
467
468 /* WLAN NAN Messages */
469 WLAN_HAL_NAN_FIRST = 256,
470 WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
471 WLAN_HAL_NAN_RSP = 257,
472 WLAN_HAL_NAN_EVT = 258,
473 WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
c_hpothu80c30472014-04-14 19:04:48 +0530474 WLAN_HAL_PRINT_REG_INFO_IND = 259,
475
c_hpothua047e572014-05-01 15:03:11 +0530476 WLAN_HAL_GET_BCN_MISS_RATE_REQ = 260,
477 WLAN_HAL_GET_BCN_MISS_RATE_RSP = 261,
478
Sunil Dutt8377a382014-05-26 21:18:04 +0530479 /* WLAN LINK LAYER STATS Messages */
480 WLAN_HAL_LL_SET_STATS_REQ = 262,
481 WLAN_HAL_LL_SET_STATS_RSP = 263,
482 WLAN_HAL_LL_GET_STATS_REQ = 264,
483 WLAN_HAL_LL_GET_STATS_RSP = 265,
484 WLAN_HAL_LL_CLEAR_STATS_REQ = 266,
485 WLAN_HAL_LL_CLEAR_STATS_RSP = 267,
486 WLAN_HAL_LL_NOTIFY_STATS = 268,
Dino Mycle8afbac12014-07-04 22:06:17 +0530487 WLAN_HAL_LL_LAST = WLAN_HAL_LL_NOTIFY_STATS,
Dino Mycle108eff22014-06-10 09:36:44 +0530488
Dino Mycle8afbac12014-07-04 22:06:17 +0530489 /* WLAN EXT_SCAN Messages */
490 WLAN_HAL_EXT_SCAN_START_REQ = 269,
491 WLAN_HAL_EXT_SCAN_START_RSP = 270,
492 WLAN_HAL_EXT_SCAN_GET_CAP_REQ = 271,
493 WLAN_HAL_EXT_SCAN_GET_CAP_RSP = 272,
494 WLAN_HAL_EXT_SCAN_STOP_REQ = 273,
495 WLAN_HAL_EXT_SCAN_STOP_RSP = 274,
496 WLAN_HAL_EXT_SCAN_GET_SCAN_REQ = 275,
497 WLAN_HAL_EXT_SCAN_GET_SCAN_RSP = 276,
Dino Mycle108eff22014-06-10 09:36:44 +0530498
499 WLAN_HAL_BSSID_HOTLIST_SET_REQ = 277,
500 WLAN_HAL_BSSID_HOTLIST_SET_RSP = 278,
501 WLAN_HAL_BSSID_HOTLIST_RESET_REQ = 279,
502 WLAN_HAL_BSSID_HOTLIST_RESET_RSP = 280,
503
504 WLAN_HAL_SIG_RSSI_SET_REQ = 281,
505 WLAN_HAL_SIG_RSSI_SET_RSP = 282,
506 WLAN_HAL_SIG_RSSI_RESET_REQ = 283,
507 WLAN_HAL_SIG_RSSI_RESET_RSP = 284,
508
Dino Mycle8afbac12014-07-04 22:06:17 +0530509 WLAN_HAL_EXT_SCAN_RESULT_IND = 285,
Dino Mycle108eff22014-06-10 09:36:44 +0530510 WLAN_HAL_BSSID_HOTLIST_RESULT_IND = 286,
511 WLAN_HAL_SIG_RSSI_RESULT_IND = 287,
Dino Mycle8afbac12014-07-04 22:06:17 +0530512 WLAN_HAL_EXT_SCAN_PROGRESS_IND = 288,
513 WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND = 289,
Atul Mittal53419ed2014-08-03 19:41:23 +0530514 WLAN_HAL_TDLS_CHAN_SWITCH_REQ = 290,
515 WLAN_HAL_TDLS_CHAN_SWITCH_RSP = 291,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +0530516 WLAN_HAL_MAC_SPOOFED_SCAN_REQ = 292,
517 WLAN_HAL_MAC_SPOOFED_SCAN_RSP = 293,
Sunil Dutt8377a382014-05-26 21:18:04 +0530518
519 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700520}tHalHostMsgType;
521
Jeff Johnsone7245742012-09-05 17:12:55 -0700522/* Enumeration for Version */
523typedef enum
524{
525 WLAN_HAL_MSG_VERSION0 = 0,
526 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800527 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
528 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700529}tHalHostMsgVersion;
530
Jeff Johnson295189b2012-06-20 16:38:30 -0700531/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530532typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700533{
534 eANI_BOOLEAN_FALSE = 0,
535 eANI_BOOLEAN_TRUE,
536 eANI_BOOLEAN_OFF = 0,
537 eANI_BOOLEAN_ON = 1,
538 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
539} eAniBoolean;
540
541typedef enum
542{
543 eDRIVER_TYPE_PRODUCTION = 0,
544 eDRIVER_TYPE_MFG = 1,
545 eDRIVER_TYPE_DVT = 2,
546 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
547} tDriverType;
548
549typedef enum
550{
551 HAL_STOP_TYPE_SYS_RESET,
552 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
553 HAL_STOP_TYPE_RF_KILL,
554 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
555}tHalStopType;
556
557typedef enum
558{
559 eHAL_SYS_MODE_NORMAL,
560 eHAL_SYS_MODE_LEARN,
561 eHAL_SYS_MODE_SCAN,
562 eHAL_SYS_MODE_PROMISC,
563 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700564 eHAL_SYS_MODE_ROAM_SCAN,
565 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700566 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700567 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
568} eHalSysMode;
569
570typedef enum
571{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800572 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
573 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
574 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
575 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
576 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
577 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
578 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
579 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
580 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700581 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800582 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
583} eHalChanSwitchSource;
584
585typedef enum
586{
Jeff Johnson295189b2012-06-20 16:38:30 -0700587 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
588 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
589 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
590 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700591#ifdef WLAN_FEATURE_11AC
592 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
593 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
594 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
595 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
596 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
597 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
598 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
599#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700600 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
601}ePhyChanBondState;
602
603// Spatial Multiplexing(SM) Power Save mode
604typedef enum eSirMacHTMIMOPowerSaveState
605{
606 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
607 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
608 eSIR_HT_MIMO_PS_NA = 2, // reserved
609 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
610 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
611} tSirMacHTMIMOPowerSaveState;
612
613/* each station added has a rate mode which specifies the sta attributes */
614typedef enum eStaRateMode {
615 eSTA_TAURUS = 0,
616 eSTA_TITAN,
617 eSTA_POLARIS,
618 eSTA_11b,
619 eSTA_11bg,
620 eSTA_11a,
621 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700622#ifdef WLAN_FEATURE_11AC
623 eSTA_11ac,
624#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700625 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
626} tStaRateMode, *tpStaRateMode;
627
628#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
629#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
630#define SIR_NUM_POLARIS_RATES 3 //72,96,108
631
632#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
633
634
635typedef enum eSirBssType
636{
637 eSIR_INFRASTRUCTURE_MODE,
638 eSIR_INFRA_AP_MODE, //Added for softAP support
639 eSIR_IBSS_MODE,
640 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
641 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
642 eSIR_AUTO_MODE,
643 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
644} tSirBssType;
645
646typedef enum eSirNwType
647{
648 eSIR_11A_NW_TYPE,
649 eSIR_11B_NW_TYPE,
650 eSIR_11G_NW_TYPE,
651 eSIR_11N_NW_TYPE,
652 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
653} tSirNwType;
654
655typedef tANI_U16 tSirMacBeaconInterval;
656
657#define SIR_MAC_RATESET_EID_MAX 12
658
659typedef enum eSirMacHTOperatingMode
660{
661 eSIR_HT_OP_MODE_PURE, // No Protection
662 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
663 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
664 eSIR_HT_OP_MODE_MIXED, // Protection is required
665 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
666} tSirMacHTOperatingMode;
667
Jeff Johnson295189b2012-06-20 16:38:30 -0700668/// Encryption type enum used with peer
669typedef enum eAniEdType
670{
671 eSIR_ED_NONE,
672 eSIR_ED_WEP40,
673 eSIR_ED_WEP104,
674 eSIR_ED_TKIP,
675 eSIR_ED_CCMP,
676 eSIR_ED_WPI,
677 eSIR_ED_AES_128_CMAC,
678 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
679} tAniEdType;
680
681#define WLAN_MAX_KEY_RSC_LEN 16
682#define WLAN_WAPI_KEY_RSC_LEN 16
683
684/// MAX key length when ULA is used
685#define SIR_MAC_MAX_KEY_LENGTH 32
686#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
687
688/// Enum to specify whether key is used
689/// for TX only, RX only or both
690typedef enum eAniKeyDirection
691{
692 eSIR_TX_ONLY,
693 eSIR_RX_ONLY,
694 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700695 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700696 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
697} tAniKeyDirection;
698
699typedef enum eAniWepType
700{
701 eSIR_WEP_STATIC,
702 eSIR_WEP_DYNAMIC,
703 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
704} tAniWepType;
705
706typedef enum eSriLinkState {
707
708 eSIR_LINK_IDLE_STATE = 0,
709 eSIR_LINK_PREASSOC_STATE = 1,
710 eSIR_LINK_POSTASSOC_STATE = 2,
711 eSIR_LINK_AP_STATE = 3,
712 eSIR_LINK_IBSS_STATE = 4,
713
714 /* BT-AMP Case */
715 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
716 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
717 eSIR_LINK_BTAMP_AP_STATE = 7,
718 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530719
Jeff Johnson295189b2012-06-20 16:38:30 -0700720 /* Reserved for HAL Internal Use */
721 eSIR_LINK_LEARN_STATE = 9,
722 eSIR_LINK_SCAN_STATE = 10,
723 eSIR_LINK_FINISH_SCAN_STATE = 11,
724 eSIR_LINK_INIT_CAL_STATE = 12,
725 eSIR_LINK_FINISH_CAL_STATE = 13,
726#ifdef WLAN_FEATURE_P2P
727 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530728 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700729#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700730#ifdef WLAN_FEATURE_ROAM_OFFLOAD
731 eSIR_LINK_FT_PREASSOC_STATE = 16,
732#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700733 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
734} tSirLinkState;
735
736typedef enum
737{
738 HAL_SUMMARY_STATS_INFO = 0x00000001,
739 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
740 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
741 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
742 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
743 HAL_PER_STA_STATS_INFO = 0x00000020
744}eHalStatsMask;
745
746/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530747typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700748{
749 BTAMP_EVENT_CONNECTION_START,
750 BTAMP_EVENT_CONNECTION_STOP,
751 BTAMP_EVENT_CONNECTION_TERMINATED,
752 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
753} tBtAmpEventType;
754
755//***************************************************************
756
757
758/*******************PE Statistics*************************/
759typedef enum
760{
761 PE_SUMMARY_STATS_INFO = 0x00000001,
762 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
763 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
764 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
765 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
766 PE_PER_STA_STATS_INFO = 0x00000020,
767 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
768}ePEStatsMask;
769
Sunil Dutt8377a382014-05-26 21:18:04 +0530770
771/******************************LINK LAYER Statitics**********************/
772
773typedef int wifi_radio;
774typedef int wifi_channel;
775typedef int wifi_tx_rate;
776
777/* channel operating width */
778typedef enum {
779 WIFI_CHAN_WIDTH_20 = 0,
780 WIFI_CHAN_WIDTH_40 = 1,
781 WIFI_CHAN_WIDTH_80 = 2,
782 WIFI_CHAN_WIDTH_160 = 3,
783 WIFI_CHAN_WIDTH_80P80 = 4,
784 WIFI_CHAN_WIDTH_5 = 5,
785 WIFI_CHAN_WIDTH_10 = 6,
786} wifi_channel_width;
787
788typedef enum {
789 WIFI_DISCONNECTED = 0,
790 WIFI_AUTHENTICATING = 1,
791 WIFI_ASSOCIATING = 2,
792 WIFI_ASSOCIATED = 3,
793 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
794 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
795} wifi_connection_state;
796
797typedef enum {
798 WIFI_ROAMING_IDLE = 0,
799 WIFI_ROAMING_ACTIVE = 1,
800} wifi_roam_state;
801
802typedef enum {
803 WIFI_INTERFACE_STA = 0,
804 WIFI_INTERFACE_SOFTAP = 1,
805 WIFI_INTERFACE_IBSS = 2,
806 WIFI_INTERFACE_P2P_CLIENT = 3,
807 WIFI_INTERFACE_P2P_GO = 4,
808 WIFI_INTERFACE_NAN = 5,
809 WIFI_INTERFACE_MESH = 6,
810 } wifi_interface_mode;
811
812#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
813#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
814#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
815#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
816#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
817#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
818
819typedef PACKED_PRE struct PACKED_POST
820{
821 wifi_interface_mode mode; // interface mode
822 tANI_U8 mac_addr[6]; // interface mac address (self)
823 wifi_connection_state state; // connection state (valid for STA, CLI only)
824 wifi_roam_state roaming; // roaming state
825 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
826 tANI_U8 ssid[33]; // null terminated SSID
827 tANI_U8 bssid[6]; // bssid
828 tANI_U8 ap_country_str[3]; // country string advertised by AP
829 tANI_U8 country_str[3]; // country string for this association
830} wifi_interface_info;
831
832/* channel information */
833typedef PACKED_PRE struct PACKED_POST
834{
835 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
836 wifi_channel center_freq; // primary 20 MHz channel
837 wifi_channel center_freq0; // center frequency (MHz) first segment
838 wifi_channel center_freq1; // center frequency (MHz) second segment
839} wifi_channel_info;
840
841/* wifi rate info */
842typedef PACKED_PRE struct PACKED_POST
843{
844 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
845 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
846 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
847 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
848 // HT/VHT it would be mcs index
849 tANI_U32 reserved :16; // reserved
850 tANI_U32 bitrate; // units of 100 Kbps
851} wifi_rate;
852
853/* channel statistics */
854typedef PACKED_PRE struct PACKED_POST
855{
856 wifi_channel_info channel; // channel
857 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
858 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
859} wifi_channel_stats;
860
861/* radio statistics */
862typedef PACKED_PRE struct PACKED_POST
863{
864 wifi_radio radio; // wifi radio (if multiple radio supported)
865 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
866 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
867 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
868 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
869 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
870 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
871 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
872 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
873 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
874 tANI_U32 num_channels; // number of channels
875 wifi_channel_stats channels[1]; // channel statistics
876} wifi_radio_stat;
877
878/* per rate statistics */
879typedef PACKED_PRE struct PACKED_POST
880{
881 wifi_rate rate; // rate information *
882 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
883 tANI_U32 rx_mpdu; // number of received data pkts
884 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
885 tANI_U32 retries; // total number of data pkt retries *
886 tANI_U32 retries_short; // number of short data pkt retries
887 tANI_U32 retries_long; // number of long data pkt retries
888} wifi_rate_stat;
889
890/* access categories */
891typedef enum {
892 WIFI_AC_VO = 0,
893 WIFI_AC_VI = 1,
894 WIFI_AC_BE = 2,
895 WIFI_AC_BK = 3,
896 WIFI_AC_MAX = 4,
897} wifi_traffic_ac;
898
899/* wifi peer type */
900typedef enum
901{
902 WIFI_PEER_STA,
903 WIFI_PEER_AP,
904 WIFI_PEER_P2P_GO,
905 WIFI_PEER_P2P_CLIENT,
906 WIFI_PEER_NAN,
907 WIFI_PEER_TDLS,
908 WIFI_PEER_INVALID,
909} wifi_peer_type;
910
911/* per peer statistics */
912typedef PACKED_PRE struct PACKED_POST
913{
914 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
915 tANI_U8 peer_mac_address[6]; // mac address
916 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
917 tANI_U32 num_rate; // number of rates
918 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
919} wifi_peer_info;
920
921/* per access category statistics */
922typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530923{
924 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
925 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
926 tANI_U32 rx_mpdu; // number of received unicast mpdus
927 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
928 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
929 tANI_U32 rx_mcast; // number of received multicast data packets
930 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
931 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
932 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
933 tANI_U32 retries; // total number of data pkt retries
934 tANI_U32 retries_short; // number of short data pkt retries
935 tANI_U32 retries_long; // number of long data pkt retries
936 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
937 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
938 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
939 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
940} wifi_wmm_ac_stat;
941
942/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
943typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530944{
945 wifi_interface_info info; // current state of the interface
946 tANI_U32 beacon_rx; // access point beacon received count from connected AP
947 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
948 tANI_U32 mgmt_action_rx; // action frames received count
949 tANI_U32 mgmt_action_tx; // action frames transmit count
950 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
951 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
952 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
953 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
954} wifi_iface_stat;
955
956/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
957typedef PACKED_PRE struct PACKED_POST
958{
959 tANI_U32 num_peers; // number of peers
960 wifi_peer_info peer_info[1]; // per peer statistics
961} wifi_peer_stat;
962
963/* wifi statistics bitmap for getting statistics */
964#define WMI_LINK_STATS_RADIO 0x00000001
965#define WMI_LINK_STATS_IFACE 0x00000002
966#define WMI_LINK_STATS_ALL_PEER 0x00000004
967#define WMI_LINK_STATS_PER_PEER 0x00000008
968
969/* wifi statistics bitmap for clearing statistics */
970#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
971#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
972#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
973#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
974#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
975#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
976#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
977#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
978
979
Jeff Johnson295189b2012-06-20 16:38:30 -0700980/*---------------------------------------------------------------------------
981 Message definitons - All the messages below need to be packed
982 ---------------------------------------------------------------------------*/
983
984#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
985#pragma pack(push, 1)
986#elif defined(__ANI_COMPILER_PRAGMA_PACK)
987#pragma pack(1)
988#else
989#endif
990
991/// Definition for HAL API Version.
992typedef PACKED_PRE struct PACKED_POST
993{
994 tANI_U8 revision;
995 tANI_U8 version;
996 tANI_U8 minor;
997 tANI_U8 major;
998} tWcnssWlanVersion, *tpWcnssWlanVersion;
999
1000/// Definition for Encryption Keys
1001typedef PACKED_PRE struct PACKED_POST
1002{
1003 tANI_U8 keyId;
1004 tANI_U8 unicast; // 0 for multicast
1005 tAniKeyDirection keyDirection;
1006 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1007 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1008 tANI_U16 keyLength;
1009 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1010} tSirKeys, *tpSirKeys;
1011
1012
1013//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1014typedef PACKED_PRE struct PACKED_POST
1015{
1016 /*STA Index*/
1017 tANI_U16 staIdx;
1018
1019 /*Encryption Type used with peer*/
1020 tAniEdType encType;
1021
1022 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301023 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001024
1025 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1026 tANI_U8 defWEPIdx;
1027
Jeff Johnson295189b2012-06-20 16:38:30 -07001028 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301029 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1030
Jeff Johnson295189b2012-06-20 16:38:30 -07001031 /*Control for Replay Count, 1= Single TID based replay count on Tx
1032 0 = Per TID based replay count on TX */
1033 tANI_U8 singleTidRc;
1034
1035} tSetStaKeyParams, *tpSetStaKeyParams;
1036
1037
1038
1039/* 4-byte control message header used by HAL*/
1040typedef PACKED_PRE struct PACKED_POST
1041{
Jeff Johnsone7245742012-09-05 17:12:55 -07001042 tHalHostMsgType msgType:16;
1043 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001044 tANI_U32 msgLen;
1045} tHalMsgHeader, *tpHalMsgHeader;
1046
1047/* Config format required by HAL for each CFG item*/
1048typedef PACKED_PRE struct PACKED_POST
1049{
1050 /* Cfg Id. The Id required by HAL is exported by HAL
1051 * in shared header file between UMAC and HAL.*/
1052 tANI_U16 uCfgId;
1053
Dino Mycle8afbac12014-07-04 22:06:17 +05301054 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001055 * in the TLV format.*/
1056 tANI_U16 uCfgLen;
1057
1058 /* Padding bytes for unaligned address's */
1059 tANI_U16 uCfgPadBytes;
1060
1061 /* Reserve bytes for making cfgVal to align address */
1062 tANI_U16 uCfgReserve;
1063
1064 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1065 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1066} tHalCfg, *tpHalCfg;
1067
1068/*---------------------------------------------------------------------------
1069 WLAN_HAL_START_REQ
1070---------------------------------------------------------------------------*/
1071
1072typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1073{
1074 /* Drive Type - Production or FTM etc */
1075 tDriverType driverType;
1076
1077 /*Length of the config buffer*/
1078 tANI_U32 uConfigBufferLen;
1079
Dino Mycle8afbac12014-07-04 22:06:17 +05301080 /* Following this there is a TLV formatted buffer of length
1081 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001082 * The TLV is expected to be formatted like this:
1083 * 0 15 31 31+CFG_LEN-1 length-1
1084 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1085 */
1086} tHalMacStartParameters, *tpHalMacStartParameters;
1087
1088typedef PACKED_PRE struct PACKED_POST
1089{
1090 /* Note: The length specified in tHalMacStartReqMsg messages should be
1091 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1092 tHalMsgHeader header;
1093 tHalMacStartParameters startReqParams;
1094} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1095
1096/*---------------------------------------------------------------------------
1097 WLAN_HAL_START_RSP
1098---------------------------------------------------------------------------*/
1099
1100typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1101{
1102 /*success or failure */
1103 tANI_U16 status;
1104
1105 /*Max number of STA supported by the device*/
1106 tANI_U8 ucMaxStations;
1107
1108 /*Max number of BSS supported by the device*/
1109 tANI_U8 ucMaxBssids;
1110
1111 /*API Version */
1112 tWcnssWlanVersion wcnssWlanVersion;
1113
1114 /*CRM build information */
1115 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1116
1117 /*hardware/chipset/misc version information */
1118 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1119
1120} tHalMacStartRspParams, *tpHalMacStartRspParams;
1121
1122typedef PACKED_PRE struct PACKED_POST
1123{
1124 tHalMsgHeader header;
1125 tHalMacStartRspParams startRspParams;
1126} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1127
1128/*---------------------------------------------------------------------------
1129 WLAN_HAL_STOP_REQ
1130---------------------------------------------------------------------------*/
1131
1132typedef PACKED_PRE struct PACKED_POST
1133{
1134 /*The reason for which the device is being stopped*/
1135 tHalStopType reason;
1136
1137}tHalMacStopReqParams, *tpHalMacStopReqParams;
1138
1139typedef PACKED_PRE struct PACKED_POST
1140{
1141 tHalMsgHeader header;
1142 tHalMacStopReqParams stopReqParams;
1143} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1144
1145/*---------------------------------------------------------------------------
1146 WLAN_HAL_STOP_RSP
1147---------------------------------------------------------------------------*/
1148
1149typedef PACKED_PRE struct PACKED_POST
1150{
1151 /*success or failure */
1152 tANI_U32 status;
1153
1154}tHalMacStopRspParams, *tpHalMacStopRspParams;
1155
1156typedef PACKED_PRE struct PACKED_POST
1157{
1158 tHalMsgHeader header;
1159 tHalMacStopRspParams stopRspParams;
1160} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1161
1162/*---------------------------------------------------------------------------
1163 WLAN_HAL_UPDATE_CFG_REQ
1164---------------------------------------------------------------------------*/
1165
1166typedef PACKED_PRE struct PACKED_POST
1167{
1168 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1169 tANI_U32 uConfigBufferLen;
1170
Dino Mycle8afbac12014-07-04 22:06:17 +05301171 /* Following this there is a TLV formatted buffer of length
1172 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001173 * The TLV is expected to be formatted like this:
1174 * 0 15 31 31+CFG_LEN-1 length-1
1175 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1176 */
1177} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1178
1179typedef PACKED_PRE struct PACKED_POST
1180{
1181 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1182 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1183 tHalMsgHeader header;
1184 tHalUpdateCfgReqParams updateCfgReqParams;
1185} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1186
1187/*---------------------------------------------------------------------------
1188 WLAN_HAL_UPDATE_CFG_RSP
1189---------------------------------------------------------------------------*/
1190
1191typedef PACKED_PRE struct PACKED_POST
1192{
1193 /* success or failure */
1194 tANI_U32 status;
1195
1196}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1197
1198typedef PACKED_PRE struct PACKED_POST
1199{
1200 tHalMsgHeader header;
1201 tHalUpdateCfgRspParams updateCfgRspParams;
1202} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1203
1204/*---------------------------------------------------------------------------
1205 WLAN_HAL_INIT_SCAN_REQ
1206---------------------------------------------------------------------------*/
1207
1208/// Frame control field format (2 bytes)
1209typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1210{
1211
1212#ifndef ANI_LITTLE_BIT_ENDIAN
1213
1214 tANI_U8 subType :4;
1215 tANI_U8 type :2;
1216 tANI_U8 protVer :2;
1217
1218 tANI_U8 order :1;
1219 tANI_U8 wep :1;
1220 tANI_U8 moreData :1;
1221 tANI_U8 powerMgmt :1;
1222 tANI_U8 retry :1;
1223 tANI_U8 moreFrag :1;
1224 tANI_U8 fromDS :1;
1225 tANI_U8 toDS :1;
1226
1227#else
1228
1229 tANI_U8 protVer :2;
1230 tANI_U8 type :2;
1231 tANI_U8 subType :4;
1232
1233 tANI_U8 toDS :1;
1234 tANI_U8 fromDS :1;
1235 tANI_U8 moreFrag :1;
1236 tANI_U8 retry :1;
1237 tANI_U8 powerMgmt :1;
1238 tANI_U8 moreData :1;
1239 tANI_U8 wep :1;
1240 tANI_U8 order :1;
1241
1242#endif
1243
1244} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1245
1246/// Sequence control field
1247typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1248{
1249 tANI_U8 fragNum : 4;
1250 tANI_U8 seqNumLo : 4;
1251 tANI_U8 seqNumHi : 8;
1252} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1253
1254/// Management header format
1255typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1256{
1257 tSirMacFrameCtl fc;
1258 tANI_U8 durationLo;
1259 tANI_U8 durationHi;
1260 tANI_U8 da[6];
1261 tANI_U8 sa[6];
1262 tANI_U8 bssId[6];
1263 tSirMacSeqCtl seqControl;
1264} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1265
1266/// Scan Entry to hold active BSS idx's
1267typedef __ani_attr_pre_packed struct sSirScanEntry
1268{
1269 tANI_U8 bssIdx[HAL_NUM_BSSID];
1270 tANI_U8 activeBSScnt;
1271}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1272
1273typedef PACKED_PRE struct PACKED_POST {
1274
1275 /*LEARN - AP Role
1276 SCAN - STA Role*/
1277 eHalSysMode scanMode;
1278
1279 /*BSSID of the BSS*/
1280 tSirMacAddr bssid;
1281
1282 /*Whether BSS needs to be notified*/
1283 tANI_U8 notifyBss;
1284
1285 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1286 CTS to Self). Must always be a valid frame type.*/
1287 tANI_U8 frameType;
1288
1289 /*UMAC has the option of passing the MAC frame to be used for notifying
1290 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1291 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1292 frameType.*/
1293 tANI_U8 frameLength;
1294
Dino Mycle8afbac12014-07-04 22:06:17 +05301295 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001296 is non-zero. */
1297 tSirMacMgmtHdr macMgmtHdr;
1298
1299 /*Entry to hold number of active BSS idx's*/
1300 tSirScanEntry scanEntry;
1301
1302} tInitScanParams, * tpInitScanParams;
1303
1304typedef PACKED_PRE struct PACKED_POST
1305{
1306 tHalMsgHeader header;
1307 tInitScanParams initScanParams;
1308} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1309
1310typedef PACKED_PRE struct PACKED_POST {
1311
1312 /*LEARN - AP Role
1313 SCAN - STA Role*/
1314 eHalSysMode scanMode;
1315
1316 /*BSSID of the BSS*/
1317 tSirMacAddr bssid;
1318
1319 /*Whether BSS needs to be notified*/
1320 tANI_U8 notifyBss;
1321
1322 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1323 CTS to Self). Must always be a valid frame type.*/
1324 tANI_U8 frameType;
1325
1326 /*UMAC has the option of passing the MAC frame to be used for notifying
1327 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1328 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1329 frameType.*/
1330 tANI_U8 frameLength;
1331
Dino Mycle8afbac12014-07-04 22:06:17 +05301332 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001333 is non-zero. */
1334 tSirMacMgmtHdr macMgmtHdr;
1335
1336 /*Entry to hold number of active BSS idx's*/
1337 tSirScanEntry scanEntry;
1338
1339 /* Single NoA usage in Scanning */
1340 tANI_U8 useNoA;
1341
1342 /* Indicates the scan duration (in ms) */
1343 tANI_U16 scanDuration;
1344
1345} tInitScanConParams, * tpInitScanConParams;
1346
1347typedef PACKED_PRE struct PACKED_POST
1348{
1349 tHalMsgHeader header;
1350 tInitScanConParams initScanParams;
1351} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1352
1353
1354/*---------------------------------------------------------------------------
1355 WLAN_HAL_INIT_SCAN_RSP
1356---------------------------------------------------------------------------*/
1357
1358typedef PACKED_PRE struct PACKED_POST
1359{
1360 /*success or failure */
1361 tANI_U32 status;
1362
1363}tHalInitScanRspParams, *tpHalInitScanRspParams;
1364
1365typedef PACKED_PRE struct PACKED_POST
1366{
1367 tHalMsgHeader header;
1368 tHalInitScanRspParams initScanRspParams;
1369} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1370
1371/*---------------------------------------------------------------------------
1372 WLAN_HAL_START_SCAN_REQ
1373---------------------------------------------------------------------------*/
1374
Dino Mycle8afbac12014-07-04 22:06:17 +05301375typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001376{
1377 /*Indicates the channel to scan*/
1378 tANI_U8 scanChannel;
1379
1380 } tStartScanParams, * tpStartScanParams;
1381
1382typedef PACKED_PRE struct PACKED_POST
1383{
1384 tHalMsgHeader header;
1385 tStartScanParams startScanParams;
1386} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1387
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001388typedef PACKED_PRE struct PACKED_POST
1389{
1390 tHalMsgHeader header;
1391} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1392
Jeff Johnson295189b2012-06-20 16:38:30 -07001393/*---------------------------------------------------------------------------
1394 WLAN_HAL_START_SCAN_RSP
1395---------------------------------------------------------------------------*/
1396
1397typedef PACKED_PRE struct PACKED_POST
1398{
1399 /*success or failure */
1400 tANI_U32 status;
1401
1402 tANI_U32 startTSF[2];
1403 tPowerdBm txMgmtPower;
1404
1405}tHalStartScanRspParams, *tpHalStartScanRspParams;
1406
1407typedef PACKED_PRE struct PACKED_POST
1408{
1409 tHalMsgHeader header;
1410 tHalStartScanRspParams startScanRspParams;
1411} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1412
1413/*---------------------------------------------------------------------------
1414 WLAN_HAL_END_SCAN_REQ
1415---------------------------------------------------------------------------*/
1416
1417typedef PACKED_PRE struct PACKED_POST
1418{
1419 /*Indicates the channel to stop scanning. Not used really. But retained
1420 for symmetry with "start Scan" message. It can also help in error
1421 check if needed.*/
1422 tANI_U8 scanChannel;
1423
1424} tEndScanParams, *tpEndScanParams;
1425
1426typedef PACKED_PRE struct PACKED_POST
1427{
1428 tHalMsgHeader header;
1429 tEndScanParams endScanParams;
1430} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1431
1432/*---------------------------------------------------------------------------
1433 WLAN_HAL_END_SCAN_RSP
1434---------------------------------------------------------------------------*/
1435
1436typedef PACKED_PRE struct PACKED_POST
1437{
1438 /*success or failure */
1439 tANI_U32 status;
1440
1441}tHalEndScanRspParams, *tpHalEndScanRspParams;
1442
1443typedef PACKED_PRE struct PACKED_POST
1444{
1445 tHalMsgHeader header;
1446 tHalEndScanRspParams endScanRspParams;
1447} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1448
1449/*---------------------------------------------------------------------------
1450 WLAN_HAL_FINISH_SCAN_REQ
1451---------------------------------------------------------------------------*/
1452
1453typedef PACKED_PRE struct PACKED_POST
1454{
1455 /* Identifies the operational state of the AP/STA
1456 * LEARN - AP Role SCAN - STA Role */
1457 eHalSysMode scanMode;
1458
1459 /*Operating channel to tune to.*/
1460 tANI_U8 currentOperChannel;
1461
1462 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1463 40 MHz extension channel in combination with the control channel*/
1464 ePhyChanBondState cbState;
1465
1466 /*BSSID of the BSS*/
1467 tSirMacAddr bssid;
1468
1469 /*Whether BSS needs to be notified*/
1470 tANI_U8 notifyBss;
1471
1472 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1473 CTS to Self). Must always be a valid frame type.*/
1474 tANI_U8 frameType;
1475
1476 /*UMAC has the option of passing the MAC frame to be used for notifying
1477 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1478 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1479 frameType.*/
1480 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301481
1482 /*Following the framelength there is a MAC frame buffer if frameLength
1483 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001484 tSirMacMgmtHdr macMgmtHdr;
1485
1486 /*Entry to hold number of active BSS idx's*/
1487 tSirScanEntry scanEntry;
1488
1489} tFinishScanParams, *tpFinishScanParams;
1490
1491typedef PACKED_PRE struct PACKED_POST
1492{
1493 tHalMsgHeader header;
1494 tFinishScanParams finishScanParams;
1495} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1496
1497/*---------------------------------------------------------------------------
1498 WLAN_HAL_FINISH_SCAN_RSP
1499---------------------------------------------------------------------------*/
1500
1501typedef PACKED_PRE struct PACKED_POST
1502{
1503 /*success or failure */
1504 tANI_U32 status;
1505
1506}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1507
1508typedef PACKED_PRE struct PACKED_POST
1509{
1510 tHalMsgHeader header;
1511 tHalFinishScanRspParams finishScanRspParams;
1512} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1513
1514/*---------------------------------------------------------------------------
1515 WLAN_HAL_CONFIG_STA_REQ
1516---------------------------------------------------------------------------*/
1517
1518typedef PACKED_PRE struct PACKED_POST {
1519 /*
1520 * For Self STA Entry: this represents Self Mode.
1521 * For Peer Stations, this represents the mode of the peer.
1522 * On Station:
1523 * --this mode is updated when PE adds the Self Entry.
1524 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1525 * ON AP:
1526 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1527 * to indicate the self mode of the AP.
1528 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1529 */
1530
1531 tStaRateMode opRateMode;
1532 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1533 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1534 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1535 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1536 tANI_U16 reserved;
1537
1538 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1539 //First 26 bits are reserved for those Titan rates and
1540 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1541 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1542
1543 /*
1544 * 0-76 bits used, remaining reserved
1545 * bits 0-15 and 32 should be set.
1546 */
1547 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1548
1549 /*
1550 * RX Highest Supported Data Rate defines the highest data
1551 * rate that the STA is able to receive, in unites of 1Mbps.
1552 * This value is derived from "Supported MCS Set field" inside
1553 * the HT capability element.
1554 */
1555 tANI_U16 rxHighestDataRate;
1556
1557} tSirSupportedRates, *tpSirSupportedRates;
1558
1559typedef PACKED_PRE struct PACKED_POST
1560{
1561 /*BSSID of STA*/
1562 tSirMacAddr bssId;
1563
1564 /*ASSOC ID, as assigned by UMAC*/
1565 tANI_U16 assocId;
1566
1567 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1568 tANI_U8 staType;
1569
1570 /*Short Preamble Supported.*/
1571 tANI_U8 shortPreambleSupported;
1572
1573 /*MAC Address of STA*/
1574 tSirMacAddr staMac;
1575
1576 /*Listen interval of the STA*/
1577 tANI_U16 listenInterval;
1578
1579 /*Support for 11e/WMM*/
1580 tANI_U8 wmmEnabled;
1581
1582 /*11n HT capable STA*/
1583 tANI_U8 htCapable;
1584
1585 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1586 tANI_U8 txChannelWidthSet;
1587
1588 /*RIFS mode 0 - NA, 1 - Allowed */
1589 tANI_U8 rifsMode;
1590
Dino Mycle8afbac12014-07-04 22:06:17 +05301591 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001592 0 - No Support, 1 - Supported
1593 SG - there is global field */
1594 tANI_U8 lsigTxopProtection;
1595
1596 /*Max Ampdu Size supported by STA. TPE programming.
1597 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1598 tANI_U8 maxAmpduSize;
1599
1600 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1601 tANI_U8 maxAmpduDensity;
1602
1603 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1604 tANI_U8 maxAmsduSize;
1605
1606 /*Short GI support for 40Mhz packets*/
1607 tANI_U8 fShortGI40Mhz;
1608
1609 /*Short GI support for 20Mhz packets*/
1610 tANI_U8 fShortGI20Mhz;
1611
Jeff Johnson295189b2012-06-20 16:38:30 -07001612 /*Robust Management Frame (RMF) enabled/disabled*/
1613 tANI_U8 rmfEnabled;
1614
1615 /* The unicast encryption type in the association */
1616 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001617
1618 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001619 will set this flag in case of RE-ASSOC, where we want to reuse the old
1620 STA ID. 0 = Add, 1 = Update*/
1621 tANI_U8 action;
1622
1623 /*U-APSD Flags: 1b per AC. Encoded as follows:
1624 b7 b6 b5 b4 b3 b2 b1 b0 =
1625 X X X X BE BK VI VO */
1626 tANI_U8 uAPSD;
1627
1628 /*Max SP Length*/
1629 tANI_U8 maxSPLen;
1630
1631 /*11n Green Field preamble support
1632 0 - Not supported, 1 - Supported */
1633 tANI_U8 greenFieldCapable;
1634
1635 /*MIMO Power Save mode*/
1636 tSirMacHTMIMOPowerSaveState mimoPS;
1637
1638 /*Delayed BA Support*/
1639 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001640
Jeff Johnson295189b2012-06-20 16:38:30 -07001641 /*Max AMPDU duration in 32us*/
1642 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001643
Jeff Johnson295189b2012-06-20 16:38:30 -07001644 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1645 it to 0 if AP does not support it. This indication is sent to HAL and
1646 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1647 tANI_U8 fDsssCckMode40Mhz;
1648
1649 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1650 Retained for backward compalibity with existing HAL code*/
1651 tANI_U8 staIdx;
1652
1653 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1654 Retained for backward compalibity with existing HAL code*/
1655 tANI_U8 bssIdx;
1656
1657 tANI_U8 p2pCapableSta;
1658
Jeff Johnsone7245742012-09-05 17:12:55 -07001659 /*Reserved to align next field on a dword boundary*/
1660 tANI_U8 reserved;
1661
1662 /*These rates are the intersection of peer and self capabilities.*/
1663 tSirSupportedRates supportedRates;
1664
Jeff Johnson295189b2012-06-20 16:38:30 -07001665} tConfigStaParams, *tpConfigStaParams;
1666
Jeff Johnsone7245742012-09-05 17:12:55 -07001667/*------------------------------------------------------------------------
1668 * WLAN_HAL_CONFIG_STA_REQ
1669 * ----------------------------------------------------------------------*/
1670
1671typedef PACKED_PRE struct PACKED_POST {
1672 /*
1673 * For Self STA Entry: this represents Self Mode.
1674 * For Peer Stations, this represents the mode of the peer.
1675 * On Station:
1676 * --this mode is updated when PE adds the Self Entry.
1677 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1678 * ON AP:
1679 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1680 * to indicate the self mode of the AP.
1681 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1682 */
1683
1684 tStaRateMode opRateMode;
1685 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1686 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1687 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1688 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1689 tANI_U16 reserved;
1690
1691 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1692 //First 26 bits are reserved for those Titan rates and
1693 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1694 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1695
1696 /*
1697 * 0-76 bits used, remaining reserved
1698 * bits 0-15 and 32 should be set.
1699 */
1700 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1701
1702 /*
1703 * RX Highest Supported Data Rate defines the highest data
1704 * rate that the STA is able to receive, in unites of 1Mbps.
1705 * This value is derived from "Supported MCS Set field" inside
1706 * the HT capability element.
1707 */
1708 tANI_U16 rxHighestDataRate;
1709
1710 /* Indicates the Maximum MCS that can be received for each number
1711 * of spacial streams */
1712 tANI_U16 vhtRxMCSMap;
1713
1714 /*Indicate the highest VHT data rate that the STA is able to receive*/
1715 tANI_U16 vhtRxHighestDataRate;
1716
1717 /* Indicates the Maximum MCS that can be transmitted for each number
1718 * of spacial streams */
1719 tANI_U16 vhtTxMCSMap;
1720
1721 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1722 tANI_U16 vhtTxHighestDataRate;
1723
1724} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1725
1726typedef PACKED_PRE struct PACKED_POST
1727{
1728 /*BSSID of STA*/
1729 tSirMacAddr bssId;
1730
1731 /*ASSOC ID, as assigned by UMAC*/
1732 tANI_U16 assocId;
1733
1734 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1735 tANI_U8 staType;
1736
1737 /*Short Preamble Supported.*/
1738 tANI_U8 shortPreambleSupported;
1739
1740 /*MAC Address of STA*/
1741 tSirMacAddr staMac;
1742
1743 /*Listen interval of the STA*/
1744 tANI_U16 listenInterval;
1745
1746 /*Support for 11e/WMM*/
1747 tANI_U8 wmmEnabled;
1748
1749 /*11n HT capable STA*/
1750 tANI_U8 htCapable;
1751
1752 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1753 tANI_U8 txChannelWidthSet;
1754
1755 /*RIFS mode 0 - NA, 1 - Allowed */
1756 tANI_U8 rifsMode;
1757
1758 /*L-SIG TXOP Protection mechanism
1759 0 - No Support, 1 - Supported
1760 SG - there is global field */
1761 tANI_U8 lsigTxopProtection;
1762
1763 /*Max Ampdu Size supported by STA. TPE programming.
1764 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1765 tANI_U8 maxAmpduSize;
1766
1767 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1768 tANI_U8 maxAmpduDensity;
1769
1770 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1771 tANI_U8 maxAmsduSize;
1772
1773 /*Short GI support for 40Mhz packets*/
1774 tANI_U8 fShortGI40Mhz;
1775
1776 /*Short GI support for 20Mhz packets*/
1777 tANI_U8 fShortGI20Mhz;
1778
1779 /*Robust Management Frame (RMF) enabled/disabled*/
1780 tANI_U8 rmfEnabled;
1781
1782 /* The unicast encryption type in the association */
1783 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301784
1785 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001786 will set this flag in case of RE-ASSOC, where we want to reuse the old
1787 STA ID. 0 = Add, 1 = Update*/
1788 tANI_U8 action;
1789
1790 /*U-APSD Flags: 1b per AC. Encoded as follows:
1791 b7 b6 b5 b4 b3 b2 b1 b0 =
1792 X X X X BE BK VI VO */
1793 tANI_U8 uAPSD;
1794
1795 /*Max SP Length*/
1796 tANI_U8 maxSPLen;
1797
1798 /*11n Green Field preamble support
1799 0 - Not supported, 1 - Supported */
1800 tANI_U8 greenFieldCapable;
1801
1802 /*MIMO Power Save mode*/
1803 tSirMacHTMIMOPowerSaveState mimoPS;
1804
1805 /*Delayed BA Support*/
1806 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05301807
Jeff Johnsone7245742012-09-05 17:12:55 -07001808 /*Max AMPDU duration in 32us*/
1809 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05301810
Jeff Johnsone7245742012-09-05 17:12:55 -07001811 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1812 it to 0 if AP does not support it. This indication is sent to HAL and
1813 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1814 tANI_U8 fDsssCckMode40Mhz;
1815
1816 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1817 Retained for backward compalibity with existing HAL code*/
1818 tANI_U8 staIdx;
1819
1820 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1821 Retained for backward compalibity with existing HAL code*/
1822 tANI_U8 bssIdx;
1823
1824 tANI_U8 p2pCapableSta;
1825
1826 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001827 tANI_U8 htLdpcEnabled:1;
1828 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001829 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05301830 tANI_U8 vhtTxMUBformeeCapable:1;
1831 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001832
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001833 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001834 tSirSupportedRates_V1 supportedRates;
1835
1836 tANI_U8 vhtCapable;
1837 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001838
Jeff Johnsone7245742012-09-05 17:12:55 -07001839} tConfigStaParams_V1, *tpConfigStaParams_V1;
1840
Jeff Johnson295189b2012-06-20 16:38:30 -07001841typedef PACKED_PRE struct PACKED_POST
1842{
1843 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001844 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001845 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001846 tConfigStaParams_V1 configStaParams_V1;
1847 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001848} tConfigStaReqMsg, *tpConfigStaReqMsg;
1849
1850/*---------------------------------------------------------------------------
1851 WLAN_HAL_CONFIG_STA_RSP
1852---------------------------------------------------------------------------*/
1853
1854typedef PACKED_PRE struct PACKED_POST
1855{
1856 /*success or failure */
1857 tANI_U32 status;
1858
1859 /* Station index; valid only when 'status' field value SUCCESS */
1860 tANI_U8 staIdx;
1861
1862 /* BSSID Index of BSS to which the station is associated */
1863 tANI_U8 bssIdx;
1864
1865 /* DPU Index for PTK */
1866 tANI_U8 dpuIndex;
1867
Dino Mycle8afbac12014-07-04 22:06:17 +05301868 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001869 tANI_U8 bcastDpuIndex;
1870
1871 /*DPU Index for IGTK */
1872 tANI_U8 bcastMgmtDpuIdx;
1873
1874 /*PTK DPU signature*/
1875 tANI_U8 ucUcastSig;
1876
1877 /*GTK DPU isignature*/
1878 tANI_U8 ucBcastSig;
1879
1880 /* IGTK DPU signature*/
1881 tANI_U8 ucMgmtSig;
1882
1883 tANI_U8 p2pCapableSta;
1884
1885}tConfigStaRspParams, *tpConfigStaRspParams;
1886
1887typedef PACKED_PRE struct PACKED_POST
1888{
1889 tHalMsgHeader header;
1890 tConfigStaRspParams configStaRspParams;
1891}tConfigStaRspMsg, *tpConfigStaRspMsg;
1892
1893/*---------------------------------------------------------------------------
1894 WLAN_HAL_DELETE_STA_REQ
1895---------------------------------------------------------------------------*/
1896
1897/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05301898typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001899{
1900 /* Index of STA to delete */
1901 tANI_U8 staIdx;
1902} tDeleteStaParams, *tpDeleteStaParams;
1903
1904/* Delete STA Request message*/
1905typedef PACKED_PRE struct PACKED_POST
1906{
1907 tHalMsgHeader header;
1908 tDeleteStaParams delStaParams;
1909} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1910
1911/*---------------------------------------------------------------------------
1912 WLAN_HAL_DELETE_STA_RSP
1913---------------------------------------------------------------------------*/
1914
1915/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05301916typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001917{
1918 /*success or failure */
1919 tANI_U32 status;
1920
1921 /* Index of STA deleted */
1922 tANI_U8 staId;
1923} tDeleteStaRspParams, *tpDeleteStaRspParams;
1924
1925/* Delete STA Response message*/
1926typedef PACKED_PRE struct PACKED_POST
1927{
1928 tHalMsgHeader header;
1929 tDeleteStaRspParams delStaRspParams;
1930} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1931
1932/*---------------------------------------------------------------------------
1933 WLAN_HAL_CONFIG_BSS_REQ
1934---------------------------------------------------------------------------*/
1935
1936//12 Bytes long because this structure can be used to represent rate
1937//and extended rate set IEs. The parser assume this to be at least 12
1938typedef __ani_attr_pre_packed struct sSirMacRateSet
1939{
1940 tANI_U8 numRates;
1941 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1942} __ani_attr_packed tSirMacRateSet;
1943
1944// access category record
1945typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1946{
1947#ifndef ANI_LITTLE_BIT_ENDIAN
1948 tANI_U8 rsvd : 1;
1949 tANI_U8 aci : 2;
1950 tANI_U8 acm : 1;
1951 tANI_U8 aifsn : 4;
1952#else
1953 tANI_U8 aifsn : 4;
1954 tANI_U8 acm : 1;
1955 tANI_U8 aci : 2;
1956 tANI_U8 rsvd : 1;
1957#endif
1958} __ani_attr_packed tSirMacAciAifsn;
1959
1960// contention window size
1961typedef __ani_attr_pre_packed struct sSirMacCW
1962{
1963#ifndef ANI_LITTLE_BIT_ENDIAN
1964 tANI_U8 max : 4;
1965 tANI_U8 min : 4;
1966#else
1967 tANI_U8 min : 4;
1968 tANI_U8 max : 4;
1969#endif
1970} __ani_attr_packed tSirMacCW;
1971
1972typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1973{
1974 tSirMacAciAifsn aci;
1975 tSirMacCW cw;
1976 tANI_U16 txoplimit;
1977} __ani_attr_packed tSirMacEdcaParamRecord;
1978
1979typedef __ani_attr_pre_packed struct sSirMacSSid
1980{
1981 tANI_U8 length;
1982 tANI_U8 ssId[32];
1983} __ani_attr_packed tSirMacSSid;
1984
1985// Concurrency role. These are generic IDs that identify the various roles
1986// in the software system.
1987typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05301988 HAL_STA_MODE=0,
1989 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001990 HAL_P2P_CLIENT_MODE,
1991 HAL_P2P_GO_MODE,
1992 HAL_MONITOR_MODE,
1993} tHalConMode;
1994
1995//This is a bit pattern to be set for each mode
1996//bit 0 - sta mode
1997//bit 1 - ap mode
1998//bit 2 - p2p client mode
1999//bit 3 - p2p go mode
2000typedef enum
2001{
Dino Mycle8afbac12014-07-04 22:06:17 +05302002 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002003 HAL_SAP=2,
2004 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2005 HAL_P2P_CLIENT=4,
2006 HAL_P2P_GO=8,
2007 HAL_MAX_CONCURRENCY_PERSONA=4
2008} tHalConcurrencyMode;
2009
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002010// IFACE PERSONA for different Operating modes
2011typedef enum
2012{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002013 HAL_IFACE_UNKNOWN=0,
2014 HAL_IFACE_STA_MODE=1,
2015 HAL_IFACE_P2P_MODE=2,
2016 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002017} tHalIfacePersona;
2018
Jeff Johnson295189b2012-06-20 16:38:30 -07002019typedef PACKED_PRE struct PACKED_POST
2020{
2021 /* BSSID */
2022 tSirMacAddr bssId;
2023
Jeff Johnson295189b2012-06-20 16:38:30 -07002024 /* Self Mac Address */
2025 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002026
2027 /* BSS type */
2028 tSirBssType bssType;
2029
2030 /*Operational Mode: AP =0, STA = 1*/
2031 tANI_U8 operMode;
2032
2033 /*Network Type*/
2034 tSirNwType nwType;
2035
2036 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2037 tANI_U8 shortSlotTimeSupported;
2038
2039 /*Co-exist with 11a STA*/
2040 tANI_U8 llaCoexist;
2041
2042 /*Co-exist with 11b STA*/
2043 tANI_U8 llbCoexist;
2044
2045 /*Co-exist with 11g STA*/
2046 tANI_U8 llgCoexist;
2047
2048 /*Coexistence with 11n STA*/
2049 tANI_U8 ht20Coexist;
2050
2051 /*Non GF coexist flag*/
2052 tANI_U8 llnNonGFCoexist;
2053
2054 /*TXOP protection support*/
2055 tANI_U8 fLsigTXOPProtectionFullSupport;
2056
2057 /*RIFS mode*/
2058 tANI_U8 fRIFSMode;
2059
2060 /*Beacon Interval in TU*/
2061 tSirMacBeaconInterval beaconInterval;
2062
2063 /*DTIM period*/
2064 tANI_U8 dtimPeriod;
2065
2066 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2067 tANI_U8 txChannelWidthSet;
2068
2069 /*Operating channel*/
2070 tANI_U8 currentOperChannel;
2071
2072 /*Extension channel for channel bonding*/
2073 tANI_U8 currentExtChannel;
2074
2075 /*Reserved to align next field on a dword boundary*/
2076 tANI_U8 reserved;
2077
Jeff Johnsone7245742012-09-05 17:12:55 -07002078 /*SSID of the BSS*/
2079 tSirMacSSid ssId;
2080
2081 /*HAL should update the existing BSS entry, if this flag is set.
2082 UMAC will set this flag in case of reassoc, where we want to resue the
2083 the old BSSID and still return success 0 = Add, 1 = Update*/
2084 tANI_U8 action;
2085
2086 /* MAC Rate Set */
2087 tSirMacRateSet rateSet;
2088
2089 /*Enable/Disable HT capabilities of the BSS*/
2090 tANI_U8 htCapable;
2091
2092 // Enable/Disable OBSS protection
2093 tANI_U8 obssProtEnabled;
2094
2095 /*RMF enabled/disabled*/
2096 tANI_U8 rmfEnabled;
2097
2098 /*HT Operating Mode operating mode of the 802.11n STA*/
2099 tSirMacHTOperatingMode htOperMode;
2100
2101 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2102 tANI_U8 dualCTSProtection;
2103
2104 /* Probe Response Max retries */
2105 tANI_U8 ucMaxProbeRespRetryLimit;
2106
2107 /* To Enable Hidden ssid */
2108 tANI_U8 bHiddenSSIDEn;
2109
2110 /* To Enable Disable FW Proxy Probe Resp */
2111 tANI_U8 bProxyProbeRespEn;
2112
2113 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2114 EDCA params or might not desire to apply EDCA params during config BSS.
2115 0 implies Not Valid ; Non-Zero implies valid*/
2116 tANI_U8 edcaParamsValid;
2117
2118 /*EDCA Parameters for Best Effort Access Category*/
2119 tSirMacEdcaParamRecord acbe;
2120
2121 /*EDCA Parameters forBackground Access Category*/
2122 tSirMacEdcaParamRecord acbk;
2123
2124 /*EDCA Parameters for Video Access Category*/
2125 tSirMacEdcaParamRecord acvi;
2126
2127 /*EDCA Parameters for Voice Access Category*/
2128 tSirMacEdcaParamRecord acvo;
2129
2130#ifdef WLAN_FEATURE_VOWIFI_11R
2131 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2132 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2133#endif
2134
2135 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2136 tANI_U8 halPersona;
2137
2138 tANI_U8 bSpectrumMgtEnable;
2139
2140 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2141 tANI_S8 txMgmtPower;
2142 /*maxTxPower has max power to be used after applying the power constraint if any */
2143 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002144 /*Context of the station being added in HW
2145 Add a STA entry for "itself" -
2146 On AP - Add the AP itself in an "STA context"
2147 On STA - Add the AP to which this STA is joining in an "STA context" */
2148 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002149} tConfigBssParams, * tpConfigBssParams;
2150
2151
2152/*--------------------------------------------------------------------------
2153 * WLAN_HAL_CONFIG_BSS_REQ
2154 *--------------------------------------------------------------------------*/
2155typedef PACKED_PRE struct PACKED_POST
2156{
2157 /* BSSID */
2158 tSirMacAddr bssId;
2159
Jeff Johnsone7245742012-09-05 17:12:55 -07002160 /* Self Mac Address */
2161 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002162
2163 /* BSS type */
2164 tSirBssType bssType;
2165
2166 /*Operational Mode: AP =0, STA = 1*/
2167 tANI_U8 operMode;
2168
2169 /*Network Type*/
2170 tSirNwType nwType;
2171
2172 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2173 tANI_U8 shortSlotTimeSupported;
2174
2175 /*Co-exist with 11a STA*/
2176 tANI_U8 llaCoexist;
2177
2178 /*Co-exist with 11b STA*/
2179 tANI_U8 llbCoexist;
2180
2181 /*Co-exist with 11g STA*/
2182 tANI_U8 llgCoexist;
2183
2184 /*Coexistence with 11n STA*/
2185 tANI_U8 ht20Coexist;
2186
2187 /*Non GF coexist flag*/
2188 tANI_U8 llnNonGFCoexist;
2189
2190 /*TXOP protection support*/
2191 tANI_U8 fLsigTXOPProtectionFullSupport;
2192 /*RIFS mode*/
2193 tANI_U8 fRIFSMode;
2194
2195 /*Beacon Interval in TU*/
2196 tSirMacBeaconInterval beaconInterval;
2197
2198 /*DTIM period*/
2199 tANI_U8 dtimPeriod;
2200
2201 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2202 tANI_U8 txChannelWidthSet;
2203
2204 /*Operating channel*/
2205 tANI_U8 currentOperChannel;
2206
2207 /*Extension channel for channel bonding*/
2208 tANI_U8 currentExtChannel;
2209
2210 /*Reserved to align next field on a dword boundary*/
2211 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002212
2213 /*SSID of the BSS*/
2214 tSirMacSSid ssId;
2215
2216 /*HAL should update the existing BSS entry, if this flag is set.
2217 UMAC will set this flag in case of reassoc, where we want to resue the
2218 the old BSSID and still return success 0 = Add, 1 = Update*/
2219 tANI_U8 action;
2220
2221 /* MAC Rate Set */
2222 tSirMacRateSet rateSet;
2223
2224 /*Enable/Disable HT capabilities of the BSS*/
2225 tANI_U8 htCapable;
2226
2227 // Enable/Disable OBSS protection
2228 tANI_U8 obssProtEnabled;
2229
2230 /*RMF enabled/disabled*/
2231 tANI_U8 rmfEnabled;
2232
2233 /*HT Operating Mode operating mode of the 802.11n STA*/
2234 tSirMacHTOperatingMode htOperMode;
2235
2236 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2237 tANI_U8 dualCTSProtection;
2238
2239 /* Probe Response Max retries */
2240 tANI_U8 ucMaxProbeRespRetryLimit;
2241
2242 /* To Enable Hidden ssid */
2243 tANI_U8 bHiddenSSIDEn;
2244
2245 /* To Enable Disable FW Proxy Probe Resp */
2246 tANI_U8 bProxyProbeRespEn;
2247
Dino Mycle8afbac12014-07-04 22:06:17 +05302248 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2249 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002250 0 implies Not Valid ; Non-Zero implies valid*/
2251 tANI_U8 edcaParamsValid;
2252
2253 /*EDCA Parameters for Best Effort Access Category*/
2254 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302255
Jeff Johnson295189b2012-06-20 16:38:30 -07002256 /*EDCA Parameters forBackground Access Category*/
2257 tSirMacEdcaParamRecord acbk;
2258
2259 /*EDCA Parameters for Video Access Category*/
2260 tSirMacEdcaParamRecord acvi;
2261
2262 /*EDCA Parameters for Voice Access Category*/
2263 tSirMacEdcaParamRecord acvo;
2264
2265#ifdef WLAN_FEATURE_VOWIFI_11R
2266 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2267 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2268#endif
2269
Dino Mycle8afbac12014-07-04 22:06:17 +05302270 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002271 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302272
Jeff Johnson295189b2012-06-20 16:38:30 -07002273 tANI_U8 bSpectrumMgtEnable;
2274
2275 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2276 tANI_S8 txMgmtPower;
2277 /*maxTxPower has max power to be used after applying the power constraint if any */
2278 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002279 /*Context of the station being added in HW
2280 Add a STA entry for "itself" -
2281 On AP - Add the AP itself in an "STA context"
2282 On STA - Add the AP to which this STA is joining in an "STA context" */
2283 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302284
Jeff Johnsone7245742012-09-05 17:12:55 -07002285 tANI_U8 vhtCapable;
2286 tANI_U8 vhtTxChannelWidthSet;
2287} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002288
2289typedef PACKED_PRE struct PACKED_POST
2290{
2291 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002292 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002293 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002294 tConfigBssParams_V1 configBssParams_V1;
2295 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002296} tConfigBssReqMsg, *tpConfigBssReqMsg;
2297
2298/*---------------------------------------------------------------------------
2299 WLAN_HAL_CONFIG_BSS_RSP
2300---------------------------------------------------------------------------*/
2301
2302typedef PACKED_PRE struct PACKED_POST
2303{
2304 /* Success or Failure */
2305 tANI_U32 status;
2306
2307 /* BSS index allocated by HAL */
2308 tANI_U8 bssIdx;
2309
2310 /* DPU descriptor index for PTK */
2311 tANI_U8 dpuDescIndx;
2312
2313 /* PTK DPU signature */
2314 tANI_U8 ucastDpuSignature;
2315
2316 /* DPU descriptor index for GTK*/
2317 tANI_U8 bcastDpuDescIndx;
2318
2319 /* GTK DPU signature */
2320 tANI_U8 bcastDpuSignature;
2321
2322 /*DPU descriptor for IGTK*/
2323 tANI_U8 mgmtDpuDescIndx;
2324
2325 /* IGTK DPU signature */
2326 tANI_U8 mgmtDpuSignature;
2327
2328 /* Station Index for BSS entry*/
2329 tANI_U8 bssStaIdx;
2330
2331 /* Self station index for this BSS */
2332 tANI_U8 bssSelfStaIdx;
2333
2334 /* Bcast station for buffering bcast frames in AP role */
2335 tANI_U8 bssBcastStaIdx;
2336
2337 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2338 tSirMacAddr staMac;
2339
2340 /*HAL fills in the tx power used for mgmt frames in this field. */
2341 tANI_S8 txMgmtPower;
2342
2343} tConfigBssRspParams, * tpConfigBssRspParams;
2344
2345typedef PACKED_PRE struct PACKED_POST
2346{
2347 tHalMsgHeader header;
2348 tConfigBssRspParams configBssRspParams;
2349} tConfigBssRspMsg, *tpConfigBssRspMsg;
2350
2351/*---------------------------------------------------------------------------
2352 WLAN_HAL_DELETE_BSS_REQ
2353---------------------------------------------------------------------------*/
2354
2355typedef PACKED_PRE struct PACKED_POST
2356{
2357 /* BSS index to be deleted */
2358 tANI_U8 bssIdx;
2359
2360} tDeleteBssParams, *tpDeleteBssParams;
2361
2362typedef PACKED_PRE struct PACKED_POST
2363{
2364 tHalMsgHeader header;
2365 tDeleteBssParams deleteBssParams;
2366} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2367
2368/*---------------------------------------------------------------------------
2369 WLAN_HAL_DELETE_BSS_RSP
2370---------------------------------------------------------------------------*/
2371
2372typedef PACKED_PRE struct PACKED_POST
2373{
2374 /* Success or Failure */
2375 tANI_U32 status;
2376
2377 /* BSS index that has been deleted */
2378 tANI_U8 bssIdx;
2379
2380} tDeleteBssRspParams, *tpDeleteBssRspParams;
2381
2382typedef PACKED_PRE struct PACKED_POST
2383{
2384 tHalMsgHeader header;
2385 tDeleteBssRspParams deleteBssRspParams;
2386} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2387
2388/*---------------------------------------------------------------------------
2389 WLAN_HAL_JOIN_REQ
2390---------------------------------------------------------------------------*/
2391
2392typedef PACKED_PRE struct PACKED_POST
2393{
2394 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302395 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002396
2397 /*Indicates the channel to switch to.*/
2398 tANI_U8 ucChannel;
2399
2400 /* Self STA MAC */
2401 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302402
Jeff Johnson295189b2012-06-20 16:38:30 -07002403 /*Local power constraint*/
2404 tANI_U8 ucLocalPowerConstraint;
2405
2406 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002407 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002408
2409 /*link State*/
2410 tSirLinkState linkState;
2411
2412 /* Max TX power */
2413 tANI_S8 maxTxPower;
2414
2415} tHalJoinReqParams, *tpHalJoinReqParams;
2416
2417typedef PACKED_PRE struct PACKED_POST
2418{
2419 tHalMsgHeader header;
2420 tHalJoinReqParams joinReqParams;
2421} tHalJoinReqMsg, *tpHalJoinReqMsg;
2422
2423/*---------------------------------------------------------------------------
2424 WLAN_HAL_JOIN_RSP
2425---------------------------------------------------------------------------*/
2426
2427typedef PACKED_PRE struct PACKED_POST
2428{
2429 /*success or failure */
2430 tANI_U32 status;
2431
2432 /* HAL fills in the tx power used for mgmt frames in this field */
2433 tPowerdBm txMgmtPower;
2434
2435}tHalJoinRspParams, *tpHalJoinRspParams;
2436
2437typedef PACKED_PRE struct PACKED_POST
2438{
2439 tHalMsgHeader header;
2440 tHalJoinRspParams joinRspParams;
2441}tHalJoinRspMsg, *tpHalJoinRspMsg;
2442
2443/*---------------------------------------------------------------------------
2444 WLAN_HAL_POST_ASSOC_REQ
2445---------------------------------------------------------------------------*/
2446
2447typedef PACKED_PRE struct PACKED_POST
2448{
2449 tConfigStaParams configStaParams;
2450 tConfigBssParams configBssParams;
2451} tPostAssocReqParams, *tpPostAssocReqParams;
2452
2453typedef PACKED_PRE struct PACKED_POST
2454{
2455 tHalMsgHeader header;
2456 tPostAssocReqParams postAssocReqParams;
2457} tPostAssocReqMsg, *tpPostAssocReqMsg;
2458
2459/*---------------------------------------------------------------------------
2460 WLAN_HAL_POST_ASSOC_RSP
2461---------------------------------------------------------------------------*/
2462
2463typedef PACKED_PRE struct PACKED_POST
2464{
2465 tConfigStaRspParams configStaRspParams;
2466 tConfigBssRspParams configBssRspParams;
2467} tPostAssocRspParams, *tpPostAssocRspParams;
2468
2469typedef PACKED_PRE struct PACKED_POST
2470{
2471 tHalMsgHeader header;
2472 tPostAssocRspParams postAssocRspParams;
2473} tPostAssocRspMsg, *tpPostAssocRspMsg;
2474
2475/*---------------------------------------------------------------------------
2476 WLAN_HAL_SET_BSSKEY_REQ
2477---------------------------------------------------------------------------*/
2478
2479/*
2480 * This is used by PE to create a set of WEP keys for a given BSS.
2481 */
2482typedef PACKED_PRE struct PACKED_POST
2483{
2484 /*BSS Index of the BSS*/
2485 tANI_U8 bssIdx;
2486
2487 /*Encryption Type used with peer*/
2488 tAniEdType encType;
2489
2490 /*Number of keys*/
2491 tANI_U8 numKeys;
2492
2493 /*Array of keys.*/
2494 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302495
Jeff Johnson295189b2012-06-20 16:38:30 -07002496 /*Control for Replay Count, 1= Single TID based replay count on Tx
2497 0 = Per TID based replay count on TX */
2498 tANI_U8 singleTidRc;
2499} tSetBssKeyParams, *tpSetBssKeyParams;
2500
2501typedef PACKED_PRE struct PACKED_POST
2502{
2503 tHalMsgHeader header;
2504 tSetBssKeyParams setBssKeyParams;
2505} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2506
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002507/* tagged version of set bss key */
2508typedef PACKED_PRE struct PACKED_POST
2509{
2510 tSetBssKeyReqMsg Msg;
2511 uint32 Tag;
2512} tSetBssKeyReqMsgTagged;
2513
Jeff Johnson295189b2012-06-20 16:38:30 -07002514/*---------------------------------------------------------------------------
2515 WLAN_HAL_SET_BSSKEY_RSP
2516---------------------------------------------------------------------------*/
2517typedef PACKED_PRE struct PACKED_POST
2518{
2519 /*success or failure */
2520 tANI_U32 status;
2521
2522} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2523
2524typedef PACKED_PRE struct PACKED_POST
2525{
2526 tHalMsgHeader header;
2527 tSetBssKeyRspParams setBssKeyRspParams;
2528} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2529
2530/*---------------------------------------------------------------------------
2531 WLAN_HAL_SET_STAKEY_REQ,
2532---------------------------------------------------------------------------*/
2533
2534/*
2535 * This is used by PE to configure the key information on a given station.
2536 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2537 * a preconfigured key from a BSS the station assoicated with; otherwise
2538 * a new key descriptor is created based on the key field.
2539 */
2540
2541typedef PACKED_PRE struct PACKED_POST
2542{
2543 tHalMsgHeader header;
2544 tSetStaKeyParams setStaKeyParams;
2545} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2546
2547/*---------------------------------------------------------------------------
2548 WLAN_HAL_SET_STAKEY_RSP,
2549---------------------------------------------------------------------------*/
2550typedef PACKED_PRE struct PACKED_POST
2551{
2552 /*success or failure */
2553 tANI_U32 status;
2554
2555} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2556
2557typedef PACKED_PRE struct PACKED_POST
2558{
2559 tHalMsgHeader header;
2560 tSetStaKeyRspParams setStaKeyRspParams;
2561} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2562
2563/*---------------------------------------------------------------------------
2564 WLAN_HAL_RMV_BSSKEY_REQ,
2565---------------------------------------------------------------------------*/
2566/*
2567 * This is used by PE to remove keys for a given BSS.
2568 */
2569typedef PACKED_PRE struct PACKED_POST
2570
2571{
2572 /*BSS Index of the BSS*/
2573 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302574
Jeff Johnson295189b2012-06-20 16:38:30 -07002575 /*Encryption Type used with peer*/
2576 tAniEdType encType;
2577
2578 /*Key Id*/
2579 tANI_U8 keyId;
2580
2581 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2582 tAniWepType wepType;
2583
2584} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2585
2586typedef PACKED_PRE struct PACKED_POST
2587{
2588 tHalMsgHeader header;
2589 tRemoveBssKeyParams removeBssKeyParams;
2590} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2591
2592/*---------------------------------------------------------------------------
2593 WLAN_HAL_RMV_BSSKEY_RSP,
2594---------------------------------------------------------------------------*/
2595typedef PACKED_PRE struct PACKED_POST
2596{
2597 /*success or failure */
2598 tANI_U32 status;
2599
2600} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2601
2602typedef PACKED_PRE struct PACKED_POST
2603{
2604 tHalMsgHeader header;
2605 tRemoveBssKeyRspParams removeBssKeyRspParams;
2606} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2607
2608/*---------------------------------------------------------------------------
2609 WLAN_HAL_RMV_STAKEY_REQ,
2610---------------------------------------------------------------------------*/
2611/*
2612 * This is used by PE to Remove the key information on a given station.
2613 */
2614typedef PACKED_PRE struct PACKED_POST
2615{
2616 /*STA Index*/
2617 tANI_U16 staIdx;
2618
2619 /*Encryption Type used with peer*/
2620 tAniEdType encType;
2621
2622 /*Key Id*/
2623 tANI_U8 keyId;
2624
2625 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2626 the same key is used for both broadcast and unicast.*/
2627 tANI_BOOLEAN unicast;
2628
2629} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2630
2631typedef PACKED_PRE struct PACKED_POST
2632{
2633 tHalMsgHeader header;
2634 tRemoveStaKeyParams removeStaKeyParams;
2635} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2636
2637/*---------------------------------------------------------------------------
2638 WLAN_HAL_RMV_STAKEY_RSP,
2639---------------------------------------------------------------------------*/
2640typedef PACKED_PRE struct PACKED_POST
2641{
2642 /*success or failure */
2643 tANI_U32 status;
2644} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2645
2646typedef PACKED_PRE struct PACKED_POST
2647{
2648 tHalMsgHeader header;
2649 tRemoveStaKeyRspParams removeStaKeyRspParams;
2650} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2651
Jeff Johnsone7245742012-09-05 17:12:55 -07002652#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002653
Jeff Johnsone7245742012-09-05 17:12:55 -07002654#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002655#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002656#endif
2657
2658#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002659#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002660#endif
2661
2662/*-------------------------------------------------------------------------
2663WLAN_HAL_START_OEM_DATA_REQ
2664--------------------------------------------------------------------------*/
2665typedef PACKED_PRE struct PACKED_POST
2666{
2667 tANI_U32 status;
2668 tSirMacAddr selfMacAddr;
2669 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2670} tStartOemDataReqParams, *tpStartOemDataReqParams;
2671
2672typedef PACKED_PRE struct PACKED_POST
2673{
2674 tHalMsgHeader header;
2675 tStartOemDataReqParams startOemDataReqParams;
2676} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2677
2678/*-------------------------------------------------------------------------
2679WLAN_HAL_START_OEM_DATA_RSP
2680--------------------------------------------------------------------------*/
2681
2682typedef PACKED_PRE struct PACKED_POST
2683{
2684 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2685} tStartOemDataRspParams, *tpStartOemDataRspParams;
2686
2687typedef PACKED_PRE struct PACKED_POST
2688{
2689 tHalMsgHeader header;
2690 tStartOemDataRspParams startOemDataRspParams;
2691} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2692
2693#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002694
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002695/*---------------------------------------------------------------------------
2696WLAN_HAL_CH_SWITCH_V1_REQ
2697---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002698
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002699typedef PACKED_PRE struct PACKED_POST
2700{
2701 /* Channel number */
2702 tANI_U8 channelNumber;
2703
2704 /* Local power constraint */
2705 tANI_U8 localPowerConstraint;
2706
2707 /*Secondary channel offset */
2708 ePhyChanBondState secondaryChannelOffset;
2709
2710 //HAL fills in the tx power used for mgmt frames in this field.
2711 tPowerdBm txMgmtPower;
2712
2713 /* Max TX power */
2714 tPowerdBm maxTxPower;
2715
2716 /* Self STA MAC */
2717 tSirMacAddr selfStaMacAddr;
2718
2719 /*VO WIFI comment: BSSID needed to identify session. As the request has
2720 * power constraints, this should be applied only to that session
2721 * Since MTU timing and EDCA are sessionized, this struct needs to be
2722 * sessionized and bssid needs to be out of the VOWifi feature flag
2723 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002724 * mantain backward compatbility
2725 * by way of ignoring if using new host/old FW or old host/new FW since
2726 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002727 */
2728 tSirMacAddr bssId;
2729
2730 /* Source of Channel Switch */
2731 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002732
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002733} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2734
2735typedef PACKED_PRE struct PACKED_POST
2736{
2737 tHalMsgHeader header;
2738 tSwitchChannelParams_V1 switchChannelParams_V1;
2739} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2740
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002741/*---------------------------------------------------------------------------
2742WLAN_HAL_CH_SWITCH_V1_RSP
2743---------------------------------------------------------------------------*/
2744
2745typedef PACKED_PRE struct PACKED_POST
2746{
2747 /* Status */
2748 tANI_U32 status;
2749
2750 /* Channel number - same as in request*/
2751 tANI_U8 channelNumber;
2752
2753 /* HAL fills in the tx power used for mgmt frames in this field */
2754 tPowerdBm txMgmtPower;
2755
2756 /* BSSID needed to identify session - same as in request*/
2757 tSirMacAddr bssId;
2758
2759 /* Source of Channel Switch */
2760 eHalChanSwitchSource channelSwitchSrc;
2761
2762} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2763
2764typedef PACKED_PRE struct PACKED_POST
2765{
2766 tHalMsgHeader header;
2767 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2768} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002769
2770/*---------------------------------------------------------------------------
2771WLAN_HAL_CH_SWITCH_REQ
2772---------------------------------------------------------------------------*/
2773
2774typedef PACKED_PRE struct PACKED_POST
2775{
2776 /* Channel number */
2777 tANI_U8 channelNumber;
2778
2779 /* Local power constraint */
2780 tANI_U8 localPowerConstraint;
2781
2782 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002783 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002784
2785 //HAL fills in the tx power used for mgmt frames in this field.
2786 tPowerdBm txMgmtPower;
2787
2788 /* Max TX power */
2789 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302790
Jeff Johnson295189b2012-06-20 16:38:30 -07002791 /* Self STA MAC */
2792 tSirMacAddr selfStaMacAddr;
2793
2794 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2795 this should be applied only to that session*/
2796 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2797 * bssid needs to be out of the VOWifi feature flag */
2798 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2799 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2800 */
2801 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302802
Jeff Johnson295189b2012-06-20 16:38:30 -07002803}tSwitchChannelParams, *tpSwitchChannelParams;
2804
2805typedef PACKED_PRE struct PACKED_POST
2806{
2807 tHalMsgHeader header;
2808 tSwitchChannelParams switchChannelParams;
2809} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2810
2811/*---------------------------------------------------------------------------
2812WLAN_HAL_CH_SWITCH_RSP
2813---------------------------------------------------------------------------*/
2814
2815typedef PACKED_PRE struct PACKED_POST
2816{
2817 /* Status */
2818 tANI_U32 status;
2819
2820 /* Channel number - same as in request*/
2821 tANI_U8 channelNumber;
2822
2823 /* HAL fills in the tx power used for mgmt frames in this field */
2824 tPowerdBm txMgmtPower;
2825
2826 /* BSSID needed to identify session - same as in request*/
2827 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302828
Jeff Johnson295189b2012-06-20 16:38:30 -07002829}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2830
2831typedef PACKED_PRE struct PACKED_POST
2832{
2833 tHalMsgHeader header;
2834 tSwitchChannelRspParams switchChannelRspParams;
2835} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2836
2837/*---------------------------------------------------------------------------
2838WLAN_HAL_UPD_EDCA_PARAMS_REQ
2839---------------------------------------------------------------------------*/
2840
2841typedef PACKED_PRE struct PACKED_POST
2842{
2843 /*BSS Index*/
2844 tANI_U16 bssIdx;
2845
2846 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05302847 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002848
2849 /* Background */
2850 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05302851
Jeff Johnson295189b2012-06-20 16:38:30 -07002852 /* Video */
2853 tSirMacEdcaParamRecord acvi;
2854
2855 /* Voice */
2856 tSirMacEdcaParamRecord acvo;
2857
2858} tEdcaParams, *tpEdcaParams;
2859
2860typedef PACKED_PRE struct PACKED_POST
2861{
2862 tHalMsgHeader header;
2863 tEdcaParams edcaParams;
2864} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2865
2866/*---------------------------------------------------------------------------
2867WLAN_HAL_UPD_EDCA_PARAMS_RSP
2868---------------------------------------------------------------------------*/
2869typedef PACKED_PRE struct PACKED_POST
2870{
2871 /*success or failure */
2872 tANI_U32 status;
2873} tEdcaRspParams, *tpEdcaRspParams;
2874
2875typedef PACKED_PRE struct PACKED_POST
2876{
2877 tHalMsgHeader header;
2878 tEdcaRspParams edcaRspParams;
2879} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2880
2881
2882
2883/*---------------------------------------------------------------------------
2884 * WLAN_HAL_GET_STATS_REQ
2885 *--------------------------------------------------------------------------*/
2886typedef PACKED_PRE struct PACKED_POST
2887
2888{
2889 /* Index of STA to which the statistics */
2890 tANI_U16 staIdx;
2891
2892 /* Encryption mode */
2893 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05302894
Jeff Johnson295189b2012-06-20 16:38:30 -07002895 /* status */
2896 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05302897
Jeff Johnson295189b2012-06-20 16:38:30 -07002898 /* Statistics */
2899 tANI_U32 sendBlocks;
2900 tANI_U32 recvBlocks;
2901 tANI_U32 replays;
2902 tANI_U8 micErrorCnt;
2903 tANI_U32 protExclCnt;
2904 tANI_U16 formatErrCnt;
2905 tANI_U16 unDecryptableCnt;
2906 tANI_U32 decryptErrCnt;
2907 tANI_U32 decryptOkCnt;
2908} tDpuStatsParams, * tpDpuStatsParams;
2909
2910typedef PACKED_PRE struct PACKED_POST
2911{
2912 /* Valid STA Idx for per STA stats request */
2913 tANI_U32 staId;
2914
2915 /* Categories of stats requested as specified in eHalStatsMask*/
2916 tANI_U32 statsMask;
2917}tHalStatsReqParams, *tpHalStatsReqParams;
2918
2919typedef PACKED_PRE struct PACKED_POST
2920{
2921 tHalMsgHeader header;
2922 tHalStatsReqParams statsReqParams;
2923} tHalStatsReqMsg, *tpHalStatsReqMsg;
2924
2925/*---------------------------------------------------------------------------
2926 * WLAN_HAL_GET_STATS_RSP
2927 *--------------------------------------------------------------------------*/
2928
2929typedef PACKED_PRE struct PACKED_POST
2930{
2931 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2932 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2933 // station successfully transmitted after more than one retransmission attempt
2934
Dino Mycle8afbac12014-07-04 22:06:17 +05302935 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2936 //(with and without retries, including multi-cast, broadcast)
2937 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2938 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002939 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2940 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2941 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2942 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 +05302943 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2944 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 -07002945 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2946 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 +05302947 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2948 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002949 //to provide this.
2950}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2951
2952
2953// defines tx_rate_flags
2954typedef enum eTxRateInfo
2955{
2956 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2957 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2958 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2959 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07002960 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2961 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2962 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
2963 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
2964 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
2965 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
2966} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07002967
2968
2969typedef PACKED_PRE struct PACKED_POST
2970{
Dino Mycle8afbac12014-07-04 22:06:17 +05302971 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 -07002972 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05302973 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 -07002974 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05302975 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2976 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002977 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05302978 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2979 //for eg: if it is 10.5dBm, the value would be 105
2980 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2981 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002982
Dino Mycle8afbac12014-07-04 22:06:17 +05302983 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2984 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002985 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05302986 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2987 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002988}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2989
2990typedef PACKED_PRE struct PACKED_POST
2991{
Dino Mycle8afbac12014-07-04 22:06:17 +05302992 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2993 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002994 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05302995 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 -07002996 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05302997 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 -07002998 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05302999 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 -07003000 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303001 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 -07003002 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303003 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 -07003004 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303005 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 -07003006 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303007 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 -07003008 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303009 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 -07003010 //decrypted
3011 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3012
3013}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303014
Jeff Johnson295189b2012-06-20 16:38:30 -07003015typedef PACKED_PRE struct PACKED_POST
3016{
3017 tAniGlobalSecurityStats ucStats;
3018 tAniGlobalSecurityStats mcbcStats;
3019}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3020
3021typedef PACKED_PRE struct PACKED_POST
3022{
Dino Mycle8afbac12014-07-04 22:06:17 +05303023 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3024 //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 -07003025 //address 1 field
3026 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 +05303027 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 -07003028 //primary channel
3029 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 +05303030 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 -07003031 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303032 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3033 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003034 //decoded correctly
3035}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3036
3037typedef PACKED_PRE struct PACKED_POST
3038{
Dino Mycle8afbac12014-07-04 22:06:17 +05303039 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 -07003040 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303041 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3042 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 -07003043 //is transmitted
3044}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3045
3046typedef PACKED_PRE struct PACKED_POST
3047{
3048 /* Success or Failure */
3049 tANI_U32 status;
3050
3051 /* STA Idx */
3052 tANI_U32 staId;
3053
3054 /* Categories of STATS being returned as per eHalStatsMask*/
3055 tANI_U32 statsMask;
3056
3057 /* message type is same as the request type */
3058 tANI_U16 msgType;
3059
3060 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303061 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003062
3063} tHalStatsRspParams, *tpHalStatsRspParams;
3064
3065
3066
3067typedef PACKED_PRE struct PACKED_POST
3068{
3069 tHalMsgHeader header;
3070 tHalStatsRspParams statsRspParams;
3071} tHalStatsRspMsg, *tpHalStatsRspMsg;
3072
3073/*---------------------------------------------------------------------------
3074 * WLAN_HAL_SET_LINK_ST_REQ
3075 *--------------------------------------------------------------------------*/
3076typedef PACKED_PRE struct PACKED_POST
3077{
3078 tSirMacAddr bssid;
3079 tSirLinkState state;
3080 tSirMacAddr selfMacAddr;
3081} tLinkStateParams, *tpLinkStateParams;
3082
3083typedef PACKED_PRE struct PACKED_POST
3084{
3085 tHalMsgHeader header;
3086 tLinkStateParams linkStateParams;
3087} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3088
3089/*---------------------------------------------------------------------------
3090 * WLAN_HAL_SET_LINK_ST_RSP
3091 *--------------------------------------------------------------------------*/
3092
3093typedef PACKED_PRE struct PACKED_POST
3094{
3095 /*success or failure */
3096 tANI_U32 status;
3097} tLinkStateRspParams, *tpLinkStateRspParams;
3098
3099typedef PACKED_PRE struct PACKED_POST
3100{
3101 tHalMsgHeader header;
3102 tLinkStateRspParams linkStateRspParams;
3103} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3104
3105/*---------------------------------------------------------------------------
3106 * WLAN_HAL_ADD_TS_REQ
3107 *--------------------------------------------------------------------------*/
3108
3109/* TSPEC Params */
3110typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3111{
Jeff Johnson295189b2012-06-20 16:38:30 -07003112 tANI_U16 trafficType : 1;
3113 tANI_U16 tsid : 4;
3114 tANI_U16 direction : 2;
3115 tANI_U16 accessPolicy : 2;
3116 tANI_U16 aggregation : 1;
3117 tANI_U16 psb : 1;
3118 tANI_U16 userPrio : 3;
3119 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003120} __ani_attr_packed tSirMacTSInfoTfc;
3121
3122/* Flag to schedule the traffic type */
3123typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3124{
Jeff Johnson295189b2012-06-20 16:38:30 -07003125 tANI_U8 schedule : 1;
3126 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003127} __ani_attr_packed tSirMacTSInfoSch;
3128
3129/* Traffic and scheduling info */
3130typedef __ani_attr_pre_packed struct sSirMacTSInfo
3131{
3132 tSirMacTSInfoTfc traffic;
3133 tSirMacTSInfoSch schedule;
3134} __ani_attr_packed tSirMacTSInfo;
3135
3136/* Information elements */
3137typedef __ani_attr_pre_packed struct sSirMacTspecIE
3138{
3139 tANI_U8 type;
3140 tANI_U8 length;
3141 tSirMacTSInfo tsinfo;
3142 tANI_U16 nomMsduSz;
3143 tANI_U16 maxMsduSz;
3144 tANI_U32 minSvcInterval;
3145 tANI_U32 maxSvcInterval;
3146 tANI_U32 inactInterval;
3147 tANI_U32 suspendInterval;
3148 tANI_U32 svcStartTime;
3149 tANI_U32 minDataRate;
3150 tANI_U32 meanDataRate;
3151 tANI_U32 peakDataRate;
3152 tANI_U32 maxBurstSz;
3153 tANI_U32 delayBound;
3154 tANI_U32 minPhyRate;
3155 tANI_U16 surplusBw;
3156 tANI_U16 mediumTime;
3157}__ani_attr_packed tSirMacTspecIE;
3158
3159typedef PACKED_PRE struct PACKED_POST
3160{
3161 /* Station Index */
3162 tANI_U16 staIdx;
3163
3164 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3165 tANI_U16 tspecIdx;
3166
3167 /* To program TPE with required parameters */
3168 tSirMacTspecIE tspec;
3169
3170 /* U-APSD Flags: 1b per AC. Encoded as follows:
3171 b7 b6 b5 b4 b3 b2 b1 b0 =
3172 X X X X BE BK VI VO */
3173 tANI_U8 uAPSD;
3174
3175 /* These parameters are for all the access categories */
3176 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3177 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3178 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303179
Jeff Johnson295189b2012-06-20 16:38:30 -07003180} tAddTsParams, *tpAddTsParams;
3181
3182typedef PACKED_PRE struct PACKED_POST
3183{
3184 tHalMsgHeader header;
3185 tAddTsParams addTsParams;
3186} tAddTsReqMsg, *tpAddTsReqMsg;
3187
3188/*---------------------------------------------------------------------------
3189 * WLAN_HAL_ADD_TS_RSP
3190 *--------------------------------------------------------------------------*/
3191
3192typedef PACKED_PRE struct PACKED_POST
3193{
3194 /*success or failure */
3195 tANI_U32 status;
3196} tAddTsRspParams, *tpAddTsRspParams;
3197
3198typedef PACKED_PRE struct PACKED_POST
3199{
3200 tHalMsgHeader header;
3201 tAddTsRspParams addTsRspParams;
3202} tAddTsRspMsg, *tpAddTsRspMsg;
3203
3204
3205/*---------------------------------------------------------------------------
3206 * WLAN_HAL_DEL_TS_REQ
3207 *--------------------------------------------------------------------------*/
3208
3209typedef PACKED_PRE struct PACKED_POST
3210{
3211 /* Station Index */
3212 tANI_U16 staIdx;
3213
3214 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3215 tANI_U16 tspecIdx;
3216
3217 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303218 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003219
3220} tDelTsParams, *tpDelTsParams;
3221
3222typedef PACKED_PRE struct PACKED_POST
3223{
3224 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303225 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003226} tDelTsReqMsg, *tpDelTsReqMsg;
3227
3228/*---------------------------------------------------------------------------
3229 * WLAN_HAL_DEL_TS_RSP
3230 *--------------------------------------------------------------------------*/
3231
3232typedef PACKED_PRE struct PACKED_POST
3233{
3234 /*success or failure */
3235 tANI_U32 status;
3236} tDelTsRspParams, *tpDelTsRspParams;
3237
3238typedef PACKED_PRE struct PACKED_POST
3239{
3240 tHalMsgHeader header;
3241 tDelTsRspParams delTsRspParams;
3242} tDelTsRspMsg, *tpDelTsRspMsg;
3243
3244/* End of TSpec Parameters */
3245
3246/* Start of BLOCK ACK related Parameters */
3247
3248/*---------------------------------------------------------------------------
3249 * WLAN_HAL_ADD_BA_SESSION_REQ
3250 *--------------------------------------------------------------------------*/
3251
3252typedef PACKED_PRE struct PACKED_POST
3253{
3254 /* Station Index */
3255 tANI_U16 staIdx;
3256
3257 /* Peer MAC Address */
3258 tSirMacAddr peerMacAddr;
3259
3260 /* ADDBA Action Frame dialog token
3261 HAL will not interpret this object */
3262 tANI_U8 baDialogToken;
3263
3264 /* TID for which the BA is being setup
3265 This identifies the TC or TS of interest */
3266 tANI_U8 baTID;
3267
3268 /* 0 - Delayed BA (Not supported)
3269 1 - Immediate BA */
3270 tANI_U8 baPolicy;
3271
3272 /* Indicates the number of buffers for this TID (baTID)
3273 NOTE - This is the requested buffer size. When this
3274 is processed by HAL and subsequently by HDD, it is
3275 possible that HDD may change this buffer size. Any
3276 change in the buffer size should be noted by PE and
3277 advertized appropriately in the ADDBA response */
3278 tANI_U16 baBufferSize;
3279
3280 /* BA timeout in TU's 0 means no timeout will occur */
3281 tANI_U16 baTimeout;
3282
3283 /* b0..b3 - Fragment Number - Always set to 0
3284 b4..b15 - Starting Sequence Number of first MSDU
3285 for which this BA is setup */
3286 tANI_U16 baSSN;
3287
3288 /* ADDBA direction
3289 1 - Originator
3290 0 - Recipient */
3291 tANI_U8 baDirection;
3292} tAddBASessionParams, *tpAddBASessionParams;
3293
3294typedef PACKED_PRE struct PACKED_POST
3295{
3296 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303297 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003298}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3299
3300/*---------------------------------------------------------------------------
3301 * WLAN_HAL_ADD_BA_SESSION_RSP
3302 *--------------------------------------------------------------------------*/
3303
3304typedef PACKED_PRE struct PACKED_POST
3305{
3306 /*success or failure */
3307 tANI_U32 status;
3308
3309 /* Dialog token */
3310 tANI_U8 baDialogToken;
3311
3312 /* TID for which the BA session has been setup */
3313 tANI_U8 baTID;
3314
3315 /* BA Buffer Size allocated for the current BA session */
3316 tANI_U8 baBufferSize;
3317
3318 tANI_U8 baSessionID;
3319
3320 /* Reordering Window buffer */
3321 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303322
Jeff Johnson295189b2012-06-20 16:38:30 -07003323 /*Station Index to id the sta */
3324 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303325
Jeff Johnson295189b2012-06-20 16:38:30 -07003326 /* Starting Sequence Number */
3327 tANI_U16 SSN;
3328} tAddBASessionRspParams, *tpAddBASessionRspParams;
3329
3330typedef PACKED_PRE struct PACKED_POST
3331{
3332 tHalMsgHeader header;
3333 tAddBASessionRspParams addBASessionRspParams;
3334} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3335
3336/*---------------------------------------------------------------------------
3337 * WLAN_HAL_ADD_BA_REQ
3338 *--------------------------------------------------------------------------*/
3339
3340typedef PACKED_PRE struct PACKED_POST
3341{
3342 /* Session Id */
3343 tANI_U8 baSessionID;
3344
3345 /* Reorder Window Size */
3346 tANI_U8 winSize;
3347
3348#ifdef FEATURE_ON_CHIP_REORDERING
3349 tANI_BOOLEAN isReorderingDoneOnChip;
3350#endif
3351} tAddBAParams, *tpAddBAParams;
3352
3353typedef PACKED_PRE struct PACKED_POST
3354{
3355 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303356 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003357} tAddBAReqMsg, *tpAddBAReqMsg;
3358
3359
3360/*---------------------------------------------------------------------------
3361 * WLAN_HAL_ADD_BA_RSP
3362 *--------------------------------------------------------------------------*/
3363
3364typedef PACKED_PRE struct PACKED_POST
3365{
3366 /*success or failure */
3367 tANI_U32 status;
3368
3369 /* Dialog token */
3370 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303371
Jeff Johnson295189b2012-06-20 16:38:30 -07003372} tAddBARspParams, *tpAddBARspParams;
3373
3374typedef PACKED_PRE struct PACKED_POST
3375{
3376 tHalMsgHeader header;
3377 tAddBARspParams addBARspParams;
3378} tAddBARspMsg, *tpAddBARspMsg;
3379
3380
3381/*---------------------------------------------------------------------------
3382 * WLAN_HAL_TRIGGER_BA_REQ
3383 *--------------------------------------------------------------------------*/
3384
3385
3386typedef struct sAddBaInfo
3387{
3388 tANI_U16 fBaEnable : 1;
3389 tANI_U16 startingSeqNum: 12;
3390 tANI_U16 reserved : 3;
3391}tAddBaInfo, *tpAddBaInfo;
3392
3393typedef struct sTriggerBaRspCandidate
3394{
3395 tSirMacAddr staAddr;
3396 tAddBaInfo baInfo[STACFG_MAX_TC];
3397}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3398
3399typedef struct sTriggerBaCandidate
3400{
3401 tANI_U8 staIdx;
3402 tANI_U8 tidBitmap;
3403}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3404
3405typedef PACKED_PRE struct PACKED_POST
3406{
3407 /* Session Id */
3408 tANI_U8 baSessionID;
3409
Dino Mycle8afbac12014-07-04 22:06:17 +05303410 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003411 * Candidate List(tTriggerBaCandidate)
3412 */
3413 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303414
Jeff Johnson295189b2012-06-20 16:38:30 -07003415} tTriggerBAParams, *tpTriggerBAParams;
3416
3417typedef PACKED_PRE struct PACKED_POST
3418{
3419 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303420 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003421} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3422
3423
3424/*---------------------------------------------------------------------------
3425 * WLAN_HAL_TRIGGER_BA_RSP
3426 *--------------------------------------------------------------------------*/
3427
3428typedef PACKED_PRE struct PACKED_POST
3429{
Dino Mycle8afbac12014-07-04 22:06:17 +05303430
Jeff Johnson295189b2012-06-20 16:38:30 -07003431 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303432 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003433
3434 /* success or failure */
3435 tANI_U32 status;
3436
Dino Mycle8afbac12014-07-04 22:06:17 +05303437 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003438 * Rsp Candidate List(tTriggerRspBaCandidate)
3439 */
3440 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303441
Jeff Johnson295189b2012-06-20 16:38:30 -07003442
3443} tTriggerBARspParams, *tpTriggerBARspParams;
3444
3445typedef PACKED_PRE struct PACKED_POST
3446{
3447 tHalMsgHeader header;
3448 tTriggerBARspParams triggerBARspParams;
3449} tTriggerBARspMsg, *tpTriggerBARspMsg;
3450
3451/*---------------------------------------------------------------------------
3452 * WLAN_HAL_DEL_BA_REQ
3453 *--------------------------------------------------------------------------*/
3454
3455typedef PACKED_PRE struct PACKED_POST
3456{
3457 /* Station Index */
3458 tANI_U16 staIdx;
3459
3460 /* TID for which the BA session is being deleted */
3461 tANI_U8 baTID;
3462
3463 /* DELBA direction
3464 1 - Originator
3465 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303466 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003467} tDelBAParams, *tpDelBAParams;
3468
3469typedef PACKED_PRE struct PACKED_POST
3470{
3471 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303472 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003473} tDelBAReqMsg, *tpDelBAReqMsg;
3474
3475/*---------------------------------------------------------------------------
3476 * WLAN_HAL_DEL_BA_RSP
3477 *--------------------------------------------------------------------------*/
3478
3479typedef PACKED_PRE struct PACKED_POST
3480{
3481 /* success or failure */
3482 tANI_U32 status;
3483} tDelBARspParams, *tpDelBARspParams;
3484
3485typedef PACKED_PRE struct PACKED_POST
3486{
3487 tHalMsgHeader header;
3488 tDelBARspParams delBARspParams;
3489} tDelBARspMsg, *tpDelBARspMsg;
3490
3491
Jeff Johnson295189b2012-06-20 16:38:30 -07003492/*---------------------------------------------------------------------------
3493 * WLAN_HAL_TSM_STATS_REQ
3494 *--------------------------------------------------------------------------*/
3495typedef PACKED_PRE struct PACKED_POST
3496{
3497 /* Traffic Id */
3498 tANI_U8 tsmTID;
3499
3500 tSirMacAddr bssId;
3501} tTsmStatsParams, *tpTsmStatsParams;
3502
3503typedef PACKED_PRE struct PACKED_POST
3504{
3505 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303506 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003507} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3508
3509
3510/*---------------------------------------------------------------------------
3511 * WLAN_HAL_TSM_STATS_RSP
3512 *--------------------------------------------------------------------------*/
3513typedef PACKED_PRE struct PACKED_POST
3514{
3515 /*success or failure */
3516 tANI_U32 status;
3517
Dino Mycle8afbac12014-07-04 22:06:17 +05303518 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003519 tANI_U16 UplinkPktQueueDly;
3520
Dino Mycle8afbac12014-07-04 22:06:17 +05303521 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003522 tANI_U16 UplinkPktQueueDlyHist[4];
3523
Dino Mycle8afbac12014-07-04 22:06:17 +05303524 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003525 tANI_U32 UplinkPktTxDly;
3526
Dino Mycle8afbac12014-07-04 22:06:17 +05303527 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003528 tANI_U16 UplinkPktLoss;
3529
Dino Mycle8afbac12014-07-04 22:06:17 +05303530 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003531 tANI_U16 UplinkPktCount;
3532
Dino Mycle8afbac12014-07-04 22:06:17 +05303533 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003534 tANI_U8 RoamingCount;
3535
Dino Mycle8afbac12014-07-04 22:06:17 +05303536 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003537 tANI_U16 RoamingDly;
3538} tTsmStatsRspParams, *tpTsmStatsRspParams;
3539
3540typedef PACKED_PRE struct PACKED_POST
3541{
3542 tHalMsgHeader header;
3543 tTsmStatsRspParams tsmStatsRspParams;
3544} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3545
3546
Jeff Johnson295189b2012-06-20 16:38:30 -07003547/*---------------------------------------------------------------------------
3548 * WLAN_HAL_SET_KEYDONE_MSG
3549 *--------------------------------------------------------------------------*/
3550
3551typedef PACKED_PRE struct PACKED_POST
3552{
3553 /*bssid of the keys */
3554 tANI_U8 bssidx;
3555 tANI_U8 encType;
3556} tSetKeyDoneParams, *tpSetKeyDoneParams;
3557
3558typedef PACKED_PRE struct PACKED_POST
3559{
3560 tHalMsgHeader header;
3561 tSetKeyDoneParams setKeyDoneParams;
3562} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3563
3564/*---------------------------------------------------------------------------
3565 * WLAN_HAL_DOWNLOAD_NV_REQ
3566 *--------------------------------------------------------------------------*/
3567typedef PACKED_PRE struct PACKED_POST
3568{
3569 /* Fragment sequence number of the NV Image. Note that NV Image might not
3570 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303571 * can hence choose to chop the NV blob into multiple fragments starting with
3572 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003573 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3574 * concatenated together by HAL without any padding bytes in between.*/
3575 tANI_U16 fragNumber;
3576
3577 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303578 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003579 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3580 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3581 tANI_U16 isLastFragment;
3582
3583 /* NV Image size (number of bytes) */
3584 tANI_U32 nvImgBufferSize;
3585
3586 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3587 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3588} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3589
3590typedef PACKED_PRE struct PACKED_POST
3591{
3592 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3593 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3594 tHalMsgHeader header;
3595 tHalNvImgDownloadReqParams nvImageReqParams;
3596} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3597
3598/*---------------------------------------------------------------------------
3599 * WLAN_HAL_DOWNLOAD_NV_RSP
3600 *--------------------------------------------------------------------------*/
3601typedef PACKED_PRE struct PACKED_POST
3602{
3603 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3604 * after each fragment */
3605 tANI_U32 status;
3606} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3607
3608typedef PACKED_PRE struct PACKED_POST
3609{
3610 tHalMsgHeader header;
3611 tHalNvImgDownloadRspParams nvImageRspParams;
3612} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3613
3614/*---------------------------------------------------------------------------
3615 * WLAN_HAL_STORE_NV_IND
3616 *--------------------------------------------------------------------------*/
3617typedef PACKED_PRE struct PACKED_POST
3618{
3619 /* NV Item */
3620 eNvTable tableID;
3621
3622 /* Size of NV Blob */
3623 tANI_U32 nvBlobSize;
3624
Dino Mycle8afbac12014-07-04 22:06:17 +05303625 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003626 * NV blob i.e. uint8[nvBlobSize] */
3627} tHalNvStoreParams, *tpHalNvStoreParams;
3628
3629typedef PACKED_PRE struct PACKED_POST
3630{
3631 /* Note: The length specified in tHalNvStoreInd messages should be
3632 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3633 tHalMsgHeader header;
3634 tHalNvStoreParams nvStoreParams;
3635} tHalNvStoreInd, *tpHalNvStoreInd;
3636
3637/* End of Block Ack Related Parameters */
3638
3639/*---------------------------------------------------------------------------
3640 * WLAN_HAL_MIC_FAILURE_IND
3641 *--------------------------------------------------------------------------*/
3642
3643#define SIR_CIPHER_SEQ_CTR_SIZE 6
3644
3645typedef PACKED_PRE struct PACKED_POST
3646{
Dino Mycle8afbac12014-07-04 22:06:17 +05303647 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003648 tSirMacAddr taMacAddr; //transmitter address
3649 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303650 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003651 tANI_U8 IV1; // first byte of IV
3652 tANI_U8 keyId; // second byte of IV
3653 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3654 tSirMacAddr rxMacAddr; // receive address
3655} tSirMicFailureInfo, *tpSirMicFailureInfo;
3656
3657/* Definition for MIC failure indication
3658 MAC reports this each time a MIC failure occures on Rx TKIP packet
3659 */
3660typedef PACKED_PRE struct PACKED_POST
3661{
3662 tSirMacAddr bssId; // BSSID
3663 tSirMicFailureInfo info;
3664} tSirMicFailureInd, *tpSirMicFailureInd;
3665
3666typedef PACKED_PRE struct PACKED_POST
3667{
3668 tHalMsgHeader header;
3669 tSirMicFailureInd micFailureInd;
3670} tMicFailureIndMsg, *tpMicFailureIndMsg;
3671
Mohit Khanna4a70d262012-09-11 16:30:12 -07003672typedef PACKED_PRE struct PACKED_POST
3673{
3674 tANI_U16 opMode;
3675 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303676}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003677
3678typedef PACKED_PRE struct PACKED_POST
3679{
3680 tHalMsgHeader header;
3681 tUpdateVHTOpMode updateVhtOpMode;
3682} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3683
3684typedef PACKED_PRE struct PACKED_POST
3685{
3686 tANI_U32 status;
3687} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3688
3689typedef PACKED_PRE struct PACKED_POST
3690{
3691 tHalMsgHeader header;
3692 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3693} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3694
Jeff Johnson295189b2012-06-20 16:38:30 -07003695/*---------------------------------------------------------------------------
3696 * WLAN_HAL_UPDATE_BEACON_REQ
3697 *--------------------------------------------------------------------------*/
3698typedef PACKED_PRE struct PACKED_POST
3699{
3700
3701 tANI_U8 bssIdx;
3702
3703 //shortPreamble mode. HAL should update all the STA rates when it
3704 //receives this message
3705 tANI_U8 fShortPreamble;
3706 //short Slot time.
3707 tANI_U8 fShortSlotTime;
3708 //Beacon Interval
3709 tANI_U16 beaconInterval;
3710 //Protection related
3711 tANI_U8 llaCoexist;
3712 tANI_U8 llbCoexist;
3713 tANI_U8 llgCoexist;
3714 tANI_U8 ht20MhzCoexist;
3715 tANI_U8 llnNonGFCoexist;
3716 tANI_U8 fLsigTXOPProtectionFullSupport;
3717 tANI_U8 fRIFSMode;
3718
3719 tANI_U16 paramChangeBitmap;
3720}tUpdateBeaconParams, *tpUpdateBeaconParams;
3721
3722
3723typedef PACKED_PRE struct PACKED_POST
3724{
3725 tHalMsgHeader header;
3726 tUpdateBeaconParams updateBeaconParam;
3727} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3728
3729/*---------------------------------------------------------------------------
3730 * WLAN_HAL_UPDATE_BEACON_RSP
3731 *--------------------------------------------------------------------------*/
3732typedef PACKED_PRE struct PACKED_POST
3733{
3734 tANI_U32 status;
3735} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3736
3737typedef PACKED_PRE struct PACKED_POST
3738{
3739 tHalMsgHeader header;
3740 tUpdateBeaconRspParams updateBeaconRspParam;
3741} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3742
3743/*---------------------------------------------------------------------------
3744 * WLAN_HAL_SEND_BEACON_REQ
3745 *--------------------------------------------------------------------------*/
3746typedef PACKED_PRE struct PACKED_POST
3747{
3748 tANI_U32 beaconLength; //length of the template.
3749 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3750 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003751 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003752 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3753}tSendBeaconParams, *tpSendBeaconParams;
3754
3755
3756typedef PACKED_PRE struct PACKED_POST
3757{
3758 tHalMsgHeader header;
3759 tSendBeaconParams sendBeaconParam;
3760}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3761
3762/*---------------------------------------------------------------------------
3763 * WLAN_HAL_SEND_BEACON_RSP
3764 *--------------------------------------------------------------------------*/
3765typedef PACKED_PRE struct PACKED_POST
3766{
3767 tANI_U32 status;
3768} tSendBeaconRspParams, *tpSendBeaconRspParams;
3769
3770typedef PACKED_PRE struct PACKED_POST
3771{
3772 tHalMsgHeader header;
3773 tSendBeaconRspParams sendBeaconRspParam;
3774} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3775
3776#ifdef FEATURE_5GHZ_BAND
3777
3778/*---------------------------------------------------------------------------
3779 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3780 *--------------------------------------------------------------------------*/
3781typedef PACKED_PRE struct PACKED_POST
3782{
3783 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303784 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003785}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3786
3787
3788typedef PACKED_PRE struct PACKED_POST
3789{
3790 /* Link Parameters */
3791 tSirEnableRadarInfoType EnableRadarInfo;
3792}tEnableRadarReqParams, *tpEnableRadarReqParams;
3793
3794typedef PACKED_PRE struct PACKED_POST
3795{
3796 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303797 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003798}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3799
3800/*---------------------------------------------------------------------------
3801 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3802 *--------------------------------------------------------------------------*/
3803
3804typedef PACKED_PRE struct PACKED_POST
3805{
3806 /* Link Parameters */
3807 tSirMacAddr BSSID;
3808 /* success or failure */
3809 tANI_U32 status;
3810}tEnableRadarRspParams, *tpEnableRadarRspParams;
3811
3812typedef PACKED_PRE struct PACKED_POST
3813{
3814 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303815 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003816}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3817
3818/*---------------------------------------------------------------------------
3819 *WLAN_HAL_RADAR_DETECT_INTR_IND
3820 *--------------------------------------------------------------------------*/
3821
3822typedef PACKED_PRE struct PACKED_POST
3823{
3824 tANI_U8 radarDetChannel;
3825}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3826
3827typedef PACKED_PRE struct PACKED_POST
3828{
3829 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303830 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003831}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3832
3833/*---------------------------------------------------------------------------
3834 *WLAN_HAL_RADAR_DETECT_IND
3835 *-------------------------------------------------------------------------*/
3836typedef PACKED_PRE struct PACKED_POST
3837{
3838 /*channel number in which the RADAR detected*/
3839 tANI_U8 channelNumber;
3840
3841 /*RADAR pulse width*/
3842 tANI_U16 radarPulseWidth; // in usecond
3843
3844 /*Number of RADAR pulses */
3845 tANI_U16 numRadarPulse;
3846}tRadarDetectIndParams,*tpRadarDetectIndParams;
3847
3848typedef PACKED_PRE struct PACKED_POST
3849{
3850 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303851 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003852}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3853
3854
3855/*---------------------------------------------------------------------------
3856 *WLAN_HAL_GET_TPC_REPORT_REQ
3857 *-------------------------------------------------------------------------*/
3858typedef PACKED_PRE struct PACKED_POST
3859{
3860 tSirMacAddr sta;
3861 tANI_U8 dialogToken;
3862 tANI_U8 txpower;
3863}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3864
3865
3866typedef PACKED_PRE struct PACKED_POST
3867{
3868 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303869 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003870}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3871
3872/*---------------------------------------------------------------------------
3873 * WLAN_HAL_GET_TPC_REPORT_RSP
3874 *--------------------------------------------------------------------------*/
3875
3876typedef PACKED_PRE struct PACKED_POST
3877{
3878 /* success or failure */
3879 tANI_U32 status;
3880}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3881
3882typedef PACKED_PRE struct PACKED_POST
3883{
3884 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303885 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003886}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3887
3888#endif
3889
Jeff Johnson295189b2012-06-20 16:38:30 -07003890/*---------------------------------------------------------------------------
3891 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3892 *-------------------------------------------------------------------------*/
3893typedef PACKED_PRE struct PACKED_POST
3894{
3895 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3896 tANI_U32 probeRespTemplateLen;
3897 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3898 tSirMacAddr bssId;
3899
3900}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3901
3902typedef PACKED_PRE struct PACKED_POST
3903{
3904 tHalMsgHeader header;
3905 tSendProbeRespReqParams sendProbeRespReqParams ;
3906}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3907
3908/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05303909 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003910 *--------------------------------------------------------------------------*/
3911
3912typedef PACKED_PRE struct PACKED_POST
3913{
3914 /* success or failure */
3915 tANI_U32 status;
3916}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3917
3918typedef PACKED_PRE struct PACKED_POST
3919{
3920 tHalMsgHeader header;
3921 tSendProbeRespRspParams sendProbeRespRspParams;
3922}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3923
3924
3925/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05303926 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003927 *--------------------------------------------------------------------------*/
3928
3929typedef PACKED_PRE struct PACKED_POST
3930{
3931 /* success or failure */
3932 tANI_U32 status;
3933}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3934
3935typedef PACKED_PRE struct PACKED_POST
3936{
3937 tHalMsgHeader header;
3938 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3939}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3940
3941/*---------------------------------------------------------------------------
3942 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3943 *--------------------------------------------------------------------------*/
3944
3945typedef PACKED_PRE struct PACKED_POST
3946{
3947 tANI_U16 assocId;
3948 tANI_U16 staId;
3949 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3950 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003951 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05303952 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003953
3954}tDeleteStaContextParams, *tpDeleteStaContextParams;
3955
3956
3957typedef PACKED_PRE struct PACKED_POST
3958{
3959 tHalMsgHeader header;
3960 tDeleteStaContextParams deleteStaContextParams;
3961}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3962
Anand Kumar012623a2013-01-11 17:00:00 -08003963typedef PACKED_PRE struct PACKED_POST
3964{
3965 tHalMsgHeader header;
3966 tANI_U8 assocId;
3967 tANI_U8 staIdx;
3968 tANI_U8 bssIdx;
3969 tANI_U8 uReasonCode;
3970 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07003971#ifdef WLAN_FEATURE_ROAM_OFFLOAD
3972 tANI_U8 staAddr[6];
3973 tANI_U8 bssId[6];
3974#endif
Anand Kumar012623a2013-01-11 17:00:00 -08003975} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003976
3977/*---------------------------------------------------------------------------
3978 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3979 *--------------------------------------------------------------------------*/
3980
3981typedef PACKED_PRE struct PACKED_POST
3982{
3983 tBtAmpEventType btAmpEventType;
3984
3985}tBtAmpEventParams, *tpBtAmpEventParams;
3986
3987
3988
3989typedef PACKED_PRE struct PACKED_POST
3990{
3991 tHalMsgHeader header;
3992 tBtAmpEventParams btAmpEventParams;
3993}tBtAmpEventMsg, *tpBtAmpEventMsg;
3994
3995/*---------------------------------------------------------------------------
3996*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3997*--------------------------------------------------------------------------*/
3998
3999typedef PACKED_PRE struct PACKED_POST
4000{
4001 /* success or failure */
4002 tANI_U32 status;
4003}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4004
4005typedef PACKED_PRE struct PACKED_POST
4006{
4007 tHalMsgHeader header;
4008 tBtAmpEventRspParams btAmpEventRspParams;
4009}tBtAmpEventRsp, *tpBtAmpEventRsp;
4010
4011
4012/*---------------------------------------------------------------------------
4013 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4014 *--------------------------------------------------------------------------*/
4015
4016typedef PACKED_PRE struct PACKED_POST
4017{
4018 // Station Index. originates from HAL
4019 tANI_U8 ucSTAId;
4020
4021 // TID for which the transmit queue is being flushed
4022 tANI_U8 ucTid;
4023
4024}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4025
4026
4027typedef PACKED_PRE struct PACKED_POST
4028{
4029 tHalMsgHeader header;
4030 tTlHalFlushAcParams tlHalFlushAcParam;
4031}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4032
4033/*---------------------------------------------------------------------------
4034*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4035*--------------------------------------------------------------------------*/
4036
4037typedef PACKED_PRE struct PACKED_POST
4038{
4039 // Station Index. originates from HAL
4040 tANI_U8 ucSTAId;
4041
4042 // TID for which the transmit queue is being flushed
4043 tANI_U8 ucTid;
4044
4045 /* success or failure */
4046 tANI_U32 status;
4047}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4048
4049typedef PACKED_PRE struct PACKED_POST
4050{
4051 tHalMsgHeader header;
4052 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4053}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4054
4055/*---------------------------------------------------------------------------
4056 * WLAN_HAL_ENTER_IMPS_REQ
4057 *--------------------------------------------------------------------------*/
4058typedef PACKED_PRE struct PACKED_POST
4059{
4060 tHalMsgHeader header;
4061} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4062
4063/*---------------------------------------------------------------------------
4064 * WLAN_HAL_EXIT_IMPS_REQ
4065 *--------------------------------------------------------------------------*/
4066typedef PACKED_PRE struct PACKED_POST
4067{
4068 tHalMsgHeader header;
4069} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4070
4071/*---------------------------------------------------------------------------
4072 * WLAN_HAL_ENTER_BMPS_REQ
4073 *--------------------------------------------------------------------------*/
4074
4075typedef PACKED_PRE struct PACKED_POST
4076{
4077 tANI_U8 bssIdx;
4078 //TBTT value derived from the last beacon
4079#ifndef BUILD_QWPTTSTATIC
4080 tANI_U64 tbtt;
4081#endif
4082 tANI_U8 dtimCount;
4083 //DTIM period given to HAL during association may not be valid,
4084 //if association is based on ProbeRsp instead of beacon.
4085 tANI_U8 dtimPeriod;
4086
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004087 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004088 tANI_U32 rssiFilterPeriod;
4089 tANI_U32 numBeaconPerRssiAverage;
4090 tANI_U8 bRssiFilterEnable;
4091
4092} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4093
4094
4095typedef PACKED_PRE struct PACKED_POST
4096{
4097 tHalMsgHeader header;
4098 tHalEnterBmpsReqParams enterBmpsReq;
4099} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4100
4101/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304102 * WLAN_HAL_PRINT_REG_INFO_IND
4103 *--------------------------------------------------------------------------*/
4104typedef PACKED_PRE struct PACKED_POST
4105{
4106 uint32 regAddr;
4107 uint32 regValue;
4108} tHalRegDebugInfo, *tpRegDebugInfo;
4109
4110typedef PACKED_PRE struct PACKED_POST
4111{
4112 uint32 regCount;
4113 uint32 scenario;
4114 uint32 reasonCode;
4115} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4116
4117typedef PACKED_PRE struct PACKED_POST
4118{
4119 tHalMsgHeader header;
4120 tHalRegDebugInfoParams regParams;
4121} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4122
4123/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004124 * WLAN_HAL_EXIT_BMPS_REQ
4125 *--------------------------------------------------------------------------*/
4126typedef PACKED_PRE struct PACKED_POST
4127{
4128 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004129 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004130} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4131
4132typedef PACKED_PRE struct PACKED_POST
4133{
4134 tHalMsgHeader header;
4135 tHalExitBmpsReqParams exitBmpsReqParams;
4136} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4137
4138/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004139 * WLAN_HAL_MISSED_BEACON_IND
4140 *--------------------------------------------------------------------------*/
4141typedef PACKED_PRE struct PACKED_POST
4142{
4143 tANI_U8 bssIdx;
4144} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4145
4146typedef PACKED_PRE struct PACKED_POST
4147{
4148 tHalMsgHeader header;
4149 tHalMissedBeaconIndParams missedBeaconIndParams;
4150} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4151
4152/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004153 * WLAN_HAL_ADD_BCN_FILTER_REQ
4154 *--------------------------------------------------------------------------*/
4155/* Beacon Filtering data structures */
4156typedef PACKED_PRE struct PACKED_POST
4157{
4158 tANI_U8 offset;
4159 tANI_U8 value;
4160 tANI_U8 bitMask;
4161 tANI_U8 ref;
4162} tEidByteInfo, *tpEidByteInfo;
4163
Dino Mycle8afbac12014-07-04 22:06:17 +05304164typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004165{
4166 tANI_U16 capabilityInfo;
4167 tANI_U16 capabilityMask;
4168 tANI_U16 beaconInterval;
4169 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004170 tANI_U8 bssIdx;
4171 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004172} tBeaconFilterMsg, *tpBeaconFilterMsg;
4173
4174/* The above structure would be followed by multiple of below mentioned structure */
4175typedef PACKED_PRE struct PACKED_POST
4176{
4177 tANI_U8 elementId;
4178 tANI_U8 checkIePresence;
4179 tEidByteInfo byte;
4180} tBeaconFilterIe, *tpBeaconFilterIe;
4181
4182typedef PACKED_PRE struct PACKED_POST
4183{
4184 tHalMsgHeader header;
4185 tBeaconFilterMsg addBcnFilterParams;
4186} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4187
4188/*---------------------------------------------------------------------------
4189 * WLAN_HAL_REM_BCN_FILTER_REQ
4190 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304191typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004192{
4193 tANI_U8 ucIeCount;
4194 tANI_U8 ucRemIeId[1];
4195} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4196
4197typedef PACKED_PRE struct PACKED_POST
4198{
4199 tHalMsgHeader header;
4200 tRemBeaconFilterMsg remBcnFilterParams;
4201} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4202
4203/*---------------------------------------------------------------------------
4204 * WLAN_HAL_HOST_OFFLOAD_REQ
4205 *--------------------------------------------------------------------------*/
4206#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4207#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4208#define HAL_IPV6_NS_OFFLOAD 2
4209#define HAL_IPV6_ADDR_LEN 16
4210#define HAL_MAC_ADDR_LEN 6
4211#define HAL_OFFLOAD_DISABLE 0
4212#define HAL_OFFLOAD_ENABLE 1
4213#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004214#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004215#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004216#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004217
4218typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4219{
4220 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4221 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4222 //Only support 2 possible Network Advertisement IPv6 address
4223 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4224 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4225 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4226 tANI_U8 srcIPv6AddrValid : 1;
4227 tANI_U8 targetIPv6Addr1Valid : 1;
4228 tANI_U8 targetIPv6Addr2Valid : 1;
4229 tANI_U8 reserved1 : 5;
4230 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004231 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004232 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004233} tHalNSOffloadParams;
4234
4235typedef PACKED_PRE struct PACKED_POST
4236{
4237 tANI_U8 offloadType;
4238 tANI_U8 enableOrDisable;
4239 PACKED_PRE union PACKED_POST
4240 {
4241 tANI_U8 hostIpv4Addr [4];
4242 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4243 } params;
4244} tHalHostOffloadReq, *tpHalHostOffloadReq;
4245
4246typedef PACKED_PRE struct PACKED_POST
4247{
4248 tHalMsgHeader header;
4249 tHalHostOffloadReq hostOffloadParams;
4250 tHalNSOffloadParams nsOffloadParams;
4251} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4252
Leo Chang397deb72013-08-22 11:33:16 -07004253
4254#ifdef FEATURE_WLAN_LPHB
4255typedef enum
4256{
4257 WIFI_HB_SET_ENABLE = 0x0001,
4258 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4259 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4260 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4261 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4262 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4263}tLowPowerHeartBeatCmdType ;
4264
4265#define MAX_FLITER_SIZE 64
4266/*---------------------------------------------------------------------------
4267 *FEATURE_WLAN_LPHB REQ
4268 *--------------------------------------------------------------------------*/
4269typedef PACKED_PRE struct PACKED_POST
4270{
4271 uint32 hostIpv4Addr;
4272 uint32 destIpv4Addr;
4273 uint16 hostPort;
4274 uint16 destPort;
4275 uint16 timeOutSec; // in seconds
4276 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004277 uint16 timePeriodSec; // in seconds
4278 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004279} tlowPowerHeartBeatParamsTcpStruct;
4280
4281typedef PACKED_PRE struct PACKED_POST
4282{
4283 uint32 hostIpv4Addr;
4284 uint32 destIpv4Addr;
4285 uint16 hostPort;
4286 uint16 destPort;
4287 uint16 timePeriodSec;// in seconds
4288 uint16 timeOutSec; // in seconds
4289 tSirMacAddr gatewayMacAddr;
4290} tlowPowerHeartBeatParamsUdpStruct;
4291
4292typedef PACKED_PRE struct PACKED_POST
4293{
4294 uint32 offset;
4295 uint32 filterLength;
4296 uint8 filter[MAX_FLITER_SIZE];
4297} tlowPowerHeartBeatFilterStruct;
4298
4299typedef PACKED_PRE struct PACKED_POST
4300{
4301 uint8 heartBeatEnable;
4302 uint8 heartBeatType; //TCP or UDP
4303} tlowPowerHeartBeatEnableStruct;
4304
4305typedef PACKED_PRE struct PACKED_POST
4306{
4307 uint8 dummy;
4308} tlowPowerHeartBeatNetworkInfoStruct;
4309
4310
4311typedef PACKED_PRE struct PACKED_POST
4312{
4313 uint8 sessionIdx;
4314 uint16 lowPowerHeartBeatCmdType;
4315 PACKED_PRE union PACKED_PRO
4316 {
4317 tlowPowerHeartBeatEnableStruct control;
4318 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4319 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4320 tlowPowerHeartBeatParamsUdpStruct udpParams;
4321 tlowPowerHeartBeatNetworkInfoStruct info;
4322 }options;
4323} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4324
4325
4326typedef PACKED_PRE struct PACKED_POST
4327{
4328 tHalMsgHeader header;
4329 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4330} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4331
4332/*---------------------------------------------------------------------------
4333 * FEATURE_WLAN_LPHB RSP
4334 *--------------------------------------------------------------------------*/
4335
4336typedef PACKED_PRE struct PACKED_POST
4337{
4338 /* success or failure */
4339 uint8 sessionIdx;
4340 uint32 status;
4341 uint16 lowPowerHeartBeatCmdType;
4342}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4343
4344typedef PACKED_PRE struct PACKED_POST
4345{
4346 tHalMsgHeader header;
4347 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4348}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4349
4350
4351/*---------------------------------------------------------------------------
4352 * FEATURE_WLAN_LPHB IND
4353 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004354#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4355#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4356
4357#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4358#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004359#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004360
Kumar Anandea78e792013-10-10 23:47:01 -07004361
4362#define WIFI_LPHB_PROTO_UDP 0x01
4363#define WIFI_LPHB_PROTO_TCP 0x02
4364
Leo Chang397deb72013-08-22 11:33:16 -07004365typedef PACKED_PRE struct PACKED_POST
4366{
4367 uint8 bssIdx;
4368 uint8 sessionIdx;
4369 uint8 protocolType; /*TCP or UDP*/
4370 uint8 eventReason;
4371
4372}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4373
4374typedef PACKED_PRE struct PACKED_POST
4375{
4376 tHalMsgHeader header;
4377 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4378}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4379
4380#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004381
4382#ifdef FEATURE_WLAN_BATCH_SCAN
4383
4384/*---------------------------------------------------------------------------
4385 * WLAN_HAL_BATCHSCAN_SET_REQ
4386 *--------------------------------------------------------------------------*/
4387typedef PACKED_PRE struct PACKED_POST
4388{
4389 /* Scan Frerquency - default to 30Sec*/
4390 tANI_U32 scanInterval;
4391 tANI_U32 numScan2Batch;
4392 tANI_U32 bestNetworks;
4393 tANI_U8 rfBand;
4394 tANI_U8 rtt;
4395} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4396
4397typedef PACKED_PRE struct PACKED_POST
4398{
4399 tHalMsgHeader header;
4400 tHalBatchScanSetParams batchScanParams;
4401} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4402
4403/*---------------------------------------------------------------------------
4404 * WLAN_HAL_BATCHSCAN_SET_RSP
4405 *--------------------------------------------------------------------------*/
4406typedef PACKED_PRE struct PACKED_POST
4407{
4408 tANI_U32 supportedMscan;
4409} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4410
4411typedef PACKED_PRE struct PACKED_POST
4412{
4413 tHalMsgHeader header;
4414 tHalBatchScanSetRspParam setBatchScanRspParam;
4415} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4416
4417/*---------------------------------------------------------------------------
4418* WLAN_HAL_BATCHSCAN_STOP_IND
4419*--------------------------------------------------------------------------*/
4420typedef PACKED_PRE struct PACKED_POST
4421{
4422 tANI_U32 param;
4423} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4424
4425typedef PACKED_PRE struct PACKED_POST
4426{
4427 tHalMsgHeader header;
4428 tHalBatchScanStopIndParam param;
4429} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4430
4431/*---------------------------------------------------------------------------
4432* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4433*--------------------------------------------------------------------------*/
4434typedef PACKED_PRE struct PACKED_POST
4435{
4436 tANI_U32 param;
4437} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4438
4439typedef PACKED_PRE struct PACKED_POST
4440{
4441 tHalMsgHeader header;
4442 tHalBatchScanTriggerResultParam param;
4443} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4444
4445/*---------------------------------------------------------------------------
4446 * WLAN_HAL_BATCHSCAN_GET_RSP
4447 *--------------------------------------------------------------------------*/
4448typedef PACKED_PRE struct PACKED_POST
4449{
4450 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004451 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004452 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304453 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004454 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4455 tANI_U32 timestamp;
4456} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4457
4458typedef PACKED_PRE struct PACKED_POST
4459{
4460 tANI_U32 scanId; /* Scan List ID. */
4461 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4462 tANI_U32 numNetworksInScanList;
4463 /* Variable data ptr: Number of AP in Scan List */
4464 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4465 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4466 tANI_U8 scanList[1];
4467} tHalBatchScanList, *tpHalBatchScanList;
4468
4469typedef PACKED_PRE struct PACKED_POST
4470{
4471 tANI_U32 timestamp;
4472 tANI_U32 numScanLists;
4473 boolean isLastResult;
4474 /* Variable Data ptr: Number of Scan Lists*/
4475 /* following isLastResult is data of type tHalBatchScanList
4476 * of sizeof(tHalBatchScanList) * numScanLists*/
4477 tANI_U8 scanResults[1];
4478} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4479
4480typedef PACKED_PRE struct PACKED_POST
4481{
4482 tHalMsgHeader header;
4483 tHalBatchScanResultIndParam resultIndMsgParam;
4484} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4485
4486#endif
4487
Jeff Johnson295189b2012-06-20 16:38:30 -07004488/*---------------------------------------------------------------------------
4489 * WLAN_HAL_KEEP_ALIVE_REQ
4490 *--------------------------------------------------------------------------*/
4491/* Packet Types. */
4492#define HAL_KEEP_ALIVE_NULL_PKT 1
4493#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4494
4495/* Enable or disable keep alive */
4496#define HAL_KEEP_ALIVE_DISABLE 0
4497#define HAL_KEEP_ALIVE_ENABLE 1
4498
4499/* Keep Alive request. */
4500typedef PACKED_PRE struct PACKED_POST
4501{
4502 tANI_U8 packetType;
4503 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304504 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004505 tHalIpv4Addr destIpv4Addr;
4506 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004507 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004508} tHalKeepAliveReq, *tpHalKeepAliveReq;
4509
4510typedef PACKED_PRE struct PACKED_POST
4511{
4512 tHalMsgHeader header;
4513 tHalKeepAliveReq KeepAliveParams;
4514} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4515
4516/*---------------------------------------------------------------------------
4517 * WLAN_HAL_SET_RSSI_THRESH_REQ
4518 *--------------------------------------------------------------------------*/
4519typedef PACKED_PRE struct PACKED_POST
4520{
4521 tANI_S8 ucRssiThreshold1 : 8;
4522 tANI_S8 ucRssiThreshold2 : 8;
4523 tANI_S8 ucRssiThreshold3 : 8;
4524 tANI_U8 bRssiThres1PosNotify : 1;
4525 tANI_U8 bRssiThres1NegNotify : 1;
4526 tANI_U8 bRssiThres2PosNotify : 1;
4527 tANI_U8 bRssiThres2NegNotify : 1;
4528 tANI_U8 bRssiThres3PosNotify : 1;
4529 tANI_U8 bRssiThres3NegNotify : 1;
4530 tANI_U8 bReserved10 : 2;
4531} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304532
Jeff Johnson295189b2012-06-20 16:38:30 -07004533typedef PACKED_PRE struct PACKED_POST
4534{
4535 tHalMsgHeader header;
4536 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004537} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004538
4539/*---------------------------------------------------------------------------
4540 * WLAN_HAL_ENTER_UAPSD_REQ
4541 *--------------------------------------------------------------------------*/
4542typedef PACKED_PRE struct PACKED_POST
4543{
4544 tANI_U8 bkDeliveryEnabled:1;
4545 tANI_U8 beDeliveryEnabled:1;
4546 tANI_U8 viDeliveryEnabled:1;
4547 tANI_U8 voDeliveryEnabled:1;
4548 tANI_U8 bkTriggerEnabled:1;
4549 tANI_U8 beTriggerEnabled:1;
4550 tANI_U8 viTriggerEnabled:1;
4551 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004552 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004553} tUapsdReqParams, *tpUapsdReqParams;
4554
4555typedef PACKED_PRE struct PACKED_POST
4556{
4557 tHalMsgHeader header;
4558 tUapsdReqParams enterUapsdParams;
4559} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4560
4561/*---------------------------------------------------------------------------
4562 * WLAN_HAL_EXIT_UAPSD_REQ
4563 *--------------------------------------------------------------------------*/
4564typedef PACKED_PRE struct PACKED_POST
4565{
4566 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004567 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004568} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4569
Kumar Anandea78e792013-10-10 23:47:01 -07004570#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4571#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004572/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004573 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4574 *--------------------------------------------------------------------------*/
4575typedef PACKED_PRE struct PACKED_POST
4576{
4577 tANI_U32 selfStaIdx:8;
4578 tANI_U32 ucPtrnId:8; // Pattern ID
4579 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4580 tANI_U32 uPtrnIntervalMs; // In msec
4581 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4582} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4583
4584typedef PACKED_PRE struct PACKED_POST
4585{
4586 tHalMsgHeader header;
4587 tHalAddPeriodicTxPtrn ptrnParams;
4588} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4589
4590/*---------------------------------------------------------------------------
4591 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4592 *--------------------------------------------------------------------------*/
4593typedef PACKED_PRE struct PACKED_POST
4594{
4595 tANI_U32 selfStaIdx:8;
4596 tANI_U32 rsvd:24;
4597 /* Bitmap of pattern IDs that needs to be deleted */
4598 tANI_U32 uPatternIdBitmap;
4599} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4600
4601typedef PACKED_PRE struct PACKED_POST
4602{
4603 tHalMsgHeader header;
4604 tHalDelPeriodicTxPtrn ptrnParams;
4605} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4606
4607/*---------------------------------------------------------------------------
4608 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4609 *--------------------------------------------------------------------------*/
4610typedef PACKED_PRE struct PACKED_POST
4611{
4612 /* Type of Failure indication */
4613 tANI_U32 bssIdx:8;
4614 tANI_U32 selfStaIdx:8;
4615 tANI_U32 rsvd:16;
4616 tANI_U32 status;
4617 tANI_U32 patternIdBitmap;
4618} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4619
4620typedef PACKED_PRE struct PACKED_POST
4621{
4622 tHalMsgHeader header;
4623 tHalPeriodicTxPtrnFwInd fwIndParams;
4624} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4625
4626/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004627 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4628 *--------------------------------------------------------------------------*/
4629#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4630#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4631
4632typedef PACKED_PRE struct PACKED_POST
4633{
4634 tANI_U8 ucPatternId; // Pattern ID
4635 // Pattern byte offset from beginning of the 802.11 packet to start of the
4636 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304637 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004638 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4639 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4640 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4641 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4642 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4643 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004644 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004645} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4646
4647typedef PACKED_PRE struct PACKED_POST
4648{
4649 tHalMsgHeader header;
4650 tHalWowlAddBcastPtrn ptrnParams;
4651} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304652
Jeff Johnsone7245742012-09-05 17:12:55 -07004653
4654
Jeff Johnson295189b2012-06-20 16:38:30 -07004655/*---------------------------------------------------------------------------
4656 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4657 *--------------------------------------------------------------------------*/
4658typedef PACKED_PRE struct PACKED_POST
4659{
4660 /* Pattern ID of the wakeup pattern to be deleted */
4661 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004662 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004663} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4664
4665typedef PACKED_PRE struct PACKED_POST
4666{
4667 tHalMsgHeader header;
4668 tHalWowlDelBcastPtrn ptrnParams;
4669} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4670
4671/*---------------------------------------------------------------------------
4672 * WLAN_HAL_ENTER_WOWL_REQ
4673 *--------------------------------------------------------------------------*/
4674typedef PACKED_PRE struct PACKED_POST
4675{
4676 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304677 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004678
4679 /* Magic pattern */
4680 tSirMacAddr magicPtrn;
4681
Dino Mycle8afbac12014-07-04 22:06:17 +05304682 /* Enables/disables packet pattern filtering in firmware.
4683 Enabling this flag enables broadcast pattern matching
4684 in Firmware. If unicast pattern matching is also desired,
4685 ucUcastPatternFilteringEnable flag must be set tot true
4686 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004687 */
4688 tANI_U8 ucPatternFilteringEnable;
4689
Dino Mycle8afbac12014-07-04 22:06:17 +05304690 /* Enables/disables unicast packet pattern filtering.
4691 This flag specifies whether we want to do pattern match
4692 on unicast packets as well and not just broadcast packets.
4693 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004694 (main controlling flag) is set to false
4695 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304696 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004697
Dino Mycle8afbac12014-07-04 22:06:17 +05304698 /* This configuration is valid only when magicPktEnable=1.
4699 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004700 * Channel Switch Action Frame.
4701 */
4702 tANI_U8 ucWowChnlSwitchRcv;
4703
Dino Mycle8afbac12014-07-04 22:06:17 +05304704 /* This configuration is valid only when magicPktEnable=1.
4705 * It requests hardware to wake up when it receives the
4706 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004707 */
4708 tANI_U8 ucWowDeauthRcv;
4709
Dino Mycle8afbac12014-07-04 22:06:17 +05304710 /* This configuration is valid only when magicPktEnable=1.
4711 * It requests hardware to wake up when it receives the
4712 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004713 */
4714 tANI_U8 ucWowDisassocRcv;
4715
Dino Mycle8afbac12014-07-04 22:06:17 +05304716 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004717 * It requests hardware to wake up when it has missed
4718 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304719 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004720 */
4721 tANI_U8 ucWowMaxMissedBeacons;
4722
Dino Mycle8afbac12014-07-04 22:06:17 +05304723 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004724 * This is a timeout value in units of microsec. It requests
4725 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304726 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004727 */
4728 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304729
Jeff Johnson295189b2012-06-20 16:38:30 -07004730 /* This configuration directs the WoW packet filtering to look for EAP-ID
4731 * requests embedded in EAPOL frames and use this as a wake source.
4732 */
4733 tANI_U8 ucWoWEAPIDRequestEnable;
4734
4735 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4736 * requests and use this as a wake source.
4737 */
4738 tANI_U8 ucWoWEAPOL4WayEnable;
4739
4740 /* This configuration allows a host wakeup on an network scan offload match.
4741 */
4742 tANI_U8 ucWowNetScanOffloadMatch;
4743
4744 /* This configuration allows a host wakeup on any GTK rekeying error.
4745 */
4746 tANI_U8 ucWowGTKRekeyError;
4747
4748 /* This configuration allows a host wakeup on BSS connection loss.
4749 */
4750 tANI_U8 ucWoWBSSConnLoss;
4751
Jeff Johnsone7245742012-09-05 17:12:55 -07004752 tANI_U8 bssIdx;
4753
Jeff Johnson295189b2012-06-20 16:38:30 -07004754} tHalWowlEnterParams, *tpHalWowlEnterParams;
4755
4756typedef PACKED_PRE struct PACKED_POST
4757{
4758 tHalMsgHeader header;
4759 tHalWowlEnterParams enterWowlParams;
4760} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4761
4762/*---------------------------------------------------------------------------
4763 * WLAN_HAL_EXIT_WOWL_REQ
4764 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004765
Jeff Johnson295189b2012-06-20 16:38:30 -07004766typedef PACKED_PRE struct PACKED_POST
4767{
Jeff Johnsone7245742012-09-05 17:12:55 -07004768 tANI_U8 bssIdx;
4769
4770} tHalWowlExitParams, *tpHalWowlExitParams;
4771
4772typedef PACKED_PRE struct PACKED_POST
4773{
4774 tHalMsgHeader header;
4775 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004776} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4777
4778/*---------------------------------------------------------------------------
4779 * WLAN_HAL_GET_RSSI_REQ
4780 *--------------------------------------------------------------------------*/
4781typedef PACKED_PRE struct PACKED_POST
4782{
4783 tHalMsgHeader header;
4784} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4785
Anand Kumar012623a2013-01-11 17:00:00 -08004786typedef PACKED_PRE struct PACKED_POST
4787{
4788 /* Valid STA Idx for per STA stats request */
4789 tANI_U32 staId;
4790
4791}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4792
4793
4794/*---------------------------------------------------------------------------
4795 * WLAN_HAL_GET_ROAM_RSSI_REQ
4796 *--------------------------------------------------------------------------*/
4797typedef PACKED_PRE struct PACKED_POST
4798{
4799 tHalMsgHeader header;
4800 tHalRoamRssiReqParams roamRssiReqParams;
4801} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4802
4803
Jeff Johnson295189b2012-06-20 16:38:30 -07004804/*---------------------------------------------------------------------------
4805 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4806 *--------------------------------------------------------------------------*/
4807typedef PACKED_PRE struct PACKED_POST {
4808 tANI_U8 staidx; // STA index
4809 tANI_U8 ac; // Access Category
4810 tANI_U8 up; // User Priority
4811 tANI_U32 srvInterval; // Service Interval
4812 tANI_U32 susInterval; // Suspend Interval
4813 tANI_U32 delayInterval; // Delay Interval
4814} tUapsdInfo, tpUapsdInfo;
4815
4816typedef PACKED_PRE struct PACKED_POST
4817{
4818 tHalMsgHeader header;
4819 tUapsdInfo enableUapsdAcParams;
4820} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4821
4822/*---------------------------------------------------------------------------
4823 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4824 *--------------------------------------------------------------------------*/
4825typedef PACKED_PRE struct PACKED_POST {
4826 tANI_U8 setMcstBcstFilterSetting;
4827 tANI_U8 setMcstBcstFilter;
4828} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4829
4830typedef PACKED_PRE struct PACKED_POST
4831{
4832 tHalMsgHeader header;
4833 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4834} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4835
4836/*---------------------------------------------------------------------------
4837 * WLAN_HAL_ENTER_IMPS_RSP
4838 *--------------------------------------------------------------------------*/
4839typedef PACKED_PRE struct PACKED_POST
4840{
4841 /* success or failure */
4842 tANI_U32 status;
4843} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4844
4845typedef PACKED_PRE struct PACKED_POST
4846{
4847 tHalMsgHeader header;
4848 tHalEnterImpsRspParams enterImpsRspParams;
4849} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4850
4851/*---------------------------------------------------------------------------
4852 * WLAN_HAL_EXIT_IMPS_RSP
4853 *--------------------------------------------------------------------------*/
4854typedef PACKED_PRE struct PACKED_POST
4855{
4856 /* success or failure */
4857 tANI_U32 status;
4858} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4859
4860typedef PACKED_PRE struct PACKED_POST
4861{
4862 tHalMsgHeader header;
4863 tHalExitImpsRspParams exitImpsRspParams;
4864} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4865
4866/*---------------------------------------------------------------------------
4867 * WLAN_HAL_ENTER_BMPS_RSP
4868 *--------------------------------------------------------------------------*/
4869typedef PACKED_PRE struct PACKED_POST
4870{
4871 /* success or failure */
4872 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004873 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004874} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4875
4876typedef PACKED_PRE struct PACKED_POST
4877{
4878 tHalMsgHeader header;
4879 tHalEnterBmpsRspParams enterBmpsRspParams;
4880} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4881
4882/*---------------------------------------------------------------------------
4883 * WLAN_HAL_EXIT_BMPS_RSP
4884 *--------------------------------------------------------------------------*/
4885typedef PACKED_PRE struct PACKED_POST
4886{
4887 /* success or failure */
4888 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004889 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004890} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4891
4892typedef PACKED_PRE struct PACKED_POST
4893{
4894 tHalMsgHeader header;
4895 tHalExitBmpsRspParams exitBmpsRspParams;
4896} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4897
4898/*---------------------------------------------------------------------------
4899 * WLAN_HAL_ENTER_UAPSD_RSP
4900 *--------------------------------------------------------------------------*/
4901typedef PACKED_PRE struct PACKED_POST
4902{
4903 /* success or failure */
4904 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004905 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004906}tUapsdRspParams, *tpUapsdRspParams;
4907
4908typedef PACKED_PRE struct PACKED_POST
4909{
4910 tHalMsgHeader header;
4911 tUapsdRspParams enterUapsdRspParams;
4912} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4913
4914/*---------------------------------------------------------------------------
4915 * WLAN_HAL_EXIT_UAPSD_RSP
4916 *--------------------------------------------------------------------------*/
4917typedef PACKED_PRE struct PACKED_POST
4918{
4919 /* success or failure */
4920 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004921 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004922} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4923
4924typedef PACKED_PRE struct PACKED_POST
4925{
4926 tHalMsgHeader header;
4927 tHalExitUapsdRspParams exitUapsdRspParams;
4928} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4929
4930/*---------------------------------------------------------------------------
4931 * WLAN_HAL_RSSI_NOTIFICATION_IND
4932 *--------------------------------------------------------------------------*/
4933typedef PACKED_PRE struct PACKED_POST
4934{
4935 tANI_U32 bRssiThres1PosCross : 1;
4936 tANI_U32 bRssiThres1NegCross : 1;
4937 tANI_U32 bRssiThres2PosCross : 1;
4938 tANI_U32 bRssiThres2NegCross : 1;
4939 tANI_U32 bRssiThres3PosCross : 1;
4940 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004941 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004942 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07004943 tANI_U32 isBTCoexCompromise : 1;
4944 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004945 tANI_S8 refRssiThreshold1;
4946 tANI_S8 refRssiThreshold2;
4947 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07004948} tHalRSSINotification, *tpHalRSSINotification;
4949
4950typedef PACKED_PRE struct PACKED_POST
4951{
4952 tHalMsgHeader header;
4953 tHalRSSINotification rssiNotificationParams;
4954} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4955
4956/*---------------------------------------------------------------------------
4957 * WLAN_HAL_GET_RSSI_RSP
4958 *--------------------------------------------------------------------------*/
4959typedef PACKED_PRE struct PACKED_POST
4960{
4961 /* success or failure */
4962 tANI_U32 status;
4963 tANI_S8 rssi;
4964} tHalGetRssiParams, *tpHalGetRspParams;
4965
4966typedef PACKED_PRE struct PACKED_POST
4967{
4968 tHalMsgHeader header;
4969 tHalGetRssiParams rssiRspParams;
4970} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4971
4972/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004973 * WLAN_HAL_GET_ROAM_RSSI_RSP
4974 *--------------------------------------------------------------------------*/
4975typedef PACKED_PRE struct PACKED_POST
4976{
4977 /* success or failure */
4978 tANI_U32 status;
4979
4980 tANI_U8 staId;
4981 tANI_S8 rssi;
4982} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4983
4984typedef PACKED_PRE struct PACKED_POST
4985{
4986 tHalMsgHeader header;
4987 tHalGetRoamRssiParams roamRssiRspParams;
4988} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4989
4990/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004991 * WLAN_HAL_ENTER_WOWL_RSP
4992 *--------------------------------------------------------------------------*/
4993typedef PACKED_PRE struct PACKED_POST
4994{
4995 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004996 tANI_U32 status;
4997 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004998} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4999
5000typedef PACKED_PRE struct PACKED_POST
5001{
5002 tHalMsgHeader header;
5003 tHalEnterWowlRspParams enterWowlRspParams;
5004} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5005
5006/*---------------------------------------------------------------------------
5007 * WLAN_HAL_EXIT_WOWL_RSP
5008 *--------------------------------------------------------------------------*/
5009typedef PACKED_PRE struct PACKED_POST
5010{
5011 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005012 tANI_U32 status;
5013 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005014} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5015
5016typedef PACKED_PRE struct PACKED_POST
5017{
5018 tHalMsgHeader header;
5019 tHalExitWowlRspParams exitWowlRspParams;
5020} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5021
5022/*---------------------------------------------------------------------------
5023 * WLAN_HAL_ADD_BCN_FILTER_RSP
5024 *--------------------------------------------------------------------------*/
5025typedef PACKED_PRE struct PACKED_POST
5026{
5027 /* success or failure */
5028 tANI_U32 status;
5029} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5030
5031typedef PACKED_PRE struct PACKED_POST
5032{
5033 tHalMsgHeader header;
5034 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5035} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5036
5037/*---------------------------------------------------------------------------
5038 * WLAN_HAL_REM_BCN_FILTER_RSP
5039 *--------------------------------------------------------------------------*/
5040typedef PACKED_PRE struct PACKED_POST
5041{
5042 /* success or failure */
5043 tANI_U32 status;
5044} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5045
5046typedef PACKED_PRE struct PACKED_POST
5047{
5048 tHalMsgHeader header;
5049 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5050} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5051
5052/*---------------------------------------------------------------------------
5053 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5054 *--------------------------------------------------------------------------*/
5055typedef PACKED_PRE struct PACKED_POST
5056{
5057 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005058 tANI_U32 status;
5059 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005060} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5061
5062typedef PACKED_PRE struct PACKED_POST
5063{
5064 tHalMsgHeader header;
5065 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5066} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5067
5068/*---------------------------------------------------------------------------
5069 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5070 *--------------------------------------------------------------------------*/
5071typedef PACKED_PRE struct PACKED_POST
5072{
5073 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005074 tANI_U32 status;
5075 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005076} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5077
5078typedef PACKED_PRE struct PACKED_POST
5079{
5080 tHalMsgHeader header;
5081 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5082} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5083
5084/*---------------------------------------------------------------------------
5085 * WLAN_HAL_HOST_OFFLOAD_RSP
5086 *--------------------------------------------------------------------------*/
5087typedef PACKED_PRE struct PACKED_POST
5088{
5089 /* success or failure */
5090 tANI_U32 status;
5091} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5092
5093typedef PACKED_PRE struct PACKED_POST
5094{
5095 tHalMsgHeader header;
5096 tHalHostOffloadRspParams hostOffloadRspParams;
5097} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5098
5099/*---------------------------------------------------------------------------
5100 * WLAN_HAL_KEEP_ALIVE_RSP
5101 *--------------------------------------------------------------------------*/
5102typedef PACKED_PRE struct PACKED_POST
5103{
5104 /* success or failure */
5105 tANI_U32 status;
5106} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5107
5108typedef PACKED_PRE struct PACKED_POST
5109{
5110 tHalMsgHeader header;
5111 tHalKeepAliveRspParams keepAliveRspParams;
5112} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5113
5114/*---------------------------------------------------------------------------
5115 * WLAN_HAL_SET_RSSI_THRESH_RSP
5116 *--------------------------------------------------------------------------*/
5117typedef PACKED_PRE struct PACKED_POST
5118{
5119 /* success or failure */
5120 tANI_U32 status;
5121} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5122
5123typedef PACKED_PRE struct PACKED_POST
5124{
5125 tHalMsgHeader header;
5126 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5127} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5128
5129/*---------------------------------------------------------------------------
5130 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5131 *--------------------------------------------------------------------------*/
5132typedef PACKED_PRE struct PACKED_POST
5133{
5134 /* success or failure */
5135 tANI_U32 status;
5136} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5137
5138typedef PACKED_PRE struct PACKED_POST
5139{
5140 tHalMsgHeader header;
5141 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5142} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5143
5144/*---------------------------------------------------------------------------
5145 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5146 *--------------------------------------------------------------------------*/
5147typedef PACKED_PRE struct PACKED_POST
5148{
5149 /* success or failure */
5150 tANI_U32 status;
5151} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5152
5153typedef PACKED_PRE struct PACKED_POST
5154{
5155 tHalMsgHeader header;
5156 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5157} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5158
5159/*---------------------------------------------------------------------------
5160 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5161 *--------------------------------------------------------------------------*/
5162
5163typedef PACKED_PRE struct PACKED_POST
5164{
5165 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5166 //the request has power constraints, this should be applied only to that session
5167 tSirMacAddr selfStaMacAddr;
5168 //In request,
5169 //power == MaxTx power to be used.
5170 tPowerdBm power;
5171
5172}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5173
5174
5175typedef PACKED_PRE struct PACKED_POST
5176{
5177 tHalMsgHeader header;
5178 tSetMaxTxPwrParams setMaxTxPwrParams;
5179}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5180
5181/*---------------------------------------------------------------------------
5182*WLAN_HAL_SET_MAX_TX_POWER_RSP
5183*--------------------------------------------------------------------------*/
5184
5185typedef PACKED_PRE struct PACKED_POST
5186{
5187 //power == tx power used for management frames.
5188 tPowerdBm power;
5189
5190 /* success or failure */
5191 tANI_U32 status;
5192}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5193
5194typedef PACKED_PRE struct PACKED_POST
5195{
5196 tHalMsgHeader header;
5197 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5198}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5199
Kumar Anandea78e792013-10-10 23:47:01 -07005200
Jeff Johnson295189b2012-06-20 16:38:30 -07005201/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005202 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5203 *--------------------------------------------------------------------------*/
5204
5205/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5206typedef enum
5207{
5208 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5209 // For 2.4GHz or 5GHz bands
5210 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5211 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5212 // End of valid enums
5213 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5214}tHalSetMaxTxPwrBandInfo;
5215
5216typedef PACKED_PRE struct PACKED_POST
5217{
5218 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005219 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005220}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5221
Kumar Anandea78e792013-10-10 23:47:01 -07005222
Arif Hussain36fda162013-08-30 14:46:57 -07005223typedef PACKED_PRE struct PACKED_POST
5224{
5225 tHalMsgHeader header;
5226 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5227}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5228
5229/*---------------------------------------------------------------------------
5230*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5231*--------------------------------------------------------------------------*/
5232
5233typedef PACKED_PRE struct PACKED_POST
5234{
5235 //power == tx power used for management frames.
5236 tPowerdBm power;
5237
5238 /* success or failure */
5239 tANI_U32 status;
5240}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5241
5242typedef PACKED_PRE struct PACKED_POST
5243{
5244 tHalMsgHeader header;
5245 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5246}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5247
5248/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005249 *WLAN_HAL_SET_TX_POWER_REQ
5250 *--------------------------------------------------------------------------*/
5251
5252typedef PACKED_PRE struct PACKED_POST
5253{
5254 /* TX Power in milli watts */
5255 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005256 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005257}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5258
5259
5260typedef PACKED_PRE struct PACKED_POST
5261{
5262 tHalMsgHeader header;
5263 tSetTxPwrReqParams setTxPwrReqParams;
5264}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5265
5266/*---------------------------------------------------------------------------
5267*WLAN_HAL_SET_TX_POWER_RSP
5268*--------------------------------------------------------------------------*/
5269
5270typedef PACKED_PRE struct PACKED_POST
5271{
5272 /* success or failure */
5273 tANI_U32 status;
5274}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5275
5276typedef PACKED_PRE struct PACKED_POST
5277{
5278 tHalMsgHeader header;
5279 tSetTxPwrRspParams setTxPwrRspParams;
5280}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5281
5282/*---------------------------------------------------------------------------
5283 *WLAN_HAL_GET_TX_POWER_REQ
5284 *--------------------------------------------------------------------------*/
5285
5286typedef PACKED_PRE struct PACKED_POST
5287{
5288 tANI_U8 staId;
5289}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5290
5291typedef PACKED_PRE struct PACKED_POST
5292{
5293 tHalMsgHeader header;
5294 tGetTxPwrReqParams getTxPwrReqParams;
5295}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5296
5297/*---------------------------------------------------------------------------
5298*WLAN_HAL_GET_TX_POWER_RSP
5299*--------------------------------------------------------------------------*/
5300
5301typedef PACKED_PRE struct PACKED_POST
5302{
5303 /* success or failure */
5304 tANI_U32 status;
5305
5306 /* TX Power in milli watts */
5307 tANI_U32 txPower;
5308}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5309
5310typedef PACKED_PRE struct PACKED_POST
5311{
5312 tHalMsgHeader header;
5313 tGetTxPwrRspParams getTxPwrRspParams;
5314}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5315
5316#ifdef WLAN_FEATURE_P2P
5317/*---------------------------------------------------------------------------
5318 *WLAN_HAL_SET_P2P_GONOA_REQ
5319 *--------------------------------------------------------------------------*/
5320
5321typedef PACKED_PRE struct PACKED_POST
5322{
5323 tANI_U8 opp_ps;
5324 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305325 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005326 tANI_U32 duration;
5327 tANI_U32 interval;
5328 tANI_U32 single_noa_duration;
5329 tANI_U8 psSelection;
5330}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5331
5332
5333typedef PACKED_PRE struct PACKED_POST
5334{
5335 tHalMsgHeader header;
5336 tSetP2PGONOAParams setP2PGONOAParams;
5337}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5338
5339/*---------------------------------------------------------------------------
5340*WLAN_HAL_SET_P2P_GONOA_RSP
5341*--------------------------------------------------------------------------*/
5342
5343typedef PACKED_PRE struct PACKED_POST
5344{
5345 /* success or failure */
5346 tANI_U32 status;
5347}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5348
5349typedef PACKED_PRE struct PACKED_POST
5350{
5351 tHalMsgHeader header;
5352 tSetP2PGONOARspParams setP2PGONOARspParams;
5353}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5354#endif
5355
5356/*---------------------------------------------------------------------------
5357 *WLAN_HAL_ADD_SELF_STA_REQ
5358 *--------------------------------------------------------------------------*/
5359
5360typedef PACKED_PRE struct PACKED_POST
5361{
5362 tSirMacAddr selfMacAddr;
5363 tANI_U32 status;
5364}tAddStaSelfParams, *tpAddStaSelfParams;
5365
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005366typedef PACKED_PRE struct PACKED_POST
5367{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005368 tHalMsgHeader header;
5369 tAddStaSelfParams addStaSelfParams;
5370}tAddStaSelfReq, *tpAddStaSelfReq;
5371
5372/* This V1 structure carries additionally the IFACE PERSONA
5373 of the interface as compared to the legacy control
5374 message */
5375typedef PACKED_PRE struct PACKED_POST
5376{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005377 tSirMacAddr selfMacAddr;
5378 tANI_U32 status;
5379 tHalIfacePersona iface_persona;
5380}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005381
5382typedef PACKED_PRE struct PACKED_POST
5383{
5384 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005385 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005386}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005387
5388/*---------------------------------------------------------------------------
5389*WLAN_HAL_ADD_SELF_STA_RSP
5390*--------------------------------------------------------------------------*/
5391
5392typedef PACKED_PRE struct PACKED_POST
5393{
5394 /* success or failure */
5395 tANI_U32 status;
5396
5397 /*Self STA Index */
5398 tANI_U8 selfStaIdx;
5399
5400 /* DPU Index (IGTK, PTK, GTK all same) */
5401 tANI_U8 dpuIdx;
5402
5403 /* DPU Signature */
5404 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305405
Jeff Johnson295189b2012-06-20 16:38:30 -07005406}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5407
5408typedef PACKED_PRE struct PACKED_POST
5409{
5410 tHalMsgHeader header;
5411 tAddStaSelfRspParams addStaSelfRspParams;
5412}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5413
5414
5415/*---------------------------------------------------------------------------
5416 WLAN_HAL_DEL_STA_SELF_REQ
5417---------------------------------------------------------------------------*/
5418
5419typedef PACKED_PRE struct PACKED_POST
5420{
5421 tSirMacAddr selfMacAddr;
5422
5423}tDelStaSelfParams, *tpDelStaSelfParams;
5424
5425typedef PACKED_PRE struct PACKED_POST
5426{
5427 tHalMsgHeader header;
5428 tDelStaSelfParams delStaSelfParams;
5429} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5430
5431
5432/*---------------------------------------------------------------------------
5433 WLAN_HAL_DEL_STA_SELF_RSP
5434---------------------------------------------------------------------------*/
5435
5436typedef PACKED_PRE struct PACKED_POST
5437{
5438 /*success or failure */
5439 tANI_U32 status;
5440
5441 tSirMacAddr selfMacAddr;
5442}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5443
5444typedef PACKED_PRE struct PACKED_POST
5445{
5446 tHalMsgHeader header;
5447 tDelStaSelfRspParams delStaSelfRspParams;
5448} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5449
5450
5451#ifdef WLAN_FEATURE_VOWIFI_11R
5452
5453/*---------------------------------------------------------------------------
5454 *WLAN_HAL_AGGR_ADD_TS_REQ
5455 *--------------------------------------------------------------------------*/
5456
5457typedef PACKED_PRE struct PACKED_POST
5458{
5459 /* Station Index */
5460 tANI_U16 staIdx;
5461
5462 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5463 /* This will carry the bitmap with the bit positions representing different AC.s*/
5464 tANI_U16 tspecIdx;
5465
5466 /* Tspec info per AC To program TPE with required parameters */
5467 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5468
5469 /* U-APSD Flags: 1b per AC. Encoded as follows:
5470 b7 b6 b5 b4 b3 b2 b1 b0 =
5471 X X X X BE BK VI VO */
5472 tANI_U8 uAPSD;
5473
5474 /* These parameters are for all the access categories */
5475 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5476 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5477 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5478
5479}tAggrAddTsParams, *tpAggrAddTsParams;
5480
5481
5482typedef PACKED_PRE struct PACKED_POST
5483{
5484 tHalMsgHeader header;
5485 tAggrAddTsParams aggrAddTsParam;
5486}tAggrAddTsReq, *tpAggrAddTsReq;
5487
5488/*---------------------------------------------------------------------------
5489*WLAN_HAL_AGGR_ADD_TS_RSP
5490*--------------------------------------------------------------------------*/
5491
5492typedef PACKED_PRE struct PACKED_POST
5493{
5494 /* success or failure */
5495 tANI_U32 status0;
5496 /* FIXME PRIMA for future use for 11R */
5497 tANI_U32 status1;
5498}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5499
5500typedef PACKED_PRE struct PACKED_POST
5501{
5502 tHalMsgHeader header;
5503 tAggrAddTsRspParams aggrAddTsRspParam;
5504}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5505
5506#endif
5507
5508/*---------------------------------------------------------------------------
5509 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5510 *--------------------------------------------------------------------------*/
5511typedef PACKED_PRE struct PACKED_POST
5512{
5513 tANI_U8 isAppsCpuAwake;
5514} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5515
5516typedef PACKED_PRE struct PACKED_POST
5517{
5518 tHalMsgHeader header;
5519 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5520} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5521
5522/*---------------------------------------------------------------------------
5523 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5524 *--------------------------------------------------------------------------*/
5525typedef PACKED_PRE struct PACKED_POST
5526{
5527 /* success or failure */
5528 tANI_U32 status;
5529} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5530
5531typedef PACKED_PRE struct PACKED_POST
5532{
5533 tHalMsgHeader header;
5534 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5535} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5536/*---------------------------------------------------------------------------
5537 * WLAN_HAL_DUMP_COMMAND_REQ
5538 *--------------------------------------------------------------------------*/
5539
5540typedef PACKED_PRE struct PACKED_POST
5541{
5542 tANI_U32 argument1;
5543 tANI_U32 argument2;
5544 tANI_U32 argument3;
5545 tANI_U32 argument4;
5546 tANI_U32 argument5;
5547
5548}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5549
5550typedef PACKED_PRE struct PACKED_POST
5551{
5552 tHalMsgHeader header;
5553 tHalDumpCmdReqParams dumpCmdReqParams;
5554} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5555
5556/*---------------------------------------------------------------------------
5557 * WLAN_HAL_DUMP_COMMAND_RSP
5558 *--------------------------------------------------------------------------*/
5559
5560typedef PACKED_PRE struct PACKED_POST
5561{
5562 /* success or failure */
5563 tANI_U32 status;
5564 /*Length of the responce message*/
5565 tANI_U32 rspLength;
5566 /*FiXME: Currently considering the the responce will be less than 100bytes */
5567 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305568
Jeff Johnson295189b2012-06-20 16:38:30 -07005569} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5570
5571typedef PACKED_PRE struct PACKED_POST
5572{
5573 tHalMsgHeader header;
5574 tHalDumpCmdRspParams dumpCmdRspParams;
5575} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5576
5577/*---------------------------------------------------------------------------
5578 *WLAN_HAL_COEX_IND
5579 *-------------------------------------------------------------------------*/
5580#define WLAN_COEX_IND_DATA_SIZE (4)
5581#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5582#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005583#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5584#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005585#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5586#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305587#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5588#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305589#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005590
5591typedef PACKED_PRE struct PACKED_POST
5592{
5593 /*Coex Indication Type*/
5594 tANI_U32 coexIndType;
5595
5596 /*Coex Indication Data*/
5597 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5598}tCoexIndParams,*tpCoexIndParams;
5599
5600typedef PACKED_PRE struct PACKED_POST
5601{
5602 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305603 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005604}tCoexIndMsg, *tpCoexIndMsg;
5605
5606/*---------------------------------------------------------------------------
5607 *WLAN_HAL_OTA_TX_COMPL_IND
5608 *-------------------------------------------------------------------------*/
5609
5610typedef PACKED_PRE struct PACKED_POST
5611{
5612 /*Tx Complete Indication Success or Failure*/
5613 tANI_U32 status;
5614}tTxComplParams,*tpTxComplParams;
5615
5616typedef PACKED_PRE struct PACKED_POST
5617{
5618 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305619 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005620}tTxComplIndMsg, *tpTxComplIndMsg;
5621
5622/*---------------------------------------------------------------------------
5623 * WLAN_HAL_HOST_SUSPEND_IND
5624 *-------------------------------------------------------------------------*/
5625
5626typedef PACKED_PRE struct PACKED_POST
5627{
5628 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305629 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005630}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5631
5632typedef PACKED_PRE struct PACKED_POST
5633{
5634 tHalMsgHeader header;
5635 tHalWlanHostSuspendIndParam suspendIndParams;
5636}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5637
5638/*---------------------------------------------------------------------------
5639 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5640 *-------------------------------------------------------------------------*/
5641
5642typedef PACKED_PRE struct PACKED_POST
5643{
5644 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305645 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005646}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5647
5648typedef PACKED_PRE struct PACKED_POST
5649{
5650 tHalMsgHeader header;
5651 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5652}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5653
5654#ifdef WLAN_FEATURE_P2P
5655/*---------------------------------------------------------------------------
5656 *WLAN_HAL_NOA_ATTR_IND
5657 *-------------------------------------------------------------------------*/
5658
5659typedef PACKED_PRE struct PACKED_POST
5660{
5661 tANI_U8 index ;
5662 tANI_U8 oppPsFlag ;
5663 tANI_U16 ctWin ;
5664
5665 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005666 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005667 tANI_U32 uNoa1Duration;
5668 tANI_U32 uNoa1Interval;
5669 tANI_U32 uNoa1StartTime;
5670
5671 tANI_U16 uNoa2IntervalCnt;
5672 tANI_U16 rsvd2;
5673 tANI_U32 uNoa2Duration;
5674 tANI_U32 uNoa2Interval;
5675 tANI_U32 uNoa2StartTime;
5676
5677 tANI_U32 status;
5678}tNoaAttrIndParams, *tpNoaAttrIndParams;
5679
5680typedef PACKED_PRE struct PACKED_POST
5681{
5682 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305683 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005684}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005685
5686/*---------------------------------------------------------------------------
5687 *WLAN_HAL_NOA_START_IND
5688 *-------------------------------------------------------------------------*/
5689
5690typedef PACKED_PRE struct PACKED_POST
5691{
5692 tANI_U32 status;
5693 tANI_U32 bssIdx;
5694}tNoaStartIndParams, *tpNoaStartIndParams;
5695
5696typedef PACKED_PRE struct PACKED_POST
5697{
5698 tHalMsgHeader header;
5699 tNoaStartIndParams noaStartIndParams;
5700}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005701#endif
5702
5703/*---------------------------------------------------------------------------
5704 * WLAN_HAL_HOST_RESUME_REQ
5705 *-------------------------------------------------------------------------*/
5706
5707typedef PACKED_PRE struct PACKED_POST
5708{
5709 tANI_U8 configuredMcstBcstFilterSetting;
5710}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5711
5712typedef PACKED_PRE struct PACKED_POST
5713{
5714 tHalMsgHeader header;
5715 tHalWlanHostResumeReqParam resumeReqParams;
5716}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5717
5718/*---------------------------------------------------------------------------
5719 * WLAN_HAL_HOST_RESUME_RSP
5720 *--------------------------------------------------------------------------*/
5721typedef PACKED_PRE struct PACKED_POST
5722{
5723 /* success or failure */
5724 tANI_U32 status;
5725} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5726
5727typedef PACKED_PRE struct PACKED_POST
5728{
5729 tHalMsgHeader header;
5730 tHalHostResumeRspParams hostResumeRspParams;
5731} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5732
Anand Kumar012623a2013-01-11 17:00:00 -08005733typedef PACKED_PRE struct PACKED_POST
5734{
5735 tANI_U16 staIdx;
5736 // Peer MAC Address, whose BA session has timed out
5737 tSirMacAddr peerMacAddr;
5738 // TID for which a BA session timeout is being triggered
5739 tANI_U8 baTID;
5740 // DELBA direction
5741 // 1 - Originator
5742 // 0 - Recipient
5743 tANI_U8 baDirection;
5744 tANI_U32 reasonCode;
5745 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5746} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5747
5748typedef PACKED_PRE struct PACKED_POST
5749{
5750 tHalMsgHeader header;
5751 tHalWlanDelBaIndMsg hostdelBaParam;
5752} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5753
Jeff Johnson295189b2012-06-20 16:38:30 -07005754/*---------------------------------------------------------------------------
5755 *PNO Messages
5756 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005757/* Max number of channels that a network can be found on*/
5758/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5759 * be changed at same time
5760 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005761#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005762
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305763/*Max number of channels that a network can be found on*/
5764#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5765
Jeff Johnson295189b2012-06-20 16:38:30 -07005766/*Maximum numbers of networks supported by PNO*/
5767#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5768
5769/*The number of scan time intervals that can be programmed into PNO*/
5770#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5771
5772/*Maximum size of the probe template*/
5773#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5774
Dino Mycle8afbac12014-07-04 22:06:17 +05305775/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005776 Immediate - scanning will start immediately and PNO procedure will
5777 be repeated based on timer
5778 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005779 Resume - scanning will start on system resume
5780 Delay - start the scan timer to trigger PNO scan
5781 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005782typedef enum
5783{
5784 ePNO_MODE_IMMEDIATE,
5785 ePNO_MODE_ON_SUSPEND,
5786 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305787 ePNO_MODE_DELAY,
5788 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005789 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5790} ePNOMode;
5791
5792/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305793typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005794{
Dino Mycle8afbac12014-07-04 22:06:17 +05305795 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005796 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05305797
Jeff Johnson295189b2012-06-20 16:38:30 -07005798 // Upper layer authentication types
5799 eAUTH_TYPE_WPA = 2,
5800 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05305801
Jeff Johnson295189b2012-06-20 16:38:30 -07005802 eAUTH_TYPE_RSN = 4,
5803 eAUTH_TYPE_RSN_PSK = 5,
5804 eAUTH_TYPE_FT_RSN = 6,
5805 eAUTH_TYPE_FT_RSN_PSK = 7,
5806 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5807 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005808 eAUTH_TYPE_CCKM_WPA = 10,
5809 eAUTH_TYPE_CCKM_RSN = 11,
Dino Mycle8afbac12014-07-04 22:06:17 +05305810
Jeff Johnson295189b2012-06-20 16:38:30 -07005811 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5812
5813}tAuthType;
5814
5815/* Encryption type */
5816typedef enum eEdType
5817{
5818 eED_ANY = 0,
5819 eED_NONE = 1,
5820 eED_WEP = 2,
5821 eED_TKIP = 3,
5822 eED_CCMP = 4,
5823 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05305824
Jeff Johnson295189b2012-06-20 16:38:30 -07005825 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5826} tEdType;
5827
5828/* SSID broadcast type */
5829typedef enum eSSIDBcastType
5830{
5831 eBCAST_UNKNOWN = 0,
5832 eBCAST_NORMAL = 1,
5833 eBCAST_HIDDEN = 2,
5834
5835 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5836} tSSIDBcastType;
5837
Dino Mycle8afbac12014-07-04 22:06:17 +05305838/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005839 The network description for which PNO will have to look for
5840*/
5841typedef PACKED_PRE struct PACKED_POST
5842{
5843 /*SSID of the BSS*/
5844 tSirMacSSid ssId;
5845
5846 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305847 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005848
5849 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305850 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005851
Dino Mycle8afbac12014-07-04 22:06:17 +05305852 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005853 0 - if all channels */
5854 tANI_U8 ucChannelCount;
5855 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5856
5857 /*Indicates the RSSI threshold for the network to be considered*/
5858 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05305859}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005860
5861typedef PACKED_PRE struct PACKED_POST
5862{
5863 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05305864 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005865
Dino Mycle8afbac12014-07-04 22:06:17 +05305866 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005867 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305868 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005869
Dino Mycle8afbac12014-07-04 22:06:17 +05305870 /*e.g: 2 3
5871 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005872 - it will wait 2s between consecutive scans for 3 times
5873 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305874}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005875
Dino Mycle8afbac12014-07-04 22:06:17 +05305876/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005877 The network parameters to be sent to the PNO algorithm
5878*/
5879typedef PACKED_PRE struct PACKED_POST
5880{
5881 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305882 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005883
Dino Mycle8afbac12014-07-04 22:06:17 +05305884 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005885 two consecutive scan procedures
5886 If the desired is for a uniform timer that fires always at the exact same
5887 interval - one single value is to be set
5888 If there is a desire for a more complex - telescopic like timer multiple
5889 values can be set - once PNO reaches the end of the array it will
5890 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305891 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005892
5893}tScanTimersType;
5894
5895typedef PACKED_PRE struct PACKED_POST {
5896
5897 /*Enable PNO*/
5898 tANI_U32 enable;
5899
5900 /*Immediate, On Suspend, On Resume*/
5901 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05305902
Jeff Johnson295189b2012-06-20 16:38:30 -07005903 /*Number of networks sent for PNO*/
5904 tANI_U32 ucNetworksCount;
5905
5906 /*The networks that PNO needs to look for*/
5907 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5908
5909 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305910 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005911
5912 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305913 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005914 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5915
5916 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305917 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005918 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5919
5920} tPrefNetwListParams, * tpPrefNetwListParams;
5921
5922/*
Dino Mycle8afbac12014-07-04 22:06:17 +05305923 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005924*/
5925typedef PACKED_PRE struct PACKED_POST
5926{
5927 tHalMsgHeader header;
5928 tPrefNetwListParams prefNetwListParams;
5929} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5930
5931
Dino Mycle8afbac12014-07-04 22:06:17 +05305932/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005933 The network description for which PNO will have to look for
5934*/
5935typedef PACKED_PRE struct PACKED_POST
5936{
5937 /*SSID of the BSS*/
5938 tSirMacSSid ssId;
5939
5940 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305941 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005942
5943 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305944 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005945
5946 /*SSID broadcast type, normal, hidden or unknown*/
5947 tSSIDBcastType bcastNetworkType;
5948
Dino Mycle8afbac12014-07-04 22:06:17 +05305949 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005950 0 - if all channels */
5951 tANI_U8 ucChannelCount;
5952 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5953
5954 /*Indicates the RSSI threshold for the network to be considered*/
5955 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05305956}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005957
5958typedef PACKED_PRE struct PACKED_POST {
5959
5960 /*Enable PNO*/
5961 tANI_U32 enable;
5962
5963 /*Immediate, On Suspend, On Resume*/
5964 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05305965
Jeff Johnson295189b2012-06-20 16:38:30 -07005966 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305967 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005968
5969 /*The networks that PNO needs to look for*/
5970 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5971
5972 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305973 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005974
5975 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305976 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005977 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5978
5979 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305980 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005981 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5982
5983} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5984
5985/*
5986 Preferred network list request new
5987*/
5988typedef PACKED_PRE struct PACKED_POST
5989{
5990 tHalMsgHeader header;
5991 tPrefNetwListParamsNew prefNetwListParams;
5992} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5993
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005994#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5995typedef PACKED_PRE struct PACKED_POST
5996{
5997 tSirMacSSid ssId;
5998 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5999 tANI_U32 authentication;
6000 tEdType encryption;
6001 tEdType mcencryption;
6002 tANI_U8 ChannelCount;
6003 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6004}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006005
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006006typedef PACKED_PRE struct PACKED_POST
6007{
6008 tANI_U8 mdiePresent;
6009 tANI_U16 mobilityDomain;
6010}tMobilityDomainInfo;
6011
6012typedef PACKED_PRE struct PACKED_POST {
6013 eAniBoolean RoamScanOffloadEnabled;
6014 tANI_S8 LookupThreshold;
6015 tANI_U8 RoamRssiDiff;
6016 tANI_U8 ChannelCacheType;
6017 tANI_U8 Command;
6018 tANI_U8 StartScanReason;
6019 tANI_U16 NeighborScanTimerPeriod;
6020 tANI_U16 NeighborRoamScanRefreshPeriod;
6021 tANI_U16 NeighborScanChannelMinTime;
6022 tANI_U16 NeighborScanChannelMaxTime;
6023 tANI_U16 EmptyRefreshScanPeriod;
6024 tANI_U8 ValidChannelCount;
6025 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006026 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006027
6028 tANI_U16 us24GProbeSize;
6029 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6030 tANI_U16 us5GProbeSize;
6031 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6032 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006033 tANI_U8 nProbes;
6034 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006035 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006036 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006037 tANI_U8 RoamOffloadEnabled;
6038 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6039 tANI_U8 Prefer5GHz;
6040 tANI_U8 RoamRssiCatGap;
6041 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006042 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6043 tRoamNetworkType ConnectedNetwork;
6044 tMobilityDomainInfo MDID;
6045} tRoamCandidateListParams, * tpRoamCandidateListParams;
6046
6047typedef PACKED_PRE struct PACKED_POST
6048{
Kumar Anandea78e792013-10-10 23:47:01 -07006049 tHalMsgHeader header;
6050 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006051} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6052
6053typedef PACKED_PRE struct PACKED_POST
6054{
Kumar Anandea78e792013-10-10 23:47:01 -07006055 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006056
Kumar Anandea78e792013-10-10 23:47:01 -07006057 /* status of the request - just to indicate that PNO has acknowledged
6058 * the request and will start scanning */
6059 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006060} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6061#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006062
6063/*
6064 Preferred network list response
6065*/
6066typedef PACKED_PRE struct PACKED_POST
6067{
6068 tHalMsgHeader header;
6069
6070 /* status of the request - just to indicate that PNO has acknowledged
6071 * the request and will start scanning*/
6072 tANI_U32 status;
6073} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6074
6075/*
6076 Preferred network indication parameters
6077*/
6078typedef PACKED_PRE struct PACKED_POST {
6079
6080 /*Network that was found with the highest RSSI*/
6081 tSirMacSSid ssId;
6082
6083 /*Indicates the RSSI */
6084 tANI_U8 rssi;
6085
6086 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6087 tANI_U16 frameLength;
6088
6089} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6090
6091/*
6092 Preferred network found indication
6093*/
6094typedef PACKED_PRE struct PACKED_POST {
6095
6096 tHalMsgHeader header;
6097 tPrefNetwFoundParams prefNetwFoundParams;
6098} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6099
6100
6101typedef PACKED_PRE struct PACKED_POST {
6102
6103 /*RSSI Threshold*/
6104 tANI_U8 ucRssiThreshold;
6105
6106} tRssiFilterParams, * tpRssiFilterParams;
6107
Jeff Johnson295189b2012-06-20 16:38:30 -07006108/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306109 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006110*/
6111typedef PACKED_PRE struct PACKED_POST
6112{
6113 tHalMsgHeader header;
6114 tRssiFilterParams prefRSSIFilterParams;
6115} tSetRssiFilterReq, *tpSetRssiFilterReq;
6116
6117/*
6118 Set RSSI filter resp
6119*/
6120typedef PACKED_PRE struct PACKED_POST{
6121 tHalMsgHeader header;
6122 /*status of the request */
6123 tANI_U32 status;
6124} tSetRssiFilterResp, *tpSetRssiFilterResp;
6125/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306126 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006127*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306128typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006129{
6130
6131 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306132 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006133
6134 /*Lets PNO know that host has determined the regulatory domain*/
6135 tANI_U8 b11dResolved;
6136
6137 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306138 tANI_U8 ucChannelCount;
6139 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006140
6141 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306142 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006143
6144 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306145 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006146
6147 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306148 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006149
6150 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306151 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006152
6153 /*Cb State*/
6154 ePhyChanBondState cbState;
6155
6156} tUpdateScanParams, * tpUpdateScanParams;
6157
6158/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306159 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306160*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306161typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306162{
6163
6164 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306165 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306166
6167 /*Lets PNO know that host has determined the regulatory domain*/
6168 tANI_U8 b11dResolved;
6169
6170 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306171 tANI_U8 ucChannelCount;
6172 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306173
6174 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306175 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306176
6177 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306178 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306179
6180 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306181 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306182
6183 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306184 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306185
6186 /*Cb State*/
6187 ePhyChanBondState cbState;
6188
6189} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6190
6191/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006192 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306193 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006194*/
6195typedef PACKED_PRE struct PACKED_POST{
6196
6197 tHalMsgHeader header;
6198 tUpdateScanParams scanParams;
6199} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6200
6201/*
6202 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306203 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006204*/
6205typedef PACKED_PRE struct PACKED_POST{
6206
6207 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306208 tUpdateScanParamsEx scanParams;
6209} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6210
6211/*
6212 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306213 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306214*/
6215typedef PACKED_PRE struct PACKED_POST{
6216
6217 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006218
6219 /*status of the request */
6220 tANI_U32 status;
6221
6222} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6223
6224/*---------------------------------------------------------------------------
6225 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6226 *--------------------------------------------------------------------------*/
6227typedef PACKED_PRE struct PACKED_POST
6228{
6229 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6230 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6231 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6232 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6233} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6234
6235typedef PACKED_PRE struct PACKED_POST
6236{
6237 tHalMsgHeader header;
6238 tHalTxPerTrackingReqParam txPerTrackingParams;
6239} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6240
6241/*---------------------------------------------------------------------------
6242 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6243 *--------------------------------------------------------------------------*/
6244typedef PACKED_PRE struct PACKED_POST
6245{
6246 /* success or failure */
6247 tANI_U32 status;
6248} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6249
6250typedef PACKED_PRE struct PACKED_POST
6251{
6252 tHalMsgHeader header;
6253 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6254} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6255
6256/*---------------------------------------------------------------------------
6257 * WLAN_HAL_TX_PER_HIT_IND
6258 *--------------------------------------------------------------------------*/
6259typedef PACKED_PRE struct PACKED_POST
6260{
6261 tHalMsgHeader header;
6262}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6263
6264/*---------------------------------------------------------------------------
6265 *******************Packet Filtering Definitions Begin*******************
6266 *--------------------------------------------------------------------------*/
6267#define HAL_PROTOCOL_DATA_LEN 8
6268#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6269#define HAL_MAX_NUM_FILTERS 20
6270#define HAL_MAX_CMP_PER_FILTER 10
6271
6272typedef enum
6273{
6274 HAL_RCV_FILTER_TYPE_INVALID,
6275 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6276 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6277 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6278}tHalReceivePacketFilterType;
6279
Dino Mycle8afbac12014-07-04 22:06:17 +05306280typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006281{
6282 HAL_FILTER_PROTO_TYPE_INVALID,
6283 HAL_FILTER_PROTO_TYPE_MAC,
6284 HAL_FILTER_PROTO_TYPE_ARP,
6285 HAL_FILTER_PROTO_TYPE_IPV4,
6286 HAL_FILTER_PROTO_TYPE_IPV6,
6287 HAL_FILTER_PROTO_TYPE_UDP,
6288 HAL_FILTER_PROTO_TYPE_MAX
6289}tHalRcvPktFltProtocolType;
6290
Dino Mycle8afbac12014-07-04 22:06:17 +05306291typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006292{
6293 HAL_FILTER_CMP_TYPE_INVALID,
6294 HAL_FILTER_CMP_TYPE_EQUAL,
6295 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6296 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6297 HAL_FILTER_CMP_TYPE_MAX
6298}tHalRcvPktFltCmpFlagType;
6299
Dino Mycle8afbac12014-07-04 22:06:17 +05306300typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006301{
6302 tANI_U8 protocolLayer;
6303 tANI_U8 cmpFlag;
6304 tANI_U16 dataLength; /* Length of the data to compare */
6305 tANI_U8 dataOffset; /* from start of the respective frame header */
6306 tANI_U8 reserved; /* Reserved field */
6307 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6308 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6309}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6310
6311typedef PACKED_PRE struct PACKED_POST
6312{
6313 tANI_U8 filterId;
6314 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306315 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006316 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006317 tHalRcvPktFilterParams paramsData[1];
6318}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6319
6320typedef PACKED_PRE struct PACKED_POST
6321{
Jeff Johnsone7245742012-09-05 17:12:55 -07006322 tANI_U8 filterId;
6323 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306324 tANI_U8 numParams;
6325 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006326 tANI_U8 bssIdx;
6327 tHalRcvPktFilterParams paramsData[1];
6328}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6329
6330typedef PACKED_PRE struct PACKED_POST
6331{
Jeff Johnson295189b2012-06-20 16:38:30 -07006332 tHalMsgHeader header;
6333 tHalRcvPktFilterCfgType pktFilterCfg;
6334} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6335
Jeff Johnsone7245742012-09-05 17:12:55 -07006336typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006337{
6338 tANI_U8 dataOffset; /* from start of the respective frame header */
6339 tANI_U32 cMulticastAddr;
6340 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006341 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006342} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6343
6344typedef PACKED_PRE struct PACKED_POST
6345{
6346 /* success or failure */
6347 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006348 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006349} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6350
6351typedef PACKED_PRE struct PACKED_POST
6352{
6353 tHalMsgHeader header;
6354 tHalSetPktFilterRspParams pktFilterRspParams;
6355} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6356
Jeff Johnsone7245742012-09-05 17:12:55 -07006357typedef PACKED_PRE struct PACKED_POST
6358{
6359 tANI_U8 bssIdx;
6360} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006361
6362typedef PACKED_PRE struct PACKED_POST
6363{
6364 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006365 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006366} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6367
Jeff Johnsone7245742012-09-05 17:12:55 -07006368
Jeff Johnson295189b2012-06-20 16:38:30 -07006369typedef PACKED_PRE struct PACKED_POST
6370{
6371 tANI_U8 filterId;
6372 tANI_U32 matchCnt;
6373} tHalRcvFltPktMatchCnt;
6374typedef PACKED_PRE struct PACKED_POST
6375{
6376 /* Success or Failure */
6377 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306378 tANI_U32 matchCnt;
6379 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006380 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006381} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6382
6383typedef PACKED_PRE struct PACKED_POST
6384{
6385 tHalMsgHeader header;
6386 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6387} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6388
6389typedef PACKED_PRE struct PACKED_POST
6390{
6391 tANI_U32 status; /* only valid for response message */
6392 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006393 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006394}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6395
6396typedef PACKED_PRE struct PACKED_POST
6397{
6398 tHalMsgHeader header;
6399 tHalRcvFltPktClearParam filterClearParam;
6400} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6401
6402typedef PACKED_PRE struct PACKED_POST
6403{
6404 tHalMsgHeader header;
6405 tHalRcvFltPktClearParam filterClearParam;
6406} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6407
6408typedef PACKED_PRE struct PACKED_POST
6409{
Dino Mycle8afbac12014-07-04 22:06:17 +05306410 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006411 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006412}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6413
6414typedef PACKED_PRE struct PACKED_POST
6415{
6416 tHalMsgHeader header;
6417 tHalRcvFltMcAddrListType mcAddrList;
6418} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6419
6420typedef PACKED_PRE struct PACKED_POST
6421{
6422 tHalMsgHeader header;
6423 tHalRcvFltPktSetMcListRspType rspParam;
6424} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6425
6426
6427/*---------------------------------------------------------------------------
6428 *******************Packet Filtering Definitions End*******************
6429 *--------------------------------------------------------------------------*/
6430
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006431/*
6432 * There are two versions of this message
6433 * Version 1 : Base version
6434 * Current version : Base version + Max LI modulated DTIM
6435 */
6436typedef PACKED_PRE struct PACKED_POST
6437{
6438 /* Ignore DTIM */
6439 tANI_U32 uIgnoreDTIM;
6440
6441 /*DTIM Period*/
6442 tANI_U32 uDTIMPeriod;
6443
6444 /* Listen Interval */
6445 tANI_U32 uListenInterval;
6446
6447 /* Broadcast Multicast Filter */
6448 tANI_U32 uBcastMcastFilter;
6449
6450 /* Beacon Early Termination */
6451 tANI_U32 uEnableBET;
6452
6453 /* Beacon Early Termination Interval */
6454 tANI_U32 uBETInterval;
6455}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6456
6457typedef PACKED_PRE struct PACKED_POST
6458{
6459 tHalMsgHeader header;
6460 tSetPowerParamsVer1Type powerParams;
6461} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6462
Jeff Johnson295189b2012-06-20 16:38:30 -07006463typedef PACKED_PRE struct PACKED_POST
6464{
6465 /* Ignore DTIM */
6466 tANI_U32 uIgnoreDTIM;
6467
6468 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306469 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006470
6471 /* Listen Interval */
6472 tANI_U32 uListenInterval;
6473
6474 /* Broadcast Multicast Filter */
6475 tANI_U32 uBcastMcastFilter;
6476
6477 /* Beacon Early Termination */
6478 tANI_U32 uEnableBET;
6479
6480 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306481 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006482
6483 /* MAX LI for modulated DTIM */
6484 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006485}tSetPowerParamsType, *tpSetPowerParamsType;
6486
6487typedef PACKED_PRE struct PACKED_POST
6488{
6489 tHalMsgHeader header;
6490 tSetPowerParamsType powerParams;
6491} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6492
6493typedef PACKED_PRE struct PACKED_POST{
6494
6495 tHalMsgHeader header;
6496
6497 /*status of the request */
6498 tANI_U32 status;
6499
6500} tSetPowerParamsResp, *tpSetPowerParamsResp;
6501
6502/*---------------------------------------------------------------------------
6503 ****************Capability bitmap exchange definitions and macros starts*************
6504 *--------------------------------------------------------------------------*/
6505
Anand Kumar012623a2013-01-11 17:00:00 -08006506typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006507 MCC = 0,
6508 P2P = 1,
6509 DOT11AC = 2,
6510 SLM_SESSIONIZATION = 3,
6511 DOT11AC_OPMODE = 4,
6512 SAP32STA = 5,
6513 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006514 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006515 WLANACTIVE_OFFLOAD = 8,
6516 BEACON_OFFLOAD = 9,
6517 SCAN_OFFLOAD = 10,
6518 ROAM_OFFLOAD = 11,
6519 BCN_MISS_OFFLOAD = 12,
6520 STA_POWERSAVE = 13,
6521 STA_ADVANCED_PWRSAVE = 14,
6522 AP_UAPSD = 15,
6523 AP_DFS = 16,
6524 BLOCKACK = 17,
6525 PHY_ERR = 18,
6526 BCN_FILTER = 19,
6527 RTT = 20,
6528 RATECTRL = 21,
6529 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006530 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006531 SPECULATIVE_PS_POLL = 24,
6532 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006533 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006534 WLAN_SCAN_OFFLOAD = 27,
6535 WLAN_PERIODIC_TX_PTRN = 28,
6536 ADVANCE_TDLS = 29,
6537 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306538 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306539 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306540 CH_SWITCH_V1 = 33,
6541 HT40_OBSS_SCAN = 34,
6542 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006543 WLAN_MCADDR_FLT = 36,
6544 WLAN_CH144 = 37,
6545 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306546 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306547 LINK_LAYER_STATS_MEAS = 40,
6548 MU_MIMO = 41,
6549 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306550 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306551 MAC_SPOOFED_SCAN = 44,
Kumar Anandea78e792013-10-10 23:47:01 -07006552 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006553} placeHolderInCapBitmap;
6554
Jeff Johnson295189b2012-06-20 16:38:30 -07006555typedef PACKED_PRE struct PACKED_POST{
6556
6557 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006558} tWlanFeatCaps, *tpWlanFeatCaps;
6559
6560typedef PACKED_PRE struct PACKED_POST{
6561
Dino Mycle8afbac12014-07-04 22:06:17 +05306562 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006563 tWlanFeatCaps wlanFeatCaps;
6564
6565} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6566
Jeff Johnsone7245742012-09-05 17:12:55 -07006567#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6568#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006569#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006570#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006571#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006572#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006573#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006574#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306575#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306576#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306577#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006578
Jeff Johnsone7245742012-09-05 17:12:55 -07006579tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6580
Jeff Johnson295189b2012-06-20 16:38:30 -07006581#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006582 if ((b)<=127) { \
6583 arr_index = (b)/32; \
6584 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006585 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006586 (a)->featCaps[arr_index] |= (1<<bit_index); \
6587 } \
6588 }
6589#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006590 if ((b)<=127) { \
6591 arr_index = (b)/32; \
6592 bit_index = (b)%32; \
6593 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006594 } \
6595 }
6596#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006597 if ((b)<=127) { \
6598 arr_index = (b)/32; \
6599 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006600 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006601 } \
6602 }
6603
6604/*---------------------------------------------------------------------------
6605 * WLAN_HAL_WAKE_REASON_IND
6606 *--------------------------------------------------------------------------*/
6607
6608/* status codes to help debug rekey failures */
6609typedef enum
6610{
6611 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6612 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6613 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6614 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6615 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6616 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6617 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6618 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6619 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6620 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6621
6622 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6623} tGTKRekeyStatus;
6624
6625/* wake reason types */
6626typedef enum
6627{
6628 WLAN_HAL_WAKE_REASON_NONE = 0,
6629 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6630 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6631 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6632 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6633 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6634 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6635 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6636} tWakeReasonType;
6637
6638/*
6639 Wake Packet which is saved at tWakeReasonParams.DataStart
6640 This data is sent for any wake reasons that involve a packet-based wakeup :
6641
6642 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6643 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6644 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6645 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6646 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6647
6648 The information is provided to the host for auditing and debug purposes
6649
6650*/
6651
6652/*
6653 Wake reason indication parameters
6654*/
6655typedef PACKED_PRE struct PACKED_POST
6656{
6657 uint32 ulReason; /* see tWakeReasonType */
6658 uint32 ulReasonArg; /* argument specific to the reason type */
6659 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6660 HAL truncates the data (i.e. data packets) this length
6661 will be less than the actual length */
6662 uint32 ulActualDataLen; /* actual length of data */
6663 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6664 see specific wake type */
6665} tWakeReasonParams, *tpWakeReasonParams;
6666
6667/*
6668 Wake reason indication
6669*/
6670typedef PACKED_PRE struct PACKED_POST
6671{
6672 tHalMsgHeader header;
6673 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006674 tANI_U32 uBssIdx : 8;
6675 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006676} tHalWakeReasonInd, *tpHalWakeReasonInd;
6677
6678/*---------------------------------------------------------------------------
6679* WLAN_HAL_GTK_OFFLOAD_REQ
6680*--------------------------------------------------------------------------*/
6681
6682#define HAL_GTK_KEK_BYTES 16
6683#define HAL_GTK_KCK_BYTES 16
6684
6685#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6686
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006687#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6688
Jeff Johnson295189b2012-06-20 16:38:30 -07006689typedef PACKED_PRE struct PACKED_POST
6690{
6691 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306692 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006693 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6694 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006695 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006696} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6697
6698typedef PACKED_PRE struct PACKED_POST
6699{
6700 tHalMsgHeader header;
6701 tHalGtkOffloadReqParams gtkOffloadReqParams;
6702} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6703
6704/*---------------------------------------------------------------------------
6705* WLAN_HAL_GTK_OFFLOAD_RSP
6706*--------------------------------------------------------------------------*/
6707typedef PACKED_PRE struct PACKED_POST
6708{
6709 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006710 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006711} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6712
6713typedef PACKED_PRE struct PACKED_POST
6714{
6715 tHalMsgHeader header;
6716 tHalGtkOffloadRspParams gtkOffloadRspParams;
6717} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6718
6719
6720/*---------------------------------------------------------------------------
6721* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6722*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006723typedef PACKED_PRE struct PACKED_POST
6724{
6725 tANI_U8 bssIdx;
6726
6727} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006728
6729typedef PACKED_PRE struct PACKED_POST
6730{
6731 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006732 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006733} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6734
6735/*---------------------------------------------------------------------------
6736* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6737*--------------------------------------------------------------------------*/
6738typedef PACKED_PRE struct PACKED_POST
6739{
6740 tANI_U32 ulStatus; /* success or failure */
6741 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6742 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6743 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6744 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6745 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006746 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006747} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6748
6749typedef PACKED_PRE struct PACKED_POST
6750{
6751 tHalMsgHeader header;
6752 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6753} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6754
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006755/*---------------------------------------------------------------------------
6756* WLAN_HAL_DHCP_IND
6757*--------------------------------------------------------------------------*/
6758typedef PACKED_PRE struct PACKED_POST
6759{
6760 /*Indicates the device mode which indicates about the DHCP activity */
6761 tANI_U8 device_mode;
6762 tSirMacAddr macAddr;
6763} tDHCPInfo, *tpDHCPInfo;
6764
6765typedef PACKED_PRE struct PACKED_POST
6766{
6767 tHalMsgHeader header;
6768 tANI_U32 status; /* success or failure */
6769} tDHCPIndStatus, *tpDHCPIndstatus;
6770
Jeff Johnson295189b2012-06-20 16:38:30 -07006771/*
6772 Thermal Mitigation mode of operation.
6773 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6774 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6775 reducing transmit power
6776 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6777*/
6778typedef enum
6779{
6780 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6781 HAL_THERMAL_MITIGATION_MODE_0,
6782 HAL_THERMAL_MITIGATION_MODE_1,
6783 HAL_THERMAL_MITIGATION_MODE_2,
6784 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6785}tHalThermalMitigationModeType;
6786//typedef tANI_S16 tHalThermalMitigationModeType;
6787
6788/*
6789 Thermal Mitigation level.
6790 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6791 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6792
6793 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6794 level indicates normal mode of operation
6795 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6796 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6797 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6798 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6799*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306800typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006801{
6802 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6803 HAL_THERMAL_MITIGATION_LEVEL_0,
6804 HAL_THERMAL_MITIGATION_LEVEL_1,
6805 HAL_THERMAL_MITIGATION_LEVEL_2,
6806 HAL_THERMAL_MITIGATION_LEVEL_3,
6807 HAL_THERMAL_MITIGATION_LEVEL_4,
6808 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6809}tHalThermalMitigationLevelType;
6810//typedef tANI_S16 tHalThermalMitigationLevelType;
6811
6812typedef PACKED_PRE struct PACKED_POST
6813{
6814 /* Thermal Mitigation Operation Mode */
6815 tHalThermalMitigationModeType thermalMitMode;
6816
6817 /* Thermal Mitigation Level */
6818 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05306819
Jeff Johnson295189b2012-06-20 16:38:30 -07006820}tSetThermalMitgationType, *tpSetThermalMitgationType;
6821
6822/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6823typedef PACKED_PRE struct PACKED_POST
6824{
6825 tHalMsgHeader header;
6826 tSetThermalMitgationType thermalMitParams;
6827} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6828
6829typedef PACKED_PRE struct PACKED_POST{
6830
6831 tHalMsgHeader header;
6832
6833 /*status of the request */
6834 tANI_U32 status;
6835
6836} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6837
Dino Mycle8afbac12014-07-04 22:06:17 +05306838/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006839provided to FW from Host via periodic messages */
6840typedef PACKED_PRE struct PACKED_POST {
6841 /* TX stats */
6842 uint32 txBytesPushed;
6843 uint32 txPacketsPushed;
6844
6845 /* RX stats */
6846 uint32 rxBytesRcvd;
6847 uint32 rxPacketsRcvd;
6848 uint32 rxTimeTotal;
6849} tStaStatsClassB, *tpStaStatsClassB;
6850
6851typedef PACKED_PRE struct PACKED_POST {
6852
6853 /* Duration over which this stats was collected */
6854 tANI_U32 duration;
6855
6856 /* Per STA Stats */
6857 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6858} tStatsClassBIndParams, *tpStatsClassBIndParams;
6859
6860typedef PACKED_PRE struct PACKED_POST {
6861
6862 tHalMsgHeader header;
6863
6864 /* Class B Stats */
6865 tStatsClassBIndParams statsClassBIndParams;
6866} tStatsClassBInd, *tpStatsClassBInd;
6867
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306868/*Wifi Proximity paramters in AP mode*/
6869#ifdef FEATURE_WIFI_PROXIMITY
6870
6871typedef PACKED_PRE struct PACKED_POST{
6872
6873 tANI_U8 wifiProximityChannel;
6874 tANI_U32 wifiProximityDuration;
6875 tANI_U32 wifiProximityInterval;
6876 tANI_U32 wifiProximityMode;
6877 tANI_U32 wifiProximityStatus;
6878 tSirMacAddr bssId;
6879 tSirMacSSid ssId;
6880
6881} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6882
6883typedef PACKED_PRE struct PACKED_POST
6884{
6885 tHalMsgHeader header;
6886
6887 tSetWifiProximityReqParam wifiProximityReqParams;
6888
6889}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6890
6891/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6892typedef PACKED_PRE struct PACKED_POST{
6893
6894 tHalMsgHeader header;
6895
6896 /*status of the request */
6897 tANI_U32 status;
6898
6899} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6900
6901#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006902
6903#ifdef FEATURE_SPECULATIVE_PS_POLL
6904/*---------------------------------------------------------------------------
6905 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6906 *--------------------------------------------------------------------------*/
6907typedef PACKED_PRE struct PACKED_POST
6908{
6909 tANI_U8 bssIdx;
6910 tANI_U16 serviceInterval;
6911 tANI_U16 suspendInterval;
6912 tANI_U8 acMask;
6913} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6914
6915typedef PACKED_PRE struct PACKED_POST
6916{
6917 tHalMsgHeader header;
6918 tHalStartSpecPsPollReqParams specPsPollReq;
6919} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6920
6921/*---------------------------------------------------------------------------
6922 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6923 *--------------------------------------------------------------------------*/
6924typedef PACKED_PRE struct PACKED_POST
6925{
6926 /* success or failure */
6927 tANI_U32 status;
6928 tANI_U8 bssIdx;
6929} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6930
6931typedef PACKED_PRE struct PACKED_POST
6932{
6933 tHalMsgHeader header;
6934 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6935} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6936
6937/*---------------------------------------------------------------------------
6938 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6939 *--------------------------------------------------------------------------*/
6940typedef PACKED_PRE struct PACKED_POST
6941{
6942 tHalMsgHeader header;
6943 tANI_U8 bssIdx;
6944} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6945#endif
6946
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306947#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306948#define HAL_MAX_SUPP_CHANNELS 128
6949#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306950/*---------------------------------------------------------------------------
6951 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6952 *-------------------------------------------------------------------------*/
6953typedef PACKED_PRE struct PACKED_POST
6954{
6955 /*STA Index*/
6956 tANI_U16 staIdx;
6957
6958 /* if this is 1, self is initiator and peer is reponder */
6959 tANI_U8 bIsResponder;
6960
6961 /* QoS Info */
6962 tANI_U8 acVOUAPSDFlag:1;
6963 tANI_U8 acVIUAPSDFlag:1;
6964 tANI_U8 acBKUAPSDFlag:1;
6965 tANI_U8 acBEUAPSDFlag:1;
6966 tANI_U8 aAck:1;
6967 tANI_U8 maxServicePeriodLength:2;
6968 tANI_U8 moreDataAck:1;
6969
6970 /*TDLS Peer U-APSD Buffer STA Support*/
6971 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07006972
6973 /*TDLS off channel related params */
6974 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306975 tANI_U8 peerCurrOperClass;
6976 tANI_U8 selfCurrOperClass;
6977 tANI_U8 validChannelsLen;
6978 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
6979 tANI_U8 validOperClassesLen;
6980 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306981}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6982
6983typedef PACKED_PRE struct PACKED_POST
6984{
6985 tHalMsgHeader header;
6986 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6987} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6988
6989/*---------------------------------------------------------------------------
6990 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6991 *-------------------------------------------------------------------------*/
6992
6993typedef PACKED_PRE struct PACKED_POST
6994{
6995 tANI_U32 status;
6996
6997 /*STA Index*/
6998 tANI_U16 staIdx;
6999} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7000
7001typedef PACKED_PRE struct PACKED_POST
7002{
7003 tHalMsgHeader header;
7004 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7005} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307006/*---------------------------------------------------------------------------
7007 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7008 + *-------------------------------------------------------------------------*/
7009typedef PACKED_PRE struct PACKED_POST
7010{
7011 /*STA Index*/
7012 tANI_U16 staIdx;
7013 /* if this is 1, self is initiator otherwise responder only*/
7014 tANI_U8 isOffchannelInitiator;
7015 /*TDLS off channel related params */
7016 tANI_U8 targetOperClass;
7017 tANI_U8 targetChannel;
7018 tANI_U8 secondaryChannelOffset;
7019 tANI_U8 reserved[32];
7020}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7021
7022typedef PACKED_PRE struct PACKED_POST
7023{
7024 tHalMsgHeader header;
7025 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7026} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7027/*---------------------------------------------------------------------------
7028 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7029 *-------------------------------------------------------------------------*/
7030
7031typedef PACKED_PRE struct PACKED_POST
7032{
7033 tANI_U32 status;
7034 /*STA Index*/
7035 tANI_U16 staIdx;
7036} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7037
7038typedef PACKED_PRE struct PACKED_POST
7039{
7040 tHalMsgHeader header;
7041 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7042} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7043
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307044
7045/*---------------------------------------------------------------------------
7046 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7047 *-------------------------------------------------------------------------*/
7048typedef PACKED_PRE struct PACKED_POST
7049{
7050 /*STA Index*/
7051 tANI_U16 staIdx;
7052}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7053
7054typedef PACKED_PRE struct PACKED_POST
7055{
7056 tHalMsgHeader header;
7057 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7058} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7059
7060/*---------------------------------------------------------------------------
7061 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7062 *-------------------------------------------------------------------------*/
7063
7064typedef PACKED_PRE struct PACKED_POST
7065{
7066 tANI_U32 status;
7067
7068 /*STA Index*/
7069 tANI_U16 staIdx;
7070} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7071
7072typedef PACKED_PRE struct PACKED_POST
7073{
7074 tHalMsgHeader header;
7075 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7076} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7077
7078/*---------------------------------------------------------------------------
7079 *WLAN_HAL_TDLS_IND
7080 *--------------------------------------------------------------------------*/
7081
7082typedef PACKED_PRE struct PACKED_POST
7083{
7084 tANI_U16 assocId;
7085 tANI_U16 staIdx;
7086 tANI_U16 status;
7087 tANI_U16 reasonCode;
7088}tTdlsIndParams, *tpTdlsIndParams;
7089
7090
7091typedef PACKED_PRE struct PACKED_POST
7092{
7093 tHalMsgHeader header;
7094 tTdlsIndParams tdlsIndParams;
7095}tTdlsIndMsg, *tpTdlsIndMsg;
7096
7097#endif
7098
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007099/*---------------------------------------------------------------------------
7100 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7101 *--------------------------------------------------------------------------*/
7102
7103typedef PACKED_PRE struct PACKED_POST
7104{
7105 tANI_U8 bssIdx;
7106 tANI_U8 staIdx;
7107 tSirMacAddr staAddr;
7108}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7109
7110
7111typedef PACKED_PRE struct PACKED_POST
7112{
7113 tHalMsgHeader header;
7114 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7115}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7116
7117
Kumar Anandea78e792013-10-10 23:47:01 -07007118/*********** Scan Offload Related Structures *************/
7119#define HAL_NUM_SCAN_SSID 10
7120#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007121
Kumar Anandea78e792013-10-10 23:47:01 -07007122/*
7123 * Enumetation to indicate scan type (active/passive)
7124 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007125typedef enum
7126{
Kumar Anandea78e792013-10-10 23:47:01 -07007127 eSIR_PASSIVE_SCAN,
7128 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7129} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007130
7131typedef PACKED_PRE struct PACKED_POST
7132{
Kumar Anandea78e792013-10-10 23:47:01 -07007133 tANI_U8 numBssid;
7134 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7135 tANI_U8 numSsid;
7136 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7137 tANI_BOOLEAN hiddenSsid;
7138 tSirMacAddr selfMacAddr;
7139 tSirBssType bssType;
7140 tSirScanType scanType;
7141 tANI_U32 minChannelTime;
7142 tANI_U32 maxChannelTime;
7143 tANI_BOOLEAN p2pSearch;
7144 tANI_U8 channelCount;
7145 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7146 tANI_U16 ieFieldLen;
7147 tANI_U8 ieField[1];
7148}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007149
7150/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007151 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007152 *-------------------------------------------------------------------------*/
7153typedef PACKED_PRE struct PACKED_POST
7154{
Kumar Anandf53016f2013-09-04 15:15:53 -07007155 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007156 tScanOffloadReqType scanOffloadParams;
7157} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007158
7159/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007160 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007161 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007162typedef PACKED_PRE struct PACKED_POST
7163{
7164 tHalMsgHeader header;
7165
7166 /*status of the request - just to indicate SO has acknowledged
7167 * * the request and will start scanning*/
7168 tANI_U32 status;
7169} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7170
7171/*---------------------------------------------------------------------------
7172 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7173 *-------------------------------------------------------------------------*/
7174typedef PACKED_PRE struct PACKED_POST
7175{
7176 tHalMsgHeader header;
7177} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7178
7179/*---------------------------------------------------------------------------
7180 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7181 *-------------------------------------------------------------------------*/
7182typedef PACKED_PRE struct PACKED_POST
7183{
7184 tHalMsgHeader header;
7185
7186 /*status of the request - just to indicate SO has acknowledged
7187 the request and will start scanning*/
7188 tANI_U32 status;
7189} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7190
7191/*
7192 * Enumetation of scan events indicated by firmware to the host
7193 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007194typedef enum
7195{
Kumar Anandea78e792013-10-10 23:47:01 -07007196 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7197 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7198 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7199 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7200 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7201 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7202 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7203 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7204 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7205} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007206
7207typedef PACKED_PRE struct PACKED_POST
7208{
Kumar Anandea78e792013-10-10 23:47:01 -07007209 tScanEventType event;
7210 tANI_U32 channel;
7211 tANI_U32 scanId;
7212} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007213
Kumar Anandea78e792013-10-10 23:47:01 -07007214/*---------------------------------------------------------------------------
7215 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7216 *-------------------------------------------------------------------------*/
7217typedef PACKED_PRE struct PACKED_POST
7218{
7219 tHalMsgHeader header;
7220 tScanOffloadEventInfo scanOffloadInd;
7221} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007222
Kumar Anandea78e792013-10-10 23:47:01 -07007223typedef PACKED_PRE struct PACKED_POST {
7224 /** primary 20 MHz channel frequency in mhz */
7225 tANI_U32 mhz;
7226 /** Center frequency 1 in MHz*/
7227 tANI_U32 band_center_freq1;
7228 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7229 tANI_U32 band_center_freq2;
7230 /* The first 26 bits are a bit mask to indicate any channel flags,
7231 (see WLAN_HAL_CHAN_FLAG*)
7232 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7233 tANI_U32 channel_info;
7234 /** contains min power, max power, reg power and reg class id. */
7235 tANI_U32 reg_info_1;
7236 /** contains antennamax */
7237 tANI_U32 reg_info_2;
7238} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007239
Kumar Anandf53016f2013-09-04 15:15:53 -07007240
Kumar Anandea78e792013-10-10 23:47:01 -07007241typedef enum {
7242 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7243 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7244 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7245 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7246 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7247 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7248 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7249 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7250 WLAN_HAL_MODE_11AC_VHT20 = 8,
7251 WLAN_HAL_MODE_11AC_VHT40 = 9,
7252 WLAN_HAL_MODE_11AC_VHT80 = 10,
7253 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7254 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7255 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7256 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007257
Kumar Anandea78e792013-10-10 23:47:01 -07007258} tChannelPhyModeType;
7259
7260#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7261#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7262#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7263#define WLAN_HAL_CHAN_AP_DISABLED 9
7264#define WLAN_HAL_CHAN_FLAG_DFS 10
7265#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7266#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007267#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7268
7269#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007270 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007271 } while(0)
7272
7273#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007274 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007275
7276#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7277 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7278 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7279 } while(0)
7280#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7281
7282#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7283 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7284 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7285 } while(0)
7286#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7287
7288#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7289 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7290 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7291 } while(0)
7292#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7293#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7294 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7295 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7296 } while(0)
7297#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7298
7299#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7300 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7301 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7302 } while(0)
7303#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7304
7305#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7306 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7307 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7308 } while(0)
7309#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 -07007310
7311typedef PACKED_PRE struct PACKED_POST
7312{
7313 tANI_U8 numChan;
7314 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7315} tUpdateChannelReqType;
7316
7317/*---------------------------------------------------------------------------
7318 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7319 *-------------------------------------------------------------------------*/
7320typedef PACKED_PRE struct PACKED_POST
7321{
7322 tHalMsgHeader header;
7323 tUpdateChannelReqType updateChannelParams;
7324} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7325
7326/*---------------------------------------------------------------------------
7327 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7328 *-------------------------------------------------------------------------*/
7329typedef PACKED_PRE struct PACKED_POST
7330{
7331 tHalMsgHeader header;
7332
7333 /*status of the request - just to indicate SO has acknowledged
7334 * * the request and will start scanning*/
7335 tANI_U32 status;
7336} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7337
7338
7339/*---------------------------------------------------------------------------
7340* WLAN_HAL_TX_FAIL_IND
7341*--------------------------------------------------------------------------*/
7342// Northbound indication from FW to host on weak link detection
7343typedef PACKED_PRE struct PACKED_POST
7344{
7345 // Sequence number increases by 1 whenever the device driver
7346 // sends a notification event. This is cleared as 0 when the
7347 // JOIN IBSS commamd is issued
7348 tANI_U16 seqNo;
7349 tANI_U16 staId;
7350 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7351} tHalTXFailIndParams, *tpHalTXFailIndParams;
7352
7353typedef PACKED_PRE struct PACKED_POST
7354{
7355 tHalMsgHeader header;
7356 tHalTXFailIndParams txFailIndParams;
7357} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7358
7359/*---------------------------------------------------------------------------
7360* WLAN_HAL_TX_FAIL_MONITOR_IND
7361*--------------------------------------------------------------------------*/
7362// Southbound message from Host to monitor the Tx failures
7363typedef PACKED_PRE struct PACKED_POST
7364{
7365 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7366 tANI_U8 tx_fail_count;
7367} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7368
7369typedef PACKED_PRE struct PACKED_POST
7370{
7371 tHalMsgHeader header;
7372 tTXFailMonitorInfo txFailMonitor;
7373} tTXFailMonitorInd, *tpTXFailMonitorInd;
7374
7375/*---------------------------------------------------------------------------
7376* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7377*--------------------------------------------------------------------------*/
7378typedef PACKED_PRE struct PACKED_POST
7379{
7380 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7381 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7382} tDestIpNextHopMacPair;
7383
7384typedef PACKED_PRE struct PACKED_POST
7385{
7386 tANI_U8 numEntries;
7387 tDestIpNextHopMacPair destIpMacPair[1];
7388} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007389
7390typedef PACKED_PRE struct PACKED_POST
7391{
7392 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007393 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7394} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007395
Kumar Anandf53016f2013-09-04 15:15:53 -07007396/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007397 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7398 *-------------------------------------------------------------------------*/
7399typedef enum
7400{
7401 /* reassociation is done, but couldn't finish security handshake */
7402 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7403
7404 /* roam has successfully completed by firmware */
7405 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7406
7407 /* UNKONW error */
7408 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7409}tHalRoamOffloadRoamAuthStatus;
7410
7411typedef enum
7412{
7413 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7414 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7415 WLAN_HAL_ROAM_TYPE_OKC,
7416 WLAN_HAL_ROAM_TYPE_CCKM,
7417 WLAN_HAL_ROAM_TYPE_FT,
7418 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7419} tHalRoamOffloadType;
7420
7421typedef PACKED_PRE struct PACKED_POST
7422{
7423 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7424 tANI_U16 beaconProbeRespOffset;
7425
7426 /* Length of beaon / probe resp. */
7427 tANI_U16 beaconProbeRespLength;
7428
7429 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7430 tANI_U16 reassocRespOffset;
7431
7432 /* Length of reassoc resp. */
7433 tANI_U16 reassocRespLength;
7434
7435 /* 0 for probe response frame, 1 for beacon frame, */
7436 tANI_U8 isBeacon;
7437
7438 /* staIdx of old AP */
7439 tANI_U8 oldStaIdx;
7440
7441 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7442 tConfigBssRspParams */
7443 /* bssIdx of new roamed AP */
7444 tANI_U8 bssIdx;
7445
7446 /* DPU descriptor index for PTK */
7447 tANI_U8 dpuDescIndx;
7448
7449 /* PTK DPU signature */
7450 tANI_U8 ucastDpuSignature;
7451
7452 /* DPU descriptor index for GTK*/
7453 tANI_U8 bcastDpuDescIndx;
7454
7455 /* GTK DPU signature */
7456 tANI_U8 bcastDpuSignature;
7457
7458 /*DPU descriptor for IGTK*/
7459 tANI_U8 mgmtDpuDescIndx;
7460
7461 /* IGTK DPU signature */
7462 tANI_U8 mgmtDpuSignature;
7463
7464 /* Station Index for BSS entry*/
7465 tANI_U8 staIdx;
7466
7467 /* Self station index for this BSS */
7468 tANI_U8 selfStaIdx;
7469
7470 /* Bcast station for buffering bcast frames in AP role */
7471 tANI_U8 bcastStaIdx;
7472
7473 /* MAC address of roamed AP */
7474 tSirMacAddr bssid;
7475
7476 /*HAL fills in the tx power used for mgmt frames in this field. */
7477 tANI_S8 txMgmtPower;
7478
7479 /* success or failure */
7480 tHalRoamOffloadRoamAuthStatus authStatus;
7481
7482 /* TODO : add more info as needed */
7483
7484 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7485 /* Beacon or probe resp from new AP. This is in 802.11
7486 frame format starting with MAC header. */
7487 /* Up to beaconProbeRespLength */
7488
7489 /* reassocRespOffset points to starting of reassoc resp frame */
7490 /* Reassoc resp from new AP. This is in 802.11
7491 frame format starting with MAC header. */
7492 /* Up to reassocRespLength */
7493
7494} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7495
7496
7497typedef PACKED_PRE struct PACKED_POST
7498{
7499 tHalMsgHeader header;
7500 tHalRoamOffloadSynchIndParams params;
7501} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7502
7503/*---------------------------------------------------------------------------
7504 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7505 *-------------------------------------------------------------------------*/
7506typedef PACKED_PRE struct PACKED_POST
7507{
7508 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7509 tSirMacAddr bssid;
7510} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7511
7512typedef PACKED_PRE struct PACKED_POST
7513{
7514 tHalMsgHeader header;
7515 tHalRoamOffloadSynchCnfParams params;
7516} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7517
7518
7519/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007520 WLAN_HAL_RATE_UPDATE_IND
7521 *-------------------------------------------------------------------------*/
7522
7523typedef PACKED_PRE struct PACKED_POST
7524{
7525 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7526 tANI_S32 ucastDataRate; //unit Mbpsx10
7527
7528 /* TX flag to differentiate between HT20, HT40 etc */
7529 tTxRateInfoFlags ucastDataRateTxFlag;
7530
7531 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7532 tSirMacAddr bssid;
7533
7534 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7535 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7536
7537 /* TX flag to differentiate between HT20, HT40 etc */
7538 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7539
7540 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7541 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7542
7543 /* TX flag to differentiate between HT20, HT40 etc */
7544 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7545
7546 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7547 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7548
7549 /* TX flag to differentiate between HT20, HT40 etc */
7550 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7551
7552} tHalRateUpdateParams, *tpHalRateUpdateParams;
7553
7554typedef PACKED_PRE struct PACKED_POST
7555{
7556 tHalMsgHeader header;
7557 tHalRateUpdateParams halRateUpdateParams;
7558} tHalRateUpdateInd, * tpHalRateUpdateInd;
7559
7560/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307561 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7562 *-------------------------------------------------------------------------*/
7563
7564#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 4
7565
7566typedef PACKED_PRE struct PACKED_POST
7567{
7568 tANI_U32 startFreq;
7569 tANI_U32 endFreq;
7570} tHalFreqRange, *tpHalFreqRange;
7571
7572typedef PACKED_PRE struct PACKED_POST
7573{
7574 tANI_U32 avoidCnt;
7575 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7576} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7577
7578typedef PACKED_PRE struct PACKED_POST
7579{
7580 tHalMsgHeader header;
7581 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7582} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7583
7584/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307585 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007586 *-------------------------------------------------------------------------*/
7587
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307588typedef enum
7589{
7590 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7591 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7592 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7593}tHT40OBssScanCmdType;
7594
7595typedef PACKED_PRE struct PACKED_POST
7596{
7597 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007598
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307599 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007600 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7601 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7602 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7603 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7604 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7605 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7606 tANI_U16 OBSSScanActivityThreshold;
7607
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307608 tANI_U8 selfStaIdx;
7609 tANI_U8 bssIdx;
7610 tANI_U8 fortyMHZIntolerent;
7611 tANI_U8 channelCount;
7612 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7613 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007614
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307615 tANI_U16 ieFieldLen;
7616 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7617}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7618
7619typedef PACKED_PRE struct PACKED_POST
7620{
7621 tHalMsgHeader header;
7622 tHT40ObssScanIndType scanHT40ObssScanParams;
7623} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7624
7625/*---------------------------------------------------------------------------
7626 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7627 *-------------------------------------------------------------------------*/
7628typedef PACKED_PRE struct PACKED_POST
7629{
7630 tHalMsgHeader header;
7631 tANI_U8 bssIdx;
7632} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307633
7634/*---------------------------------------------------------------------------
7635 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7636 *-------------------------------------------------------------------------*/
7637
7638typedef PACKED_PRE struct PACKED_POST
7639{
7640 /* Valid BSS Idx for beacon miss rate */
7641 tANI_U8 bssIdx;
7642
7643}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7644
7645typedef PACKED_PRE struct PACKED_POST
7646{
7647 tHalMsgHeader header;
7648 tHalBcnMissRateReqParams bcnMissRateReqParams;
7649} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7650
7651/*---------------------------------------------------------------------------
7652 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7653 *-------------------------------------------------------------------------*/
7654
7655typedef PACKED_PRE struct PACKED_POST
7656{
7657 tANI_U32 status;
7658 tANI_U32 bcnMissCnt;
7659}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7660
7661typedef PACKED_PRE struct PACKED_POST
7662{
7663 tHalMsgHeader header;
7664 tHalBcnMissRateRspParams bcnMissRateRspParams;
7665}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7666
Sunil Dutt8377a382014-05-26 21:18:04 +05307667/*--------------------------------------------------------------------------
7668* WLAN_HAL_LL_SET_STATS_REQ
7669*---------------------------------------------------------------------------*/
7670
7671typedef PACKED_PRE struct PACKED_POST
7672{
7673 tANI_U32 req_id;
7674 tANI_U8 sta_id;
7675 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7676 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7677} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7678
7679typedef PACKED_PRE struct PACKED_POST
7680{
7681 tHalMsgHeader header;
7682 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7683} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7684
7685/*---------------------------------------------------------------------------
7686 WLAN_HAL_LL_SET_STATS_RSP
7687---------------------------------------------------------------------------*/
7688
7689typedef PACKED_PRE struct PACKED_POST
7690{
7691 tANI_U32 status;
7692 tANI_U32 resp_id;
7693 tANI_U8 iface_id;
7694} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7695
7696typedef PACKED_PRE struct PACKED_POST
7697{
7698 tHalMsgHeader header;
7699 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7700} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7701
7702/*---------------------------------------------------------------------------
7703 WLAN_HAL_LL_GET_STATS_REQ
7704---------------------------------------------------------------------------*/
7705
7706typedef PACKED_PRE struct PACKED_POST
7707{
7708 tANI_U32 req_id;
7709 tANI_U8 sta_id;
7710 tANI_U32 param_id_mask;
7711} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7712
7713typedef PACKED_PRE struct PACKED_POST
7714{
7715 tHalMsgHeader header;
7716 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7717} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7718
7719/*---------------------------------------------------------------------------
7720 WLAN_HAL_LL_GET_STATS_RSP
7721---------------------------------------------------------------------------*/
7722typedef PACKED_PRE struct PACKED_POST
7723{
7724 tANI_U32 status;
7725 tANI_U32 resp_id;
7726 tANI_U8 iface_id;
7727} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7728
7729typedef PACKED_PRE struct PACKED_POST
7730{
7731 tHalMsgHeader header;
7732 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7733} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7734
7735/*---------------------------------------------------------------------------
7736 WLAN_HAL_LL_CLEAR_STATS_REQ
7737---------------------------------------------------------------------------*/
7738typedef PACKED_PRE struct PACKED_POST
7739{
7740 tANI_U32 req_id;
7741 tANI_U8 sta_id;
7742 tANI_U32 stats_clear_req_mask;
7743 tANI_U8 stop_req;
7744} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
7745
7746typedef PACKED_PRE struct PACKED_POST
7747{
7748 tHalMsgHeader header;
7749 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
7750} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
7751
7752/*---------------------------------------------------------------------------
7753 WLAN_HAL_LL_CLEAR_STATS_RSP
7754---------------------------------------------------------------------------*/
7755typedef PACKED_PRE struct PACKED_POST
7756{
7757 tANI_U32 status;
7758 tANI_U8 sta_id;
7759 tANI_U32 resp_id;
7760 tANI_U32 stats_clear_rsp_mask;
7761 tANI_U8 stop_req_status;
7762} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
7763
7764typedef PACKED_PRE struct PACKED_POST
7765{
7766 tHalMsgHeader header;
7767 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
7768} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
7769
7770/*---------------------------------------------------------------------------
7771 WLAN_HAL_LL_NOTIFY_STATS
7772---------------------------------------------------------------------------*/
7773
7774typedef PACKED_PRE struct PACKED_POST
7775{
7776 tHalMsgHeader header;
7777 tANI_U32 param_id;
7778 tANI_U8 iface_id;
7779 tANI_U32 resp_id;
7780 tANI_U32 more_result_to_follow;
7781 tANI_U8 result[1];
7782} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007783
Dino Mycle108eff22014-06-10 09:36:44 +05307784/*---------------------------------------------------------------------------
7785 * WLAN_HAL_EXT_SCAN_START_REQ
7786 *-------------------------------------------------------------------------*/
7787
Dino Mycle8afbac12014-07-04 22:06:17 +05307788typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05307789{
7790 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
7791 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
7792 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
7793 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
7794 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
7795 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
7796 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05307797 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05307798} tExtScanChannelBandMask;
7799
7800typedef PACKED_PRE struct PACKED_POST
7801{
7802 tANI_U32 channel; // frequency
7803 tANI_U32 dwellTimeMs; // dwell time hint
7804 tANI_U8 passive; // 0 => active,
7805 // 1 => passive scan; ignored for DFS
7806}tExtScanChannelSpec, *tpExtScanChannelSpec;
7807
7808typedef PACKED_PRE struct PACKED_POST
7809 {
7810 /* bucket index, 0 based */
7811 tANI_U8 bucketId;
7812 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
7813 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05307814 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05307815 tANI_U32 period;
7816 /* 0 => normal reporting (reporting rssi history only,
7817 when rssi history buffer is % full)
7818 * 1 => same as 0 + report a scan completion event after scanning this bucket
7819 * 2 => same as 1 + forward scan results (beacons/probe responses + IEs) in
7820 real time to HAL (Required for L = P0)
7821 * 3 => same as 2 + forward scan results (beacons/probe responses + IEs) in
7822 real time to host (Not required for L = P3) */
7823 tANI_U8 reportEvents;
7824 /* number of channels */
7825 tANI_U8 numChannels;
7826 /* if channels to scan. In the TLV channelList[] */
7827 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
7828}tExtScanBucketData, *tpExtScanBucketData;
7829
7830typedef PACKED_PRE struct PACKED_POST
7831{
7832 tANI_U32 requestId;
7833 tANI_U8 sessionId;
7834 /* Base period (milliseconds) used by scan buckets to define periodicity
7835 of the scans */
7836 tANI_U32 basePeriod;
7837 /* number of APs to store in each scan in the BSSID/RSSI history buffer
7838 (keep the most significant, i.e. stronger RSSI) */
7839 tANI_U32 maxApPerScan;
7840 /* in %, when buffer is this much full, wake up host */
7841 tANI_U32 reportThreshold;
7842 /* This will be off channel minimum time */
7843 tANI_U16 neighborScanChannelMinTime;
7844 /* This will be out off channel max time */
7845 tANI_U16 neighborScanChannelMaxTime;
7846 /* This will be the home (BSS) channel time */
7847 tANI_U16 homeAwayTime;
7848 /* number of buckets (maximum 8) */
7849 tANI_U8 numBuckets;
7850 /* Buckets data */
7851 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
7852} tHalExtScanStartReq, *tpHalExtScanStartReq;
7853
7854typedef PACKED_PRE struct PACKED_POST
7855{
7856 tHalMsgHeader header;
7857 tHalExtScanStartReq extScanStartReq;
7858}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
7859
7860/*---------------------------------------------------------------------------
7861 * WLAN_HAL_EXT_SCAN_START_RSP
7862 *-------------------------------------------------------------------------*/
7863
7864typedef PACKED_PRE struct PACKED_POST
7865{
7866 tANI_U32 requestId;
7867 tANI_U32 status;
7868}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
7869
7870typedef PACKED_PRE struct PACKED_POST
7871{
7872 tHalMsgHeader header;
7873 tHalExtScanStartRsp extScanStartRsp;
7874}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
7875
7876/*---------------------------------------------------------------------------
7877 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
7878 *-------------------------------------------------------------------------*/
7879
7880typedef PACKED_PRE struct PACKED_POST
7881{
7882 tANI_U32 requestId;
7883 tANI_U8 sessionId;
7884}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
7885
7886typedef PACKED_PRE struct PACKED_POST
7887{
7888 tHalMsgHeader header;
7889 tHalExtScanGetCapReq extScanGetCapReq;
7890}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
7891
7892/*---------------------------------------------------------------------------
7893 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
7894 *-------------------------------------------------------------------------*/
7895
7896typedef PACKED_PRE struct PACKED_POST
7897{
7898 tANI_U32 requestId;
7899 tANI_U32 status;
7900
7901 tANI_U32 scanCacheSize;
7902 tANI_U32 scanBuckets;
7903 tANI_U32 maxApPerScan;
7904 tANI_U32 maxRssiSampleSize;
7905 tANI_U32 maxScanReportingThreshold;
7906
7907 tANI_U32 maxHotlistAPs;
7908 tANI_U32 maxSignificantWifiChangeAPs;
7909
7910 tANI_U32 maxBssidHistoryEntries;
7911}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
7912
7913typedef PACKED_PRE struct PACKED_POST
7914{
7915 tHalMsgHeader header;
7916 tHalExtScanGetCapRsp extScanGetCapRsp;
7917}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
7918
7919/*---------------------------------------------------------------------------
7920 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
7921 *-------------------------------------------------------------------------*/
7922
7923typedef PACKED_PRE struct PACKED_POST
7924{
7925 tANI_U32 requestId;
7926 tANI_U8 sessionId;
7927 /*
7928 * 1 return cached results and flush it
7929 * 0 return cached results and do not flush
7930 */
7931 tANI_BOOLEAN flush;
7932}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
7933
7934typedef PACKED_PRE struct PACKED_POST
7935{
7936 tHalMsgHeader header;
7937 tHalExtScanGetScanReq getScanReq;
7938}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
7939
7940/*---------------------------------------------------------------------------
7941 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
7942 *-------------------------------------------------------------------------*/
7943
7944typedef PACKED_PRE struct PACKED_POST
7945{
7946 tANI_U32 requestId;
7947 tANI_U32 status;
7948}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
7949
7950typedef PACKED_PRE struct PACKED_POST
7951{
7952 tHalMsgHeader header;
7953 tHalExtScanGetScanRsp getScanRsp;
7954}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
7955
7956/*---------------------------------------------------------------------------
7957 * WLAN_HAL_EXT_SCAN_RESULT_IND
7958 *-------------------------------------------------------------------------*/
7959
7960typedef PACKED_PRE struct PACKED_POST
7961{
7962 tANI_U64 ts; // time of discovery
7963 tANI_U8 ssid[32+1]; // null terminated SSID
7964 tSirMacAddr bssid; // BSSID
7965 tANI_U32 channel; // channel frequency in MHz
7966 tANI_S32 rssi; // RSSI in dBm
7967 tANI_U32 rtt; // RTT in nanoseconds - not expected
7968 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05307969 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05307970 tANI_U16 capability; // capabilities advertised in the beacon
7971} tHalExtScanResultParams, *tpHalExtScanResultParams;
7972
7973typedef PACKED_PRE struct PACKED_POST
7974{
7975 tHalMsgHeader header;
7976 tANI_U32 requestId;
7977 tANI_U32 scanResultSize;
7978 tANI_BOOLEAN moreData;
7979 tANI_U8 extScanResult[1];
7980}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
7981
7982/*---------------------------------------------------------------------------
7983 * WLAN_HAL_EXT_SCAN_STOP_REQ
7984 *-------------------------------------------------------------------------*/
7985
7986typedef PACKED_PRE struct PACKED_POST
7987{
7988 tANI_U32 requestId;
7989 tANI_U8 sessionId;
7990}tHalExtScanStopReq, *tpHalExtScanStopReq;
7991
7992typedef PACKED_PRE struct PACKED_POST
7993{
7994 tHalMsgHeader header;
7995 tHalExtScanStopReq extScanStopReq;
7996}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
7997
7998/*---------------------------------------------------------------------------
7999 * WLAN_HAL_EXT_SCAN_STOP_RSP
8000 *-------------------------------------------------------------------------*/
8001
8002typedef PACKED_PRE struct PACKED_POST
8003{
8004 tANI_U32 requestId;
8005 tANI_U32 status;
8006}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8007
8008typedef PACKED_PRE struct PACKED_POST
8009{
8010 tHalMsgHeader header;
8011 tHalExtScanStopRsp extScanStopRsp;
8012}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8013
8014/*---------------------------------------------------------------------------
8015 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8016 *-------------------------------------------------------------------------*/
8017
Dino Mycle8afbac12014-07-04 22:06:17 +05308018typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308019{
8020 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8021 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308022 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308023} tHalExtScanProgressEventType;
8024
8025typedef PACKED_PRE struct PACKED_POST
8026{
8027 tANI_U32 requestId;
8028 tANI_U32 status;
8029 tHalExtScanProgressEventType extScanEventType;
8030}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8031
8032typedef PACKED_PRE struct PACKED_POST
8033{
8034 tHalMsgHeader header;
8035 tHalExtScanProgressInd extScanProgressInd;
8036}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8037
8038/*---------------------------------------------------------------------------
8039 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8040 *-------------------------------------------------------------------------*/
8041
8042typedef PACKED_PRE struct PACKED_POST
8043{
8044 tANI_U32 requestId;
8045 tANI_U32 numOfScanResAvailable;
8046}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8047
8048typedef PACKED_PRE struct PACKED_POST
8049{
8050 tHalMsgHeader header;
8051 tHalExtScanResAvailableInd extScanResAvailableInd;
8052}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8053
8054/*---------------------------------------------------------------------------
8055 * WLAN_HAL_SIG_RSSI_SET_REQ
8056 *-------------------------------------------------------------------------*/
8057
8058typedef PACKED_PRE struct PACKED_POST
8059{
8060 /* AP BSSID */
8061 tSirMacAddr bssid;
8062 /* low threshold - used in L for significant_change - not used in L for
8063 hotlist*/
8064 tANI_S32 lowRssiThreshold;
8065 /* high threshold - used in L for significant rssi - used in L for hotlist */
8066 tANI_S32 highRssiThreshold;
8067 /* channel hint */
8068 tANI_U32 channel;
8069} tApThresholdParams, *tpApThresholdParams;
8070
8071typedef PACKED_PRE struct PACKED_POST
8072{
8073 tANI_U32 requestId;
8074 tANI_U8 sessionId;
8075 /* number of samples for averaging RSSI */
8076 tANI_U32 rssiSampleSize;
8077 /* number of missed samples to confirm AP loss */
8078 tANI_U32 lostApSampleSize;
8079 /* number of APs breaching threshold required for firmware to generate event */
8080 tANI_U32 minBreaching;
8081 /* number of significant APs */
8082 tANI_U32 numAp;
8083 /* significant APs */
8084 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_SIG_CHANGE_APS];
8085} tHalSigRssiSetReq, *tpHalSigRssiSetReq;
8086
8087typedef PACKED_PRE struct PACKED_POST
8088{
8089 tHalMsgHeader header;
8090 tHalSigRssiSetReq extScanSigRssiReq;
8091}tHalSigRssiSetReqMsg, *tpHalSigRssiSetReqMsg;
8092
8093/*---------------------------------------------------------------------------
8094 * WLAN_HAL_SIG_RSSI_SET_RSP
8095 *-------------------------------------------------------------------------*/
8096
8097typedef PACKED_PRE struct PACKED_POST
8098{
8099 tANI_U32 requestId;
8100 tANI_U32 status;
8101}tHalSigRssiSetRsp, *tpHalSigRssiSetRsp;
8102
8103
8104typedef PACKED_PRE struct PACKED_POST
8105{
8106 tHalMsgHeader header;
8107 tHalSigRssiSetRsp sigRssiSetRsp;
8108}tHalSigRssiSetRspMsg, *tpHalSigRssiSetRspMsg;
8109
8110/*---------------------------------------------------------------------------
8111 * WLAN_HAL_SIG_RSSI_RESET_REQ
8112 *-------------------------------------------------------------------------*/
8113
8114typedef PACKED_PRE struct PACKED_POST
8115{
8116 tANI_U32 requestId;
8117}tHalSigRssiResetReq, *tpHalSigRssiResetReq;
8118
8119typedef PACKED_PRE struct PACKED_POST
8120{
8121 tHalMsgHeader header;
8122 tHalSigRssiResetReq sigRssiResetReq;
8123}tHalSigRssiResetReqMsg, *tpHalSigRssiResetReqMsg;
8124
8125/*---------------------------------------------------------------------------
8126 * WLAN_HAL_SIG_RSSI_RESET_RSP
8127 *-------------------------------------------------------------------------*/
8128
8129typedef PACKED_PRE struct PACKED_POST
8130{
8131 tANI_U32 requestId;
8132 tANI_U32 status;
8133}tHalSigRssiResetRsp, *tpHalSigRssiResetRsp;
8134
8135typedef PACKED_PRE struct PACKED_POST
8136{
8137 tHalMsgHeader header;
8138 tHalSigRssiResetRsp sigRssiResetRsp;
8139}tHalSigRssiResetRspMsg, *tpHalSigRssiResetRspMsg;
8140
8141/*---------------------------------------------------------------------------
8142 * WLAN_HAL_SIG_RSSI_RESULT_IND
8143 *-------------------------------------------------------------------------*/
8144
8145typedef PACKED_PRE struct PACKED_POST
8146{
8147 // BSSID
8148 tSirMacAddr bssid;
8149 // channel frequency in MHz
8150 tANI_U32 channel;
8151 // number of rssi samples
8152 tANI_U8 numRssi;
8153 // RSSI history in db
8154 tANI_S32 rssi[WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE];
8155} tHalSigRssiResultParams, *tpHalSigRssiResultParams;
8156
8157typedef PACKED_PRE struct PACKED_POST
8158{
8159 tHalMsgHeader header;
8160 tANI_U32 requestId;
8161 tANI_U32 numSigRssiBss;
8162 tANI_BOOLEAN moreData;
8163 tANI_U8 sigRssiResult[1];
8164}tHalSigRssiResultIndMsg, *tpHalSigRssiResultIndMsg;
8165
8166/*---------------------------------------------------------------------------
8167 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8168 *-------------------------------------------------------------------------*/
8169
8170typedef PACKED_PRE struct PACKED_POST
8171{
8172 tANI_U32 requestId;
8173 tANI_U8 sessionId;
8174 // number of hotlist APs
8175 tANI_U32 numAp;
8176 // hotlist APs
8177 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8178} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8179
8180typedef PACKED_PRE struct PACKED_POST
8181{
8182 tHalMsgHeader header;
8183 tHalBssidHotlistSetReq bssidHotlistSetReq;
8184}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8185
8186/*---------------------------------------------------------------------------
8187 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8188 *-------------------------------------------------------------------------*/
8189
8190typedef PACKED_PRE struct PACKED_POST
8191{
8192 tANI_U32 requestId;
8193 tANI_U32 status;
8194}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8195
8196typedef PACKED_PRE struct PACKED_POST
8197{
8198 tHalMsgHeader header;
8199 tHalHotlistSetRsp hotlistSetRsp;
8200}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8201
8202/*---------------------------------------------------------------------------
8203 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8204 *-------------------------------------------------------------------------*/
8205
8206typedef PACKED_PRE struct PACKED_POST
8207{
8208 tANI_U32 requestId;
8209}tHalHotlistResetReq, *tpHalHotlistResetReq;
8210
8211typedef PACKED_PRE struct PACKED_POST
8212{
8213 tHalMsgHeader header;
8214 tHalHotlistResetReq hotlistResetReq;
8215}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8216
8217/*---------------------------------------------------------------------------
8218 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8219 *-------------------------------------------------------------------------*/
8220
8221typedef PACKED_PRE struct PACKED_POST
8222{
8223 tANI_U32 requestId;
8224 tANI_U32 status;
8225}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8226
8227typedef PACKED_PRE struct PACKED_POST
8228{
8229 tHalMsgHeader header;
8230 tHalHotlistResetRsp hotlistResetRsp;
8231}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8232
8233/*---------------------------------------------------------------------------
8234 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8235 *-------------------------------------------------------------------------*/
8236
8237typedef PACKED_PRE struct PACKED_POST
8238{
8239 tHalMsgHeader header;
8240 tANI_U32 requestId;
8241 tANI_U32 numHotlistBss;
8242 tANI_BOOLEAN moreData;
8243 tANI_U8 bssHotlist[1];
8244}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8245
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308246
8247/*---------------------------------------------------------------------------
8248 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8249 *--------------------------------------------------------------------------*/
8250typedef PACKED_PRE struct PACKED_POST
8251{
8252 tANI_U8 macAddr[6];
8253 tANI_U32 reserved1;
8254 tANI_U32 reserved2;
8255}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8256
8257typedef PACKED_PRE struct PACKED_POST
8258{
8259 tHalMsgHeader header;
8260 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8261} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8262
8263/*---------------------------------------------------------------------------
8264* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8265*-------------------------------------------------------------------------*/
8266
8267typedef PACKED_PRE struct PACKED_POST
8268{
8269 tANI_U32 status;
8270 tANI_U32 reserved1;
8271} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8272
8273typedef PACKED_PRE struct PACKED_POST
8274{
8275 tHalMsgHeader header;
8276 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8277} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
8278
Jeff Johnson295189b2012-06-20 16:38:30 -07008279#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8280#pragma pack(pop)
8281#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8282#else
8283#endif
8284
8285#endif /* _WLAN_HAL_MSG_H_ */