blob: d67b852f6a9b413a40e8a403cf9c44aff64c07a8 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Amar Singhalb41c45b2014-03-21 14:44:14 -07002* Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
3*
4* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5*
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
Jeff Johnson32d95a32012-09-10 13:15:23 -070090#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
Jeff Johnson32d95a32012-09-10 13:15:23 -070098//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
Jeff Johnson295189b2012-06-20 16:38:30 -0700125/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700126typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700127{
128 //Init/De-Init
129 WLAN_HAL_START_REQ = 0,
130 WLAN_HAL_START_RSP = 1,
131 WLAN_HAL_STOP_REQ = 2,
132 WLAN_HAL_STOP_RSP = 3,
133
134 //Scan
135 WLAN_HAL_INIT_SCAN_REQ = 4,
136 WLAN_HAL_INIT_SCAN_RSP = 5,
137 WLAN_HAL_START_SCAN_REQ = 6,
138 WLAN_HAL_START_SCAN_RSP = 7 ,
139 WLAN_HAL_END_SCAN_REQ = 8,
140 WLAN_HAL_END_SCAN_RSP = 9,
141 WLAN_HAL_FINISH_SCAN_REQ = 10,
142 WLAN_HAL_FINISH_SCAN_RSP = 11,
143
144 // HW STA configuration/deconfiguration
145 WLAN_HAL_CONFIG_STA_REQ = 12,
146 WLAN_HAL_CONFIG_STA_RSP = 13,
147 WLAN_HAL_DELETE_STA_REQ = 14,
148 WLAN_HAL_DELETE_STA_RSP = 15,
149 WLAN_HAL_CONFIG_BSS_REQ = 16,
150 WLAN_HAL_CONFIG_BSS_RSP = 17,
151 WLAN_HAL_DELETE_BSS_REQ = 18,
152 WLAN_HAL_DELETE_BSS_RSP = 19,
153
154 //Infra STA asscoiation
155 WLAN_HAL_JOIN_REQ = 20,
156 WLAN_HAL_JOIN_RSP = 21,
157 WLAN_HAL_POST_ASSOC_REQ = 22,
158 WLAN_HAL_POST_ASSOC_RSP = 23,
159
160 //Security
161 WLAN_HAL_SET_BSSKEY_REQ = 24,
162 WLAN_HAL_SET_BSSKEY_RSP = 25,
163 WLAN_HAL_SET_STAKEY_REQ = 26,
164 WLAN_HAL_SET_STAKEY_RSP = 27,
165 WLAN_HAL_RMV_BSSKEY_REQ = 28,
166 WLAN_HAL_RMV_BSSKEY_RSP = 29,
167 WLAN_HAL_RMV_STAKEY_REQ = 30,
168 WLAN_HAL_RMV_STAKEY_RSP = 31,
169
170 //Qos Related
171 WLAN_HAL_ADD_TS_REQ = 32,
172 WLAN_HAL_ADD_TS_RSP = 33,
173 WLAN_HAL_DEL_TS_REQ = 34,
174 WLAN_HAL_DEL_TS_RSP = 35,
175 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
176 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
177 WLAN_HAL_ADD_BA_REQ = 38,
178 WLAN_HAL_ADD_BA_RSP = 39,
179 WLAN_HAL_DEL_BA_REQ = 40,
180 WLAN_HAL_DEL_BA_RSP = 41,
181
182 WLAN_HAL_CH_SWITCH_REQ = 42,
183 WLAN_HAL_CH_SWITCH_RSP = 43,
184 WLAN_HAL_SET_LINK_ST_REQ = 44,
185 WLAN_HAL_SET_LINK_ST_RSP = 45,
186 WLAN_HAL_GET_STATS_REQ = 46,
187 WLAN_HAL_GET_STATS_RSP = 47,
188 WLAN_HAL_UPDATE_CFG_REQ = 48,
189 WLAN_HAL_UPDATE_CFG_RSP = 49,
190
191 WLAN_HAL_MISSED_BEACON_IND = 50,
192 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
193 WLAN_HAL_MIC_FAILURE_IND = 52,
194 WLAN_HAL_FATAL_ERROR_IND = 53,
195 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700196
Jeff Johnson295189b2012-06-20 16:38:30 -0700197 //NV Interface
198 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
199 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
200
201 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
202 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
203 WLAN_HAL_TRIGGER_BA_REQ = 59,
204 WLAN_HAL_TRIGGER_BA_RSP = 60,
205 WLAN_HAL_UPDATE_BEACON_REQ = 61,
206 WLAN_HAL_UPDATE_BEACON_RSP = 62,
207 WLAN_HAL_SEND_BEACON_REQ = 63,
208 WLAN_HAL_SEND_BEACON_RSP = 64,
209
210 WLAN_HAL_SET_BCASTKEY_REQ = 65,
211 WLAN_HAL_SET_BCASTKEY_RSP = 66,
212 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
213 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
214 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700215
Jeff Johnson295189b2012-06-20 16:38:30 -0700216 // PTT interface support
217 WLAN_HAL_PROCESS_PTT_REQ = 70,
218 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700219
Jeff Johnson295189b2012-06-20 16:38:30 -0700220 // BTAMP related events
221 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
222 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
223 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
224 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
225
226 WLAN_HAL_ENTER_IMPS_REQ = 76,
227 WLAN_HAL_EXIT_IMPS_REQ = 77,
228 WLAN_HAL_ENTER_BMPS_REQ = 78,
229 WLAN_HAL_EXIT_BMPS_REQ = 79,
230 WLAN_HAL_ENTER_UAPSD_REQ = 80,
231 WLAN_HAL_EXIT_UAPSD_REQ = 81,
232 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
233 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
234 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
235 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
236 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
237 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
238 WLAN_HAL_ENTER_WOWL_REQ = 88,
239 WLAN_HAL_EXIT_WOWL_REQ = 89,
240 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
241 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
242 WLAN_HAL_GET_RSSI_REQ = 92,
243 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
244 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
245
246 WLAN_HAL_ENTER_IMPS_RSP = 95,
247 WLAN_HAL_EXIT_IMPS_RSP = 96,
248 WLAN_HAL_ENTER_BMPS_RSP = 97,
249 WLAN_HAL_EXIT_BMPS_RSP = 98,
250 WLAN_HAL_ENTER_UAPSD_RSP = 99,
251 WLAN_HAL_EXIT_UAPSD_RSP = 100,
252 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
253 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
254 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
255 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
256 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
257 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
258 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
259 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
260 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
261 WLAN_HAL_ENTER_WOWL_RSP = 110,
262 WLAN_HAL_EXIT_WOWL_RSP = 111,
263 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
264 WLAN_HAL_GET_RSSI_RSP = 113,
265 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
266
267 //11k related events
268 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
269 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
270
271 //11R related msgs
272 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
273 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
274
275 //P2P WLAN_FEATURE_P2P
276 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
277 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700278
Jeff Johnson295189b2012-06-20 16:38:30 -0700279 //WLAN Dump commands
280 WLAN_HAL_DUMP_COMMAND_REQ = 121,
281 WLAN_HAL_DUMP_COMMAND_RSP = 122,
282
Jeff Johnsone7245742012-09-05 17:12:55 -0700283 //OEM_DATA FEATURE SUPPORT
284 WLAN_HAL_START_OEM_DATA_REQ = 123,
285 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700286
287 //ADD SELF STA REQ and RSP
288 WLAN_HAL_ADD_STA_SELF_REQ = 125,
289 WLAN_HAL_ADD_STA_SELF_RSP = 126,
290
291 //DEL SELF STA SUPPORT
292 WLAN_HAL_DEL_STA_SELF_REQ = 127,
293 WLAN_HAL_DEL_STA_SELF_RSP = 128,
294
295 // Coex Indication
296 WLAN_HAL_COEX_IND = 129,
297
Jeff Johnson32d95a32012-09-10 13:15:23 -0700298 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700299 WLAN_HAL_OTA_TX_COMPL_IND = 130,
300
301 //Host Suspend/resume messages
302 WLAN_HAL_HOST_SUSPEND_IND = 131,
303 WLAN_HAL_HOST_RESUME_REQ = 132,
304 WLAN_HAL_HOST_RESUME_RSP = 133,
305
306 WLAN_HAL_SET_TX_POWER_REQ = 134,
307 WLAN_HAL_SET_TX_POWER_RSP = 135,
308 WLAN_HAL_GET_TX_POWER_REQ = 136,
309 WLAN_HAL_GET_TX_POWER_RSP = 137,
310
311 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700312
Jeff Johnson295189b2012-06-20 16:38:30 -0700313 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
314 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
315 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
316 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
317 WLAN_HAL_RADAR_DETECT_IND = 143,
318 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
319 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700320 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700321
322 /*PNO messages*/
323 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
324 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
325 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
326 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
327 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
328 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700329 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700330
331 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
332 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
333 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700334
Jeff Johnson295189b2012-06-20 16:38:30 -0700335 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700336 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700337
338 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700339 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700340 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700341 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700342 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700343 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
344 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700345 * Host and Riva code is in sync*/
346 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700347
Jeff Johnson295189b2012-06-20 16:38:30 -0700348 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
349 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
350
351 WLAN_HAL_TSM_STATS_REQ = 168,
352 WLAN_HAL_TSM_STATS_RSP = 169,
353
354 // wake reason indication (WOW)
355 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700356 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700357 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
358 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
359 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
360 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
361
362 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
363 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
364 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
365
366 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
367 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
368
Anand Kumar012623a2013-01-11 17:00:00 -0800369 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
370 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800371
Anand Kumar012623a2013-01-11 17:00:00 -0800372 WLAN_HAL_P2P_NOA_START_IND = 184,
373
374 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
375 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -0700376
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800377 WLAN_HAL_CLASS_B_STATS_IND = 187,
378 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800379 WLAN_HAL_DHCP_START_IND = 189,
380 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700381 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
382 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530383 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
384 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700385
386 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
387 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
388 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
389
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530390 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
391 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
392 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
393 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
394 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700395 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700396
Kumar Anandf53016f2013-09-04 15:15:53 -0700397 /* Scan Offload APIs */
398 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
399 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
400 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
401 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
402 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
403 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
404 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
405
Leo Chang397deb72013-08-22 11:33:16 -0700406 /* APIs to offload TCP/UDP Heartbeat handshakes */
407 WLAN_HAL_LPHB_CFG_REQ = 211,
408 WLAN_HAL_LPHB_CFG_RSP = 212,
409 WLAN_HAL_LPHB_IND = 213,
410
Yue Maab3ccfc2013-08-14 17:19:08 -0700411 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
412 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
413 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530414
Kumar Anandf53016f2013-09-04 15:15:53 -0700415 // Events to set Per-Band Tx Power Limit
416 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
417 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
418
419 /* Reliable Multicast using Leader Based Protocol */
420 WLAN_HAL_LBP_LEADER_REQ = 219,
421 WLAN_HAL_LBP_LEADER_RSP = 220,
422 WLAN_HAL_LBP_UPDATE_IND = 221,
423
krunal soni2a4728d2013-09-20 21:56:50 -0700424 /* Batchscan */
425 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
426 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
427 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
428 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
429 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
430
431 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
432 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
433
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700434 WLAN_HAL_RATE_UPDATE_IND = 229,
435
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530436 /* Tx Fail for weak link notification */
437 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
438 WLAN_HAL_TX_FAIL_IND = 231,
439
440 /* Multi-hop IP routing offload */
441 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
442
Amar Singhalb41c45b2014-03-21 14:44:14 -0700443 /* Channel avoidance for LTE Coex */
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530444 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800445
Amar Singhalb41c45b2014-03-21 14:44:14 -0700446 /* Fast Roam Offload Synchup request protocol */
447 /* TODO_LFR3 : change this value accordingly before final check-in */
448 WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
449 WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
450
451 WLAN_HAL_MOTION_START_EVENT_REQ = 250,
452 WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
453
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800454 /* Channel Switch Request version 1 */
455 WLAN_HAL_CH_SWITCH_V1_REQ = 252,
456 WLAN_HAL_CH_SWITCH_V1_RSP = 253,
457
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530458 /* 2G4 HT40 OBSS scan */
459 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700460 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
461
462 /* WLAN NAN Messages */
463 WLAN_HAL_NAN_FIRST = 256,
464 WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
465 WLAN_HAL_NAN_RSP = 257,
466 WLAN_HAL_NAN_EVT = 258,
467 WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800468
c_hpothu80c30472014-04-14 19:04:48 +0530469 /* print register values */
470 WLAN_HAL_PRINT_REG_INFO_IND = 259,
471
c_hpothua047e572014-05-01 15:03:11 +0530472 WLAN_HAL_GET_BCN_MISS_RATE_REQ = 260,
473 WLAN_HAL_GET_BCN_MISS_RATE_RSP = 261,
474
Sunil Dutt8377a382014-05-26 21:18:04 +0530475 /* WLAN LINK LAYER STATS Messages */
476 WLAN_HAL_LL_SET_STATS_REQ = 262,
477 WLAN_HAL_LL_SET_STATS_RSP = 263,
478 WLAN_HAL_LL_GET_STATS_REQ = 264,
479 WLAN_HAL_LL_GET_STATS_RSP = 265,
480 WLAN_HAL_LL_CLEAR_STATS_REQ = 266,
481 WLAN_HAL_LL_CLEAR_STATS_RSP = 267,
482 WLAN_HAL_LL_NOTIFY_STATS = 268,
483 WLAN_HAL_LL_LAST = WLAN_HAL_LL_NOTIFY_STATS,
484
485 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700486}tHalHostMsgType;
487
Jeff Johnsone7245742012-09-05 17:12:55 -0700488/* Enumeration for Version */
489typedef enum
490{
491 WLAN_HAL_MSG_VERSION0 = 0,
492 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800493 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
494 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700495}tHalHostMsgVersion;
496
Jeff Johnson295189b2012-06-20 16:38:30 -0700497/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700498typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700499{
500 eANI_BOOLEAN_FALSE = 0,
501 eANI_BOOLEAN_TRUE,
502 eANI_BOOLEAN_OFF = 0,
503 eANI_BOOLEAN_ON = 1,
504 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
505} eAniBoolean;
506
507typedef enum
508{
509 eDRIVER_TYPE_PRODUCTION = 0,
510 eDRIVER_TYPE_MFG = 1,
511 eDRIVER_TYPE_DVT = 2,
512 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
513} tDriverType;
514
515typedef enum
516{
517 HAL_STOP_TYPE_SYS_RESET,
518 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
519 HAL_STOP_TYPE_RF_KILL,
520 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
521}tHalStopType;
522
523typedef enum
524{
525 eHAL_SYS_MODE_NORMAL,
526 eHAL_SYS_MODE_LEARN,
527 eHAL_SYS_MODE_SCAN,
528 eHAL_SYS_MODE_PROMISC,
529 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700530 eHAL_SYS_MODE_ROAM_SCAN,
531 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700532 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700533 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
534} eHalSysMode;
535
536typedef enum
537{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800538 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
539 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
540 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
541 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
542 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
543 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
544 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
545 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
546 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700547 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800548 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
549} eHalChanSwitchSource;
550
551typedef enum
552{
Jeff Johnson295189b2012-06-20 16:38:30 -0700553 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
554 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
555 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
556 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700557#ifdef WLAN_FEATURE_11AC
558 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
559 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
560 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
561 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
562 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
563 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
564 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
565#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700566 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
567}ePhyChanBondState;
568
569// Spatial Multiplexing(SM) Power Save mode
570typedef enum eSirMacHTMIMOPowerSaveState
571{
572 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
573 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
574 eSIR_HT_MIMO_PS_NA = 2, // reserved
575 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
576 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
577} tSirMacHTMIMOPowerSaveState;
578
579/* each station added has a rate mode which specifies the sta attributes */
580typedef enum eStaRateMode {
581 eSTA_TAURUS = 0,
582 eSTA_TITAN,
583 eSTA_POLARIS,
584 eSTA_11b,
585 eSTA_11bg,
586 eSTA_11a,
587 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700588#ifdef WLAN_FEATURE_11AC
589 eSTA_11ac,
590#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700591 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
592} tStaRateMode, *tpStaRateMode;
593
594#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
595#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
596#define SIR_NUM_POLARIS_RATES 3 //72,96,108
597
598#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
599
600
601typedef enum eSirBssType
602{
603 eSIR_INFRASTRUCTURE_MODE,
604 eSIR_INFRA_AP_MODE, //Added for softAP support
605 eSIR_IBSS_MODE,
606 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
607 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
608 eSIR_AUTO_MODE,
609 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
610} tSirBssType;
611
612typedef enum eSirNwType
613{
614 eSIR_11A_NW_TYPE,
615 eSIR_11B_NW_TYPE,
616 eSIR_11G_NW_TYPE,
617 eSIR_11N_NW_TYPE,
618 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
619} tSirNwType;
620
621typedef tANI_U16 tSirMacBeaconInterval;
622
623#define SIR_MAC_RATESET_EID_MAX 12
624
625typedef enum eSirMacHTOperatingMode
626{
627 eSIR_HT_OP_MODE_PURE, // No Protection
628 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
629 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
630 eSIR_HT_OP_MODE_MIXED, // Protection is required
631 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
632} tSirMacHTOperatingMode;
633
Jeff Johnson295189b2012-06-20 16:38:30 -0700634/// Encryption type enum used with peer
635typedef enum eAniEdType
636{
637 eSIR_ED_NONE,
638 eSIR_ED_WEP40,
639 eSIR_ED_WEP104,
640 eSIR_ED_TKIP,
641 eSIR_ED_CCMP,
642 eSIR_ED_WPI,
643 eSIR_ED_AES_128_CMAC,
644 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
645} tAniEdType;
646
647#define WLAN_MAX_KEY_RSC_LEN 16
648#define WLAN_WAPI_KEY_RSC_LEN 16
649
650/// MAX key length when ULA is used
651#define SIR_MAC_MAX_KEY_LENGTH 32
652#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
653
654/// Enum to specify whether key is used
655/// for TX only, RX only or both
656typedef enum eAniKeyDirection
657{
658 eSIR_TX_ONLY,
659 eSIR_RX_ONLY,
660 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700661 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700662 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
663} tAniKeyDirection;
664
665typedef enum eAniWepType
666{
667 eSIR_WEP_STATIC,
668 eSIR_WEP_DYNAMIC,
669 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
670} tAniWepType;
671
672typedef enum eSriLinkState {
673
674 eSIR_LINK_IDLE_STATE = 0,
675 eSIR_LINK_PREASSOC_STATE = 1,
676 eSIR_LINK_POSTASSOC_STATE = 2,
677 eSIR_LINK_AP_STATE = 3,
678 eSIR_LINK_IBSS_STATE = 4,
679
680 /* BT-AMP Case */
681 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
682 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
683 eSIR_LINK_BTAMP_AP_STATE = 7,
684 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700685
Jeff Johnson295189b2012-06-20 16:38:30 -0700686 /* Reserved for HAL Internal Use */
687 eSIR_LINK_LEARN_STATE = 9,
688 eSIR_LINK_SCAN_STATE = 10,
689 eSIR_LINK_FINISH_SCAN_STATE = 11,
690 eSIR_LINK_INIT_CAL_STATE = 12,
691 eSIR_LINK_FINISH_CAL_STATE = 13,
692#ifdef WLAN_FEATURE_P2P
693 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530694 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700695#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700696#ifdef WLAN_FEATURE_ROAM_OFFLOAD
697 eSIR_LINK_FT_PREASSOC_STATE = 16,
698#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700699 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
700} tSirLinkState;
701
702typedef enum
703{
704 HAL_SUMMARY_STATS_INFO = 0x00000001,
705 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
706 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
707 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
708 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
709 HAL_PER_STA_STATS_INFO = 0x00000020
710}eHalStatsMask;
711
712/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700713typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700714{
715 BTAMP_EVENT_CONNECTION_START,
716 BTAMP_EVENT_CONNECTION_STOP,
717 BTAMP_EVENT_CONNECTION_TERMINATED,
718 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
719} tBtAmpEventType;
720
721//***************************************************************
722
723
724/*******************PE Statistics*************************/
725typedef enum
726{
727 PE_SUMMARY_STATS_INFO = 0x00000001,
728 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
729 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
730 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
731 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
732 PE_PER_STA_STATS_INFO = 0x00000020,
733 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
734}ePEStatsMask;
735
Sunil Dutt8377a382014-05-26 21:18:04 +0530736
737/******************************LINK LAYER Statitics**********************/
738
739typedef int wifi_radio;
740typedef int wifi_channel;
741typedef int wifi_tx_rate;
742
743/* channel operating width */
744typedef enum {
745 WIFI_CHAN_WIDTH_20 = 0,
746 WIFI_CHAN_WIDTH_40 = 1,
747 WIFI_CHAN_WIDTH_80 = 2,
748 WIFI_CHAN_WIDTH_160 = 3,
749 WIFI_CHAN_WIDTH_80P80 = 4,
750 WIFI_CHAN_WIDTH_5 = 5,
751 WIFI_CHAN_WIDTH_10 = 6,
752} wifi_channel_width;
753
754typedef enum {
755 WIFI_DISCONNECTED = 0,
756 WIFI_AUTHENTICATING = 1,
757 WIFI_ASSOCIATING = 2,
758 WIFI_ASSOCIATED = 3,
759 WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
760 WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
761} wifi_connection_state;
762
763typedef enum {
764 WIFI_ROAMING_IDLE = 0,
765 WIFI_ROAMING_ACTIVE = 1,
766} wifi_roam_state;
767
768typedef enum {
769 WIFI_INTERFACE_STA = 0,
770 WIFI_INTERFACE_SOFTAP = 1,
771 WIFI_INTERFACE_IBSS = 2,
772 WIFI_INTERFACE_P2P_CLIENT = 3,
773 WIFI_INTERFACE_P2P_GO = 4,
774 WIFI_INTERFACE_NAN = 5,
775 WIFI_INTERFACE_MESH = 6,
776 } wifi_interface_mode;
777
778#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
779#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
780#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
781#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
782#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
783#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
784
785typedef PACKED_PRE struct PACKED_POST
786{
787 wifi_interface_mode mode; // interface mode
788 tANI_U8 mac_addr[6]; // interface mac address (self)
789 wifi_connection_state state; // connection state (valid for STA, CLI only)
790 wifi_roam_state roaming; // roaming state
791 tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
792 tANI_U8 ssid[33]; // null terminated SSID
793 tANI_U8 bssid[6]; // bssid
794 tANI_U8 ap_country_str[3]; // country string advertised by AP
795 tANI_U8 country_str[3]; // country string for this association
796} wifi_interface_info;
797
798/* channel information */
799typedef PACKED_PRE struct PACKED_POST
800{
801 wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
802 wifi_channel center_freq; // primary 20 MHz channel
803 wifi_channel center_freq0; // center frequency (MHz) first segment
804 wifi_channel center_freq1; // center frequency (MHz) second segment
805} wifi_channel_info;
806
807/* wifi rate info */
808typedef PACKED_PRE struct PACKED_POST
809{
810 tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
811 tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
812 tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
813 tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
814 // HT/VHT it would be mcs index
815 tANI_U32 reserved :16; // reserved
816 tANI_U32 bitrate; // units of 100 Kbps
817} wifi_rate;
818
819/* channel statistics */
820typedef PACKED_PRE struct PACKED_POST
821{
822 wifi_channel_info channel; // channel
823 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
824 tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
825} wifi_channel_stats;
826
827/* radio statistics */
828typedef PACKED_PRE struct PACKED_POST
829{
830 wifi_radio radio; // wifi radio (if multiple radio supported)
831 tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
832 tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
833 tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
834 tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
835 tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
836 tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
837 tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
838 tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
839 tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
840 tANI_U32 num_channels; // number of channels
841 wifi_channel_stats channels[1]; // channel statistics
842} wifi_radio_stat;
843
844/* per rate statistics */
845typedef PACKED_PRE struct PACKED_POST
846{
847 wifi_rate rate; // rate information *
848 tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
849 tANI_U32 rx_mpdu; // number of received data pkts
850 tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
851 tANI_U32 retries; // total number of data pkt retries *
852 tANI_U32 retries_short; // number of short data pkt retries
853 tANI_U32 retries_long; // number of long data pkt retries
854} wifi_rate_stat;
855
856/* access categories */
857typedef enum {
858 WIFI_AC_VO = 0,
859 WIFI_AC_VI = 1,
860 WIFI_AC_BE = 2,
861 WIFI_AC_BK = 3,
862 WIFI_AC_MAX = 4,
863} wifi_traffic_ac;
864
865/* wifi peer type */
866typedef enum
867{
868 WIFI_PEER_STA,
869 WIFI_PEER_AP,
870 WIFI_PEER_P2P_GO,
871 WIFI_PEER_P2P_CLIENT,
872 WIFI_PEER_NAN,
873 WIFI_PEER_TDLS,
874 WIFI_PEER_INVALID,
875} wifi_peer_type;
876
877/* per peer statistics */
878typedef PACKED_PRE struct PACKED_POST
879{
880 wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
881 tANI_U8 peer_mac_address[6]; // mac address
882 tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
883 tANI_U32 num_rate; // number of rates
884 wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
885} wifi_peer_info;
886
887/* per access category statistics */
888typedef PACKED_PRE struct PACKED_POST
889
890{
891 wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
892 tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
893 tANI_U32 rx_mpdu; // number of received unicast mpdus
894 tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
895 // STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
896 tANI_U32 rx_mcast; // number of received multicast data packets
897 tANI_U32 rx_ampdu; // number of received unicast a-mpdus
898 tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
899 tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
900 tANI_U32 retries; // total number of data pkt retries
901 tANI_U32 retries_short; // number of short data pkt retries
902 tANI_U32 retries_long; // number of long data pkt retries
903 tANI_U32 contention_time_min; // data pkt min contention time (usecs)
904 tANI_U32 contention_time_max; // data pkt max contention time (usecs)
905 tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
906 tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
907} wifi_wmm_ac_stat;
908
909/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
910typedef PACKED_PRE struct PACKED_POST
911
912{
913 wifi_interface_info info; // current state of the interface
914 tANI_U32 beacon_rx; // access point beacon received count from connected AP
915 tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
916 tANI_U32 mgmt_action_rx; // action frames received count
917 tANI_U32 mgmt_action_tx; // action frames transmit count
918 tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
919 tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
920 tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
921 wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
922} wifi_iface_stat;
923
924/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
925typedef PACKED_PRE struct PACKED_POST
926{
927 tANI_U32 num_peers; // number of peers
928 wifi_peer_info peer_info[1]; // per peer statistics
929} wifi_peer_stat;
930
931/* wifi statistics bitmap for getting statistics */
932#define WMI_LINK_STATS_RADIO 0x00000001
933#define WMI_LINK_STATS_IFACE 0x00000002
934#define WMI_LINK_STATS_ALL_PEER 0x00000004
935#define WMI_LINK_STATS_PER_PEER 0x00000008
936
937/* wifi statistics bitmap for clearing statistics */
938#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
939#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
940#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
941#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
942#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
943#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
944#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
945#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
946
947
Jeff Johnson295189b2012-06-20 16:38:30 -0700948/*---------------------------------------------------------------------------
949 Message definitons - All the messages below need to be packed
950 ---------------------------------------------------------------------------*/
951
952#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
953#pragma pack(push, 1)
954#elif defined(__ANI_COMPILER_PRAGMA_PACK)
955#pragma pack(1)
956#else
957#endif
958
959/// Definition for HAL API Version.
960typedef PACKED_PRE struct PACKED_POST
961{
962 tANI_U8 revision;
963 tANI_U8 version;
964 tANI_U8 minor;
965 tANI_U8 major;
966} tWcnssWlanVersion, *tpWcnssWlanVersion;
967
968/// Definition for Encryption Keys
969typedef PACKED_PRE struct PACKED_POST
970{
971 tANI_U8 keyId;
972 tANI_U8 unicast; // 0 for multicast
973 tAniKeyDirection keyDirection;
974 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
975 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
976 tANI_U16 keyLength;
977 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
978} tSirKeys, *tpSirKeys;
979
980
981//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
982typedef PACKED_PRE struct PACKED_POST
983{
984 /*STA Index*/
985 tANI_U16 staIdx;
986
987 /*Encryption Type used with peer*/
988 tAniEdType encType;
989
990 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700991 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700992
993 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
994 tANI_U8 defWEPIdx;
995
Jeff Johnson295189b2012-06-20 16:38:30 -0700996 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700997 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
998
Jeff Johnson295189b2012-06-20 16:38:30 -0700999 /*Control for Replay Count, 1= Single TID based replay count on Tx
1000 0 = Per TID based replay count on TX */
1001 tANI_U8 singleTidRc;
1002
1003} tSetStaKeyParams, *tpSetStaKeyParams;
1004
1005
1006
1007/* 4-byte control message header used by HAL*/
1008typedef PACKED_PRE struct PACKED_POST
1009{
Jeff Johnsone7245742012-09-05 17:12:55 -07001010 tHalHostMsgType msgType:16;
1011 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -07001012 tANI_U32 msgLen;
1013} tHalMsgHeader, *tpHalMsgHeader;
1014
1015/* Config format required by HAL for each CFG item*/
1016typedef PACKED_PRE struct PACKED_POST
1017{
1018 /* Cfg Id. The Id required by HAL is exported by HAL
1019 * in shared header file between UMAC and HAL.*/
1020 tANI_U16 uCfgId;
1021
Jeff Johnson32d95a32012-09-10 13:15:23 -07001022 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -07001023 * in the TLV format.*/
1024 tANI_U16 uCfgLen;
1025
1026 /* Padding bytes for unaligned address's */
1027 tANI_U16 uCfgPadBytes;
1028
1029 /* Reserve bytes for making cfgVal to align address */
1030 tANI_U16 uCfgReserve;
1031
1032 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
1033 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
1034} tHalCfg, *tpHalCfg;
1035
1036/*---------------------------------------------------------------------------
1037 WLAN_HAL_START_REQ
1038---------------------------------------------------------------------------*/
1039
1040typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
1041{
1042 /* Drive Type - Production or FTM etc */
1043 tDriverType driverType;
1044
1045 /*Length of the config buffer*/
1046 tANI_U32 uConfigBufferLen;
1047
Jeff Johnson32d95a32012-09-10 13:15:23 -07001048 /* Following this there is a TLV formatted buffer of length
1049 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001050 * The TLV is expected to be formatted like this:
1051 * 0 15 31 31+CFG_LEN-1 length-1
1052 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1053 */
1054} tHalMacStartParameters, *tpHalMacStartParameters;
1055
1056typedef PACKED_PRE struct PACKED_POST
1057{
1058 /* Note: The length specified in tHalMacStartReqMsg messages should be
1059 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
1060 tHalMsgHeader header;
1061 tHalMacStartParameters startReqParams;
1062} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
1063
1064/*---------------------------------------------------------------------------
1065 WLAN_HAL_START_RSP
1066---------------------------------------------------------------------------*/
1067
1068typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
1069{
1070 /*success or failure */
1071 tANI_U16 status;
1072
1073 /*Max number of STA supported by the device*/
1074 tANI_U8 ucMaxStations;
1075
1076 /*Max number of BSS supported by the device*/
1077 tANI_U8 ucMaxBssids;
1078
1079 /*API Version */
1080 tWcnssWlanVersion wcnssWlanVersion;
1081
1082 /*CRM build information */
1083 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
1084
1085 /*hardware/chipset/misc version information */
1086 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
1087
1088} tHalMacStartRspParams, *tpHalMacStartRspParams;
1089
1090typedef PACKED_PRE struct PACKED_POST
1091{
1092 tHalMsgHeader header;
1093 tHalMacStartRspParams startRspParams;
1094} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
1095
1096/*---------------------------------------------------------------------------
1097 WLAN_HAL_STOP_REQ
1098---------------------------------------------------------------------------*/
1099
1100typedef PACKED_PRE struct PACKED_POST
1101{
1102 /*The reason for which the device is being stopped*/
1103 tHalStopType reason;
1104
1105}tHalMacStopReqParams, *tpHalMacStopReqParams;
1106
1107typedef PACKED_PRE struct PACKED_POST
1108{
1109 tHalMsgHeader header;
1110 tHalMacStopReqParams stopReqParams;
1111} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
1112
1113/*---------------------------------------------------------------------------
1114 WLAN_HAL_STOP_RSP
1115---------------------------------------------------------------------------*/
1116
1117typedef PACKED_PRE struct PACKED_POST
1118{
1119 /*success or failure */
1120 tANI_U32 status;
1121
1122}tHalMacStopRspParams, *tpHalMacStopRspParams;
1123
1124typedef PACKED_PRE struct PACKED_POST
1125{
1126 tHalMsgHeader header;
1127 tHalMacStopRspParams stopRspParams;
1128} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
1129
1130/*---------------------------------------------------------------------------
1131 WLAN_HAL_UPDATE_CFG_REQ
1132---------------------------------------------------------------------------*/
1133
1134typedef PACKED_PRE struct PACKED_POST
1135{
1136 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
1137 tANI_U32 uConfigBufferLen;
1138
Jeff Johnson32d95a32012-09-10 13:15:23 -07001139 /* Following this there is a TLV formatted buffer of length
1140 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -07001141 * The TLV is expected to be formatted like this:
1142 * 0 15 31 31+CFG_LEN-1 length-1
1143 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
1144 */
1145} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
1146
1147typedef PACKED_PRE struct PACKED_POST
1148{
1149 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
1150 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
1151 tHalMsgHeader header;
1152 tHalUpdateCfgReqParams updateCfgReqParams;
1153} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
1154
1155/*---------------------------------------------------------------------------
1156 WLAN_HAL_UPDATE_CFG_RSP
1157---------------------------------------------------------------------------*/
1158
1159typedef PACKED_PRE struct PACKED_POST
1160{
1161 /* success or failure */
1162 tANI_U32 status;
1163
1164}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
1165
1166typedef PACKED_PRE struct PACKED_POST
1167{
1168 tHalMsgHeader header;
1169 tHalUpdateCfgRspParams updateCfgRspParams;
1170} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
1171
1172/*---------------------------------------------------------------------------
1173 WLAN_HAL_INIT_SCAN_REQ
1174---------------------------------------------------------------------------*/
1175
1176/// Frame control field format (2 bytes)
1177typedef __ani_attr_pre_packed struct sSirMacFrameCtl
1178{
1179
1180#ifndef ANI_LITTLE_BIT_ENDIAN
1181
1182 tANI_U8 subType :4;
1183 tANI_U8 type :2;
1184 tANI_U8 protVer :2;
1185
1186 tANI_U8 order :1;
1187 tANI_U8 wep :1;
1188 tANI_U8 moreData :1;
1189 tANI_U8 powerMgmt :1;
1190 tANI_U8 retry :1;
1191 tANI_U8 moreFrag :1;
1192 tANI_U8 fromDS :1;
1193 tANI_U8 toDS :1;
1194
1195#else
1196
1197 tANI_U8 protVer :2;
1198 tANI_U8 type :2;
1199 tANI_U8 subType :4;
1200
1201 tANI_U8 toDS :1;
1202 tANI_U8 fromDS :1;
1203 tANI_U8 moreFrag :1;
1204 tANI_U8 retry :1;
1205 tANI_U8 powerMgmt :1;
1206 tANI_U8 moreData :1;
1207 tANI_U8 wep :1;
1208 tANI_U8 order :1;
1209
1210#endif
1211
1212} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
1213
1214/// Sequence control field
1215typedef __ani_attr_pre_packed struct sSirMacSeqCtl
1216{
1217 tANI_U8 fragNum : 4;
1218 tANI_U8 seqNumLo : 4;
1219 tANI_U8 seqNumHi : 8;
1220} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
1221
1222/// Management header format
1223typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
1224{
1225 tSirMacFrameCtl fc;
1226 tANI_U8 durationLo;
1227 tANI_U8 durationHi;
1228 tANI_U8 da[6];
1229 tANI_U8 sa[6];
1230 tANI_U8 bssId[6];
1231 tSirMacSeqCtl seqControl;
1232} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1233
1234/// Scan Entry to hold active BSS idx's
1235typedef __ani_attr_pre_packed struct sSirScanEntry
1236{
1237 tANI_U8 bssIdx[HAL_NUM_BSSID];
1238 tANI_U8 activeBSScnt;
1239}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1240
1241typedef PACKED_PRE struct PACKED_POST {
1242
1243 /*LEARN - AP Role
1244 SCAN - STA Role*/
1245 eHalSysMode scanMode;
1246
1247 /*BSSID of the BSS*/
1248 tSirMacAddr bssid;
1249
1250 /*Whether BSS needs to be notified*/
1251 tANI_U8 notifyBss;
1252
1253 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1254 CTS to Self). Must always be a valid frame type.*/
1255 tANI_U8 frameType;
1256
1257 /*UMAC has the option of passing the MAC frame to be used for notifying
1258 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1259 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1260 frameType.*/
1261 tANI_U8 frameLength;
1262
Jeff Johnson32d95a32012-09-10 13:15:23 -07001263 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001264 is non-zero. */
1265 tSirMacMgmtHdr macMgmtHdr;
1266
1267 /*Entry to hold number of active BSS idx's*/
1268 tSirScanEntry scanEntry;
1269
1270} tInitScanParams, * tpInitScanParams;
1271
1272typedef PACKED_PRE struct PACKED_POST
1273{
1274 tHalMsgHeader header;
1275 tInitScanParams initScanParams;
1276} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1277
1278typedef PACKED_PRE struct PACKED_POST {
1279
1280 /*LEARN - AP Role
1281 SCAN - STA Role*/
1282 eHalSysMode scanMode;
1283
1284 /*BSSID of the BSS*/
1285 tSirMacAddr bssid;
1286
1287 /*Whether BSS needs to be notified*/
1288 tANI_U8 notifyBss;
1289
1290 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1291 CTS to Self). Must always be a valid frame type.*/
1292 tANI_U8 frameType;
1293
1294 /*UMAC has the option of passing the MAC frame to be used for notifying
1295 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1296 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1297 frameType.*/
1298 tANI_U8 frameLength;
1299
Jeff Johnson32d95a32012-09-10 13:15:23 -07001300 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001301 is non-zero. */
1302 tSirMacMgmtHdr macMgmtHdr;
1303
1304 /*Entry to hold number of active BSS idx's*/
1305 tSirScanEntry scanEntry;
1306
1307 /* Single NoA usage in Scanning */
1308 tANI_U8 useNoA;
1309
1310 /* Indicates the scan duration (in ms) */
1311 tANI_U16 scanDuration;
1312
1313} tInitScanConParams, * tpInitScanConParams;
1314
1315typedef PACKED_PRE struct PACKED_POST
1316{
1317 tHalMsgHeader header;
1318 tInitScanConParams initScanParams;
1319} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1320
1321
1322/*---------------------------------------------------------------------------
1323 WLAN_HAL_INIT_SCAN_RSP
1324---------------------------------------------------------------------------*/
1325
1326typedef PACKED_PRE struct PACKED_POST
1327{
1328 /*success or failure */
1329 tANI_U32 status;
1330
1331}tHalInitScanRspParams, *tpHalInitScanRspParams;
1332
1333typedef PACKED_PRE struct PACKED_POST
1334{
1335 tHalMsgHeader header;
1336 tHalInitScanRspParams initScanRspParams;
1337} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1338
1339/*---------------------------------------------------------------------------
1340 WLAN_HAL_START_SCAN_REQ
1341---------------------------------------------------------------------------*/
1342
Jeff Johnson32d95a32012-09-10 13:15:23 -07001343typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001344{
1345 /*Indicates the channel to scan*/
1346 tANI_U8 scanChannel;
1347
1348 } tStartScanParams, * tpStartScanParams;
1349
1350typedef PACKED_PRE struct PACKED_POST
1351{
1352 tHalMsgHeader header;
1353 tStartScanParams startScanParams;
1354} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1355
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001356typedef PACKED_PRE struct PACKED_POST
1357{
1358 tHalMsgHeader header;
1359} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1360
Jeff Johnson295189b2012-06-20 16:38:30 -07001361/*---------------------------------------------------------------------------
1362 WLAN_HAL_START_SCAN_RSP
1363---------------------------------------------------------------------------*/
1364
1365typedef PACKED_PRE struct PACKED_POST
1366{
1367 /*success or failure */
1368 tANI_U32 status;
1369
1370 tANI_U32 startTSF[2];
1371 tPowerdBm txMgmtPower;
1372
1373}tHalStartScanRspParams, *tpHalStartScanRspParams;
1374
1375typedef PACKED_PRE struct PACKED_POST
1376{
1377 tHalMsgHeader header;
1378 tHalStartScanRspParams startScanRspParams;
1379} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1380
1381/*---------------------------------------------------------------------------
1382 WLAN_HAL_END_SCAN_REQ
1383---------------------------------------------------------------------------*/
1384
1385typedef PACKED_PRE struct PACKED_POST
1386{
1387 /*Indicates the channel to stop scanning. Not used really. But retained
1388 for symmetry with "start Scan" message. It can also help in error
1389 check if needed.*/
1390 tANI_U8 scanChannel;
1391
1392} tEndScanParams, *tpEndScanParams;
1393
1394typedef PACKED_PRE struct PACKED_POST
1395{
1396 tHalMsgHeader header;
1397 tEndScanParams endScanParams;
1398} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1399
1400/*---------------------------------------------------------------------------
1401 WLAN_HAL_END_SCAN_RSP
1402---------------------------------------------------------------------------*/
1403
1404typedef PACKED_PRE struct PACKED_POST
1405{
1406 /*success or failure */
1407 tANI_U32 status;
1408
1409}tHalEndScanRspParams, *tpHalEndScanRspParams;
1410
1411typedef PACKED_PRE struct PACKED_POST
1412{
1413 tHalMsgHeader header;
1414 tHalEndScanRspParams endScanRspParams;
1415} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1416
1417/*---------------------------------------------------------------------------
1418 WLAN_HAL_FINISH_SCAN_REQ
1419---------------------------------------------------------------------------*/
1420
1421typedef PACKED_PRE struct PACKED_POST
1422{
1423 /* Identifies the operational state of the AP/STA
1424 * LEARN - AP Role SCAN - STA Role */
1425 eHalSysMode scanMode;
1426
1427 /*Operating channel to tune to.*/
1428 tANI_U8 currentOperChannel;
1429
1430 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1431 40 MHz extension channel in combination with the control channel*/
1432 ePhyChanBondState cbState;
1433
1434 /*BSSID of the BSS*/
1435 tSirMacAddr bssid;
1436
1437 /*Whether BSS needs to be notified*/
1438 tANI_U8 notifyBss;
1439
1440 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1441 CTS to Self). Must always be a valid frame type.*/
1442 tANI_U8 frameType;
1443
1444 /*UMAC has the option of passing the MAC frame to be used for notifying
1445 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1446 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1447 frameType.*/
1448 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001449
1450 /*Following the framelength there is a MAC frame buffer if frameLength
1451 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001452 tSirMacMgmtHdr macMgmtHdr;
1453
1454 /*Entry to hold number of active BSS idx's*/
1455 tSirScanEntry scanEntry;
1456
1457} tFinishScanParams, *tpFinishScanParams;
1458
1459typedef PACKED_PRE struct PACKED_POST
1460{
1461 tHalMsgHeader header;
1462 tFinishScanParams finishScanParams;
1463} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1464
1465/*---------------------------------------------------------------------------
1466 WLAN_HAL_FINISH_SCAN_RSP
1467---------------------------------------------------------------------------*/
1468
1469typedef PACKED_PRE struct PACKED_POST
1470{
1471 /*success or failure */
1472 tANI_U32 status;
1473
1474}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1475
1476typedef PACKED_PRE struct PACKED_POST
1477{
1478 tHalMsgHeader header;
1479 tHalFinishScanRspParams finishScanRspParams;
1480} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1481
1482/*---------------------------------------------------------------------------
1483 WLAN_HAL_CONFIG_STA_REQ
1484---------------------------------------------------------------------------*/
1485
1486typedef PACKED_PRE struct PACKED_POST {
1487 /*
1488 * For Self STA Entry: this represents Self Mode.
1489 * For Peer Stations, this represents the mode of the peer.
1490 * On Station:
1491 * --this mode is updated when PE adds the Self Entry.
1492 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1493 * ON AP:
1494 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1495 * to indicate the self mode of the AP.
1496 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1497 */
1498
1499 tStaRateMode opRateMode;
1500 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1501 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1502 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1503 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1504 tANI_U16 reserved;
1505
1506 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1507 //First 26 bits are reserved for those Titan rates and
1508 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1509 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1510
1511 /*
1512 * 0-76 bits used, remaining reserved
1513 * bits 0-15 and 32 should be set.
1514 */
1515 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1516
1517 /*
1518 * RX Highest Supported Data Rate defines the highest data
1519 * rate that the STA is able to receive, in unites of 1Mbps.
1520 * This value is derived from "Supported MCS Set field" inside
1521 * the HT capability element.
1522 */
1523 tANI_U16 rxHighestDataRate;
1524
1525} tSirSupportedRates, *tpSirSupportedRates;
1526
1527typedef PACKED_PRE struct PACKED_POST
1528{
1529 /*BSSID of STA*/
1530 tSirMacAddr bssId;
1531
1532 /*ASSOC ID, as assigned by UMAC*/
1533 tANI_U16 assocId;
1534
1535 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1536 tANI_U8 staType;
1537
1538 /*Short Preamble Supported.*/
1539 tANI_U8 shortPreambleSupported;
1540
1541 /*MAC Address of STA*/
1542 tSirMacAddr staMac;
1543
1544 /*Listen interval of the STA*/
1545 tANI_U16 listenInterval;
1546
1547 /*Support for 11e/WMM*/
1548 tANI_U8 wmmEnabled;
1549
1550 /*11n HT capable STA*/
1551 tANI_U8 htCapable;
1552
1553 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1554 tANI_U8 txChannelWidthSet;
1555
1556 /*RIFS mode 0 - NA, 1 - Allowed */
1557 tANI_U8 rifsMode;
1558
Jeff Johnson32d95a32012-09-10 13:15:23 -07001559 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001560 0 - No Support, 1 - Supported
1561 SG - there is global field */
1562 tANI_U8 lsigTxopProtection;
1563
1564 /*Max Ampdu Size supported by STA. TPE programming.
1565 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1566 tANI_U8 maxAmpduSize;
1567
1568 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1569 tANI_U8 maxAmpduDensity;
1570
1571 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1572 tANI_U8 maxAmsduSize;
1573
1574 /*Short GI support for 40Mhz packets*/
1575 tANI_U8 fShortGI40Mhz;
1576
1577 /*Short GI support for 20Mhz packets*/
1578 tANI_U8 fShortGI20Mhz;
1579
Jeff Johnson295189b2012-06-20 16:38:30 -07001580 /*Robust Management Frame (RMF) enabled/disabled*/
1581 tANI_U8 rmfEnabled;
1582
1583 /* The unicast encryption type in the association */
1584 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001585
1586 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001587 will set this flag in case of RE-ASSOC, where we want to reuse the old
1588 STA ID. 0 = Add, 1 = Update*/
1589 tANI_U8 action;
1590
1591 /*U-APSD Flags: 1b per AC. Encoded as follows:
1592 b7 b6 b5 b4 b3 b2 b1 b0 =
1593 X X X X BE BK VI VO */
1594 tANI_U8 uAPSD;
1595
1596 /*Max SP Length*/
1597 tANI_U8 maxSPLen;
1598
1599 /*11n Green Field preamble support
1600 0 - Not supported, 1 - Supported */
1601 tANI_U8 greenFieldCapable;
1602
1603 /*MIMO Power Save mode*/
1604 tSirMacHTMIMOPowerSaveState mimoPS;
1605
1606 /*Delayed BA Support*/
1607 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001608
Jeff Johnson295189b2012-06-20 16:38:30 -07001609 /*Max AMPDU duration in 32us*/
1610 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001611
Jeff Johnson295189b2012-06-20 16:38:30 -07001612 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1613 it to 0 if AP does not support it. This indication is sent to HAL and
1614 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1615 tANI_U8 fDsssCckMode40Mhz;
1616
1617 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1618 Retained for backward compalibity with existing HAL code*/
1619 tANI_U8 staIdx;
1620
1621 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1622 Retained for backward compalibity with existing HAL code*/
1623 tANI_U8 bssIdx;
1624
1625 tANI_U8 p2pCapableSta;
1626
Jeff Johnsone7245742012-09-05 17:12:55 -07001627 /*Reserved to align next field on a dword boundary*/
1628 tANI_U8 reserved;
1629
1630 /*These rates are the intersection of peer and self capabilities.*/
1631 tSirSupportedRates supportedRates;
1632
Jeff Johnson295189b2012-06-20 16:38:30 -07001633} tConfigStaParams, *tpConfigStaParams;
1634
Jeff Johnsone7245742012-09-05 17:12:55 -07001635/*------------------------------------------------------------------------
1636 * WLAN_HAL_CONFIG_STA_REQ
1637 * ----------------------------------------------------------------------*/
1638
1639typedef PACKED_PRE struct PACKED_POST {
1640 /*
1641 * For Self STA Entry: this represents Self Mode.
1642 * For Peer Stations, this represents the mode of the peer.
1643 * On Station:
1644 * --this mode is updated when PE adds the Self Entry.
1645 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1646 * ON AP:
1647 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1648 * to indicate the self mode of the AP.
1649 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1650 */
1651
1652 tStaRateMode opRateMode;
1653 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1654 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1655 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1656 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1657 tANI_U16 reserved;
1658
1659 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1660 //First 26 bits are reserved for those Titan rates and
1661 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1662 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1663
1664 /*
1665 * 0-76 bits used, remaining reserved
1666 * bits 0-15 and 32 should be set.
1667 */
1668 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1669
1670 /*
1671 * RX Highest Supported Data Rate defines the highest data
1672 * rate that the STA is able to receive, in unites of 1Mbps.
1673 * This value is derived from "Supported MCS Set field" inside
1674 * the HT capability element.
1675 */
1676 tANI_U16 rxHighestDataRate;
1677
1678 /* Indicates the Maximum MCS that can be received for each number
1679 * of spacial streams */
1680 tANI_U16 vhtRxMCSMap;
1681
1682 /*Indicate the highest VHT data rate that the STA is able to receive*/
1683 tANI_U16 vhtRxHighestDataRate;
1684
1685 /* Indicates the Maximum MCS that can be transmitted for each number
1686 * of spacial streams */
1687 tANI_U16 vhtTxMCSMap;
1688
1689 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1690 tANI_U16 vhtTxHighestDataRate;
1691
1692} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1693
1694typedef PACKED_PRE struct PACKED_POST
1695{
1696 /*BSSID of STA*/
1697 tSirMacAddr bssId;
1698
1699 /*ASSOC ID, as assigned by UMAC*/
1700 tANI_U16 assocId;
1701
1702 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1703 tANI_U8 staType;
1704
1705 /*Short Preamble Supported.*/
1706 tANI_U8 shortPreambleSupported;
1707
1708 /*MAC Address of STA*/
1709 tSirMacAddr staMac;
1710
1711 /*Listen interval of the STA*/
1712 tANI_U16 listenInterval;
1713
1714 /*Support for 11e/WMM*/
1715 tANI_U8 wmmEnabled;
1716
1717 /*11n HT capable STA*/
1718 tANI_U8 htCapable;
1719
1720 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1721 tANI_U8 txChannelWidthSet;
1722
1723 /*RIFS mode 0 - NA, 1 - Allowed */
1724 tANI_U8 rifsMode;
1725
1726 /*L-SIG TXOP Protection mechanism
1727 0 - No Support, 1 - Supported
1728 SG - there is global field */
1729 tANI_U8 lsigTxopProtection;
1730
1731 /*Max Ampdu Size supported by STA. TPE programming.
1732 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1733 tANI_U8 maxAmpduSize;
1734
1735 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1736 tANI_U8 maxAmpduDensity;
1737
1738 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1739 tANI_U8 maxAmsduSize;
1740
1741 /*Short GI support for 40Mhz packets*/
1742 tANI_U8 fShortGI40Mhz;
1743
1744 /*Short GI support for 20Mhz packets*/
1745 tANI_U8 fShortGI20Mhz;
1746
1747 /*Robust Management Frame (RMF) enabled/disabled*/
1748 tANI_U8 rmfEnabled;
1749
1750 /* The unicast encryption type in the association */
1751 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001752
1753 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001754 will set this flag in case of RE-ASSOC, where we want to reuse the old
1755 STA ID. 0 = Add, 1 = Update*/
1756 tANI_U8 action;
1757
1758 /*U-APSD Flags: 1b per AC. Encoded as follows:
1759 b7 b6 b5 b4 b3 b2 b1 b0 =
1760 X X X X BE BK VI VO */
1761 tANI_U8 uAPSD;
1762
1763 /*Max SP Length*/
1764 tANI_U8 maxSPLen;
1765
1766 /*11n Green Field preamble support
1767 0 - Not supported, 1 - Supported */
1768 tANI_U8 greenFieldCapable;
1769
1770 /*MIMO Power Save mode*/
1771 tSirMacHTMIMOPowerSaveState mimoPS;
1772
1773 /*Delayed BA Support*/
1774 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001775
Jeff Johnsone7245742012-09-05 17:12:55 -07001776 /*Max AMPDU duration in 32us*/
1777 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001778
Jeff Johnsone7245742012-09-05 17:12:55 -07001779 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1780 it to 0 if AP does not support it. This indication is sent to HAL and
1781 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1782 tANI_U8 fDsssCckMode40Mhz;
1783
1784 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1785 Retained for backward compalibity with existing HAL code*/
1786 tANI_U8 staIdx;
1787
1788 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1789 Retained for backward compalibity with existing HAL code*/
1790 tANI_U8 bssIdx;
1791
1792 tANI_U8 p2pCapableSta;
1793
1794 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001795 tANI_U8 htLdpcEnabled:1;
1796 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001797 tANI_U8 vhtTxBFEnabled:1;
1798 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001799
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001800 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001801 tSirSupportedRates_V1 supportedRates;
1802
1803 tANI_U8 vhtCapable;
1804 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001805
Jeff Johnsone7245742012-09-05 17:12:55 -07001806} tConfigStaParams_V1, *tpConfigStaParams_V1;
1807
Jeff Johnson295189b2012-06-20 16:38:30 -07001808typedef PACKED_PRE struct PACKED_POST
1809{
1810 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001811 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001812 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001813 tConfigStaParams_V1 configStaParams_V1;
1814 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001815} tConfigStaReqMsg, *tpConfigStaReqMsg;
1816
1817/*---------------------------------------------------------------------------
1818 WLAN_HAL_CONFIG_STA_RSP
1819---------------------------------------------------------------------------*/
1820
1821typedef PACKED_PRE struct PACKED_POST
1822{
1823 /*success or failure */
1824 tANI_U32 status;
1825
1826 /* Station index; valid only when 'status' field value SUCCESS */
1827 tANI_U8 staIdx;
1828
1829 /* BSSID Index of BSS to which the station is associated */
1830 tANI_U8 bssIdx;
1831
1832 /* DPU Index for PTK */
1833 tANI_U8 dpuIndex;
1834
Jeff Johnson32d95a32012-09-10 13:15:23 -07001835 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001836 tANI_U8 bcastDpuIndex;
1837
1838 /*DPU Index for IGTK */
1839 tANI_U8 bcastMgmtDpuIdx;
1840
1841 /*PTK DPU signature*/
1842 tANI_U8 ucUcastSig;
1843
1844 /*GTK DPU isignature*/
1845 tANI_U8 ucBcastSig;
1846
1847 /* IGTK DPU signature*/
1848 tANI_U8 ucMgmtSig;
1849
1850 tANI_U8 p2pCapableSta;
1851
1852}tConfigStaRspParams, *tpConfigStaRspParams;
1853
1854typedef PACKED_PRE struct PACKED_POST
1855{
1856 tHalMsgHeader header;
1857 tConfigStaRspParams configStaRspParams;
1858}tConfigStaRspMsg, *tpConfigStaRspMsg;
1859
1860/*---------------------------------------------------------------------------
1861 WLAN_HAL_DELETE_STA_REQ
1862---------------------------------------------------------------------------*/
1863
1864/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001865typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001866{
1867 /* Index of STA to delete */
1868 tANI_U8 staIdx;
1869} tDeleteStaParams, *tpDeleteStaParams;
1870
1871/* Delete STA Request message*/
1872typedef PACKED_PRE struct PACKED_POST
1873{
1874 tHalMsgHeader header;
1875 tDeleteStaParams delStaParams;
1876} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1877
1878/*---------------------------------------------------------------------------
1879 WLAN_HAL_DELETE_STA_RSP
1880---------------------------------------------------------------------------*/
1881
1882/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001883typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001884{
1885 /*success or failure */
1886 tANI_U32 status;
1887
1888 /* Index of STA deleted */
1889 tANI_U8 staId;
1890} tDeleteStaRspParams, *tpDeleteStaRspParams;
1891
1892/* Delete STA Response message*/
1893typedef PACKED_PRE struct PACKED_POST
1894{
1895 tHalMsgHeader header;
1896 tDeleteStaRspParams delStaRspParams;
1897} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1898
1899/*---------------------------------------------------------------------------
1900 WLAN_HAL_CONFIG_BSS_REQ
1901---------------------------------------------------------------------------*/
1902
1903//12 Bytes long because this structure can be used to represent rate
1904//and extended rate set IEs. The parser assume this to be at least 12
1905typedef __ani_attr_pre_packed struct sSirMacRateSet
1906{
1907 tANI_U8 numRates;
1908 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1909} __ani_attr_packed tSirMacRateSet;
1910
1911// access category record
1912typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1913{
1914#ifndef ANI_LITTLE_BIT_ENDIAN
1915 tANI_U8 rsvd : 1;
1916 tANI_U8 aci : 2;
1917 tANI_U8 acm : 1;
1918 tANI_U8 aifsn : 4;
1919#else
1920 tANI_U8 aifsn : 4;
1921 tANI_U8 acm : 1;
1922 tANI_U8 aci : 2;
1923 tANI_U8 rsvd : 1;
1924#endif
1925} __ani_attr_packed tSirMacAciAifsn;
1926
1927// contention window size
1928typedef __ani_attr_pre_packed struct sSirMacCW
1929{
1930#ifndef ANI_LITTLE_BIT_ENDIAN
1931 tANI_U8 max : 4;
1932 tANI_U8 min : 4;
1933#else
1934 tANI_U8 min : 4;
1935 tANI_U8 max : 4;
1936#endif
1937} __ani_attr_packed tSirMacCW;
1938
1939typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1940{
1941 tSirMacAciAifsn aci;
1942 tSirMacCW cw;
1943 tANI_U16 txoplimit;
1944} __ani_attr_packed tSirMacEdcaParamRecord;
1945
1946typedef __ani_attr_pre_packed struct sSirMacSSid
1947{
1948 tANI_U8 length;
1949 tANI_U8 ssId[32];
1950} __ani_attr_packed tSirMacSSid;
1951
1952// Concurrency role. These are generic IDs that identify the various roles
1953// in the software system.
1954typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001955 HAL_STA_MODE=0,
1956 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001957 HAL_P2P_CLIENT_MODE,
1958 HAL_P2P_GO_MODE,
1959 HAL_MONITOR_MODE,
1960} tHalConMode;
1961
1962//This is a bit pattern to be set for each mode
1963//bit 0 - sta mode
1964//bit 1 - ap mode
1965//bit 2 - p2p client mode
1966//bit 3 - p2p go mode
1967typedef enum
1968{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001969 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001970 HAL_SAP=2,
1971 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1972 HAL_P2P_CLIENT=4,
1973 HAL_P2P_GO=8,
1974 HAL_MAX_CONCURRENCY_PERSONA=4
1975} tHalConcurrencyMode;
1976
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001977// IFACE PERSONA for different Operating modes
1978typedef enum
1979{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001980 HAL_IFACE_UNKNOWN=0,
1981 HAL_IFACE_STA_MODE=1,
1982 HAL_IFACE_P2P_MODE=2,
1983 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001984} tHalIfacePersona;
1985
Jeff Johnson295189b2012-06-20 16:38:30 -07001986typedef PACKED_PRE struct PACKED_POST
1987{
1988 /* BSSID */
1989 tSirMacAddr bssId;
1990
Jeff Johnson295189b2012-06-20 16:38:30 -07001991 /* Self Mac Address */
1992 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001993
1994 /* BSS type */
1995 tSirBssType bssType;
1996
1997 /*Operational Mode: AP =0, STA = 1*/
1998 tANI_U8 operMode;
1999
2000 /*Network Type*/
2001 tSirNwType nwType;
2002
2003 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2004 tANI_U8 shortSlotTimeSupported;
2005
2006 /*Co-exist with 11a STA*/
2007 tANI_U8 llaCoexist;
2008
2009 /*Co-exist with 11b STA*/
2010 tANI_U8 llbCoexist;
2011
2012 /*Co-exist with 11g STA*/
2013 tANI_U8 llgCoexist;
2014
2015 /*Coexistence with 11n STA*/
2016 tANI_U8 ht20Coexist;
2017
2018 /*Non GF coexist flag*/
2019 tANI_U8 llnNonGFCoexist;
2020
2021 /*TXOP protection support*/
2022 tANI_U8 fLsigTXOPProtectionFullSupport;
2023
2024 /*RIFS mode*/
2025 tANI_U8 fRIFSMode;
2026
2027 /*Beacon Interval in TU*/
2028 tSirMacBeaconInterval beaconInterval;
2029
2030 /*DTIM period*/
2031 tANI_U8 dtimPeriod;
2032
2033 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2034 tANI_U8 txChannelWidthSet;
2035
2036 /*Operating channel*/
2037 tANI_U8 currentOperChannel;
2038
2039 /*Extension channel for channel bonding*/
2040 tANI_U8 currentExtChannel;
2041
2042 /*Reserved to align next field on a dword boundary*/
2043 tANI_U8 reserved;
2044
Jeff Johnsone7245742012-09-05 17:12:55 -07002045 /*SSID of the BSS*/
2046 tSirMacSSid ssId;
2047
2048 /*HAL should update the existing BSS entry, if this flag is set.
2049 UMAC will set this flag in case of reassoc, where we want to resue the
2050 the old BSSID and still return success 0 = Add, 1 = Update*/
2051 tANI_U8 action;
2052
2053 /* MAC Rate Set */
2054 tSirMacRateSet rateSet;
2055
2056 /*Enable/Disable HT capabilities of the BSS*/
2057 tANI_U8 htCapable;
2058
2059 // Enable/Disable OBSS protection
2060 tANI_U8 obssProtEnabled;
2061
2062 /*RMF enabled/disabled*/
2063 tANI_U8 rmfEnabled;
2064
2065 /*HT Operating Mode operating mode of the 802.11n STA*/
2066 tSirMacHTOperatingMode htOperMode;
2067
2068 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2069 tANI_U8 dualCTSProtection;
2070
2071 /* Probe Response Max retries */
2072 tANI_U8 ucMaxProbeRespRetryLimit;
2073
2074 /* To Enable Hidden ssid */
2075 tANI_U8 bHiddenSSIDEn;
2076
2077 /* To Enable Disable FW Proxy Probe Resp */
2078 tANI_U8 bProxyProbeRespEn;
2079
2080 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2081 EDCA params or might not desire to apply EDCA params during config BSS.
2082 0 implies Not Valid ; Non-Zero implies valid*/
2083 tANI_U8 edcaParamsValid;
2084
2085 /*EDCA Parameters for Best Effort Access Category*/
2086 tSirMacEdcaParamRecord acbe;
2087
2088 /*EDCA Parameters forBackground Access Category*/
2089 tSirMacEdcaParamRecord acbk;
2090
2091 /*EDCA Parameters for Video Access Category*/
2092 tSirMacEdcaParamRecord acvi;
2093
2094 /*EDCA Parameters for Voice Access Category*/
2095 tSirMacEdcaParamRecord acvo;
2096
2097#ifdef WLAN_FEATURE_VOWIFI_11R
2098 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2099 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2100#endif
2101
2102 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
2103 tANI_U8 halPersona;
2104
2105 tANI_U8 bSpectrumMgtEnable;
2106
2107 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2108 tANI_S8 txMgmtPower;
2109 /*maxTxPower has max power to be used after applying the power constraint if any */
2110 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07002111 /*Context of the station being added in HW
2112 Add a STA entry for "itself" -
2113 On AP - Add the AP itself in an "STA context"
2114 On STA - Add the AP to which this STA is joining in an "STA context" */
2115 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07002116} tConfigBssParams, * tpConfigBssParams;
2117
2118
2119/*--------------------------------------------------------------------------
2120 * WLAN_HAL_CONFIG_BSS_REQ
2121 *--------------------------------------------------------------------------*/
2122typedef PACKED_PRE struct PACKED_POST
2123{
2124 /* BSSID */
2125 tSirMacAddr bssId;
2126
Jeff Johnsone7245742012-09-05 17:12:55 -07002127 /* Self Mac Address */
2128 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07002129
2130 /* BSS type */
2131 tSirBssType bssType;
2132
2133 /*Operational Mode: AP =0, STA = 1*/
2134 tANI_U8 operMode;
2135
2136 /*Network Type*/
2137 tSirNwType nwType;
2138
2139 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
2140 tANI_U8 shortSlotTimeSupported;
2141
2142 /*Co-exist with 11a STA*/
2143 tANI_U8 llaCoexist;
2144
2145 /*Co-exist with 11b STA*/
2146 tANI_U8 llbCoexist;
2147
2148 /*Co-exist with 11g STA*/
2149 tANI_U8 llgCoexist;
2150
2151 /*Coexistence with 11n STA*/
2152 tANI_U8 ht20Coexist;
2153
2154 /*Non GF coexist flag*/
2155 tANI_U8 llnNonGFCoexist;
2156
2157 /*TXOP protection support*/
2158 tANI_U8 fLsigTXOPProtectionFullSupport;
2159 /*RIFS mode*/
2160 tANI_U8 fRIFSMode;
2161
2162 /*Beacon Interval in TU*/
2163 tSirMacBeaconInterval beaconInterval;
2164
2165 /*DTIM period*/
2166 tANI_U8 dtimPeriod;
2167
2168 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
2169 tANI_U8 txChannelWidthSet;
2170
2171 /*Operating channel*/
2172 tANI_U8 currentOperChannel;
2173
2174 /*Extension channel for channel bonding*/
2175 tANI_U8 currentExtChannel;
2176
2177 /*Reserved to align next field on a dword boundary*/
2178 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07002179
2180 /*SSID of the BSS*/
2181 tSirMacSSid ssId;
2182
2183 /*HAL should update the existing BSS entry, if this flag is set.
2184 UMAC will set this flag in case of reassoc, where we want to resue the
2185 the old BSSID and still return success 0 = Add, 1 = Update*/
2186 tANI_U8 action;
2187
2188 /* MAC Rate Set */
2189 tSirMacRateSet rateSet;
2190
2191 /*Enable/Disable HT capabilities of the BSS*/
2192 tANI_U8 htCapable;
2193
2194 // Enable/Disable OBSS protection
2195 tANI_U8 obssProtEnabled;
2196
2197 /*RMF enabled/disabled*/
2198 tANI_U8 rmfEnabled;
2199
2200 /*HT Operating Mode operating mode of the 802.11n STA*/
2201 tSirMacHTOperatingMode htOperMode;
2202
2203 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
2204 tANI_U8 dualCTSProtection;
2205
2206 /* Probe Response Max retries */
2207 tANI_U8 ucMaxProbeRespRetryLimit;
2208
2209 /* To Enable Hidden ssid */
2210 tANI_U8 bHiddenSSIDEn;
2211
2212 /* To Enable Disable FW Proxy Probe Resp */
2213 tANI_U8 bProxyProbeRespEn;
2214
Jeff Johnson32d95a32012-09-10 13:15:23 -07002215 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
2216 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07002217 0 implies Not Valid ; Non-Zero implies valid*/
2218 tANI_U8 edcaParamsValid;
2219
2220 /*EDCA Parameters for Best Effort Access Category*/
2221 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002222
Jeff Johnson295189b2012-06-20 16:38:30 -07002223 /*EDCA Parameters forBackground Access Category*/
2224 tSirMacEdcaParamRecord acbk;
2225
2226 /*EDCA Parameters for Video Access Category*/
2227 tSirMacEdcaParamRecord acvi;
2228
2229 /*EDCA Parameters for Voice Access Category*/
2230 tSirMacEdcaParamRecord acvo;
2231
2232#ifdef WLAN_FEATURE_VOWIFI_11R
2233 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2234 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2235#endif
2236
Jeff Johnson32d95a32012-09-10 13:15:23 -07002237 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002238 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002239
Jeff Johnson295189b2012-06-20 16:38:30 -07002240 tANI_U8 bSpectrumMgtEnable;
2241
2242 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2243 tANI_S8 txMgmtPower;
2244 /*maxTxPower has max power to be used after applying the power constraint if any */
2245 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002246 /*Context of the station being added in HW
2247 Add a STA entry for "itself" -
2248 On AP - Add the AP itself in an "STA context"
2249 On STA - Add the AP to which this STA is joining in an "STA context" */
2250 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002251
Jeff Johnsone7245742012-09-05 17:12:55 -07002252 tANI_U8 vhtCapable;
2253 tANI_U8 vhtTxChannelWidthSet;
2254} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002255
2256typedef PACKED_PRE struct PACKED_POST
2257{
2258 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002259 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002260 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002261 tConfigBssParams_V1 configBssParams_V1;
2262 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002263} tConfigBssReqMsg, *tpConfigBssReqMsg;
2264
2265/*---------------------------------------------------------------------------
2266 WLAN_HAL_CONFIG_BSS_RSP
2267---------------------------------------------------------------------------*/
2268
2269typedef PACKED_PRE struct PACKED_POST
2270{
2271 /* Success or Failure */
2272 tANI_U32 status;
2273
2274 /* BSS index allocated by HAL */
2275 tANI_U8 bssIdx;
2276
2277 /* DPU descriptor index for PTK */
2278 tANI_U8 dpuDescIndx;
2279
2280 /* PTK DPU signature */
2281 tANI_U8 ucastDpuSignature;
2282
2283 /* DPU descriptor index for GTK*/
2284 tANI_U8 bcastDpuDescIndx;
2285
2286 /* GTK DPU signature */
2287 tANI_U8 bcastDpuSignature;
2288
2289 /*DPU descriptor for IGTK*/
2290 tANI_U8 mgmtDpuDescIndx;
2291
2292 /* IGTK DPU signature */
2293 tANI_U8 mgmtDpuSignature;
2294
2295 /* Station Index for BSS entry*/
2296 tANI_U8 bssStaIdx;
2297
2298 /* Self station index for this BSS */
2299 tANI_U8 bssSelfStaIdx;
2300
2301 /* Bcast station for buffering bcast frames in AP role */
2302 tANI_U8 bssBcastStaIdx;
2303
2304 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2305 tSirMacAddr staMac;
2306
2307 /*HAL fills in the tx power used for mgmt frames in this field. */
2308 tANI_S8 txMgmtPower;
2309
2310} tConfigBssRspParams, * tpConfigBssRspParams;
2311
2312typedef PACKED_PRE struct PACKED_POST
2313{
2314 tHalMsgHeader header;
2315 tConfigBssRspParams configBssRspParams;
2316} tConfigBssRspMsg, *tpConfigBssRspMsg;
2317
2318/*---------------------------------------------------------------------------
2319 WLAN_HAL_DELETE_BSS_REQ
2320---------------------------------------------------------------------------*/
2321
2322typedef PACKED_PRE struct PACKED_POST
2323{
2324 /* BSS index to be deleted */
2325 tANI_U8 bssIdx;
2326
2327} tDeleteBssParams, *tpDeleteBssParams;
2328
2329typedef PACKED_PRE struct PACKED_POST
2330{
2331 tHalMsgHeader header;
2332 tDeleteBssParams deleteBssParams;
2333} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2334
2335/*---------------------------------------------------------------------------
2336 WLAN_HAL_DELETE_BSS_RSP
2337---------------------------------------------------------------------------*/
2338
2339typedef PACKED_PRE struct PACKED_POST
2340{
2341 /* Success or Failure */
2342 tANI_U32 status;
2343
2344 /* BSS index that has been deleted */
2345 tANI_U8 bssIdx;
2346
2347} tDeleteBssRspParams, *tpDeleteBssRspParams;
2348
2349typedef PACKED_PRE struct PACKED_POST
2350{
2351 tHalMsgHeader header;
2352 tDeleteBssRspParams deleteBssRspParams;
2353} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2354
2355/*---------------------------------------------------------------------------
2356 WLAN_HAL_JOIN_REQ
2357---------------------------------------------------------------------------*/
2358
2359typedef PACKED_PRE struct PACKED_POST
2360{
2361 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002362 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002363
2364 /*Indicates the channel to switch to.*/
2365 tANI_U8 ucChannel;
2366
2367 /* Self STA MAC */
2368 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002369
Jeff Johnson295189b2012-06-20 16:38:30 -07002370 /*Local power constraint*/
2371 tANI_U8 ucLocalPowerConstraint;
2372
2373 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002374 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002375
2376 /*link State*/
2377 tSirLinkState linkState;
2378
2379 /* Max TX power */
2380 tANI_S8 maxTxPower;
2381
2382} tHalJoinReqParams, *tpHalJoinReqParams;
2383
2384typedef PACKED_PRE struct PACKED_POST
2385{
2386 tHalMsgHeader header;
2387 tHalJoinReqParams joinReqParams;
2388} tHalJoinReqMsg, *tpHalJoinReqMsg;
2389
2390/*---------------------------------------------------------------------------
2391 WLAN_HAL_JOIN_RSP
2392---------------------------------------------------------------------------*/
2393
2394typedef PACKED_PRE struct PACKED_POST
2395{
2396 /*success or failure */
2397 tANI_U32 status;
2398
2399 /* HAL fills in the tx power used for mgmt frames in this field */
2400 tPowerdBm txMgmtPower;
2401
2402}tHalJoinRspParams, *tpHalJoinRspParams;
2403
2404typedef PACKED_PRE struct PACKED_POST
2405{
2406 tHalMsgHeader header;
2407 tHalJoinRspParams joinRspParams;
2408}tHalJoinRspMsg, *tpHalJoinRspMsg;
2409
2410/*---------------------------------------------------------------------------
2411 WLAN_HAL_POST_ASSOC_REQ
2412---------------------------------------------------------------------------*/
2413
2414typedef PACKED_PRE struct PACKED_POST
2415{
2416 tConfigStaParams configStaParams;
2417 tConfigBssParams configBssParams;
2418} tPostAssocReqParams, *tpPostAssocReqParams;
2419
2420typedef PACKED_PRE struct PACKED_POST
2421{
2422 tHalMsgHeader header;
2423 tPostAssocReqParams postAssocReqParams;
2424} tPostAssocReqMsg, *tpPostAssocReqMsg;
2425
2426/*---------------------------------------------------------------------------
2427 WLAN_HAL_POST_ASSOC_RSP
2428---------------------------------------------------------------------------*/
2429
2430typedef PACKED_PRE struct PACKED_POST
2431{
2432 tConfigStaRspParams configStaRspParams;
2433 tConfigBssRspParams configBssRspParams;
2434} tPostAssocRspParams, *tpPostAssocRspParams;
2435
2436typedef PACKED_PRE struct PACKED_POST
2437{
2438 tHalMsgHeader header;
2439 tPostAssocRspParams postAssocRspParams;
2440} tPostAssocRspMsg, *tpPostAssocRspMsg;
2441
2442/*---------------------------------------------------------------------------
2443 WLAN_HAL_SET_BSSKEY_REQ
2444---------------------------------------------------------------------------*/
2445
2446/*
2447 * This is used by PE to create a set of WEP keys for a given BSS.
2448 */
2449typedef PACKED_PRE struct PACKED_POST
2450{
2451 /*BSS Index of the BSS*/
2452 tANI_U8 bssIdx;
2453
2454 /*Encryption Type used with peer*/
2455 tAniEdType encType;
2456
2457 /*Number of keys*/
2458 tANI_U8 numKeys;
2459
2460 /*Array of keys.*/
2461 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002462
Jeff Johnson295189b2012-06-20 16:38:30 -07002463 /*Control for Replay Count, 1= Single TID based replay count on Tx
2464 0 = Per TID based replay count on TX */
2465 tANI_U8 singleTidRc;
2466} tSetBssKeyParams, *tpSetBssKeyParams;
2467
2468typedef PACKED_PRE struct PACKED_POST
2469{
2470 tHalMsgHeader header;
2471 tSetBssKeyParams setBssKeyParams;
2472} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2473
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002474/* tagged version of set bss key */
2475typedef PACKED_PRE struct PACKED_POST
2476{
2477 tSetBssKeyReqMsg Msg;
2478 uint32 Tag;
2479} tSetBssKeyReqMsgTagged;
2480
Jeff Johnson295189b2012-06-20 16:38:30 -07002481/*---------------------------------------------------------------------------
2482 WLAN_HAL_SET_BSSKEY_RSP
2483---------------------------------------------------------------------------*/
2484typedef PACKED_PRE struct PACKED_POST
2485{
2486 /*success or failure */
2487 tANI_U32 status;
2488
2489} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2490
2491typedef PACKED_PRE struct PACKED_POST
2492{
2493 tHalMsgHeader header;
2494 tSetBssKeyRspParams setBssKeyRspParams;
2495} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2496
2497/*---------------------------------------------------------------------------
2498 WLAN_HAL_SET_STAKEY_REQ,
2499---------------------------------------------------------------------------*/
2500
2501/*
2502 * This is used by PE to configure the key information on a given station.
2503 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2504 * a preconfigured key from a BSS the station assoicated with; otherwise
2505 * a new key descriptor is created based on the key field.
2506 */
2507
2508typedef PACKED_PRE struct PACKED_POST
2509{
2510 tHalMsgHeader header;
2511 tSetStaKeyParams setStaKeyParams;
2512} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2513
2514/*---------------------------------------------------------------------------
2515 WLAN_HAL_SET_STAKEY_RSP,
2516---------------------------------------------------------------------------*/
2517typedef PACKED_PRE struct PACKED_POST
2518{
2519 /*success or failure */
2520 tANI_U32 status;
2521
2522} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2523
2524typedef PACKED_PRE struct PACKED_POST
2525{
2526 tHalMsgHeader header;
2527 tSetStaKeyRspParams setStaKeyRspParams;
2528} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2529
2530/*---------------------------------------------------------------------------
2531 WLAN_HAL_RMV_BSSKEY_REQ,
2532---------------------------------------------------------------------------*/
2533/*
2534 * This is used by PE to remove keys for a given BSS.
2535 */
2536typedef PACKED_PRE struct PACKED_POST
2537
2538{
2539 /*BSS Index of the BSS*/
2540 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002541
Jeff Johnson295189b2012-06-20 16:38:30 -07002542 /*Encryption Type used with peer*/
2543 tAniEdType encType;
2544
2545 /*Key Id*/
2546 tANI_U8 keyId;
2547
2548 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2549 tAniWepType wepType;
2550
2551} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2552
2553typedef PACKED_PRE struct PACKED_POST
2554{
2555 tHalMsgHeader header;
2556 tRemoveBssKeyParams removeBssKeyParams;
2557} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2558
2559/*---------------------------------------------------------------------------
2560 WLAN_HAL_RMV_BSSKEY_RSP,
2561---------------------------------------------------------------------------*/
2562typedef PACKED_PRE struct PACKED_POST
2563{
2564 /*success or failure */
2565 tANI_U32 status;
2566
2567} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2568
2569typedef PACKED_PRE struct PACKED_POST
2570{
2571 tHalMsgHeader header;
2572 tRemoveBssKeyRspParams removeBssKeyRspParams;
2573} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2574
2575/*---------------------------------------------------------------------------
2576 WLAN_HAL_RMV_STAKEY_REQ,
2577---------------------------------------------------------------------------*/
2578/*
2579 * This is used by PE to Remove the key information on a given station.
2580 */
2581typedef PACKED_PRE struct PACKED_POST
2582{
2583 /*STA Index*/
2584 tANI_U16 staIdx;
2585
2586 /*Encryption Type used with peer*/
2587 tAniEdType encType;
2588
2589 /*Key Id*/
2590 tANI_U8 keyId;
2591
2592 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2593 the same key is used for both broadcast and unicast.*/
2594 tANI_BOOLEAN unicast;
2595
2596} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2597
2598typedef PACKED_PRE struct PACKED_POST
2599{
2600 tHalMsgHeader header;
2601 tRemoveStaKeyParams removeStaKeyParams;
2602} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2603
2604/*---------------------------------------------------------------------------
2605 WLAN_HAL_RMV_STAKEY_RSP,
2606---------------------------------------------------------------------------*/
2607typedef PACKED_PRE struct PACKED_POST
2608{
2609 /*success or failure */
2610 tANI_U32 status;
2611} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2612
2613typedef PACKED_PRE struct PACKED_POST
2614{
2615 tHalMsgHeader header;
2616 tRemoveStaKeyRspParams removeStaKeyRspParams;
2617} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2618
Jeff Johnsone7245742012-09-05 17:12:55 -07002619#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002620
Jeff Johnsone7245742012-09-05 17:12:55 -07002621#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002622#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002623#endif
2624
2625#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002626#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002627#endif
2628
2629/*-------------------------------------------------------------------------
2630WLAN_HAL_START_OEM_DATA_REQ
2631--------------------------------------------------------------------------*/
2632typedef PACKED_PRE struct PACKED_POST
2633{
2634 tANI_U32 status;
2635 tSirMacAddr selfMacAddr;
2636 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2637} tStartOemDataReqParams, *tpStartOemDataReqParams;
2638
2639typedef PACKED_PRE struct PACKED_POST
2640{
2641 tHalMsgHeader header;
2642 tStartOemDataReqParams startOemDataReqParams;
2643} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2644
2645/*-------------------------------------------------------------------------
2646WLAN_HAL_START_OEM_DATA_RSP
2647--------------------------------------------------------------------------*/
2648
2649typedef PACKED_PRE struct PACKED_POST
2650{
2651 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2652} tStartOemDataRspParams, *tpStartOemDataRspParams;
2653
2654typedef PACKED_PRE struct PACKED_POST
2655{
2656 tHalMsgHeader header;
2657 tStartOemDataRspParams startOemDataRspParams;
2658} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2659
2660#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002661
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002662/*---------------------------------------------------------------------------
2663WLAN_HAL_CH_SWITCH_V1_REQ
2664---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002665
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002666typedef PACKED_PRE struct PACKED_POST
2667{
2668 /* Channel number */
2669 tANI_U8 channelNumber;
2670
2671 /* Local power constraint */
2672 tANI_U8 localPowerConstraint;
2673
2674 /*Secondary channel offset */
2675 ePhyChanBondState secondaryChannelOffset;
2676
2677 //HAL fills in the tx power used for mgmt frames in this field.
2678 tPowerdBm txMgmtPower;
2679
2680 /* Max TX power */
2681 tPowerdBm maxTxPower;
2682
2683 /* Self STA MAC */
2684 tSirMacAddr selfStaMacAddr;
2685
2686 /*VO WIFI comment: BSSID needed to identify session. As the request has
2687 * power constraints, this should be applied only to that session
2688 * Since MTU timing and EDCA are sessionized, this struct needs to be
2689 * sessionized and bssid needs to be out of the VOWifi feature flag
2690 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002691 * mantain backward compatbility
2692 * by way of ignoring if using new host/old FW or old host/new FW since
2693 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002694 */
2695 tSirMacAddr bssId;
2696
2697 /* Source of Channel Switch */
2698 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002699
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002700} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2701
2702typedef PACKED_PRE struct PACKED_POST
2703{
2704 tHalMsgHeader header;
2705 tSwitchChannelParams_V1 switchChannelParams_V1;
2706} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2707
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002708/*---------------------------------------------------------------------------
2709WLAN_HAL_CH_SWITCH_V1_RSP
2710---------------------------------------------------------------------------*/
2711
2712typedef PACKED_PRE struct PACKED_POST
2713{
2714 /* Status */
2715 tANI_U32 status;
2716
2717 /* Channel number - same as in request*/
2718 tANI_U8 channelNumber;
2719
2720 /* HAL fills in the tx power used for mgmt frames in this field */
2721 tPowerdBm txMgmtPower;
2722
2723 /* BSSID needed to identify session - same as in request*/
2724 tSirMacAddr bssId;
2725
2726 /* Source of Channel Switch */
2727 eHalChanSwitchSource channelSwitchSrc;
2728
2729} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2730
2731typedef PACKED_PRE struct PACKED_POST
2732{
2733 tHalMsgHeader header;
2734 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2735} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002736
2737/*---------------------------------------------------------------------------
2738WLAN_HAL_CH_SWITCH_REQ
2739---------------------------------------------------------------------------*/
2740
2741typedef PACKED_PRE struct PACKED_POST
2742{
2743 /* Channel number */
2744 tANI_U8 channelNumber;
2745
2746 /* Local power constraint */
2747 tANI_U8 localPowerConstraint;
2748
2749 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002750 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002751
2752 //HAL fills in the tx power used for mgmt frames in this field.
2753 tPowerdBm txMgmtPower;
2754
2755 /* Max TX power */
2756 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002757
Jeff Johnson295189b2012-06-20 16:38:30 -07002758 /* Self STA MAC */
2759 tSirMacAddr selfStaMacAddr;
2760
2761 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2762 this should be applied only to that session*/
2763 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2764 * bssid needs to be out of the VOWifi feature flag */
2765 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2766 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2767 */
2768 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002769
Jeff Johnson295189b2012-06-20 16:38:30 -07002770}tSwitchChannelParams, *tpSwitchChannelParams;
2771
2772typedef PACKED_PRE struct PACKED_POST
2773{
2774 tHalMsgHeader header;
2775 tSwitchChannelParams switchChannelParams;
2776} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2777
2778/*---------------------------------------------------------------------------
2779WLAN_HAL_CH_SWITCH_RSP
2780---------------------------------------------------------------------------*/
2781
2782typedef PACKED_PRE struct PACKED_POST
2783{
2784 /* Status */
2785 tANI_U32 status;
2786
2787 /* Channel number - same as in request*/
2788 tANI_U8 channelNumber;
2789
2790 /* HAL fills in the tx power used for mgmt frames in this field */
2791 tPowerdBm txMgmtPower;
2792
2793 /* BSSID needed to identify session - same as in request*/
2794 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002795
Jeff Johnson295189b2012-06-20 16:38:30 -07002796}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2797
2798typedef PACKED_PRE struct PACKED_POST
2799{
2800 tHalMsgHeader header;
2801 tSwitchChannelRspParams switchChannelRspParams;
2802} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2803
2804/*---------------------------------------------------------------------------
2805WLAN_HAL_UPD_EDCA_PARAMS_REQ
2806---------------------------------------------------------------------------*/
2807
2808typedef PACKED_PRE struct PACKED_POST
2809{
2810 /*BSS Index*/
2811 tANI_U16 bssIdx;
2812
2813 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002814 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002815
2816 /* Background */
2817 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002818
Jeff Johnson295189b2012-06-20 16:38:30 -07002819 /* Video */
2820 tSirMacEdcaParamRecord acvi;
2821
2822 /* Voice */
2823 tSirMacEdcaParamRecord acvo;
2824
2825} tEdcaParams, *tpEdcaParams;
2826
2827typedef PACKED_PRE struct PACKED_POST
2828{
2829 tHalMsgHeader header;
2830 tEdcaParams edcaParams;
2831} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2832
2833/*---------------------------------------------------------------------------
2834WLAN_HAL_UPD_EDCA_PARAMS_RSP
2835---------------------------------------------------------------------------*/
2836typedef PACKED_PRE struct PACKED_POST
2837{
2838 /*success or failure */
2839 tANI_U32 status;
2840} tEdcaRspParams, *tpEdcaRspParams;
2841
2842typedef PACKED_PRE struct PACKED_POST
2843{
2844 tHalMsgHeader header;
2845 tEdcaRspParams edcaRspParams;
2846} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2847
2848
2849
2850/*---------------------------------------------------------------------------
2851 * WLAN_HAL_GET_STATS_REQ
2852 *--------------------------------------------------------------------------*/
2853typedef PACKED_PRE struct PACKED_POST
2854
2855{
2856 /* Index of STA to which the statistics */
2857 tANI_U16 staIdx;
2858
2859 /* Encryption mode */
2860 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002861
Jeff Johnson295189b2012-06-20 16:38:30 -07002862 /* status */
2863 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002864
Jeff Johnson295189b2012-06-20 16:38:30 -07002865 /* Statistics */
2866 tANI_U32 sendBlocks;
2867 tANI_U32 recvBlocks;
2868 tANI_U32 replays;
2869 tANI_U8 micErrorCnt;
2870 tANI_U32 protExclCnt;
2871 tANI_U16 formatErrCnt;
2872 tANI_U16 unDecryptableCnt;
2873 tANI_U32 decryptErrCnt;
2874 tANI_U32 decryptOkCnt;
2875} tDpuStatsParams, * tpDpuStatsParams;
2876
2877typedef PACKED_PRE struct PACKED_POST
2878{
2879 /* Valid STA Idx for per STA stats request */
2880 tANI_U32 staId;
2881
2882 /* Categories of stats requested as specified in eHalStatsMask*/
2883 tANI_U32 statsMask;
2884}tHalStatsReqParams, *tpHalStatsReqParams;
2885
2886typedef PACKED_PRE struct PACKED_POST
2887{
2888 tHalMsgHeader header;
2889 tHalStatsReqParams statsReqParams;
2890} tHalStatsReqMsg, *tpHalStatsReqMsg;
2891
2892/*---------------------------------------------------------------------------
2893 * WLAN_HAL_GET_STATS_RSP
2894 *--------------------------------------------------------------------------*/
2895
2896typedef PACKED_PRE struct PACKED_POST
2897{
2898 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2899 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2900 // station successfully transmitted after more than one retransmission attempt
2901
Jeff Johnson32d95a32012-09-10 13:15:23 -07002902 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2903 //(with and without retries, including multi-cast, broadcast)
2904 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2905 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002906 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2907 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2908 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2909 tANI_U32 ack_fail_cnt; //Total number packets failed transmit because of no ACK from the remote entity
Jeff Johnson32d95a32012-09-10 13:15:23 -07002910 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2911 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 -07002912 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2913 tANI_U32 rx_error_cnt; //The receive error count. HAL will provide the RxP FCS error global counter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002914 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2915 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002916 //to provide this.
2917}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2918
2919
2920// defines tx_rate_flags
2921typedef enum eTxRateInfo
2922{
2923 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2924 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2925 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2926 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07002927 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2928 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2929 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
2930 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
2931 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
2932 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
2933} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07002934
2935
2936typedef PACKED_PRE struct PACKED_POST
2937{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002938 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 -07002939 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002940 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 -07002941 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002942 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2943 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002944 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002945 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2946 //for eg: if it is 10.5dBm, the value would be 105
2947 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2948 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002949
Jeff Johnson32d95a32012-09-10 13:15:23 -07002950 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2951 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002952 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002953 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2954 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002955}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2956
2957typedef PACKED_PRE struct PACKED_POST
2958{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002959 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2960 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002961 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002962 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 -07002963 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002964 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 -07002965 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002966 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 -07002967 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002968 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 -07002969 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002970 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 -07002971 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002972 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 -07002973 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002974 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 -07002975 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002976 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 -07002977 //decrypted
2978 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2979
2980}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002981
Jeff Johnson295189b2012-06-20 16:38:30 -07002982typedef PACKED_PRE struct PACKED_POST
2983{
2984 tAniGlobalSecurityStats ucStats;
2985 tAniGlobalSecurityStats mcbcStats;
2986}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2987
2988typedef PACKED_PRE struct PACKED_POST
2989{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002990 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2991 //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 -07002992 //address 1 field
2993 tANI_U32 rx_ampdu_cnt; //This counter shall be incremented when the MAC receives an AMPDU from the PHY
Jeff Johnson32d95a32012-09-10 13:15:23 -07002994 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 -07002995 //primary channel
2996 tANI_U32 rx_20_frm_cnt; //This counter shall be incremented when a Frame is received only on the primary channel
Jeff Johnson32d95a32012-09-10 13:15:23 -07002997 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 -07002998 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002999 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
3000 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07003001 //decoded correctly
3002}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
3003
3004typedef PACKED_PRE struct PACKED_POST
3005{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003006 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 -07003007 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07003008 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
3009 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 -07003010 //is transmitted
3011}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
3012
3013typedef PACKED_PRE struct PACKED_POST
3014{
3015 /* Success or Failure */
3016 tANI_U32 status;
3017
3018 /* STA Idx */
3019 tANI_U32 staId;
3020
3021 /* Categories of STATS being returned as per eHalStatsMask*/
3022 tANI_U32 statsMask;
3023
3024 /* message type is same as the request type */
3025 tANI_U16 msgType;
3026
3027 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003028 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07003029
3030} tHalStatsRspParams, *tpHalStatsRspParams;
3031
3032
3033
3034typedef PACKED_PRE struct PACKED_POST
3035{
3036 tHalMsgHeader header;
3037 tHalStatsRspParams statsRspParams;
3038} tHalStatsRspMsg, *tpHalStatsRspMsg;
3039
3040/*---------------------------------------------------------------------------
3041 * WLAN_HAL_SET_LINK_ST_REQ
3042 *--------------------------------------------------------------------------*/
3043typedef PACKED_PRE struct PACKED_POST
3044{
3045 tSirMacAddr bssid;
3046 tSirLinkState state;
3047 tSirMacAddr selfMacAddr;
3048} tLinkStateParams, *tpLinkStateParams;
3049
3050typedef PACKED_PRE struct PACKED_POST
3051{
3052 tHalMsgHeader header;
3053 tLinkStateParams linkStateParams;
3054} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
3055
3056/*---------------------------------------------------------------------------
3057 * WLAN_HAL_SET_LINK_ST_RSP
3058 *--------------------------------------------------------------------------*/
3059
3060typedef PACKED_PRE struct PACKED_POST
3061{
3062 /*success or failure */
3063 tANI_U32 status;
3064} tLinkStateRspParams, *tpLinkStateRspParams;
3065
3066typedef PACKED_PRE struct PACKED_POST
3067{
3068 tHalMsgHeader header;
3069 tLinkStateRspParams linkStateRspParams;
3070} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
3071
3072/*---------------------------------------------------------------------------
3073 * WLAN_HAL_ADD_TS_REQ
3074 *--------------------------------------------------------------------------*/
3075
3076/* TSPEC Params */
3077typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
3078{
Jeff Johnson295189b2012-06-20 16:38:30 -07003079 tANI_U16 trafficType : 1;
3080 tANI_U16 tsid : 4;
3081 tANI_U16 direction : 2;
3082 tANI_U16 accessPolicy : 2;
3083 tANI_U16 aggregation : 1;
3084 tANI_U16 psb : 1;
3085 tANI_U16 userPrio : 3;
3086 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07003087} __ani_attr_packed tSirMacTSInfoTfc;
3088
3089/* Flag to schedule the traffic type */
3090typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
3091{
Jeff Johnson295189b2012-06-20 16:38:30 -07003092 tANI_U8 schedule : 1;
3093 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07003094} __ani_attr_packed tSirMacTSInfoSch;
3095
3096/* Traffic and scheduling info */
3097typedef __ani_attr_pre_packed struct sSirMacTSInfo
3098{
3099 tSirMacTSInfoTfc traffic;
3100 tSirMacTSInfoSch schedule;
3101} __ani_attr_packed tSirMacTSInfo;
3102
3103/* Information elements */
3104typedef __ani_attr_pre_packed struct sSirMacTspecIE
3105{
3106 tANI_U8 type;
3107 tANI_U8 length;
3108 tSirMacTSInfo tsinfo;
3109 tANI_U16 nomMsduSz;
3110 tANI_U16 maxMsduSz;
3111 tANI_U32 minSvcInterval;
3112 tANI_U32 maxSvcInterval;
3113 tANI_U32 inactInterval;
3114 tANI_U32 suspendInterval;
3115 tANI_U32 svcStartTime;
3116 tANI_U32 minDataRate;
3117 tANI_U32 meanDataRate;
3118 tANI_U32 peakDataRate;
3119 tANI_U32 maxBurstSz;
3120 tANI_U32 delayBound;
3121 tANI_U32 minPhyRate;
3122 tANI_U16 surplusBw;
3123 tANI_U16 mediumTime;
3124}__ani_attr_packed tSirMacTspecIE;
3125
3126typedef PACKED_PRE struct PACKED_POST
3127{
3128 /* Station Index */
3129 tANI_U16 staIdx;
3130
3131 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
3132 tANI_U16 tspecIdx;
3133
3134 /* To program TPE with required parameters */
3135 tSirMacTspecIE tspec;
3136
3137 /* U-APSD Flags: 1b per AC. Encoded as follows:
3138 b7 b6 b5 b4 b3 b2 b1 b0 =
3139 X X X X BE BK VI VO */
3140 tANI_U8 uAPSD;
3141
3142 /* These parameters are for all the access categories */
3143 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
3144 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
3145 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07003146
Jeff Johnson295189b2012-06-20 16:38:30 -07003147} tAddTsParams, *tpAddTsParams;
3148
3149typedef PACKED_PRE struct PACKED_POST
3150{
3151 tHalMsgHeader header;
3152 tAddTsParams addTsParams;
3153} tAddTsReqMsg, *tpAddTsReqMsg;
3154
3155/*---------------------------------------------------------------------------
3156 * WLAN_HAL_ADD_TS_RSP
3157 *--------------------------------------------------------------------------*/
3158
3159typedef PACKED_PRE struct PACKED_POST
3160{
3161 /*success or failure */
3162 tANI_U32 status;
3163} tAddTsRspParams, *tpAddTsRspParams;
3164
3165typedef PACKED_PRE struct PACKED_POST
3166{
3167 tHalMsgHeader header;
3168 tAddTsRspParams addTsRspParams;
3169} tAddTsRspMsg, *tpAddTsRspMsg;
3170
3171
3172/*---------------------------------------------------------------------------
3173 * WLAN_HAL_DEL_TS_REQ
3174 *--------------------------------------------------------------------------*/
3175
3176typedef PACKED_PRE struct PACKED_POST
3177{
3178 /* Station Index */
3179 tANI_U16 staIdx;
3180
3181 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
3182 tANI_U16 tspecIdx;
3183
3184 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003185 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003186
3187} tDelTsParams, *tpDelTsParams;
3188
3189typedef PACKED_PRE struct PACKED_POST
3190{
3191 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003192 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003193} tDelTsReqMsg, *tpDelTsReqMsg;
3194
3195/*---------------------------------------------------------------------------
3196 * WLAN_HAL_DEL_TS_RSP
3197 *--------------------------------------------------------------------------*/
3198
3199typedef PACKED_PRE struct PACKED_POST
3200{
3201 /*success or failure */
3202 tANI_U32 status;
3203} tDelTsRspParams, *tpDelTsRspParams;
3204
3205typedef PACKED_PRE struct PACKED_POST
3206{
3207 tHalMsgHeader header;
3208 tDelTsRspParams delTsRspParams;
3209} tDelTsRspMsg, *tpDelTsRspMsg;
3210
3211/* End of TSpec Parameters */
3212
3213/* Start of BLOCK ACK related Parameters */
3214
3215/*---------------------------------------------------------------------------
3216 * WLAN_HAL_ADD_BA_SESSION_REQ
3217 *--------------------------------------------------------------------------*/
3218
3219typedef PACKED_PRE struct PACKED_POST
3220{
3221 /* Station Index */
3222 tANI_U16 staIdx;
3223
3224 /* Peer MAC Address */
3225 tSirMacAddr peerMacAddr;
3226
3227 /* ADDBA Action Frame dialog token
3228 HAL will not interpret this object */
3229 tANI_U8 baDialogToken;
3230
3231 /* TID for which the BA is being setup
3232 This identifies the TC or TS of interest */
3233 tANI_U8 baTID;
3234
3235 /* 0 - Delayed BA (Not supported)
3236 1 - Immediate BA */
3237 tANI_U8 baPolicy;
3238
3239 /* Indicates the number of buffers for this TID (baTID)
3240 NOTE - This is the requested buffer size. When this
3241 is processed by HAL and subsequently by HDD, it is
3242 possible that HDD may change this buffer size. Any
3243 change in the buffer size should be noted by PE and
3244 advertized appropriately in the ADDBA response */
3245 tANI_U16 baBufferSize;
3246
3247 /* BA timeout in TU's 0 means no timeout will occur */
3248 tANI_U16 baTimeout;
3249
3250 /* b0..b3 - Fragment Number - Always set to 0
3251 b4..b15 - Starting Sequence Number of first MSDU
3252 for which this BA is setup */
3253 tANI_U16 baSSN;
3254
3255 /* ADDBA direction
3256 1 - Originator
3257 0 - Recipient */
3258 tANI_U8 baDirection;
3259} tAddBASessionParams, *tpAddBASessionParams;
3260
3261typedef PACKED_PRE struct PACKED_POST
3262{
3263 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003264 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003265}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3266
3267/*---------------------------------------------------------------------------
3268 * WLAN_HAL_ADD_BA_SESSION_RSP
3269 *--------------------------------------------------------------------------*/
3270
3271typedef PACKED_PRE struct PACKED_POST
3272{
3273 /*success or failure */
3274 tANI_U32 status;
3275
3276 /* Dialog token */
3277 tANI_U8 baDialogToken;
3278
3279 /* TID for which the BA session has been setup */
3280 tANI_U8 baTID;
3281
3282 /* BA Buffer Size allocated for the current BA session */
3283 tANI_U8 baBufferSize;
3284
3285 tANI_U8 baSessionID;
3286
3287 /* Reordering Window buffer */
3288 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003289
Jeff Johnson295189b2012-06-20 16:38:30 -07003290 /*Station Index to id the sta */
3291 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003292
Jeff Johnson295189b2012-06-20 16:38:30 -07003293 /* Starting Sequence Number */
3294 tANI_U16 SSN;
3295} tAddBASessionRspParams, *tpAddBASessionRspParams;
3296
3297typedef PACKED_PRE struct PACKED_POST
3298{
3299 tHalMsgHeader header;
3300 tAddBASessionRspParams addBASessionRspParams;
3301} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3302
3303/*---------------------------------------------------------------------------
3304 * WLAN_HAL_ADD_BA_REQ
3305 *--------------------------------------------------------------------------*/
3306
3307typedef PACKED_PRE struct PACKED_POST
3308{
3309 /* Session Id */
3310 tANI_U8 baSessionID;
3311
3312 /* Reorder Window Size */
3313 tANI_U8 winSize;
3314
3315#ifdef FEATURE_ON_CHIP_REORDERING
3316 tANI_BOOLEAN isReorderingDoneOnChip;
3317#endif
3318} tAddBAParams, *tpAddBAParams;
3319
3320typedef PACKED_PRE struct PACKED_POST
3321{
3322 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003323 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003324} tAddBAReqMsg, *tpAddBAReqMsg;
3325
3326
3327/*---------------------------------------------------------------------------
3328 * WLAN_HAL_ADD_BA_RSP
3329 *--------------------------------------------------------------------------*/
3330
3331typedef PACKED_PRE struct PACKED_POST
3332{
3333 /*success or failure */
3334 tANI_U32 status;
3335
3336 /* Dialog token */
3337 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003338
Jeff Johnson295189b2012-06-20 16:38:30 -07003339} tAddBARspParams, *tpAddBARspParams;
3340
3341typedef PACKED_PRE struct PACKED_POST
3342{
3343 tHalMsgHeader header;
3344 tAddBARspParams addBARspParams;
3345} tAddBARspMsg, *tpAddBARspMsg;
3346
3347
3348/*---------------------------------------------------------------------------
3349 * WLAN_HAL_TRIGGER_BA_REQ
3350 *--------------------------------------------------------------------------*/
3351
3352
3353typedef struct sAddBaInfo
3354{
3355 tANI_U16 fBaEnable : 1;
3356 tANI_U16 startingSeqNum: 12;
3357 tANI_U16 reserved : 3;
3358}tAddBaInfo, *tpAddBaInfo;
3359
3360typedef struct sTriggerBaRspCandidate
3361{
3362 tSirMacAddr staAddr;
3363 tAddBaInfo baInfo[STACFG_MAX_TC];
3364}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3365
3366typedef struct sTriggerBaCandidate
3367{
3368 tANI_U8 staIdx;
3369 tANI_U8 tidBitmap;
3370}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3371
3372typedef PACKED_PRE struct PACKED_POST
3373{
3374 /* Session Id */
3375 tANI_U8 baSessionID;
3376
Jeff Johnson32d95a32012-09-10 13:15:23 -07003377 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003378 * Candidate List(tTriggerBaCandidate)
3379 */
3380 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003381
Jeff Johnson295189b2012-06-20 16:38:30 -07003382} tTriggerBAParams, *tpTriggerBAParams;
3383
3384typedef PACKED_PRE struct PACKED_POST
3385{
3386 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003387 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003388} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3389
3390
3391/*---------------------------------------------------------------------------
3392 * WLAN_HAL_TRIGGER_BA_RSP
3393 *--------------------------------------------------------------------------*/
3394
3395typedef PACKED_PRE struct PACKED_POST
3396{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003397
Jeff Johnson295189b2012-06-20 16:38:30 -07003398 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003399 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003400
3401 /* success or failure */
3402 tANI_U32 status;
3403
Jeff Johnson32d95a32012-09-10 13:15:23 -07003404 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003405 * Rsp Candidate List(tTriggerRspBaCandidate)
3406 */
3407 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003408
Jeff Johnson295189b2012-06-20 16:38:30 -07003409
3410} tTriggerBARspParams, *tpTriggerBARspParams;
3411
3412typedef PACKED_PRE struct PACKED_POST
3413{
3414 tHalMsgHeader header;
3415 tTriggerBARspParams triggerBARspParams;
3416} tTriggerBARspMsg, *tpTriggerBARspMsg;
3417
3418/*---------------------------------------------------------------------------
3419 * WLAN_HAL_DEL_BA_REQ
3420 *--------------------------------------------------------------------------*/
3421
3422typedef PACKED_PRE struct PACKED_POST
3423{
3424 /* Station Index */
3425 tANI_U16 staIdx;
3426
3427 /* TID for which the BA session is being deleted */
3428 tANI_U8 baTID;
3429
3430 /* DELBA direction
3431 1 - Originator
3432 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003433 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003434} tDelBAParams, *tpDelBAParams;
3435
3436typedef PACKED_PRE struct PACKED_POST
3437{
3438 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003439 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003440} tDelBAReqMsg, *tpDelBAReqMsg;
3441
3442/*---------------------------------------------------------------------------
3443 * WLAN_HAL_DEL_BA_RSP
3444 *--------------------------------------------------------------------------*/
3445
3446typedef PACKED_PRE struct PACKED_POST
3447{
3448 /* success or failure */
3449 tANI_U32 status;
3450} tDelBARspParams, *tpDelBARspParams;
3451
3452typedef PACKED_PRE struct PACKED_POST
3453{
3454 tHalMsgHeader header;
3455 tDelBARspParams delBARspParams;
3456} tDelBARspMsg, *tpDelBARspMsg;
3457
3458
Jeff Johnson295189b2012-06-20 16:38:30 -07003459/*---------------------------------------------------------------------------
3460 * WLAN_HAL_TSM_STATS_REQ
3461 *--------------------------------------------------------------------------*/
3462typedef PACKED_PRE struct PACKED_POST
3463{
3464 /* Traffic Id */
3465 tANI_U8 tsmTID;
3466
3467 tSirMacAddr bssId;
3468} tTsmStatsParams, *tpTsmStatsParams;
3469
3470typedef PACKED_PRE struct PACKED_POST
3471{
3472 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003473 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003474} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3475
3476
3477/*---------------------------------------------------------------------------
3478 * WLAN_HAL_TSM_STATS_RSP
3479 *--------------------------------------------------------------------------*/
3480typedef PACKED_PRE struct PACKED_POST
3481{
3482 /*success or failure */
3483 tANI_U32 status;
3484
Jeff Johnson32d95a32012-09-10 13:15:23 -07003485 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003486 tANI_U16 UplinkPktQueueDly;
3487
Jeff Johnson32d95a32012-09-10 13:15:23 -07003488 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003489 tANI_U16 UplinkPktQueueDlyHist[4];
3490
Jeff Johnson32d95a32012-09-10 13:15:23 -07003491 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003492 tANI_U32 UplinkPktTxDly;
3493
Jeff Johnson32d95a32012-09-10 13:15:23 -07003494 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003495 tANI_U16 UplinkPktLoss;
3496
Jeff Johnson32d95a32012-09-10 13:15:23 -07003497 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003498 tANI_U16 UplinkPktCount;
3499
Jeff Johnson32d95a32012-09-10 13:15:23 -07003500 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003501 tANI_U8 RoamingCount;
3502
Jeff Johnson32d95a32012-09-10 13:15:23 -07003503 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003504 tANI_U16 RoamingDly;
3505} tTsmStatsRspParams, *tpTsmStatsRspParams;
3506
3507typedef PACKED_PRE struct PACKED_POST
3508{
3509 tHalMsgHeader header;
3510 tTsmStatsRspParams tsmStatsRspParams;
3511} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3512
3513
Jeff Johnson295189b2012-06-20 16:38:30 -07003514/*---------------------------------------------------------------------------
3515 * WLAN_HAL_SET_KEYDONE_MSG
3516 *--------------------------------------------------------------------------*/
3517
3518typedef PACKED_PRE struct PACKED_POST
3519{
3520 /*bssid of the keys */
3521 tANI_U8 bssidx;
3522 tANI_U8 encType;
3523} tSetKeyDoneParams, *tpSetKeyDoneParams;
3524
3525typedef PACKED_PRE struct PACKED_POST
3526{
3527 tHalMsgHeader header;
3528 tSetKeyDoneParams setKeyDoneParams;
3529} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3530
3531/*---------------------------------------------------------------------------
3532 * WLAN_HAL_DOWNLOAD_NV_REQ
3533 *--------------------------------------------------------------------------*/
3534typedef PACKED_PRE struct PACKED_POST
3535{
3536 /* Fragment sequence number of the NV Image. Note that NV Image might not
3537 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003538 * can hence choose to chop the NV blob into multiple fragments starting with
3539 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003540 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3541 * concatenated together by HAL without any padding bytes in between.*/
3542 tANI_U16 fragNumber;
3543
3544 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003545 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003546 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3547 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3548 tANI_U16 isLastFragment;
3549
3550 /* NV Image size (number of bytes) */
3551 tANI_U32 nvImgBufferSize;
3552
3553 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3554 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3555} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3556
3557typedef PACKED_PRE struct PACKED_POST
3558{
3559 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3560 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3561 tHalMsgHeader header;
3562 tHalNvImgDownloadReqParams nvImageReqParams;
3563} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3564
3565/*---------------------------------------------------------------------------
3566 * WLAN_HAL_DOWNLOAD_NV_RSP
3567 *--------------------------------------------------------------------------*/
3568typedef PACKED_PRE struct PACKED_POST
3569{
3570 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3571 * after each fragment */
3572 tANI_U32 status;
3573} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3574
3575typedef PACKED_PRE struct PACKED_POST
3576{
3577 tHalMsgHeader header;
3578 tHalNvImgDownloadRspParams nvImageRspParams;
3579} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3580
3581/*---------------------------------------------------------------------------
3582 * WLAN_HAL_STORE_NV_IND
3583 *--------------------------------------------------------------------------*/
3584typedef PACKED_PRE struct PACKED_POST
3585{
3586 /* NV Item */
3587 eNvTable tableID;
3588
3589 /* Size of NV Blob */
3590 tANI_U32 nvBlobSize;
3591
Jeff Johnson32d95a32012-09-10 13:15:23 -07003592 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003593 * NV blob i.e. uint8[nvBlobSize] */
3594} tHalNvStoreParams, *tpHalNvStoreParams;
3595
3596typedef PACKED_PRE struct PACKED_POST
3597{
3598 /* Note: The length specified in tHalNvStoreInd messages should be
3599 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3600 tHalMsgHeader header;
3601 tHalNvStoreParams nvStoreParams;
3602} tHalNvStoreInd, *tpHalNvStoreInd;
3603
3604/* End of Block Ack Related Parameters */
3605
3606/*---------------------------------------------------------------------------
3607 * WLAN_HAL_MIC_FAILURE_IND
3608 *--------------------------------------------------------------------------*/
3609
3610#define SIR_CIPHER_SEQ_CTR_SIZE 6
3611
3612typedef PACKED_PRE struct PACKED_POST
3613{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003614 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003615 tSirMacAddr taMacAddr; //transmitter address
3616 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003617 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003618 tANI_U8 IV1; // first byte of IV
3619 tANI_U8 keyId; // second byte of IV
3620 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3621 tSirMacAddr rxMacAddr; // receive address
3622} tSirMicFailureInfo, *tpSirMicFailureInfo;
3623
3624/* Definition for MIC failure indication
3625 MAC reports this each time a MIC failure occures on Rx TKIP packet
3626 */
3627typedef PACKED_PRE struct PACKED_POST
3628{
3629 tSirMacAddr bssId; // BSSID
3630 tSirMicFailureInfo info;
3631} tSirMicFailureInd, *tpSirMicFailureInd;
3632
3633typedef PACKED_PRE struct PACKED_POST
3634{
3635 tHalMsgHeader header;
3636 tSirMicFailureInd micFailureInd;
3637} tMicFailureIndMsg, *tpMicFailureIndMsg;
3638
Mohit Khanna4a70d262012-09-11 16:30:12 -07003639typedef PACKED_PRE struct PACKED_POST
3640{
3641 tANI_U16 opMode;
3642 tANI_U16 staId;
3643}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3644
3645typedef PACKED_PRE struct PACKED_POST
3646{
3647 tHalMsgHeader header;
3648 tUpdateVHTOpMode updateVhtOpMode;
3649} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3650
3651typedef PACKED_PRE struct PACKED_POST
3652{
3653 tANI_U32 status;
3654} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3655
3656typedef PACKED_PRE struct PACKED_POST
3657{
3658 tHalMsgHeader header;
3659 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3660} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3661
Jeff Johnson295189b2012-06-20 16:38:30 -07003662/*---------------------------------------------------------------------------
3663 * WLAN_HAL_UPDATE_BEACON_REQ
3664 *--------------------------------------------------------------------------*/
3665typedef PACKED_PRE struct PACKED_POST
3666{
3667
3668 tANI_U8 bssIdx;
3669
3670 //shortPreamble mode. HAL should update all the STA rates when it
3671 //receives this message
3672 tANI_U8 fShortPreamble;
3673 //short Slot time.
3674 tANI_U8 fShortSlotTime;
3675 //Beacon Interval
3676 tANI_U16 beaconInterval;
3677 //Protection related
3678 tANI_U8 llaCoexist;
3679 tANI_U8 llbCoexist;
3680 tANI_U8 llgCoexist;
3681 tANI_U8 ht20MhzCoexist;
3682 tANI_U8 llnNonGFCoexist;
3683 tANI_U8 fLsigTXOPProtectionFullSupport;
3684 tANI_U8 fRIFSMode;
3685
3686 tANI_U16 paramChangeBitmap;
3687}tUpdateBeaconParams, *tpUpdateBeaconParams;
3688
3689
3690typedef PACKED_PRE struct PACKED_POST
3691{
3692 tHalMsgHeader header;
3693 tUpdateBeaconParams updateBeaconParam;
3694} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3695
3696/*---------------------------------------------------------------------------
3697 * WLAN_HAL_UPDATE_BEACON_RSP
3698 *--------------------------------------------------------------------------*/
3699typedef PACKED_PRE struct PACKED_POST
3700{
3701 tANI_U32 status;
3702} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3703
3704typedef PACKED_PRE struct PACKED_POST
3705{
3706 tHalMsgHeader header;
3707 tUpdateBeaconRspParams updateBeaconRspParam;
3708} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3709
3710/*---------------------------------------------------------------------------
3711 * WLAN_HAL_SEND_BEACON_REQ
3712 *--------------------------------------------------------------------------*/
3713typedef PACKED_PRE struct PACKED_POST
3714{
3715 tANI_U32 beaconLength; //length of the template.
3716 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3717 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003718 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003719 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3720}tSendBeaconParams, *tpSendBeaconParams;
3721
3722
3723typedef PACKED_PRE struct PACKED_POST
3724{
3725 tHalMsgHeader header;
3726 tSendBeaconParams sendBeaconParam;
3727}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3728
3729/*---------------------------------------------------------------------------
3730 * WLAN_HAL_SEND_BEACON_RSP
3731 *--------------------------------------------------------------------------*/
3732typedef PACKED_PRE struct PACKED_POST
3733{
3734 tANI_U32 status;
3735} tSendBeaconRspParams, *tpSendBeaconRspParams;
3736
3737typedef PACKED_PRE struct PACKED_POST
3738{
3739 tHalMsgHeader header;
3740 tSendBeaconRspParams sendBeaconRspParam;
3741} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3742
3743#ifdef FEATURE_5GHZ_BAND
3744
3745/*---------------------------------------------------------------------------
3746 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3747 *--------------------------------------------------------------------------*/
3748typedef PACKED_PRE struct PACKED_POST
3749{
3750 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003751 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003752}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3753
3754
3755typedef PACKED_PRE struct PACKED_POST
3756{
3757 /* Link Parameters */
3758 tSirEnableRadarInfoType EnableRadarInfo;
3759}tEnableRadarReqParams, *tpEnableRadarReqParams;
3760
3761typedef PACKED_PRE struct PACKED_POST
3762{
3763 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003764 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003765}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3766
3767/*---------------------------------------------------------------------------
3768 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3769 *--------------------------------------------------------------------------*/
3770
3771typedef PACKED_PRE struct PACKED_POST
3772{
3773 /* Link Parameters */
3774 tSirMacAddr BSSID;
3775 /* success or failure */
3776 tANI_U32 status;
3777}tEnableRadarRspParams, *tpEnableRadarRspParams;
3778
3779typedef PACKED_PRE struct PACKED_POST
3780{
3781 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003782 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003783}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3784
3785/*---------------------------------------------------------------------------
3786 *WLAN_HAL_RADAR_DETECT_INTR_IND
3787 *--------------------------------------------------------------------------*/
3788
3789typedef PACKED_PRE struct PACKED_POST
3790{
3791 tANI_U8 radarDetChannel;
3792}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3793
3794typedef PACKED_PRE struct PACKED_POST
3795{
3796 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003797 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003798}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3799
3800/*---------------------------------------------------------------------------
3801 *WLAN_HAL_RADAR_DETECT_IND
3802 *-------------------------------------------------------------------------*/
3803typedef PACKED_PRE struct PACKED_POST
3804{
3805 /*channel number in which the RADAR detected*/
3806 tANI_U8 channelNumber;
3807
3808 /*RADAR pulse width*/
3809 tANI_U16 radarPulseWidth; // in usecond
3810
3811 /*Number of RADAR pulses */
3812 tANI_U16 numRadarPulse;
3813}tRadarDetectIndParams,*tpRadarDetectIndParams;
3814
3815typedef PACKED_PRE struct PACKED_POST
3816{
3817 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003818 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003819}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3820
3821
3822/*---------------------------------------------------------------------------
3823 *WLAN_HAL_GET_TPC_REPORT_REQ
3824 *-------------------------------------------------------------------------*/
3825typedef PACKED_PRE struct PACKED_POST
3826{
3827 tSirMacAddr sta;
3828 tANI_U8 dialogToken;
3829 tANI_U8 txpower;
3830}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3831
3832
3833typedef PACKED_PRE struct PACKED_POST
3834{
3835 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003836 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003837}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3838
3839/*---------------------------------------------------------------------------
3840 * WLAN_HAL_GET_TPC_REPORT_RSP
3841 *--------------------------------------------------------------------------*/
3842
3843typedef PACKED_PRE struct PACKED_POST
3844{
3845 /* success or failure */
3846 tANI_U32 status;
3847}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3848
3849typedef PACKED_PRE struct PACKED_POST
3850{
3851 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003852 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003853}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3854
3855#endif
3856
Jeff Johnson295189b2012-06-20 16:38:30 -07003857/*---------------------------------------------------------------------------
3858 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3859 *-------------------------------------------------------------------------*/
3860typedef PACKED_PRE struct PACKED_POST
3861{
3862 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3863 tANI_U32 probeRespTemplateLen;
3864 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3865 tSirMacAddr bssId;
3866
3867}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3868
3869typedef PACKED_PRE struct PACKED_POST
3870{
3871 tHalMsgHeader header;
3872 tSendProbeRespReqParams sendProbeRespReqParams ;
3873}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3874
3875/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003876 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003877 *--------------------------------------------------------------------------*/
3878
3879typedef PACKED_PRE struct PACKED_POST
3880{
3881 /* success or failure */
3882 tANI_U32 status;
3883}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3884
3885typedef PACKED_PRE struct PACKED_POST
3886{
3887 tHalMsgHeader header;
3888 tSendProbeRespRspParams sendProbeRespRspParams;
3889}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3890
3891
3892/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003893 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003894 *--------------------------------------------------------------------------*/
3895
3896typedef PACKED_PRE struct PACKED_POST
3897{
3898 /* success or failure */
3899 tANI_U32 status;
3900}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3901
3902typedef PACKED_PRE struct PACKED_POST
3903{
3904 tHalMsgHeader header;
3905 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3906}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3907
3908/*---------------------------------------------------------------------------
3909 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3910 *--------------------------------------------------------------------------*/
3911
3912typedef PACKED_PRE struct PACKED_POST
3913{
3914 tANI_U16 assocId;
3915 tANI_U16 staId;
3916 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3917 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003918 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003919 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003920
3921}tDeleteStaContextParams, *tpDeleteStaContextParams;
3922
3923
3924typedef PACKED_PRE struct PACKED_POST
3925{
3926 tHalMsgHeader header;
3927 tDeleteStaContextParams deleteStaContextParams;
3928}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3929
Anand Kumar012623a2013-01-11 17:00:00 -08003930typedef PACKED_PRE struct PACKED_POST
3931{
3932 tHalMsgHeader header;
3933 tANI_U8 assocId;
3934 tANI_U8 staIdx;
3935 tANI_U8 bssIdx;
3936 tANI_U8 uReasonCode;
3937 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07003938#ifdef WLAN_FEATURE_ROAM_OFFLOAD
3939 tANI_U8 staAddr[6];
3940 tANI_U8 bssId[6];
3941#endif
Anand Kumar012623a2013-01-11 17:00:00 -08003942} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003943
3944/*---------------------------------------------------------------------------
3945 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3946 *--------------------------------------------------------------------------*/
3947
3948typedef PACKED_PRE struct PACKED_POST
3949{
3950 tBtAmpEventType btAmpEventType;
3951
3952}tBtAmpEventParams, *tpBtAmpEventParams;
3953
3954
3955
3956typedef PACKED_PRE struct PACKED_POST
3957{
3958 tHalMsgHeader header;
3959 tBtAmpEventParams btAmpEventParams;
3960}tBtAmpEventMsg, *tpBtAmpEventMsg;
3961
3962/*---------------------------------------------------------------------------
3963*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3964*--------------------------------------------------------------------------*/
3965
3966typedef PACKED_PRE struct PACKED_POST
3967{
3968 /* success or failure */
3969 tANI_U32 status;
3970}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3971
3972typedef PACKED_PRE struct PACKED_POST
3973{
3974 tHalMsgHeader header;
3975 tBtAmpEventRspParams btAmpEventRspParams;
3976}tBtAmpEventRsp, *tpBtAmpEventRsp;
3977
3978
3979/*---------------------------------------------------------------------------
3980 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3981 *--------------------------------------------------------------------------*/
3982
3983typedef PACKED_PRE struct PACKED_POST
3984{
3985 // Station Index. originates from HAL
3986 tANI_U8 ucSTAId;
3987
3988 // TID for which the transmit queue is being flushed
3989 tANI_U8 ucTid;
3990
3991}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3992
3993
3994typedef PACKED_PRE struct PACKED_POST
3995{
3996 tHalMsgHeader header;
3997 tTlHalFlushAcParams tlHalFlushAcParam;
3998}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3999
4000/*---------------------------------------------------------------------------
4001*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
4002*--------------------------------------------------------------------------*/
4003
4004typedef PACKED_PRE struct PACKED_POST
4005{
4006 // Station Index. originates from HAL
4007 tANI_U8 ucSTAId;
4008
4009 // TID for which the transmit queue is being flushed
4010 tANI_U8 ucTid;
4011
4012 /* success or failure */
4013 tANI_U32 status;
4014}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
4015
4016typedef PACKED_PRE struct PACKED_POST
4017{
4018 tHalMsgHeader header;
4019 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
4020}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
4021
4022/*---------------------------------------------------------------------------
4023 * WLAN_HAL_ENTER_IMPS_REQ
4024 *--------------------------------------------------------------------------*/
4025typedef PACKED_PRE struct PACKED_POST
4026{
4027 tHalMsgHeader header;
4028} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
4029
4030/*---------------------------------------------------------------------------
4031 * WLAN_HAL_EXIT_IMPS_REQ
4032 *--------------------------------------------------------------------------*/
4033typedef PACKED_PRE struct PACKED_POST
4034{
4035 tHalMsgHeader header;
4036} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
4037
4038/*---------------------------------------------------------------------------
4039 * WLAN_HAL_ENTER_BMPS_REQ
4040 *--------------------------------------------------------------------------*/
4041
4042typedef PACKED_PRE struct PACKED_POST
4043{
4044 tANI_U8 bssIdx;
4045 //TBTT value derived from the last beacon
4046#ifndef BUILD_QWPTTSTATIC
4047 tANI_U64 tbtt;
4048#endif
4049 tANI_U8 dtimCount;
4050 //DTIM period given to HAL during association may not be valid,
4051 //if association is based on ProbeRsp instead of beacon.
4052 tANI_U8 dtimPeriod;
4053
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08004054 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07004055 tANI_U32 rssiFilterPeriod;
4056 tANI_U32 numBeaconPerRssiAverage;
4057 tANI_U8 bRssiFilterEnable;
4058
4059} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
4060
4061
4062typedef PACKED_PRE struct PACKED_POST
4063{
4064 tHalMsgHeader header;
4065 tHalEnterBmpsReqParams enterBmpsReq;
4066} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
4067
4068/*---------------------------------------------------------------------------
4069 * WLAN_HAL_EXIT_BMPS_REQ
4070 *--------------------------------------------------------------------------*/
4071typedef PACKED_PRE struct PACKED_POST
4072{
4073 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07004074 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004075} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
4076
4077typedef PACKED_PRE struct PACKED_POST
4078{
4079 tHalMsgHeader header;
4080 tHalExitBmpsReqParams exitBmpsReqParams;
4081} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
4082
4083/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004084 * WLAN_HAL_MISSED_BEACON_IND
4085 *--------------------------------------------------------------------------*/
4086typedef PACKED_PRE struct PACKED_POST
4087{
4088 tANI_U8 bssIdx;
4089} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
4090
4091typedef PACKED_PRE struct PACKED_POST
4092{
4093 tHalMsgHeader header;
4094 tHalMissedBeaconIndParams missedBeaconIndParams;
4095} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
4096
4097/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004098 * WLAN_HAL_ADD_BCN_FILTER_REQ
4099 *--------------------------------------------------------------------------*/
4100/* Beacon Filtering data structures */
4101typedef PACKED_PRE struct PACKED_POST
4102{
4103 tANI_U8 offset;
4104 tANI_U8 value;
4105 tANI_U8 bitMask;
4106 tANI_U8 ref;
4107} tEidByteInfo, *tpEidByteInfo;
4108
Jeff Johnson32d95a32012-09-10 13:15:23 -07004109typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004110{
4111 tANI_U16 capabilityInfo;
4112 tANI_U16 capabilityMask;
4113 tANI_U16 beaconInterval;
4114 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07004115 tANI_U8 bssIdx;
4116 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07004117} tBeaconFilterMsg, *tpBeaconFilterMsg;
4118
4119/* The above structure would be followed by multiple of below mentioned structure */
4120typedef PACKED_PRE struct PACKED_POST
4121{
4122 tANI_U8 elementId;
4123 tANI_U8 checkIePresence;
4124 tEidByteInfo byte;
4125} tBeaconFilterIe, *tpBeaconFilterIe;
4126
4127typedef PACKED_PRE struct PACKED_POST
4128{
4129 tHalMsgHeader header;
4130 tBeaconFilterMsg addBcnFilterParams;
4131} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
4132
4133/*---------------------------------------------------------------------------
4134 * WLAN_HAL_REM_BCN_FILTER_REQ
4135 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004136typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07004137{
4138 tANI_U8 ucIeCount;
4139 tANI_U8 ucRemIeId[1];
4140} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
4141
4142typedef PACKED_PRE struct PACKED_POST
4143{
4144 tHalMsgHeader header;
4145 tRemBeaconFilterMsg remBcnFilterParams;
4146} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
4147
4148/*---------------------------------------------------------------------------
4149 * WLAN_HAL_HOST_OFFLOAD_REQ
4150 *--------------------------------------------------------------------------*/
4151#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
4152#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
4153#define HAL_IPV6_NS_OFFLOAD 2
4154#define HAL_IPV6_ADDR_LEN 16
4155#define HAL_MAC_ADDR_LEN 6
4156#define HAL_OFFLOAD_DISABLE 0
4157#define HAL_OFFLOAD_ENABLE 1
4158#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004159#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07004160#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004161#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07004162
4163typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
4164{
4165 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
4166 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
4167 //Only support 2 possible Network Advertisement IPv6 address
4168 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
4169 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
4170 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
4171 tANI_U8 srcIPv6AddrValid : 1;
4172 tANI_U8 targetIPv6Addr1Valid : 1;
4173 tANI_U8 targetIPv6Addr2Valid : 1;
4174 tANI_U8 reserved1 : 5;
4175 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07004176 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07004177 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07004178} tHalNSOffloadParams;
4179
4180typedef PACKED_PRE struct PACKED_POST
4181{
4182 tANI_U8 offloadType;
4183 tANI_U8 enableOrDisable;
4184 PACKED_PRE union PACKED_POST
4185 {
4186 tANI_U8 hostIpv4Addr [4];
4187 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
4188 } params;
4189} tHalHostOffloadReq, *tpHalHostOffloadReq;
4190
4191typedef PACKED_PRE struct PACKED_POST
4192{
4193 tHalMsgHeader header;
4194 tHalHostOffloadReq hostOffloadParams;
4195 tHalNSOffloadParams nsOffloadParams;
4196} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
4197
Leo Chang397deb72013-08-22 11:33:16 -07004198
4199#ifdef FEATURE_WLAN_LPHB
4200typedef enum
4201{
4202 WIFI_HB_SET_ENABLE = 0x0001,
4203 WIFI_HB_SET_TCP_PARAMS = 0x0002,
4204 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
4205 WIFI_HB_SET_UDP_PARAMS = 0x0004,
4206 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
4207 WIFI_HB_SET_NETWORK_INFO = 0x0006,
4208}tLowPowerHeartBeatCmdType ;
4209
4210#define MAX_FLITER_SIZE 64
4211/*---------------------------------------------------------------------------
4212 *FEATURE_WLAN_LPHB REQ
4213 *--------------------------------------------------------------------------*/
4214typedef PACKED_PRE struct PACKED_POST
4215{
4216 uint32 hostIpv4Addr;
4217 uint32 destIpv4Addr;
4218 uint16 hostPort;
4219 uint16 destPort;
4220 uint16 timeOutSec; // in seconds
4221 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07004222 uint16 timePeriodSec; // in seconds
4223 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07004224} tlowPowerHeartBeatParamsTcpStruct;
4225
4226typedef PACKED_PRE struct PACKED_POST
4227{
4228 uint32 hostIpv4Addr;
4229 uint32 destIpv4Addr;
4230 uint16 hostPort;
4231 uint16 destPort;
4232 uint16 timePeriodSec;// in seconds
4233 uint16 timeOutSec; // in seconds
4234 tSirMacAddr gatewayMacAddr;
4235} tlowPowerHeartBeatParamsUdpStruct;
4236
4237typedef PACKED_PRE struct PACKED_POST
4238{
4239 uint32 offset;
4240 uint32 filterLength;
4241 uint8 filter[MAX_FLITER_SIZE];
4242} tlowPowerHeartBeatFilterStruct;
4243
4244typedef PACKED_PRE struct PACKED_POST
4245{
4246 uint8 heartBeatEnable;
4247 uint8 heartBeatType; //TCP or UDP
4248} tlowPowerHeartBeatEnableStruct;
4249
4250typedef PACKED_PRE struct PACKED_POST
4251{
4252 uint8 dummy;
4253} tlowPowerHeartBeatNetworkInfoStruct;
4254
4255
4256typedef PACKED_PRE struct PACKED_POST
4257{
4258 uint8 sessionIdx;
4259 uint16 lowPowerHeartBeatCmdType;
4260 PACKED_PRE union PACKED_PRO
4261 {
4262 tlowPowerHeartBeatEnableStruct control;
4263 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4264 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4265 tlowPowerHeartBeatParamsUdpStruct udpParams;
4266 tlowPowerHeartBeatNetworkInfoStruct info;
4267 }options;
4268} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4269
4270
4271typedef PACKED_PRE struct PACKED_POST
4272{
4273 tHalMsgHeader header;
4274 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4275} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4276
4277/*---------------------------------------------------------------------------
4278 * FEATURE_WLAN_LPHB RSP
4279 *--------------------------------------------------------------------------*/
4280
4281typedef PACKED_PRE struct PACKED_POST
4282{
4283 /* success or failure */
4284 uint8 sessionIdx;
4285 uint32 status;
4286 uint16 lowPowerHeartBeatCmdType;
4287}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4288
4289typedef PACKED_PRE struct PACKED_POST
4290{
4291 tHalMsgHeader header;
4292 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4293}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4294
4295
4296/*---------------------------------------------------------------------------
4297 * FEATURE_WLAN_LPHB IND
4298 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004299#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4300#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4301
4302#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4303#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004304#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004305
Kumar Anandea78e792013-10-10 23:47:01 -07004306
4307#define WIFI_LPHB_PROTO_UDP 0x01
4308#define WIFI_LPHB_PROTO_TCP 0x02
4309
Leo Chang397deb72013-08-22 11:33:16 -07004310typedef PACKED_PRE struct PACKED_POST
4311{
4312 uint8 bssIdx;
4313 uint8 sessionIdx;
4314 uint8 protocolType; /*TCP or UDP*/
4315 uint8 eventReason;
4316
4317}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4318
4319typedef PACKED_PRE struct PACKED_POST
4320{
4321 tHalMsgHeader header;
4322 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4323}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4324
4325#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004326
4327#ifdef FEATURE_WLAN_BATCH_SCAN
4328
4329/*---------------------------------------------------------------------------
4330 * WLAN_HAL_BATCHSCAN_SET_REQ
4331 *--------------------------------------------------------------------------*/
4332typedef PACKED_PRE struct PACKED_POST
4333{
4334 /* Scan Frerquency - default to 30Sec*/
4335 tANI_U32 scanInterval;
4336 tANI_U32 numScan2Batch;
4337 tANI_U32 bestNetworks;
4338 tANI_U8 rfBand;
4339 tANI_U8 rtt;
4340} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4341
4342typedef PACKED_PRE struct PACKED_POST
4343{
4344 tHalMsgHeader header;
4345 tHalBatchScanSetParams batchScanParams;
4346} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4347
4348/*---------------------------------------------------------------------------
4349 * WLAN_HAL_BATCHSCAN_SET_RSP
4350 *--------------------------------------------------------------------------*/
4351typedef PACKED_PRE struct PACKED_POST
4352{
4353 tANI_U32 supportedMscan;
4354} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4355
4356typedef PACKED_PRE struct PACKED_POST
4357{
4358 tHalMsgHeader header;
4359 tHalBatchScanSetRspParam setBatchScanRspParam;
4360} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4361
4362/*---------------------------------------------------------------------------
4363* WLAN_HAL_BATCHSCAN_STOP_IND
4364*--------------------------------------------------------------------------*/
4365typedef PACKED_PRE struct PACKED_POST
4366{
4367 tANI_U32 param;
4368} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4369
4370typedef PACKED_PRE struct PACKED_POST
4371{
4372 tHalMsgHeader header;
4373 tHalBatchScanStopIndParam param;
4374} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4375
4376/*---------------------------------------------------------------------------
4377* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4378*--------------------------------------------------------------------------*/
4379typedef PACKED_PRE struct PACKED_POST
4380{
4381 tANI_U32 param;
4382} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4383
4384typedef PACKED_PRE struct PACKED_POST
4385{
4386 tHalMsgHeader header;
4387 tHalBatchScanTriggerResultParam param;
4388} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4389
4390/*---------------------------------------------------------------------------
4391 * WLAN_HAL_BATCHSCAN_GET_RSP
4392 *--------------------------------------------------------------------------*/
4393typedef PACKED_PRE struct PACKED_POST
4394{
4395 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004396 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004397 tANI_U8 ch; /* Channel */
c_hpothu97cd5262014-05-22 18:00:28 +05304398 tANI_S8 rssi; /* RSSI or Level */
krunal soni2a4728d2013-09-20 21:56:50 -07004399 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4400 tANI_U32 timestamp;
4401} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4402
4403typedef PACKED_PRE struct PACKED_POST
4404{
4405 tANI_U32 scanId; /* Scan List ID. */
4406 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4407 tANI_U32 numNetworksInScanList;
4408 /* Variable data ptr: Number of AP in Scan List */
4409 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4410 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4411 tANI_U8 scanList[1];
4412} tHalBatchScanList, *tpHalBatchScanList;
4413
4414typedef PACKED_PRE struct PACKED_POST
4415{
4416 tANI_U32 timestamp;
4417 tANI_U32 numScanLists;
4418 boolean isLastResult;
4419 /* Variable Data ptr: Number of Scan Lists*/
4420 /* following isLastResult is data of type tHalBatchScanList
4421 * of sizeof(tHalBatchScanList) * numScanLists*/
4422 tANI_U8 scanResults[1];
4423} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4424
4425typedef PACKED_PRE struct PACKED_POST
4426{
4427 tHalMsgHeader header;
4428 tHalBatchScanResultIndParam resultIndMsgParam;
4429} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4430
4431#endif
4432
Jeff Johnson295189b2012-06-20 16:38:30 -07004433/*---------------------------------------------------------------------------
4434 * WLAN_HAL_KEEP_ALIVE_REQ
4435 *--------------------------------------------------------------------------*/
4436/* Packet Types. */
4437#define HAL_KEEP_ALIVE_NULL_PKT 1
4438#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4439
4440/* Enable or disable keep alive */
4441#define HAL_KEEP_ALIVE_DISABLE 0
4442#define HAL_KEEP_ALIVE_ENABLE 1
4443
4444/* Keep Alive request. */
4445typedef PACKED_PRE struct PACKED_POST
4446{
4447 tANI_U8 packetType;
4448 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004449 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004450 tHalIpv4Addr destIpv4Addr;
4451 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004452 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004453} tHalKeepAliveReq, *tpHalKeepAliveReq;
4454
4455typedef PACKED_PRE struct PACKED_POST
4456{
4457 tHalMsgHeader header;
4458 tHalKeepAliveReq KeepAliveParams;
4459} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4460
4461/*---------------------------------------------------------------------------
4462 * WLAN_HAL_SET_RSSI_THRESH_REQ
4463 *--------------------------------------------------------------------------*/
4464typedef PACKED_PRE struct PACKED_POST
4465{
4466 tANI_S8 ucRssiThreshold1 : 8;
4467 tANI_S8 ucRssiThreshold2 : 8;
4468 tANI_S8 ucRssiThreshold3 : 8;
4469 tANI_U8 bRssiThres1PosNotify : 1;
4470 tANI_U8 bRssiThres1NegNotify : 1;
4471 tANI_U8 bRssiThres2PosNotify : 1;
4472 tANI_U8 bRssiThres2NegNotify : 1;
4473 tANI_U8 bRssiThres3PosNotify : 1;
4474 tANI_U8 bRssiThres3NegNotify : 1;
4475 tANI_U8 bReserved10 : 2;
4476} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004477
Jeff Johnson295189b2012-06-20 16:38:30 -07004478typedef PACKED_PRE struct PACKED_POST
4479{
4480 tHalMsgHeader header;
4481 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004482} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004483
4484/*---------------------------------------------------------------------------
4485 * WLAN_HAL_ENTER_UAPSD_REQ
4486 *--------------------------------------------------------------------------*/
4487typedef PACKED_PRE struct PACKED_POST
4488{
4489 tANI_U8 bkDeliveryEnabled:1;
4490 tANI_U8 beDeliveryEnabled:1;
4491 tANI_U8 viDeliveryEnabled:1;
4492 tANI_U8 voDeliveryEnabled:1;
4493 tANI_U8 bkTriggerEnabled:1;
4494 tANI_U8 beTriggerEnabled:1;
4495 tANI_U8 viTriggerEnabled:1;
4496 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004497 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004498} tUapsdReqParams, *tpUapsdReqParams;
4499
4500typedef PACKED_PRE struct PACKED_POST
4501{
4502 tHalMsgHeader header;
4503 tUapsdReqParams enterUapsdParams;
4504} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4505
4506/*---------------------------------------------------------------------------
4507 * WLAN_HAL_EXIT_UAPSD_REQ
4508 *--------------------------------------------------------------------------*/
4509typedef PACKED_PRE struct PACKED_POST
4510{
4511 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004512 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004513} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4514
Kumar Anandea78e792013-10-10 23:47:01 -07004515#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4516#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004517/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004518 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4519 *--------------------------------------------------------------------------*/
4520typedef PACKED_PRE struct PACKED_POST
4521{
4522 tANI_U32 selfStaIdx:8;
4523 tANI_U32 ucPtrnId:8; // Pattern ID
4524 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4525 tANI_U32 uPtrnIntervalMs; // In msec
4526 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4527} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4528
4529typedef PACKED_PRE struct PACKED_POST
4530{
4531 tHalMsgHeader header;
4532 tHalAddPeriodicTxPtrn ptrnParams;
4533} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4534
4535/*---------------------------------------------------------------------------
4536 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4537 *--------------------------------------------------------------------------*/
4538typedef PACKED_PRE struct PACKED_POST
4539{
4540 tANI_U32 selfStaIdx:8;
4541 tANI_U32 rsvd:24;
4542 /* Bitmap of pattern IDs that needs to be deleted */
4543 tANI_U32 uPatternIdBitmap;
4544} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4545
4546typedef PACKED_PRE struct PACKED_POST
4547{
4548 tHalMsgHeader header;
4549 tHalDelPeriodicTxPtrn ptrnParams;
4550} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4551
4552/*---------------------------------------------------------------------------
4553 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4554 *--------------------------------------------------------------------------*/
4555typedef PACKED_PRE struct PACKED_POST
4556{
4557 /* Type of Failure indication */
4558 tANI_U32 bssIdx:8;
4559 tANI_U32 selfStaIdx:8;
4560 tANI_U32 rsvd:16;
4561 tANI_U32 status;
4562 tANI_U32 patternIdBitmap;
4563} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4564
4565typedef PACKED_PRE struct PACKED_POST
4566{
4567 tHalMsgHeader header;
4568 tHalPeriodicTxPtrnFwInd fwIndParams;
4569} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4570
4571/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004572 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4573 *--------------------------------------------------------------------------*/
4574#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4575#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4576
4577typedef PACKED_PRE struct PACKED_POST
4578{
4579 tANI_U8 ucPatternId; // Pattern ID
4580 // Pattern byte offset from beginning of the 802.11 packet to start of the
4581 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07004582 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004583 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4584 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4585 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4586 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4587 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4588 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004589 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004590} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4591
4592typedef PACKED_PRE struct PACKED_POST
4593{
4594 tHalMsgHeader header;
4595 tHalWowlAddBcastPtrn ptrnParams;
4596} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004597
Jeff Johnsone7245742012-09-05 17:12:55 -07004598
4599
Jeff Johnson295189b2012-06-20 16:38:30 -07004600/*---------------------------------------------------------------------------
4601 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4602 *--------------------------------------------------------------------------*/
4603typedef PACKED_PRE struct PACKED_POST
4604{
4605 /* Pattern ID of the wakeup pattern to be deleted */
4606 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004607 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004608} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4609
4610typedef PACKED_PRE struct PACKED_POST
4611{
4612 tHalMsgHeader header;
4613 tHalWowlDelBcastPtrn ptrnParams;
4614} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4615
4616/*---------------------------------------------------------------------------
4617 * WLAN_HAL_ENTER_WOWL_REQ
4618 *--------------------------------------------------------------------------*/
4619typedef PACKED_PRE struct PACKED_POST
4620{
4621 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004622 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004623
4624 /* Magic pattern */
4625 tSirMacAddr magicPtrn;
4626
Jeff Johnson32d95a32012-09-10 13:15:23 -07004627 /* Enables/disables packet pattern filtering in firmware.
4628 Enabling this flag enables broadcast pattern matching
4629 in Firmware. If unicast pattern matching is also desired,
4630 ucUcastPatternFilteringEnable flag must be set tot true
4631 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004632 */
4633 tANI_U8 ucPatternFilteringEnable;
4634
Jeff Johnson32d95a32012-09-10 13:15:23 -07004635 /* Enables/disables unicast packet pattern filtering.
4636 This flag specifies whether we want to do pattern match
4637 on unicast packets as well and not just broadcast packets.
4638 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004639 (main controlling flag) is set to false
4640 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004641 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004642
Jeff Johnson32d95a32012-09-10 13:15:23 -07004643 /* This configuration is valid only when magicPktEnable=1.
4644 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004645 * Channel Switch Action Frame.
4646 */
4647 tANI_U8 ucWowChnlSwitchRcv;
4648
Jeff Johnson32d95a32012-09-10 13:15:23 -07004649 /* This configuration is valid only when magicPktEnable=1.
4650 * It requests hardware to wake up when it receives the
4651 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004652 */
4653 tANI_U8 ucWowDeauthRcv;
4654
Jeff Johnson32d95a32012-09-10 13:15:23 -07004655 /* This configuration is valid only when magicPktEnable=1.
4656 * It requests hardware to wake up when it receives the
4657 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004658 */
4659 tANI_U8 ucWowDisassocRcv;
4660
Jeff Johnson32d95a32012-09-10 13:15:23 -07004661 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004662 * It requests hardware to wake up when it has missed
4663 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07004664 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004665 */
4666 tANI_U8 ucWowMaxMissedBeacons;
4667
Jeff Johnson32d95a32012-09-10 13:15:23 -07004668 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004669 * This is a timeout value in units of microsec. It requests
4670 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07004671 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004672 */
4673 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004674
Jeff Johnson295189b2012-06-20 16:38:30 -07004675 /* This configuration directs the WoW packet filtering to look for EAP-ID
4676 * requests embedded in EAPOL frames and use this as a wake source.
4677 */
4678 tANI_U8 ucWoWEAPIDRequestEnable;
4679
4680 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4681 * requests and use this as a wake source.
4682 */
4683 tANI_U8 ucWoWEAPOL4WayEnable;
4684
4685 /* This configuration allows a host wakeup on an network scan offload match.
4686 */
4687 tANI_U8 ucWowNetScanOffloadMatch;
4688
4689 /* This configuration allows a host wakeup on any GTK rekeying error.
4690 */
4691 tANI_U8 ucWowGTKRekeyError;
4692
4693 /* This configuration allows a host wakeup on BSS connection loss.
4694 */
4695 tANI_U8 ucWoWBSSConnLoss;
4696
Jeff Johnsone7245742012-09-05 17:12:55 -07004697 tANI_U8 bssIdx;
4698
Jeff Johnson295189b2012-06-20 16:38:30 -07004699} tHalWowlEnterParams, *tpHalWowlEnterParams;
4700
4701typedef PACKED_PRE struct PACKED_POST
4702{
4703 tHalMsgHeader header;
4704 tHalWowlEnterParams enterWowlParams;
4705} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4706
4707/*---------------------------------------------------------------------------
4708 * WLAN_HAL_EXIT_WOWL_REQ
4709 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004710
Jeff Johnson295189b2012-06-20 16:38:30 -07004711typedef PACKED_PRE struct PACKED_POST
4712{
Jeff Johnsone7245742012-09-05 17:12:55 -07004713 tANI_U8 bssIdx;
4714
4715} tHalWowlExitParams, *tpHalWowlExitParams;
4716
4717typedef PACKED_PRE struct PACKED_POST
4718{
4719 tHalMsgHeader header;
4720 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004721} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4722
4723/*---------------------------------------------------------------------------
4724 * WLAN_HAL_GET_RSSI_REQ
4725 *--------------------------------------------------------------------------*/
4726typedef PACKED_PRE struct PACKED_POST
4727{
4728 tHalMsgHeader header;
4729} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4730
Anand Kumar012623a2013-01-11 17:00:00 -08004731typedef PACKED_PRE struct PACKED_POST
4732{
4733 /* Valid STA Idx for per STA stats request */
4734 tANI_U32 staId;
4735
4736}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4737
4738
4739/*---------------------------------------------------------------------------
4740 * WLAN_HAL_GET_ROAM_RSSI_REQ
4741 *--------------------------------------------------------------------------*/
4742typedef PACKED_PRE struct PACKED_POST
4743{
4744 tHalMsgHeader header;
4745 tHalRoamRssiReqParams roamRssiReqParams;
4746} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4747
4748
Jeff Johnson295189b2012-06-20 16:38:30 -07004749/*---------------------------------------------------------------------------
4750 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4751 *--------------------------------------------------------------------------*/
4752typedef PACKED_PRE struct PACKED_POST {
4753 tANI_U8 staidx; // STA index
4754 tANI_U8 ac; // Access Category
4755 tANI_U8 up; // User Priority
4756 tANI_U32 srvInterval; // Service Interval
4757 tANI_U32 susInterval; // Suspend Interval
4758 tANI_U32 delayInterval; // Delay Interval
4759} tUapsdInfo, tpUapsdInfo;
4760
4761typedef PACKED_PRE struct PACKED_POST
4762{
4763 tHalMsgHeader header;
4764 tUapsdInfo enableUapsdAcParams;
4765} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4766
4767/*---------------------------------------------------------------------------
4768 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4769 *--------------------------------------------------------------------------*/
4770typedef PACKED_PRE struct PACKED_POST {
4771 tANI_U8 setMcstBcstFilterSetting;
4772 tANI_U8 setMcstBcstFilter;
4773} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4774
4775typedef PACKED_PRE struct PACKED_POST
4776{
4777 tHalMsgHeader header;
4778 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4779} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4780
4781/*---------------------------------------------------------------------------
4782 * WLAN_HAL_ENTER_IMPS_RSP
4783 *--------------------------------------------------------------------------*/
4784typedef PACKED_PRE struct PACKED_POST
4785{
4786 /* success or failure */
4787 tANI_U32 status;
4788} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4789
4790typedef PACKED_PRE struct PACKED_POST
4791{
4792 tHalMsgHeader header;
4793 tHalEnterImpsRspParams enterImpsRspParams;
4794} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4795
4796/*---------------------------------------------------------------------------
4797 * WLAN_HAL_EXIT_IMPS_RSP
4798 *--------------------------------------------------------------------------*/
4799typedef PACKED_PRE struct PACKED_POST
4800{
4801 /* success or failure */
4802 tANI_U32 status;
4803} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4804
4805typedef PACKED_PRE struct PACKED_POST
4806{
4807 tHalMsgHeader header;
4808 tHalExitImpsRspParams exitImpsRspParams;
4809} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4810
4811/*---------------------------------------------------------------------------
4812 * WLAN_HAL_ENTER_BMPS_RSP
4813 *--------------------------------------------------------------------------*/
4814typedef PACKED_PRE struct PACKED_POST
4815{
4816 /* success or failure */
4817 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004818 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004819} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4820
4821typedef PACKED_PRE struct PACKED_POST
4822{
4823 tHalMsgHeader header;
4824 tHalEnterBmpsRspParams enterBmpsRspParams;
4825} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4826
4827/*---------------------------------------------------------------------------
4828 * WLAN_HAL_EXIT_BMPS_RSP
4829 *--------------------------------------------------------------------------*/
4830typedef PACKED_PRE struct PACKED_POST
4831{
4832 /* success or failure */
4833 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004834 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004835} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4836
4837typedef PACKED_PRE struct PACKED_POST
4838{
4839 tHalMsgHeader header;
4840 tHalExitBmpsRspParams exitBmpsRspParams;
4841} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4842
4843/*---------------------------------------------------------------------------
4844 * WLAN_HAL_ENTER_UAPSD_RSP
4845 *--------------------------------------------------------------------------*/
4846typedef PACKED_PRE struct PACKED_POST
4847{
4848 /* success or failure */
4849 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004850 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004851}tUapsdRspParams, *tpUapsdRspParams;
4852
4853typedef PACKED_PRE struct PACKED_POST
4854{
4855 tHalMsgHeader header;
4856 tUapsdRspParams enterUapsdRspParams;
4857} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4858
4859/*---------------------------------------------------------------------------
4860 * WLAN_HAL_EXIT_UAPSD_RSP
4861 *--------------------------------------------------------------------------*/
4862typedef PACKED_PRE struct PACKED_POST
4863{
4864 /* success or failure */
4865 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004866 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004867} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4868
4869typedef PACKED_PRE struct PACKED_POST
4870{
4871 tHalMsgHeader header;
4872 tHalExitUapsdRspParams exitUapsdRspParams;
4873} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4874
4875/*---------------------------------------------------------------------------
4876 * WLAN_HAL_RSSI_NOTIFICATION_IND
4877 *--------------------------------------------------------------------------*/
4878typedef PACKED_PRE struct PACKED_POST
4879{
4880 tANI_U32 bRssiThres1PosCross : 1;
4881 tANI_U32 bRssiThres1NegCross : 1;
4882 tANI_U32 bRssiThres2PosCross : 1;
4883 tANI_U32 bRssiThres2NegCross : 1;
4884 tANI_U32 bRssiThres3PosCross : 1;
4885 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004886 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004887 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07004888 tANI_U32 isBTCoexCompromise : 1;
4889 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004890 tANI_S8 refRssiThreshold1;
4891 tANI_S8 refRssiThreshold2;
4892 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07004893} tHalRSSINotification, *tpHalRSSINotification;
4894
4895typedef PACKED_PRE struct PACKED_POST
4896{
4897 tHalMsgHeader header;
4898 tHalRSSINotification rssiNotificationParams;
4899} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4900
4901/*---------------------------------------------------------------------------
4902 * WLAN_HAL_GET_RSSI_RSP
4903 *--------------------------------------------------------------------------*/
4904typedef PACKED_PRE struct PACKED_POST
4905{
4906 /* success or failure */
4907 tANI_U32 status;
4908 tANI_S8 rssi;
4909} tHalGetRssiParams, *tpHalGetRspParams;
4910
4911typedef PACKED_PRE struct PACKED_POST
4912{
4913 tHalMsgHeader header;
4914 tHalGetRssiParams rssiRspParams;
4915} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4916
4917/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004918 * WLAN_HAL_GET_ROAM_RSSI_RSP
4919 *--------------------------------------------------------------------------*/
4920typedef PACKED_PRE struct PACKED_POST
4921{
4922 /* success or failure */
4923 tANI_U32 status;
4924
4925 tANI_U8 staId;
4926 tANI_S8 rssi;
4927} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4928
4929typedef PACKED_PRE struct PACKED_POST
4930{
4931 tHalMsgHeader header;
4932 tHalGetRoamRssiParams roamRssiRspParams;
4933} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4934
4935/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004936 * WLAN_HAL_ENTER_WOWL_RSP
4937 *--------------------------------------------------------------------------*/
4938typedef PACKED_PRE struct PACKED_POST
4939{
4940 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004941 tANI_U32 status;
4942 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004943} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4944
4945typedef PACKED_PRE struct PACKED_POST
4946{
4947 tHalMsgHeader header;
4948 tHalEnterWowlRspParams enterWowlRspParams;
4949} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4950
4951/*---------------------------------------------------------------------------
4952 * WLAN_HAL_EXIT_WOWL_RSP
4953 *--------------------------------------------------------------------------*/
4954typedef PACKED_PRE struct PACKED_POST
4955{
4956 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004957 tANI_U32 status;
4958 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004959} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4960
4961typedef PACKED_PRE struct PACKED_POST
4962{
4963 tHalMsgHeader header;
4964 tHalExitWowlRspParams exitWowlRspParams;
4965} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4966
4967/*---------------------------------------------------------------------------
4968 * WLAN_HAL_ADD_BCN_FILTER_RSP
4969 *--------------------------------------------------------------------------*/
4970typedef PACKED_PRE struct PACKED_POST
4971{
4972 /* success or failure */
4973 tANI_U32 status;
4974} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4975
4976typedef PACKED_PRE struct PACKED_POST
4977{
4978 tHalMsgHeader header;
4979 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4980} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4981
4982/*---------------------------------------------------------------------------
4983 * WLAN_HAL_REM_BCN_FILTER_RSP
4984 *--------------------------------------------------------------------------*/
4985typedef PACKED_PRE struct PACKED_POST
4986{
4987 /* success or failure */
4988 tANI_U32 status;
4989} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4990
4991typedef PACKED_PRE struct PACKED_POST
4992{
4993 tHalMsgHeader header;
4994 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4995} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4996
4997/*---------------------------------------------------------------------------
4998 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4999 *--------------------------------------------------------------------------*/
5000typedef PACKED_PRE struct PACKED_POST
5001{
5002 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005003 tANI_U32 status;
5004 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005005} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
5006
5007typedef PACKED_PRE struct PACKED_POST
5008{
5009 tHalMsgHeader header;
5010 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
5011} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
5012
5013/*---------------------------------------------------------------------------
5014 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
5015 *--------------------------------------------------------------------------*/
5016typedef PACKED_PRE struct PACKED_POST
5017{
5018 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005019 tANI_U32 status;
5020 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005021} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
5022
5023typedef PACKED_PRE struct PACKED_POST
5024{
5025 tHalMsgHeader header;
5026 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
5027} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
5028
5029/*---------------------------------------------------------------------------
5030 * WLAN_HAL_HOST_OFFLOAD_RSP
5031 *--------------------------------------------------------------------------*/
5032typedef PACKED_PRE struct PACKED_POST
5033{
5034 /* success or failure */
5035 tANI_U32 status;
5036} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
5037
5038typedef PACKED_PRE struct PACKED_POST
5039{
5040 tHalMsgHeader header;
5041 tHalHostOffloadRspParams hostOffloadRspParams;
5042} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
5043
5044/*---------------------------------------------------------------------------
5045 * WLAN_HAL_KEEP_ALIVE_RSP
5046 *--------------------------------------------------------------------------*/
5047typedef PACKED_PRE struct PACKED_POST
5048{
5049 /* success or failure */
5050 tANI_U32 status;
5051} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
5052
5053typedef PACKED_PRE struct PACKED_POST
5054{
5055 tHalMsgHeader header;
5056 tHalKeepAliveRspParams keepAliveRspParams;
5057} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
5058
5059/*---------------------------------------------------------------------------
5060 * WLAN_HAL_SET_RSSI_THRESH_RSP
5061 *--------------------------------------------------------------------------*/
5062typedef PACKED_PRE struct PACKED_POST
5063{
5064 /* success or failure */
5065 tANI_U32 status;
5066} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
5067
5068typedef PACKED_PRE struct PACKED_POST
5069{
5070 tHalMsgHeader header;
5071 tHalSetRssiThreshRspParams setRssiThreshRspParams;
5072} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
5073
5074/*---------------------------------------------------------------------------
5075 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
5076 *--------------------------------------------------------------------------*/
5077typedef PACKED_PRE struct PACKED_POST
5078{
5079 /* success or failure */
5080 tANI_U32 status;
5081} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
5082
5083typedef PACKED_PRE struct PACKED_POST
5084{
5085 tHalMsgHeader header;
5086 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
5087} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
5088
5089/*---------------------------------------------------------------------------
5090 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
5091 *--------------------------------------------------------------------------*/
5092typedef PACKED_PRE struct PACKED_POST
5093{
5094 /* success or failure */
5095 tANI_U32 status;
5096} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
5097
5098typedef PACKED_PRE struct PACKED_POST
5099{
5100 tHalMsgHeader header;
5101 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
5102} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
5103
5104/*---------------------------------------------------------------------------
5105 *WLAN_HAL_SET_MAX_TX_POWER_REQ
5106 *--------------------------------------------------------------------------*/
5107
5108typedef PACKED_PRE struct PACKED_POST
5109{
5110 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
5111 //the request has power constraints, this should be applied only to that session
5112 tSirMacAddr selfStaMacAddr;
5113 //In request,
5114 //power == MaxTx power to be used.
5115 tPowerdBm power;
5116
5117}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
5118
5119
5120typedef PACKED_PRE struct PACKED_POST
5121{
5122 tHalMsgHeader header;
5123 tSetMaxTxPwrParams setMaxTxPwrParams;
5124}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
5125
5126/*---------------------------------------------------------------------------
5127*WLAN_HAL_SET_MAX_TX_POWER_RSP
5128*--------------------------------------------------------------------------*/
5129
5130typedef PACKED_PRE struct PACKED_POST
5131{
5132 //power == tx power used for management frames.
5133 tPowerdBm power;
5134
5135 /* success or failure */
5136 tANI_U32 status;
5137}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
5138
5139typedef PACKED_PRE struct PACKED_POST
5140{
5141 tHalMsgHeader header;
5142 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
5143}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
5144
Kumar Anandea78e792013-10-10 23:47:01 -07005145
Jeff Johnson295189b2012-06-20 16:38:30 -07005146/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07005147 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
5148 *--------------------------------------------------------------------------*/
5149
5150/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
5151typedef enum
5152{
5153 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
5154 // For 2.4GHz or 5GHz bands
5155 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
5156 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
5157 // End of valid enums
5158 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5159}tHalSetMaxTxPwrBandInfo;
5160
5161typedef PACKED_PRE struct PACKED_POST
5162{
5163 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07005164 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07005165}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
5166
Kumar Anandea78e792013-10-10 23:47:01 -07005167
Arif Hussain36fda162013-08-30 14:46:57 -07005168typedef PACKED_PRE struct PACKED_POST
5169{
5170 tHalMsgHeader header;
5171 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
5172}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
5173
5174/*---------------------------------------------------------------------------
5175*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
5176*--------------------------------------------------------------------------*/
5177
5178typedef PACKED_PRE struct PACKED_POST
5179{
5180 //power == tx power used for management frames.
5181 tPowerdBm power;
5182
5183 /* success or failure */
5184 tANI_U32 status;
5185}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
5186
5187typedef PACKED_PRE struct PACKED_POST
5188{
5189 tHalMsgHeader header;
5190 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
5191}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
5192
5193/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07005194 *WLAN_HAL_SET_TX_POWER_REQ
5195 *--------------------------------------------------------------------------*/
5196
5197typedef PACKED_PRE struct PACKED_POST
5198{
5199 /* TX Power in milli watts */
5200 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07005201 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005202}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
5203
5204
5205typedef PACKED_PRE struct PACKED_POST
5206{
5207 tHalMsgHeader header;
5208 tSetTxPwrReqParams setTxPwrReqParams;
5209}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
5210
5211/*---------------------------------------------------------------------------
5212*WLAN_HAL_SET_TX_POWER_RSP
5213*--------------------------------------------------------------------------*/
5214
5215typedef PACKED_PRE struct PACKED_POST
5216{
5217 /* success or failure */
5218 tANI_U32 status;
5219}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
5220
5221typedef PACKED_PRE struct PACKED_POST
5222{
5223 tHalMsgHeader header;
5224 tSetTxPwrRspParams setTxPwrRspParams;
5225}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
5226
5227/*---------------------------------------------------------------------------
5228 *WLAN_HAL_GET_TX_POWER_REQ
5229 *--------------------------------------------------------------------------*/
5230
5231typedef PACKED_PRE struct PACKED_POST
5232{
5233 tANI_U8 staId;
5234}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5235
5236typedef PACKED_PRE struct PACKED_POST
5237{
5238 tHalMsgHeader header;
5239 tGetTxPwrReqParams getTxPwrReqParams;
5240}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5241
5242/*---------------------------------------------------------------------------
5243*WLAN_HAL_GET_TX_POWER_RSP
5244*--------------------------------------------------------------------------*/
5245
5246typedef PACKED_PRE struct PACKED_POST
5247{
5248 /* success or failure */
5249 tANI_U32 status;
5250
5251 /* TX Power in milli watts */
5252 tANI_U32 txPower;
5253}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5254
5255typedef PACKED_PRE struct PACKED_POST
5256{
5257 tHalMsgHeader header;
5258 tGetTxPwrRspParams getTxPwrRspParams;
5259}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5260
5261#ifdef WLAN_FEATURE_P2P
5262/*---------------------------------------------------------------------------
5263 *WLAN_HAL_SET_P2P_GONOA_REQ
5264 *--------------------------------------------------------------------------*/
5265
5266typedef PACKED_PRE struct PACKED_POST
5267{
5268 tANI_U8 opp_ps;
5269 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005270 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005271 tANI_U32 duration;
5272 tANI_U32 interval;
5273 tANI_U32 single_noa_duration;
5274 tANI_U8 psSelection;
5275}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5276
5277
5278typedef PACKED_PRE struct PACKED_POST
5279{
5280 tHalMsgHeader header;
5281 tSetP2PGONOAParams setP2PGONOAParams;
5282}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5283
5284/*---------------------------------------------------------------------------
5285*WLAN_HAL_SET_P2P_GONOA_RSP
5286*--------------------------------------------------------------------------*/
5287
5288typedef PACKED_PRE struct PACKED_POST
5289{
5290 /* success or failure */
5291 tANI_U32 status;
5292}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5293
5294typedef PACKED_PRE struct PACKED_POST
5295{
5296 tHalMsgHeader header;
5297 tSetP2PGONOARspParams setP2PGONOARspParams;
5298}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5299#endif
5300
5301/*---------------------------------------------------------------------------
5302 *WLAN_HAL_ADD_SELF_STA_REQ
5303 *--------------------------------------------------------------------------*/
5304
5305typedef PACKED_PRE struct PACKED_POST
5306{
5307 tSirMacAddr selfMacAddr;
5308 tANI_U32 status;
5309}tAddStaSelfParams, *tpAddStaSelfParams;
5310
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005311typedef PACKED_PRE struct PACKED_POST
5312{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005313 tHalMsgHeader header;
5314 tAddStaSelfParams addStaSelfParams;
5315}tAddStaSelfReq, *tpAddStaSelfReq;
5316
5317/* This V1 structure carries additionally the IFACE PERSONA
5318 of the interface as compared to the legacy control
5319 message */
5320typedef PACKED_PRE struct PACKED_POST
5321{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005322 tSirMacAddr selfMacAddr;
5323 tANI_U32 status;
5324 tHalIfacePersona iface_persona;
5325}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005326
5327typedef PACKED_PRE struct PACKED_POST
5328{
5329 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005330 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005331}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005332
5333/*---------------------------------------------------------------------------
5334*WLAN_HAL_ADD_SELF_STA_RSP
5335*--------------------------------------------------------------------------*/
5336
5337typedef PACKED_PRE struct PACKED_POST
5338{
5339 /* success or failure */
5340 tANI_U32 status;
5341
5342 /*Self STA Index */
5343 tANI_U8 selfStaIdx;
5344
5345 /* DPU Index (IGTK, PTK, GTK all same) */
5346 tANI_U8 dpuIdx;
5347
5348 /* DPU Signature */
5349 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005350
Jeff Johnson295189b2012-06-20 16:38:30 -07005351}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5352
5353typedef PACKED_PRE struct PACKED_POST
5354{
5355 tHalMsgHeader header;
5356 tAddStaSelfRspParams addStaSelfRspParams;
5357}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5358
5359
5360/*---------------------------------------------------------------------------
5361 WLAN_HAL_DEL_STA_SELF_REQ
5362---------------------------------------------------------------------------*/
5363
5364typedef PACKED_PRE struct PACKED_POST
5365{
5366 tSirMacAddr selfMacAddr;
5367
5368}tDelStaSelfParams, *tpDelStaSelfParams;
5369
5370typedef PACKED_PRE struct PACKED_POST
5371{
5372 tHalMsgHeader header;
5373 tDelStaSelfParams delStaSelfParams;
5374} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5375
5376
5377/*---------------------------------------------------------------------------
5378 WLAN_HAL_DEL_STA_SELF_RSP
5379---------------------------------------------------------------------------*/
5380
5381typedef PACKED_PRE struct PACKED_POST
5382{
5383 /*success or failure */
5384 tANI_U32 status;
5385
5386 tSirMacAddr selfMacAddr;
5387}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5388
5389typedef PACKED_PRE struct PACKED_POST
5390{
5391 tHalMsgHeader header;
5392 tDelStaSelfRspParams delStaSelfRspParams;
5393} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5394
5395
5396#ifdef WLAN_FEATURE_VOWIFI_11R
5397
5398/*---------------------------------------------------------------------------
5399 *WLAN_HAL_AGGR_ADD_TS_REQ
5400 *--------------------------------------------------------------------------*/
5401
5402typedef PACKED_PRE struct PACKED_POST
5403{
5404 /* Station Index */
5405 tANI_U16 staIdx;
5406
5407 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5408 /* This will carry the bitmap with the bit positions representing different AC.s*/
5409 tANI_U16 tspecIdx;
5410
5411 /* Tspec info per AC To program TPE with required parameters */
5412 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5413
5414 /* U-APSD Flags: 1b per AC. Encoded as follows:
5415 b7 b6 b5 b4 b3 b2 b1 b0 =
5416 X X X X BE BK VI VO */
5417 tANI_U8 uAPSD;
5418
5419 /* These parameters are for all the access categories */
5420 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5421 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5422 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5423
5424}tAggrAddTsParams, *tpAggrAddTsParams;
5425
5426
5427typedef PACKED_PRE struct PACKED_POST
5428{
5429 tHalMsgHeader header;
5430 tAggrAddTsParams aggrAddTsParam;
5431}tAggrAddTsReq, *tpAggrAddTsReq;
5432
5433/*---------------------------------------------------------------------------
5434*WLAN_HAL_AGGR_ADD_TS_RSP
5435*--------------------------------------------------------------------------*/
5436
5437typedef PACKED_PRE struct PACKED_POST
5438{
5439 /* success or failure */
5440 tANI_U32 status0;
5441 /* FIXME PRIMA for future use for 11R */
5442 tANI_U32 status1;
5443}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5444
5445typedef PACKED_PRE struct PACKED_POST
5446{
5447 tHalMsgHeader header;
5448 tAggrAddTsRspParams aggrAddTsRspParam;
5449}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5450
5451#endif
5452
5453/*---------------------------------------------------------------------------
5454 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5455 *--------------------------------------------------------------------------*/
5456typedef PACKED_PRE struct PACKED_POST
5457{
5458 tANI_U8 isAppsCpuAwake;
5459} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5460
5461typedef PACKED_PRE struct PACKED_POST
5462{
5463 tHalMsgHeader header;
5464 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5465} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5466
5467/*---------------------------------------------------------------------------
5468 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5469 *--------------------------------------------------------------------------*/
5470typedef PACKED_PRE struct PACKED_POST
5471{
5472 /* success or failure */
5473 tANI_U32 status;
5474} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5475
5476typedef PACKED_PRE struct PACKED_POST
5477{
5478 tHalMsgHeader header;
5479 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5480} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5481/*---------------------------------------------------------------------------
5482 * WLAN_HAL_DUMP_COMMAND_REQ
5483 *--------------------------------------------------------------------------*/
5484
5485typedef PACKED_PRE struct PACKED_POST
5486{
5487 tANI_U32 argument1;
5488 tANI_U32 argument2;
5489 tANI_U32 argument3;
5490 tANI_U32 argument4;
5491 tANI_U32 argument5;
5492
5493}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5494
5495typedef PACKED_PRE struct PACKED_POST
5496{
5497 tHalMsgHeader header;
5498 tHalDumpCmdReqParams dumpCmdReqParams;
5499} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5500
5501/*---------------------------------------------------------------------------
5502 * WLAN_HAL_DUMP_COMMAND_RSP
5503 *--------------------------------------------------------------------------*/
5504
5505typedef PACKED_PRE struct PACKED_POST
5506{
5507 /* success or failure */
5508 tANI_U32 status;
5509 /*Length of the responce message*/
5510 tANI_U32 rspLength;
5511 /*FiXME: Currently considering the the responce will be less than 100bytes */
5512 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07005513
Jeff Johnson295189b2012-06-20 16:38:30 -07005514} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5515
5516typedef PACKED_PRE struct PACKED_POST
5517{
5518 tHalMsgHeader header;
5519 tHalDumpCmdRspParams dumpCmdRspParams;
5520} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5521
5522/*---------------------------------------------------------------------------
5523 *WLAN_HAL_COEX_IND
5524 *-------------------------------------------------------------------------*/
5525#define WLAN_COEX_IND_DATA_SIZE (4)
5526#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5527#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005528#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5529#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005530#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5531#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07005532
5533typedef PACKED_PRE struct PACKED_POST
5534{
5535 /*Coex Indication Type*/
5536 tANI_U32 coexIndType;
5537
5538 /*Coex Indication Data*/
5539 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5540}tCoexIndParams,*tpCoexIndParams;
5541
5542typedef PACKED_PRE struct PACKED_POST
5543{
5544 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005545 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005546}tCoexIndMsg, *tpCoexIndMsg;
5547
5548/*---------------------------------------------------------------------------
5549 *WLAN_HAL_OTA_TX_COMPL_IND
5550 *-------------------------------------------------------------------------*/
5551
5552typedef PACKED_PRE struct PACKED_POST
5553{
5554 /*Tx Complete Indication Success or Failure*/
5555 tANI_U32 status;
5556}tTxComplParams,*tpTxComplParams;
5557
5558typedef PACKED_PRE struct PACKED_POST
5559{
5560 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005561 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005562}tTxComplIndMsg, *tpTxComplIndMsg;
5563
5564/*---------------------------------------------------------------------------
5565 * WLAN_HAL_HOST_SUSPEND_IND
5566 *-------------------------------------------------------------------------*/
5567
5568typedef PACKED_PRE struct PACKED_POST
5569{
5570 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005571 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005572}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5573
5574typedef PACKED_PRE struct PACKED_POST
5575{
5576 tHalMsgHeader header;
5577 tHalWlanHostSuspendIndParam suspendIndParams;
5578}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5579
5580/*---------------------------------------------------------------------------
5581 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5582 *-------------------------------------------------------------------------*/
5583
5584typedef PACKED_PRE struct PACKED_POST
5585{
5586 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005587 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005588}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5589
5590typedef PACKED_PRE struct PACKED_POST
5591{
5592 tHalMsgHeader header;
5593 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5594}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5595
5596#ifdef WLAN_FEATURE_P2P
5597/*---------------------------------------------------------------------------
5598 *WLAN_HAL_NOA_ATTR_IND
5599 *-------------------------------------------------------------------------*/
5600
5601typedef PACKED_PRE struct PACKED_POST
5602{
5603 tANI_U8 index ;
5604 tANI_U8 oppPsFlag ;
5605 tANI_U16 ctWin ;
5606
5607 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005608 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005609 tANI_U32 uNoa1Duration;
5610 tANI_U32 uNoa1Interval;
5611 tANI_U32 uNoa1StartTime;
5612
5613 tANI_U16 uNoa2IntervalCnt;
5614 tANI_U16 rsvd2;
5615 tANI_U32 uNoa2Duration;
5616 tANI_U32 uNoa2Interval;
5617 tANI_U32 uNoa2StartTime;
5618
5619 tANI_U32 status;
5620}tNoaAttrIndParams, *tpNoaAttrIndParams;
5621
5622typedef PACKED_PRE struct PACKED_POST
5623{
5624 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005625 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005626}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005627
5628/*---------------------------------------------------------------------------
5629 *WLAN_HAL_NOA_START_IND
5630 *-------------------------------------------------------------------------*/
5631
5632typedef PACKED_PRE struct PACKED_POST
5633{
5634 tANI_U32 status;
5635 tANI_U32 bssIdx;
5636}tNoaStartIndParams, *tpNoaStartIndParams;
5637
5638typedef PACKED_PRE struct PACKED_POST
5639{
5640 tHalMsgHeader header;
5641 tNoaStartIndParams noaStartIndParams;
5642}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005643#endif
5644
5645/*---------------------------------------------------------------------------
5646 * WLAN_HAL_HOST_RESUME_REQ
5647 *-------------------------------------------------------------------------*/
5648
5649typedef PACKED_PRE struct PACKED_POST
5650{
5651 tANI_U8 configuredMcstBcstFilterSetting;
5652}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5653
5654typedef PACKED_PRE struct PACKED_POST
5655{
5656 tHalMsgHeader header;
5657 tHalWlanHostResumeReqParam resumeReqParams;
5658}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5659
5660/*---------------------------------------------------------------------------
5661 * WLAN_HAL_HOST_RESUME_RSP
5662 *--------------------------------------------------------------------------*/
5663typedef PACKED_PRE struct PACKED_POST
5664{
5665 /* success or failure */
5666 tANI_U32 status;
5667} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5668
5669typedef PACKED_PRE struct PACKED_POST
5670{
5671 tHalMsgHeader header;
5672 tHalHostResumeRspParams hostResumeRspParams;
5673} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5674
Anand Kumar012623a2013-01-11 17:00:00 -08005675typedef PACKED_PRE struct PACKED_POST
5676{
5677 tANI_U16 staIdx;
5678 // Peer MAC Address, whose BA session has timed out
5679 tSirMacAddr peerMacAddr;
5680 // TID for which a BA session timeout is being triggered
5681 tANI_U8 baTID;
5682 // DELBA direction
5683 // 1 - Originator
5684 // 0 - Recipient
5685 tANI_U8 baDirection;
5686 tANI_U32 reasonCode;
5687 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5688} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5689
5690typedef PACKED_PRE struct PACKED_POST
5691{
5692 tHalMsgHeader header;
5693 tHalWlanDelBaIndMsg hostdelBaParam;
5694} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5695
Jeff Johnson295189b2012-06-20 16:38:30 -07005696/*---------------------------------------------------------------------------
5697 *PNO Messages
5698 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005699/* Max number of channels that a network can be found on*/
5700/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5701 * be changed at same time
5702 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005703#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005704
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305705/*Max number of channels that a network can be found on*/
5706#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5707
Jeff Johnson295189b2012-06-20 16:38:30 -07005708/*Maximum numbers of networks supported by PNO*/
5709#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5710
5711/*The number of scan time intervals that can be programmed into PNO*/
5712#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5713
5714/*Maximum size of the probe template*/
5715#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5716
Jeff Johnson32d95a32012-09-10 13:15:23 -07005717/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005718 Immediate - scanning will start immediately and PNO procedure will
5719 be repeated based on timer
5720 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005721 Resume - scanning will start on system resume
5722 Delay - start the scan timer to trigger PNO scan
5723 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005724typedef enum
5725{
5726 ePNO_MODE_IMMEDIATE,
5727 ePNO_MODE_ON_SUSPEND,
5728 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305729 ePNO_MODE_DELAY,
5730 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005731 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5732} ePNOMode;
5733
5734/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005735typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005736{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005737 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005738 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005739
Jeff Johnson295189b2012-06-20 16:38:30 -07005740 // Upper layer authentication types
5741 eAUTH_TYPE_WPA = 2,
5742 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005743
Jeff Johnson295189b2012-06-20 16:38:30 -07005744 eAUTH_TYPE_RSN = 4,
5745 eAUTH_TYPE_RSN_PSK = 5,
5746 eAUTH_TYPE_FT_RSN = 6,
5747 eAUTH_TYPE_FT_RSN_PSK = 7,
5748 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5749 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005750 eAUTH_TYPE_CCKM_WPA = 10,
5751 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005752
Jeff Johnson295189b2012-06-20 16:38:30 -07005753 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5754
5755}tAuthType;
5756
5757/* Encryption type */
5758typedef enum eEdType
5759{
5760 eED_ANY = 0,
5761 eED_NONE = 1,
5762 eED_WEP = 2,
5763 eED_TKIP = 3,
5764 eED_CCMP = 4,
5765 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005766
Jeff Johnson295189b2012-06-20 16:38:30 -07005767 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5768} tEdType;
5769
5770/* SSID broadcast type */
5771typedef enum eSSIDBcastType
5772{
5773 eBCAST_UNKNOWN = 0,
5774 eBCAST_NORMAL = 1,
5775 eBCAST_HIDDEN = 2,
5776
5777 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5778} tSSIDBcastType;
5779
Jeff Johnson32d95a32012-09-10 13:15:23 -07005780/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005781 The network description for which PNO will have to look for
5782*/
5783typedef PACKED_PRE struct PACKED_POST
5784{
5785 /*SSID of the BSS*/
5786 tSirMacSSid ssId;
5787
5788 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005789 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005790
5791 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005792 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005793
Jeff Johnson32d95a32012-09-10 13:15:23 -07005794 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005795 0 - if all channels */
5796 tANI_U8 ucChannelCount;
5797 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5798
5799 /*Indicates the RSSI threshold for the network to be considered*/
5800 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005801}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005802
5803typedef PACKED_PRE struct PACKED_POST
5804{
5805 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005806 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005807
Jeff Johnson32d95a32012-09-10 13:15:23 -07005808 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005809 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005810 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005811
Jeff Johnson32d95a32012-09-10 13:15:23 -07005812 /*e.g: 2 3
5813 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005814 - it will wait 2s between consecutive scans for 3 times
5815 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005816}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005817
Jeff Johnson32d95a32012-09-10 13:15:23 -07005818/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005819 The network parameters to be sent to the PNO algorithm
5820*/
5821typedef PACKED_PRE struct PACKED_POST
5822{
5823 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005824 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005825
Jeff Johnson32d95a32012-09-10 13:15:23 -07005826 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005827 two consecutive scan procedures
5828 If the desired is for a uniform timer that fires always at the exact same
5829 interval - one single value is to be set
5830 If there is a desire for a more complex - telescopic like timer multiple
5831 values can be set - once PNO reaches the end of the array it will
5832 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005833 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005834
5835}tScanTimersType;
5836
5837typedef PACKED_PRE struct PACKED_POST {
5838
5839 /*Enable PNO*/
5840 tANI_U32 enable;
5841
5842 /*Immediate, On Suspend, On Resume*/
5843 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005844
Jeff Johnson295189b2012-06-20 16:38:30 -07005845 /*Number of networks sent for PNO*/
5846 tANI_U32 ucNetworksCount;
5847
5848 /*The networks that PNO needs to look for*/
5849 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5850
5851 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005852 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005853
5854 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005855 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005856 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5857
5858 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005859 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005860 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5861
5862} tPrefNetwListParams, * tpPrefNetwListParams;
5863
5864/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005865 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005866*/
5867typedef PACKED_PRE struct PACKED_POST
5868{
5869 tHalMsgHeader header;
5870 tPrefNetwListParams prefNetwListParams;
5871} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5872
5873
Jeff Johnson32d95a32012-09-10 13:15:23 -07005874/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005875 The network description for which PNO will have to look for
5876*/
5877typedef PACKED_PRE struct PACKED_POST
5878{
5879 /*SSID of the BSS*/
5880 tSirMacSSid ssId;
5881
5882 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005883 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005884
5885 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005886 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005887
5888 /*SSID broadcast type, normal, hidden or unknown*/
5889 tSSIDBcastType bcastNetworkType;
5890
Jeff Johnson32d95a32012-09-10 13:15:23 -07005891 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005892 0 - if all channels */
5893 tANI_U8 ucChannelCount;
5894 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5895
5896 /*Indicates the RSSI threshold for the network to be considered*/
5897 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005898}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005899
5900typedef PACKED_PRE struct PACKED_POST {
5901
5902 /*Enable PNO*/
5903 tANI_U32 enable;
5904
5905 /*Immediate, On Suspend, On Resume*/
5906 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005907
Jeff Johnson295189b2012-06-20 16:38:30 -07005908 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005909 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005910
5911 /*The networks that PNO needs to look for*/
5912 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5913
5914 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005915 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005916
5917 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005918 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005919 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5920
5921 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005922 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005923 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5924
5925} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5926
5927/*
5928 Preferred network list request new
5929*/
5930typedef PACKED_PRE struct PACKED_POST
5931{
5932 tHalMsgHeader header;
5933 tPrefNetwListParamsNew prefNetwListParams;
5934} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5935
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005936#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5937typedef PACKED_PRE struct PACKED_POST
5938{
5939 tSirMacSSid ssId;
5940 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5941 tANI_U32 authentication;
5942 tEdType encryption;
5943 tEdType mcencryption;
5944 tANI_U8 ChannelCount;
5945 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5946}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005947
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005948typedef PACKED_PRE struct PACKED_POST
5949{
5950 tANI_U8 mdiePresent;
5951 tANI_U16 mobilityDomain;
5952}tMobilityDomainInfo;
5953
5954typedef PACKED_PRE struct PACKED_POST {
5955 eAniBoolean RoamScanOffloadEnabled;
5956 tANI_S8 LookupThreshold;
5957 tANI_U8 RoamRssiDiff;
5958 tANI_U8 ChannelCacheType;
5959 tANI_U8 Command;
5960 tANI_U8 StartScanReason;
5961 tANI_U16 NeighborScanTimerPeriod;
5962 tANI_U16 NeighborRoamScanRefreshPeriod;
5963 tANI_U16 NeighborScanChannelMinTime;
5964 tANI_U16 NeighborScanChannelMaxTime;
5965 tANI_U16 EmptyRefreshScanPeriod;
5966 tANI_U8 ValidChannelCount;
5967 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08005968 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005969
5970 tANI_U16 us24GProbeSize;
5971 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5972 tANI_U16 us5GProbeSize;
5973 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5974 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005975 tANI_U8 nProbes;
5976 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08005977 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08005978 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005979 tANI_U8 RoamOffloadEnabled;
5980 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
5981 tANI_U8 Prefer5GHz;
5982 tANI_U8 RoamRssiCatGap;
5983 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005984 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5985 tRoamNetworkType ConnectedNetwork;
5986 tMobilityDomainInfo MDID;
5987} tRoamCandidateListParams, * tpRoamCandidateListParams;
5988
5989typedef PACKED_PRE struct PACKED_POST
5990{
Kumar Anandea78e792013-10-10 23:47:01 -07005991 tHalMsgHeader header;
5992 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005993} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5994
5995typedef PACKED_PRE struct PACKED_POST
5996{
Kumar Anandea78e792013-10-10 23:47:01 -07005997 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005998
Kumar Anandea78e792013-10-10 23:47:01 -07005999 /* status of the request - just to indicate that PNO has acknowledged
6000 * the request and will start scanning */
6001 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006002} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
6003#endif
Kumar Anandea78e792013-10-10 23:47:01 -07006004
6005/*
6006 Preferred network list response
6007*/
6008typedef PACKED_PRE struct PACKED_POST
6009{
6010 tHalMsgHeader header;
6011
6012 /* status of the request - just to indicate that PNO has acknowledged
6013 * the request and will start scanning*/
6014 tANI_U32 status;
6015} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
6016
6017/*
6018 Preferred network indication parameters
6019*/
6020typedef PACKED_PRE struct PACKED_POST {
6021
6022 /*Network that was found with the highest RSSI*/
6023 tSirMacSSid ssId;
6024
6025 /*Indicates the RSSI */
6026 tANI_U8 rssi;
6027
6028 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
6029 tANI_U16 frameLength;
6030
6031} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
6032
6033/*
6034 Preferred network found indication
6035*/
6036typedef PACKED_PRE struct PACKED_POST {
6037
6038 tHalMsgHeader header;
6039 tPrefNetwFoundParams prefNetwFoundParams;
6040} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
6041
6042
6043typedef PACKED_PRE struct PACKED_POST {
6044
6045 /*RSSI Threshold*/
6046 tANI_U8 ucRssiThreshold;
6047
6048} tRssiFilterParams, * tpRssiFilterParams;
6049
Jeff Johnson295189b2012-06-20 16:38:30 -07006050/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07006051 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07006052*/
6053typedef PACKED_PRE struct PACKED_POST
6054{
6055 tHalMsgHeader header;
6056 tRssiFilterParams prefRSSIFilterParams;
6057} tSetRssiFilterReq, *tpSetRssiFilterReq;
6058
6059/*
6060 Set RSSI filter resp
6061*/
6062typedef PACKED_PRE struct PACKED_POST{
6063 tHalMsgHeader header;
6064 /*status of the request */
6065 tANI_U32 status;
6066} tSetRssiFilterResp, *tpSetRssiFilterResp;
6067/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07006068 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07006069*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006070typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006071{
6072
6073 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006074 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07006075
6076 /*Lets PNO know that host has determined the regulatory domain*/
6077 tANI_U8 b11dResolved;
6078
6079 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006080 tANI_U8 ucChannelCount;
6081 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07006082
6083 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006084 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006085
6086 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006087 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006088
6089 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006090 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006091
6092 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006093 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006094
6095 /*Cb State*/
6096 ePhyChanBondState cbState;
6097
6098} tUpdateScanParams, * tpUpdateScanParams;
6099
6100/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306101 Update scan params
6102*/
6103typedef PACKED_PRE struct PACKED_POST
6104{
6105
6106 /*Host setting for 11d*/
6107 tANI_U8 b11dEnabled;
6108
6109 /*Lets PNO know that host has determined the regulatory domain*/
6110 tANI_U8 b11dResolved;
6111
6112 /*Channels on which PNO is allowed to scan*/
6113 tANI_U8 ucChannelCount;
6114 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
6115
6116 /*Minimum channel time*/
6117 tANI_U16 usActiveMinChTime;
6118
6119 /*Maximum channel time*/
6120 tANI_U16 usActiveMaxChTime;
6121
6122 /*Minimum channel time*/
6123 tANI_U16 usPassiveMinChTime;
6124
6125 /*Maximum channel time*/
6126 tANI_U16 usPassiveMaxChTime;
6127
6128 /*Cb State*/
6129 ePhyChanBondState cbState;
6130
6131} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
6132
6133/*
Jeff Johnson295189b2012-06-20 16:38:30 -07006134 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07006135 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006136*/
6137typedef PACKED_PRE struct PACKED_POST{
6138
6139 tHalMsgHeader header;
6140 tUpdateScanParams scanParams;
6141} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
6142
6143/*
6144 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07006145 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07006146*/
6147typedef PACKED_PRE struct PACKED_POST{
6148
6149 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05306150 tUpdateScanParamsEx scanParams;
6151} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
6152
6153/*
6154 Update scan params - sent from host to PNO
6155 to be used during PNO scanning
6156*/
6157typedef PACKED_PRE struct PACKED_POST{
6158
6159 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006160
6161 /*status of the request */
6162 tANI_U32 status;
6163
6164} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
6165
6166/*---------------------------------------------------------------------------
6167 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
6168 *--------------------------------------------------------------------------*/
6169typedef PACKED_PRE struct PACKED_POST
6170{
6171 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
6172 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
6173 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
6174 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
6175} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
6176
6177typedef PACKED_PRE struct PACKED_POST
6178{
6179 tHalMsgHeader header;
6180 tHalTxPerTrackingReqParam txPerTrackingParams;
6181} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
6182
6183/*---------------------------------------------------------------------------
6184 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
6185 *--------------------------------------------------------------------------*/
6186typedef PACKED_PRE struct PACKED_POST
6187{
6188 /* success or failure */
6189 tANI_U32 status;
6190} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
6191
6192typedef PACKED_PRE struct PACKED_POST
6193{
6194 tHalMsgHeader header;
6195 tHalTxPerTrackingRspParams txPerTrackingRspParams;
6196} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
6197
6198/*---------------------------------------------------------------------------
6199 * WLAN_HAL_TX_PER_HIT_IND
6200 *--------------------------------------------------------------------------*/
6201typedef PACKED_PRE struct PACKED_POST
6202{
6203 tHalMsgHeader header;
6204}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
6205
6206/*---------------------------------------------------------------------------
6207 *******************Packet Filtering Definitions Begin*******************
6208 *--------------------------------------------------------------------------*/
6209#define HAL_PROTOCOL_DATA_LEN 8
6210#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
6211#define HAL_MAX_NUM_FILTERS 20
6212#define HAL_MAX_CMP_PER_FILTER 10
6213
6214typedef enum
6215{
6216 HAL_RCV_FILTER_TYPE_INVALID,
6217 HAL_RCV_FILTER_TYPE_FILTER_PKT,
6218 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
6219 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
6220}tHalReceivePacketFilterType;
6221
Jeff Johnson32d95a32012-09-10 13:15:23 -07006222typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006223{
6224 HAL_FILTER_PROTO_TYPE_INVALID,
6225 HAL_FILTER_PROTO_TYPE_MAC,
6226 HAL_FILTER_PROTO_TYPE_ARP,
6227 HAL_FILTER_PROTO_TYPE_IPV4,
6228 HAL_FILTER_PROTO_TYPE_IPV6,
6229 HAL_FILTER_PROTO_TYPE_UDP,
6230 HAL_FILTER_PROTO_TYPE_MAX
6231}tHalRcvPktFltProtocolType;
6232
Jeff Johnson32d95a32012-09-10 13:15:23 -07006233typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006234{
6235 HAL_FILTER_CMP_TYPE_INVALID,
6236 HAL_FILTER_CMP_TYPE_EQUAL,
6237 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6238 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6239 HAL_FILTER_CMP_TYPE_MAX
6240}tHalRcvPktFltCmpFlagType;
6241
Jeff Johnson32d95a32012-09-10 13:15:23 -07006242typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006243{
6244 tANI_U8 protocolLayer;
6245 tANI_U8 cmpFlag;
6246 tANI_U16 dataLength; /* Length of the data to compare */
6247 tANI_U8 dataOffset; /* from start of the respective frame header */
6248 tANI_U8 reserved; /* Reserved field */
6249 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6250 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6251}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6252
6253typedef PACKED_PRE struct PACKED_POST
6254{
6255 tANI_U8 filterId;
6256 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006257 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006258 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006259 tHalRcvPktFilterParams paramsData[1];
6260}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6261
6262typedef PACKED_PRE struct PACKED_POST
6263{
Jeff Johnsone7245742012-09-05 17:12:55 -07006264 tANI_U8 filterId;
6265 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006266 tANI_U8 numParams;
6267 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006268 tANI_U8 bssIdx;
6269 tHalRcvPktFilterParams paramsData[1];
6270}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6271
6272typedef PACKED_PRE struct PACKED_POST
6273{
Jeff Johnson295189b2012-06-20 16:38:30 -07006274 tHalMsgHeader header;
6275 tHalRcvPktFilterCfgType pktFilterCfg;
6276} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6277
Jeff Johnsone7245742012-09-05 17:12:55 -07006278typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006279{
6280 tANI_U8 dataOffset; /* from start of the respective frame header */
6281 tANI_U32 cMulticastAddr;
6282 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006283 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006284} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6285
6286typedef PACKED_PRE struct PACKED_POST
6287{
6288 /* success or failure */
6289 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006290 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006291} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6292
6293typedef PACKED_PRE struct PACKED_POST
6294{
6295 tHalMsgHeader header;
6296 tHalSetPktFilterRspParams pktFilterRspParams;
6297} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6298
Jeff Johnsone7245742012-09-05 17:12:55 -07006299typedef PACKED_PRE struct PACKED_POST
6300{
6301 tANI_U8 bssIdx;
6302} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006303
6304typedef PACKED_PRE struct PACKED_POST
6305{
6306 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006307 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006308} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6309
Jeff Johnsone7245742012-09-05 17:12:55 -07006310
Jeff Johnson295189b2012-06-20 16:38:30 -07006311typedef PACKED_PRE struct PACKED_POST
6312{
6313 tANI_U8 filterId;
6314 tANI_U32 matchCnt;
6315} tHalRcvFltPktMatchCnt;
6316typedef PACKED_PRE struct PACKED_POST
6317{
6318 /* Success or Failure */
6319 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006320 tANI_U32 matchCnt;
6321 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006322 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006323} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6324
6325typedef PACKED_PRE struct PACKED_POST
6326{
6327 tHalMsgHeader header;
6328 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6329} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6330
6331typedef PACKED_PRE struct PACKED_POST
6332{
6333 tANI_U32 status; /* only valid for response message */
6334 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006335 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006336}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6337
6338typedef PACKED_PRE struct PACKED_POST
6339{
6340 tHalMsgHeader header;
6341 tHalRcvFltPktClearParam filterClearParam;
6342} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6343
6344typedef PACKED_PRE struct PACKED_POST
6345{
6346 tHalMsgHeader header;
6347 tHalRcvFltPktClearParam filterClearParam;
6348} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6349
6350typedef PACKED_PRE struct PACKED_POST
6351{
Jeff Johnson32d95a32012-09-10 13:15:23 -07006352 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006353 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006354}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6355
6356typedef PACKED_PRE struct PACKED_POST
6357{
6358 tHalMsgHeader header;
6359 tHalRcvFltMcAddrListType mcAddrList;
6360} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6361
6362typedef PACKED_PRE struct PACKED_POST
6363{
6364 tHalMsgHeader header;
6365 tHalRcvFltPktSetMcListRspType rspParam;
6366} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6367
6368
6369/*---------------------------------------------------------------------------
6370 *******************Packet Filtering Definitions End*******************
6371 *--------------------------------------------------------------------------*/
6372
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006373/*
6374 * There are two versions of this message
6375 * Version 1 : Base version
6376 * Current version : Base version + Max LI modulated DTIM
6377 */
6378typedef PACKED_PRE struct PACKED_POST
6379{
6380 /* Ignore DTIM */
6381 tANI_U32 uIgnoreDTIM;
6382
6383 /*DTIM Period*/
6384 tANI_U32 uDTIMPeriod;
6385
6386 /* Listen Interval */
6387 tANI_U32 uListenInterval;
6388
6389 /* Broadcast Multicast Filter */
6390 tANI_U32 uBcastMcastFilter;
6391
6392 /* Beacon Early Termination */
6393 tANI_U32 uEnableBET;
6394
6395 /* Beacon Early Termination Interval */
6396 tANI_U32 uBETInterval;
6397}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6398
6399typedef PACKED_PRE struct PACKED_POST
6400{
6401 tHalMsgHeader header;
6402 tSetPowerParamsVer1Type powerParams;
6403} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6404
Jeff Johnson295189b2012-06-20 16:38:30 -07006405typedef PACKED_PRE struct PACKED_POST
6406{
6407 /* Ignore DTIM */
6408 tANI_U32 uIgnoreDTIM;
6409
6410 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006411 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006412
6413 /* Listen Interval */
6414 tANI_U32 uListenInterval;
6415
6416 /* Broadcast Multicast Filter */
6417 tANI_U32 uBcastMcastFilter;
6418
6419 /* Beacon Early Termination */
6420 tANI_U32 uEnableBET;
6421
6422 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006423 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006424
6425 /* MAX LI for modulated DTIM */
6426 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006427}tSetPowerParamsType, *tpSetPowerParamsType;
6428
6429typedef PACKED_PRE struct PACKED_POST
6430{
6431 tHalMsgHeader header;
6432 tSetPowerParamsType powerParams;
6433} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6434
6435typedef PACKED_PRE struct PACKED_POST{
6436
6437 tHalMsgHeader header;
6438
6439 /*status of the request */
6440 tANI_U32 status;
6441
6442} tSetPowerParamsResp, *tpSetPowerParamsResp;
6443
6444/*---------------------------------------------------------------------------
6445 ****************Capability bitmap exchange definitions and macros starts*************
6446 *--------------------------------------------------------------------------*/
6447
Anand Kumar012623a2013-01-11 17:00:00 -08006448typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006449 MCC = 0,
6450 P2P = 1,
6451 DOT11AC = 2,
6452 SLM_SESSIONIZATION = 3,
6453 DOT11AC_OPMODE = 4,
6454 SAP32STA = 5,
6455 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006456 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006457 WLANACTIVE_OFFLOAD = 8,
6458 BEACON_OFFLOAD = 9,
6459 SCAN_OFFLOAD = 10,
6460 ROAM_OFFLOAD = 11,
6461 BCN_MISS_OFFLOAD = 12,
6462 STA_POWERSAVE = 13,
6463 STA_ADVANCED_PWRSAVE = 14,
6464 AP_UAPSD = 15,
6465 AP_DFS = 16,
6466 BLOCKACK = 17,
6467 PHY_ERR = 18,
6468 BCN_FILTER = 19,
6469 RTT = 20,
6470 RATECTRL = 21,
6471 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006472 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006473 SPECULATIVE_PS_POLL = 24,
6474 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006475 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006476 WLAN_SCAN_OFFLOAD = 27,
6477 WLAN_PERIODIC_TX_PTRN = 28,
6478 ADVANCE_TDLS = 29,
6479 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306480 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306481 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306482 CH_SWITCH_V1 = 33,
6483 HT40_OBSS_SCAN = 34,
6484 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006485 WLAN_MCADDR_FLT = 36,
6486 WLAN_CH144 = 37,
6487 NAN = 38,
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306488 TDLS_SCAN_COEXISTENCE = 39,
Kumar Anandea78e792013-10-10 23:47:01 -07006489 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006490} placeHolderInCapBitmap;
6491
Jeff Johnson295189b2012-06-20 16:38:30 -07006492typedef PACKED_PRE struct PACKED_POST{
6493
6494 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006495} tWlanFeatCaps, *tpWlanFeatCaps;
6496
6497typedef PACKED_PRE struct PACKED_POST{
6498
Jeff Johnson32d95a32012-09-10 13:15:23 -07006499 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006500 tWlanFeatCaps wlanFeatCaps;
6501
6502} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6503
Jeff Johnsone7245742012-09-05 17:12:55 -07006504#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6505#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006506#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006507#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006508#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006509#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006510#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006511#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Pradeep Reddy POTTETIed84fb92014-05-22 22:12:27 +05306512#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006513
Jeff Johnsone7245742012-09-05 17:12:55 -07006514tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6515
Jeff Johnson295189b2012-06-20 16:38:30 -07006516#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006517 if ((b)<=127) { \
6518 arr_index = (b)/32; \
6519 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006520 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006521 (a)->featCaps[arr_index] |= (1<<bit_index); \
6522 } \
6523 }
6524#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006525 if ((b)<=127) { \
6526 arr_index = (b)/32; \
6527 bit_index = (b)%32; \
6528 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006529 } \
6530 }
6531#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006532 if ((b)<=127) { \
6533 arr_index = (b)/32; \
6534 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006535 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006536 } \
6537 }
6538
6539/*---------------------------------------------------------------------------
6540 * WLAN_HAL_WAKE_REASON_IND
6541 *--------------------------------------------------------------------------*/
6542
6543/* status codes to help debug rekey failures */
6544typedef enum
6545{
6546 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6547 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6548 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6549 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6550 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6551 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6552 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6553 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6554 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6555 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6556
6557 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6558} tGTKRekeyStatus;
6559
6560/* wake reason types */
6561typedef enum
6562{
6563 WLAN_HAL_WAKE_REASON_NONE = 0,
6564 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6565 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6566 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6567 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6568 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6569 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6570 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6571} tWakeReasonType;
6572
6573/*
6574 Wake Packet which is saved at tWakeReasonParams.DataStart
6575 This data is sent for any wake reasons that involve a packet-based wakeup :
6576
6577 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6578 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6579 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6580 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6581 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6582
6583 The information is provided to the host for auditing and debug purposes
6584
6585*/
6586
6587/*
6588 Wake reason indication parameters
6589*/
6590typedef PACKED_PRE struct PACKED_POST
6591{
6592 uint32 ulReason; /* see tWakeReasonType */
6593 uint32 ulReasonArg; /* argument specific to the reason type */
6594 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6595 HAL truncates the data (i.e. data packets) this length
6596 will be less than the actual length */
6597 uint32 ulActualDataLen; /* actual length of data */
6598 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6599 see specific wake type */
6600} tWakeReasonParams, *tpWakeReasonParams;
6601
6602/*
6603 Wake reason indication
6604*/
6605typedef PACKED_PRE struct PACKED_POST
6606{
6607 tHalMsgHeader header;
6608 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006609 tANI_U32 uBssIdx : 8;
6610 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006611} tHalWakeReasonInd, *tpHalWakeReasonInd;
6612
6613/*---------------------------------------------------------------------------
6614* WLAN_HAL_GTK_OFFLOAD_REQ
6615*--------------------------------------------------------------------------*/
6616
6617#define HAL_GTK_KEK_BYTES 16
6618#define HAL_GTK_KCK_BYTES 16
6619
6620#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6621
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006622#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6623
Jeff Johnson295189b2012-06-20 16:38:30 -07006624typedef PACKED_PRE struct PACKED_POST
6625{
6626 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006627 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006628 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6629 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006630 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006631} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6632
6633typedef PACKED_PRE struct PACKED_POST
6634{
6635 tHalMsgHeader header;
6636 tHalGtkOffloadReqParams gtkOffloadReqParams;
6637} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6638
6639/*---------------------------------------------------------------------------
6640* WLAN_HAL_GTK_OFFLOAD_RSP
6641*--------------------------------------------------------------------------*/
6642typedef PACKED_PRE struct PACKED_POST
6643{
6644 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006645 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006646} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6647
6648typedef PACKED_PRE struct PACKED_POST
6649{
6650 tHalMsgHeader header;
6651 tHalGtkOffloadRspParams gtkOffloadRspParams;
6652} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6653
6654
6655/*---------------------------------------------------------------------------
6656* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6657*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006658typedef PACKED_PRE struct PACKED_POST
6659{
6660 tANI_U8 bssIdx;
6661
6662} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006663
6664typedef PACKED_PRE struct PACKED_POST
6665{
6666 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006667 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006668} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6669
6670/*---------------------------------------------------------------------------
6671* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6672*--------------------------------------------------------------------------*/
6673typedef PACKED_PRE struct PACKED_POST
6674{
6675 tANI_U32 ulStatus; /* success or failure */
6676 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6677 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6678 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6679 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6680 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006681 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006682} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6683
6684typedef PACKED_PRE struct PACKED_POST
6685{
6686 tHalMsgHeader header;
6687 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6688} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6689
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006690/*---------------------------------------------------------------------------
6691* WLAN_HAL_DHCP_IND
6692*--------------------------------------------------------------------------*/
6693typedef PACKED_PRE struct PACKED_POST
6694{
6695 /*Indicates the device mode which indicates about the DHCP activity */
6696 tANI_U8 device_mode;
6697 tSirMacAddr macAddr;
6698} tDHCPInfo, *tpDHCPInfo;
6699
6700typedef PACKED_PRE struct PACKED_POST
6701{
6702 tHalMsgHeader header;
6703 tANI_U32 status; /* success or failure */
6704} tDHCPIndStatus, *tpDHCPIndstatus;
6705
Jeff Johnson295189b2012-06-20 16:38:30 -07006706/*
6707 Thermal Mitigation mode of operation.
6708 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6709 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6710 reducing transmit power
6711 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6712*/
6713typedef enum
6714{
6715 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6716 HAL_THERMAL_MITIGATION_MODE_0,
6717 HAL_THERMAL_MITIGATION_MODE_1,
6718 HAL_THERMAL_MITIGATION_MODE_2,
6719 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6720}tHalThermalMitigationModeType;
6721//typedef tANI_S16 tHalThermalMitigationModeType;
6722
6723/*
6724 Thermal Mitigation level.
6725 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6726 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6727
6728 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6729 level indicates normal mode of operation
6730 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6731 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6732 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6733 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6734*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006735typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006736{
6737 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6738 HAL_THERMAL_MITIGATION_LEVEL_0,
6739 HAL_THERMAL_MITIGATION_LEVEL_1,
6740 HAL_THERMAL_MITIGATION_LEVEL_2,
6741 HAL_THERMAL_MITIGATION_LEVEL_3,
6742 HAL_THERMAL_MITIGATION_LEVEL_4,
6743 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6744}tHalThermalMitigationLevelType;
6745//typedef tANI_S16 tHalThermalMitigationLevelType;
6746
6747typedef PACKED_PRE struct PACKED_POST
6748{
6749 /* Thermal Mitigation Operation Mode */
6750 tHalThermalMitigationModeType thermalMitMode;
6751
6752 /* Thermal Mitigation Level */
6753 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006754
Jeff Johnson295189b2012-06-20 16:38:30 -07006755}tSetThermalMitgationType, *tpSetThermalMitgationType;
6756
6757/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6758typedef PACKED_PRE struct PACKED_POST
6759{
6760 tHalMsgHeader header;
6761 tSetThermalMitgationType thermalMitParams;
6762} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6763
6764typedef PACKED_PRE struct PACKED_POST{
6765
6766 tHalMsgHeader header;
6767
6768 /*status of the request */
6769 tANI_U32 status;
6770
6771} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6772
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006773/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6774provided to FW from Host via periodic messages */
6775typedef PACKED_PRE struct PACKED_POST {
6776 /* TX stats */
6777 uint32 txBytesPushed;
6778 uint32 txPacketsPushed;
6779
6780 /* RX stats */
6781 uint32 rxBytesRcvd;
6782 uint32 rxPacketsRcvd;
6783 uint32 rxTimeTotal;
6784} tStaStatsClassB, *tpStaStatsClassB;
6785
6786typedef PACKED_PRE struct PACKED_POST {
6787
6788 /* Duration over which this stats was collected */
6789 tANI_U32 duration;
6790
6791 /* Per STA Stats */
6792 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6793} tStatsClassBIndParams, *tpStatsClassBIndParams;
6794
6795typedef PACKED_PRE struct PACKED_POST {
6796
6797 tHalMsgHeader header;
6798
6799 /* Class B Stats */
6800 tStatsClassBIndParams statsClassBIndParams;
6801} tStatsClassBInd, *tpStatsClassBInd;
6802
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306803/*Wifi Proximity paramters in AP mode*/
6804#ifdef FEATURE_WIFI_PROXIMITY
6805
6806typedef PACKED_PRE struct PACKED_POST{
6807
6808 tANI_U8 wifiProximityChannel;
6809 tANI_U32 wifiProximityDuration;
6810 tANI_U32 wifiProximityInterval;
6811 tANI_U32 wifiProximityMode;
6812 tANI_U32 wifiProximityStatus;
6813 tSirMacAddr bssId;
6814 tSirMacSSid ssId;
6815
6816} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6817
6818typedef PACKED_PRE struct PACKED_POST
6819{
6820 tHalMsgHeader header;
6821
6822 tSetWifiProximityReqParam wifiProximityReqParams;
6823
6824}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6825
6826/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6827typedef PACKED_PRE struct PACKED_POST{
6828
6829 tHalMsgHeader header;
6830
6831 /*status of the request */
6832 tANI_U32 status;
6833
6834} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6835
6836#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006837
6838#ifdef FEATURE_SPECULATIVE_PS_POLL
6839/*---------------------------------------------------------------------------
6840 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6841 *--------------------------------------------------------------------------*/
6842typedef PACKED_PRE struct PACKED_POST
6843{
6844 tANI_U8 bssIdx;
6845 tANI_U16 serviceInterval;
6846 tANI_U16 suspendInterval;
6847 tANI_U8 acMask;
6848} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6849
6850typedef PACKED_PRE struct PACKED_POST
6851{
6852 tHalMsgHeader header;
6853 tHalStartSpecPsPollReqParams specPsPollReq;
6854} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6855
6856/*---------------------------------------------------------------------------
6857 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6858 *--------------------------------------------------------------------------*/
6859typedef PACKED_PRE struct PACKED_POST
6860{
6861 /* success or failure */
6862 tANI_U32 status;
6863 tANI_U8 bssIdx;
6864} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6865
6866typedef PACKED_PRE struct PACKED_POST
6867{
6868 tHalMsgHeader header;
6869 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6870} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6871
6872/*---------------------------------------------------------------------------
6873 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6874 *--------------------------------------------------------------------------*/
6875typedef PACKED_PRE struct PACKED_POST
6876{
6877 tHalMsgHeader header;
6878 tANI_U8 bssIdx;
6879} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6880#endif
6881
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306882#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306883#define HAL_MAX_SUPP_CHANNELS 128
6884#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306885/*---------------------------------------------------------------------------
6886 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6887 *-------------------------------------------------------------------------*/
6888typedef PACKED_PRE struct PACKED_POST
6889{
6890 /*STA Index*/
6891 tANI_U16 staIdx;
6892
6893 /* if this is 1, self is initiator and peer is reponder */
6894 tANI_U8 bIsResponder;
6895
6896 /* QoS Info */
6897 tANI_U8 acVOUAPSDFlag:1;
6898 tANI_U8 acVIUAPSDFlag:1;
6899 tANI_U8 acBKUAPSDFlag:1;
6900 tANI_U8 acBEUAPSDFlag:1;
6901 tANI_U8 aAck:1;
6902 tANI_U8 maxServicePeriodLength:2;
6903 tANI_U8 moreDataAck:1;
6904
6905 /*TDLS Peer U-APSD Buffer STA Support*/
6906 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07006907
6908 /*TDLS off channel related params */
6909 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306910 tANI_U8 peerCurrOperClass;
6911 tANI_U8 selfCurrOperClass;
6912 tANI_U8 validChannelsLen;
6913 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
6914 tANI_U8 validOperClassesLen;
6915 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306916}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6917
6918typedef PACKED_PRE struct PACKED_POST
6919{
6920 tHalMsgHeader header;
6921 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6922} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6923
6924/*---------------------------------------------------------------------------
6925 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6926 *-------------------------------------------------------------------------*/
6927
6928typedef PACKED_PRE struct PACKED_POST
6929{
6930 tANI_U32 status;
6931
6932 /*STA Index*/
6933 tANI_U16 staIdx;
6934} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6935
6936typedef PACKED_PRE struct PACKED_POST
6937{
6938 tHalMsgHeader header;
6939 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6940} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6941
6942/*---------------------------------------------------------------------------
6943 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6944 *-------------------------------------------------------------------------*/
6945typedef PACKED_PRE struct PACKED_POST
6946{
6947 /*STA Index*/
6948 tANI_U16 staIdx;
6949}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6950
6951typedef PACKED_PRE struct PACKED_POST
6952{
6953 tHalMsgHeader header;
6954 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6955} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6956
6957/*---------------------------------------------------------------------------
6958 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6959 *-------------------------------------------------------------------------*/
6960
6961typedef PACKED_PRE struct PACKED_POST
6962{
6963 tANI_U32 status;
6964
6965 /*STA Index*/
6966 tANI_U16 staIdx;
6967} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6968
6969typedef PACKED_PRE struct PACKED_POST
6970{
6971 tHalMsgHeader header;
6972 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6973} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6974
6975/*---------------------------------------------------------------------------
6976 *WLAN_HAL_TDLS_IND
6977 *--------------------------------------------------------------------------*/
6978
6979typedef PACKED_PRE struct PACKED_POST
6980{
6981 tANI_U16 assocId;
6982 tANI_U16 staIdx;
6983 tANI_U16 status;
6984 tANI_U16 reasonCode;
6985}tTdlsIndParams, *tpTdlsIndParams;
6986
6987
6988typedef PACKED_PRE struct PACKED_POST
6989{
6990 tHalMsgHeader header;
6991 tTdlsIndParams tdlsIndParams;
6992}tTdlsIndMsg, *tpTdlsIndMsg;
6993
6994#endif
6995
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006996/*---------------------------------------------------------------------------
6997 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
6998 *--------------------------------------------------------------------------*/
6999
7000typedef PACKED_PRE struct PACKED_POST
7001{
7002 tANI_U8 bssIdx;
7003 tANI_U8 staIdx;
7004 tSirMacAddr staAddr;
7005}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
7006
7007
7008typedef PACKED_PRE struct PACKED_POST
7009{
7010 tHalMsgHeader header;
7011 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
7012}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
7013
7014
Kumar Anandea78e792013-10-10 23:47:01 -07007015/*********** Scan Offload Related Structures *************/
7016#define HAL_NUM_SCAN_SSID 10
7017#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07007018
Kumar Anandea78e792013-10-10 23:47:01 -07007019/*
7020 * Enumetation to indicate scan type (active/passive)
7021 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007022typedef enum
7023{
Kumar Anandea78e792013-10-10 23:47:01 -07007024 eSIR_PASSIVE_SCAN,
7025 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
7026} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007027
7028typedef PACKED_PRE struct PACKED_POST
7029{
Kumar Anandea78e792013-10-10 23:47:01 -07007030 tANI_U8 numBssid;
7031 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
7032 tANI_U8 numSsid;
7033 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
7034 tANI_BOOLEAN hiddenSsid;
7035 tSirMacAddr selfMacAddr;
7036 tSirBssType bssType;
7037 tSirScanType scanType;
7038 tANI_U32 minChannelTime;
7039 tANI_U32 maxChannelTime;
7040 tANI_BOOLEAN p2pSearch;
7041 tANI_U8 channelCount;
7042 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7043 tANI_U16 ieFieldLen;
7044 tANI_U8 ieField[1];
7045}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007046
7047/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007048 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07007049 *-------------------------------------------------------------------------*/
7050typedef PACKED_PRE struct PACKED_POST
7051{
Kumar Anandf53016f2013-09-04 15:15:53 -07007052 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007053 tScanOffloadReqType scanOffloadParams;
7054} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007055
7056/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07007057 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07007058 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07007059typedef PACKED_PRE struct PACKED_POST
7060{
7061 tHalMsgHeader header;
7062
7063 /*status of the request - just to indicate SO has acknowledged
7064 * * the request and will start scanning*/
7065 tANI_U32 status;
7066} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
7067
7068/*---------------------------------------------------------------------------
7069 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
7070 *-------------------------------------------------------------------------*/
7071typedef PACKED_PRE struct PACKED_POST
7072{
7073 tHalMsgHeader header;
7074} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
7075
7076/*---------------------------------------------------------------------------
7077 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
7078 *-------------------------------------------------------------------------*/
7079typedef PACKED_PRE struct PACKED_POST
7080{
7081 tHalMsgHeader header;
7082
7083 /*status of the request - just to indicate SO has acknowledged
7084 the request and will start scanning*/
7085 tANI_U32 status;
7086} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
7087
7088/*
7089 * Enumetation of scan events indicated by firmware to the host
7090 */
Kumar Anandf53016f2013-09-04 15:15:53 -07007091typedef enum
7092{
Kumar Anandea78e792013-10-10 23:47:01 -07007093 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
7094 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
7095 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
7096 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
7097 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
7098 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
7099 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
7100 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
7101 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
7102} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07007103
7104typedef PACKED_PRE struct PACKED_POST
7105{
Kumar Anandea78e792013-10-10 23:47:01 -07007106 tScanEventType event;
7107 tANI_U32 channel;
7108 tANI_U32 scanId;
7109} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07007110
Kumar Anandea78e792013-10-10 23:47:01 -07007111/*---------------------------------------------------------------------------
7112 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
7113 *-------------------------------------------------------------------------*/
7114typedef PACKED_PRE struct PACKED_POST
7115{
7116 tHalMsgHeader header;
7117 tScanOffloadEventInfo scanOffloadInd;
7118} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07007119
Kumar Anandea78e792013-10-10 23:47:01 -07007120typedef PACKED_PRE struct PACKED_POST {
7121 /** primary 20 MHz channel frequency in mhz */
7122 tANI_U32 mhz;
7123 /** Center frequency 1 in MHz*/
7124 tANI_U32 band_center_freq1;
7125 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
7126 tANI_U32 band_center_freq2;
7127 /* The first 26 bits are a bit mask to indicate any channel flags,
7128 (see WLAN_HAL_CHAN_FLAG*)
7129 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
7130 tANI_U32 channel_info;
7131 /** contains min power, max power, reg power and reg class id. */
7132 tANI_U32 reg_info_1;
7133 /** contains antennamax */
7134 tANI_U32 reg_info_2;
7135} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007136
Kumar Anandf53016f2013-09-04 15:15:53 -07007137
Kumar Anandea78e792013-10-10 23:47:01 -07007138typedef enum {
7139 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
7140 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
7141 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
7142 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
7143 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
7144 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
7145 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
7146 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
7147 WLAN_HAL_MODE_11AC_VHT20 = 8,
7148 WLAN_HAL_MODE_11AC_VHT40 = 9,
7149 WLAN_HAL_MODE_11AC_VHT80 = 10,
7150 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
7151 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
7152 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
7153 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07007154
Kumar Anandea78e792013-10-10 23:47:01 -07007155} tChannelPhyModeType;
7156
7157#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
7158#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
7159#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
7160#define WLAN_HAL_CHAN_AP_DISABLED 9
7161#define WLAN_HAL_CHAN_FLAG_DFS 10
7162#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
7163#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007164#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
7165
7166#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007167 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007168 } while(0)
7169
7170#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07007171 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08007172
7173#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
7174 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
7175 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
7176 } while(0)
7177#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
7178
7179#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
7180 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
7181 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
7182 } while(0)
7183#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
7184
7185#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
7186 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
7187 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
7188 } while(0)
7189#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
7190#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
7191 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
7192 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
7193 } while(0)
7194#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
7195
7196#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
7197 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
7198 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
7199 } while(0)
7200#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
7201
7202#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
7203 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
7204 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
7205 } while(0)
7206#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 -07007207
7208typedef PACKED_PRE struct PACKED_POST
7209{
7210 tANI_U8 numChan;
7211 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7212} tUpdateChannelReqType;
7213
7214/*---------------------------------------------------------------------------
7215 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
7216 *-------------------------------------------------------------------------*/
7217typedef PACKED_PRE struct PACKED_POST
7218{
7219 tHalMsgHeader header;
7220 tUpdateChannelReqType updateChannelParams;
7221} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
7222
7223/*---------------------------------------------------------------------------
7224 * WLAN_HAL_UPDATE_CHANNEL_LIST_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} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7234
7235
7236/*---------------------------------------------------------------------------
7237* WLAN_HAL_TX_FAIL_IND
7238*--------------------------------------------------------------------------*/
7239// Northbound indication from FW to host on weak link detection
7240typedef PACKED_PRE struct PACKED_POST
7241{
7242 // Sequence number increases by 1 whenever the device driver
7243 // sends a notification event. This is cleared as 0 when the
7244 // JOIN IBSS commamd is issued
7245 tANI_U16 seqNo;
7246 tANI_U16 staId;
7247 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7248} tHalTXFailIndParams, *tpHalTXFailIndParams;
7249
7250typedef PACKED_PRE struct PACKED_POST
7251{
7252 tHalMsgHeader header;
7253 tHalTXFailIndParams txFailIndParams;
7254} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7255
7256/*---------------------------------------------------------------------------
7257* WLAN_HAL_TX_FAIL_MONITOR_IND
7258*--------------------------------------------------------------------------*/
7259// Southbound message from Host to monitor the Tx failures
7260typedef PACKED_PRE struct PACKED_POST
7261{
7262 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7263 tANI_U8 tx_fail_count;
7264} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7265
7266typedef PACKED_PRE struct PACKED_POST
7267{
7268 tHalMsgHeader header;
7269 tTXFailMonitorInfo txFailMonitor;
7270} tTXFailMonitorInd, *tpTXFailMonitorInd;
7271
7272/*---------------------------------------------------------------------------
7273* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7274*--------------------------------------------------------------------------*/
7275typedef PACKED_PRE struct PACKED_POST
7276{
7277 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7278 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7279} tDestIpNextHopMacPair;
7280
7281typedef PACKED_PRE struct PACKED_POST
7282{
7283 tANI_U8 numEntries;
7284 tDestIpNextHopMacPair destIpMacPair[1];
7285} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007286
7287typedef PACKED_PRE struct PACKED_POST
7288{
7289 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007290 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7291} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007292
Kumar Anandf53016f2013-09-04 15:15:53 -07007293/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007294 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7295 *-------------------------------------------------------------------------*/
7296typedef enum
7297{
7298 /* reassociation is done, but couldn't finish security handshake */
7299 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7300
7301 /* roam has successfully completed by firmware */
7302 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7303
7304 /* UNKONW error */
7305 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7306}tHalRoamOffloadRoamAuthStatus;
7307
7308typedef enum
7309{
7310 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7311 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7312 WLAN_HAL_ROAM_TYPE_OKC,
7313 WLAN_HAL_ROAM_TYPE_CCKM,
7314 WLAN_HAL_ROAM_TYPE_FT,
7315 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7316} tHalRoamOffloadType;
7317
7318typedef PACKED_PRE struct PACKED_POST
7319{
7320 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7321 tANI_U16 beaconProbeRespOffset;
7322
7323 /* Length of beaon / probe resp. */
7324 tANI_U16 beaconProbeRespLength;
7325
7326 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7327 tANI_U16 reassocRespOffset;
7328
7329 /* Length of reassoc resp. */
7330 tANI_U16 reassocRespLength;
7331
7332 /* 0 for probe response frame, 1 for beacon frame, */
7333 tANI_U8 isBeacon;
7334
7335 /* staIdx of old AP */
7336 tANI_U8 oldStaIdx;
7337
7338 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7339 tConfigBssRspParams */
7340 /* bssIdx of new roamed AP */
7341 tANI_U8 bssIdx;
7342
7343 /* DPU descriptor index for PTK */
7344 tANI_U8 dpuDescIndx;
7345
7346 /* PTK DPU signature */
7347 tANI_U8 ucastDpuSignature;
7348
7349 /* DPU descriptor index for GTK*/
7350 tANI_U8 bcastDpuDescIndx;
7351
7352 /* GTK DPU signature */
7353 tANI_U8 bcastDpuSignature;
7354
7355 /*DPU descriptor for IGTK*/
7356 tANI_U8 mgmtDpuDescIndx;
7357
7358 /* IGTK DPU signature */
7359 tANI_U8 mgmtDpuSignature;
7360
7361 /* Station Index for BSS entry*/
7362 tANI_U8 staIdx;
7363
7364 /* Self station index for this BSS */
7365 tANI_U8 selfStaIdx;
7366
7367 /* Bcast station for buffering bcast frames in AP role */
7368 tANI_U8 bcastStaIdx;
7369
7370 /* MAC address of roamed AP */
7371 tSirMacAddr bssid;
7372
7373 /*HAL fills in the tx power used for mgmt frames in this field. */
7374 tANI_S8 txMgmtPower;
7375
7376 /* success or failure */
7377 tHalRoamOffloadRoamAuthStatus authStatus;
7378
7379 /* TODO : add more info as needed */
7380
7381 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7382 /* Beacon or probe resp from new AP. This is in 802.11
7383 frame format starting with MAC header. */
7384 /* Up to beaconProbeRespLength */
7385
7386 /* reassocRespOffset points to starting of reassoc resp frame */
7387 /* Reassoc resp from new AP. This is in 802.11
7388 frame format starting with MAC header. */
7389 /* Up to reassocRespLength */
7390
7391} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7392
7393
7394typedef PACKED_PRE struct PACKED_POST
7395{
7396 tHalMsgHeader header;
7397 tHalRoamOffloadSynchIndParams params;
7398} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7399
7400/*---------------------------------------------------------------------------
7401 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7402 *-------------------------------------------------------------------------*/
7403typedef PACKED_PRE struct PACKED_POST
7404{
7405 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7406 tSirMacAddr bssid;
7407} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7408
7409typedef PACKED_PRE struct PACKED_POST
7410{
7411 tHalMsgHeader header;
7412 tHalRoamOffloadSynchCnfParams params;
7413} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7414
7415
7416/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007417 WLAN_HAL_RATE_UPDATE_IND
7418 *-------------------------------------------------------------------------*/
7419
7420typedef PACKED_PRE struct PACKED_POST
7421{
7422 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7423 tANI_S32 ucastDataRate; //unit Mbpsx10
7424
7425 /* TX flag to differentiate between HT20, HT40 etc */
7426 tTxRateInfoFlags ucastDataRateTxFlag;
7427
7428 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7429 tSirMacAddr bssid;
7430
7431 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7432 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7433
7434 /* TX flag to differentiate between HT20, HT40 etc */
7435 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7436
7437 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7438 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7439
7440 /* TX flag to differentiate between HT20, HT40 etc */
7441 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7442
7443 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7444 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7445
7446 /* TX flag to differentiate between HT20, HT40 etc */
7447 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7448
7449} tHalRateUpdateParams, *tpHalRateUpdateParams;
7450
7451typedef PACKED_PRE struct PACKED_POST
7452{
7453 tHalMsgHeader header;
7454 tHalRateUpdateParams halRateUpdateParams;
7455} tHalRateUpdateInd, * tpHalRateUpdateInd;
7456
7457/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307458 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7459 *-------------------------------------------------------------------------*/
7460
7461#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 4
7462
7463typedef PACKED_PRE struct PACKED_POST
7464{
7465 tANI_U32 startFreq;
7466 tANI_U32 endFreq;
7467} tHalFreqRange, *tpHalFreqRange;
7468
7469typedef PACKED_PRE struct PACKED_POST
7470{
7471 tANI_U32 avoidCnt;
7472 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7473} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7474
7475typedef PACKED_PRE struct PACKED_POST
7476{
7477 tHalMsgHeader header;
7478 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7479} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7480
7481/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307482 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007483 *-------------------------------------------------------------------------*/
7484
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307485typedef enum
7486{
7487 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7488 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7489 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7490}tHT40OBssScanCmdType;
7491
7492typedef PACKED_PRE struct PACKED_POST
7493{
7494 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007495
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307496 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007497 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7498 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7499 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7500 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7501 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7502 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7503 tANI_U16 OBSSScanActivityThreshold;
7504
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307505 tANI_U8 selfStaIdx;
7506 tANI_U8 bssIdx;
7507 tANI_U8 fortyMHZIntolerent;
7508 tANI_U8 channelCount;
7509 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7510 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007511
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307512 tANI_U16 ieFieldLen;
7513 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7514}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7515
7516typedef PACKED_PRE struct PACKED_POST
7517{
7518 tHalMsgHeader header;
7519 tHT40ObssScanIndType scanHT40ObssScanParams;
7520} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7521
7522/*---------------------------------------------------------------------------
7523 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7524 *-------------------------------------------------------------------------*/
7525typedef PACKED_PRE struct PACKED_POST
7526{
7527 tHalMsgHeader header;
7528 tANI_U8 bssIdx;
7529} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Sunil Dutt8377a382014-05-26 21:18:04 +05307530/*--------------------------------------------------------------------------
7531* WLAN_HAL_LL_SET_STATS_REQ
7532*---------------------------------------------------------------------------*/
7533
7534typedef PACKED_PRE struct PACKED_POST
7535{
7536 tANI_U32 req_id;
7537 tANI_U8 sta_id;
7538 tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
7539 tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
7540} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
7541
7542typedef PACKED_PRE struct PACKED_POST
7543{
7544 tHalMsgHeader header;
7545 tHalMacLlSetStatsReqParams LlSetStatsReqParams;
7546} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
7547
7548/*---------------------------------------------------------------------------
7549 WLAN_HAL_LL_SET_STATS_RSP
7550---------------------------------------------------------------------------*/
7551
7552typedef PACKED_PRE struct PACKED_POST
7553{
7554 tANI_U32 status;
7555 tANI_U32 resp_id;
7556 tANI_U8 iface_id;
7557} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
7558
7559typedef PACKED_PRE struct PACKED_POST
7560{
7561 tHalMsgHeader header;
7562 tHalMacLlSetStatsRspParams LlSetStatsRspParams;
7563} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
7564
7565/*---------------------------------------------------------------------------
7566 WLAN_HAL_LL_GET_STATS_REQ
7567---------------------------------------------------------------------------*/
7568
7569typedef PACKED_PRE struct PACKED_POST
7570{
7571 tANI_U32 req_id;
7572 tANI_U8 sta_id;
7573 tANI_U32 param_id_mask;
7574} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
7575
7576typedef PACKED_PRE struct PACKED_POST
7577{
7578 tHalMsgHeader header;
7579 tHalMacLlGetStatsReqParams LlGetStatsReqParams;
7580} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
7581
7582/*---------------------------------------------------------------------------
7583 WLAN_HAL_LL_GET_STATS_RSP
7584---------------------------------------------------------------------------*/
7585typedef PACKED_PRE struct PACKED_POST
7586{
7587 tANI_U32 status;
7588 tANI_U32 resp_id;
7589 tANI_U8 iface_id;
7590} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
7591
7592typedef PACKED_PRE struct PACKED_POST
7593{
7594 tHalMsgHeader header;
7595 tHalMacLlGetStatsRspParams LlGetStatsRspParams;
7596} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
7597
7598/*---------------------------------------------------------------------------
7599 WLAN_HAL_LL_CLEAR_STATS_REQ
7600---------------------------------------------------------------------------*/
7601typedef PACKED_PRE struct PACKED_POST
7602{
7603 tANI_U32 req_id;
7604 tANI_U8 sta_id;
7605 tANI_U32 stats_clear_req_mask;
7606 tANI_U8 stop_req;
7607} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
7608
7609typedef PACKED_PRE struct PACKED_POST
7610{
7611 tHalMsgHeader header;
7612 tHalMacLlClearStatsReqParams LlClearStatsReqParams;
7613} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
7614
7615/*---------------------------------------------------------------------------
7616 WLAN_HAL_LL_CLEAR_STATS_RSP
7617---------------------------------------------------------------------------*/
7618typedef PACKED_PRE struct PACKED_POST
7619{
7620 tANI_U32 status;
7621 tANI_U8 sta_id;
7622 tANI_U32 resp_id;
7623 tANI_U32 stats_clear_rsp_mask;
7624 tANI_U8 stop_req_status;
7625} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
7626
7627typedef PACKED_PRE struct PACKED_POST
7628{
7629 tHalMsgHeader header;
7630 tHalMacLlClearStatsRspParams LlClearStatsRspParams;
7631} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
7632
7633/*---------------------------------------------------------------------------
7634 WLAN_HAL_LL_NOTIFY_STATS
7635---------------------------------------------------------------------------*/
7636
7637typedef PACKED_PRE struct PACKED_POST
7638{
7639 tHalMsgHeader header;
7640 tANI_U32 param_id;
7641 tANI_U8 iface_id;
7642 tANI_U32 resp_id;
7643 tANI_U32 more_result_to_follow;
7644 tANI_U8 result[1];
7645} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007646
Jeff Johnson295189b2012-06-20 16:38:30 -07007647#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
7648#pragma pack(pop)
7649#elif defined(__ANI_COMPILER_PRAGMA_PACK)
7650#else
7651#endif
7652
c_hpothua047e572014-05-01 15:03:11 +05307653/*---------------------------------------------------------------------------
c_hpothu80c30472014-04-14 19:04:48 +05307654 * WLAN_HAL_PRINT_REG_INFO_IND
7655 *--------------------------------------------------------------------------*/
7656
7657typedef PACKED_PRE struct PACKED_POST
7658{
7659 uint32 regAddr;
7660 uint32 regValue;
7661} tHalRegDebugInfo, *tpRegDebugInfo;
7662
7663typedef PACKED_PRE struct PACKED_POST
7664{
7665 uint32 regCount;
7666 uint32 scenario;
7667 uint32 reasonCode;
7668} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
7669
7670typedef PACKED_PRE struct PACKED_POST
7671{
7672 tHalMsgHeader header;
7673 tHalRegDebugInfoParams regParams;
7674} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
7675
c_hpothua047e572014-05-01 15:03:11 +05307676/*---------------------------------------------------------------------------
7677 * WLAN_HAL_GET_BCN_MISS_RATE_REQ
7678 *--------------------------------------------------------------------------*/
7679typedef PACKED_PRE struct PACKED_POST
7680{
7681 /* Valid STA Idx for per STA stats request */
7682 tANI_U8 bssIdx;
7683}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
7684
7685/*---------------------------------------------------------------------------
7686 * WLAN_HAL_GET_BCN_MISS_RATE_RSP
7687 *--------------------------------------------------------------------------*/
7688typedef PACKED_PRE struct PACKED_POST
7689{
7690 tANI_U32 status;
7691 tANI_U32 bcnMissCnt;
7692}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
7693
Jeff Johnson295189b2012-06-20 16:38:30 -07007694#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07007695