blob: 6dfa43b7da701702f3ffdf3ba370abaa4a3b6e59 [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
Abhishek Singh725c1582014-11-24 11:47:48 +0530519 WLAN_HAL_FW_STATS_REQ = 296,
520 WLAN_HAL_FW_STATS_RSP = 297,
521
Sunil Dutt8377a382014-05-26 21:18:04 +0530522 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700523}tHalHostMsgType;
524
Jeff Johnsone7245742012-09-05 17:12:55 -0700525/* Enumeration for Version */
526typedef enum
527{
528 WLAN_HAL_MSG_VERSION0 = 0,
529 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800530 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
531 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700532}tHalHostMsgVersion;
533
Jeff Johnson295189b2012-06-20 16:38:30 -0700534/* Enumeration for Boolean - False/True, On/Off */
Dino Mycle8afbac12014-07-04 22:06:17 +0530535typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700536{
537 eANI_BOOLEAN_FALSE = 0,
538 eANI_BOOLEAN_TRUE,
539 eANI_BOOLEAN_OFF = 0,
540 eANI_BOOLEAN_ON = 1,
541 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
542} eAniBoolean;
543
544typedef enum
545{
546 eDRIVER_TYPE_PRODUCTION = 0,
547 eDRIVER_TYPE_MFG = 1,
548 eDRIVER_TYPE_DVT = 2,
549 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
550} tDriverType;
551
552typedef enum
553{
554 HAL_STOP_TYPE_SYS_RESET,
555 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
556 HAL_STOP_TYPE_RF_KILL,
557 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
558}tHalStopType;
559
560typedef enum
561{
562 eHAL_SYS_MODE_NORMAL,
563 eHAL_SYS_MODE_LEARN,
564 eHAL_SYS_MODE_SCAN,
565 eHAL_SYS_MODE_PROMISC,
566 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700567 eHAL_SYS_MODE_ROAM_SCAN,
568 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700569 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700570 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
571} eHalSysMode;
572
573typedef enum
574{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800575 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
576 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
577 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
578 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
579 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
580 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
581 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
582 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
583 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700584 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800585 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
586} eHalChanSwitchSource;
587
588typedef enum
589{
Jeff Johnson295189b2012-06-20 16:38:30 -0700590 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
591 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
592 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
593 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700594#ifdef WLAN_FEATURE_11AC
595 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
596 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
597 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
598 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
599 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
600 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
601 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
602#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700603 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
604}ePhyChanBondState;
605
606// Spatial Multiplexing(SM) Power Save mode
607typedef enum eSirMacHTMIMOPowerSaveState
608{
609 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
610 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
611 eSIR_HT_MIMO_PS_NA = 2, // reserved
612 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
613 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
614} tSirMacHTMIMOPowerSaveState;
615
616/* each station added has a rate mode which specifies the sta attributes */
617typedef enum eStaRateMode {
618 eSTA_TAURUS = 0,
619 eSTA_TITAN,
620 eSTA_POLARIS,
621 eSTA_11b,
622 eSTA_11bg,
623 eSTA_11a,
624 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700625#ifdef WLAN_FEATURE_11AC
626 eSTA_11ac,
627#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700628 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
629} tStaRateMode, *tpStaRateMode;
630
631#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
632#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
633#define SIR_NUM_POLARIS_RATES 3 //72,96,108
634
635#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
636
637
638typedef enum eSirBssType
639{
640 eSIR_INFRASTRUCTURE_MODE,
641 eSIR_INFRA_AP_MODE, //Added for softAP support
642 eSIR_IBSS_MODE,
643 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
644 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
645 eSIR_AUTO_MODE,
646 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
647} tSirBssType;
648
649typedef enum eSirNwType
650{
651 eSIR_11A_NW_TYPE,
652 eSIR_11B_NW_TYPE,
653 eSIR_11G_NW_TYPE,
654 eSIR_11N_NW_TYPE,
655 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
656} tSirNwType;
657
658typedef tANI_U16 tSirMacBeaconInterval;
659
660#define SIR_MAC_RATESET_EID_MAX 12
661
662typedef enum eSirMacHTOperatingMode
663{
664 eSIR_HT_OP_MODE_PURE, // No Protection
665 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
666 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
667 eSIR_HT_OP_MODE_MIXED, // Protection is required
668 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
669} tSirMacHTOperatingMode;
670
Jeff Johnson295189b2012-06-20 16:38:30 -0700671/// Encryption type enum used with peer
672typedef enum eAniEdType
673{
674 eSIR_ED_NONE,
675 eSIR_ED_WEP40,
676 eSIR_ED_WEP104,
677 eSIR_ED_TKIP,
678 eSIR_ED_CCMP,
679 eSIR_ED_WPI,
680 eSIR_ED_AES_128_CMAC,
681 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
682} tAniEdType;
683
684#define WLAN_MAX_KEY_RSC_LEN 16
685#define WLAN_WAPI_KEY_RSC_LEN 16
686
687/// MAX key length when ULA is used
688#define SIR_MAC_MAX_KEY_LENGTH 32
689#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
690
691/// Enum to specify whether key is used
692/// for TX only, RX only or both
693typedef enum eAniKeyDirection
694{
695 eSIR_TX_ONLY,
696 eSIR_RX_ONLY,
697 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700698 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700699 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
700} tAniKeyDirection;
701
702typedef enum eAniWepType
703{
704 eSIR_WEP_STATIC,
705 eSIR_WEP_DYNAMIC,
706 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
707} tAniWepType;
708
709typedef enum eSriLinkState {
710
711 eSIR_LINK_IDLE_STATE = 0,
712 eSIR_LINK_PREASSOC_STATE = 1,
713 eSIR_LINK_POSTASSOC_STATE = 2,
714 eSIR_LINK_AP_STATE = 3,
715 eSIR_LINK_IBSS_STATE = 4,
716
717 /* BT-AMP Case */
718 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
719 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
720 eSIR_LINK_BTAMP_AP_STATE = 7,
721 eSIR_LINK_BTAMP_STA_STATE = 8,
Dino Mycle8afbac12014-07-04 22:06:17 +0530722
Jeff Johnson295189b2012-06-20 16:38:30 -0700723 /* Reserved for HAL Internal Use */
724 eSIR_LINK_LEARN_STATE = 9,
725 eSIR_LINK_SCAN_STATE = 10,
726 eSIR_LINK_FINISH_SCAN_STATE = 11,
727 eSIR_LINK_INIT_CAL_STATE = 12,
728 eSIR_LINK_FINISH_CAL_STATE = 13,
729#ifdef WLAN_FEATURE_P2P
730 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530731 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700732#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700733#ifdef WLAN_FEATURE_ROAM_OFFLOAD
734 eSIR_LINK_FT_PREASSOC_STATE = 16,
735#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700736 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
737} tSirLinkState;
738
739typedef enum
740{
741 HAL_SUMMARY_STATS_INFO = 0x00000001,
742 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
743 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
744 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
745 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
746 HAL_PER_STA_STATS_INFO = 0x00000020
747}eHalStatsMask;
748
749/* BT-AMP events type */
Dino Mycle8afbac12014-07-04 22:06:17 +0530750typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700751{
752 BTAMP_EVENT_CONNECTION_START,
753 BTAMP_EVENT_CONNECTION_STOP,
754 BTAMP_EVENT_CONNECTION_TERMINATED,
755 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
756} tBtAmpEventType;
757
758//***************************************************************
759
760
761/*******************PE Statistics*************************/
762typedef enum
763{
764 PE_SUMMARY_STATS_INFO = 0x00000001,
765 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
766 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
767 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
768 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
769 PE_PER_STA_STATS_INFO = 0x00000020,
770 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
771}ePEStatsMask;
772
Sunil Dutt8377a382014-05-26 21:18:04 +0530773
774/******************************LINK LAYER Statitics**********************/
775
776typedef int wifi_radio;
777typedef int wifi_channel;
778typedef int wifi_tx_rate;
779
780/* channel operating width */
781typedef enum {
782 WIFI_CHAN_WIDTH_20 = 0,
783 WIFI_CHAN_WIDTH_40 = 1,
784 WIFI_CHAN_WIDTH_80 = 2,
785 WIFI_CHAN_WIDTH_160 = 3,
786 WIFI_CHAN_WIDTH_80P80 = 4,
787 WIFI_CHAN_WIDTH_5 = 5,
788 WIFI_CHAN_WIDTH_10 = 6,
789} wifi_channel_width;
790
791typedef enum {
792 WIFI_DISCONNECTED = 0,
793 WIFI_AUTHENTICATING = 1,
794 WIFI_ASSOCIATING = 2,
795 WIFI_ASSOCIATED = 3,
796 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
797 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
798} wifi_connection_state;
799
800typedef enum {
801 WIFI_ROAMING_IDLE = 0,
802 WIFI_ROAMING_ACTIVE = 1,
803} wifi_roam_state;
804
805typedef enum {
806 WIFI_INTERFACE_STA = 0,
807 WIFI_INTERFACE_SOFTAP = 1,
808 WIFI_INTERFACE_IBSS = 2,
809 WIFI_INTERFACE_P2P_CLIENT = 3,
810 WIFI_INTERFACE_P2P_GO = 4,
811 WIFI_INTERFACE_NAN = 5,
812 WIFI_INTERFACE_MESH = 6,
813 } wifi_interface_mode;
814
815#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
816#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
817#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
818#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
819#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
820#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
821
822typedef PACKED_PRE struct PACKED_POST
823{
824 wifi_interface_mode mode; // interface mode
825 tANI_U8 mac_addr[6]; // interface mac address (self)
826 wifi_connection_state state; // connection state (valid for STA, CLI only)
827 wifi_roam_state roaming; // roaming state
828 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
829 tANI_U8 ssid[33]; // null terminated SSID
830 tANI_U8 bssid[6]; // bssid
831 tANI_U8 ap_country_str[3]; // country string advertised by AP
832 tANI_U8 country_str[3]; // country string for this association
833} wifi_interface_info;
834
835/* channel information */
836typedef PACKED_PRE struct PACKED_POST
837{
838 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
839 wifi_channel center_freq; // primary 20 MHz channel
840 wifi_channel center_freq0; // center frequency (MHz) first segment
841 wifi_channel center_freq1; // center frequency (MHz) second segment
842} wifi_channel_info;
843
844/* wifi rate info */
845typedef PACKED_PRE struct PACKED_POST
846{
847 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
848 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
849 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
850 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
851 // HT/VHT it would be mcs index
852 tANI_U32 reserved :16; // reserved
853 tANI_U32 bitrate; // units of 100 Kbps
854} wifi_rate;
855
856/* channel statistics */
857typedef PACKED_PRE struct PACKED_POST
858{
859 wifi_channel_info channel; // channel
860 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
861 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
862} wifi_channel_stats;
863
864/* radio statistics */
865typedef PACKED_PRE struct PACKED_POST
866{
867 wifi_radio radio; // wifi radio (if multiple radio supported)
868 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
869 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
870 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
871 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
872 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
873 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
874 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
875 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
876 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
877 tANI_U32 num_channels; // number of channels
878 wifi_channel_stats channels[1]; // channel statistics
879} wifi_radio_stat;
880
881/* per rate statistics */
882typedef PACKED_PRE struct PACKED_POST
883{
884 wifi_rate rate; // rate information *
885 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
886 tANI_U32 rx_mpdu; // number of received data pkts
887 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
888 tANI_U32 retries; // total number of data pkt retries *
889 tANI_U32 retries_short; // number of short data pkt retries
890 tANI_U32 retries_long; // number of long data pkt retries
891} wifi_rate_stat;
892
893/* access categories */
894typedef enum {
895 WIFI_AC_VO = 0,
896 WIFI_AC_VI = 1,
897 WIFI_AC_BE = 2,
898 WIFI_AC_BK = 3,
899 WIFI_AC_MAX = 4,
900} wifi_traffic_ac;
901
902/* wifi peer type */
903typedef enum
904{
905 WIFI_PEER_STA,
906 WIFI_PEER_AP,
907 WIFI_PEER_P2P_GO,
908 WIFI_PEER_P2P_CLIENT,
909 WIFI_PEER_NAN,
910 WIFI_PEER_TDLS,
911 WIFI_PEER_INVALID,
912} wifi_peer_type;
913
914/* per peer statistics */
915typedef PACKED_PRE struct PACKED_POST
916{
917 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
918 tANI_U8 peer_mac_address[6]; // mac address
919 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
920 tANI_U32 num_rate; // number of rates
921 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
922} wifi_peer_info;
923
924/* per access category statistics */
925typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530926{
927 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
928 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
929 tANI_U32 rx_mpdu; // number of received unicast mpdus
930 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
931 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
932 tANI_U32 rx_mcast; // number of received multicast data packets
933 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
934 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
935 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
936 tANI_U32 retries; // total number of data pkt retries
937 tANI_U32 retries_short; // number of short data pkt retries
938 tANI_U32 retries_long; // number of long data pkt retries
939 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
940 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
941 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
942 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
943} wifi_wmm_ac_stat;
944
945/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
946typedef PACKED_PRE struct PACKED_POST
Sunil Dutt8377a382014-05-26 21:18:04 +0530947{
948 wifi_interface_info info; // current state of the interface
949 tANI_U32 beacon_rx; // access point beacon received count from connected AP
950 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
951 tANI_U32 mgmt_action_rx; // action frames received count
952 tANI_U32 mgmt_action_tx; // action frames transmit count
953 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
954 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
955 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
956 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
957} wifi_iface_stat;
958
959/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
960typedef PACKED_PRE struct PACKED_POST
961{
962 tANI_U32 num_peers; // number of peers
963 wifi_peer_info peer_info[1]; // per peer statistics
964} wifi_peer_stat;
965
966/* wifi statistics bitmap for getting statistics */
967#define WMI_LINK_STATS_RADIO 0x00000001
968#define WMI_LINK_STATS_IFACE 0x00000002
969#define WMI_LINK_STATS_ALL_PEER 0x00000004
970#define WMI_LINK_STATS_PER_PEER 0x00000008
971
972/* wifi statistics bitmap for clearing statistics */
973#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
974#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
975#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
976#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
977#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
978#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
979#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
980#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
981
982
Jeff Johnson295189b2012-06-20 16:38:30 -0700983/*---------------------------------------------------------------------------
984 Message definitons - All the messages below need to be packed
985 ---------------------------------------------------------------------------*/
986
987#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
988#pragma pack(push, 1)
989#elif defined(__ANI_COMPILER_PRAGMA_PACK)
990#pragma pack(1)
991#else
992#endif
993
994/// Definition for HAL API Version.
995typedef PACKED_PRE struct PACKED_POST
996{
997 tANI_U8 revision;
998 tANI_U8 version;
999 tANI_U8 minor;
1000 tANI_U8 major;
1001} tWcnssWlanVersion, *tpWcnssWlanVersion;
1002
1003/// Definition for Encryption Keys
1004typedef PACKED_PRE struct PACKED_POST
1005{
1006 tANI_U8 keyId;
1007 tANI_U8 unicast; // 0 for multicast
1008 tAniKeyDirection keyDirection;
1009 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
1010 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
1011 tANI_U16 keyLength;
1012 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
1013} tSirKeys, *tpSirKeys;
1014
1015
1016//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
1017typedef PACKED_PRE struct PACKED_POST
1018{
1019 /*STA Index*/
1020 tANI_U16 staIdx;
1021
1022 /*Encryption Type used with peer*/
1023 tAniEdType encType;
1024
1025 /*STATIC/DYNAMIC - valid only for WEP*/
Dino Mycle8afbac12014-07-04 22:06:17 +05301026 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -07001027
1028 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
1029 tANI_U8 defWEPIdx;
1030
Jeff Johnson295189b2012-06-20 16:38:30 -07001031 /* valid only for non-static WEP encyrptions */
Dino Mycle8afbac12014-07-04 22:06:17 +05301032 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
1033
Jeff Johnson295189b2012-06-20 16:38:30 -07001034 /*Control for Replay Count, 1= Single TID based replay count on Tx
1035 0 = Per TID based replay count on TX */
1036 tANI_U8 singleTidRc;
1037
1038} tSetStaKeyParams, *tpSetStaKeyParams;
1039
1040
1041
1042/* 4-byte control message header used by HAL*/
1043typedef PACKED_PRE struct PACKED_POST
1044{
Jeff Johnsone7245742012-09-05 17:12:55 -07001045 tHalHostMsgType msgType:16;
1046 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001047 tANI_U32 msgLen;
1048} tHalMsgHeader, *tpHalMsgHeader;
1049
1050/* Config format required by HAL for each CFG item*/
1051typedef PACKED_PRE struct PACKED_POST
1052{
1053 /* Cfg Id. The Id required by HAL is exported by HAL
1054 * in shared header file between UMAC and HAL.*/
1055 tANI_U16 uCfgId;
1056
Dino Mycle8afbac12014-07-04 22:06:17 +05301057 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001058 * in the TLV format.*/
1059 tANI_U16 uCfgLen;
1060
1061 /* Padding bytes for unaligned address's */
1062 tANI_U16 uCfgPadBytes;
1063
1064 /* Reserve bytes for making cfgVal to align address */
1065 tANI_U16 uCfgReserve;
1066
1067 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1068 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1069} tHalCfg, *tpHalCfg;
1070
1071/*---------------------------------------------------------------------------
1072 WLAN_HAL_START_REQ
1073---------------------------------------------------------------------------*/
1074
1075typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1076{
1077 /* Drive Type - Production or FTM etc */
1078 tDriverType driverType;
1079
1080 /*Length of the config buffer*/
1081 tANI_U32 uConfigBufferLen;
1082
Dino Mycle8afbac12014-07-04 22:06:17 +05301083 /* Following this there is a TLV formatted buffer of length
1084 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001085 * The TLV is expected to be formatted like this:
1086 * 0 15 31 31+CFG_LEN-1 length-1
1087 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1088 */
1089} tHalMacStartParameters, *tpHalMacStartParameters;
1090
1091typedef PACKED_PRE struct PACKED_POST
1092{
1093 /* Note: The length specified in tHalMacStartReqMsg messages should be
1094 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1095 tHalMsgHeader header;
1096 tHalMacStartParameters startReqParams;
1097} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1098
1099/*---------------------------------------------------------------------------
1100 WLAN_HAL_START_RSP
1101---------------------------------------------------------------------------*/
1102
1103typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1104{
1105 /*success or failure */
1106 tANI_U16 status;
1107
1108 /*Max number of STA supported by the device*/
1109 tANI_U8 ucMaxStations;
1110
1111 /*Max number of BSS supported by the device*/
1112 tANI_U8 ucMaxBssids;
1113
1114 /*API Version */
1115 tWcnssWlanVersion wcnssWlanVersion;
1116
1117 /*CRM build information */
1118 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1119
1120 /*hardware/chipset/misc version information */
1121 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1122
1123} tHalMacStartRspParams, *tpHalMacStartRspParams;
1124
1125typedef PACKED_PRE struct PACKED_POST
1126{
1127 tHalMsgHeader header;
1128 tHalMacStartRspParams startRspParams;
1129} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1130
1131/*---------------------------------------------------------------------------
1132 WLAN_HAL_STOP_REQ
1133---------------------------------------------------------------------------*/
1134
1135typedef PACKED_PRE struct PACKED_POST
1136{
1137 /*The reason for which the device is being stopped*/
1138 tHalStopType reason;
1139
1140}tHalMacStopReqParams, *tpHalMacStopReqParams;
1141
1142typedef PACKED_PRE struct PACKED_POST
1143{
1144 tHalMsgHeader header;
1145 tHalMacStopReqParams stopReqParams;
1146} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1147
1148/*---------------------------------------------------------------------------
1149 WLAN_HAL_STOP_RSP
1150---------------------------------------------------------------------------*/
1151
1152typedef PACKED_PRE struct PACKED_POST
1153{
1154 /*success or failure */
1155 tANI_U32 status;
1156
1157}tHalMacStopRspParams, *tpHalMacStopRspParams;
1158
1159typedef PACKED_PRE struct PACKED_POST
1160{
1161 tHalMsgHeader header;
1162 tHalMacStopRspParams stopRspParams;
1163} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1164
1165/*---------------------------------------------------------------------------
1166 WLAN_HAL_UPDATE_CFG_REQ
1167---------------------------------------------------------------------------*/
1168
1169typedef PACKED_PRE struct PACKED_POST
1170{
1171 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1172 tANI_U32 uConfigBufferLen;
1173
Dino Mycle8afbac12014-07-04 22:06:17 +05301174 /* Following this there is a TLV formatted buffer of length
1175 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001176 * The TLV is expected to be formatted like this:
1177 * 0 15 31 31+CFG_LEN-1 length-1
1178 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1179 */
1180} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1181
1182typedef PACKED_PRE struct PACKED_POST
1183{
1184 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1185 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1186 tHalMsgHeader header;
1187 tHalUpdateCfgReqParams updateCfgReqParams;
1188} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1189
1190/*---------------------------------------------------------------------------
1191 WLAN_HAL_UPDATE_CFG_RSP
1192---------------------------------------------------------------------------*/
1193
1194typedef PACKED_PRE struct PACKED_POST
1195{
1196 /* success or failure */
1197 tANI_U32 status;
1198
1199}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1200
1201typedef PACKED_PRE struct PACKED_POST
1202{
1203 tHalMsgHeader header;
1204 tHalUpdateCfgRspParams updateCfgRspParams;
1205} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1206
1207/*---------------------------------------------------------------------------
1208 WLAN_HAL_INIT_SCAN_REQ
1209---------------------------------------------------------------------------*/
1210
1211/// Frame control field format (2 bytes)
1212typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1213{
1214
1215#ifndef ANI_LITTLE_BIT_ENDIAN
1216
1217 tANI_U8 subType :4;
1218 tANI_U8 type :2;
1219 tANI_U8 protVer :2;
1220
1221 tANI_U8 order :1;
1222 tANI_U8 wep :1;
1223 tANI_U8 moreData :1;
1224 tANI_U8 powerMgmt :1;
1225 tANI_U8 retry :1;
1226 tANI_U8 moreFrag :1;
1227 tANI_U8 fromDS :1;
1228 tANI_U8 toDS :1;
1229
1230#else
1231
1232 tANI_U8 protVer :2;
1233 tANI_U8 type :2;
1234 tANI_U8 subType :4;
1235
1236 tANI_U8 toDS :1;
1237 tANI_U8 fromDS :1;
1238 tANI_U8 moreFrag :1;
1239 tANI_U8 retry :1;
1240 tANI_U8 powerMgmt :1;
1241 tANI_U8 moreData :1;
1242 tANI_U8 wep :1;
1243 tANI_U8 order :1;
1244
1245#endif
1246
1247} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1248
1249/// Sequence control field
1250typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1251{
1252 tANI_U8 fragNum : 4;
1253 tANI_U8 seqNumLo : 4;
1254 tANI_U8 seqNumHi : 8;
1255} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1256
1257/// Management header format
1258typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1259{
1260 tSirMacFrameCtl fc;
1261 tANI_U8 durationLo;
1262 tANI_U8 durationHi;
1263 tANI_U8 da[6];
1264 tANI_U8 sa[6];
1265 tANI_U8 bssId[6];
1266 tSirMacSeqCtl seqControl;
1267} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1268
1269/// Scan Entry to hold active BSS idx's
1270typedef __ani_attr_pre_packed struct sSirScanEntry
1271{
1272 tANI_U8 bssIdx[HAL_NUM_BSSID];
1273 tANI_U8 activeBSScnt;
1274}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1275
1276typedef PACKED_PRE struct PACKED_POST {
1277
1278 /*LEARN - AP Role
1279 SCAN - STA Role*/
1280 eHalSysMode scanMode;
1281
1282 /*BSSID of the BSS*/
1283 tSirMacAddr bssid;
1284
1285 /*Whether BSS needs to be notified*/
1286 tANI_U8 notifyBss;
1287
1288 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1289 CTS to Self). Must always be a valid frame type.*/
1290 tANI_U8 frameType;
1291
1292 /*UMAC has the option of passing the MAC frame to be used for notifying
1293 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1294 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1295 frameType.*/
1296 tANI_U8 frameLength;
1297
Dino Mycle8afbac12014-07-04 22:06:17 +05301298 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001299 is non-zero. */
1300 tSirMacMgmtHdr macMgmtHdr;
1301
1302 /*Entry to hold number of active BSS idx's*/
1303 tSirScanEntry scanEntry;
1304
1305} tInitScanParams, * tpInitScanParams;
1306
1307typedef PACKED_PRE struct PACKED_POST
1308{
1309 tHalMsgHeader header;
1310 tInitScanParams initScanParams;
1311} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1312
1313typedef PACKED_PRE struct PACKED_POST {
1314
1315 /*LEARN - AP Role
1316 SCAN - STA Role*/
1317 eHalSysMode scanMode;
1318
1319 /*BSSID of the BSS*/
1320 tSirMacAddr bssid;
1321
1322 /*Whether BSS needs to be notified*/
1323 tANI_U8 notifyBss;
1324
1325 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1326 CTS to Self). Must always be a valid frame type.*/
1327 tANI_U8 frameType;
1328
1329 /*UMAC has the option of passing the MAC frame to be used for notifying
1330 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1331 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1332 frameType.*/
1333 tANI_U8 frameLength;
1334
Dino Mycle8afbac12014-07-04 22:06:17 +05301335 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001336 is non-zero. */
1337 tSirMacMgmtHdr macMgmtHdr;
1338
1339 /*Entry to hold number of active BSS idx's*/
1340 tSirScanEntry scanEntry;
1341
1342 /* Single NoA usage in Scanning */
1343 tANI_U8 useNoA;
1344
1345 /* Indicates the scan duration (in ms) */
1346 tANI_U16 scanDuration;
1347
1348} tInitScanConParams, * tpInitScanConParams;
1349
1350typedef PACKED_PRE struct PACKED_POST
1351{
1352 tHalMsgHeader header;
1353 tInitScanConParams initScanParams;
1354} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1355
1356
1357/*---------------------------------------------------------------------------
1358 WLAN_HAL_INIT_SCAN_RSP
1359---------------------------------------------------------------------------*/
1360
1361typedef PACKED_PRE struct PACKED_POST
1362{
1363 /*success or failure */
1364 tANI_U32 status;
1365
1366}tHalInitScanRspParams, *tpHalInitScanRspParams;
1367
1368typedef PACKED_PRE struct PACKED_POST
1369{
1370 tHalMsgHeader header;
1371 tHalInitScanRspParams initScanRspParams;
1372} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1373
1374/*---------------------------------------------------------------------------
1375 WLAN_HAL_START_SCAN_REQ
1376---------------------------------------------------------------------------*/
1377
Dino Mycle8afbac12014-07-04 22:06:17 +05301378typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001379{
1380 /*Indicates the channel to scan*/
1381 tANI_U8 scanChannel;
1382
1383 } tStartScanParams, * tpStartScanParams;
1384
1385typedef PACKED_PRE struct PACKED_POST
1386{
1387 tHalMsgHeader header;
1388 tStartScanParams startScanParams;
1389} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1390
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001391typedef PACKED_PRE struct PACKED_POST
1392{
1393 tHalMsgHeader header;
1394} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1395
Jeff Johnson295189b2012-06-20 16:38:30 -07001396/*---------------------------------------------------------------------------
1397 WLAN_HAL_START_SCAN_RSP
1398---------------------------------------------------------------------------*/
1399
1400typedef PACKED_PRE struct PACKED_POST
1401{
1402 /*success or failure */
1403 tANI_U32 status;
1404
1405 tANI_U32 startTSF[2];
1406 tPowerdBm txMgmtPower;
1407
1408}tHalStartScanRspParams, *tpHalStartScanRspParams;
1409
1410typedef PACKED_PRE struct PACKED_POST
1411{
1412 tHalMsgHeader header;
1413 tHalStartScanRspParams startScanRspParams;
1414} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1415
1416/*---------------------------------------------------------------------------
1417 WLAN_HAL_END_SCAN_REQ
1418---------------------------------------------------------------------------*/
1419
1420typedef PACKED_PRE struct PACKED_POST
1421{
1422 /*Indicates the channel to stop scanning. Not used really. But retained
1423 for symmetry with "start Scan" message. It can also help in error
1424 check if needed.*/
1425 tANI_U8 scanChannel;
1426
1427} tEndScanParams, *tpEndScanParams;
1428
1429typedef PACKED_PRE struct PACKED_POST
1430{
1431 tHalMsgHeader header;
1432 tEndScanParams endScanParams;
1433} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1434
1435/*---------------------------------------------------------------------------
1436 WLAN_HAL_END_SCAN_RSP
1437---------------------------------------------------------------------------*/
1438
1439typedef PACKED_PRE struct PACKED_POST
1440{
1441 /*success or failure */
1442 tANI_U32 status;
1443
1444}tHalEndScanRspParams, *tpHalEndScanRspParams;
1445
1446typedef PACKED_PRE struct PACKED_POST
1447{
1448 tHalMsgHeader header;
1449 tHalEndScanRspParams endScanRspParams;
1450} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1451
1452/*---------------------------------------------------------------------------
1453 WLAN_HAL_FINISH_SCAN_REQ
1454---------------------------------------------------------------------------*/
1455
1456typedef PACKED_PRE struct PACKED_POST
1457{
1458 /* Identifies the operational state of the AP/STA
1459 * LEARN - AP Role SCAN - STA Role */
1460 eHalSysMode scanMode;
1461
1462 /*Operating channel to tune to.*/
1463 tANI_U8 currentOperChannel;
1464
1465 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1466 40 MHz extension channel in combination with the control channel*/
1467 ePhyChanBondState cbState;
1468
1469 /*BSSID of the BSS*/
1470 tSirMacAddr bssid;
1471
1472 /*Whether BSS needs to be notified*/
1473 tANI_U8 notifyBss;
1474
1475 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1476 CTS to Self). Must always be a valid frame type.*/
1477 tANI_U8 frameType;
1478
1479 /*UMAC has the option of passing the MAC frame to be used for notifying
1480 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1481 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1482 frameType.*/
1483 tANI_U8 frameLength;
Dino Mycle8afbac12014-07-04 22:06:17 +05301484
1485 /*Following the framelength there is a MAC frame buffer if frameLength
1486 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001487 tSirMacMgmtHdr macMgmtHdr;
1488
1489 /*Entry to hold number of active BSS idx's*/
1490 tSirScanEntry scanEntry;
1491
1492} tFinishScanParams, *tpFinishScanParams;
1493
1494typedef PACKED_PRE struct PACKED_POST
1495{
1496 tHalMsgHeader header;
1497 tFinishScanParams finishScanParams;
1498} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1499
1500/*---------------------------------------------------------------------------
1501 WLAN_HAL_FINISH_SCAN_RSP
1502---------------------------------------------------------------------------*/
1503
1504typedef PACKED_PRE struct PACKED_POST
1505{
1506 /*success or failure */
1507 tANI_U32 status;
1508
1509}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1510
1511typedef PACKED_PRE struct PACKED_POST
1512{
1513 tHalMsgHeader header;
1514 tHalFinishScanRspParams finishScanRspParams;
1515} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1516
1517/*---------------------------------------------------------------------------
1518 WLAN_HAL_CONFIG_STA_REQ
1519---------------------------------------------------------------------------*/
1520
1521typedef PACKED_PRE struct PACKED_POST {
1522 /*
1523 * For Self STA Entry: this represents Self Mode.
1524 * For Peer Stations, this represents the mode of the peer.
1525 * On Station:
1526 * --this mode is updated when PE adds the Self Entry.
1527 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1528 * ON AP:
1529 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1530 * to indicate the self mode of the AP.
1531 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1532 */
1533
1534 tStaRateMode opRateMode;
1535 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1536 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1537 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1538 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1539 tANI_U16 reserved;
1540
1541 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1542 //First 26 bits are reserved for those Titan rates and
1543 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1544 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1545
1546 /*
1547 * 0-76 bits used, remaining reserved
1548 * bits 0-15 and 32 should be set.
1549 */
1550 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1551
1552 /*
1553 * RX Highest Supported Data Rate defines the highest data
1554 * rate that the STA is able to receive, in unites of 1Mbps.
1555 * This value is derived from "Supported MCS Set field" inside
1556 * the HT capability element.
1557 */
1558 tANI_U16 rxHighestDataRate;
1559
1560} tSirSupportedRates, *tpSirSupportedRates;
1561
1562typedef PACKED_PRE struct PACKED_POST
1563{
1564 /*BSSID of STA*/
1565 tSirMacAddr bssId;
1566
1567 /*ASSOC ID, as assigned by UMAC*/
1568 tANI_U16 assocId;
1569
1570 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1571 tANI_U8 staType;
1572
1573 /*Short Preamble Supported.*/
1574 tANI_U8 shortPreambleSupported;
1575
1576 /*MAC Address of STA*/
1577 tSirMacAddr staMac;
1578
1579 /*Listen interval of the STA*/
1580 tANI_U16 listenInterval;
1581
1582 /*Support for 11e/WMM*/
1583 tANI_U8 wmmEnabled;
1584
1585 /*11n HT capable STA*/
1586 tANI_U8 htCapable;
1587
1588 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1589 tANI_U8 txChannelWidthSet;
1590
1591 /*RIFS mode 0 - NA, 1 - Allowed */
1592 tANI_U8 rifsMode;
1593
Dino Mycle8afbac12014-07-04 22:06:17 +05301594 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001595 0 - No Support, 1 - Supported
1596 SG - there is global field */
1597 tANI_U8 lsigTxopProtection;
1598
1599 /*Max Ampdu Size supported by STA. TPE programming.
1600 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1601 tANI_U8 maxAmpduSize;
1602
1603 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1604 tANI_U8 maxAmpduDensity;
1605
1606 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1607 tANI_U8 maxAmsduSize;
1608
1609 /*Short GI support for 40Mhz packets*/
1610 tANI_U8 fShortGI40Mhz;
1611
1612 /*Short GI support for 20Mhz packets*/
1613 tANI_U8 fShortGI20Mhz;
1614
Jeff Johnson295189b2012-06-20 16:38:30 -07001615 /*Robust Management Frame (RMF) enabled/disabled*/
1616 tANI_U8 rmfEnabled;
1617
1618 /* The unicast encryption type in the association */
1619 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001620
1621 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001622 will set this flag in case of RE-ASSOC, where we want to reuse the old
1623 STA ID. 0 = Add, 1 = Update*/
1624 tANI_U8 action;
1625
1626 /*U-APSD Flags: 1b per AC. Encoded as follows:
1627 b7 b6 b5 b4 b3 b2 b1 b0 =
1628 X X X X BE BK VI VO */
1629 tANI_U8 uAPSD;
1630
1631 /*Max SP Length*/
1632 tANI_U8 maxSPLen;
1633
1634 /*11n Green Field preamble support
1635 0 - Not supported, 1 - Supported */
1636 tANI_U8 greenFieldCapable;
1637
1638 /*MIMO Power Save mode*/
1639 tSirMacHTMIMOPowerSaveState mimoPS;
1640
1641 /*Delayed BA Support*/
1642 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001643
Jeff Johnson295189b2012-06-20 16:38:30 -07001644 /*Max AMPDU duration in 32us*/
1645 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001646
Jeff Johnson295189b2012-06-20 16:38:30 -07001647 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1648 it to 0 if AP does not support it. This indication is sent to HAL and
1649 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1650 tANI_U8 fDsssCckMode40Mhz;
1651
1652 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1653 Retained for backward compalibity with existing HAL code*/
1654 tANI_U8 staIdx;
1655
1656 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1657 Retained for backward compalibity with existing HAL code*/
1658 tANI_U8 bssIdx;
1659
1660 tANI_U8 p2pCapableSta;
1661
Jeff Johnsone7245742012-09-05 17:12:55 -07001662 /*Reserved to align next field on a dword boundary*/
1663 tANI_U8 reserved;
1664
1665 /*These rates are the intersection of peer and self capabilities.*/
1666 tSirSupportedRates supportedRates;
1667
Jeff Johnson295189b2012-06-20 16:38:30 -07001668} tConfigStaParams, *tpConfigStaParams;
1669
Jeff Johnsone7245742012-09-05 17:12:55 -07001670/*------------------------------------------------------------------------
1671 * WLAN_HAL_CONFIG_STA_REQ
1672 * ----------------------------------------------------------------------*/
1673
1674typedef PACKED_PRE struct PACKED_POST {
1675 /*
1676 * For Self STA Entry: this represents Self Mode.
1677 * For Peer Stations, this represents the mode of the peer.
1678 * On Station:
1679 * --this mode is updated when PE adds the Self Entry.
1680 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1681 * ON AP:
1682 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1683 * to indicate the self mode of the AP.
1684 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1685 */
1686
1687 tStaRateMode opRateMode;
1688 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1689 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1690 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1691 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1692 tANI_U16 reserved;
1693
1694 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1695 //First 26 bits are reserved for those Titan rates and
1696 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1697 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1698
1699 /*
1700 * 0-76 bits used, remaining reserved
1701 * bits 0-15 and 32 should be set.
1702 */
1703 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1704
1705 /*
1706 * RX Highest Supported Data Rate defines the highest data
1707 * rate that the STA is able to receive, in unites of 1Mbps.
1708 * This value is derived from "Supported MCS Set field" inside
1709 * the HT capability element.
1710 */
1711 tANI_U16 rxHighestDataRate;
1712
1713 /* Indicates the Maximum MCS that can be received for each number
1714 * of spacial streams */
1715 tANI_U16 vhtRxMCSMap;
1716
1717 /*Indicate the highest VHT data rate that the STA is able to receive*/
1718 tANI_U16 vhtRxHighestDataRate;
1719
1720 /* Indicates the Maximum MCS that can be transmitted for each number
1721 * of spacial streams */
1722 tANI_U16 vhtTxMCSMap;
1723
1724 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1725 tANI_U16 vhtTxHighestDataRate;
1726
1727} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1728
1729typedef PACKED_PRE struct PACKED_POST
1730{
1731 /*BSSID of STA*/
1732 tSirMacAddr bssId;
1733
1734 /*ASSOC ID, as assigned by UMAC*/
1735 tANI_U16 assocId;
1736
1737 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1738 tANI_U8 staType;
1739
1740 /*Short Preamble Supported.*/
1741 tANI_U8 shortPreambleSupported;
1742
1743 /*MAC Address of STA*/
1744 tSirMacAddr staMac;
1745
1746 /*Listen interval of the STA*/
1747 tANI_U16 listenInterval;
1748
1749 /*Support for 11e/WMM*/
1750 tANI_U8 wmmEnabled;
1751
1752 /*11n HT capable STA*/
1753 tANI_U8 htCapable;
1754
1755 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1756 tANI_U8 txChannelWidthSet;
1757
1758 /*RIFS mode 0 - NA, 1 - Allowed */
1759 tANI_U8 rifsMode;
1760
1761 /*L-SIG TXOP Protection mechanism
1762 0 - No Support, 1 - Supported
1763 SG - there is global field */
1764 tANI_U8 lsigTxopProtection;
1765
1766 /*Max Ampdu Size supported by STA. TPE programming.
1767 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1768 tANI_U8 maxAmpduSize;
1769
1770 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1771 tANI_U8 maxAmpduDensity;
1772
1773 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1774 tANI_U8 maxAmsduSize;
1775
1776 /*Short GI support for 40Mhz packets*/
1777 tANI_U8 fShortGI40Mhz;
1778
1779 /*Short GI support for 20Mhz packets*/
1780 tANI_U8 fShortGI20Mhz;
1781
1782 /*Robust Management Frame (RMF) enabled/disabled*/
1783 tANI_U8 rmfEnabled;
1784
1785 /* The unicast encryption type in the association */
1786 tANI_U32 encryptType;
Dino Mycle8afbac12014-07-04 22:06:17 +05301787
1788 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001789 will set this flag in case of RE-ASSOC, where we want to reuse the old
1790 STA ID. 0 = Add, 1 = Update*/
1791 tANI_U8 action;
1792
1793 /*U-APSD Flags: 1b per AC. Encoded as follows:
1794 b7 b6 b5 b4 b3 b2 b1 b0 =
1795 X X X X BE BK VI VO */
1796 tANI_U8 uAPSD;
1797
1798 /*Max SP Length*/
1799 tANI_U8 maxSPLen;
1800
1801 /*11n Green Field preamble support
1802 0 - Not supported, 1 - Supported */
1803 tANI_U8 greenFieldCapable;
1804
1805 /*MIMO Power Save mode*/
1806 tSirMacHTMIMOPowerSaveState mimoPS;
1807
1808 /*Delayed BA Support*/
1809 tANI_U8 delayedBASupport;
Dino Mycle8afbac12014-07-04 22:06:17 +05301810
Jeff Johnsone7245742012-09-05 17:12:55 -07001811 /*Max AMPDU duration in 32us*/
1812 tANI_U8 us32MaxAmpduDuration;
Dino Mycle8afbac12014-07-04 22:06:17 +05301813
Jeff Johnsone7245742012-09-05 17:12:55 -07001814 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1815 it to 0 if AP does not support it. This indication is sent to HAL and
1816 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1817 tANI_U8 fDsssCckMode40Mhz;
1818
1819 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1820 Retained for backward compalibity with existing HAL code*/
1821 tANI_U8 staIdx;
1822
1823 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1824 Retained for backward compalibity with existing HAL code*/
1825 tANI_U8 bssIdx;
1826
1827 tANI_U8 p2pCapableSta;
1828
1829 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001830 tANI_U8 htLdpcEnabled:1;
1831 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001832 tANI_U8 vhtTxBFEnabled:1;
Dino Mycle8afbac12014-07-04 22:06:17 +05301833 tANI_U8 vhtTxMUBformeeCapable:1;
1834 tANI_U8 reserved:4;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001835
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001836 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001837 tSirSupportedRates_V1 supportedRates;
1838
1839 tANI_U8 vhtCapable;
1840 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001841
Jeff Johnsone7245742012-09-05 17:12:55 -07001842} tConfigStaParams_V1, *tpConfigStaParams_V1;
1843
Jeff Johnson295189b2012-06-20 16:38:30 -07001844typedef PACKED_PRE struct PACKED_POST
1845{
1846 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001847 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001848 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001849 tConfigStaParams_V1 configStaParams_V1;
1850 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001851} tConfigStaReqMsg, *tpConfigStaReqMsg;
1852
1853/*---------------------------------------------------------------------------
1854 WLAN_HAL_CONFIG_STA_RSP
1855---------------------------------------------------------------------------*/
1856
1857typedef PACKED_PRE struct PACKED_POST
1858{
1859 /*success or failure */
1860 tANI_U32 status;
1861
1862 /* Station index; valid only when 'status' field value SUCCESS */
1863 tANI_U8 staIdx;
1864
1865 /* BSSID Index of BSS to which the station is associated */
1866 tANI_U8 bssIdx;
1867
1868 /* DPU Index for PTK */
1869 tANI_U8 dpuIndex;
1870
Dino Mycle8afbac12014-07-04 22:06:17 +05301871 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001872 tANI_U8 bcastDpuIndex;
1873
1874 /*DPU Index for IGTK */
1875 tANI_U8 bcastMgmtDpuIdx;
1876
1877 /*PTK DPU signature*/
1878 tANI_U8 ucUcastSig;
1879
1880 /*GTK DPU isignature*/
1881 tANI_U8 ucBcastSig;
1882
1883 /* IGTK DPU signature*/
1884 tANI_U8 ucMgmtSig;
1885
1886 tANI_U8 p2pCapableSta;
1887
1888}tConfigStaRspParams, *tpConfigStaRspParams;
1889
1890typedef PACKED_PRE struct PACKED_POST
1891{
1892 tHalMsgHeader header;
1893 tConfigStaRspParams configStaRspParams;
1894}tConfigStaRspMsg, *tpConfigStaRspMsg;
1895
1896/*---------------------------------------------------------------------------
1897 WLAN_HAL_DELETE_STA_REQ
1898---------------------------------------------------------------------------*/
1899
1900/* Delete STA Request params */
Dino Mycle8afbac12014-07-04 22:06:17 +05301901typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001902{
1903 /* Index of STA to delete */
1904 tANI_U8 staIdx;
1905} tDeleteStaParams, *tpDeleteStaParams;
1906
1907/* Delete STA Request message*/
1908typedef PACKED_PRE struct PACKED_POST
1909{
1910 tHalMsgHeader header;
1911 tDeleteStaParams delStaParams;
1912} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1913
1914/*---------------------------------------------------------------------------
1915 WLAN_HAL_DELETE_STA_RSP
1916---------------------------------------------------------------------------*/
1917
1918/* Delete STA Response Params */
Dino Mycle8afbac12014-07-04 22:06:17 +05301919typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001920{
1921 /*success or failure */
1922 tANI_U32 status;
1923
1924 /* Index of STA deleted */
1925 tANI_U8 staId;
1926} tDeleteStaRspParams, *tpDeleteStaRspParams;
1927
1928/* Delete STA Response message*/
1929typedef PACKED_PRE struct PACKED_POST
1930{
1931 tHalMsgHeader header;
1932 tDeleteStaRspParams delStaRspParams;
1933} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1934
1935/*---------------------------------------------------------------------------
1936 WLAN_HAL_CONFIG_BSS_REQ
1937---------------------------------------------------------------------------*/
1938
1939//12 Bytes long because this structure can be used to represent rate
1940//and extended rate set IEs. The parser assume this to be at least 12
1941typedef __ani_attr_pre_packed struct sSirMacRateSet
1942{
1943 tANI_U8 numRates;
1944 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1945} __ani_attr_packed tSirMacRateSet;
1946
1947// access category record
1948typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1949{
1950#ifndef ANI_LITTLE_BIT_ENDIAN
1951 tANI_U8 rsvd : 1;
1952 tANI_U8 aci : 2;
1953 tANI_U8 acm : 1;
1954 tANI_U8 aifsn : 4;
1955#else
1956 tANI_U8 aifsn : 4;
1957 tANI_U8 acm : 1;
1958 tANI_U8 aci : 2;
1959 tANI_U8 rsvd : 1;
1960#endif
1961} __ani_attr_packed tSirMacAciAifsn;
1962
1963// contention window size
1964typedef __ani_attr_pre_packed struct sSirMacCW
1965{
1966#ifndef ANI_LITTLE_BIT_ENDIAN
1967 tANI_U8 max : 4;
1968 tANI_U8 min : 4;
1969#else
1970 tANI_U8 min : 4;
1971 tANI_U8 max : 4;
1972#endif
1973} __ani_attr_packed tSirMacCW;
1974
1975typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1976{
1977 tSirMacAciAifsn aci;
1978 tSirMacCW cw;
1979 tANI_U16 txoplimit;
1980} __ani_attr_packed tSirMacEdcaParamRecord;
1981
1982typedef __ani_attr_pre_packed struct sSirMacSSid
1983{
1984 tANI_U8 length;
1985 tANI_U8 ssId[32];
1986} __ani_attr_packed tSirMacSSid;
1987
1988// Concurrency role. These are generic IDs that identify the various roles
1989// in the software system.
1990typedef enum {
Dino Mycle8afbac12014-07-04 22:06:17 +05301991 HAL_STA_MODE=0,
1992 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001993 HAL_P2P_CLIENT_MODE,
1994 HAL_P2P_GO_MODE,
1995 HAL_MONITOR_MODE,
1996} tHalConMode;
1997
1998//This is a bit pattern to be set for each mode
1999//bit 0 - sta mode
2000//bit 1 - ap mode
2001//bit 2 - p2p client mode
2002//bit 3 - p2p go mode
2003typedef enum
2004{
Dino Mycle8afbac12014-07-04 22:06:17 +05302005 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07002006 HAL_SAP=2,
2007 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
2008 HAL_P2P_CLIENT=4,
2009 HAL_P2P_GO=8,
2010 HAL_MAX_CONCURRENCY_PERSONA=4
2011} tHalConcurrencyMode;
2012
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002013// IFACE PERSONA for different Operating modes
2014typedef enum
2015{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002016 HAL_IFACE_UNKNOWN=0,
2017 HAL_IFACE_STA_MODE=1,
2018 HAL_IFACE_P2P_MODE=2,
2019 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07002020} tHalIfacePersona;
2021
Jeff Johnson295189b2012-06-20 16:38:30 -07002022typedef PACKED_PRE struct PACKED_POST
2023{
2024 /* BSSID */
2025 tSirMacAddr bssId;
2026
Jeff Johnson295189b2012-06-20 16:38:30 -07002027 /* Self Mac Address */
2028 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07002029
2030 /* BSS type */
2031 tSirBssType bssType;
2032
2033 /*Operational Mode: AP =0, STA = 1*/
2034 tANI_U8 operMode;
2035
2036 /*Network Type*/
2037 tSirNwType nwType;
2038
2039 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2040 tANI_U8 shortSlotTimeSupported;
2041
2042 /*Co-exist with 11a STA*/
2043 tANI_U8 llaCoexist;
2044
2045 /*Co-exist with 11b STA*/
2046 tANI_U8 llbCoexist;
2047
2048 /*Co-exist with 11g STA*/
2049 tANI_U8 llgCoexist;
2050
2051 /*Coexistence with 11n STA*/
2052 tANI_U8 ht20Coexist;
2053
2054 /*Non GF coexist flag*/
2055 tANI_U8 llnNonGFCoexist;
2056
2057 /*TXOP protection support*/
2058 tANI_U8 fLsigTXOPProtectionFullSupport;
2059
2060 /*RIFS mode*/
2061 tANI_U8 fRIFSMode;
2062
2063 /*Beacon Interval in TU*/
2064 tSirMacBeaconInterval beaconInterval;
2065
2066 /*DTIM period*/
2067 tANI_U8 dtimPeriod;
2068
2069 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2070 tANI_U8 txChannelWidthSet;
2071
2072 /*Operating channel*/
2073 tANI_U8 currentOperChannel;
2074
2075 /*Extension channel for channel bonding*/
2076 tANI_U8 currentExtChannel;
2077
2078 /*Reserved to align next field on a dword boundary*/
2079 tANI_U8 reserved;
2080
Jeff Johnsone7245742012-09-05 17:12:55 -07002081 /*SSID of the BSS*/
2082 tSirMacSSid ssId;
2083
2084 /*HAL should update the existing BSS entry, if this flag is set.
2085 UMAC will set this flag in case of reassoc, where we want to resue the
2086 the old BSSID and still return success 0 = Add, 1 = Update*/
2087 tANI_U8 action;
2088
2089 /* MAC Rate Set */
2090 tSirMacRateSet rateSet;
2091
2092 /*Enable/Disable HT capabilities of the BSS*/
2093 tANI_U8 htCapable;
2094
2095 // Enable/Disable OBSS protection
2096 tANI_U8 obssProtEnabled;
2097
2098 /*RMF enabled/disabled*/
2099 tANI_U8 rmfEnabled;
2100
2101 /*HT Operating Mode operating mode of the 802.11n STA*/
2102 tSirMacHTOperatingMode htOperMode;
2103
2104 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2105 tANI_U8 dualCTSProtection;
2106
2107 /* Probe Response Max retries */
2108 tANI_U8 ucMaxProbeRespRetryLimit;
2109
2110 /* To Enable Hidden ssid */
2111 tANI_U8 bHiddenSSIDEn;
2112
2113 /* To Enable Disable FW Proxy Probe Resp */
2114 tANI_U8 bProxyProbeRespEn;
2115
2116 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2117 EDCA params or might not desire to apply EDCA params during config BSS.
2118 0 implies Not Valid ; Non-Zero implies valid*/
2119 tANI_U8 edcaParamsValid;
2120
2121 /*EDCA Parameters for Best Effort Access Category*/
2122 tSirMacEdcaParamRecord acbe;
2123
2124 /*EDCA Parameters forBackground Access Category*/
2125 tSirMacEdcaParamRecord acbk;
2126
2127 /*EDCA Parameters for Video Access Category*/
2128 tSirMacEdcaParamRecord acvi;
2129
2130 /*EDCA Parameters for Voice Access Category*/
2131 tSirMacEdcaParamRecord acvo;
2132
2133#ifdef WLAN_FEATURE_VOWIFI_11R
2134 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2135 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2136#endif
2137
2138 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2139 tANI_U8 halPersona;
2140
2141 tANI_U8 bSpectrumMgtEnable;
2142
2143 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2144 tANI_S8 txMgmtPower;
2145 /*maxTxPower has max power to be used after applying the power constraint if any */
2146 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002147 /*Context of the station being added in HW
2148 Add a STA entry for "itself" -
2149 On AP - Add the AP itself in an "STA context"
2150 On STA - Add the AP to which this STA is joining in an "STA context" */
2151 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002152} tConfigBssParams, * tpConfigBssParams;
2153
2154
2155/*--------------------------------------------------------------------------
2156 * WLAN_HAL_CONFIG_BSS_REQ
2157 *--------------------------------------------------------------------------*/
2158typedef PACKED_PRE struct PACKED_POST
2159{
2160 /* BSSID */
2161 tSirMacAddr bssId;
2162
Jeff Johnsone7245742012-09-05 17:12:55 -07002163 /* Self Mac Address */
2164 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002165
2166 /* BSS type */
2167 tSirBssType bssType;
2168
2169 /*Operational Mode: AP =0, STA = 1*/
2170 tANI_U8 operMode;
2171
2172 /*Network Type*/
2173 tSirNwType nwType;
2174
2175 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2176 tANI_U8 shortSlotTimeSupported;
2177
2178 /*Co-exist with 11a STA*/
2179 tANI_U8 llaCoexist;
2180
2181 /*Co-exist with 11b STA*/
2182 tANI_U8 llbCoexist;
2183
2184 /*Co-exist with 11g STA*/
2185 tANI_U8 llgCoexist;
2186
2187 /*Coexistence with 11n STA*/
2188 tANI_U8 ht20Coexist;
2189
2190 /*Non GF coexist flag*/
2191 tANI_U8 llnNonGFCoexist;
2192
2193 /*TXOP protection support*/
2194 tANI_U8 fLsigTXOPProtectionFullSupport;
2195 /*RIFS mode*/
2196 tANI_U8 fRIFSMode;
2197
2198 /*Beacon Interval in TU*/
2199 tSirMacBeaconInterval beaconInterval;
2200
2201 /*DTIM period*/
2202 tANI_U8 dtimPeriod;
2203
2204 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2205 tANI_U8 txChannelWidthSet;
2206
2207 /*Operating channel*/
2208 tANI_U8 currentOperChannel;
2209
2210 /*Extension channel for channel bonding*/
2211 tANI_U8 currentExtChannel;
2212
2213 /*Reserved to align next field on a dword boundary*/
2214 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002215
2216 /*SSID of the BSS*/
2217 tSirMacSSid ssId;
2218
2219 /*HAL should update the existing BSS entry, if this flag is set.
2220 UMAC will set this flag in case of reassoc, where we want to resue the
2221 the old BSSID and still return success 0 = Add, 1 = Update*/
2222 tANI_U8 action;
2223
2224 /* MAC Rate Set */
2225 tSirMacRateSet rateSet;
2226
2227 /*Enable/Disable HT capabilities of the BSS*/
2228 tANI_U8 htCapable;
2229
2230 // Enable/Disable OBSS protection
2231 tANI_U8 obssProtEnabled;
2232
2233 /*RMF enabled/disabled*/
2234 tANI_U8 rmfEnabled;
2235
2236 /*HT Operating Mode operating mode of the 802.11n STA*/
2237 tSirMacHTOperatingMode htOperMode;
2238
2239 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2240 tANI_U8 dualCTSProtection;
2241
2242 /* Probe Response Max retries */
2243 tANI_U8 ucMaxProbeRespRetryLimit;
2244
2245 /* To Enable Hidden ssid */
2246 tANI_U8 bHiddenSSIDEn;
2247
2248 /* To Enable Disable FW Proxy Probe Resp */
2249 tANI_U8 bProxyProbeRespEn;
2250
Dino Mycle8afbac12014-07-04 22:06:17 +05302251 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2252 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002253 0 implies Not Valid ; Non-Zero implies valid*/
2254 tANI_U8 edcaParamsValid;
2255
2256 /*EDCA Parameters for Best Effort Access Category*/
2257 tSirMacEdcaParamRecord acbe;
Dino Mycle8afbac12014-07-04 22:06:17 +05302258
Jeff Johnson295189b2012-06-20 16:38:30 -07002259 /*EDCA Parameters forBackground Access Category*/
2260 tSirMacEdcaParamRecord acbk;
2261
2262 /*EDCA Parameters for Video Access Category*/
2263 tSirMacEdcaParamRecord acvi;
2264
2265 /*EDCA Parameters for Voice Access Category*/
2266 tSirMacEdcaParamRecord acvo;
2267
2268#ifdef WLAN_FEATURE_VOWIFI_11R
2269 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2270 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2271#endif
2272
Dino Mycle8afbac12014-07-04 22:06:17 +05302273 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002274 tANI_U8 halPersona;
Dino Mycle8afbac12014-07-04 22:06:17 +05302275
Jeff Johnson295189b2012-06-20 16:38:30 -07002276 tANI_U8 bSpectrumMgtEnable;
2277
2278 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2279 tANI_S8 txMgmtPower;
2280 /*maxTxPower has max power to be used after applying the power constraint if any */
2281 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002282 /*Context of the station being added in HW
2283 Add a STA entry for "itself" -
2284 On AP - Add the AP itself in an "STA context"
2285 On STA - Add the AP to which this STA is joining in an "STA context" */
2286 tConfigStaParams_V1 staContext;
Dino Mycle8afbac12014-07-04 22:06:17 +05302287
Jeff Johnsone7245742012-09-05 17:12:55 -07002288 tANI_U8 vhtCapable;
2289 tANI_U8 vhtTxChannelWidthSet;
2290} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002291
2292typedef PACKED_PRE struct PACKED_POST
2293{
2294 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002295 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002296 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002297 tConfigBssParams_V1 configBssParams_V1;
2298 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002299} tConfigBssReqMsg, *tpConfigBssReqMsg;
2300
2301/*---------------------------------------------------------------------------
2302 WLAN_HAL_CONFIG_BSS_RSP
2303---------------------------------------------------------------------------*/
2304
2305typedef PACKED_PRE struct PACKED_POST
2306{
2307 /* Success or Failure */
2308 tANI_U32 status;
2309
2310 /* BSS index allocated by HAL */
2311 tANI_U8 bssIdx;
2312
2313 /* DPU descriptor index for PTK */
2314 tANI_U8 dpuDescIndx;
2315
2316 /* PTK DPU signature */
2317 tANI_U8 ucastDpuSignature;
2318
2319 /* DPU descriptor index for GTK*/
2320 tANI_U8 bcastDpuDescIndx;
2321
2322 /* GTK DPU signature */
2323 tANI_U8 bcastDpuSignature;
2324
2325 /*DPU descriptor for IGTK*/
2326 tANI_U8 mgmtDpuDescIndx;
2327
2328 /* IGTK DPU signature */
2329 tANI_U8 mgmtDpuSignature;
2330
2331 /* Station Index for BSS entry*/
2332 tANI_U8 bssStaIdx;
2333
2334 /* Self station index for this BSS */
2335 tANI_U8 bssSelfStaIdx;
2336
2337 /* Bcast station for buffering bcast frames in AP role */
2338 tANI_U8 bssBcastStaIdx;
2339
2340 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2341 tSirMacAddr staMac;
2342
2343 /*HAL fills in the tx power used for mgmt frames in this field. */
2344 tANI_S8 txMgmtPower;
2345
2346} tConfigBssRspParams, * tpConfigBssRspParams;
2347
2348typedef PACKED_PRE struct PACKED_POST
2349{
2350 tHalMsgHeader header;
2351 tConfigBssRspParams configBssRspParams;
2352} tConfigBssRspMsg, *tpConfigBssRspMsg;
2353
2354/*---------------------------------------------------------------------------
2355 WLAN_HAL_DELETE_BSS_REQ
2356---------------------------------------------------------------------------*/
2357
2358typedef PACKED_PRE struct PACKED_POST
2359{
2360 /* BSS index to be deleted */
2361 tANI_U8 bssIdx;
2362
2363} tDeleteBssParams, *tpDeleteBssParams;
2364
2365typedef PACKED_PRE struct PACKED_POST
2366{
2367 tHalMsgHeader header;
2368 tDeleteBssParams deleteBssParams;
2369} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2370
2371/*---------------------------------------------------------------------------
2372 WLAN_HAL_DELETE_BSS_RSP
2373---------------------------------------------------------------------------*/
2374
2375typedef PACKED_PRE struct PACKED_POST
2376{
2377 /* Success or Failure */
2378 tANI_U32 status;
2379
2380 /* BSS index that has been deleted */
2381 tANI_U8 bssIdx;
2382
2383} tDeleteBssRspParams, *tpDeleteBssRspParams;
2384
2385typedef PACKED_PRE struct PACKED_POST
2386{
2387 tHalMsgHeader header;
2388 tDeleteBssRspParams deleteBssRspParams;
2389} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2390
2391/*---------------------------------------------------------------------------
2392 WLAN_HAL_JOIN_REQ
2393---------------------------------------------------------------------------*/
2394
2395typedef PACKED_PRE struct PACKED_POST
2396{
2397 /*Indicates the BSSID to which STA is going to associate*/
Dino Mycle8afbac12014-07-04 22:06:17 +05302398 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002399
2400 /*Indicates the channel to switch to.*/
2401 tANI_U8 ucChannel;
2402
2403 /* Self STA MAC */
2404 tSirMacAddr selfStaMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05302405
Jeff Johnson295189b2012-06-20 16:38:30 -07002406 /*Local power constraint*/
2407 tANI_U8 ucLocalPowerConstraint;
2408
2409 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002410 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002411
2412 /*link State*/
2413 tSirLinkState linkState;
2414
2415 /* Max TX power */
2416 tANI_S8 maxTxPower;
2417
2418} tHalJoinReqParams, *tpHalJoinReqParams;
2419
2420typedef PACKED_PRE struct PACKED_POST
2421{
2422 tHalMsgHeader header;
2423 tHalJoinReqParams joinReqParams;
2424} tHalJoinReqMsg, *tpHalJoinReqMsg;
2425
2426/*---------------------------------------------------------------------------
2427 WLAN_HAL_JOIN_RSP
2428---------------------------------------------------------------------------*/
2429
2430typedef PACKED_PRE struct PACKED_POST
2431{
2432 /*success or failure */
2433 tANI_U32 status;
2434
2435 /* HAL fills in the tx power used for mgmt frames in this field */
2436 tPowerdBm txMgmtPower;
2437
2438}tHalJoinRspParams, *tpHalJoinRspParams;
2439
2440typedef PACKED_PRE struct PACKED_POST
2441{
2442 tHalMsgHeader header;
2443 tHalJoinRspParams joinRspParams;
2444}tHalJoinRspMsg, *tpHalJoinRspMsg;
2445
2446/*---------------------------------------------------------------------------
2447 WLAN_HAL_POST_ASSOC_REQ
2448---------------------------------------------------------------------------*/
2449
2450typedef PACKED_PRE struct PACKED_POST
2451{
2452 tConfigStaParams configStaParams;
2453 tConfigBssParams configBssParams;
2454} tPostAssocReqParams, *tpPostAssocReqParams;
2455
2456typedef PACKED_PRE struct PACKED_POST
2457{
2458 tHalMsgHeader header;
2459 tPostAssocReqParams postAssocReqParams;
2460} tPostAssocReqMsg, *tpPostAssocReqMsg;
2461
2462/*---------------------------------------------------------------------------
2463 WLAN_HAL_POST_ASSOC_RSP
2464---------------------------------------------------------------------------*/
2465
2466typedef PACKED_PRE struct PACKED_POST
2467{
2468 tConfigStaRspParams configStaRspParams;
2469 tConfigBssRspParams configBssRspParams;
2470} tPostAssocRspParams, *tpPostAssocRspParams;
2471
2472typedef PACKED_PRE struct PACKED_POST
2473{
2474 tHalMsgHeader header;
2475 tPostAssocRspParams postAssocRspParams;
2476} tPostAssocRspMsg, *tpPostAssocRspMsg;
2477
2478/*---------------------------------------------------------------------------
2479 WLAN_HAL_SET_BSSKEY_REQ
2480---------------------------------------------------------------------------*/
2481
2482/*
2483 * This is used by PE to create a set of WEP keys for a given BSS.
2484 */
2485typedef PACKED_PRE struct PACKED_POST
2486{
2487 /*BSS Index of the BSS*/
2488 tANI_U8 bssIdx;
2489
2490 /*Encryption Type used with peer*/
2491 tAniEdType encType;
2492
2493 /*Number of keys*/
2494 tANI_U8 numKeys;
2495
2496 /*Array of keys.*/
2497 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Dino Mycle8afbac12014-07-04 22:06:17 +05302498
Jeff Johnson295189b2012-06-20 16:38:30 -07002499 /*Control for Replay Count, 1= Single TID based replay count on Tx
2500 0 = Per TID based replay count on TX */
2501 tANI_U8 singleTidRc;
2502} tSetBssKeyParams, *tpSetBssKeyParams;
2503
2504typedef PACKED_PRE struct PACKED_POST
2505{
2506 tHalMsgHeader header;
2507 tSetBssKeyParams setBssKeyParams;
2508} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2509
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002510/* tagged version of set bss key */
2511typedef PACKED_PRE struct PACKED_POST
2512{
2513 tSetBssKeyReqMsg Msg;
2514 uint32 Tag;
2515} tSetBssKeyReqMsgTagged;
2516
Jeff Johnson295189b2012-06-20 16:38:30 -07002517/*---------------------------------------------------------------------------
2518 WLAN_HAL_SET_BSSKEY_RSP
2519---------------------------------------------------------------------------*/
2520typedef PACKED_PRE struct PACKED_POST
2521{
2522 /*success or failure */
2523 tANI_U32 status;
2524
2525} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2526
2527typedef PACKED_PRE struct PACKED_POST
2528{
2529 tHalMsgHeader header;
2530 tSetBssKeyRspParams setBssKeyRspParams;
2531} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2532
2533/*---------------------------------------------------------------------------
2534 WLAN_HAL_SET_STAKEY_REQ,
2535---------------------------------------------------------------------------*/
2536
2537/*
2538 * This is used by PE to configure the key information on a given station.
2539 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2540 * a preconfigured key from a BSS the station assoicated with; otherwise
2541 * a new key descriptor is created based on the key field.
2542 */
2543
2544typedef PACKED_PRE struct PACKED_POST
2545{
2546 tHalMsgHeader header;
2547 tSetStaKeyParams setStaKeyParams;
2548} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2549
2550/*---------------------------------------------------------------------------
2551 WLAN_HAL_SET_STAKEY_RSP,
2552---------------------------------------------------------------------------*/
2553typedef PACKED_PRE struct PACKED_POST
2554{
2555 /*success or failure */
2556 tANI_U32 status;
2557
2558} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2559
2560typedef PACKED_PRE struct PACKED_POST
2561{
2562 tHalMsgHeader header;
2563 tSetStaKeyRspParams setStaKeyRspParams;
2564} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2565
2566/*---------------------------------------------------------------------------
2567 WLAN_HAL_RMV_BSSKEY_REQ,
2568---------------------------------------------------------------------------*/
2569/*
2570 * This is used by PE to remove keys for a given BSS.
2571 */
2572typedef PACKED_PRE struct PACKED_POST
2573
2574{
2575 /*BSS Index of the BSS*/
2576 tANI_U8 bssIdx;
Dino Mycle8afbac12014-07-04 22:06:17 +05302577
Jeff Johnson295189b2012-06-20 16:38:30 -07002578 /*Encryption Type used with peer*/
2579 tAniEdType encType;
2580
2581 /*Key Id*/
2582 tANI_U8 keyId;
2583
2584 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2585 tAniWepType wepType;
2586
2587} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2588
2589typedef PACKED_PRE struct PACKED_POST
2590{
2591 tHalMsgHeader header;
2592 tRemoveBssKeyParams removeBssKeyParams;
2593} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2594
2595/*---------------------------------------------------------------------------
2596 WLAN_HAL_RMV_BSSKEY_RSP,
2597---------------------------------------------------------------------------*/
2598typedef PACKED_PRE struct PACKED_POST
2599{
2600 /*success or failure */
2601 tANI_U32 status;
2602
2603} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2604
2605typedef PACKED_PRE struct PACKED_POST
2606{
2607 tHalMsgHeader header;
2608 tRemoveBssKeyRspParams removeBssKeyRspParams;
2609} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2610
2611/*---------------------------------------------------------------------------
2612 WLAN_HAL_RMV_STAKEY_REQ,
2613---------------------------------------------------------------------------*/
2614/*
2615 * This is used by PE to Remove the key information on a given station.
2616 */
2617typedef PACKED_PRE struct PACKED_POST
2618{
2619 /*STA Index*/
2620 tANI_U16 staIdx;
2621
2622 /*Encryption Type used with peer*/
2623 tAniEdType encType;
2624
2625 /*Key Id*/
2626 tANI_U8 keyId;
2627
2628 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2629 the same key is used for both broadcast and unicast.*/
2630 tANI_BOOLEAN unicast;
2631
2632} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2633
2634typedef PACKED_PRE struct PACKED_POST
2635{
2636 tHalMsgHeader header;
2637 tRemoveStaKeyParams removeStaKeyParams;
2638} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2639
2640/*---------------------------------------------------------------------------
2641 WLAN_HAL_RMV_STAKEY_RSP,
2642---------------------------------------------------------------------------*/
2643typedef PACKED_PRE struct PACKED_POST
2644{
2645 /*success or failure */
2646 tANI_U32 status;
2647} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2648
2649typedef PACKED_PRE struct PACKED_POST
2650{
2651 tHalMsgHeader header;
2652 tRemoveStaKeyRspParams removeStaKeyRspParams;
2653} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2654
Jeff Johnsone7245742012-09-05 17:12:55 -07002655#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002656
Jeff Johnsone7245742012-09-05 17:12:55 -07002657#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002658#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002659#endif
2660
2661#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002662#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002663#endif
2664
2665/*-------------------------------------------------------------------------
2666WLAN_HAL_START_OEM_DATA_REQ
2667--------------------------------------------------------------------------*/
2668typedef PACKED_PRE struct PACKED_POST
2669{
2670 tANI_U32 status;
2671 tSirMacAddr selfMacAddr;
2672 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2673} tStartOemDataReqParams, *tpStartOemDataReqParams;
2674
2675typedef PACKED_PRE struct PACKED_POST
2676{
2677 tHalMsgHeader header;
2678 tStartOemDataReqParams startOemDataReqParams;
2679} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2680
2681/*-------------------------------------------------------------------------
2682WLAN_HAL_START_OEM_DATA_RSP
2683--------------------------------------------------------------------------*/
2684
2685typedef PACKED_PRE struct PACKED_POST
2686{
2687 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2688} tStartOemDataRspParams, *tpStartOemDataRspParams;
2689
2690typedef PACKED_PRE struct PACKED_POST
2691{
2692 tHalMsgHeader header;
2693 tStartOemDataRspParams startOemDataRspParams;
2694} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2695
2696#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002697
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002698/*---------------------------------------------------------------------------
2699WLAN_HAL_CH_SWITCH_V1_REQ
2700---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002701
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002702typedef PACKED_PRE struct PACKED_POST
2703{
2704 /* Channel number */
2705 tANI_U8 channelNumber;
2706
2707 /* Local power constraint */
2708 tANI_U8 localPowerConstraint;
2709
2710 /*Secondary channel offset */
2711 ePhyChanBondState secondaryChannelOffset;
2712
2713 //HAL fills in the tx power used for mgmt frames in this field.
2714 tPowerdBm txMgmtPower;
2715
2716 /* Max TX power */
2717 tPowerdBm maxTxPower;
2718
2719 /* Self STA MAC */
2720 tSirMacAddr selfStaMacAddr;
2721
2722 /*VO WIFI comment: BSSID needed to identify session. As the request has
2723 * power constraints, this should be applied only to that session
2724 * Since MTU timing and EDCA are sessionized, this struct needs to be
2725 * sessionized and bssid needs to be out of the VOWifi feature flag
2726 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002727 * mantain backward compatbility
2728 * by way of ignoring if using new host/old FW or old host/new FW since
2729 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002730 */
2731 tSirMacAddr bssId;
2732
2733 /* Source of Channel Switch */
2734 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002735
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002736} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2737
2738typedef PACKED_PRE struct PACKED_POST
2739{
2740 tHalMsgHeader header;
2741 tSwitchChannelParams_V1 switchChannelParams_V1;
2742} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2743
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002744/*---------------------------------------------------------------------------
2745WLAN_HAL_CH_SWITCH_V1_RSP
2746---------------------------------------------------------------------------*/
2747
2748typedef PACKED_PRE struct PACKED_POST
2749{
2750 /* Status */
2751 tANI_U32 status;
2752
2753 /* Channel number - same as in request*/
2754 tANI_U8 channelNumber;
2755
2756 /* HAL fills in the tx power used for mgmt frames in this field */
2757 tPowerdBm txMgmtPower;
2758
2759 /* BSSID needed to identify session - same as in request*/
2760 tSirMacAddr bssId;
2761
2762 /* Source of Channel Switch */
2763 eHalChanSwitchSource channelSwitchSrc;
2764
2765} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2766
2767typedef PACKED_PRE struct PACKED_POST
2768{
2769 tHalMsgHeader header;
2770 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2771} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002772
2773/*---------------------------------------------------------------------------
2774WLAN_HAL_CH_SWITCH_REQ
2775---------------------------------------------------------------------------*/
2776
2777typedef PACKED_PRE struct PACKED_POST
2778{
2779 /* Channel number */
2780 tANI_U8 channelNumber;
2781
2782 /* Local power constraint */
2783 tANI_U8 localPowerConstraint;
2784
2785 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002786 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002787
2788 //HAL fills in the tx power used for mgmt frames in this field.
2789 tPowerdBm txMgmtPower;
2790
2791 /* Max TX power */
2792 tPowerdBm maxTxPower;
Dino Mycle8afbac12014-07-04 22:06:17 +05302793
Jeff Johnson295189b2012-06-20 16:38:30 -07002794 /* Self STA MAC */
2795 tSirMacAddr selfStaMacAddr;
2796
2797 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2798 this should be applied only to that session*/
2799 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2800 * bssid needs to be out of the VOWifi feature flag */
2801 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2802 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2803 */
2804 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302805
Jeff Johnson295189b2012-06-20 16:38:30 -07002806}tSwitchChannelParams, *tpSwitchChannelParams;
2807
2808typedef PACKED_PRE struct PACKED_POST
2809{
2810 tHalMsgHeader header;
2811 tSwitchChannelParams switchChannelParams;
2812} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2813
2814/*---------------------------------------------------------------------------
2815WLAN_HAL_CH_SWITCH_RSP
2816---------------------------------------------------------------------------*/
2817
2818typedef PACKED_PRE struct PACKED_POST
2819{
2820 /* Status */
2821 tANI_U32 status;
2822
2823 /* Channel number - same as in request*/
2824 tANI_U8 channelNumber;
2825
2826 /* HAL fills in the tx power used for mgmt frames in this field */
2827 tPowerdBm txMgmtPower;
2828
2829 /* BSSID needed to identify session - same as in request*/
2830 tSirMacAddr bssId;
Dino Mycle8afbac12014-07-04 22:06:17 +05302831
Jeff Johnson295189b2012-06-20 16:38:30 -07002832}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2833
2834typedef PACKED_PRE struct PACKED_POST
2835{
2836 tHalMsgHeader header;
2837 tSwitchChannelRspParams switchChannelRspParams;
2838} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2839
2840/*---------------------------------------------------------------------------
2841WLAN_HAL_UPD_EDCA_PARAMS_REQ
2842---------------------------------------------------------------------------*/
2843
2844typedef PACKED_PRE struct PACKED_POST
2845{
2846 /*BSS Index*/
2847 tANI_U16 bssIdx;
2848
2849 /* Best Effort */
Dino Mycle8afbac12014-07-04 22:06:17 +05302850 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002851
2852 /* Background */
2853 tSirMacEdcaParamRecord acbk;
Dino Mycle8afbac12014-07-04 22:06:17 +05302854
Jeff Johnson295189b2012-06-20 16:38:30 -07002855 /* Video */
2856 tSirMacEdcaParamRecord acvi;
2857
2858 /* Voice */
2859 tSirMacEdcaParamRecord acvo;
2860
2861} tEdcaParams, *tpEdcaParams;
2862
2863typedef PACKED_PRE struct PACKED_POST
2864{
2865 tHalMsgHeader header;
2866 tEdcaParams edcaParams;
2867} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2868
2869/*---------------------------------------------------------------------------
2870WLAN_HAL_UPD_EDCA_PARAMS_RSP
2871---------------------------------------------------------------------------*/
2872typedef PACKED_PRE struct PACKED_POST
2873{
2874 /*success or failure */
2875 tANI_U32 status;
2876} tEdcaRspParams, *tpEdcaRspParams;
2877
2878typedef PACKED_PRE struct PACKED_POST
2879{
2880 tHalMsgHeader header;
2881 tEdcaRspParams edcaRspParams;
2882} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2883
2884
2885
2886/*---------------------------------------------------------------------------
2887 * WLAN_HAL_GET_STATS_REQ
2888 *--------------------------------------------------------------------------*/
2889typedef PACKED_PRE struct PACKED_POST
2890
2891{
2892 /* Index of STA to which the statistics */
2893 tANI_U16 staIdx;
2894
2895 /* Encryption mode */
2896 tANI_U8 encMode;
Dino Mycle8afbac12014-07-04 22:06:17 +05302897
Jeff Johnson295189b2012-06-20 16:38:30 -07002898 /* status */
2899 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05302900
Jeff Johnson295189b2012-06-20 16:38:30 -07002901 /* Statistics */
2902 tANI_U32 sendBlocks;
2903 tANI_U32 recvBlocks;
2904 tANI_U32 replays;
2905 tANI_U8 micErrorCnt;
2906 tANI_U32 protExclCnt;
2907 tANI_U16 formatErrCnt;
2908 tANI_U16 unDecryptableCnt;
2909 tANI_U32 decryptErrCnt;
2910 tANI_U32 decryptOkCnt;
2911} tDpuStatsParams, * tpDpuStatsParams;
2912
2913typedef PACKED_PRE struct PACKED_POST
2914{
2915 /* Valid STA Idx for per STA stats request */
2916 tANI_U32 staId;
2917
2918 /* Categories of stats requested as specified in eHalStatsMask*/
2919 tANI_U32 statsMask;
2920}tHalStatsReqParams, *tpHalStatsReqParams;
2921
2922typedef PACKED_PRE struct PACKED_POST
2923{
2924 tHalMsgHeader header;
2925 tHalStatsReqParams statsReqParams;
2926} tHalStatsReqMsg, *tpHalStatsReqMsg;
2927
2928/*---------------------------------------------------------------------------
2929 * WLAN_HAL_GET_STATS_RSP
2930 *--------------------------------------------------------------------------*/
2931
2932typedef PACKED_PRE struct PACKED_POST
2933{
2934 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2935 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2936 // station successfully transmitted after more than one retransmission attempt
2937
Dino Mycle8afbac12014-07-04 22:06:17 +05302938 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2939 //(with and without retries, including multi-cast, broadcast)
2940 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2941 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002942 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2943 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2944 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2945 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 +05302946 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2947 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 -07002948 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2949 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 +05302950 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2951 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002952 //to provide this.
2953}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2954
2955
2956// defines tx_rate_flags
2957typedef enum eTxRateInfo
2958{
2959 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2960 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2961 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2962 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07002963 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2964 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2965 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
2966 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
2967 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
2968 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
2969} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07002970
2971
2972typedef PACKED_PRE struct PACKED_POST
2973{
Dino Mycle8afbac12014-07-04 22:06:17 +05302974 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 -07002975 //or MMPDU frames
Dino Mycle8afbac12014-07-04 22:06:17 +05302976 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 -07002977 //or MMPDU frames when a promiscuous packet filter was enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05302978 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2979 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002980 //to a supported rate and the order shall be the same as the supporteRates parameter.
Dino Mycle8afbac12014-07-04 22:06:17 +05302981 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2982 //for eg: if it is 10.5dBm, the value would be 105
2983 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2984 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002985
Dino Mycle8afbac12014-07-04 22:06:17 +05302986 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2987 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002988 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Dino Mycle8afbac12014-07-04 22:06:17 +05302989 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2990 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002991}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2992
2993typedef PACKED_PRE struct PACKED_POST
2994{
Dino Mycle8afbac12014-07-04 22:06:17 +05302995 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2996 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002997 //is enabled
Dino Mycle8afbac12014-07-04 22:06:17 +05302998 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 -07002999 //because of MIC failures
Dino Mycle8afbac12014-07-04 22:06:17 +05303000 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 -07003001 //because of a TKIP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303002 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 -07003003 //invalid AES-CCMP format
Dino Mycle8afbac12014-07-04 22:06:17 +05303004 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 -07003005 //the AES-CCMP replay protection procedure
Dino Mycle8afbac12014-07-04 22:06:17 +05303006 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 -07003007 //errors detected by the AES-CCMP decryption algorithm
Dino Mycle8afbac12014-07-04 22:06:17 +05303008 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 -07003009 //not available on the 802.11 station
Dino Mycle8afbac12014-07-04 22:06:17 +05303010 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 -07003011 //because of a WEP ICV error
Dino Mycle8afbac12014-07-04 22:06:17 +05303012 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 -07003013 //decrypted
3014 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
3015
3016}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Dino Mycle8afbac12014-07-04 22:06:17 +05303017
Jeff Johnson295189b2012-06-20 16:38:30 -07003018typedef PACKED_PRE struct PACKED_POST
3019{
3020 tAniGlobalSecurityStats ucStats;
3021 tAniGlobalSecurityStats mcbcStats;
3022}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
3023
3024typedef PACKED_PRE struct PACKED_POST
3025{
Dino Mycle8afbac12014-07-04 22:06:17 +05303026 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
3027 //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 -07003028 //address 1 field
3029 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 +05303030 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 -07003031 //primary channel
3032 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 +05303033 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 -07003034 //when an A-MPDU is received
Dino Mycle8afbac12014-07-04 22:06:17 +05303035 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3036 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003037 //decoded correctly
3038}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3039
3040typedef PACKED_PRE struct PACKED_POST
3041{
Dino Mycle8afbac12014-07-04 22:06:17 +05303042 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 -07003043 //through a received 802.11 ACK frame
Dino Mycle8afbac12014-07-04 22:06:17 +05303044 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3045 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 -07003046 //is transmitted
3047}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3048
3049typedef PACKED_PRE struct PACKED_POST
3050{
3051 /* Success or Failure */
3052 tANI_U32 status;
3053
3054 /* STA Idx */
3055 tANI_U32 staId;
3056
3057 /* Categories of STATS being returned as per eHalStatsMask*/
3058 tANI_U32 statsMask;
3059
3060 /* message type is same as the request type */
3061 tANI_U16 msgType;
3062
3063 /* length of the entire request, includes the pStatsBuf length too */
Dino Mycle8afbac12014-07-04 22:06:17 +05303064 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003065
3066} tHalStatsRspParams, *tpHalStatsRspParams;
3067
3068
3069
3070typedef PACKED_PRE struct PACKED_POST
3071{
3072 tHalMsgHeader header;
3073 tHalStatsRspParams statsRspParams;
3074} tHalStatsRspMsg, *tpHalStatsRspMsg;
3075
3076/*---------------------------------------------------------------------------
Abhishek Singh725c1582014-11-24 11:47:48 +05303077 * WLAN_HAL_FW_STATS_REQ
3078 *---------------------------------------------------------------------------*/
3079 typedef PACKED_PRE struct PACKED_POST
3080{
3081 tANI_U32 type;
3082}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
3083
3084typedef PACKED_PRE struct PACKED_POST
3085{
3086 tHalMsgHeader header;
3087 tHalfwStatsReqParams fwstatsReqParams;
3088} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
3089
3090/*---------------------------------------------------------------------------
3091 * WLAN_HAL_FW_STATS_RSP
3092 *---------------------------------------------------------------------------*/
3093 typedef PACKED_PRE struct PACKED_POST
3094{
3095 tANI_U32 type;
3096 tANI_U32 length;
3097 tANI_U8 data[1];
3098
3099}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
3100
3101typedef PACKED_PRE struct PACKED_POST
3102{
3103 tHalMsgHeader header;
3104 tHalfwStatsRspParams fwstatsRspParams;
3105} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
3106
3107typedef enum
3108{
3109 FW_UBSP_STATS = 1,
3110} fwstatstype;
3111
3112
3113/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003114 * WLAN_HAL_SET_LINK_ST_REQ
3115 *--------------------------------------------------------------------------*/
3116typedef PACKED_PRE struct PACKED_POST
3117{
3118 tSirMacAddr bssid;
3119 tSirLinkState state;
3120 tSirMacAddr selfMacAddr;
3121} tLinkStateParams, *tpLinkStateParams;
3122
3123typedef PACKED_PRE struct PACKED_POST
3124{
3125 tHalMsgHeader header;
3126 tLinkStateParams linkStateParams;
3127} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3128
3129/*---------------------------------------------------------------------------
3130 * WLAN_HAL_SET_LINK_ST_RSP
3131 *--------------------------------------------------------------------------*/
3132
3133typedef PACKED_PRE struct PACKED_POST
3134{
3135 /*success or failure */
3136 tANI_U32 status;
3137} tLinkStateRspParams, *tpLinkStateRspParams;
3138
3139typedef PACKED_PRE struct PACKED_POST
3140{
3141 tHalMsgHeader header;
3142 tLinkStateRspParams linkStateRspParams;
3143} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3144
3145/*---------------------------------------------------------------------------
3146 * WLAN_HAL_ADD_TS_REQ
3147 *--------------------------------------------------------------------------*/
3148
3149/* TSPEC Params */
3150typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3151{
Jeff Johnson295189b2012-06-20 16:38:30 -07003152 tANI_U16 trafficType : 1;
3153 tANI_U16 tsid : 4;
3154 tANI_U16 direction : 2;
3155 tANI_U16 accessPolicy : 2;
3156 tANI_U16 aggregation : 1;
3157 tANI_U16 psb : 1;
3158 tANI_U16 userPrio : 3;
3159 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003160} __ani_attr_packed tSirMacTSInfoTfc;
3161
3162/* Flag to schedule the traffic type */
3163typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3164{
Jeff Johnson295189b2012-06-20 16:38:30 -07003165 tANI_U8 schedule : 1;
3166 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003167} __ani_attr_packed tSirMacTSInfoSch;
3168
3169/* Traffic and scheduling info */
3170typedef __ani_attr_pre_packed struct sSirMacTSInfo
3171{
3172 tSirMacTSInfoTfc traffic;
3173 tSirMacTSInfoSch schedule;
3174} __ani_attr_packed tSirMacTSInfo;
3175
3176/* Information elements */
3177typedef __ani_attr_pre_packed struct sSirMacTspecIE
3178{
3179 tANI_U8 type;
3180 tANI_U8 length;
3181 tSirMacTSInfo tsinfo;
3182 tANI_U16 nomMsduSz;
3183 tANI_U16 maxMsduSz;
3184 tANI_U32 minSvcInterval;
3185 tANI_U32 maxSvcInterval;
3186 tANI_U32 inactInterval;
3187 tANI_U32 suspendInterval;
3188 tANI_U32 svcStartTime;
3189 tANI_U32 minDataRate;
3190 tANI_U32 meanDataRate;
3191 tANI_U32 peakDataRate;
3192 tANI_U32 maxBurstSz;
3193 tANI_U32 delayBound;
3194 tANI_U32 minPhyRate;
3195 tANI_U16 surplusBw;
3196 tANI_U16 mediumTime;
3197}__ani_attr_packed tSirMacTspecIE;
3198
3199typedef PACKED_PRE struct PACKED_POST
3200{
3201 /* Station Index */
3202 tANI_U16 staIdx;
3203
3204 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3205 tANI_U16 tspecIdx;
3206
3207 /* To program TPE with required parameters */
3208 tSirMacTspecIE tspec;
3209
3210 /* U-APSD Flags: 1b per AC. Encoded as follows:
3211 b7 b6 b5 b4 b3 b2 b1 b0 =
3212 X X X X BE BK VI VO */
3213 tANI_U8 uAPSD;
3214
3215 /* These parameters are for all the access categories */
3216 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3217 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3218 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Dino Mycle8afbac12014-07-04 22:06:17 +05303219
Jeff Johnson295189b2012-06-20 16:38:30 -07003220} tAddTsParams, *tpAddTsParams;
3221
3222typedef PACKED_PRE struct PACKED_POST
3223{
3224 tHalMsgHeader header;
3225 tAddTsParams addTsParams;
3226} tAddTsReqMsg, *tpAddTsReqMsg;
3227
3228/*---------------------------------------------------------------------------
3229 * WLAN_HAL_ADD_TS_RSP
3230 *--------------------------------------------------------------------------*/
3231
3232typedef PACKED_PRE struct PACKED_POST
3233{
3234 /*success or failure */
3235 tANI_U32 status;
3236} tAddTsRspParams, *tpAddTsRspParams;
3237
3238typedef PACKED_PRE struct PACKED_POST
3239{
3240 tHalMsgHeader header;
3241 tAddTsRspParams addTsRspParams;
3242} tAddTsRspMsg, *tpAddTsRspMsg;
3243
3244
3245/*---------------------------------------------------------------------------
3246 * WLAN_HAL_DEL_TS_REQ
3247 *--------------------------------------------------------------------------*/
3248
3249typedef PACKED_PRE struct PACKED_POST
3250{
3251 /* Station Index */
3252 tANI_U16 staIdx;
3253
3254 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3255 tANI_U16 tspecIdx;
3256
3257 /* To lookup station id using the mac address */
Dino Mycle8afbac12014-07-04 22:06:17 +05303258 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003259
3260} tDelTsParams, *tpDelTsParams;
3261
3262typedef PACKED_PRE struct PACKED_POST
3263{
3264 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303265 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003266} tDelTsReqMsg, *tpDelTsReqMsg;
3267
3268/*---------------------------------------------------------------------------
3269 * WLAN_HAL_DEL_TS_RSP
3270 *--------------------------------------------------------------------------*/
3271
3272typedef PACKED_PRE struct PACKED_POST
3273{
3274 /*success or failure */
3275 tANI_U32 status;
3276} tDelTsRspParams, *tpDelTsRspParams;
3277
3278typedef PACKED_PRE struct PACKED_POST
3279{
3280 tHalMsgHeader header;
3281 tDelTsRspParams delTsRspParams;
3282} tDelTsRspMsg, *tpDelTsRspMsg;
3283
3284/* End of TSpec Parameters */
3285
3286/* Start of BLOCK ACK related Parameters */
3287
3288/*---------------------------------------------------------------------------
3289 * WLAN_HAL_ADD_BA_SESSION_REQ
3290 *--------------------------------------------------------------------------*/
3291
3292typedef PACKED_PRE struct PACKED_POST
3293{
3294 /* Station Index */
3295 tANI_U16 staIdx;
3296
3297 /* Peer MAC Address */
3298 tSirMacAddr peerMacAddr;
3299
3300 /* ADDBA Action Frame dialog token
3301 HAL will not interpret this object */
3302 tANI_U8 baDialogToken;
3303
3304 /* TID for which the BA is being setup
3305 This identifies the TC or TS of interest */
3306 tANI_U8 baTID;
3307
3308 /* 0 - Delayed BA (Not supported)
3309 1 - Immediate BA */
3310 tANI_U8 baPolicy;
3311
3312 /* Indicates the number of buffers for this TID (baTID)
3313 NOTE - This is the requested buffer size. When this
3314 is processed by HAL and subsequently by HDD, it is
3315 possible that HDD may change this buffer size. Any
3316 change in the buffer size should be noted by PE and
3317 advertized appropriately in the ADDBA response */
3318 tANI_U16 baBufferSize;
3319
3320 /* BA timeout in TU's 0 means no timeout will occur */
3321 tANI_U16 baTimeout;
3322
3323 /* b0..b3 - Fragment Number - Always set to 0
3324 b4..b15 - Starting Sequence Number of first MSDU
3325 for which this BA is setup */
3326 tANI_U16 baSSN;
3327
3328 /* ADDBA direction
3329 1 - Originator
3330 0 - Recipient */
3331 tANI_U8 baDirection;
3332} tAddBASessionParams, *tpAddBASessionParams;
3333
3334typedef PACKED_PRE struct PACKED_POST
3335{
3336 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303337 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003338}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3339
3340/*---------------------------------------------------------------------------
3341 * WLAN_HAL_ADD_BA_SESSION_RSP
3342 *--------------------------------------------------------------------------*/
3343
3344typedef PACKED_PRE struct PACKED_POST
3345{
3346 /*success or failure */
3347 tANI_U32 status;
3348
3349 /* Dialog token */
3350 tANI_U8 baDialogToken;
3351
3352 /* TID for which the BA session has been setup */
3353 tANI_U8 baTID;
3354
3355 /* BA Buffer Size allocated for the current BA session */
3356 tANI_U8 baBufferSize;
3357
3358 tANI_U8 baSessionID;
3359
3360 /* Reordering Window buffer */
3361 tANI_U8 winSize;
Dino Mycle8afbac12014-07-04 22:06:17 +05303362
Jeff Johnson295189b2012-06-20 16:38:30 -07003363 /*Station Index to id the sta */
3364 tANI_U8 STAID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303365
Jeff Johnson295189b2012-06-20 16:38:30 -07003366 /* Starting Sequence Number */
3367 tANI_U16 SSN;
3368} tAddBASessionRspParams, *tpAddBASessionRspParams;
3369
3370typedef PACKED_PRE struct PACKED_POST
3371{
3372 tHalMsgHeader header;
3373 tAddBASessionRspParams addBASessionRspParams;
3374} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3375
3376/*---------------------------------------------------------------------------
3377 * WLAN_HAL_ADD_BA_REQ
3378 *--------------------------------------------------------------------------*/
3379
3380typedef PACKED_PRE struct PACKED_POST
3381{
3382 /* Session Id */
3383 tANI_U8 baSessionID;
3384
3385 /* Reorder Window Size */
3386 tANI_U8 winSize;
3387
3388#ifdef FEATURE_ON_CHIP_REORDERING
3389 tANI_BOOLEAN isReorderingDoneOnChip;
3390#endif
3391} tAddBAParams, *tpAddBAParams;
3392
3393typedef PACKED_PRE struct PACKED_POST
3394{
3395 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303396 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003397} tAddBAReqMsg, *tpAddBAReqMsg;
3398
3399
3400/*---------------------------------------------------------------------------
3401 * WLAN_HAL_ADD_BA_RSP
3402 *--------------------------------------------------------------------------*/
3403
3404typedef PACKED_PRE struct PACKED_POST
3405{
3406 /*success or failure */
3407 tANI_U32 status;
3408
3409 /* Dialog token */
3410 tANI_U8 baDialogToken;
Dino Mycle8afbac12014-07-04 22:06:17 +05303411
Jeff Johnson295189b2012-06-20 16:38:30 -07003412} tAddBARspParams, *tpAddBARspParams;
3413
3414typedef PACKED_PRE struct PACKED_POST
3415{
3416 tHalMsgHeader header;
3417 tAddBARspParams addBARspParams;
3418} tAddBARspMsg, *tpAddBARspMsg;
3419
3420
3421/*---------------------------------------------------------------------------
3422 * WLAN_HAL_TRIGGER_BA_REQ
3423 *--------------------------------------------------------------------------*/
3424
3425
3426typedef struct sAddBaInfo
3427{
3428 tANI_U16 fBaEnable : 1;
3429 tANI_U16 startingSeqNum: 12;
3430 tANI_U16 reserved : 3;
3431}tAddBaInfo, *tpAddBaInfo;
3432
3433typedef struct sTriggerBaRspCandidate
3434{
3435 tSirMacAddr staAddr;
3436 tAddBaInfo baInfo[STACFG_MAX_TC];
3437}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3438
3439typedef struct sTriggerBaCandidate
3440{
3441 tANI_U8 staIdx;
3442 tANI_U8 tidBitmap;
3443}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3444
3445typedef PACKED_PRE struct PACKED_POST
3446{
3447 /* Session Id */
3448 tANI_U8 baSessionID;
3449
Dino Mycle8afbac12014-07-04 22:06:17 +05303450 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003451 * Candidate List(tTriggerBaCandidate)
3452 */
3453 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303454
Jeff Johnson295189b2012-06-20 16:38:30 -07003455} tTriggerBAParams, *tpTriggerBAParams;
3456
3457typedef PACKED_PRE struct PACKED_POST
3458{
3459 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303460 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003461} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3462
3463
3464/*---------------------------------------------------------------------------
3465 * WLAN_HAL_TRIGGER_BA_RSP
3466 *--------------------------------------------------------------------------*/
3467
3468typedef PACKED_PRE struct PACKED_POST
3469{
Dino Mycle8afbac12014-07-04 22:06:17 +05303470
Jeff Johnson295189b2012-06-20 16:38:30 -07003471 /* TO SUPPORT BT-AMP */
Dino Mycle8afbac12014-07-04 22:06:17 +05303472 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003473
3474 /* success or failure */
3475 tANI_U32 status;
3476
Dino Mycle8afbac12014-07-04 22:06:17 +05303477 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003478 * Rsp Candidate List(tTriggerRspBaCandidate)
3479 */
3480 tANI_U16 baCandidateCnt;
Dino Mycle8afbac12014-07-04 22:06:17 +05303481
Jeff Johnson295189b2012-06-20 16:38:30 -07003482
3483} tTriggerBARspParams, *tpTriggerBARspParams;
3484
3485typedef PACKED_PRE struct PACKED_POST
3486{
3487 tHalMsgHeader header;
3488 tTriggerBARspParams triggerBARspParams;
3489} tTriggerBARspMsg, *tpTriggerBARspMsg;
3490
3491/*---------------------------------------------------------------------------
3492 * WLAN_HAL_DEL_BA_REQ
3493 *--------------------------------------------------------------------------*/
3494
3495typedef PACKED_PRE struct PACKED_POST
3496{
3497 /* Station Index */
3498 tANI_U16 staIdx;
3499
3500 /* TID for which the BA session is being deleted */
3501 tANI_U8 baTID;
3502
3503 /* DELBA direction
3504 1 - Originator
3505 0 - Recipient */
Dino Mycle8afbac12014-07-04 22:06:17 +05303506 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003507} tDelBAParams, *tpDelBAParams;
3508
3509typedef PACKED_PRE struct PACKED_POST
3510{
3511 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303512 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003513} tDelBAReqMsg, *tpDelBAReqMsg;
3514
3515/*---------------------------------------------------------------------------
3516 * WLAN_HAL_DEL_BA_RSP
3517 *--------------------------------------------------------------------------*/
3518
3519typedef PACKED_PRE struct PACKED_POST
3520{
3521 /* success or failure */
3522 tANI_U32 status;
3523} tDelBARspParams, *tpDelBARspParams;
3524
3525typedef PACKED_PRE struct PACKED_POST
3526{
3527 tHalMsgHeader header;
3528 tDelBARspParams delBARspParams;
3529} tDelBARspMsg, *tpDelBARspMsg;
3530
3531
Jeff Johnson295189b2012-06-20 16:38:30 -07003532/*---------------------------------------------------------------------------
3533 * WLAN_HAL_TSM_STATS_REQ
3534 *--------------------------------------------------------------------------*/
3535typedef PACKED_PRE struct PACKED_POST
3536{
3537 /* Traffic Id */
3538 tANI_U8 tsmTID;
3539
3540 tSirMacAddr bssId;
3541} tTsmStatsParams, *tpTsmStatsParams;
3542
3543typedef PACKED_PRE struct PACKED_POST
3544{
3545 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303546 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003547} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3548
3549
3550/*---------------------------------------------------------------------------
3551 * WLAN_HAL_TSM_STATS_RSP
3552 *--------------------------------------------------------------------------*/
3553typedef PACKED_PRE struct PACKED_POST
3554{
3555 /*success or failure */
3556 tANI_U32 status;
3557
Dino Mycle8afbac12014-07-04 22:06:17 +05303558 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003559 tANI_U16 UplinkPktQueueDly;
3560
Dino Mycle8afbac12014-07-04 22:06:17 +05303561 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003562 tANI_U16 UplinkPktQueueDlyHist[4];
3563
Dino Mycle8afbac12014-07-04 22:06:17 +05303564 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003565 tANI_U32 UplinkPktTxDly;
3566
Dino Mycle8afbac12014-07-04 22:06:17 +05303567 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003568 tANI_U16 UplinkPktLoss;
3569
Dino Mycle8afbac12014-07-04 22:06:17 +05303570 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003571 tANI_U16 UplinkPktCount;
3572
Dino Mycle8afbac12014-07-04 22:06:17 +05303573 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003574 tANI_U8 RoamingCount;
3575
Dino Mycle8afbac12014-07-04 22:06:17 +05303576 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003577 tANI_U16 RoamingDly;
3578} tTsmStatsRspParams, *tpTsmStatsRspParams;
3579
3580typedef PACKED_PRE struct PACKED_POST
3581{
3582 tHalMsgHeader header;
3583 tTsmStatsRspParams tsmStatsRspParams;
3584} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3585
3586
Jeff Johnson295189b2012-06-20 16:38:30 -07003587/*---------------------------------------------------------------------------
3588 * WLAN_HAL_SET_KEYDONE_MSG
3589 *--------------------------------------------------------------------------*/
3590
3591typedef PACKED_PRE struct PACKED_POST
3592{
3593 /*bssid of the keys */
3594 tANI_U8 bssidx;
3595 tANI_U8 encType;
3596} tSetKeyDoneParams, *tpSetKeyDoneParams;
3597
3598typedef PACKED_PRE struct PACKED_POST
3599{
3600 tHalMsgHeader header;
3601 tSetKeyDoneParams setKeyDoneParams;
3602} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3603
3604/*---------------------------------------------------------------------------
3605 * WLAN_HAL_DOWNLOAD_NV_REQ
3606 *--------------------------------------------------------------------------*/
3607typedef PACKED_PRE struct PACKED_POST
3608{
3609 /* Fragment sequence number of the NV Image. Note that NV Image might not
3610 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Dino Mycle8afbac12014-07-04 22:06:17 +05303611 * can hence choose to chop the NV blob into multiple fragments starting with
3612 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003613 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3614 * concatenated together by HAL without any padding bytes in between.*/
3615 tANI_U16 fragNumber;
3616
3617 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Dino Mycle8afbac12014-07-04 22:06:17 +05303618 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003619 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3620 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3621 tANI_U16 isLastFragment;
3622
3623 /* NV Image size (number of bytes) */
3624 tANI_U32 nvImgBufferSize;
3625
3626 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3627 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3628} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3629
3630typedef PACKED_PRE struct PACKED_POST
3631{
3632 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3633 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3634 tHalMsgHeader header;
3635 tHalNvImgDownloadReqParams nvImageReqParams;
3636} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3637
3638/*---------------------------------------------------------------------------
3639 * WLAN_HAL_DOWNLOAD_NV_RSP
3640 *--------------------------------------------------------------------------*/
3641typedef PACKED_PRE struct PACKED_POST
3642{
3643 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3644 * after each fragment */
3645 tANI_U32 status;
3646} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3647
3648typedef PACKED_PRE struct PACKED_POST
3649{
3650 tHalMsgHeader header;
3651 tHalNvImgDownloadRspParams nvImageRspParams;
3652} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3653
3654/*---------------------------------------------------------------------------
3655 * WLAN_HAL_STORE_NV_IND
3656 *--------------------------------------------------------------------------*/
3657typedef PACKED_PRE struct PACKED_POST
3658{
3659 /* NV Item */
3660 eNvTable tableID;
3661
3662 /* Size of NV Blob */
3663 tANI_U32 nvBlobSize;
3664
Dino Mycle8afbac12014-07-04 22:06:17 +05303665 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003666 * NV blob i.e. uint8[nvBlobSize] */
3667} tHalNvStoreParams, *tpHalNvStoreParams;
3668
3669typedef PACKED_PRE struct PACKED_POST
3670{
3671 /* Note: The length specified in tHalNvStoreInd messages should be
3672 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3673 tHalMsgHeader header;
3674 tHalNvStoreParams nvStoreParams;
3675} tHalNvStoreInd, *tpHalNvStoreInd;
3676
3677/* End of Block Ack Related Parameters */
3678
3679/*---------------------------------------------------------------------------
3680 * WLAN_HAL_MIC_FAILURE_IND
3681 *--------------------------------------------------------------------------*/
3682
3683#define SIR_CIPHER_SEQ_CTR_SIZE 6
3684
3685typedef PACKED_PRE struct PACKED_POST
3686{
Dino Mycle8afbac12014-07-04 22:06:17 +05303687 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003688 tSirMacAddr taMacAddr; //transmitter address
3689 tSirMacAddr dstMacAddr;
Dino Mycle8afbac12014-07-04 22:06:17 +05303690 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003691 tANI_U8 IV1; // first byte of IV
3692 tANI_U8 keyId; // second byte of IV
3693 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3694 tSirMacAddr rxMacAddr; // receive address
3695} tSirMicFailureInfo, *tpSirMicFailureInfo;
3696
3697/* Definition for MIC failure indication
3698 MAC reports this each time a MIC failure occures on Rx TKIP packet
3699 */
3700typedef PACKED_PRE struct PACKED_POST
3701{
3702 tSirMacAddr bssId; // BSSID
3703 tSirMicFailureInfo info;
3704} tSirMicFailureInd, *tpSirMicFailureInd;
3705
3706typedef PACKED_PRE struct PACKED_POST
3707{
3708 tHalMsgHeader header;
3709 tSirMicFailureInd micFailureInd;
3710} tMicFailureIndMsg, *tpMicFailureIndMsg;
3711
Mohit Khanna4a70d262012-09-11 16:30:12 -07003712typedef PACKED_PRE struct PACKED_POST
3713{
3714 tANI_U16 opMode;
3715 tANI_U16 staId;
Dino Mycle8afbac12014-07-04 22:06:17 +05303716}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
Mohit Khanna4a70d262012-09-11 16:30:12 -07003717
3718typedef PACKED_PRE struct PACKED_POST
3719{
3720 tHalMsgHeader header;
3721 tUpdateVHTOpMode updateVhtOpMode;
3722} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3723
3724typedef PACKED_PRE struct PACKED_POST
3725{
3726 tANI_U32 status;
3727} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3728
3729typedef PACKED_PRE struct PACKED_POST
3730{
3731 tHalMsgHeader header;
3732 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3733} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3734
Jeff Johnson295189b2012-06-20 16:38:30 -07003735/*---------------------------------------------------------------------------
3736 * WLAN_HAL_UPDATE_BEACON_REQ
3737 *--------------------------------------------------------------------------*/
3738typedef PACKED_PRE struct PACKED_POST
3739{
3740
3741 tANI_U8 bssIdx;
3742
3743 //shortPreamble mode. HAL should update all the STA rates when it
3744 //receives this message
3745 tANI_U8 fShortPreamble;
3746 //short Slot time.
3747 tANI_U8 fShortSlotTime;
3748 //Beacon Interval
3749 tANI_U16 beaconInterval;
3750 //Protection related
3751 tANI_U8 llaCoexist;
3752 tANI_U8 llbCoexist;
3753 tANI_U8 llgCoexist;
3754 tANI_U8 ht20MhzCoexist;
3755 tANI_U8 llnNonGFCoexist;
3756 tANI_U8 fLsigTXOPProtectionFullSupport;
3757 tANI_U8 fRIFSMode;
3758
3759 tANI_U16 paramChangeBitmap;
3760}tUpdateBeaconParams, *tpUpdateBeaconParams;
3761
3762
3763typedef PACKED_PRE struct PACKED_POST
3764{
3765 tHalMsgHeader header;
3766 tUpdateBeaconParams updateBeaconParam;
3767} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3768
3769/*---------------------------------------------------------------------------
3770 * WLAN_HAL_UPDATE_BEACON_RSP
3771 *--------------------------------------------------------------------------*/
3772typedef PACKED_PRE struct PACKED_POST
3773{
3774 tANI_U32 status;
3775} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3776
3777typedef PACKED_PRE struct PACKED_POST
3778{
3779 tHalMsgHeader header;
3780 tUpdateBeaconRspParams updateBeaconRspParam;
3781} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3782
3783/*---------------------------------------------------------------------------
3784 * WLAN_HAL_SEND_BEACON_REQ
3785 *--------------------------------------------------------------------------*/
3786typedef PACKED_PRE struct PACKED_POST
3787{
3788 tANI_U32 beaconLength; //length of the template.
3789 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3790 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003791 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003792 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3793}tSendBeaconParams, *tpSendBeaconParams;
3794
3795
3796typedef PACKED_PRE struct PACKED_POST
3797{
3798 tHalMsgHeader header;
3799 tSendBeaconParams sendBeaconParam;
3800}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3801
3802/*---------------------------------------------------------------------------
3803 * WLAN_HAL_SEND_BEACON_RSP
3804 *--------------------------------------------------------------------------*/
3805typedef PACKED_PRE struct PACKED_POST
3806{
3807 tANI_U32 status;
3808} tSendBeaconRspParams, *tpSendBeaconRspParams;
3809
3810typedef PACKED_PRE struct PACKED_POST
3811{
3812 tHalMsgHeader header;
3813 tSendBeaconRspParams sendBeaconRspParam;
3814} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3815
3816#ifdef FEATURE_5GHZ_BAND
3817
3818/*---------------------------------------------------------------------------
3819 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3820 *--------------------------------------------------------------------------*/
3821typedef PACKED_PRE struct PACKED_POST
3822{
3823 tSirMacAddr BSSID;
Dino Mycle8afbac12014-07-04 22:06:17 +05303824 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003825}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3826
3827
3828typedef PACKED_PRE struct PACKED_POST
3829{
3830 /* Link Parameters */
3831 tSirEnableRadarInfoType EnableRadarInfo;
3832}tEnableRadarReqParams, *tpEnableRadarReqParams;
3833
3834typedef PACKED_PRE struct PACKED_POST
3835{
3836 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303837 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003838}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3839
3840/*---------------------------------------------------------------------------
3841 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3842 *--------------------------------------------------------------------------*/
3843
3844typedef PACKED_PRE struct PACKED_POST
3845{
3846 /* Link Parameters */
3847 tSirMacAddr BSSID;
3848 /* success or failure */
3849 tANI_U32 status;
3850}tEnableRadarRspParams, *tpEnableRadarRspParams;
3851
3852typedef PACKED_PRE struct PACKED_POST
3853{
3854 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303855 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003856}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3857
3858/*---------------------------------------------------------------------------
3859 *WLAN_HAL_RADAR_DETECT_INTR_IND
3860 *--------------------------------------------------------------------------*/
3861
3862typedef PACKED_PRE struct PACKED_POST
3863{
3864 tANI_U8 radarDetChannel;
3865}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3866
3867typedef PACKED_PRE struct PACKED_POST
3868{
3869 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303870 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003871}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3872
3873/*---------------------------------------------------------------------------
3874 *WLAN_HAL_RADAR_DETECT_IND
3875 *-------------------------------------------------------------------------*/
3876typedef PACKED_PRE struct PACKED_POST
3877{
3878 /*channel number in which the RADAR detected*/
3879 tANI_U8 channelNumber;
3880
3881 /*RADAR pulse width*/
3882 tANI_U16 radarPulseWidth; // in usecond
3883
3884 /*Number of RADAR pulses */
3885 tANI_U16 numRadarPulse;
3886}tRadarDetectIndParams,*tpRadarDetectIndParams;
3887
3888typedef PACKED_PRE struct PACKED_POST
3889{
3890 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303891 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003892}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3893
3894
3895/*---------------------------------------------------------------------------
3896 *WLAN_HAL_GET_TPC_REPORT_REQ
3897 *-------------------------------------------------------------------------*/
3898typedef PACKED_PRE struct PACKED_POST
3899{
3900 tSirMacAddr sta;
3901 tANI_U8 dialogToken;
3902 tANI_U8 txpower;
3903}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3904
3905
3906typedef PACKED_PRE struct PACKED_POST
3907{
3908 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303909 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003910}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3911
3912/*---------------------------------------------------------------------------
3913 * WLAN_HAL_GET_TPC_REPORT_RSP
3914 *--------------------------------------------------------------------------*/
3915
3916typedef PACKED_PRE struct PACKED_POST
3917{
3918 /* success or failure */
3919 tANI_U32 status;
3920}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3921
3922typedef PACKED_PRE struct PACKED_POST
3923{
3924 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05303925 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003926}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3927
3928#endif
3929
Jeff Johnson295189b2012-06-20 16:38:30 -07003930/*---------------------------------------------------------------------------
3931 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3932 *-------------------------------------------------------------------------*/
3933typedef PACKED_PRE struct PACKED_POST
3934{
3935 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3936 tANI_U32 probeRespTemplateLen;
3937 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3938 tSirMacAddr bssId;
3939
3940}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3941
3942typedef PACKED_PRE struct PACKED_POST
3943{
3944 tHalMsgHeader header;
3945 tSendProbeRespReqParams sendProbeRespReqParams ;
3946}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3947
3948/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05303949 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003950 *--------------------------------------------------------------------------*/
3951
3952typedef PACKED_PRE struct PACKED_POST
3953{
3954 /* success or failure */
3955 tANI_U32 status;
3956}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3957
3958typedef PACKED_PRE struct PACKED_POST
3959{
3960 tHalMsgHeader header;
3961 tSendProbeRespRspParams sendProbeRespRspParams;
3962}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3963
3964
3965/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05303966 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003967 *--------------------------------------------------------------------------*/
3968
3969typedef PACKED_PRE struct PACKED_POST
3970{
3971 /* success or failure */
3972 tANI_U32 status;
3973}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3974
3975typedef PACKED_PRE struct PACKED_POST
3976{
3977 tHalMsgHeader header;
3978 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3979}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3980
3981/*---------------------------------------------------------------------------
3982 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3983 *--------------------------------------------------------------------------*/
3984
3985typedef PACKED_PRE struct PACKED_POST
3986{
3987 tANI_U16 assocId;
3988 tANI_U16 staId;
3989 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3990 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003991 tSirMacAddr addr2; //
Dino Mycle8afbac12014-07-04 22:06:17 +05303992 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003993
3994}tDeleteStaContextParams, *tpDeleteStaContextParams;
3995
3996
3997typedef PACKED_PRE struct PACKED_POST
3998{
3999 tHalMsgHeader header;
4000 tDeleteStaContextParams deleteStaContextParams;
4001}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
4002
Anand Kumar012623a2013-01-11 17:00:00 -08004003typedef PACKED_PRE struct PACKED_POST
4004{
4005 tHalMsgHeader header;
4006 tANI_U8 assocId;
4007 tANI_U8 staIdx;
4008 tANI_U8 bssIdx;
4009 tANI_U8 uReasonCode;
4010 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004011#ifdef WLAN_FEATURE_ROAM_OFFLOAD
4012 tANI_U8 staAddr[6];
4013 tANI_U8 bssId[6];
4014#endif
Anand Kumar012623a2013-01-11 17:00:00 -08004015} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07004016
4017/*---------------------------------------------------------------------------
4018 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
4019 *--------------------------------------------------------------------------*/
4020
4021typedef PACKED_PRE struct PACKED_POST
4022{
4023 tBtAmpEventType btAmpEventType;
4024
4025}tBtAmpEventParams, *tpBtAmpEventParams;
4026
4027
4028
4029typedef PACKED_PRE struct PACKED_POST
4030{
4031 tHalMsgHeader header;
4032 tBtAmpEventParams btAmpEventParams;
4033}tBtAmpEventMsg, *tpBtAmpEventMsg;
4034
4035/*---------------------------------------------------------------------------
4036*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
4037*--------------------------------------------------------------------------*/
4038
4039typedef PACKED_PRE struct PACKED_POST
4040{
4041 /* success or failure */
4042 tANI_U32 status;
4043}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
4044
4045typedef PACKED_PRE struct PACKED_POST
4046{
4047 tHalMsgHeader header;
4048 tBtAmpEventRspParams btAmpEventRspParams;
4049}tBtAmpEventRsp, *tpBtAmpEventRsp;
4050
4051
4052/*---------------------------------------------------------------------------
4053 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
4054 *--------------------------------------------------------------------------*/
4055
4056typedef PACKED_PRE struct PACKED_POST
4057{
4058 // Station Index. originates from HAL
4059 tANI_U8 ucSTAId;
4060
4061 // TID for which the transmit queue is being flushed
4062 tANI_U8 ucTid;
4063
4064}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
4065
4066
4067typedef PACKED_PRE struct PACKED_POST
4068{
4069 tHalMsgHeader header;
4070 tTlHalFlushAcParams tlHalFlushAcParam;
4071}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
4072
4073/*---------------------------------------------------------------------------
4074*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4075*--------------------------------------------------------------------------*/
4076
4077typedef PACKED_PRE struct PACKED_POST
4078{
4079 // Station Index. originates from HAL
4080 tANI_U8 ucSTAId;
4081
4082 // TID for which the transmit queue is being flushed
4083 tANI_U8 ucTid;
4084
4085 /* success or failure */
4086 tANI_U32 status;
4087}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4088
4089typedef PACKED_PRE struct PACKED_POST
4090{
4091 tHalMsgHeader header;
4092 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4093}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4094
4095/*---------------------------------------------------------------------------
4096 * WLAN_HAL_ENTER_IMPS_REQ
4097 *--------------------------------------------------------------------------*/
4098typedef PACKED_PRE struct PACKED_POST
4099{
4100 tHalMsgHeader header;
4101} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4102
4103/*---------------------------------------------------------------------------
4104 * WLAN_HAL_EXIT_IMPS_REQ
4105 *--------------------------------------------------------------------------*/
4106typedef PACKED_PRE struct PACKED_POST
4107{
4108 tHalMsgHeader header;
4109} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4110
4111/*---------------------------------------------------------------------------
4112 * WLAN_HAL_ENTER_BMPS_REQ
4113 *--------------------------------------------------------------------------*/
4114
4115typedef PACKED_PRE struct PACKED_POST
4116{
4117 tANI_U8 bssIdx;
4118 //TBTT value derived from the last beacon
4119#ifndef BUILD_QWPTTSTATIC
4120 tANI_U64 tbtt;
4121#endif
4122 tANI_U8 dtimCount;
4123 //DTIM period given to HAL during association may not be valid,
4124 //if association is based on ProbeRsp instead of beacon.
4125 tANI_U8 dtimPeriod;
4126
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004127 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004128 tANI_U32 rssiFilterPeriod;
4129 tANI_U32 numBeaconPerRssiAverage;
4130 tANI_U8 bRssiFilterEnable;
4131
4132} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4133
4134
4135typedef PACKED_PRE struct PACKED_POST
4136{
4137 tHalMsgHeader header;
4138 tHalEnterBmpsReqParams enterBmpsReq;
4139} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4140
4141/*---------------------------------------------------------------------------
Dino Mycle8afbac12014-07-04 22:06:17 +05304142 * WLAN_HAL_PRINT_REG_INFO_IND
4143 *--------------------------------------------------------------------------*/
4144typedef PACKED_PRE struct PACKED_POST
4145{
4146 uint32 regAddr;
4147 uint32 regValue;
4148} tHalRegDebugInfo, *tpRegDebugInfo;
4149
4150typedef PACKED_PRE struct PACKED_POST
4151{
4152 uint32 regCount;
4153 uint32 scenario;
4154 uint32 reasonCode;
4155} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
4156
4157typedef PACKED_PRE struct PACKED_POST
4158{
4159 tHalMsgHeader header;
4160 tHalRegDebugInfoParams regParams;
4161} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
4162
4163/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004164 * WLAN_HAL_EXIT_BMPS_REQ
4165 *--------------------------------------------------------------------------*/
4166typedef PACKED_PRE struct PACKED_POST
4167{
4168 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004169 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004170} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4171
4172typedef PACKED_PRE struct PACKED_POST
4173{
4174 tHalMsgHeader header;
4175 tHalExitBmpsReqParams exitBmpsReqParams;
4176} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4177
4178/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004179 * WLAN_HAL_MISSED_BEACON_IND
4180 *--------------------------------------------------------------------------*/
4181typedef PACKED_PRE struct PACKED_POST
4182{
4183 tANI_U8 bssIdx;
4184} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4185
4186typedef PACKED_PRE struct PACKED_POST
4187{
4188 tHalMsgHeader header;
4189 tHalMissedBeaconIndParams missedBeaconIndParams;
4190} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4191
4192/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004193 * WLAN_HAL_ADD_BCN_FILTER_REQ
4194 *--------------------------------------------------------------------------*/
4195/* Beacon Filtering data structures */
4196typedef PACKED_PRE struct PACKED_POST
4197{
4198 tANI_U8 offset;
4199 tANI_U8 value;
4200 tANI_U8 bitMask;
4201 tANI_U8 ref;
4202} tEidByteInfo, *tpEidByteInfo;
4203
Dino Mycle8afbac12014-07-04 22:06:17 +05304204typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004205{
4206 tANI_U16 capabilityInfo;
4207 tANI_U16 capabilityMask;
4208 tANI_U16 beaconInterval;
4209 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004210 tANI_U8 bssIdx;
4211 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004212} tBeaconFilterMsg, *tpBeaconFilterMsg;
4213
4214/* The above structure would be followed by multiple of below mentioned structure */
4215typedef PACKED_PRE struct PACKED_POST
4216{
4217 tANI_U8 elementId;
4218 tANI_U8 checkIePresence;
4219 tEidByteInfo byte;
4220} tBeaconFilterIe, *tpBeaconFilterIe;
4221
4222typedef PACKED_PRE struct PACKED_POST
4223{
4224 tHalMsgHeader header;
4225 tBeaconFilterMsg addBcnFilterParams;
4226} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4227
4228/*---------------------------------------------------------------------------
4229 * WLAN_HAL_REM_BCN_FILTER_REQ
4230 *--------------------------------------------------------------------------*/
Dino Mycle8afbac12014-07-04 22:06:17 +05304231typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004232{
4233 tANI_U8 ucIeCount;
4234 tANI_U8 ucRemIeId[1];
4235} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4236
4237typedef PACKED_PRE struct PACKED_POST
4238{
4239 tHalMsgHeader header;
4240 tRemBeaconFilterMsg remBcnFilterParams;
4241} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4242
4243/*---------------------------------------------------------------------------
4244 * WLAN_HAL_HOST_OFFLOAD_REQ
4245 *--------------------------------------------------------------------------*/
4246#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4247#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4248#define HAL_IPV6_NS_OFFLOAD 2
4249#define HAL_IPV6_ADDR_LEN 16
4250#define HAL_MAC_ADDR_LEN 6
4251#define HAL_OFFLOAD_DISABLE 0
4252#define HAL_OFFLOAD_ENABLE 1
4253#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004254#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004255#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004256#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004257
4258typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4259{
4260 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4261 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4262 //Only support 2 possible Network Advertisement IPv6 address
4263 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4264 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4265 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4266 tANI_U8 srcIPv6AddrValid : 1;
4267 tANI_U8 targetIPv6Addr1Valid : 1;
4268 tANI_U8 targetIPv6Addr2Valid : 1;
4269 tANI_U8 reserved1 : 5;
4270 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004271 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004272 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004273} tHalNSOffloadParams;
4274
4275typedef PACKED_PRE struct PACKED_POST
4276{
4277 tANI_U8 offloadType;
4278 tANI_U8 enableOrDisable;
4279 PACKED_PRE union PACKED_POST
4280 {
4281 tANI_U8 hostIpv4Addr [4];
4282 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4283 } params;
4284} tHalHostOffloadReq, *tpHalHostOffloadReq;
4285
4286typedef PACKED_PRE struct PACKED_POST
4287{
4288 tHalMsgHeader header;
4289 tHalHostOffloadReq hostOffloadParams;
4290 tHalNSOffloadParams nsOffloadParams;
4291} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4292
Leo Chang397deb72013-08-22 11:33:16 -07004293
4294#ifdef FEATURE_WLAN_LPHB
4295typedef enum
4296{
4297 WIFI_HB_SET_ENABLE = 0x0001,
4298 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4299 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4300 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4301 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4302 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4303}tLowPowerHeartBeatCmdType ;
4304
4305#define MAX_FLITER_SIZE 64
4306/*---------------------------------------------------------------------------
4307 *FEATURE_WLAN_LPHB REQ
4308 *--------------------------------------------------------------------------*/
4309typedef PACKED_PRE struct PACKED_POST
4310{
4311 uint32 hostIpv4Addr;
4312 uint32 destIpv4Addr;
4313 uint16 hostPort;
4314 uint16 destPort;
4315 uint16 timeOutSec; // in seconds
4316 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004317 uint16 timePeriodSec; // in seconds
4318 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004319} tlowPowerHeartBeatParamsTcpStruct;
4320
4321typedef PACKED_PRE struct PACKED_POST
4322{
4323 uint32 hostIpv4Addr;
4324 uint32 destIpv4Addr;
4325 uint16 hostPort;
4326 uint16 destPort;
4327 uint16 timePeriodSec;// in seconds
4328 uint16 timeOutSec; // in seconds
4329 tSirMacAddr gatewayMacAddr;
4330} tlowPowerHeartBeatParamsUdpStruct;
4331
4332typedef PACKED_PRE struct PACKED_POST
4333{
4334 uint32 offset;
4335 uint32 filterLength;
4336 uint8 filter[MAX_FLITER_SIZE];
4337} tlowPowerHeartBeatFilterStruct;
4338
4339typedef PACKED_PRE struct PACKED_POST
4340{
4341 uint8 heartBeatEnable;
4342 uint8 heartBeatType; //TCP or UDP
4343} tlowPowerHeartBeatEnableStruct;
4344
4345typedef PACKED_PRE struct PACKED_POST
4346{
4347 uint8 dummy;
4348} tlowPowerHeartBeatNetworkInfoStruct;
4349
4350
4351typedef PACKED_PRE struct PACKED_POST
4352{
4353 uint8 sessionIdx;
4354 uint16 lowPowerHeartBeatCmdType;
4355 PACKED_PRE union PACKED_PRO
4356 {
4357 tlowPowerHeartBeatEnableStruct control;
4358 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4359 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4360 tlowPowerHeartBeatParamsUdpStruct udpParams;
4361 tlowPowerHeartBeatNetworkInfoStruct info;
4362 }options;
4363} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4364
4365
4366typedef PACKED_PRE struct PACKED_POST
4367{
4368 tHalMsgHeader header;
4369 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4370} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4371
4372/*---------------------------------------------------------------------------
4373 * FEATURE_WLAN_LPHB RSP
4374 *--------------------------------------------------------------------------*/
4375
4376typedef PACKED_PRE struct PACKED_POST
4377{
4378 /* success or failure */
4379 uint8 sessionIdx;
4380 uint32 status;
4381 uint16 lowPowerHeartBeatCmdType;
4382}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4383
4384typedef PACKED_PRE struct PACKED_POST
4385{
4386 tHalMsgHeader header;
4387 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4388}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4389
4390
4391/*---------------------------------------------------------------------------
4392 * FEATURE_WLAN_LPHB IND
4393 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004394#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4395#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4396
4397#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4398#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004399#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004400
Kumar Anandea78e792013-10-10 23:47:01 -07004401
4402#define WIFI_LPHB_PROTO_UDP 0x01
4403#define WIFI_LPHB_PROTO_TCP 0x02
4404
Leo Chang397deb72013-08-22 11:33:16 -07004405typedef PACKED_PRE struct PACKED_POST
4406{
4407 uint8 bssIdx;
4408 uint8 sessionIdx;
4409 uint8 protocolType; /*TCP or UDP*/
4410 uint8 eventReason;
4411
4412}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4413
4414typedef PACKED_PRE struct PACKED_POST
4415{
4416 tHalMsgHeader header;
4417 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4418}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4419
4420#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004421
4422#ifdef FEATURE_WLAN_BATCH_SCAN
4423
4424/*---------------------------------------------------------------------------
4425 * WLAN_HAL_BATCHSCAN_SET_REQ
4426 *--------------------------------------------------------------------------*/
4427typedef PACKED_PRE struct PACKED_POST
4428{
4429 /* Scan Frerquency - default to 30Sec*/
4430 tANI_U32 scanInterval;
4431 tANI_U32 numScan2Batch;
4432 tANI_U32 bestNetworks;
4433 tANI_U8 rfBand;
4434 tANI_U8 rtt;
4435} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4436
4437typedef PACKED_PRE struct PACKED_POST
4438{
4439 tHalMsgHeader header;
4440 tHalBatchScanSetParams batchScanParams;
4441} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4442
4443/*---------------------------------------------------------------------------
4444 * WLAN_HAL_BATCHSCAN_SET_RSP
4445 *--------------------------------------------------------------------------*/
4446typedef PACKED_PRE struct PACKED_POST
4447{
4448 tANI_U32 supportedMscan;
4449} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4450
4451typedef PACKED_PRE struct PACKED_POST
4452{
4453 tHalMsgHeader header;
4454 tHalBatchScanSetRspParam setBatchScanRspParam;
4455} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4456
4457/*---------------------------------------------------------------------------
4458* WLAN_HAL_BATCHSCAN_STOP_IND
4459*--------------------------------------------------------------------------*/
4460typedef PACKED_PRE struct PACKED_POST
4461{
4462 tANI_U32 param;
4463} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4464
4465typedef PACKED_PRE struct PACKED_POST
4466{
4467 tHalMsgHeader header;
4468 tHalBatchScanStopIndParam param;
4469} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4470
4471/*---------------------------------------------------------------------------
4472* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4473*--------------------------------------------------------------------------*/
4474typedef PACKED_PRE struct PACKED_POST
4475{
4476 tANI_U32 param;
4477} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4478
4479typedef PACKED_PRE struct PACKED_POST
4480{
4481 tHalMsgHeader header;
4482 tHalBatchScanTriggerResultParam param;
4483} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4484
4485/*---------------------------------------------------------------------------
4486 * WLAN_HAL_BATCHSCAN_GET_RSP
4487 *--------------------------------------------------------------------------*/
4488typedef PACKED_PRE struct PACKED_POST
4489{
4490 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004491 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004492 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304493 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004494 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4495 tANI_U32 timestamp;
4496} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4497
4498typedef PACKED_PRE struct PACKED_POST
4499{
4500 tANI_U32 scanId; /* Scan List ID. */
4501 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4502 tANI_U32 numNetworksInScanList;
4503 /* Variable data ptr: Number of AP in Scan List */
4504 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4505 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4506 tANI_U8 scanList[1];
4507} tHalBatchScanList, *tpHalBatchScanList;
4508
4509typedef PACKED_PRE struct PACKED_POST
4510{
4511 tANI_U32 timestamp;
4512 tANI_U32 numScanLists;
4513 boolean isLastResult;
4514 /* Variable Data ptr: Number of Scan Lists*/
4515 /* following isLastResult is data of type tHalBatchScanList
4516 * of sizeof(tHalBatchScanList) * numScanLists*/
4517 tANI_U8 scanResults[1];
4518} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4519
4520typedef PACKED_PRE struct PACKED_POST
4521{
4522 tHalMsgHeader header;
4523 tHalBatchScanResultIndParam resultIndMsgParam;
4524} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4525
4526#endif
4527
Jeff Johnson295189b2012-06-20 16:38:30 -07004528/*---------------------------------------------------------------------------
4529 * WLAN_HAL_KEEP_ALIVE_REQ
4530 *--------------------------------------------------------------------------*/
4531/* Packet Types. */
4532#define HAL_KEEP_ALIVE_NULL_PKT 1
4533#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4534
4535/* Enable or disable keep alive */
4536#define HAL_KEEP_ALIVE_DISABLE 0
4537#define HAL_KEEP_ALIVE_ENABLE 1
4538
4539/* Keep Alive request. */
4540typedef PACKED_PRE struct PACKED_POST
4541{
4542 tANI_U8 packetType;
4543 tANI_U32 timePeriod;
Dino Mycle8afbac12014-07-04 22:06:17 +05304544 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004545 tHalIpv4Addr destIpv4Addr;
4546 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004547 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004548} tHalKeepAliveReq, *tpHalKeepAliveReq;
4549
4550typedef PACKED_PRE struct PACKED_POST
4551{
4552 tHalMsgHeader header;
4553 tHalKeepAliveReq KeepAliveParams;
4554} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4555
4556/*---------------------------------------------------------------------------
4557 * WLAN_HAL_SET_RSSI_THRESH_REQ
4558 *--------------------------------------------------------------------------*/
4559typedef PACKED_PRE struct PACKED_POST
4560{
4561 tANI_S8 ucRssiThreshold1 : 8;
4562 tANI_S8 ucRssiThreshold2 : 8;
4563 tANI_S8 ucRssiThreshold3 : 8;
4564 tANI_U8 bRssiThres1PosNotify : 1;
4565 tANI_U8 bRssiThres1NegNotify : 1;
4566 tANI_U8 bRssiThres2PosNotify : 1;
4567 tANI_U8 bRssiThres2NegNotify : 1;
4568 tANI_U8 bRssiThres3PosNotify : 1;
4569 tANI_U8 bRssiThres3NegNotify : 1;
4570 tANI_U8 bReserved10 : 2;
4571} tHalRSSIThresholds, *tpHalRSSIThresholds;
Dino Mycle8afbac12014-07-04 22:06:17 +05304572
Jeff Johnson295189b2012-06-20 16:38:30 -07004573typedef PACKED_PRE struct PACKED_POST
4574{
4575 tHalMsgHeader header;
4576 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004577} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004578
4579/*---------------------------------------------------------------------------
4580 * WLAN_HAL_ENTER_UAPSD_REQ
4581 *--------------------------------------------------------------------------*/
4582typedef PACKED_PRE struct PACKED_POST
4583{
4584 tANI_U8 bkDeliveryEnabled:1;
4585 tANI_U8 beDeliveryEnabled:1;
4586 tANI_U8 viDeliveryEnabled:1;
4587 tANI_U8 voDeliveryEnabled:1;
4588 tANI_U8 bkTriggerEnabled:1;
4589 tANI_U8 beTriggerEnabled:1;
4590 tANI_U8 viTriggerEnabled:1;
4591 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004592 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004593} tUapsdReqParams, *tpUapsdReqParams;
4594
4595typedef PACKED_PRE struct PACKED_POST
4596{
4597 tHalMsgHeader header;
4598 tUapsdReqParams enterUapsdParams;
4599} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4600
4601/*---------------------------------------------------------------------------
4602 * WLAN_HAL_EXIT_UAPSD_REQ
4603 *--------------------------------------------------------------------------*/
4604typedef PACKED_PRE struct PACKED_POST
4605{
4606 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004607 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004608} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4609
Kumar Anandea78e792013-10-10 23:47:01 -07004610#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4611#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004612/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004613 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4614 *--------------------------------------------------------------------------*/
4615typedef PACKED_PRE struct PACKED_POST
4616{
4617 tANI_U32 selfStaIdx:8;
4618 tANI_U32 ucPtrnId:8; // Pattern ID
4619 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4620 tANI_U32 uPtrnIntervalMs; // In msec
4621 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4622} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4623
4624typedef PACKED_PRE struct PACKED_POST
4625{
4626 tHalMsgHeader header;
4627 tHalAddPeriodicTxPtrn ptrnParams;
4628} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4629
4630/*---------------------------------------------------------------------------
4631 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4632 *--------------------------------------------------------------------------*/
4633typedef PACKED_PRE struct PACKED_POST
4634{
4635 tANI_U32 selfStaIdx:8;
4636 tANI_U32 rsvd:24;
4637 /* Bitmap of pattern IDs that needs to be deleted */
4638 tANI_U32 uPatternIdBitmap;
4639} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4640
4641typedef PACKED_PRE struct PACKED_POST
4642{
4643 tHalMsgHeader header;
4644 tHalDelPeriodicTxPtrn ptrnParams;
4645} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4646
4647/*---------------------------------------------------------------------------
4648 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4649 *--------------------------------------------------------------------------*/
4650typedef PACKED_PRE struct PACKED_POST
4651{
4652 /* Type of Failure indication */
4653 tANI_U32 bssIdx:8;
4654 tANI_U32 selfStaIdx:8;
4655 tANI_U32 rsvd:16;
4656 tANI_U32 status;
4657 tANI_U32 patternIdBitmap;
4658} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4659
4660typedef PACKED_PRE struct PACKED_POST
4661{
4662 tHalMsgHeader header;
4663 tHalPeriodicTxPtrnFwInd fwIndParams;
4664} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4665
4666/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004667 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4668 *--------------------------------------------------------------------------*/
4669#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4670#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4671
4672typedef PACKED_PRE struct PACKED_POST
4673{
4674 tANI_U8 ucPatternId; // Pattern ID
4675 // Pattern byte offset from beginning of the 802.11 packet to start of the
4676 // wake-up pattern
Dino Mycle8afbac12014-07-04 22:06:17 +05304677 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004678 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4679 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4680 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4681 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4682 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4683 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004684 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004685} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4686
4687typedef PACKED_PRE struct PACKED_POST
4688{
4689 tHalMsgHeader header;
4690 tHalWowlAddBcastPtrn ptrnParams;
4691} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05304692
Jeff Johnsone7245742012-09-05 17:12:55 -07004693
4694
Jeff Johnson295189b2012-06-20 16:38:30 -07004695/*---------------------------------------------------------------------------
4696 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4697 *--------------------------------------------------------------------------*/
4698typedef PACKED_PRE struct PACKED_POST
4699{
4700 /* Pattern ID of the wakeup pattern to be deleted */
4701 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004702 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004703} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4704
4705typedef PACKED_PRE struct PACKED_POST
4706{
4707 tHalMsgHeader header;
4708 tHalWowlDelBcastPtrn ptrnParams;
4709} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4710
4711/*---------------------------------------------------------------------------
4712 * WLAN_HAL_ENTER_WOWL_REQ
4713 *--------------------------------------------------------------------------*/
4714typedef PACKED_PRE struct PACKED_POST
4715{
4716 /* Enables/disables magic packet filtering */
Dino Mycle8afbac12014-07-04 22:06:17 +05304717 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004718
4719 /* Magic pattern */
4720 tSirMacAddr magicPtrn;
4721
Dino Mycle8afbac12014-07-04 22:06:17 +05304722 /* Enables/disables packet pattern filtering in firmware.
4723 Enabling this flag enables broadcast pattern matching
4724 in Firmware. If unicast pattern matching is also desired,
4725 ucUcastPatternFilteringEnable flag must be set tot true
4726 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004727 */
4728 tANI_U8 ucPatternFilteringEnable;
4729
Dino Mycle8afbac12014-07-04 22:06:17 +05304730 /* Enables/disables unicast packet pattern filtering.
4731 This flag specifies whether we want to do pattern match
4732 on unicast packets as well and not just broadcast packets.
4733 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004734 (main controlling flag) is set to false
4735 */
Dino Mycle8afbac12014-07-04 22:06:17 +05304736 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004737
Dino Mycle8afbac12014-07-04 22:06:17 +05304738 /* This configuration is valid only when magicPktEnable=1.
4739 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004740 * Channel Switch Action Frame.
4741 */
4742 tANI_U8 ucWowChnlSwitchRcv;
4743
Dino Mycle8afbac12014-07-04 22:06:17 +05304744 /* This configuration is valid only when magicPktEnable=1.
4745 * It requests hardware to wake up when it receives the
4746 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004747 */
4748 tANI_U8 ucWowDeauthRcv;
4749
Dino Mycle8afbac12014-07-04 22:06:17 +05304750 /* This configuration is valid only when magicPktEnable=1.
4751 * It requests hardware to wake up when it receives the
4752 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004753 */
4754 tANI_U8 ucWowDisassocRcv;
4755
Dino Mycle8afbac12014-07-04 22:06:17 +05304756 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004757 * It requests hardware to wake up when it has missed
4758 * consecutive beacons. This is a hardware register
Dino Mycle8afbac12014-07-04 22:06:17 +05304759 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004760 */
4761 tANI_U8 ucWowMaxMissedBeacons;
4762
Dino Mycle8afbac12014-07-04 22:06:17 +05304763 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004764 * This is a timeout value in units of microsec. It requests
4765 * hardware to unconditionally wake up after it has stayed
Dino Mycle8afbac12014-07-04 22:06:17 +05304766 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004767 */
4768 tANI_U8 ucWowMaxSleepUsec;
Dino Mycle8afbac12014-07-04 22:06:17 +05304769
Jeff Johnson295189b2012-06-20 16:38:30 -07004770 /* This configuration directs the WoW packet filtering to look for EAP-ID
4771 * requests embedded in EAPOL frames and use this as a wake source.
4772 */
4773 tANI_U8 ucWoWEAPIDRequestEnable;
4774
4775 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4776 * requests and use this as a wake source.
4777 */
4778 tANI_U8 ucWoWEAPOL4WayEnable;
4779
4780 /* This configuration allows a host wakeup on an network scan offload match.
4781 */
4782 tANI_U8 ucWowNetScanOffloadMatch;
4783
4784 /* This configuration allows a host wakeup on any GTK rekeying error.
4785 */
4786 tANI_U8 ucWowGTKRekeyError;
4787
4788 /* This configuration allows a host wakeup on BSS connection loss.
4789 */
4790 tANI_U8 ucWoWBSSConnLoss;
4791
Jeff Johnsone7245742012-09-05 17:12:55 -07004792 tANI_U8 bssIdx;
4793
Jeff Johnson295189b2012-06-20 16:38:30 -07004794} tHalWowlEnterParams, *tpHalWowlEnterParams;
4795
4796typedef PACKED_PRE struct PACKED_POST
4797{
4798 tHalMsgHeader header;
4799 tHalWowlEnterParams enterWowlParams;
4800} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4801
4802/*---------------------------------------------------------------------------
4803 * WLAN_HAL_EXIT_WOWL_REQ
4804 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004805
Jeff Johnson295189b2012-06-20 16:38:30 -07004806typedef PACKED_PRE struct PACKED_POST
4807{
Jeff Johnsone7245742012-09-05 17:12:55 -07004808 tANI_U8 bssIdx;
4809
4810} tHalWowlExitParams, *tpHalWowlExitParams;
4811
4812typedef PACKED_PRE struct PACKED_POST
4813{
4814 tHalMsgHeader header;
4815 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004816} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4817
4818/*---------------------------------------------------------------------------
4819 * WLAN_HAL_GET_RSSI_REQ
4820 *--------------------------------------------------------------------------*/
4821typedef PACKED_PRE struct PACKED_POST
4822{
4823 tHalMsgHeader header;
4824} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4825
Anand Kumar012623a2013-01-11 17:00:00 -08004826typedef PACKED_PRE struct PACKED_POST
4827{
4828 /* Valid STA Idx for per STA stats request */
4829 tANI_U32 staId;
4830
4831}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4832
4833
4834/*---------------------------------------------------------------------------
4835 * WLAN_HAL_GET_ROAM_RSSI_REQ
4836 *--------------------------------------------------------------------------*/
4837typedef PACKED_PRE struct PACKED_POST
4838{
4839 tHalMsgHeader header;
4840 tHalRoamRssiReqParams roamRssiReqParams;
4841} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4842
4843
Jeff Johnson295189b2012-06-20 16:38:30 -07004844/*---------------------------------------------------------------------------
4845 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4846 *--------------------------------------------------------------------------*/
4847typedef PACKED_PRE struct PACKED_POST {
4848 tANI_U8 staidx; // STA index
4849 tANI_U8 ac; // Access Category
4850 tANI_U8 up; // User Priority
4851 tANI_U32 srvInterval; // Service Interval
4852 tANI_U32 susInterval; // Suspend Interval
4853 tANI_U32 delayInterval; // Delay Interval
4854} tUapsdInfo, tpUapsdInfo;
4855
4856typedef PACKED_PRE struct PACKED_POST
4857{
4858 tHalMsgHeader header;
4859 tUapsdInfo enableUapsdAcParams;
4860} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4861
4862/*---------------------------------------------------------------------------
4863 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4864 *--------------------------------------------------------------------------*/
4865typedef PACKED_PRE struct PACKED_POST {
4866 tANI_U8 setMcstBcstFilterSetting;
4867 tANI_U8 setMcstBcstFilter;
4868} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4869
4870typedef PACKED_PRE struct PACKED_POST
4871{
4872 tHalMsgHeader header;
4873 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4874} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4875
4876/*---------------------------------------------------------------------------
4877 * WLAN_HAL_ENTER_IMPS_RSP
4878 *--------------------------------------------------------------------------*/
4879typedef PACKED_PRE struct PACKED_POST
4880{
4881 /* success or failure */
4882 tANI_U32 status;
4883} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4884
4885typedef PACKED_PRE struct PACKED_POST
4886{
4887 tHalMsgHeader header;
4888 tHalEnterImpsRspParams enterImpsRspParams;
4889} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4890
4891/*---------------------------------------------------------------------------
4892 * WLAN_HAL_EXIT_IMPS_RSP
4893 *--------------------------------------------------------------------------*/
4894typedef PACKED_PRE struct PACKED_POST
4895{
4896 /* success or failure */
4897 tANI_U32 status;
4898} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4899
4900typedef PACKED_PRE struct PACKED_POST
4901{
4902 tHalMsgHeader header;
4903 tHalExitImpsRspParams exitImpsRspParams;
4904} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4905
4906/*---------------------------------------------------------------------------
4907 * WLAN_HAL_ENTER_BMPS_RSP
4908 *--------------------------------------------------------------------------*/
4909typedef PACKED_PRE struct PACKED_POST
4910{
4911 /* success or failure */
4912 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004913 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004914} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4915
4916typedef PACKED_PRE struct PACKED_POST
4917{
4918 tHalMsgHeader header;
4919 tHalEnterBmpsRspParams enterBmpsRspParams;
4920} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4921
4922/*---------------------------------------------------------------------------
4923 * WLAN_HAL_EXIT_BMPS_RSP
4924 *--------------------------------------------------------------------------*/
4925typedef PACKED_PRE struct PACKED_POST
4926{
4927 /* success or failure */
4928 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004929 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004930} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4931
4932typedef PACKED_PRE struct PACKED_POST
4933{
4934 tHalMsgHeader header;
4935 tHalExitBmpsRspParams exitBmpsRspParams;
4936} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4937
4938/*---------------------------------------------------------------------------
4939 * WLAN_HAL_ENTER_UAPSD_RSP
4940 *--------------------------------------------------------------------------*/
4941typedef PACKED_PRE struct PACKED_POST
4942{
4943 /* success or failure */
4944 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004945 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004946}tUapsdRspParams, *tpUapsdRspParams;
4947
4948typedef PACKED_PRE struct PACKED_POST
4949{
4950 tHalMsgHeader header;
4951 tUapsdRspParams enterUapsdRspParams;
4952} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4953
4954/*---------------------------------------------------------------------------
4955 * WLAN_HAL_EXIT_UAPSD_RSP
4956 *--------------------------------------------------------------------------*/
4957typedef PACKED_PRE struct PACKED_POST
4958{
4959 /* success or failure */
4960 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004961 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004962} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4963
4964typedef PACKED_PRE struct PACKED_POST
4965{
4966 tHalMsgHeader header;
4967 tHalExitUapsdRspParams exitUapsdRspParams;
4968} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4969
4970/*---------------------------------------------------------------------------
4971 * WLAN_HAL_RSSI_NOTIFICATION_IND
4972 *--------------------------------------------------------------------------*/
4973typedef PACKED_PRE struct PACKED_POST
4974{
4975 tANI_U32 bRssiThres1PosCross : 1;
4976 tANI_U32 bRssiThres1NegCross : 1;
4977 tANI_U32 bRssiThres2PosCross : 1;
4978 tANI_U32 bRssiThres2NegCross : 1;
4979 tANI_U32 bRssiThres3PosCross : 1;
4980 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004981 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004982 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07004983 tANI_U32 isBTCoexCompromise : 1;
4984 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004985 tANI_S8 refRssiThreshold1;
4986 tANI_S8 refRssiThreshold2;
4987 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07004988} tHalRSSINotification, *tpHalRSSINotification;
4989
4990typedef PACKED_PRE struct PACKED_POST
4991{
4992 tHalMsgHeader header;
4993 tHalRSSINotification rssiNotificationParams;
4994} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4995
4996/*---------------------------------------------------------------------------
4997 * WLAN_HAL_GET_RSSI_RSP
4998 *--------------------------------------------------------------------------*/
4999typedef PACKED_PRE struct PACKED_POST
5000{
5001 /* success or failure */
5002 tANI_U32 status;
5003 tANI_S8 rssi;
5004} tHalGetRssiParams, *tpHalGetRspParams;
5005
5006typedef PACKED_PRE struct PACKED_POST
5007{
5008 tHalMsgHeader header;
5009 tHalGetRssiParams rssiRspParams;
5010} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
5011
5012/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08005013 * WLAN_HAL_GET_ROAM_RSSI_RSP
5014 *--------------------------------------------------------------------------*/
5015typedef PACKED_PRE struct PACKED_POST
5016{
5017 /* success or failure */
5018 tANI_U32 status;
5019
5020 tANI_U8 staId;
5021 tANI_S8 rssi;
5022} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
5023
5024typedef PACKED_PRE struct PACKED_POST
5025{
5026 tHalMsgHeader header;
5027 tHalGetRoamRssiParams roamRssiRspParams;
5028} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
5029
5030/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005031 * WLAN_HAL_ENTER_WOWL_RSP
5032 *--------------------------------------------------------------------------*/
5033typedef PACKED_PRE struct PACKED_POST
5034{
5035 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005036 tANI_U32 status;
5037 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005038} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
5039
5040typedef PACKED_PRE struct PACKED_POST
5041{
5042 tHalMsgHeader header;
5043 tHalEnterWowlRspParams enterWowlRspParams;
5044} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
5045
5046/*---------------------------------------------------------------------------
5047 * WLAN_HAL_EXIT_WOWL_RSP
5048 *--------------------------------------------------------------------------*/
5049typedef PACKED_PRE struct PACKED_POST
5050{
5051 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005052 tANI_U32 status;
5053 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005054} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
5055
5056typedef PACKED_PRE struct PACKED_POST
5057{
5058 tHalMsgHeader header;
5059 tHalExitWowlRspParams exitWowlRspParams;
5060} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
5061
5062/*---------------------------------------------------------------------------
5063 * WLAN_HAL_ADD_BCN_FILTER_RSP
5064 *--------------------------------------------------------------------------*/
5065typedef PACKED_PRE struct PACKED_POST
5066{
5067 /* success or failure */
5068 tANI_U32 status;
5069} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
5070
5071typedef PACKED_PRE struct PACKED_POST
5072{
5073 tHalMsgHeader header;
5074 tHalAddBcnFilterRspParams addBcnFilterRspParams;
5075} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
5076
5077/*---------------------------------------------------------------------------
5078 * WLAN_HAL_REM_BCN_FILTER_RSP
5079 *--------------------------------------------------------------------------*/
5080typedef PACKED_PRE struct PACKED_POST
5081{
5082 /* success or failure */
5083 tANI_U32 status;
5084} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
5085
5086typedef PACKED_PRE struct PACKED_POST
5087{
5088 tHalMsgHeader header;
5089 tHalRemBcnFilterRspParams remBcnFilterRspParams;
5090} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
5091
5092/*---------------------------------------------------------------------------
5093 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
5094 *--------------------------------------------------------------------------*/
5095typedef PACKED_PRE struct PACKED_POST
5096{
5097 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005098 tANI_U32 status;
5099 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005100} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5101
5102typedef PACKED_PRE struct PACKED_POST
5103{
5104 tHalMsgHeader header;
5105 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5106} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5107
5108/*---------------------------------------------------------------------------
5109 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5110 *--------------------------------------------------------------------------*/
5111typedef PACKED_PRE struct PACKED_POST
5112{
5113 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005114 tANI_U32 status;
5115 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005116} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5117
5118typedef PACKED_PRE struct PACKED_POST
5119{
5120 tHalMsgHeader header;
5121 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5122} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5123
5124/*---------------------------------------------------------------------------
5125 * WLAN_HAL_HOST_OFFLOAD_RSP
5126 *--------------------------------------------------------------------------*/
5127typedef PACKED_PRE struct PACKED_POST
5128{
5129 /* success or failure */
5130 tANI_U32 status;
5131} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5132
5133typedef PACKED_PRE struct PACKED_POST
5134{
5135 tHalMsgHeader header;
5136 tHalHostOffloadRspParams hostOffloadRspParams;
5137} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5138
5139/*---------------------------------------------------------------------------
5140 * WLAN_HAL_KEEP_ALIVE_RSP
5141 *--------------------------------------------------------------------------*/
5142typedef PACKED_PRE struct PACKED_POST
5143{
5144 /* success or failure */
5145 tANI_U32 status;
5146} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5147
5148typedef PACKED_PRE struct PACKED_POST
5149{
5150 tHalMsgHeader header;
5151 tHalKeepAliveRspParams keepAliveRspParams;
5152} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5153
5154/*---------------------------------------------------------------------------
5155 * WLAN_HAL_SET_RSSI_THRESH_RSP
5156 *--------------------------------------------------------------------------*/
5157typedef PACKED_PRE struct PACKED_POST
5158{
5159 /* success or failure */
5160 tANI_U32 status;
5161} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5162
5163typedef PACKED_PRE struct PACKED_POST
5164{
5165 tHalMsgHeader header;
5166 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5167} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5168
5169/*---------------------------------------------------------------------------
5170 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5171 *--------------------------------------------------------------------------*/
5172typedef PACKED_PRE struct PACKED_POST
5173{
5174 /* success or failure */
5175 tANI_U32 status;
5176} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5177
5178typedef PACKED_PRE struct PACKED_POST
5179{
5180 tHalMsgHeader header;
5181 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5182} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5183
5184/*---------------------------------------------------------------------------
5185 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5186 *--------------------------------------------------------------------------*/
5187typedef PACKED_PRE struct PACKED_POST
5188{
5189 /* success or failure */
5190 tANI_U32 status;
5191} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5192
5193typedef PACKED_PRE struct PACKED_POST
5194{
5195 tHalMsgHeader header;
5196 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5197} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5198
5199/*---------------------------------------------------------------------------
5200 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5201 *--------------------------------------------------------------------------*/
5202
5203typedef PACKED_PRE struct PACKED_POST
5204{
5205 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5206 //the request has power constraints, this should be applied only to that session
5207 tSirMacAddr selfStaMacAddr;
5208 //In request,
5209 //power == MaxTx power to be used.
5210 tPowerdBm power;
5211
5212}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5213
5214
5215typedef PACKED_PRE struct PACKED_POST
5216{
5217 tHalMsgHeader header;
5218 tSetMaxTxPwrParams setMaxTxPwrParams;
5219}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5220
5221/*---------------------------------------------------------------------------
5222*WLAN_HAL_SET_MAX_TX_POWER_RSP
5223*--------------------------------------------------------------------------*/
5224
5225typedef PACKED_PRE struct PACKED_POST
5226{
5227 //power == tx power used for management frames.
5228 tPowerdBm power;
5229
5230 /* success or failure */
5231 tANI_U32 status;
5232}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5233
5234typedef PACKED_PRE struct PACKED_POST
5235{
5236 tHalMsgHeader header;
5237 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5238}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5239
Kumar Anandea78e792013-10-10 23:47:01 -07005240
Jeff Johnson295189b2012-06-20 16:38:30 -07005241/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005242 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5243 *--------------------------------------------------------------------------*/
5244
5245/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5246typedef enum
5247{
5248 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5249 // For 2.4GHz or 5GHz bands
5250 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5251 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5252 // End of valid enums
5253 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5254}tHalSetMaxTxPwrBandInfo;
5255
5256typedef PACKED_PRE struct PACKED_POST
5257{
5258 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005259 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005260}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5261
Kumar Anandea78e792013-10-10 23:47:01 -07005262
Arif Hussain36fda162013-08-30 14:46:57 -07005263typedef PACKED_PRE struct PACKED_POST
5264{
5265 tHalMsgHeader header;
5266 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5267}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5268
5269/*---------------------------------------------------------------------------
5270*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5271*--------------------------------------------------------------------------*/
5272
5273typedef PACKED_PRE struct PACKED_POST
5274{
5275 //power == tx power used for management frames.
5276 tPowerdBm power;
5277
5278 /* success or failure */
5279 tANI_U32 status;
5280}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5281
5282typedef PACKED_PRE struct PACKED_POST
5283{
5284 tHalMsgHeader header;
5285 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5286}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5287
5288/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005289 *WLAN_HAL_SET_TX_POWER_REQ
5290 *--------------------------------------------------------------------------*/
5291
5292typedef PACKED_PRE struct PACKED_POST
5293{
5294 /* TX Power in milli watts */
5295 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005296 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005297}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5298
5299
5300typedef PACKED_PRE struct PACKED_POST
5301{
5302 tHalMsgHeader header;
5303 tSetTxPwrReqParams setTxPwrReqParams;
5304}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5305
5306/*---------------------------------------------------------------------------
5307*WLAN_HAL_SET_TX_POWER_RSP
5308*--------------------------------------------------------------------------*/
5309
5310typedef PACKED_PRE struct PACKED_POST
5311{
5312 /* success or failure */
5313 tANI_U32 status;
5314}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5315
5316typedef PACKED_PRE struct PACKED_POST
5317{
5318 tHalMsgHeader header;
5319 tSetTxPwrRspParams setTxPwrRspParams;
5320}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5321
5322/*---------------------------------------------------------------------------
5323 *WLAN_HAL_GET_TX_POWER_REQ
5324 *--------------------------------------------------------------------------*/
5325
5326typedef PACKED_PRE struct PACKED_POST
5327{
5328 tANI_U8 staId;
5329}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5330
5331typedef PACKED_PRE struct PACKED_POST
5332{
5333 tHalMsgHeader header;
5334 tGetTxPwrReqParams getTxPwrReqParams;
5335}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5336
5337/*---------------------------------------------------------------------------
5338*WLAN_HAL_GET_TX_POWER_RSP
5339*--------------------------------------------------------------------------*/
5340
5341typedef PACKED_PRE struct PACKED_POST
5342{
5343 /* success or failure */
5344 tANI_U32 status;
5345
5346 /* TX Power in milli watts */
5347 tANI_U32 txPower;
5348}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5349
5350typedef PACKED_PRE struct PACKED_POST
5351{
5352 tHalMsgHeader header;
5353 tGetTxPwrRspParams getTxPwrRspParams;
5354}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5355
5356#ifdef WLAN_FEATURE_P2P
5357/*---------------------------------------------------------------------------
5358 *WLAN_HAL_SET_P2P_GONOA_REQ
5359 *--------------------------------------------------------------------------*/
5360
5361typedef PACKED_PRE struct PACKED_POST
5362{
5363 tANI_U8 opp_ps;
5364 tANI_U32 ctWindow;
Dino Mycle8afbac12014-07-04 22:06:17 +05305365 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005366 tANI_U32 duration;
5367 tANI_U32 interval;
5368 tANI_U32 single_noa_duration;
5369 tANI_U8 psSelection;
5370}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5371
5372
5373typedef PACKED_PRE struct PACKED_POST
5374{
5375 tHalMsgHeader header;
5376 tSetP2PGONOAParams setP2PGONOAParams;
5377}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5378
5379/*---------------------------------------------------------------------------
5380*WLAN_HAL_SET_P2P_GONOA_RSP
5381*--------------------------------------------------------------------------*/
5382
5383typedef PACKED_PRE struct PACKED_POST
5384{
5385 /* success or failure */
5386 tANI_U32 status;
5387}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5388
5389typedef PACKED_PRE struct PACKED_POST
5390{
5391 tHalMsgHeader header;
5392 tSetP2PGONOARspParams setP2PGONOARspParams;
5393}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5394#endif
5395
5396/*---------------------------------------------------------------------------
5397 *WLAN_HAL_ADD_SELF_STA_REQ
5398 *--------------------------------------------------------------------------*/
5399
5400typedef PACKED_PRE struct PACKED_POST
5401{
5402 tSirMacAddr selfMacAddr;
5403 tANI_U32 status;
5404}tAddStaSelfParams, *tpAddStaSelfParams;
5405
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005406typedef PACKED_PRE struct PACKED_POST
5407{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005408 tHalMsgHeader header;
5409 tAddStaSelfParams addStaSelfParams;
5410}tAddStaSelfReq, *tpAddStaSelfReq;
5411
5412/* This V1 structure carries additionally the IFACE PERSONA
5413 of the interface as compared to the legacy control
5414 message */
5415typedef PACKED_PRE struct PACKED_POST
5416{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005417 tSirMacAddr selfMacAddr;
5418 tANI_U32 status;
5419 tHalIfacePersona iface_persona;
5420}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005421
5422typedef PACKED_PRE struct PACKED_POST
5423{
5424 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005425 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005426}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005427
5428/*---------------------------------------------------------------------------
5429*WLAN_HAL_ADD_SELF_STA_RSP
5430*--------------------------------------------------------------------------*/
5431
5432typedef PACKED_PRE struct PACKED_POST
5433{
5434 /* success or failure */
5435 tANI_U32 status;
5436
5437 /*Self STA Index */
5438 tANI_U8 selfStaIdx;
5439
5440 /* DPU Index (IGTK, PTK, GTK all same) */
5441 tANI_U8 dpuIdx;
5442
5443 /* DPU Signature */
5444 tANI_U8 dpuSignature;
Dino Mycle8afbac12014-07-04 22:06:17 +05305445
Jeff Johnson295189b2012-06-20 16:38:30 -07005446}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5447
5448typedef PACKED_PRE struct PACKED_POST
5449{
5450 tHalMsgHeader header;
5451 tAddStaSelfRspParams addStaSelfRspParams;
5452}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5453
5454
5455/*---------------------------------------------------------------------------
5456 WLAN_HAL_DEL_STA_SELF_REQ
5457---------------------------------------------------------------------------*/
5458
5459typedef PACKED_PRE struct PACKED_POST
5460{
5461 tSirMacAddr selfMacAddr;
5462
5463}tDelStaSelfParams, *tpDelStaSelfParams;
5464
5465typedef PACKED_PRE struct PACKED_POST
5466{
5467 tHalMsgHeader header;
5468 tDelStaSelfParams delStaSelfParams;
5469} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5470
5471
5472/*---------------------------------------------------------------------------
5473 WLAN_HAL_DEL_STA_SELF_RSP
5474---------------------------------------------------------------------------*/
5475
5476typedef PACKED_PRE struct PACKED_POST
5477{
5478 /*success or failure */
5479 tANI_U32 status;
5480
5481 tSirMacAddr selfMacAddr;
5482}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5483
5484typedef PACKED_PRE struct PACKED_POST
5485{
5486 tHalMsgHeader header;
5487 tDelStaSelfRspParams delStaSelfRspParams;
5488} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5489
5490
5491#ifdef WLAN_FEATURE_VOWIFI_11R
5492
5493/*---------------------------------------------------------------------------
5494 *WLAN_HAL_AGGR_ADD_TS_REQ
5495 *--------------------------------------------------------------------------*/
5496
5497typedef PACKED_PRE struct PACKED_POST
5498{
5499 /* Station Index */
5500 tANI_U16 staIdx;
5501
5502 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5503 /* This will carry the bitmap with the bit positions representing different AC.s*/
5504 tANI_U16 tspecIdx;
5505
5506 /* Tspec info per AC To program TPE with required parameters */
5507 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5508
5509 /* U-APSD Flags: 1b per AC. Encoded as follows:
5510 b7 b6 b5 b4 b3 b2 b1 b0 =
5511 X X X X BE BK VI VO */
5512 tANI_U8 uAPSD;
5513
5514 /* These parameters are for all the access categories */
5515 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5516 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5517 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5518
5519}tAggrAddTsParams, *tpAggrAddTsParams;
5520
5521
5522typedef PACKED_PRE struct PACKED_POST
5523{
5524 tHalMsgHeader header;
5525 tAggrAddTsParams aggrAddTsParam;
5526}tAggrAddTsReq, *tpAggrAddTsReq;
5527
5528/*---------------------------------------------------------------------------
5529*WLAN_HAL_AGGR_ADD_TS_RSP
5530*--------------------------------------------------------------------------*/
5531
5532typedef PACKED_PRE struct PACKED_POST
5533{
5534 /* success or failure */
5535 tANI_U32 status0;
5536 /* FIXME PRIMA for future use for 11R */
5537 tANI_U32 status1;
5538}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5539
5540typedef PACKED_PRE struct PACKED_POST
5541{
5542 tHalMsgHeader header;
5543 tAggrAddTsRspParams aggrAddTsRspParam;
5544}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5545
5546#endif
5547
5548/*---------------------------------------------------------------------------
5549 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5550 *--------------------------------------------------------------------------*/
5551typedef PACKED_PRE struct PACKED_POST
5552{
5553 tANI_U8 isAppsCpuAwake;
5554} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5555
5556typedef PACKED_PRE struct PACKED_POST
5557{
5558 tHalMsgHeader header;
5559 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5560} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5561
5562/*---------------------------------------------------------------------------
5563 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5564 *--------------------------------------------------------------------------*/
5565typedef PACKED_PRE struct PACKED_POST
5566{
5567 /* success or failure */
5568 tANI_U32 status;
5569} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5570
5571typedef PACKED_PRE struct PACKED_POST
5572{
5573 tHalMsgHeader header;
5574 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5575} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5576/*---------------------------------------------------------------------------
5577 * WLAN_HAL_DUMP_COMMAND_REQ
5578 *--------------------------------------------------------------------------*/
5579
5580typedef PACKED_PRE struct PACKED_POST
5581{
5582 tANI_U32 argument1;
5583 tANI_U32 argument2;
5584 tANI_U32 argument3;
5585 tANI_U32 argument4;
5586 tANI_U32 argument5;
5587
5588}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5589
5590typedef PACKED_PRE struct PACKED_POST
5591{
5592 tHalMsgHeader header;
5593 tHalDumpCmdReqParams dumpCmdReqParams;
5594} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5595
5596/*---------------------------------------------------------------------------
5597 * WLAN_HAL_DUMP_COMMAND_RSP
5598 *--------------------------------------------------------------------------*/
5599
5600typedef PACKED_PRE struct PACKED_POST
5601{
5602 /* success or failure */
5603 tANI_U32 status;
5604 /*Length of the responce message*/
5605 tANI_U32 rspLength;
5606 /*FiXME: Currently considering the the responce will be less than 100bytes */
5607 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Dino Mycle8afbac12014-07-04 22:06:17 +05305608
Jeff Johnson295189b2012-06-20 16:38:30 -07005609} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5610
5611typedef PACKED_PRE struct PACKED_POST
5612{
5613 tHalMsgHeader header;
5614 tHalDumpCmdRspParams dumpCmdRspParams;
5615} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5616
5617/*---------------------------------------------------------------------------
5618 *WLAN_HAL_COEX_IND
5619 *-------------------------------------------------------------------------*/
5620#define WLAN_COEX_IND_DATA_SIZE (4)
5621#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5622#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005623#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5624#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005625#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5626#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Kanchanapally, Vidyullatha4eca8d22014-11-04 14:33:30 +05305627#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
5628#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
c_hpothu0e9ebbe2014-11-14 12:02:53 +05305629#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
Jeff Johnson295189b2012-06-20 16:38:30 -07005630
5631typedef PACKED_PRE struct PACKED_POST
5632{
5633 /*Coex Indication Type*/
5634 tANI_U32 coexIndType;
5635
5636 /*Coex Indication Data*/
5637 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5638}tCoexIndParams,*tpCoexIndParams;
5639
5640typedef PACKED_PRE struct PACKED_POST
5641{
5642 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305643 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005644}tCoexIndMsg, *tpCoexIndMsg;
5645
5646/*---------------------------------------------------------------------------
5647 *WLAN_HAL_OTA_TX_COMPL_IND
5648 *-------------------------------------------------------------------------*/
5649
5650typedef PACKED_PRE struct PACKED_POST
5651{
5652 /*Tx Complete Indication Success or Failure*/
5653 tANI_U32 status;
5654}tTxComplParams,*tpTxComplParams;
5655
5656typedef PACKED_PRE struct PACKED_POST
5657{
5658 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305659 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005660}tTxComplIndMsg, *tpTxComplIndMsg;
5661
5662/*---------------------------------------------------------------------------
5663 * WLAN_HAL_HOST_SUSPEND_IND
5664 *-------------------------------------------------------------------------*/
5665
5666typedef PACKED_PRE struct PACKED_POST
5667{
5668 tANI_U32 configuredMcstBcstFilterSetting;
Dino Mycle8afbac12014-07-04 22:06:17 +05305669 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005670}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5671
5672typedef PACKED_PRE struct PACKED_POST
5673{
5674 tHalMsgHeader header;
5675 tHalWlanHostSuspendIndParam suspendIndParams;
5676}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5677
5678/*---------------------------------------------------------------------------
5679 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5680 *-------------------------------------------------------------------------*/
5681
5682typedef PACKED_PRE struct PACKED_POST
5683{
5684 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Dino Mycle8afbac12014-07-04 22:06:17 +05305685 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005686}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5687
5688typedef PACKED_PRE struct PACKED_POST
5689{
5690 tHalMsgHeader header;
5691 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5692}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5693
5694#ifdef WLAN_FEATURE_P2P
5695/*---------------------------------------------------------------------------
5696 *WLAN_HAL_NOA_ATTR_IND
5697 *-------------------------------------------------------------------------*/
5698
5699typedef PACKED_PRE struct PACKED_POST
5700{
5701 tANI_U8 index ;
5702 tANI_U8 oppPsFlag ;
5703 tANI_U16 ctWin ;
5704
5705 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005706 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005707 tANI_U32 uNoa1Duration;
5708 tANI_U32 uNoa1Interval;
5709 tANI_U32 uNoa1StartTime;
5710
5711 tANI_U16 uNoa2IntervalCnt;
5712 tANI_U16 rsvd2;
5713 tANI_U32 uNoa2Duration;
5714 tANI_U32 uNoa2Interval;
5715 tANI_U32 uNoa2StartTime;
5716
5717 tANI_U32 status;
5718}tNoaAttrIndParams, *tpNoaAttrIndParams;
5719
5720typedef PACKED_PRE struct PACKED_POST
5721{
5722 tHalMsgHeader header;
Dino Mycle8afbac12014-07-04 22:06:17 +05305723 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005724}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005725
5726/*---------------------------------------------------------------------------
5727 *WLAN_HAL_NOA_START_IND
5728 *-------------------------------------------------------------------------*/
5729
5730typedef PACKED_PRE struct PACKED_POST
5731{
5732 tANI_U32 status;
5733 tANI_U32 bssIdx;
5734}tNoaStartIndParams, *tpNoaStartIndParams;
5735
5736typedef PACKED_PRE struct PACKED_POST
5737{
5738 tHalMsgHeader header;
5739 tNoaStartIndParams noaStartIndParams;
5740}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005741#endif
5742
5743/*---------------------------------------------------------------------------
5744 * WLAN_HAL_HOST_RESUME_REQ
5745 *-------------------------------------------------------------------------*/
5746
5747typedef PACKED_PRE struct PACKED_POST
5748{
5749 tANI_U8 configuredMcstBcstFilterSetting;
5750}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5751
5752typedef PACKED_PRE struct PACKED_POST
5753{
5754 tHalMsgHeader header;
5755 tHalWlanHostResumeReqParam resumeReqParams;
5756}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5757
5758/*---------------------------------------------------------------------------
5759 * WLAN_HAL_HOST_RESUME_RSP
5760 *--------------------------------------------------------------------------*/
5761typedef PACKED_PRE struct PACKED_POST
5762{
5763 /* success or failure */
5764 tANI_U32 status;
5765} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5766
5767typedef PACKED_PRE struct PACKED_POST
5768{
5769 tHalMsgHeader header;
5770 tHalHostResumeRspParams hostResumeRspParams;
5771} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5772
Anand Kumar012623a2013-01-11 17:00:00 -08005773typedef PACKED_PRE struct PACKED_POST
5774{
5775 tANI_U16 staIdx;
5776 // Peer MAC Address, whose BA session has timed out
5777 tSirMacAddr peerMacAddr;
5778 // TID for which a BA session timeout is being triggered
5779 tANI_U8 baTID;
5780 // DELBA direction
5781 // 1 - Originator
5782 // 0 - Recipient
5783 tANI_U8 baDirection;
5784 tANI_U32 reasonCode;
5785 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5786} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5787
5788typedef PACKED_PRE struct PACKED_POST
5789{
5790 tHalMsgHeader header;
5791 tHalWlanDelBaIndMsg hostdelBaParam;
5792} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5793
Jeff Johnson295189b2012-06-20 16:38:30 -07005794/*---------------------------------------------------------------------------
5795 *PNO Messages
5796 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005797/* Max number of channels that a network can be found on*/
5798/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5799 * be changed at same time
5800 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005801#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005802
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305803/*Max number of channels that a network can be found on*/
5804#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5805
Jeff Johnson295189b2012-06-20 16:38:30 -07005806/*Maximum numbers of networks supported by PNO*/
5807#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5808
5809/*The number of scan time intervals that can be programmed into PNO*/
5810#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5811
5812/*Maximum size of the probe template*/
5813#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5814
Dino Mycle8afbac12014-07-04 22:06:17 +05305815/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005816 Immediate - scanning will start immediately and PNO procedure will
5817 be repeated based on timer
5818 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005819 Resume - scanning will start on system resume
5820 Delay - start the scan timer to trigger PNO scan
5821 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005822typedef enum
5823{
5824 ePNO_MODE_IMMEDIATE,
5825 ePNO_MODE_ON_SUSPEND,
5826 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305827 ePNO_MODE_DELAY,
5828 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005829 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5830} ePNOMode;
5831
5832/*Authentication type*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305833typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005834{
Dino Mycle8afbac12014-07-04 22:06:17 +05305835 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005836 eAUTH_TYPE_OPEN_SYSTEM = 1,
Dino Mycle8afbac12014-07-04 22:06:17 +05305837
Jeff Johnson295189b2012-06-20 16:38:30 -07005838 // Upper layer authentication types
5839 eAUTH_TYPE_WPA = 2,
5840 eAUTH_TYPE_WPA_PSK = 3,
Dino Mycle8afbac12014-07-04 22:06:17 +05305841
Jeff Johnson295189b2012-06-20 16:38:30 -07005842 eAUTH_TYPE_RSN = 4,
5843 eAUTH_TYPE_RSN_PSK = 5,
5844 eAUTH_TYPE_FT_RSN = 6,
5845 eAUTH_TYPE_FT_RSN_PSK = 7,
5846 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5847 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005848 eAUTH_TYPE_CCKM_WPA = 10,
5849 eAUTH_TYPE_CCKM_RSN = 11,
Dino Mycle8afbac12014-07-04 22:06:17 +05305850
Jeff Johnson295189b2012-06-20 16:38:30 -07005851 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5852
5853}tAuthType;
5854
5855/* Encryption type */
5856typedef enum eEdType
5857{
5858 eED_ANY = 0,
5859 eED_NONE = 1,
5860 eED_WEP = 2,
5861 eED_TKIP = 3,
5862 eED_CCMP = 4,
5863 eED_WPI = 5,
Dino Mycle8afbac12014-07-04 22:06:17 +05305864
Jeff Johnson295189b2012-06-20 16:38:30 -07005865 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5866} tEdType;
5867
5868/* SSID broadcast type */
5869typedef enum eSSIDBcastType
5870{
5871 eBCAST_UNKNOWN = 0,
5872 eBCAST_NORMAL = 1,
5873 eBCAST_HIDDEN = 2,
5874
5875 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5876} tSSIDBcastType;
5877
Dino Mycle8afbac12014-07-04 22:06:17 +05305878/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005879 The network description for which PNO will have to look for
5880*/
5881typedef PACKED_PRE struct PACKED_POST
5882{
5883 /*SSID of the BSS*/
5884 tSirMacSSid ssId;
5885
5886 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305887 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005888
5889 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305890 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005891
Dino Mycle8afbac12014-07-04 22:06:17 +05305892 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005893 0 - if all channels */
5894 tANI_U8 ucChannelCount;
5895 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5896
5897 /*Indicates the RSSI threshold for the network to be considered*/
5898 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05305899}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005900
5901typedef PACKED_PRE struct PACKED_POST
5902{
5903 /*How much it should wait */
Dino Mycle8afbac12014-07-04 22:06:17 +05305904 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005905
Dino Mycle8afbac12014-07-04 22:06:17 +05305906 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005907 0 - keep using this timer until PNO is disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305908 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005909
Dino Mycle8afbac12014-07-04 22:06:17 +05305910 /*e.g: 2 3
5911 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005912 - it will wait 2s between consecutive scans for 3 times
5913 - after that it will wait 4s between consecutive scans until disabled*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305914}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005915
Dino Mycle8afbac12014-07-04 22:06:17 +05305916/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005917 The network parameters to be sent to the PNO algorithm
5918*/
5919typedef PACKED_PRE struct PACKED_POST
5920{
5921 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305922 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005923
Dino Mycle8afbac12014-07-04 22:06:17 +05305924 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005925 two consecutive scan procedures
5926 If the desired is for a uniform timer that fires always at the exact same
5927 interval - one single value is to be set
5928 If there is a desire for a more complex - telescopic like timer multiple
5929 values can be set - once PNO reaches the end of the array it will
5930 continue scanning at intervals presented by the last value*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305931 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005932
5933}tScanTimersType;
5934
5935typedef PACKED_PRE struct PACKED_POST {
5936
5937 /*Enable PNO*/
5938 tANI_U32 enable;
5939
5940 /*Immediate, On Suspend, On Resume*/
5941 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05305942
Jeff Johnson295189b2012-06-20 16:38:30 -07005943 /*Number of networks sent for PNO*/
5944 tANI_U32 ucNetworksCount;
5945
5946 /*The networks that PNO needs to look for*/
5947 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5948
5949 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305950 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005951
5952 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305953 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005954 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5955
5956 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305957 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005958 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5959
5960} tPrefNetwListParams, * tpPrefNetwListParams;
5961
5962/*
Dino Mycle8afbac12014-07-04 22:06:17 +05305963 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005964*/
5965typedef PACKED_PRE struct PACKED_POST
5966{
5967 tHalMsgHeader header;
5968 tPrefNetwListParams prefNetwListParams;
5969} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5970
5971
Dino Mycle8afbac12014-07-04 22:06:17 +05305972/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005973 The network description for which PNO will have to look for
5974*/
5975typedef PACKED_PRE struct PACKED_POST
5976{
5977 /*SSID of the BSS*/
5978 tSirMacSSid ssId;
5979
5980 /*Authentication type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305981 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005982
5983 /*Encryption type for the network*/
Dino Mycle8afbac12014-07-04 22:06:17 +05305984 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005985
5986 /*SSID broadcast type, normal, hidden or unknown*/
5987 tSSIDBcastType bcastNetworkType;
5988
Dino Mycle8afbac12014-07-04 22:06:17 +05305989 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005990 0 - if all channels */
5991 tANI_U8 ucChannelCount;
5992 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5993
5994 /*Indicates the RSSI threshold for the network to be considered*/
5995 tANI_U8 rssiThreshold;
Dino Mycle8afbac12014-07-04 22:06:17 +05305996}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005997
5998typedef PACKED_PRE struct PACKED_POST {
5999
6000 /*Enable PNO*/
6001 tANI_U32 enable;
6002
6003 /*Immediate, On Suspend, On Resume*/
6004 ePNOMode modePNO;
Dino Mycle8afbac12014-07-04 22:06:17 +05306005
Jeff Johnson295189b2012-06-20 16:38:30 -07006006 /*Number of networks sent for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306007 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07006008
6009 /*The networks that PNO needs to look for*/
6010 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
6011
6012 /*The scan timers required for PNO*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306013 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07006014
6015 /*Probe template for 2.4GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306016 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006017 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6018
6019 /*Probe template for 5GHz band*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306020 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07006021 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6022
6023} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
6024
6025/*
6026 Preferred network list request new
6027*/
6028typedef PACKED_PRE struct PACKED_POST
6029{
6030 tHalMsgHeader header;
6031 tPrefNetwListParamsNew prefNetwListParams;
6032} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
6033
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006034#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
6035typedef PACKED_PRE struct PACKED_POST
6036{
6037 tSirMacSSid ssId;
6038 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
6039 tANI_U32 authentication;
6040 tEdType encryption;
6041 tEdType mcencryption;
6042 tANI_U8 ChannelCount;
6043 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6044}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07006045
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006046typedef PACKED_PRE struct PACKED_POST
6047{
6048 tANI_U8 mdiePresent;
6049 tANI_U16 mobilityDomain;
6050}tMobilityDomainInfo;
6051
6052typedef PACKED_PRE struct PACKED_POST {
6053 eAniBoolean RoamScanOffloadEnabled;
6054 tANI_S8 LookupThreshold;
6055 tANI_U8 RoamRssiDiff;
6056 tANI_U8 ChannelCacheType;
6057 tANI_U8 Command;
6058 tANI_U8 StartScanReason;
6059 tANI_U16 NeighborScanTimerPeriod;
6060 tANI_U16 NeighborRoamScanRefreshPeriod;
6061 tANI_U16 NeighborScanChannelMinTime;
6062 tANI_U16 NeighborScanChannelMaxTime;
6063 tANI_U16 EmptyRefreshScanPeriod;
6064 tANI_U8 ValidChannelCount;
6065 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08006066 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006067
6068 tANI_U16 us24GProbeSize;
6069 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6070 tANI_U16 us5GProbeSize;
6071 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
6072 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07006073 tANI_U8 nProbes;
6074 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08006075 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08006076 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07006077 tANI_U8 RoamOffloadEnabled;
6078 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
6079 tANI_U8 Prefer5GHz;
6080 tANI_U8 RoamRssiCatGap;
6081 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006082 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
6083 tRoamNetworkType ConnectedNetwork;
6084 tMobilityDomainInfo MDID;
6085} tRoamCandidateListParams, * tpRoamCandidateListParams;
6086
6087typedef PACKED_PRE struct PACKED_POST
6088{
Kumar Anandea78e792013-10-10 23:47:01 -07006089 tHalMsgHeader header;
6090 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006091} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
6092
6093typedef PACKED_PRE struct PACKED_POST
6094{
Kumar Anandea78e792013-10-10 23:47:01 -07006095 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006096
Kumar Anandea78e792013-10-10 23:47:01 -07006097 /* status of the request - just to indicate that PNO has acknowledged
6098 * the request and will start scanning */
6099 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006100} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6101#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006102
6103/*
6104 Preferred network list response
6105*/
6106typedef PACKED_PRE struct PACKED_POST
6107{
6108 tHalMsgHeader header;
6109
6110 /* status of the request - just to indicate that PNO has acknowledged
6111 * the request and will start scanning*/
6112 tANI_U32 status;
6113} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6114
6115/*
6116 Preferred network indication parameters
6117*/
6118typedef PACKED_PRE struct PACKED_POST {
6119
6120 /*Network that was found with the highest RSSI*/
6121 tSirMacSSid ssId;
6122
6123 /*Indicates the RSSI */
6124 tANI_U8 rssi;
6125
6126 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6127 tANI_U16 frameLength;
6128
6129} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6130
6131/*
6132 Preferred network found indication
6133*/
6134typedef PACKED_PRE struct PACKED_POST {
6135
6136 tHalMsgHeader header;
6137 tPrefNetwFoundParams prefNetwFoundParams;
6138} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6139
6140
6141typedef PACKED_PRE struct PACKED_POST {
6142
6143 /*RSSI Threshold*/
6144 tANI_U8 ucRssiThreshold;
6145
6146} tRssiFilterParams, * tpRssiFilterParams;
6147
Jeff Johnson295189b2012-06-20 16:38:30 -07006148/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306149 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006150*/
6151typedef PACKED_PRE struct PACKED_POST
6152{
6153 tHalMsgHeader header;
6154 tRssiFilterParams prefRSSIFilterParams;
6155} tSetRssiFilterReq, *tpSetRssiFilterReq;
6156
6157/*
6158 Set RSSI filter resp
6159*/
6160typedef PACKED_PRE struct PACKED_POST{
6161 tHalMsgHeader header;
6162 /*status of the request */
6163 tANI_U32 status;
6164} tSetRssiFilterResp, *tpSetRssiFilterResp;
6165/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306166 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006167*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306168typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006169{
6170
6171 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306172 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006173
6174 /*Lets PNO know that host has determined the regulatory domain*/
6175 tANI_U8 b11dResolved;
6176
6177 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306178 tANI_U8 ucChannelCount;
6179 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006180
6181 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306182 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006183
6184 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306185 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006186
6187 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306188 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006189
6190 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306191 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006192
6193 /*Cb State*/
6194 ePhyChanBondState cbState;
6195
6196} tUpdateScanParams, * tpUpdateScanParams;
6197
6198/*
Dino Mycle8afbac12014-07-04 22:06:17 +05306199 Update scan params
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306200*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306201typedef PACKED_PRE struct PACKED_POST
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306202{
6203
6204 /*Host setting for 11d*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306205 tANI_U8 b11dEnabled;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306206
6207 /*Lets PNO know that host has determined the regulatory domain*/
6208 tANI_U8 b11dResolved;
6209
6210 /*Channels on which PNO is allowed to scan*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306211 tANI_U8 ucChannelCount;
6212 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306213
6214 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306215 tANI_U16 usActiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306216
6217 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306218 tANI_U16 usActiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306219
6220 /*Minimum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306221 tANI_U16 usPassiveMinChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306222
6223 /*Maximum channel time*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306224 tANI_U16 usPassiveMaxChTime;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306225
6226 /*Cb State*/
6227 ePhyChanBondState cbState;
6228
6229} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6230
6231/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006232 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306233 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006234*/
6235typedef PACKED_PRE struct PACKED_POST{
6236
6237 tHalMsgHeader header;
6238 tUpdateScanParams scanParams;
6239} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6240
6241/*
6242 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306243 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006244*/
6245typedef PACKED_PRE struct PACKED_POST{
6246
6247 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306248 tUpdateScanParamsEx scanParams;
6249} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6250
6251/*
6252 Update scan params - sent from host to PNO
Dino Mycle8afbac12014-07-04 22:06:17 +05306253 to be used during PNO scanning
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306254*/
6255typedef PACKED_PRE struct PACKED_POST{
6256
6257 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006258
6259 /*status of the request */
6260 tANI_U32 status;
6261
6262} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6263
6264/*---------------------------------------------------------------------------
6265 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6266 *--------------------------------------------------------------------------*/
6267typedef PACKED_PRE struct PACKED_POST
6268{
6269 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6270 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6271 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6272 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6273} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6274
6275typedef PACKED_PRE struct PACKED_POST
6276{
6277 tHalMsgHeader header;
6278 tHalTxPerTrackingReqParam txPerTrackingParams;
6279} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6280
6281/*---------------------------------------------------------------------------
6282 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6283 *--------------------------------------------------------------------------*/
6284typedef PACKED_PRE struct PACKED_POST
6285{
6286 /* success or failure */
6287 tANI_U32 status;
6288} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6289
6290typedef PACKED_PRE struct PACKED_POST
6291{
6292 tHalMsgHeader header;
6293 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6294} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6295
6296/*---------------------------------------------------------------------------
6297 * WLAN_HAL_TX_PER_HIT_IND
6298 *--------------------------------------------------------------------------*/
6299typedef PACKED_PRE struct PACKED_POST
6300{
6301 tHalMsgHeader header;
6302}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6303
6304/*---------------------------------------------------------------------------
6305 *******************Packet Filtering Definitions Begin*******************
6306 *--------------------------------------------------------------------------*/
6307#define HAL_PROTOCOL_DATA_LEN 8
6308#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6309#define HAL_MAX_NUM_FILTERS 20
6310#define HAL_MAX_CMP_PER_FILTER 10
6311
6312typedef enum
6313{
6314 HAL_RCV_FILTER_TYPE_INVALID,
6315 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6316 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6317 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6318}tHalReceivePacketFilterType;
6319
Dino Mycle8afbac12014-07-04 22:06:17 +05306320typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006321{
6322 HAL_FILTER_PROTO_TYPE_INVALID,
6323 HAL_FILTER_PROTO_TYPE_MAC,
6324 HAL_FILTER_PROTO_TYPE_ARP,
6325 HAL_FILTER_PROTO_TYPE_IPV4,
6326 HAL_FILTER_PROTO_TYPE_IPV6,
6327 HAL_FILTER_PROTO_TYPE_UDP,
6328 HAL_FILTER_PROTO_TYPE_MAX
6329}tHalRcvPktFltProtocolType;
6330
Dino Mycle8afbac12014-07-04 22:06:17 +05306331typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006332{
6333 HAL_FILTER_CMP_TYPE_INVALID,
6334 HAL_FILTER_CMP_TYPE_EQUAL,
6335 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6336 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6337 HAL_FILTER_CMP_TYPE_MAX
6338}tHalRcvPktFltCmpFlagType;
6339
Dino Mycle8afbac12014-07-04 22:06:17 +05306340typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006341{
6342 tANI_U8 protocolLayer;
6343 tANI_U8 cmpFlag;
6344 tANI_U16 dataLength; /* Length of the data to compare */
6345 tANI_U8 dataOffset; /* from start of the respective frame header */
6346 tANI_U8 reserved; /* Reserved field */
6347 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6348 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6349}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6350
6351typedef PACKED_PRE struct PACKED_POST
6352{
6353 tANI_U8 filterId;
6354 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306355 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006356 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006357 tHalRcvPktFilterParams paramsData[1];
6358}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6359
6360typedef PACKED_PRE struct PACKED_POST
6361{
Jeff Johnsone7245742012-09-05 17:12:55 -07006362 tANI_U8 filterId;
6363 tANI_U8 filterType;
Dino Mycle8afbac12014-07-04 22:06:17 +05306364 tANI_U8 numParams;
6365 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006366 tANI_U8 bssIdx;
6367 tHalRcvPktFilterParams paramsData[1];
6368}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6369
6370typedef PACKED_PRE struct PACKED_POST
6371{
Jeff Johnson295189b2012-06-20 16:38:30 -07006372 tHalMsgHeader header;
6373 tHalRcvPktFilterCfgType pktFilterCfg;
6374} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6375
Jeff Johnsone7245742012-09-05 17:12:55 -07006376typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006377{
6378 tANI_U8 dataOffset; /* from start of the respective frame header */
6379 tANI_U32 cMulticastAddr;
6380 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006381 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006382} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6383
6384typedef PACKED_PRE struct PACKED_POST
6385{
6386 /* success or failure */
6387 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006388 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006389} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6390
6391typedef PACKED_PRE struct PACKED_POST
6392{
6393 tHalMsgHeader header;
6394 tHalSetPktFilterRspParams pktFilterRspParams;
6395} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6396
Jeff Johnsone7245742012-09-05 17:12:55 -07006397typedef PACKED_PRE struct PACKED_POST
6398{
6399 tANI_U8 bssIdx;
6400} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006401
6402typedef PACKED_PRE struct PACKED_POST
6403{
6404 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006405 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006406} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6407
Jeff Johnsone7245742012-09-05 17:12:55 -07006408
Jeff Johnson295189b2012-06-20 16:38:30 -07006409typedef PACKED_PRE struct PACKED_POST
6410{
6411 tANI_U8 filterId;
6412 tANI_U32 matchCnt;
6413} tHalRcvFltPktMatchCnt;
6414typedef PACKED_PRE struct PACKED_POST
6415{
6416 /* Success or Failure */
6417 tANI_U32 status;
Dino Mycle8afbac12014-07-04 22:06:17 +05306418 tANI_U32 matchCnt;
6419 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006420 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006421} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6422
6423typedef PACKED_PRE struct PACKED_POST
6424{
6425 tHalMsgHeader header;
6426 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6427} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6428
6429typedef PACKED_PRE struct PACKED_POST
6430{
6431 tANI_U32 status; /* only valid for response message */
6432 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006433 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006434}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6435
6436typedef PACKED_PRE struct PACKED_POST
6437{
6438 tHalMsgHeader header;
6439 tHalRcvFltPktClearParam filterClearParam;
6440} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6441
6442typedef PACKED_PRE struct PACKED_POST
6443{
6444 tHalMsgHeader header;
6445 tHalRcvFltPktClearParam filterClearParam;
6446} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6447
6448typedef PACKED_PRE struct PACKED_POST
6449{
Dino Mycle8afbac12014-07-04 22:06:17 +05306450 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006451 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006452}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6453
6454typedef PACKED_PRE struct PACKED_POST
6455{
6456 tHalMsgHeader header;
6457 tHalRcvFltMcAddrListType mcAddrList;
6458} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6459
6460typedef PACKED_PRE struct PACKED_POST
6461{
6462 tHalMsgHeader header;
6463 tHalRcvFltPktSetMcListRspType rspParam;
6464} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6465
6466
6467/*---------------------------------------------------------------------------
6468 *******************Packet Filtering Definitions End*******************
6469 *--------------------------------------------------------------------------*/
6470
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006471/*
6472 * There are two versions of this message
6473 * Version 1 : Base version
6474 * Current version : Base version + Max LI modulated DTIM
6475 */
6476typedef PACKED_PRE struct PACKED_POST
6477{
6478 /* Ignore DTIM */
6479 tANI_U32 uIgnoreDTIM;
6480
6481 /*DTIM Period*/
6482 tANI_U32 uDTIMPeriod;
6483
6484 /* Listen Interval */
6485 tANI_U32 uListenInterval;
6486
6487 /* Broadcast Multicast Filter */
6488 tANI_U32 uBcastMcastFilter;
6489
6490 /* Beacon Early Termination */
6491 tANI_U32 uEnableBET;
6492
6493 /* Beacon Early Termination Interval */
6494 tANI_U32 uBETInterval;
6495}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6496
6497typedef PACKED_PRE struct PACKED_POST
6498{
6499 tHalMsgHeader header;
6500 tSetPowerParamsVer1Type powerParams;
6501} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6502
Jeff Johnson295189b2012-06-20 16:38:30 -07006503typedef PACKED_PRE struct PACKED_POST
6504{
6505 /* Ignore DTIM */
6506 tANI_U32 uIgnoreDTIM;
6507
6508 /*DTIM Period*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306509 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006510
6511 /* Listen Interval */
6512 tANI_U32 uListenInterval;
6513
6514 /* Broadcast Multicast Filter */
6515 tANI_U32 uBcastMcastFilter;
6516
6517 /* Beacon Early Termination */
6518 tANI_U32 uEnableBET;
6519
6520 /* Beacon Early Termination Interval */
Dino Mycle8afbac12014-07-04 22:06:17 +05306521 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006522
6523 /* MAX LI for modulated DTIM */
6524 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006525}tSetPowerParamsType, *tpSetPowerParamsType;
6526
6527typedef PACKED_PRE struct PACKED_POST
6528{
6529 tHalMsgHeader header;
6530 tSetPowerParamsType powerParams;
6531} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6532
6533typedef PACKED_PRE struct PACKED_POST{
6534
6535 tHalMsgHeader header;
6536
6537 /*status of the request */
6538 tANI_U32 status;
6539
6540} tSetPowerParamsResp, *tpSetPowerParamsResp;
6541
6542/*---------------------------------------------------------------------------
6543 ****************Capability bitmap exchange definitions and macros starts*************
6544 *--------------------------------------------------------------------------*/
6545
Anand Kumar012623a2013-01-11 17:00:00 -08006546typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006547 MCC = 0,
6548 P2P = 1,
6549 DOT11AC = 2,
6550 SLM_SESSIONIZATION = 3,
6551 DOT11AC_OPMODE = 4,
6552 SAP32STA = 5,
6553 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006554 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006555 WLANACTIVE_OFFLOAD = 8,
6556 BEACON_OFFLOAD = 9,
6557 SCAN_OFFLOAD = 10,
6558 ROAM_OFFLOAD = 11,
6559 BCN_MISS_OFFLOAD = 12,
6560 STA_POWERSAVE = 13,
6561 STA_ADVANCED_PWRSAVE = 14,
6562 AP_UAPSD = 15,
6563 AP_DFS = 16,
6564 BLOCKACK = 17,
6565 PHY_ERR = 18,
6566 BCN_FILTER = 19,
6567 RTT = 20,
6568 RATECTRL = 21,
6569 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006570 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006571 SPECULATIVE_PS_POLL = 24,
6572 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006573 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006574 WLAN_SCAN_OFFLOAD = 27,
6575 WLAN_PERIODIC_TX_PTRN = 28,
6576 ADVANCE_TDLS = 29,
6577 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306578 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306579 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306580 CH_SWITCH_V1 = 33,
6581 HT40_OBSS_SCAN = 34,
6582 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006583 WLAN_MCADDR_FLT = 36,
6584 WLAN_CH144 = 37,
6585 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306586 TDLS_SCAN_COEXISTENCE = 39,
Dino Mycle8afbac12014-07-04 22:06:17 +05306587 LINK_LAYER_STATS_MEAS = 40,
6588 MU_MIMO = 41,
6589 EXTENDED_SCAN = 42,
Mihir Shete65530822014-08-07 11:57:40 +05306590 DYNAMIC_WMM_PS = 43,
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306591 MAC_SPOOFED_SCAN = 44,
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306592 BMU_ERROR_GENERIC_RECOVERY = 45,
Abhishek Singh725c1582014-11-24 11:47:48 +05306593 DISA = 46,
6594 FW_STATS = 47,
Kumar Anandea78e792013-10-10 23:47:01 -07006595 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006596} placeHolderInCapBitmap;
6597
Jeff Johnson295189b2012-06-20 16:38:30 -07006598typedef PACKED_PRE struct PACKED_POST{
6599
6600 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006601} tWlanFeatCaps, *tpWlanFeatCaps;
6602
6603typedef PACKED_PRE struct PACKED_POST{
6604
Dino Mycle8afbac12014-07-04 22:06:17 +05306605 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006606 tWlanFeatCaps wlanFeatCaps;
6607
6608} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6609
Jeff Johnsone7245742012-09-05 17:12:55 -07006610#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6611#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006612#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006613#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006614#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006615#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006616#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006617#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306618#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Mihir Shete65530822014-08-07 11:57:40 +05306619#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05306620#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
Mihir Sheteb4bcb312014-11-17 15:23:37 +05306621#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006622
Jeff Johnsone7245742012-09-05 17:12:55 -07006623tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6624
Jeff Johnson295189b2012-06-20 16:38:30 -07006625#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006626 if ((b)<=127) { \
6627 arr_index = (b)/32; \
6628 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006629 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006630 (a)->featCaps[arr_index] |= (1<<bit_index); \
6631 } \
6632 }
6633#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006634 if ((b)<=127) { \
6635 arr_index = (b)/32; \
6636 bit_index = (b)%32; \
6637 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006638 } \
6639 }
6640#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006641 if ((b)<=127) { \
6642 arr_index = (b)/32; \
6643 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006644 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006645 } \
6646 }
6647
6648/*---------------------------------------------------------------------------
6649 * WLAN_HAL_WAKE_REASON_IND
6650 *--------------------------------------------------------------------------*/
6651
6652/* status codes to help debug rekey failures */
6653typedef enum
6654{
6655 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6656 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6657 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6658 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6659 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6660 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6661 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6662 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6663 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6664 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6665
6666 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6667} tGTKRekeyStatus;
6668
6669/* wake reason types */
6670typedef enum
6671{
6672 WLAN_HAL_WAKE_REASON_NONE = 0,
6673 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6674 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6675 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6676 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6677 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6678 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6679 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6680} tWakeReasonType;
6681
6682/*
6683 Wake Packet which is saved at tWakeReasonParams.DataStart
6684 This data is sent for any wake reasons that involve a packet-based wakeup :
6685
6686 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6687 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6688 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6689 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6690 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6691
6692 The information is provided to the host for auditing and debug purposes
6693
6694*/
6695
6696/*
6697 Wake reason indication parameters
6698*/
6699typedef PACKED_PRE struct PACKED_POST
6700{
6701 uint32 ulReason; /* see tWakeReasonType */
6702 uint32 ulReasonArg; /* argument specific to the reason type */
6703 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6704 HAL truncates the data (i.e. data packets) this length
6705 will be less than the actual length */
6706 uint32 ulActualDataLen; /* actual length of data */
6707 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6708 see specific wake type */
6709} tWakeReasonParams, *tpWakeReasonParams;
6710
6711/*
6712 Wake reason indication
6713*/
6714typedef PACKED_PRE struct PACKED_POST
6715{
6716 tHalMsgHeader header;
6717 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006718 tANI_U32 uBssIdx : 8;
6719 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006720} tHalWakeReasonInd, *tpHalWakeReasonInd;
6721
6722/*---------------------------------------------------------------------------
6723* WLAN_HAL_GTK_OFFLOAD_REQ
6724*--------------------------------------------------------------------------*/
6725
6726#define HAL_GTK_KEK_BYTES 16
6727#define HAL_GTK_KCK_BYTES 16
6728
6729#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6730
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006731#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6732
Jeff Johnson295189b2012-06-20 16:38:30 -07006733typedef PACKED_PRE struct PACKED_POST
6734{
6735 tANI_U32 ulFlags; /* optional flags */
Dino Mycle8afbac12014-07-04 22:06:17 +05306736 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006737 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6738 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006739 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006740} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6741
6742typedef PACKED_PRE struct PACKED_POST
6743{
6744 tHalMsgHeader header;
6745 tHalGtkOffloadReqParams gtkOffloadReqParams;
6746} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6747
6748/*---------------------------------------------------------------------------
6749* WLAN_HAL_GTK_OFFLOAD_RSP
6750*--------------------------------------------------------------------------*/
6751typedef PACKED_PRE struct PACKED_POST
6752{
6753 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006754 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006755} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6756
6757typedef PACKED_PRE struct PACKED_POST
6758{
6759 tHalMsgHeader header;
6760 tHalGtkOffloadRspParams gtkOffloadRspParams;
6761} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6762
6763
6764/*---------------------------------------------------------------------------
6765* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6766*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006767typedef PACKED_PRE struct PACKED_POST
6768{
6769 tANI_U8 bssIdx;
6770
6771} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006772
6773typedef PACKED_PRE struct PACKED_POST
6774{
6775 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006776 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006777} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6778
6779/*---------------------------------------------------------------------------
6780* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6781*--------------------------------------------------------------------------*/
6782typedef PACKED_PRE struct PACKED_POST
6783{
6784 tANI_U32 ulStatus; /* success or failure */
6785 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6786 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6787 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6788 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6789 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006790 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006791} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6792
6793typedef PACKED_PRE struct PACKED_POST
6794{
6795 tHalMsgHeader header;
6796 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6797} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6798
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006799/*---------------------------------------------------------------------------
6800* WLAN_HAL_DHCP_IND
6801*--------------------------------------------------------------------------*/
6802typedef PACKED_PRE struct PACKED_POST
6803{
6804 /*Indicates the device mode which indicates about the DHCP activity */
6805 tANI_U8 device_mode;
6806 tSirMacAddr macAddr;
6807} tDHCPInfo, *tpDHCPInfo;
6808
6809typedef PACKED_PRE struct PACKED_POST
6810{
6811 tHalMsgHeader header;
6812 tANI_U32 status; /* success or failure */
6813} tDHCPIndStatus, *tpDHCPIndstatus;
6814
Jeff Johnson295189b2012-06-20 16:38:30 -07006815/*
6816 Thermal Mitigation mode of operation.
6817 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6818 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6819 reducing transmit power
6820 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6821*/
6822typedef enum
6823{
6824 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6825 HAL_THERMAL_MITIGATION_MODE_0,
6826 HAL_THERMAL_MITIGATION_MODE_1,
6827 HAL_THERMAL_MITIGATION_MODE_2,
6828 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6829}tHalThermalMitigationModeType;
6830//typedef tANI_S16 tHalThermalMitigationModeType;
6831
6832/*
6833 Thermal Mitigation level.
6834 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6835 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6836
6837 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6838 level indicates normal mode of operation
6839 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6840 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6841 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6842 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6843*/
Dino Mycle8afbac12014-07-04 22:06:17 +05306844typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006845{
6846 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6847 HAL_THERMAL_MITIGATION_LEVEL_0,
6848 HAL_THERMAL_MITIGATION_LEVEL_1,
6849 HAL_THERMAL_MITIGATION_LEVEL_2,
6850 HAL_THERMAL_MITIGATION_LEVEL_3,
6851 HAL_THERMAL_MITIGATION_LEVEL_4,
6852 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6853}tHalThermalMitigationLevelType;
6854//typedef tANI_S16 tHalThermalMitigationLevelType;
6855
6856typedef PACKED_PRE struct PACKED_POST
6857{
6858 /* Thermal Mitigation Operation Mode */
6859 tHalThermalMitigationModeType thermalMitMode;
6860
6861 /* Thermal Mitigation Level */
6862 tHalThermalMitigationLevelType thermalMitLevel;
Dino Mycle8afbac12014-07-04 22:06:17 +05306863
Jeff Johnson295189b2012-06-20 16:38:30 -07006864}tSetThermalMitgationType, *tpSetThermalMitgationType;
6865
6866/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6867typedef PACKED_PRE struct PACKED_POST
6868{
6869 tHalMsgHeader header;
6870 tSetThermalMitgationType thermalMitParams;
6871} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6872
6873typedef PACKED_PRE struct PACKED_POST{
6874
6875 tHalMsgHeader header;
6876
6877 /*status of the request */
6878 tANI_U32 status;
6879
6880} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6881
Dino Mycle8afbac12014-07-04 22:06:17 +05306882/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006883provided to FW from Host via periodic messages */
6884typedef PACKED_PRE struct PACKED_POST {
6885 /* TX stats */
6886 uint32 txBytesPushed;
6887 uint32 txPacketsPushed;
6888
6889 /* RX stats */
6890 uint32 rxBytesRcvd;
6891 uint32 rxPacketsRcvd;
6892 uint32 rxTimeTotal;
6893} tStaStatsClassB, *tpStaStatsClassB;
6894
6895typedef PACKED_PRE struct PACKED_POST {
6896
6897 /* Duration over which this stats was collected */
6898 tANI_U32 duration;
6899
6900 /* Per STA Stats */
6901 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6902} tStatsClassBIndParams, *tpStatsClassBIndParams;
6903
6904typedef PACKED_PRE struct PACKED_POST {
6905
6906 tHalMsgHeader header;
6907
6908 /* Class B Stats */
6909 tStatsClassBIndParams statsClassBIndParams;
6910} tStatsClassBInd, *tpStatsClassBInd;
6911
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306912/*Wifi Proximity paramters in AP mode*/
6913#ifdef FEATURE_WIFI_PROXIMITY
6914
6915typedef PACKED_PRE struct PACKED_POST{
6916
6917 tANI_U8 wifiProximityChannel;
6918 tANI_U32 wifiProximityDuration;
6919 tANI_U32 wifiProximityInterval;
6920 tANI_U32 wifiProximityMode;
6921 tANI_U32 wifiProximityStatus;
6922 tSirMacAddr bssId;
6923 tSirMacSSid ssId;
6924
6925} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6926
6927typedef PACKED_PRE struct PACKED_POST
6928{
6929 tHalMsgHeader header;
6930
6931 tSetWifiProximityReqParam wifiProximityReqParams;
6932
6933}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6934
6935/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6936typedef PACKED_PRE struct PACKED_POST{
6937
6938 tHalMsgHeader header;
6939
6940 /*status of the request */
6941 tANI_U32 status;
6942
6943} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6944
6945#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006946
6947#ifdef FEATURE_SPECULATIVE_PS_POLL
6948/*---------------------------------------------------------------------------
6949 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6950 *--------------------------------------------------------------------------*/
6951typedef PACKED_PRE struct PACKED_POST
6952{
6953 tANI_U8 bssIdx;
6954 tANI_U16 serviceInterval;
6955 tANI_U16 suspendInterval;
6956 tANI_U8 acMask;
6957} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6958
6959typedef PACKED_PRE struct PACKED_POST
6960{
6961 tHalMsgHeader header;
6962 tHalStartSpecPsPollReqParams specPsPollReq;
6963} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6964
6965/*---------------------------------------------------------------------------
6966 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6967 *--------------------------------------------------------------------------*/
6968typedef PACKED_PRE struct PACKED_POST
6969{
6970 /* success or failure */
6971 tANI_U32 status;
6972 tANI_U8 bssIdx;
6973} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6974
6975typedef PACKED_PRE struct PACKED_POST
6976{
6977 tHalMsgHeader header;
6978 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6979} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6980
6981/*---------------------------------------------------------------------------
6982 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6983 *--------------------------------------------------------------------------*/
6984typedef PACKED_PRE struct PACKED_POST
6985{
6986 tHalMsgHeader header;
6987 tANI_U8 bssIdx;
6988} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6989#endif
6990
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306991#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306992#define HAL_MAX_SUPP_CHANNELS 128
6993#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306994/*---------------------------------------------------------------------------
6995 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6996 *-------------------------------------------------------------------------*/
6997typedef PACKED_PRE struct PACKED_POST
6998{
6999 /*STA Index*/
7000 tANI_U16 staIdx;
7001
7002 /* if this is 1, self is initiator and peer is reponder */
7003 tANI_U8 bIsResponder;
7004
7005 /* QoS Info */
7006 tANI_U8 acVOUAPSDFlag:1;
7007 tANI_U8 acVIUAPSDFlag:1;
7008 tANI_U8 acBKUAPSDFlag:1;
7009 tANI_U8 acBEUAPSDFlag:1;
7010 tANI_U8 aAck:1;
7011 tANI_U8 maxServicePeriodLength:2;
7012 tANI_U8 moreDataAck:1;
7013
7014 /*TDLS Peer U-APSD Buffer STA Support*/
7015 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07007016
7017 /*TDLS off channel related params */
7018 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05307019 tANI_U8 peerCurrOperClass;
7020 tANI_U8 selfCurrOperClass;
7021 tANI_U8 validChannelsLen;
7022 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
7023 tANI_U8 validOperClassesLen;
7024 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307025}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
7026
7027typedef PACKED_PRE struct PACKED_POST
7028{
7029 tHalMsgHeader header;
7030 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
7031} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
7032
7033/*---------------------------------------------------------------------------
7034 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
7035 *-------------------------------------------------------------------------*/
7036
7037typedef PACKED_PRE struct PACKED_POST
7038{
7039 tANI_U32 status;
7040
7041 /*STA Index*/
7042 tANI_U16 staIdx;
7043} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
7044
7045typedef PACKED_PRE struct PACKED_POST
7046{
7047 tHalMsgHeader header;
7048 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
7049} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
Atul Mittal53419ed2014-08-03 19:41:23 +05307050/*---------------------------------------------------------------------------
7051 + * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
7052 + *-------------------------------------------------------------------------*/
7053typedef PACKED_PRE struct PACKED_POST
7054{
7055 /*STA Index*/
7056 tANI_U16 staIdx;
7057 /* if this is 1, self is initiator otherwise responder only*/
7058 tANI_U8 isOffchannelInitiator;
7059 /*TDLS off channel related params */
7060 tANI_U8 targetOperClass;
7061 tANI_U8 targetChannel;
7062 tANI_U8 secondaryChannelOffset;
7063 tANI_U8 reserved[32];
7064}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
7065
7066typedef PACKED_PRE struct PACKED_POST
7067{
7068 tHalMsgHeader header;
7069 tTDLSChanSwitchReqType tdlsChanSwitchParams;
7070} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
7071/*---------------------------------------------------------------------------
7072 * WLAN_HAL_TDLS_CHAN_SWITCH_RSP
7073 *-------------------------------------------------------------------------*/
7074
7075typedef PACKED_PRE struct PACKED_POST
7076{
7077 tANI_U32 status;
7078 /*STA Index*/
7079 tANI_U16 staIdx;
7080} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
7081
7082typedef PACKED_PRE struct PACKED_POST
7083{
7084 tHalMsgHeader header;
7085 tTDLSChanSwitchResp tdlsChanSwitchRespParams;
7086} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
7087
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05307088
7089/*---------------------------------------------------------------------------
7090 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
7091 *-------------------------------------------------------------------------*/
7092typedef PACKED_PRE struct PACKED_POST
7093{
7094 /*STA Index*/
7095 tANI_U16 staIdx;
7096}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
7097
7098typedef PACKED_PRE struct PACKED_POST
7099{
7100 tHalMsgHeader header;
7101 tTDLSLinkTeardownType tdlsLinkTeardownParams;
7102} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
7103
7104/*---------------------------------------------------------------------------
7105 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
7106 *-------------------------------------------------------------------------*/
7107
7108typedef PACKED_PRE struct PACKED_POST
7109{
7110 tANI_U32 status;
7111
7112 /*STA Index*/
7113 tANI_U16 staIdx;
7114} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
7115
7116typedef PACKED_PRE struct PACKED_POST
7117{
7118 tHalMsgHeader header;
7119 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
7120} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
7121
7122/*---------------------------------------------------------------------------
7123 *WLAN_HAL_TDLS_IND
7124 *--------------------------------------------------------------------------*/
7125
7126typedef PACKED_PRE struct PACKED_POST
7127{
7128 tANI_U16 assocId;
7129 tANI_U16 staIdx;
7130 tANI_U16 status;
7131 tANI_U16 reasonCode;
7132}tTdlsIndParams, *tpTdlsIndParams;
7133
7134
7135typedef PACKED_PRE struct PACKED_POST
7136{
7137 tHalMsgHeader header;
7138 tTdlsIndParams tdlsIndParams;
7139}tTdlsIndMsg, *tpTdlsIndMsg;
7140
7141#endif
7142
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07007143/*---------------------------------------------------------------------------
7144 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
7145 *--------------------------------------------------------------------------*/
7146
7147typedef PACKED_PRE struct PACKED_POST
7148{
7149 tANI_U8 bssIdx;
7150 tANI_U8 staIdx;
7151 tSirMacAddr staAddr;
7152}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7153
7154
7155typedef PACKED_PRE struct PACKED_POST
7156{
7157 tHalMsgHeader header;
7158 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7159}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7160
7161
Kumar Anandea78e792013-10-10 23:47:01 -07007162/*********** Scan Offload Related Structures *************/
7163#define HAL_NUM_SCAN_SSID 10
7164#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007165
Kumar Anandea78e792013-10-10 23:47:01 -07007166/*
7167 * Enumetation to indicate scan type (active/passive)
7168 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007169typedef enum
7170{
Kumar Anandea78e792013-10-10 23:47:01 -07007171 eSIR_PASSIVE_SCAN,
7172 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7173} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007174
7175typedef PACKED_PRE struct PACKED_POST
7176{
Kumar Anandea78e792013-10-10 23:47:01 -07007177 tANI_U8 numBssid;
7178 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7179 tANI_U8 numSsid;
7180 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7181 tANI_BOOLEAN hiddenSsid;
7182 tSirMacAddr selfMacAddr;
7183 tSirBssType bssType;
7184 tSirScanType scanType;
7185 tANI_U32 minChannelTime;
7186 tANI_U32 maxChannelTime;
7187 tANI_BOOLEAN p2pSearch;
7188 tANI_U8 channelCount;
7189 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7190 tANI_U16 ieFieldLen;
7191 tANI_U8 ieField[1];
7192}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007193
7194/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007195 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007196 *-------------------------------------------------------------------------*/
7197typedef PACKED_PRE struct PACKED_POST
7198{
Kumar Anandf53016f2013-09-04 15:15:53 -07007199 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007200 tScanOffloadReqType scanOffloadParams;
7201} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007202
7203/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007204 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007205 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007206typedef PACKED_PRE struct PACKED_POST
7207{
7208 tHalMsgHeader header;
7209
7210 /*status of the request - just to indicate SO has acknowledged
7211 * * the request and will start scanning*/
7212 tANI_U32 status;
7213} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7214
7215/*---------------------------------------------------------------------------
7216 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7217 *-------------------------------------------------------------------------*/
7218typedef PACKED_PRE struct PACKED_POST
7219{
7220 tHalMsgHeader header;
7221} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7222
7223/*---------------------------------------------------------------------------
7224 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7225 *-------------------------------------------------------------------------*/
7226typedef PACKED_PRE struct PACKED_POST
7227{
7228 tHalMsgHeader header;
7229
7230 /*status of the request - just to indicate SO has acknowledged
7231 the request and will start scanning*/
7232 tANI_U32 status;
7233} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7234
7235/*
7236 * Enumetation of scan events indicated by firmware to the host
7237 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007238typedef enum
7239{
Kumar Anandea78e792013-10-10 23:47:01 -07007240 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7241 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7242 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7243 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7244 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7245 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7246 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7247 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7248 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7249} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007250
7251typedef PACKED_PRE struct PACKED_POST
7252{
Kumar Anandea78e792013-10-10 23:47:01 -07007253 tScanEventType event;
7254 tANI_U32 channel;
7255 tANI_U32 scanId;
7256} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007257
Kumar Anandea78e792013-10-10 23:47:01 -07007258/*---------------------------------------------------------------------------
7259 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7260 *-------------------------------------------------------------------------*/
7261typedef PACKED_PRE struct PACKED_POST
7262{
7263 tHalMsgHeader header;
7264 tScanOffloadEventInfo scanOffloadInd;
7265} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007266
Kumar Anandea78e792013-10-10 23:47:01 -07007267typedef PACKED_PRE struct PACKED_POST {
7268 /** primary 20 MHz channel frequency in mhz */
7269 tANI_U32 mhz;
7270 /** Center frequency 1 in MHz*/
7271 tANI_U32 band_center_freq1;
7272 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7273 tANI_U32 band_center_freq2;
7274 /* The first 26 bits are a bit mask to indicate any channel flags,
7275 (see WLAN_HAL_CHAN_FLAG*)
7276 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7277 tANI_U32 channel_info;
7278 /** contains min power, max power, reg power and reg class id. */
7279 tANI_U32 reg_info_1;
7280 /** contains antennamax */
7281 tANI_U32 reg_info_2;
7282} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007283
Kumar Anandf53016f2013-09-04 15:15:53 -07007284
Kumar Anandea78e792013-10-10 23:47:01 -07007285typedef enum {
7286 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7287 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7288 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7289 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7290 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7291 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7292 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7293 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7294 WLAN_HAL_MODE_11AC_VHT20 = 8,
7295 WLAN_HAL_MODE_11AC_VHT40 = 9,
7296 WLAN_HAL_MODE_11AC_VHT80 = 10,
7297 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7298 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7299 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7300 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007301
Kumar Anandea78e792013-10-10 23:47:01 -07007302} tChannelPhyModeType;
7303
7304#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7305#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7306#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7307#define WLAN_HAL_CHAN_AP_DISABLED 9
7308#define WLAN_HAL_CHAN_FLAG_DFS 10
7309#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7310#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007311#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7312
7313#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007314 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007315 } while(0)
7316
7317#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007318 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007319
7320#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7321 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7322 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7323 } while(0)
7324#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7325
7326#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7327 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7328 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7329 } while(0)
7330#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7331
7332#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7333 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7334 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7335 } while(0)
7336#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7337#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7338 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7339 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7340 } while(0)
7341#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7342
7343#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7344 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7345 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7346 } while(0)
7347#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7348
7349#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7350 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7351 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7352 } while(0)
7353#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 -07007354
7355typedef PACKED_PRE struct PACKED_POST
7356{
7357 tANI_U8 numChan;
7358 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7359} tUpdateChannelReqType;
7360
7361/*---------------------------------------------------------------------------
7362 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7363 *-------------------------------------------------------------------------*/
7364typedef PACKED_PRE struct PACKED_POST
7365{
7366 tHalMsgHeader header;
7367 tUpdateChannelReqType updateChannelParams;
7368} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7369
7370/*---------------------------------------------------------------------------
7371 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
7372 *-------------------------------------------------------------------------*/
7373typedef PACKED_PRE struct PACKED_POST
7374{
7375 tHalMsgHeader header;
7376
7377 /*status of the request - just to indicate SO has acknowledged
7378 * * the request and will start scanning*/
7379 tANI_U32 status;
7380} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7381
7382
7383/*---------------------------------------------------------------------------
7384* WLAN_HAL_TX_FAIL_IND
7385*--------------------------------------------------------------------------*/
7386// Northbound indication from FW to host on weak link detection
7387typedef PACKED_PRE struct PACKED_POST
7388{
7389 // Sequence number increases by 1 whenever the device driver
7390 // sends a notification event. This is cleared as 0 when the
7391 // JOIN IBSS commamd is issued
7392 tANI_U16 seqNo;
7393 tANI_U16 staId;
7394 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7395} tHalTXFailIndParams, *tpHalTXFailIndParams;
7396
7397typedef PACKED_PRE struct PACKED_POST
7398{
7399 tHalMsgHeader header;
7400 tHalTXFailIndParams txFailIndParams;
7401} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7402
7403/*---------------------------------------------------------------------------
7404* WLAN_HAL_TX_FAIL_MONITOR_IND
7405*--------------------------------------------------------------------------*/
7406// Southbound message from Host to monitor the Tx failures
7407typedef PACKED_PRE struct PACKED_POST
7408{
7409 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7410 tANI_U8 tx_fail_count;
7411} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7412
7413typedef PACKED_PRE struct PACKED_POST
7414{
7415 tHalMsgHeader header;
7416 tTXFailMonitorInfo txFailMonitor;
7417} tTXFailMonitorInd, *tpTXFailMonitorInd;
7418
7419/*---------------------------------------------------------------------------
7420* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7421*--------------------------------------------------------------------------*/
7422typedef PACKED_PRE struct PACKED_POST
7423{
7424 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7425 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7426} tDestIpNextHopMacPair;
7427
7428typedef PACKED_PRE struct PACKED_POST
7429{
7430 tANI_U8 numEntries;
7431 tDestIpNextHopMacPair destIpMacPair[1];
7432} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007433
7434typedef PACKED_PRE struct PACKED_POST
7435{
7436 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007437 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7438} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007439
Kumar Anandf53016f2013-09-04 15:15:53 -07007440/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007441 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7442 *-------------------------------------------------------------------------*/
7443typedef enum
7444{
7445 /* reassociation is done, but couldn't finish security handshake */
7446 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7447
7448 /* roam has successfully completed by firmware */
7449 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7450
7451 /* UNKONW error */
7452 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7453}tHalRoamOffloadRoamAuthStatus;
7454
7455typedef enum
7456{
7457 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7458 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7459 WLAN_HAL_ROAM_TYPE_OKC,
7460 WLAN_HAL_ROAM_TYPE_CCKM,
7461 WLAN_HAL_ROAM_TYPE_FT,
7462 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7463} tHalRoamOffloadType;
7464
7465typedef PACKED_PRE struct PACKED_POST
7466{
7467 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7468 tANI_U16 beaconProbeRespOffset;
7469
7470 /* Length of beaon / probe resp. */
7471 tANI_U16 beaconProbeRespLength;
7472
7473 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7474 tANI_U16 reassocRespOffset;
7475
7476 /* Length of reassoc resp. */
7477 tANI_U16 reassocRespLength;
7478
7479 /* 0 for probe response frame, 1 for beacon frame, */
7480 tANI_U8 isBeacon;
7481
7482 /* staIdx of old AP */
7483 tANI_U8 oldStaIdx;
7484
7485 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7486 tConfigBssRspParams */
7487 /* bssIdx of new roamed AP */
7488 tANI_U8 bssIdx;
7489
7490 /* DPU descriptor index for PTK */
7491 tANI_U8 dpuDescIndx;
7492
7493 /* PTK DPU signature */
7494 tANI_U8 ucastDpuSignature;
7495
7496 /* DPU descriptor index for GTK*/
7497 tANI_U8 bcastDpuDescIndx;
7498
7499 /* GTK DPU signature */
7500 tANI_U8 bcastDpuSignature;
7501
7502 /*DPU descriptor for IGTK*/
7503 tANI_U8 mgmtDpuDescIndx;
7504
7505 /* IGTK DPU signature */
7506 tANI_U8 mgmtDpuSignature;
7507
7508 /* Station Index for BSS entry*/
7509 tANI_U8 staIdx;
7510
7511 /* Self station index for this BSS */
7512 tANI_U8 selfStaIdx;
7513
7514 /* Bcast station for buffering bcast frames in AP role */
7515 tANI_U8 bcastStaIdx;
7516
7517 /* MAC address of roamed AP */
7518 tSirMacAddr bssid;
7519
7520 /*HAL fills in the tx power used for mgmt frames in this field. */
7521 tANI_S8 txMgmtPower;
7522
7523 /* success or failure */
7524 tHalRoamOffloadRoamAuthStatus authStatus;
7525
7526 /* TODO : add more info as needed */
7527
7528 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7529 /* Beacon or probe resp from new AP. This is in 802.11
7530 frame format starting with MAC header. */
7531 /* Up to beaconProbeRespLength */
7532
7533 /* reassocRespOffset points to starting of reassoc resp frame */
7534 /* Reassoc resp from new AP. This is in 802.11
7535 frame format starting with MAC header. */
7536 /* Up to reassocRespLength */
7537
7538} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7539
7540
7541typedef PACKED_PRE struct PACKED_POST
7542{
7543 tHalMsgHeader header;
7544 tHalRoamOffloadSynchIndParams params;
7545} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7546
7547/*---------------------------------------------------------------------------
7548 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7549 *-------------------------------------------------------------------------*/
7550typedef PACKED_PRE struct PACKED_POST
7551{
7552 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7553 tSirMacAddr bssid;
7554} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7555
7556typedef PACKED_PRE struct PACKED_POST
7557{
7558 tHalMsgHeader header;
7559 tHalRoamOffloadSynchCnfParams params;
7560} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7561
7562
7563/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007564 WLAN_HAL_RATE_UPDATE_IND
7565 *-------------------------------------------------------------------------*/
7566
7567typedef PACKED_PRE struct PACKED_POST
7568{
7569 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7570 tANI_S32 ucastDataRate; //unit Mbpsx10
7571
7572 /* TX flag to differentiate between HT20, HT40 etc */
7573 tTxRateInfoFlags ucastDataRateTxFlag;
7574
7575 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7576 tSirMacAddr bssid;
7577
7578 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7579 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7580
7581 /* TX flag to differentiate between HT20, HT40 etc */
7582 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7583
7584 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7585 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7586
7587 /* TX flag to differentiate between HT20, HT40 etc */
7588 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7589
7590 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7591 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7592
7593 /* TX flag to differentiate between HT20, HT40 etc */
7594 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7595
7596} tHalRateUpdateParams, *tpHalRateUpdateParams;
7597
7598typedef PACKED_PRE struct PACKED_POST
7599{
7600 tHalMsgHeader header;
7601 tHalRateUpdateParams halRateUpdateParams;
7602} tHalRateUpdateInd, * tpHalRateUpdateInd;
7603
7604/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307605 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7606 *-------------------------------------------------------------------------*/
7607
7608#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 4
7609
7610typedef PACKED_PRE struct PACKED_POST
7611{
7612 tANI_U32 startFreq;
7613 tANI_U32 endFreq;
7614} tHalFreqRange, *tpHalFreqRange;
7615
7616typedef PACKED_PRE struct PACKED_POST
7617{
7618 tANI_U32 avoidCnt;
7619 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7620} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7621
7622typedef PACKED_PRE struct PACKED_POST
7623{
7624 tHalMsgHeader header;
7625 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7626} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7627
7628/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307629 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007630 *-------------------------------------------------------------------------*/
7631
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307632typedef enum
7633{
7634 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7635 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7636 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7637}tHT40OBssScanCmdType;
7638
7639typedef PACKED_PRE struct PACKED_POST
7640{
7641 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007642
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307643 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007644 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7645 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7646 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7647 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7648 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7649 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7650 tANI_U16 OBSSScanActivityThreshold;
7651
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307652 tANI_U8 selfStaIdx;
7653 tANI_U8 bssIdx;
7654 tANI_U8 fortyMHZIntolerent;
7655 tANI_U8 channelCount;
7656 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7657 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007658
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307659 tANI_U16 ieFieldLen;
7660 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7661}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7662
7663typedef PACKED_PRE struct PACKED_POST
7664{
7665 tHalMsgHeader header;
7666 tHT40ObssScanIndType scanHT40ObssScanParams;
7667} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7668
7669/*---------------------------------------------------------------------------
7670 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7671 *-------------------------------------------------------------------------*/
7672typedef PACKED_PRE struct PACKED_POST
7673{
7674 tHalMsgHeader header;
7675 tANI_U8 bssIdx;
7676} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Dino Mycle8afbac12014-07-04 22:06:17 +05307677
7678/*---------------------------------------------------------------------------
7679 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7680 *-------------------------------------------------------------------------*/
7681
7682typedef PACKED_PRE struct PACKED_POST
7683{
7684 /* Valid BSS Idx for beacon miss rate */
7685 tANI_U8 bssIdx;
7686
7687}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7688
7689typedef PACKED_PRE struct PACKED_POST
7690{
7691 tHalMsgHeader header;
7692 tHalBcnMissRateReqParams bcnMissRateReqParams;
7693} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
7694
7695/*---------------------------------------------------------------------------
7696 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7697 *-------------------------------------------------------------------------*/
7698
7699typedef PACKED_PRE struct PACKED_POST
7700{
7701 tANI_U32 status;
7702 tANI_U32 bcnMissCnt;
7703}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7704
7705typedef PACKED_PRE struct PACKED_POST
7706{
7707 tHalMsgHeader header;
7708 tHalBcnMissRateRspParams bcnMissRateRspParams;
7709}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
7710
Sunil Dutt8377a382014-05-26 21:18:04 +05307711/*--------------------------------------------------------------------------
7712* WLAN_HAL_LL_SET_STATS_REQ
7713*---------------------------------------------------------------------------*/
7714
7715typedef PACKED_PRE struct PACKED_POST
7716{
7717 tANI_U32 req_id;
7718 tANI_U8 sta_id;
7719 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7720 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7721} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7722
7723typedef PACKED_PRE struct PACKED_POST
7724{
7725 tHalMsgHeader header;
7726 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7727} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7728
7729/*---------------------------------------------------------------------------
7730 WLAN_HAL_LL_SET_STATS_RSP
7731---------------------------------------------------------------------------*/
7732
7733typedef PACKED_PRE struct PACKED_POST
7734{
7735 tANI_U32 status;
7736 tANI_U32 resp_id;
7737 tANI_U8 iface_id;
7738} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7739
7740typedef PACKED_PRE struct PACKED_POST
7741{
7742 tHalMsgHeader header;
7743 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7744} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7745
7746/*---------------------------------------------------------------------------
7747 WLAN_HAL_LL_GET_STATS_REQ
7748---------------------------------------------------------------------------*/
7749
7750typedef PACKED_PRE struct PACKED_POST
7751{
7752 tANI_U32 req_id;
7753 tANI_U8 sta_id;
7754 tANI_U32 param_id_mask;
7755} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7756
7757typedef PACKED_PRE struct PACKED_POST
7758{
7759 tHalMsgHeader header;
7760 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7761} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7762
7763/*---------------------------------------------------------------------------
7764 WLAN_HAL_LL_GET_STATS_RSP
7765---------------------------------------------------------------------------*/
7766typedef PACKED_PRE struct PACKED_POST
7767{
7768 tANI_U32 status;
7769 tANI_U32 resp_id;
7770 tANI_U8 iface_id;
7771} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7772
7773typedef PACKED_PRE struct PACKED_POST
7774{
7775 tHalMsgHeader header;
7776 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7777} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7778
7779/*---------------------------------------------------------------------------
7780 WLAN_HAL_LL_CLEAR_STATS_REQ
7781---------------------------------------------------------------------------*/
7782typedef PACKED_PRE struct PACKED_POST
7783{
7784 tANI_U32 req_id;
7785 tANI_U8 sta_id;
7786 tANI_U32 stats_clear_req_mask;
7787 tANI_U8 stop_req;
7788} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
7789
7790typedef PACKED_PRE struct PACKED_POST
7791{
7792 tHalMsgHeader header;
7793 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
7794} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
7795
7796/*---------------------------------------------------------------------------
7797 WLAN_HAL_LL_CLEAR_STATS_RSP
7798---------------------------------------------------------------------------*/
7799typedef PACKED_PRE struct PACKED_POST
7800{
7801 tANI_U32 status;
7802 tANI_U8 sta_id;
7803 tANI_U32 resp_id;
7804 tANI_U32 stats_clear_rsp_mask;
7805 tANI_U8 stop_req_status;
7806} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
7807
7808typedef PACKED_PRE struct PACKED_POST
7809{
7810 tHalMsgHeader header;
7811 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
7812} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
7813
7814/*---------------------------------------------------------------------------
7815 WLAN_HAL_LL_NOTIFY_STATS
7816---------------------------------------------------------------------------*/
7817
7818typedef PACKED_PRE struct PACKED_POST
7819{
7820 tHalMsgHeader header;
7821 tANI_U32 param_id;
7822 tANI_U8 iface_id;
7823 tANI_U32 resp_id;
7824 tANI_U32 more_result_to_follow;
7825 tANI_U8 result[1];
7826} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007827
Dino Mycle108eff22014-06-10 09:36:44 +05307828/*---------------------------------------------------------------------------
7829 * WLAN_HAL_EXT_SCAN_START_REQ
7830 *-------------------------------------------------------------------------*/
7831
Dino Mycle8afbac12014-07-04 22:06:17 +05307832typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05307833{
7834 EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
7835 EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
7836 EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
7837 EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
7838 EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
7839 EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
7840 EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
Dino Mycle8afbac12014-07-04 22:06:17 +05307841 EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05307842} tExtScanChannelBandMask;
7843
7844typedef PACKED_PRE struct PACKED_POST
7845{
7846 tANI_U32 channel; // frequency
7847 tANI_U32 dwellTimeMs; // dwell time hint
7848 tANI_U8 passive; // 0 => active,
7849 // 1 => passive scan; ignored for DFS
7850}tExtScanChannelSpec, *tpExtScanChannelSpec;
7851
7852typedef PACKED_PRE struct PACKED_POST
7853 {
7854 /* bucket index, 0 based */
7855 tANI_U8 bucketId;
7856 /* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
7857 tExtScanChannelBandMask channelBand;
Dino Mycle8afbac12014-07-04 22:06:17 +05307858 /* period (milliseconds) for each bucket defines the periodicity of bucket */
Dino Mycle108eff22014-06-10 09:36:44 +05307859 tANI_U32 period;
7860 /* 0 => normal reporting (reporting rssi history only,
7861 when rssi history buffer is % full)
7862 * 1 => same as 0 + report a scan completion event after scanning this bucket
7863 * 2 => same as 1 + forward scan results (beacons/probe responses + IEs) in
7864 real time to HAL (Required for L = P0)
7865 * 3 => same as 2 + forward scan results (beacons/probe responses + IEs) in
7866 real time to host (Not required for L = P3) */
7867 tANI_U8 reportEvents;
7868 /* number of channels */
7869 tANI_U8 numChannels;
7870 /* if channels to scan. In the TLV channelList[] */
7871 tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
7872}tExtScanBucketData, *tpExtScanBucketData;
7873
7874typedef PACKED_PRE struct PACKED_POST
7875{
7876 tANI_U32 requestId;
7877 tANI_U8 sessionId;
7878 /* Base period (milliseconds) used by scan buckets to define periodicity
7879 of the scans */
7880 tANI_U32 basePeriod;
7881 /* number of APs to store in each scan in the BSSID/RSSI history buffer
7882 (keep the most significant, i.e. stronger RSSI) */
7883 tANI_U32 maxApPerScan;
7884 /* in %, when buffer is this much full, wake up host */
7885 tANI_U32 reportThreshold;
7886 /* This will be off channel minimum time */
7887 tANI_U16 neighborScanChannelMinTime;
7888 /* This will be out off channel max time */
7889 tANI_U16 neighborScanChannelMaxTime;
7890 /* This will be the home (BSS) channel time */
7891 tANI_U16 homeAwayTime;
7892 /* number of buckets (maximum 8) */
7893 tANI_U8 numBuckets;
7894 /* Buckets data */
7895 tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
7896} tHalExtScanStartReq, *tpHalExtScanStartReq;
7897
7898typedef PACKED_PRE struct PACKED_POST
7899{
7900 tHalMsgHeader header;
7901 tHalExtScanStartReq extScanStartReq;
7902}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
7903
7904/*---------------------------------------------------------------------------
7905 * WLAN_HAL_EXT_SCAN_START_RSP
7906 *-------------------------------------------------------------------------*/
7907
7908typedef PACKED_PRE struct PACKED_POST
7909{
7910 tANI_U32 requestId;
7911 tANI_U32 status;
7912}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
7913
7914typedef PACKED_PRE struct PACKED_POST
7915{
7916 tHalMsgHeader header;
7917 tHalExtScanStartRsp extScanStartRsp;
7918}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
7919
7920/*---------------------------------------------------------------------------
7921 * WLAN_HAL_EXT_SCAN_GET_CAP_REQ
7922 *-------------------------------------------------------------------------*/
7923
7924typedef PACKED_PRE struct PACKED_POST
7925{
7926 tANI_U32 requestId;
7927 tANI_U8 sessionId;
7928}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
7929
7930typedef PACKED_PRE struct PACKED_POST
7931{
7932 tHalMsgHeader header;
7933 tHalExtScanGetCapReq extScanGetCapReq;
7934}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
7935
7936/*---------------------------------------------------------------------------
7937 * WLAN_HAL_EXT_SCAN_GET_CAP_RSP
7938 *-------------------------------------------------------------------------*/
7939
7940typedef PACKED_PRE struct PACKED_POST
7941{
7942 tANI_U32 requestId;
7943 tANI_U32 status;
7944
7945 tANI_U32 scanCacheSize;
7946 tANI_U32 scanBuckets;
7947 tANI_U32 maxApPerScan;
7948 tANI_U32 maxRssiSampleSize;
7949 tANI_U32 maxScanReportingThreshold;
7950
7951 tANI_U32 maxHotlistAPs;
7952 tANI_U32 maxSignificantWifiChangeAPs;
7953
7954 tANI_U32 maxBssidHistoryEntries;
7955}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
7956
7957typedef PACKED_PRE struct PACKED_POST
7958{
7959 tHalMsgHeader header;
7960 tHalExtScanGetCapRsp extScanGetCapRsp;
7961}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
7962
7963/*---------------------------------------------------------------------------
7964 * WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
7965 *-------------------------------------------------------------------------*/
7966
7967typedef PACKED_PRE struct PACKED_POST
7968{
7969 tANI_U32 requestId;
7970 tANI_U8 sessionId;
7971 /*
7972 * 1 return cached results and flush it
7973 * 0 return cached results and do not flush
7974 */
7975 tANI_BOOLEAN flush;
7976}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
7977
7978typedef PACKED_PRE struct PACKED_POST
7979{
7980 tHalMsgHeader header;
7981 tHalExtScanGetScanReq getScanReq;
7982}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
7983
7984/*---------------------------------------------------------------------------
7985 * WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
7986 *-------------------------------------------------------------------------*/
7987
7988typedef PACKED_PRE struct PACKED_POST
7989{
7990 tANI_U32 requestId;
7991 tANI_U32 status;
7992}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
7993
7994typedef PACKED_PRE struct PACKED_POST
7995{
7996 tHalMsgHeader header;
7997 tHalExtScanGetScanRsp getScanRsp;
7998}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
7999
8000/*---------------------------------------------------------------------------
8001 * WLAN_HAL_EXT_SCAN_RESULT_IND
8002 *-------------------------------------------------------------------------*/
8003
8004typedef PACKED_PRE struct PACKED_POST
8005{
8006 tANI_U64 ts; // time of discovery
8007 tANI_U8 ssid[32+1]; // null terminated SSID
8008 tSirMacAddr bssid; // BSSID
8009 tANI_U32 channel; // channel frequency in MHz
8010 tANI_S32 rssi; // RSSI in dBm
8011 tANI_U32 rtt; // RTT in nanoseconds - not expected
8012 tANI_U32 rttSd; // standard deviation in rtt - not expected
Dino Mycle8afbac12014-07-04 22:06:17 +05308013 tANI_U16 beaconPeriod; // period advertised in the beacon
Dino Mycle108eff22014-06-10 09:36:44 +05308014 tANI_U16 capability; // capabilities advertised in the beacon
8015} tHalExtScanResultParams, *tpHalExtScanResultParams;
8016
8017typedef PACKED_PRE struct PACKED_POST
8018{
8019 tHalMsgHeader header;
8020 tANI_U32 requestId;
8021 tANI_U32 scanResultSize;
8022 tANI_BOOLEAN moreData;
8023 tANI_U8 extScanResult[1];
8024}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
8025
8026/*---------------------------------------------------------------------------
8027 * WLAN_HAL_EXT_SCAN_STOP_REQ
8028 *-------------------------------------------------------------------------*/
8029
8030typedef PACKED_PRE struct PACKED_POST
8031{
8032 tANI_U32 requestId;
8033 tANI_U8 sessionId;
8034}tHalExtScanStopReq, *tpHalExtScanStopReq;
8035
8036typedef PACKED_PRE struct PACKED_POST
8037{
8038 tHalMsgHeader header;
8039 tHalExtScanStopReq extScanStopReq;
8040}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
8041
8042/*---------------------------------------------------------------------------
8043 * WLAN_HAL_EXT_SCAN_STOP_RSP
8044 *-------------------------------------------------------------------------*/
8045
8046typedef PACKED_PRE struct PACKED_POST
8047{
8048 tANI_U32 requestId;
8049 tANI_U32 status;
8050}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
8051
8052typedef PACKED_PRE struct PACKED_POST
8053{
8054 tHalMsgHeader header;
8055 tHalExtScanStopRsp extScanStopRsp;
8056}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
8057
8058/*---------------------------------------------------------------------------
8059 * WLAN_HAL_EXT_SCAN_PROGRESS_IND
8060 *-------------------------------------------------------------------------*/
8061
Dino Mycle8afbac12014-07-04 22:06:17 +05308062typedef enum
Dino Mycle108eff22014-06-10 09:36:44 +05308063{
8064 WLAN_HAL_EXT_SCAN_BUFFER_FULL,
8065 WLAN_HAL_EXT_SCAN_COMPLETE,
Dino Mycle8afbac12014-07-04 22:06:17 +05308066 WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
Dino Mycle108eff22014-06-10 09:36:44 +05308067} tHalExtScanProgressEventType;
8068
8069typedef PACKED_PRE struct PACKED_POST
8070{
8071 tANI_U32 requestId;
8072 tANI_U32 status;
8073 tHalExtScanProgressEventType extScanEventType;
8074}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
8075
8076typedef PACKED_PRE struct PACKED_POST
8077{
8078 tHalMsgHeader header;
8079 tHalExtScanProgressInd extScanProgressInd;
8080}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
8081
8082/*---------------------------------------------------------------------------
8083 * WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
8084 *-------------------------------------------------------------------------*/
8085
8086typedef PACKED_PRE struct PACKED_POST
8087{
8088 tANI_U32 requestId;
8089 tANI_U32 numOfScanResAvailable;
8090}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
8091
8092typedef PACKED_PRE struct PACKED_POST
8093{
8094 tHalMsgHeader header;
8095 tHalExtScanResAvailableInd extScanResAvailableInd;
8096}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
8097
8098/*---------------------------------------------------------------------------
8099 * WLAN_HAL_SIG_RSSI_SET_REQ
8100 *-------------------------------------------------------------------------*/
8101
8102typedef PACKED_PRE struct PACKED_POST
8103{
8104 /* AP BSSID */
8105 tSirMacAddr bssid;
8106 /* low threshold - used in L for significant_change - not used in L for
8107 hotlist*/
8108 tANI_S32 lowRssiThreshold;
8109 /* high threshold - used in L for significant rssi - used in L for hotlist */
8110 tANI_S32 highRssiThreshold;
8111 /* channel hint */
8112 tANI_U32 channel;
8113} tApThresholdParams, *tpApThresholdParams;
8114
8115typedef PACKED_PRE struct PACKED_POST
8116{
8117 tANI_U32 requestId;
8118 tANI_U8 sessionId;
8119 /* number of samples for averaging RSSI */
8120 tANI_U32 rssiSampleSize;
8121 /* number of missed samples to confirm AP loss */
8122 tANI_U32 lostApSampleSize;
8123 /* number of APs breaching threshold required for firmware to generate event */
8124 tANI_U32 minBreaching;
8125 /* number of significant APs */
8126 tANI_U32 numAp;
8127 /* significant APs */
8128 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_SIG_CHANGE_APS];
8129} tHalSigRssiSetReq, *tpHalSigRssiSetReq;
8130
8131typedef PACKED_PRE struct PACKED_POST
8132{
8133 tHalMsgHeader header;
8134 tHalSigRssiSetReq extScanSigRssiReq;
8135}tHalSigRssiSetReqMsg, *tpHalSigRssiSetReqMsg;
8136
8137/*---------------------------------------------------------------------------
8138 * WLAN_HAL_SIG_RSSI_SET_RSP
8139 *-------------------------------------------------------------------------*/
8140
8141typedef PACKED_PRE struct PACKED_POST
8142{
8143 tANI_U32 requestId;
8144 tANI_U32 status;
8145}tHalSigRssiSetRsp, *tpHalSigRssiSetRsp;
8146
8147
8148typedef PACKED_PRE struct PACKED_POST
8149{
8150 tHalMsgHeader header;
8151 tHalSigRssiSetRsp sigRssiSetRsp;
8152}tHalSigRssiSetRspMsg, *tpHalSigRssiSetRspMsg;
8153
8154/*---------------------------------------------------------------------------
8155 * WLAN_HAL_SIG_RSSI_RESET_REQ
8156 *-------------------------------------------------------------------------*/
8157
8158typedef PACKED_PRE struct PACKED_POST
8159{
8160 tANI_U32 requestId;
8161}tHalSigRssiResetReq, *tpHalSigRssiResetReq;
8162
8163typedef PACKED_PRE struct PACKED_POST
8164{
8165 tHalMsgHeader header;
8166 tHalSigRssiResetReq sigRssiResetReq;
8167}tHalSigRssiResetReqMsg, *tpHalSigRssiResetReqMsg;
8168
8169/*---------------------------------------------------------------------------
8170 * WLAN_HAL_SIG_RSSI_RESET_RSP
8171 *-------------------------------------------------------------------------*/
8172
8173typedef PACKED_PRE struct PACKED_POST
8174{
8175 tANI_U32 requestId;
8176 tANI_U32 status;
8177}tHalSigRssiResetRsp, *tpHalSigRssiResetRsp;
8178
8179typedef PACKED_PRE struct PACKED_POST
8180{
8181 tHalMsgHeader header;
8182 tHalSigRssiResetRsp sigRssiResetRsp;
8183}tHalSigRssiResetRspMsg, *tpHalSigRssiResetRspMsg;
8184
8185/*---------------------------------------------------------------------------
8186 * WLAN_HAL_SIG_RSSI_RESULT_IND
8187 *-------------------------------------------------------------------------*/
8188
8189typedef PACKED_PRE struct PACKED_POST
8190{
8191 // BSSID
8192 tSirMacAddr bssid;
8193 // channel frequency in MHz
8194 tANI_U32 channel;
8195 // number of rssi samples
8196 tANI_U8 numRssi;
8197 // RSSI history in db
8198 tANI_S32 rssi[WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE];
8199} tHalSigRssiResultParams, *tpHalSigRssiResultParams;
8200
8201typedef PACKED_PRE struct PACKED_POST
8202{
8203 tHalMsgHeader header;
8204 tANI_U32 requestId;
8205 tANI_U32 numSigRssiBss;
8206 tANI_BOOLEAN moreData;
8207 tANI_U8 sigRssiResult[1];
8208}tHalSigRssiResultIndMsg, *tpHalSigRssiResultIndMsg;
8209
8210/*---------------------------------------------------------------------------
8211 * WLAN_HAL_BSSID_HOTLIST_SET_REQ
8212 *-------------------------------------------------------------------------*/
8213
8214typedef PACKED_PRE struct PACKED_POST
8215{
8216 tANI_U32 requestId;
8217 tANI_U8 sessionId;
8218 // number of hotlist APs
8219 tANI_U32 numAp;
8220 // hotlist APs
8221 tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
8222} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
8223
8224typedef PACKED_PRE struct PACKED_POST
8225{
8226 tHalMsgHeader header;
8227 tHalBssidHotlistSetReq bssidHotlistSetReq;
8228}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
8229
8230/*---------------------------------------------------------------------------
8231 * WLAN_HAL_BSSID_HOTLIST_SET_RSP
8232 *-------------------------------------------------------------------------*/
8233
8234typedef PACKED_PRE struct PACKED_POST
8235{
8236 tANI_U32 requestId;
8237 tANI_U32 status;
8238}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
8239
8240typedef PACKED_PRE struct PACKED_POST
8241{
8242 tHalMsgHeader header;
8243 tHalHotlistSetRsp hotlistSetRsp;
8244}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
8245
8246/*---------------------------------------------------------------------------
8247 * WLAN_HAL_BSSID_HOTLIST_RESET_REQ
8248 *-------------------------------------------------------------------------*/
8249
8250typedef PACKED_PRE struct PACKED_POST
8251{
8252 tANI_U32 requestId;
8253}tHalHotlistResetReq, *tpHalHotlistResetReq;
8254
8255typedef PACKED_PRE struct PACKED_POST
8256{
8257 tHalMsgHeader header;
8258 tHalHotlistResetReq hotlistResetReq;
8259}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
8260
8261/*---------------------------------------------------------------------------
8262 * WLAN_HAL_BSSID_HOTLIST_RESET_RSP
8263 *-------------------------------------------------------------------------*/
8264
8265typedef PACKED_PRE struct PACKED_POST
8266{
8267 tANI_U32 requestId;
8268 tANI_U32 status;
8269}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
8270
8271typedef PACKED_PRE struct PACKED_POST
8272{
8273 tHalMsgHeader header;
8274 tHalHotlistResetRsp hotlistResetRsp;
8275}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
8276
8277/*---------------------------------------------------------------------------
8278 * WLAN_HAL_BSSID_HOTLIST_RESULT_IND
8279 *-------------------------------------------------------------------------*/
8280
8281typedef PACKED_PRE struct PACKED_POST
8282{
8283 tHalMsgHeader header;
8284 tANI_U32 requestId;
8285 tANI_U32 numHotlistBss;
8286 tANI_BOOLEAN moreData;
8287 tANI_U8 bssHotlist[1];
8288}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
8289
Siddharth Bhalbd5efd72014-09-29 21:21:56 +05308290
8291/*---------------------------------------------------------------------------
8292 *WLAN_HAL_MAC_SPOOFED_SCAN_REQ
8293 *--------------------------------------------------------------------------*/
8294typedef PACKED_PRE struct PACKED_POST
8295{
8296 tANI_U8 macAddr[6];
8297 tANI_U32 reserved1;
8298 tANI_U32 reserved2;
8299}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
8300
8301typedef PACKED_PRE struct PACKED_POST
8302{
8303 tHalMsgHeader header;
8304 tMacSpoofedScanReqType tMacSpoofedScanReqParams;
8305} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
8306
8307/*---------------------------------------------------------------------------
8308* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
8309*-------------------------------------------------------------------------*/
8310
8311typedef PACKED_PRE struct PACKED_POST
8312{
8313 tANI_U32 status;
8314 tANI_U32 reserved1;
8315} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
8316
8317typedef PACKED_PRE struct PACKED_POST
8318{
8319 tHalMsgHeader header;
8320 tMacSpoofedScanResp tMacSpoofedScanRespParams;
8321} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
8322
Jeff Johnson295189b2012-06-20 16:38:30 -07008323#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
8324#pragma pack(pop)
8325#elif defined(__ANI_COMPILER_PRAGMA_PACK)
8326#else
8327#endif
8328
8329#endif /* _WLAN_HAL_MSG_H_ */