blob: 19361e378c1a50b265d0b0db23510df7eb8d67b4 [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Prakash Dhavali0573c4d2014-02-12 13:19:04 -08002 * 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 */
21
22/*
23 * 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
86#define WALN_HAL_STA_INVALID_IDX 0xFF
87#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
Varun Reddy Yeturu94d94c12014-02-06 11:12:56 -0800120/* 80 is actually NUM_RF_CHANNELS_V2, but beyond V2,
121 * this number will be ignored by FW */
122#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS 80
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -0800123#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 56
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
443 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530444 /* 2G4 HT40 OBSS scan */
445 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
446 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800447 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700448}tHalHostMsgType;
449
Jeff Johnsone7245742012-09-05 17:12:55 -0700450/* Enumeration for Version */
451typedef enum
452{
453 WLAN_HAL_MSG_VERSION0 = 0,
454 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800455 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
456 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700457}tHalHostMsgVersion;
458
Jeff Johnson295189b2012-06-20 16:38:30 -0700459/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700460typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700461{
462 eANI_BOOLEAN_FALSE = 0,
463 eANI_BOOLEAN_TRUE,
464 eANI_BOOLEAN_OFF = 0,
465 eANI_BOOLEAN_ON = 1,
466 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
467} eAniBoolean;
468
469typedef enum
470{
471 eDRIVER_TYPE_PRODUCTION = 0,
472 eDRIVER_TYPE_MFG = 1,
473 eDRIVER_TYPE_DVT = 2,
474 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
475} tDriverType;
476
477typedef enum
478{
479 HAL_STOP_TYPE_SYS_RESET,
480 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
481 HAL_STOP_TYPE_RF_KILL,
482 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
483}tHalStopType;
484
485typedef enum
486{
487 eHAL_SYS_MODE_NORMAL,
488 eHAL_SYS_MODE_LEARN,
489 eHAL_SYS_MODE_SCAN,
490 eHAL_SYS_MODE_PROMISC,
491 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700492 eHAL_SYS_MODE_ROAM_SCAN,
493 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700494 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700495 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
496} eHalSysMode;
497
498typedef enum
499{
500 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
501 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
502 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
503 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700504#ifdef WLAN_FEATURE_11AC
505 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
506 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
507 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
508 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
509 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
510 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
511 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
512#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700513 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
514}ePhyChanBondState;
515
516// Spatial Multiplexing(SM) Power Save mode
517typedef enum eSirMacHTMIMOPowerSaveState
518{
519 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
520 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
521 eSIR_HT_MIMO_PS_NA = 2, // reserved
522 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
523 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
524} tSirMacHTMIMOPowerSaveState;
525
526/* each station added has a rate mode which specifies the sta attributes */
527typedef enum eStaRateMode {
528 eSTA_TAURUS = 0,
529 eSTA_TITAN,
530 eSTA_POLARIS,
531 eSTA_11b,
532 eSTA_11bg,
533 eSTA_11a,
534 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700535#ifdef WLAN_FEATURE_11AC
536 eSTA_11ac,
537#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700538 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
539} tStaRateMode, *tpStaRateMode;
540
541#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
542#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
543#define SIR_NUM_POLARIS_RATES 3 //72,96,108
544
545#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
546
547
548typedef enum eSirBssType
549{
550 eSIR_INFRASTRUCTURE_MODE,
551 eSIR_INFRA_AP_MODE, //Added for softAP support
552 eSIR_IBSS_MODE,
553 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
554 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
555 eSIR_AUTO_MODE,
556 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
557} tSirBssType;
558
559typedef enum eSirNwType
560{
561 eSIR_11A_NW_TYPE,
562 eSIR_11B_NW_TYPE,
563 eSIR_11G_NW_TYPE,
564 eSIR_11N_NW_TYPE,
565 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
566} tSirNwType;
567
568typedef tANI_U16 tSirMacBeaconInterval;
569
570#define SIR_MAC_RATESET_EID_MAX 12
571
572typedef enum eSirMacHTOperatingMode
573{
574 eSIR_HT_OP_MODE_PURE, // No Protection
575 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
576 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
577 eSIR_HT_OP_MODE_MIXED, // Protection is required
578 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
579} tSirMacHTOperatingMode;
580
Jeff Johnson295189b2012-06-20 16:38:30 -0700581/// Encryption type enum used with peer
582typedef enum eAniEdType
583{
584 eSIR_ED_NONE,
585 eSIR_ED_WEP40,
586 eSIR_ED_WEP104,
587 eSIR_ED_TKIP,
588 eSIR_ED_CCMP,
589 eSIR_ED_WPI,
590 eSIR_ED_AES_128_CMAC,
591 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
592} tAniEdType;
593
594#define WLAN_MAX_KEY_RSC_LEN 16
595#define WLAN_WAPI_KEY_RSC_LEN 16
596
597/// MAX key length when ULA is used
598#define SIR_MAC_MAX_KEY_LENGTH 32
599#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
600
601/// Enum to specify whether key is used
602/// for TX only, RX only or both
603typedef enum eAniKeyDirection
604{
605 eSIR_TX_ONLY,
606 eSIR_RX_ONLY,
607 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700608 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700609 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
610} tAniKeyDirection;
611
612typedef enum eAniWepType
613{
614 eSIR_WEP_STATIC,
615 eSIR_WEP_DYNAMIC,
616 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
617} tAniWepType;
618
619typedef enum eSriLinkState {
620
621 eSIR_LINK_IDLE_STATE = 0,
622 eSIR_LINK_PREASSOC_STATE = 1,
623 eSIR_LINK_POSTASSOC_STATE = 2,
624 eSIR_LINK_AP_STATE = 3,
625 eSIR_LINK_IBSS_STATE = 4,
626
627 /* BT-AMP Case */
628 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
629 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
630 eSIR_LINK_BTAMP_AP_STATE = 7,
631 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700632
Jeff Johnson295189b2012-06-20 16:38:30 -0700633 /* Reserved for HAL Internal Use */
634 eSIR_LINK_LEARN_STATE = 9,
635 eSIR_LINK_SCAN_STATE = 10,
636 eSIR_LINK_FINISH_SCAN_STATE = 11,
637 eSIR_LINK_INIT_CAL_STATE = 12,
638 eSIR_LINK_FINISH_CAL_STATE = 13,
639#ifdef WLAN_FEATURE_P2P
640 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530641 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700642#endif
643 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
644} tSirLinkState;
645
646typedef enum
647{
648 HAL_SUMMARY_STATS_INFO = 0x00000001,
649 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
650 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
651 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
652 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
653 HAL_PER_STA_STATS_INFO = 0x00000020
654}eHalStatsMask;
655
656/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700657typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700658{
659 BTAMP_EVENT_CONNECTION_START,
660 BTAMP_EVENT_CONNECTION_STOP,
661 BTAMP_EVENT_CONNECTION_TERMINATED,
662 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
663} tBtAmpEventType;
664
665//***************************************************************
666
667
668/*******************PE Statistics*************************/
669typedef enum
670{
671 PE_SUMMARY_STATS_INFO = 0x00000001,
672 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
673 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
674 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
675 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
676 PE_PER_STA_STATS_INFO = 0x00000020,
677 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
678}ePEStatsMask;
679
680/*---------------------------------------------------------------------------
681 Message definitons - All the messages below need to be packed
682 ---------------------------------------------------------------------------*/
683
684#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
685#pragma pack(push, 1)
686#elif defined(__ANI_COMPILER_PRAGMA_PACK)
687#pragma pack(1)
688#else
689#endif
690
691/// Definition for HAL API Version.
692typedef PACKED_PRE struct PACKED_POST
693{
694 tANI_U8 revision;
695 tANI_U8 version;
696 tANI_U8 minor;
697 tANI_U8 major;
698} tWcnssWlanVersion, *tpWcnssWlanVersion;
699
700/// Definition for Encryption Keys
701typedef PACKED_PRE struct PACKED_POST
702{
703 tANI_U8 keyId;
704 tANI_U8 unicast; // 0 for multicast
705 tAniKeyDirection keyDirection;
706 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
707 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
708 tANI_U16 keyLength;
709 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
710} tSirKeys, *tpSirKeys;
711
712
713//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
714typedef PACKED_PRE struct PACKED_POST
715{
716 /*STA Index*/
717 tANI_U16 staIdx;
718
719 /*Encryption Type used with peer*/
720 tAniEdType encType;
721
722 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700723 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700724
725 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
726 tANI_U8 defWEPIdx;
727
Jeff Johnson295189b2012-06-20 16:38:30 -0700728 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700729 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
730
Jeff Johnson295189b2012-06-20 16:38:30 -0700731 /*Control for Replay Count, 1= Single TID based replay count on Tx
732 0 = Per TID based replay count on TX */
733 tANI_U8 singleTidRc;
734
735} tSetStaKeyParams, *tpSetStaKeyParams;
736
737
738
739/* 4-byte control message header used by HAL*/
740typedef PACKED_PRE struct PACKED_POST
741{
Jeff Johnsone7245742012-09-05 17:12:55 -0700742 tHalHostMsgType msgType:16;
743 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700744 tANI_U32 msgLen;
745} tHalMsgHeader, *tpHalMsgHeader;
746
747/* Config format required by HAL for each CFG item*/
748typedef PACKED_PRE struct PACKED_POST
749{
750 /* Cfg Id. The Id required by HAL is exported by HAL
751 * in shared header file between UMAC and HAL.*/
752 tANI_U16 uCfgId;
753
Jeff Johnson32d95a32012-09-10 13:15:23 -0700754 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700755 * in the TLV format.*/
756 tANI_U16 uCfgLen;
757
758 /* Padding bytes for unaligned address's */
759 tANI_U16 uCfgPadBytes;
760
761 /* Reserve bytes for making cfgVal to align address */
762 tANI_U16 uCfgReserve;
763
764 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
765 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
766} tHalCfg, *tpHalCfg;
767
768/*---------------------------------------------------------------------------
769 WLAN_HAL_START_REQ
770---------------------------------------------------------------------------*/
771
772typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
773{
774 /* Drive Type - Production or FTM etc */
775 tDriverType driverType;
776
777 /*Length of the config buffer*/
778 tANI_U32 uConfigBufferLen;
779
Jeff Johnson32d95a32012-09-10 13:15:23 -0700780 /* Following this there is a TLV formatted buffer of length
781 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700782 * The TLV is expected to be formatted like this:
783 * 0 15 31 31+CFG_LEN-1 length-1
784 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
785 */
786} tHalMacStartParameters, *tpHalMacStartParameters;
787
788typedef PACKED_PRE struct PACKED_POST
789{
790 /* Note: The length specified in tHalMacStartReqMsg messages should be
791 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
792 tHalMsgHeader header;
793 tHalMacStartParameters startReqParams;
794} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
795
796/*---------------------------------------------------------------------------
797 WLAN_HAL_START_RSP
798---------------------------------------------------------------------------*/
799
800typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
801{
802 /*success or failure */
803 tANI_U16 status;
804
805 /*Max number of STA supported by the device*/
806 tANI_U8 ucMaxStations;
807
808 /*Max number of BSS supported by the device*/
809 tANI_U8 ucMaxBssids;
810
811 /*API Version */
812 tWcnssWlanVersion wcnssWlanVersion;
813
814 /*CRM build information */
815 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
816
817 /*hardware/chipset/misc version information */
818 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
819
820} tHalMacStartRspParams, *tpHalMacStartRspParams;
821
822typedef PACKED_PRE struct PACKED_POST
823{
824 tHalMsgHeader header;
825 tHalMacStartRspParams startRspParams;
826} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
827
828/*---------------------------------------------------------------------------
829 WLAN_HAL_STOP_REQ
830---------------------------------------------------------------------------*/
831
832typedef PACKED_PRE struct PACKED_POST
833{
834 /*The reason for which the device is being stopped*/
835 tHalStopType reason;
836
837}tHalMacStopReqParams, *tpHalMacStopReqParams;
838
839typedef PACKED_PRE struct PACKED_POST
840{
841 tHalMsgHeader header;
842 tHalMacStopReqParams stopReqParams;
843} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
844
845/*---------------------------------------------------------------------------
846 WLAN_HAL_STOP_RSP
847---------------------------------------------------------------------------*/
848
849typedef PACKED_PRE struct PACKED_POST
850{
851 /*success or failure */
852 tANI_U32 status;
853
854}tHalMacStopRspParams, *tpHalMacStopRspParams;
855
856typedef PACKED_PRE struct PACKED_POST
857{
858 tHalMsgHeader header;
859 tHalMacStopRspParams stopRspParams;
860} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
861
862/*---------------------------------------------------------------------------
863 WLAN_HAL_UPDATE_CFG_REQ
864---------------------------------------------------------------------------*/
865
866typedef PACKED_PRE struct PACKED_POST
867{
868 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
869 tANI_U32 uConfigBufferLen;
870
Jeff Johnson32d95a32012-09-10 13:15:23 -0700871 /* Following this there is a TLV formatted buffer of length
872 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700873 * The TLV is expected to be formatted like this:
874 * 0 15 31 31+CFG_LEN-1 length-1
875 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
876 */
877} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
878
879typedef PACKED_PRE struct PACKED_POST
880{
881 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
882 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
883 tHalMsgHeader header;
884 tHalUpdateCfgReqParams updateCfgReqParams;
885} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
886
887/*---------------------------------------------------------------------------
888 WLAN_HAL_UPDATE_CFG_RSP
889---------------------------------------------------------------------------*/
890
891typedef PACKED_PRE struct PACKED_POST
892{
893 /* success or failure */
894 tANI_U32 status;
895
896}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
897
898typedef PACKED_PRE struct PACKED_POST
899{
900 tHalMsgHeader header;
901 tHalUpdateCfgRspParams updateCfgRspParams;
902} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
903
904/*---------------------------------------------------------------------------
905 WLAN_HAL_INIT_SCAN_REQ
906---------------------------------------------------------------------------*/
907
908/// Frame control field format (2 bytes)
909typedef __ani_attr_pre_packed struct sSirMacFrameCtl
910{
911
912#ifndef ANI_LITTLE_BIT_ENDIAN
913
914 tANI_U8 subType :4;
915 tANI_U8 type :2;
916 tANI_U8 protVer :2;
917
918 tANI_U8 order :1;
919 tANI_U8 wep :1;
920 tANI_U8 moreData :1;
921 tANI_U8 powerMgmt :1;
922 tANI_U8 retry :1;
923 tANI_U8 moreFrag :1;
924 tANI_U8 fromDS :1;
925 tANI_U8 toDS :1;
926
927#else
928
929 tANI_U8 protVer :2;
930 tANI_U8 type :2;
931 tANI_U8 subType :4;
932
933 tANI_U8 toDS :1;
934 tANI_U8 fromDS :1;
935 tANI_U8 moreFrag :1;
936 tANI_U8 retry :1;
937 tANI_U8 powerMgmt :1;
938 tANI_U8 moreData :1;
939 tANI_U8 wep :1;
940 tANI_U8 order :1;
941
942#endif
943
944} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
945
946/// Sequence control field
947typedef __ani_attr_pre_packed struct sSirMacSeqCtl
948{
949 tANI_U8 fragNum : 4;
950 tANI_U8 seqNumLo : 4;
951 tANI_U8 seqNumHi : 8;
952} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
953
954/// Management header format
955typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
956{
957 tSirMacFrameCtl fc;
958 tANI_U8 durationLo;
959 tANI_U8 durationHi;
960 tANI_U8 da[6];
961 tANI_U8 sa[6];
962 tANI_U8 bssId[6];
963 tSirMacSeqCtl seqControl;
964} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
965
966/// Scan Entry to hold active BSS idx's
967typedef __ani_attr_pre_packed struct sSirScanEntry
968{
969 tANI_U8 bssIdx[HAL_NUM_BSSID];
970 tANI_U8 activeBSScnt;
971}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
972
973typedef PACKED_PRE struct PACKED_POST {
974
975 /*LEARN - AP Role
976 SCAN - STA Role*/
977 eHalSysMode scanMode;
978
979 /*BSSID of the BSS*/
980 tSirMacAddr bssid;
981
982 /*Whether BSS needs to be notified*/
983 tANI_U8 notifyBss;
984
985 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
986 CTS to Self). Must always be a valid frame type.*/
987 tANI_U8 frameType;
988
989 /*UMAC has the option of passing the MAC frame to be used for notifying
990 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
991 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
992 frameType.*/
993 tANI_U8 frameLength;
994
Jeff Johnson32d95a32012-09-10 13:15:23 -0700995 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700996 is non-zero. */
997 tSirMacMgmtHdr macMgmtHdr;
998
999 /*Entry to hold number of active BSS idx's*/
1000 tSirScanEntry scanEntry;
1001
1002} tInitScanParams, * tpInitScanParams;
1003
1004typedef PACKED_PRE struct PACKED_POST
1005{
1006 tHalMsgHeader header;
1007 tInitScanParams initScanParams;
1008} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1009
1010typedef PACKED_PRE struct PACKED_POST {
1011
1012 /*LEARN - AP Role
1013 SCAN - STA Role*/
1014 eHalSysMode scanMode;
1015
1016 /*BSSID of the BSS*/
1017 tSirMacAddr bssid;
1018
1019 /*Whether BSS needs to be notified*/
1020 tANI_U8 notifyBss;
1021
1022 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1023 CTS to Self). Must always be a valid frame type.*/
1024 tANI_U8 frameType;
1025
1026 /*UMAC has the option of passing the MAC frame to be used for notifying
1027 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1028 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1029 frameType.*/
1030 tANI_U8 frameLength;
1031
Jeff Johnson32d95a32012-09-10 13:15:23 -07001032 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001033 is non-zero. */
1034 tSirMacMgmtHdr macMgmtHdr;
1035
1036 /*Entry to hold number of active BSS idx's*/
1037 tSirScanEntry scanEntry;
1038
1039 /* Single NoA usage in Scanning */
1040 tANI_U8 useNoA;
1041
1042 /* Indicates the scan duration (in ms) */
1043 tANI_U16 scanDuration;
1044
1045} tInitScanConParams, * tpInitScanConParams;
1046
1047typedef PACKED_PRE struct PACKED_POST
1048{
1049 tHalMsgHeader header;
1050 tInitScanConParams initScanParams;
1051} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1052
1053
1054/*---------------------------------------------------------------------------
1055 WLAN_HAL_INIT_SCAN_RSP
1056---------------------------------------------------------------------------*/
1057
1058typedef PACKED_PRE struct PACKED_POST
1059{
1060 /*success or failure */
1061 tANI_U32 status;
1062
1063}tHalInitScanRspParams, *tpHalInitScanRspParams;
1064
1065typedef PACKED_PRE struct PACKED_POST
1066{
1067 tHalMsgHeader header;
1068 tHalInitScanRspParams initScanRspParams;
1069} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1070
1071/*---------------------------------------------------------------------------
1072 WLAN_HAL_START_SCAN_REQ
1073---------------------------------------------------------------------------*/
1074
Jeff Johnson32d95a32012-09-10 13:15:23 -07001075typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001076{
1077 /*Indicates the channel to scan*/
1078 tANI_U8 scanChannel;
1079
1080 } tStartScanParams, * tpStartScanParams;
1081
1082typedef PACKED_PRE struct PACKED_POST
1083{
1084 tHalMsgHeader header;
1085 tStartScanParams startScanParams;
1086} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1087
1088/*---------------------------------------------------------------------------
1089 WLAN_HAL_START_SCAN_RSP
1090---------------------------------------------------------------------------*/
1091
1092typedef PACKED_PRE struct PACKED_POST
1093{
1094 /*success or failure */
1095 tANI_U32 status;
1096
1097 tANI_U32 startTSF[2];
1098 tPowerdBm txMgmtPower;
1099
1100}tHalStartScanRspParams, *tpHalStartScanRspParams;
1101
1102typedef PACKED_PRE struct PACKED_POST
1103{
1104 tHalMsgHeader header;
1105 tHalStartScanRspParams startScanRspParams;
1106} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1107
1108/*---------------------------------------------------------------------------
1109 WLAN_HAL_END_SCAN_REQ
1110---------------------------------------------------------------------------*/
1111
1112typedef PACKED_PRE struct PACKED_POST
1113{
1114 /*Indicates the channel to stop scanning. Not used really. But retained
1115 for symmetry with "start Scan" message. It can also help in error
1116 check if needed.*/
1117 tANI_U8 scanChannel;
1118
1119} tEndScanParams, *tpEndScanParams;
1120
1121typedef PACKED_PRE struct PACKED_POST
1122{
1123 tHalMsgHeader header;
1124 tEndScanParams endScanParams;
1125} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1126
1127/*---------------------------------------------------------------------------
1128 WLAN_HAL_END_SCAN_RSP
1129---------------------------------------------------------------------------*/
1130
1131typedef PACKED_PRE struct PACKED_POST
1132{
1133 /*success or failure */
1134 tANI_U32 status;
1135
1136}tHalEndScanRspParams, *tpHalEndScanRspParams;
1137
1138typedef PACKED_PRE struct PACKED_POST
1139{
1140 tHalMsgHeader header;
1141 tHalEndScanRspParams endScanRspParams;
1142} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1143
1144/*---------------------------------------------------------------------------
1145 WLAN_HAL_FINISH_SCAN_REQ
1146---------------------------------------------------------------------------*/
1147
1148typedef PACKED_PRE struct PACKED_POST
1149{
1150 /* Identifies the operational state of the AP/STA
1151 * LEARN - AP Role SCAN - STA Role */
1152 eHalSysMode scanMode;
1153
1154 /*Operating channel to tune to.*/
1155 tANI_U8 currentOperChannel;
1156
1157 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1158 40 MHz extension channel in combination with the control channel*/
1159 ePhyChanBondState cbState;
1160
1161 /*BSSID of the BSS*/
1162 tSirMacAddr bssid;
1163
1164 /*Whether BSS needs to be notified*/
1165 tANI_U8 notifyBss;
1166
1167 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1168 CTS to Self). Must always be a valid frame type.*/
1169 tANI_U8 frameType;
1170
1171 /*UMAC has the option of passing the MAC frame to be used for notifying
1172 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1173 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1174 frameType.*/
1175 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001176
1177 /*Following the framelength there is a MAC frame buffer if frameLength
1178 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001179 tSirMacMgmtHdr macMgmtHdr;
1180
1181 /*Entry to hold number of active BSS idx's*/
1182 tSirScanEntry scanEntry;
1183
1184} tFinishScanParams, *tpFinishScanParams;
1185
1186typedef PACKED_PRE struct PACKED_POST
1187{
1188 tHalMsgHeader header;
1189 tFinishScanParams finishScanParams;
1190} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1191
1192/*---------------------------------------------------------------------------
1193 WLAN_HAL_FINISH_SCAN_RSP
1194---------------------------------------------------------------------------*/
1195
1196typedef PACKED_PRE struct PACKED_POST
1197{
1198 /*success or failure */
1199 tANI_U32 status;
1200
1201}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1202
1203typedef PACKED_PRE struct PACKED_POST
1204{
1205 tHalMsgHeader header;
1206 tHalFinishScanRspParams finishScanRspParams;
1207} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1208
1209/*---------------------------------------------------------------------------
1210 WLAN_HAL_CONFIG_STA_REQ
1211---------------------------------------------------------------------------*/
1212
1213typedef PACKED_PRE struct PACKED_POST {
1214 /*
1215 * For Self STA Entry: this represents Self Mode.
1216 * For Peer Stations, this represents the mode of the peer.
1217 * On Station:
1218 * --this mode is updated when PE adds the Self Entry.
1219 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1220 * ON AP:
1221 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1222 * to indicate the self mode of the AP.
1223 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1224 */
1225
1226 tStaRateMode opRateMode;
1227 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1228 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1229 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1230 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1231 tANI_U16 reserved;
1232
1233 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1234 //First 26 bits are reserved for those Titan rates and
1235 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1236 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1237
1238 /*
1239 * 0-76 bits used, remaining reserved
1240 * bits 0-15 and 32 should be set.
1241 */
1242 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1243
1244 /*
1245 * RX Highest Supported Data Rate defines the highest data
1246 * rate that the STA is able to receive, in unites of 1Mbps.
1247 * This value is derived from "Supported MCS Set field" inside
1248 * the HT capability element.
1249 */
1250 tANI_U16 rxHighestDataRate;
1251
1252} tSirSupportedRates, *tpSirSupportedRates;
1253
1254typedef PACKED_PRE struct PACKED_POST
1255{
1256 /*BSSID of STA*/
1257 tSirMacAddr bssId;
1258
1259 /*ASSOC ID, as assigned by UMAC*/
1260 tANI_U16 assocId;
1261
1262 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1263 tANI_U8 staType;
1264
1265 /*Short Preamble Supported.*/
1266 tANI_U8 shortPreambleSupported;
1267
1268 /*MAC Address of STA*/
1269 tSirMacAddr staMac;
1270
1271 /*Listen interval of the STA*/
1272 tANI_U16 listenInterval;
1273
1274 /*Support for 11e/WMM*/
1275 tANI_U8 wmmEnabled;
1276
1277 /*11n HT capable STA*/
1278 tANI_U8 htCapable;
1279
1280 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1281 tANI_U8 txChannelWidthSet;
1282
1283 /*RIFS mode 0 - NA, 1 - Allowed */
1284 tANI_U8 rifsMode;
1285
Jeff Johnson32d95a32012-09-10 13:15:23 -07001286 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001287 0 - No Support, 1 - Supported
1288 SG - there is global field */
1289 tANI_U8 lsigTxopProtection;
1290
1291 /*Max Ampdu Size supported by STA. TPE programming.
1292 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1293 tANI_U8 maxAmpduSize;
1294
1295 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1296 tANI_U8 maxAmpduDensity;
1297
1298 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1299 tANI_U8 maxAmsduSize;
1300
1301 /*Short GI support for 40Mhz packets*/
1302 tANI_U8 fShortGI40Mhz;
1303
1304 /*Short GI support for 20Mhz packets*/
1305 tANI_U8 fShortGI20Mhz;
1306
Jeff Johnson295189b2012-06-20 16:38:30 -07001307 /*Robust Management Frame (RMF) enabled/disabled*/
1308 tANI_U8 rmfEnabled;
1309
1310 /* The unicast encryption type in the association */
1311 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001312
1313 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001314 will set this flag in case of RE-ASSOC, where we want to reuse the old
1315 STA ID. 0 = Add, 1 = Update*/
1316 tANI_U8 action;
1317
1318 /*U-APSD Flags: 1b per AC. Encoded as follows:
1319 b7 b6 b5 b4 b3 b2 b1 b0 =
1320 X X X X BE BK VI VO */
1321 tANI_U8 uAPSD;
1322
1323 /*Max SP Length*/
1324 tANI_U8 maxSPLen;
1325
1326 /*11n Green Field preamble support
1327 0 - Not supported, 1 - Supported */
1328 tANI_U8 greenFieldCapable;
1329
1330 /*MIMO Power Save mode*/
1331 tSirMacHTMIMOPowerSaveState mimoPS;
1332
1333 /*Delayed BA Support*/
1334 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001335
Jeff Johnson295189b2012-06-20 16:38:30 -07001336 /*Max AMPDU duration in 32us*/
1337 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001338
Jeff Johnson295189b2012-06-20 16:38:30 -07001339 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1340 it to 0 if AP does not support it. This indication is sent to HAL and
1341 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1342 tANI_U8 fDsssCckMode40Mhz;
1343
1344 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1345 Retained for backward compalibity with existing HAL code*/
1346 tANI_U8 staIdx;
1347
1348 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1349 Retained for backward compalibity with existing HAL code*/
1350 tANI_U8 bssIdx;
1351
1352 tANI_U8 p2pCapableSta;
1353
Jeff Johnsone7245742012-09-05 17:12:55 -07001354 /*Reserved to align next field on a dword boundary*/
1355 tANI_U8 reserved;
1356
1357 /*These rates are the intersection of peer and self capabilities.*/
1358 tSirSupportedRates supportedRates;
1359
Jeff Johnson295189b2012-06-20 16:38:30 -07001360} tConfigStaParams, *tpConfigStaParams;
1361
Jeff Johnsone7245742012-09-05 17:12:55 -07001362/*------------------------------------------------------------------------
1363 * WLAN_HAL_CONFIG_STA_REQ
1364 * ----------------------------------------------------------------------*/
1365
1366typedef PACKED_PRE struct PACKED_POST {
1367 /*
1368 * For Self STA Entry: this represents Self Mode.
1369 * For Peer Stations, this represents the mode of the peer.
1370 * On Station:
1371 * --this mode is updated when PE adds the Self Entry.
1372 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1373 * ON AP:
1374 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1375 * to indicate the self mode of the AP.
1376 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1377 */
1378
1379 tStaRateMode opRateMode;
1380 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1381 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1382 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1383 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1384 tANI_U16 reserved;
1385
1386 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1387 //First 26 bits are reserved for those Titan rates and
1388 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1389 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1390
1391 /*
1392 * 0-76 bits used, remaining reserved
1393 * bits 0-15 and 32 should be set.
1394 */
1395 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1396
1397 /*
1398 * RX Highest Supported Data Rate defines the highest data
1399 * rate that the STA is able to receive, in unites of 1Mbps.
1400 * This value is derived from "Supported MCS Set field" inside
1401 * the HT capability element.
1402 */
1403 tANI_U16 rxHighestDataRate;
1404
1405 /* Indicates the Maximum MCS that can be received for each number
1406 * of spacial streams */
1407 tANI_U16 vhtRxMCSMap;
1408
1409 /*Indicate the highest VHT data rate that the STA is able to receive*/
1410 tANI_U16 vhtRxHighestDataRate;
1411
1412 /* Indicates the Maximum MCS that can be transmitted for each number
1413 * of spacial streams */
1414 tANI_U16 vhtTxMCSMap;
1415
1416 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1417 tANI_U16 vhtTxHighestDataRate;
1418
1419} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1420
1421typedef PACKED_PRE struct PACKED_POST
1422{
1423 /*BSSID of STA*/
1424 tSirMacAddr bssId;
1425
1426 /*ASSOC ID, as assigned by UMAC*/
1427 tANI_U16 assocId;
1428
1429 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1430 tANI_U8 staType;
1431
1432 /*Short Preamble Supported.*/
1433 tANI_U8 shortPreambleSupported;
1434
1435 /*MAC Address of STA*/
1436 tSirMacAddr staMac;
1437
1438 /*Listen interval of the STA*/
1439 tANI_U16 listenInterval;
1440
1441 /*Support for 11e/WMM*/
1442 tANI_U8 wmmEnabled;
1443
1444 /*11n HT capable STA*/
1445 tANI_U8 htCapable;
1446
1447 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1448 tANI_U8 txChannelWidthSet;
1449
1450 /*RIFS mode 0 - NA, 1 - Allowed */
1451 tANI_U8 rifsMode;
1452
1453 /*L-SIG TXOP Protection mechanism
1454 0 - No Support, 1 - Supported
1455 SG - there is global field */
1456 tANI_U8 lsigTxopProtection;
1457
1458 /*Max Ampdu Size supported by STA. TPE programming.
1459 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1460 tANI_U8 maxAmpduSize;
1461
1462 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1463 tANI_U8 maxAmpduDensity;
1464
1465 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1466 tANI_U8 maxAmsduSize;
1467
1468 /*Short GI support for 40Mhz packets*/
1469 tANI_U8 fShortGI40Mhz;
1470
1471 /*Short GI support for 20Mhz packets*/
1472 tANI_U8 fShortGI20Mhz;
1473
1474 /*Robust Management Frame (RMF) enabled/disabled*/
1475 tANI_U8 rmfEnabled;
1476
1477 /* The unicast encryption type in the association */
1478 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001479
1480 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001481 will set this flag in case of RE-ASSOC, where we want to reuse the old
1482 STA ID. 0 = Add, 1 = Update*/
1483 tANI_U8 action;
1484
1485 /*U-APSD Flags: 1b per AC. Encoded as follows:
1486 b7 b6 b5 b4 b3 b2 b1 b0 =
1487 X X X X BE BK VI VO */
1488 tANI_U8 uAPSD;
1489
1490 /*Max SP Length*/
1491 tANI_U8 maxSPLen;
1492
1493 /*11n Green Field preamble support
1494 0 - Not supported, 1 - Supported */
1495 tANI_U8 greenFieldCapable;
1496
1497 /*MIMO Power Save mode*/
1498 tSirMacHTMIMOPowerSaveState mimoPS;
1499
1500 /*Delayed BA Support*/
1501 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001502
Jeff Johnsone7245742012-09-05 17:12:55 -07001503 /*Max AMPDU duration in 32us*/
1504 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001505
Jeff Johnsone7245742012-09-05 17:12:55 -07001506 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1507 it to 0 if AP does not support it. This indication is sent to HAL and
1508 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1509 tANI_U8 fDsssCckMode40Mhz;
1510
1511 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1512 Retained for backward compalibity with existing HAL code*/
1513 tANI_U8 staIdx;
1514
1515 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1516 Retained for backward compalibity with existing HAL code*/
1517 tANI_U8 bssIdx;
1518
1519 tANI_U8 p2pCapableSta;
1520
1521 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001522 tANI_U8 htLdpcEnabled:1;
1523 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001524 tANI_U8 vhtTxBFEnabled:1;
1525 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001526
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001527 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001528 tSirSupportedRates_V1 supportedRates;
1529
1530 tANI_U8 vhtCapable;
1531 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001532
Jeff Johnsone7245742012-09-05 17:12:55 -07001533} tConfigStaParams_V1, *tpConfigStaParams_V1;
1534
Jeff Johnson295189b2012-06-20 16:38:30 -07001535typedef PACKED_PRE struct PACKED_POST
1536{
1537 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001538 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001539 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001540 tConfigStaParams_V1 configStaParams_V1;
1541 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001542} tConfigStaReqMsg, *tpConfigStaReqMsg;
1543
1544/*---------------------------------------------------------------------------
1545 WLAN_HAL_CONFIG_STA_RSP
1546---------------------------------------------------------------------------*/
1547
1548typedef PACKED_PRE struct PACKED_POST
1549{
1550 /*success or failure */
1551 tANI_U32 status;
1552
1553 /* Station index; valid only when 'status' field value SUCCESS */
1554 tANI_U8 staIdx;
1555
1556 /* BSSID Index of BSS to which the station is associated */
1557 tANI_U8 bssIdx;
1558
1559 /* DPU Index for PTK */
1560 tANI_U8 dpuIndex;
1561
Jeff Johnson32d95a32012-09-10 13:15:23 -07001562 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001563 tANI_U8 bcastDpuIndex;
1564
1565 /*DPU Index for IGTK */
1566 tANI_U8 bcastMgmtDpuIdx;
1567
1568 /*PTK DPU signature*/
1569 tANI_U8 ucUcastSig;
1570
1571 /*GTK DPU isignature*/
1572 tANI_U8 ucBcastSig;
1573
1574 /* IGTK DPU signature*/
1575 tANI_U8 ucMgmtSig;
1576
1577 tANI_U8 p2pCapableSta;
1578
1579}tConfigStaRspParams, *tpConfigStaRspParams;
1580
1581typedef PACKED_PRE struct PACKED_POST
1582{
1583 tHalMsgHeader header;
1584 tConfigStaRspParams configStaRspParams;
1585}tConfigStaRspMsg, *tpConfigStaRspMsg;
1586
1587/*---------------------------------------------------------------------------
1588 WLAN_HAL_DELETE_STA_REQ
1589---------------------------------------------------------------------------*/
1590
1591/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001592typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001593{
1594 /* Index of STA to delete */
1595 tANI_U8 staIdx;
1596} tDeleteStaParams, *tpDeleteStaParams;
1597
1598/* Delete STA Request message*/
1599typedef PACKED_PRE struct PACKED_POST
1600{
1601 tHalMsgHeader header;
1602 tDeleteStaParams delStaParams;
1603} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1604
1605/*---------------------------------------------------------------------------
1606 WLAN_HAL_DELETE_STA_RSP
1607---------------------------------------------------------------------------*/
1608
1609/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001610typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001611{
1612 /*success or failure */
1613 tANI_U32 status;
1614
1615 /* Index of STA deleted */
1616 tANI_U8 staId;
1617} tDeleteStaRspParams, *tpDeleteStaRspParams;
1618
1619/* Delete STA Response message*/
1620typedef PACKED_PRE struct PACKED_POST
1621{
1622 tHalMsgHeader header;
1623 tDeleteStaRspParams delStaRspParams;
1624} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1625
1626/*---------------------------------------------------------------------------
1627 WLAN_HAL_CONFIG_BSS_REQ
1628---------------------------------------------------------------------------*/
1629
1630//12 Bytes long because this structure can be used to represent rate
1631//and extended rate set IEs. The parser assume this to be at least 12
1632typedef __ani_attr_pre_packed struct sSirMacRateSet
1633{
1634 tANI_U8 numRates;
1635 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1636} __ani_attr_packed tSirMacRateSet;
1637
1638// access category record
1639typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1640{
1641#ifndef ANI_LITTLE_BIT_ENDIAN
1642 tANI_U8 rsvd : 1;
1643 tANI_U8 aci : 2;
1644 tANI_U8 acm : 1;
1645 tANI_U8 aifsn : 4;
1646#else
1647 tANI_U8 aifsn : 4;
1648 tANI_U8 acm : 1;
1649 tANI_U8 aci : 2;
1650 tANI_U8 rsvd : 1;
1651#endif
1652} __ani_attr_packed tSirMacAciAifsn;
1653
1654// contention window size
1655typedef __ani_attr_pre_packed struct sSirMacCW
1656{
1657#ifndef ANI_LITTLE_BIT_ENDIAN
1658 tANI_U8 max : 4;
1659 tANI_U8 min : 4;
1660#else
1661 tANI_U8 min : 4;
1662 tANI_U8 max : 4;
1663#endif
1664} __ani_attr_packed tSirMacCW;
1665
1666typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1667{
1668 tSirMacAciAifsn aci;
1669 tSirMacCW cw;
1670 tANI_U16 txoplimit;
1671} __ani_attr_packed tSirMacEdcaParamRecord;
1672
1673typedef __ani_attr_pre_packed struct sSirMacSSid
1674{
1675 tANI_U8 length;
1676 tANI_U8 ssId[32];
1677} __ani_attr_packed tSirMacSSid;
1678
1679// Concurrency role. These are generic IDs that identify the various roles
1680// in the software system.
1681typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001682 HAL_STA_MODE=0,
1683 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001684 HAL_P2P_CLIENT_MODE,
1685 HAL_P2P_GO_MODE,
1686 HAL_MONITOR_MODE,
1687} tHalConMode;
1688
1689//This is a bit pattern to be set for each mode
1690//bit 0 - sta mode
1691//bit 1 - ap mode
1692//bit 2 - p2p client mode
1693//bit 3 - p2p go mode
1694typedef enum
1695{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001696 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001697 HAL_SAP=2,
1698 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1699 HAL_P2P_CLIENT=4,
1700 HAL_P2P_GO=8,
1701 HAL_MAX_CONCURRENCY_PERSONA=4
1702} tHalConcurrencyMode;
1703
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001704// IFACE PERSONA for different Operating modes
1705typedef enum
1706{
1707 HAL_IFACE_UNKNOWN,
1708 HAL_IFACE_STA_MODE,
1709 HAL_IFACE_P2P_MODE,
1710 HAL_IFACE_MAX
1711} tHalIfacePersona;
1712
Jeff Johnson295189b2012-06-20 16:38:30 -07001713typedef PACKED_PRE struct PACKED_POST
1714{
1715 /* BSSID */
1716 tSirMacAddr bssId;
1717
Jeff Johnson295189b2012-06-20 16:38:30 -07001718 /* Self Mac Address */
1719 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001720
1721 /* BSS type */
1722 tSirBssType bssType;
1723
1724 /*Operational Mode: AP =0, STA = 1*/
1725 tANI_U8 operMode;
1726
1727 /*Network Type*/
1728 tSirNwType nwType;
1729
1730 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1731 tANI_U8 shortSlotTimeSupported;
1732
1733 /*Co-exist with 11a STA*/
1734 tANI_U8 llaCoexist;
1735
1736 /*Co-exist with 11b STA*/
1737 tANI_U8 llbCoexist;
1738
1739 /*Co-exist with 11g STA*/
1740 tANI_U8 llgCoexist;
1741
1742 /*Coexistence with 11n STA*/
1743 tANI_U8 ht20Coexist;
1744
1745 /*Non GF coexist flag*/
1746 tANI_U8 llnNonGFCoexist;
1747
1748 /*TXOP protection support*/
1749 tANI_U8 fLsigTXOPProtectionFullSupport;
1750
1751 /*RIFS mode*/
1752 tANI_U8 fRIFSMode;
1753
1754 /*Beacon Interval in TU*/
1755 tSirMacBeaconInterval beaconInterval;
1756
1757 /*DTIM period*/
1758 tANI_U8 dtimPeriod;
1759
1760 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1761 tANI_U8 txChannelWidthSet;
1762
1763 /*Operating channel*/
1764 tANI_U8 currentOperChannel;
1765
1766 /*Extension channel for channel bonding*/
1767 tANI_U8 currentExtChannel;
1768
1769 /*Reserved to align next field on a dword boundary*/
1770 tANI_U8 reserved;
1771
Jeff Johnsone7245742012-09-05 17:12:55 -07001772 /*SSID of the BSS*/
1773 tSirMacSSid ssId;
1774
1775 /*HAL should update the existing BSS entry, if this flag is set.
1776 UMAC will set this flag in case of reassoc, where we want to resue the
1777 the old BSSID and still return success 0 = Add, 1 = Update*/
1778 tANI_U8 action;
1779
1780 /* MAC Rate Set */
1781 tSirMacRateSet rateSet;
1782
1783 /*Enable/Disable HT capabilities of the BSS*/
1784 tANI_U8 htCapable;
1785
1786 // Enable/Disable OBSS protection
1787 tANI_U8 obssProtEnabled;
1788
1789 /*RMF enabled/disabled*/
1790 tANI_U8 rmfEnabled;
1791
1792 /*HT Operating Mode operating mode of the 802.11n STA*/
1793 tSirMacHTOperatingMode htOperMode;
1794
1795 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1796 tANI_U8 dualCTSProtection;
1797
1798 /* Probe Response Max retries */
1799 tANI_U8 ucMaxProbeRespRetryLimit;
1800
1801 /* To Enable Hidden ssid */
1802 tANI_U8 bHiddenSSIDEn;
1803
1804 /* To Enable Disable FW Proxy Probe Resp */
1805 tANI_U8 bProxyProbeRespEn;
1806
1807 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1808 EDCA params or might not desire to apply EDCA params during config BSS.
1809 0 implies Not Valid ; Non-Zero implies valid*/
1810 tANI_U8 edcaParamsValid;
1811
1812 /*EDCA Parameters for Best Effort Access Category*/
1813 tSirMacEdcaParamRecord acbe;
1814
1815 /*EDCA Parameters forBackground Access Category*/
1816 tSirMacEdcaParamRecord acbk;
1817
1818 /*EDCA Parameters for Video Access Category*/
1819 tSirMacEdcaParamRecord acvi;
1820
1821 /*EDCA Parameters for Voice Access Category*/
1822 tSirMacEdcaParamRecord acvo;
1823
1824#ifdef WLAN_FEATURE_VOWIFI_11R
1825 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1826 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1827#endif
1828
1829 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1830 tANI_U8 halPersona;
1831
1832 tANI_U8 bSpectrumMgtEnable;
1833
1834 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1835 tANI_S8 txMgmtPower;
1836 /*maxTxPower has max power to be used after applying the power constraint if any */
1837 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001838 /*Context of the station being added in HW
1839 Add a STA entry for "itself" -
1840 On AP - Add the AP itself in an "STA context"
1841 On STA - Add the AP to which this STA is joining in an "STA context" */
1842 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001843} tConfigBssParams, * tpConfigBssParams;
1844
1845
1846/*--------------------------------------------------------------------------
1847 * WLAN_HAL_CONFIG_BSS_REQ
1848 *--------------------------------------------------------------------------*/
1849typedef PACKED_PRE struct PACKED_POST
1850{
1851 /* BSSID */
1852 tSirMacAddr bssId;
1853
Jeff Johnsone7245742012-09-05 17:12:55 -07001854 /* Self Mac Address */
1855 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001856
1857 /* BSS type */
1858 tSirBssType bssType;
1859
1860 /*Operational Mode: AP =0, STA = 1*/
1861 tANI_U8 operMode;
1862
1863 /*Network Type*/
1864 tSirNwType nwType;
1865
1866 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1867 tANI_U8 shortSlotTimeSupported;
1868
1869 /*Co-exist with 11a STA*/
1870 tANI_U8 llaCoexist;
1871
1872 /*Co-exist with 11b STA*/
1873 tANI_U8 llbCoexist;
1874
1875 /*Co-exist with 11g STA*/
1876 tANI_U8 llgCoexist;
1877
1878 /*Coexistence with 11n STA*/
1879 tANI_U8 ht20Coexist;
1880
1881 /*Non GF coexist flag*/
1882 tANI_U8 llnNonGFCoexist;
1883
1884 /*TXOP protection support*/
1885 tANI_U8 fLsigTXOPProtectionFullSupport;
1886 /*RIFS mode*/
1887 tANI_U8 fRIFSMode;
1888
1889 /*Beacon Interval in TU*/
1890 tSirMacBeaconInterval beaconInterval;
1891
1892 /*DTIM period*/
1893 tANI_U8 dtimPeriod;
1894
1895 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1896 tANI_U8 txChannelWidthSet;
1897
1898 /*Operating channel*/
1899 tANI_U8 currentOperChannel;
1900
1901 /*Extension channel for channel bonding*/
1902 tANI_U8 currentExtChannel;
1903
1904 /*Reserved to align next field on a dword boundary*/
1905 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001906
1907 /*SSID of the BSS*/
1908 tSirMacSSid ssId;
1909
1910 /*HAL should update the existing BSS entry, if this flag is set.
1911 UMAC will set this flag in case of reassoc, where we want to resue the
1912 the old BSSID and still return success 0 = Add, 1 = Update*/
1913 tANI_U8 action;
1914
1915 /* MAC Rate Set */
1916 tSirMacRateSet rateSet;
1917
1918 /*Enable/Disable HT capabilities of the BSS*/
1919 tANI_U8 htCapable;
1920
1921 // Enable/Disable OBSS protection
1922 tANI_U8 obssProtEnabled;
1923
1924 /*RMF enabled/disabled*/
1925 tANI_U8 rmfEnabled;
1926
1927 /*HT Operating Mode operating mode of the 802.11n STA*/
1928 tSirMacHTOperatingMode htOperMode;
1929
1930 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1931 tANI_U8 dualCTSProtection;
1932
1933 /* Probe Response Max retries */
1934 tANI_U8 ucMaxProbeRespRetryLimit;
1935
1936 /* To Enable Hidden ssid */
1937 tANI_U8 bHiddenSSIDEn;
1938
1939 /* To Enable Disable FW Proxy Probe Resp */
1940 tANI_U8 bProxyProbeRespEn;
1941
Jeff Johnson32d95a32012-09-10 13:15:23 -07001942 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1943 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001944 0 implies Not Valid ; Non-Zero implies valid*/
1945 tANI_U8 edcaParamsValid;
1946
1947 /*EDCA Parameters for Best Effort Access Category*/
1948 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001949
Jeff Johnson295189b2012-06-20 16:38:30 -07001950 /*EDCA Parameters forBackground Access Category*/
1951 tSirMacEdcaParamRecord acbk;
1952
1953 /*EDCA Parameters for Video Access Category*/
1954 tSirMacEdcaParamRecord acvi;
1955
1956 /*EDCA Parameters for Voice Access Category*/
1957 tSirMacEdcaParamRecord acvo;
1958
1959#ifdef WLAN_FEATURE_VOWIFI_11R
1960 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1961 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1962#endif
1963
Jeff Johnson32d95a32012-09-10 13:15:23 -07001964 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001965 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001966
Jeff Johnson295189b2012-06-20 16:38:30 -07001967 tANI_U8 bSpectrumMgtEnable;
1968
1969 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1970 tANI_S8 txMgmtPower;
1971 /*maxTxPower has max power to be used after applying the power constraint if any */
1972 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001973 /*Context of the station being added in HW
1974 Add a STA entry for "itself" -
1975 On AP - Add the AP itself in an "STA context"
1976 On STA - Add the AP to which this STA is joining in an "STA context" */
1977 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001978
Jeff Johnsone7245742012-09-05 17:12:55 -07001979 tANI_U8 vhtCapable;
1980 tANI_U8 vhtTxChannelWidthSet;
1981} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001982
1983typedef PACKED_PRE struct PACKED_POST
1984{
1985 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001986 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001987 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001988 tConfigBssParams_V1 configBssParams_V1;
1989 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001990} tConfigBssReqMsg, *tpConfigBssReqMsg;
1991
1992/*---------------------------------------------------------------------------
1993 WLAN_HAL_CONFIG_BSS_RSP
1994---------------------------------------------------------------------------*/
1995
1996typedef PACKED_PRE struct PACKED_POST
1997{
1998 /* Success or Failure */
1999 tANI_U32 status;
2000
2001 /* BSS index allocated by HAL */
2002 tANI_U8 bssIdx;
2003
2004 /* DPU descriptor index for PTK */
2005 tANI_U8 dpuDescIndx;
2006
2007 /* PTK DPU signature */
2008 tANI_U8 ucastDpuSignature;
2009
2010 /* DPU descriptor index for GTK*/
2011 tANI_U8 bcastDpuDescIndx;
2012
2013 /* GTK DPU signature */
2014 tANI_U8 bcastDpuSignature;
2015
2016 /*DPU descriptor for IGTK*/
2017 tANI_U8 mgmtDpuDescIndx;
2018
2019 /* IGTK DPU signature */
2020 tANI_U8 mgmtDpuSignature;
2021
2022 /* Station Index for BSS entry*/
2023 tANI_U8 bssStaIdx;
2024
2025 /* Self station index for this BSS */
2026 tANI_U8 bssSelfStaIdx;
2027
2028 /* Bcast station for buffering bcast frames in AP role */
2029 tANI_U8 bssBcastStaIdx;
2030
2031 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2032 tSirMacAddr staMac;
2033
2034 /*HAL fills in the tx power used for mgmt frames in this field. */
2035 tANI_S8 txMgmtPower;
2036
2037} tConfigBssRspParams, * tpConfigBssRspParams;
2038
2039typedef PACKED_PRE struct PACKED_POST
2040{
2041 tHalMsgHeader header;
2042 tConfigBssRspParams configBssRspParams;
2043} tConfigBssRspMsg, *tpConfigBssRspMsg;
2044
2045/*---------------------------------------------------------------------------
2046 WLAN_HAL_DELETE_BSS_REQ
2047---------------------------------------------------------------------------*/
2048
2049typedef PACKED_PRE struct PACKED_POST
2050{
2051 /* BSS index to be deleted */
2052 tANI_U8 bssIdx;
2053
2054} tDeleteBssParams, *tpDeleteBssParams;
2055
2056typedef PACKED_PRE struct PACKED_POST
2057{
2058 tHalMsgHeader header;
2059 tDeleteBssParams deleteBssParams;
2060} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2061
2062/*---------------------------------------------------------------------------
2063 WLAN_HAL_DELETE_BSS_RSP
2064---------------------------------------------------------------------------*/
2065
2066typedef PACKED_PRE struct PACKED_POST
2067{
2068 /* Success or Failure */
2069 tANI_U32 status;
2070
2071 /* BSS index that has been deleted */
2072 tANI_U8 bssIdx;
2073
2074} tDeleteBssRspParams, *tpDeleteBssRspParams;
2075
2076typedef PACKED_PRE struct PACKED_POST
2077{
2078 tHalMsgHeader header;
2079 tDeleteBssRspParams deleteBssRspParams;
2080} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2081
2082/*---------------------------------------------------------------------------
2083 WLAN_HAL_JOIN_REQ
2084---------------------------------------------------------------------------*/
2085
2086typedef PACKED_PRE struct PACKED_POST
2087{
2088 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002089 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002090
2091 /*Indicates the channel to switch to.*/
2092 tANI_U8 ucChannel;
2093
2094 /* Self STA MAC */
2095 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002096
Jeff Johnson295189b2012-06-20 16:38:30 -07002097 /*Local power constraint*/
2098 tANI_U8 ucLocalPowerConstraint;
2099
2100 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002101 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002102
2103 /*link State*/
2104 tSirLinkState linkState;
2105
2106 /* Max TX power */
2107 tANI_S8 maxTxPower;
2108
2109} tHalJoinReqParams, *tpHalJoinReqParams;
2110
2111typedef PACKED_PRE struct PACKED_POST
2112{
2113 tHalMsgHeader header;
2114 tHalJoinReqParams joinReqParams;
2115} tHalJoinReqMsg, *tpHalJoinReqMsg;
2116
2117/*---------------------------------------------------------------------------
2118 WLAN_HAL_JOIN_RSP
2119---------------------------------------------------------------------------*/
2120
2121typedef PACKED_PRE struct PACKED_POST
2122{
2123 /*success or failure */
2124 tANI_U32 status;
2125
2126 /* HAL fills in the tx power used for mgmt frames in this field */
2127 tPowerdBm txMgmtPower;
2128
2129}tHalJoinRspParams, *tpHalJoinRspParams;
2130
2131typedef PACKED_PRE struct PACKED_POST
2132{
2133 tHalMsgHeader header;
2134 tHalJoinRspParams joinRspParams;
2135}tHalJoinRspMsg, *tpHalJoinRspMsg;
2136
2137/*---------------------------------------------------------------------------
2138 WLAN_HAL_POST_ASSOC_REQ
2139---------------------------------------------------------------------------*/
2140
2141typedef PACKED_PRE struct PACKED_POST
2142{
2143 tConfigStaParams configStaParams;
2144 tConfigBssParams configBssParams;
2145} tPostAssocReqParams, *tpPostAssocReqParams;
2146
2147typedef PACKED_PRE struct PACKED_POST
2148{
2149 tHalMsgHeader header;
2150 tPostAssocReqParams postAssocReqParams;
2151} tPostAssocReqMsg, *tpPostAssocReqMsg;
2152
2153/*---------------------------------------------------------------------------
2154 WLAN_HAL_POST_ASSOC_RSP
2155---------------------------------------------------------------------------*/
2156
2157typedef PACKED_PRE struct PACKED_POST
2158{
2159 tConfigStaRspParams configStaRspParams;
2160 tConfigBssRspParams configBssRspParams;
2161} tPostAssocRspParams, *tpPostAssocRspParams;
2162
2163typedef PACKED_PRE struct PACKED_POST
2164{
2165 tHalMsgHeader header;
2166 tPostAssocRspParams postAssocRspParams;
2167} tPostAssocRspMsg, *tpPostAssocRspMsg;
2168
2169/*---------------------------------------------------------------------------
2170 WLAN_HAL_SET_BSSKEY_REQ
2171---------------------------------------------------------------------------*/
2172
2173/*
2174 * This is used by PE to create a set of WEP keys for a given BSS.
2175 */
2176typedef PACKED_PRE struct PACKED_POST
2177{
2178 /*BSS Index of the BSS*/
2179 tANI_U8 bssIdx;
2180
2181 /*Encryption Type used with peer*/
2182 tAniEdType encType;
2183
2184 /*Number of keys*/
2185 tANI_U8 numKeys;
2186
2187 /*Array of keys.*/
2188 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002189
Jeff Johnson295189b2012-06-20 16:38:30 -07002190 /*Control for Replay Count, 1= Single TID based replay count on Tx
2191 0 = Per TID based replay count on TX */
2192 tANI_U8 singleTidRc;
2193} tSetBssKeyParams, *tpSetBssKeyParams;
2194
2195typedef PACKED_PRE struct PACKED_POST
2196{
2197 tHalMsgHeader header;
2198 tSetBssKeyParams setBssKeyParams;
2199} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2200
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002201/* tagged version of set bss key */
2202typedef PACKED_PRE struct PACKED_POST
2203{
2204 tSetBssKeyReqMsg Msg;
2205 uint32 Tag;
2206} tSetBssKeyReqMsgTagged;
2207
Jeff Johnson295189b2012-06-20 16:38:30 -07002208/*---------------------------------------------------------------------------
2209 WLAN_HAL_SET_BSSKEY_RSP
2210---------------------------------------------------------------------------*/
2211typedef PACKED_PRE struct PACKED_POST
2212{
2213 /*success or failure */
2214 tANI_U32 status;
2215
2216} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2217
2218typedef PACKED_PRE struct PACKED_POST
2219{
2220 tHalMsgHeader header;
2221 tSetBssKeyRspParams setBssKeyRspParams;
2222} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2223
2224/*---------------------------------------------------------------------------
2225 WLAN_HAL_SET_STAKEY_REQ,
2226---------------------------------------------------------------------------*/
2227
2228/*
2229 * This is used by PE to configure the key information on a given station.
2230 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2231 * a preconfigured key from a BSS the station assoicated with; otherwise
2232 * a new key descriptor is created based on the key field.
2233 */
2234
2235typedef PACKED_PRE struct PACKED_POST
2236{
2237 tHalMsgHeader header;
2238 tSetStaKeyParams setStaKeyParams;
2239} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2240
2241/*---------------------------------------------------------------------------
2242 WLAN_HAL_SET_STAKEY_RSP,
2243---------------------------------------------------------------------------*/
2244typedef PACKED_PRE struct PACKED_POST
2245{
2246 /*success or failure */
2247 tANI_U32 status;
2248
2249} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2250
2251typedef PACKED_PRE struct PACKED_POST
2252{
2253 tHalMsgHeader header;
2254 tSetStaKeyRspParams setStaKeyRspParams;
2255} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2256
2257/*---------------------------------------------------------------------------
2258 WLAN_HAL_RMV_BSSKEY_REQ,
2259---------------------------------------------------------------------------*/
2260/*
2261 * This is used by PE to remove keys for a given BSS.
2262 */
2263typedef PACKED_PRE struct PACKED_POST
2264
2265{
2266 /*BSS Index of the BSS*/
2267 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002268
Jeff Johnson295189b2012-06-20 16:38:30 -07002269 /*Encryption Type used with peer*/
2270 tAniEdType encType;
2271
2272 /*Key Id*/
2273 tANI_U8 keyId;
2274
2275 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2276 tAniWepType wepType;
2277
2278} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2279
2280typedef PACKED_PRE struct PACKED_POST
2281{
2282 tHalMsgHeader header;
2283 tRemoveBssKeyParams removeBssKeyParams;
2284} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2285
2286/*---------------------------------------------------------------------------
2287 WLAN_HAL_RMV_BSSKEY_RSP,
2288---------------------------------------------------------------------------*/
2289typedef PACKED_PRE struct PACKED_POST
2290{
2291 /*success or failure */
2292 tANI_U32 status;
2293
2294} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2295
2296typedef PACKED_PRE struct PACKED_POST
2297{
2298 tHalMsgHeader header;
2299 tRemoveBssKeyRspParams removeBssKeyRspParams;
2300} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2301
2302/*---------------------------------------------------------------------------
2303 WLAN_HAL_RMV_STAKEY_REQ,
2304---------------------------------------------------------------------------*/
2305/*
2306 * This is used by PE to Remove the key information on a given station.
2307 */
2308typedef PACKED_PRE struct PACKED_POST
2309{
2310 /*STA Index*/
2311 tANI_U16 staIdx;
2312
2313 /*Encryption Type used with peer*/
2314 tAniEdType encType;
2315
2316 /*Key Id*/
2317 tANI_U8 keyId;
2318
2319 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2320 the same key is used for both broadcast and unicast.*/
2321 tANI_BOOLEAN unicast;
2322
2323} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2324
2325typedef PACKED_PRE struct PACKED_POST
2326{
2327 tHalMsgHeader header;
2328 tRemoveStaKeyParams removeStaKeyParams;
2329} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2330
2331/*---------------------------------------------------------------------------
2332 WLAN_HAL_RMV_STAKEY_RSP,
2333---------------------------------------------------------------------------*/
2334typedef PACKED_PRE struct PACKED_POST
2335{
2336 /*success or failure */
2337 tANI_U32 status;
2338} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2339
2340typedef PACKED_PRE struct PACKED_POST
2341{
2342 tHalMsgHeader header;
2343 tRemoveStaKeyRspParams removeStaKeyRspParams;
2344} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2345
Jeff Johnsone7245742012-09-05 17:12:55 -07002346#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002347
Jeff Johnsone7245742012-09-05 17:12:55 -07002348#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002349#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002350#endif
2351
2352#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002353#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002354#endif
2355
2356/*-------------------------------------------------------------------------
2357WLAN_HAL_START_OEM_DATA_REQ
2358--------------------------------------------------------------------------*/
2359typedef PACKED_PRE struct PACKED_POST
2360{
2361 tANI_U32 status;
2362 tSirMacAddr selfMacAddr;
2363 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2364} tStartOemDataReqParams, *tpStartOemDataReqParams;
2365
2366typedef PACKED_PRE struct PACKED_POST
2367{
2368 tHalMsgHeader header;
2369 tStartOemDataReqParams startOemDataReqParams;
2370} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2371
2372/*-------------------------------------------------------------------------
2373WLAN_HAL_START_OEM_DATA_RSP
2374--------------------------------------------------------------------------*/
2375
2376typedef PACKED_PRE struct PACKED_POST
2377{
2378 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2379} tStartOemDataRspParams, *tpStartOemDataRspParams;
2380
2381typedef PACKED_PRE struct PACKED_POST
2382{
2383 tHalMsgHeader header;
2384 tStartOemDataRspParams startOemDataRspParams;
2385} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2386
2387#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002388
2389
2390
2391/*---------------------------------------------------------------------------
2392WLAN_HAL_CH_SWITCH_REQ
2393---------------------------------------------------------------------------*/
2394
2395typedef PACKED_PRE struct PACKED_POST
2396{
2397 /* Channel number */
2398 tANI_U8 channelNumber;
2399
2400 /* Local power constraint */
2401 tANI_U8 localPowerConstraint;
2402
2403 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002404 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002405
2406 //HAL fills in the tx power used for mgmt frames in this field.
2407 tPowerdBm txMgmtPower;
2408
2409 /* Max TX power */
2410 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002411
Jeff Johnson295189b2012-06-20 16:38:30 -07002412 /* Self STA MAC */
2413 tSirMacAddr selfStaMacAddr;
2414
2415 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2416 this should be applied only to that session*/
2417 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2418 * bssid needs to be out of the VOWifi feature flag */
2419 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2420 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2421 */
2422 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002423
Jeff Johnson295189b2012-06-20 16:38:30 -07002424}tSwitchChannelParams, *tpSwitchChannelParams;
2425
2426typedef PACKED_PRE struct PACKED_POST
2427{
2428 tHalMsgHeader header;
2429 tSwitchChannelParams switchChannelParams;
2430} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2431
2432/*---------------------------------------------------------------------------
2433WLAN_HAL_CH_SWITCH_RSP
2434---------------------------------------------------------------------------*/
2435
2436typedef PACKED_PRE struct PACKED_POST
2437{
2438 /* Status */
2439 tANI_U32 status;
2440
2441 /* Channel number - same as in request*/
2442 tANI_U8 channelNumber;
2443
2444 /* HAL fills in the tx power used for mgmt frames in this field */
2445 tPowerdBm txMgmtPower;
2446
2447 /* BSSID needed to identify session - same as in request*/
2448 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002449
Jeff Johnson295189b2012-06-20 16:38:30 -07002450}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2451
2452typedef PACKED_PRE struct PACKED_POST
2453{
2454 tHalMsgHeader header;
2455 tSwitchChannelRspParams switchChannelRspParams;
2456} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2457
2458/*---------------------------------------------------------------------------
2459WLAN_HAL_UPD_EDCA_PARAMS_REQ
2460---------------------------------------------------------------------------*/
2461
2462typedef PACKED_PRE struct PACKED_POST
2463{
2464 /*BSS Index*/
2465 tANI_U16 bssIdx;
2466
2467 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002468 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002469
2470 /* Background */
2471 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002472
Jeff Johnson295189b2012-06-20 16:38:30 -07002473 /* Video */
2474 tSirMacEdcaParamRecord acvi;
2475
2476 /* Voice */
2477 tSirMacEdcaParamRecord acvo;
2478
2479} tEdcaParams, *tpEdcaParams;
2480
2481typedef PACKED_PRE struct PACKED_POST
2482{
2483 tHalMsgHeader header;
2484 tEdcaParams edcaParams;
2485} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2486
2487/*---------------------------------------------------------------------------
2488WLAN_HAL_UPD_EDCA_PARAMS_RSP
2489---------------------------------------------------------------------------*/
2490typedef PACKED_PRE struct PACKED_POST
2491{
2492 /*success or failure */
2493 tANI_U32 status;
2494} tEdcaRspParams, *tpEdcaRspParams;
2495
2496typedef PACKED_PRE struct PACKED_POST
2497{
2498 tHalMsgHeader header;
2499 tEdcaRspParams edcaRspParams;
2500} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2501
2502
2503
2504/*---------------------------------------------------------------------------
2505 * WLAN_HAL_GET_STATS_REQ
2506 *--------------------------------------------------------------------------*/
2507typedef PACKED_PRE struct PACKED_POST
2508
2509{
2510 /* Index of STA to which the statistics */
2511 tANI_U16 staIdx;
2512
2513 /* Encryption mode */
2514 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002515
Jeff Johnson295189b2012-06-20 16:38:30 -07002516 /* status */
2517 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002518
Jeff Johnson295189b2012-06-20 16:38:30 -07002519 /* Statistics */
2520 tANI_U32 sendBlocks;
2521 tANI_U32 recvBlocks;
2522 tANI_U32 replays;
2523 tANI_U8 micErrorCnt;
2524 tANI_U32 protExclCnt;
2525 tANI_U16 formatErrCnt;
2526 tANI_U16 unDecryptableCnt;
2527 tANI_U32 decryptErrCnt;
2528 tANI_U32 decryptOkCnt;
2529} tDpuStatsParams, * tpDpuStatsParams;
2530
2531typedef PACKED_PRE struct PACKED_POST
2532{
2533 /* Valid STA Idx for per STA stats request */
2534 tANI_U32 staId;
2535
2536 /* Categories of stats requested as specified in eHalStatsMask*/
2537 tANI_U32 statsMask;
2538}tHalStatsReqParams, *tpHalStatsReqParams;
2539
2540typedef PACKED_PRE struct PACKED_POST
2541{
2542 tHalMsgHeader header;
2543 tHalStatsReqParams statsReqParams;
2544} tHalStatsReqMsg, *tpHalStatsReqMsg;
2545
2546/*---------------------------------------------------------------------------
2547 * WLAN_HAL_GET_STATS_RSP
2548 *--------------------------------------------------------------------------*/
2549
2550typedef PACKED_PRE struct PACKED_POST
2551{
2552 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2553 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2554 // station successfully transmitted after more than one retransmission attempt
2555
Jeff Johnson32d95a32012-09-10 13:15:23 -07002556 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2557 //(with and without retries, including multi-cast, broadcast)
2558 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2559 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002560 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2561 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2562 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2563 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 -07002564 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2565 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 -07002566 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2567 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 -07002568 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2569 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002570 //to provide this.
2571}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2572
2573
2574// defines tx_rate_flags
2575typedef enum eTxRateInfo
2576{
2577 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2578 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2579 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2580 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07002581 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2582 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2583 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
2584 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
2585 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
2586 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
2587} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07002588
2589
2590typedef PACKED_PRE struct PACKED_POST
2591{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002592 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 -07002593 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002594 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 -07002595 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002596 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2597 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002598 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002599 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2600 //for eg: if it is 10.5dBm, the value would be 105
2601 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2602 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002603
Jeff Johnson32d95a32012-09-10 13:15:23 -07002604 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2605 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002606 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002607 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2608 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002609}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2610
2611typedef PACKED_PRE struct PACKED_POST
2612{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002613 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2614 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002615 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002616 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 -07002617 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002618 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 -07002619 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002620 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 -07002621 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002622 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 -07002623 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002624 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 -07002625 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002626 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 -07002627 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002628 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 -07002629 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002630 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 -07002631 //decrypted
2632 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2633
2634}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002635
Jeff Johnson295189b2012-06-20 16:38:30 -07002636typedef PACKED_PRE struct PACKED_POST
2637{
2638 tAniGlobalSecurityStats ucStats;
2639 tAniGlobalSecurityStats mcbcStats;
2640}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2641
2642typedef PACKED_PRE struct PACKED_POST
2643{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002644 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2645 //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 -07002646 //address 1 field
2647 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 -07002648 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 -07002649 //primary channel
2650 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 -07002651 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 -07002652 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002653 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2654 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002655 //decoded correctly
2656}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2657
2658typedef PACKED_PRE struct PACKED_POST
2659{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002660 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 -07002661 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002662 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2663 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 -07002664 //is transmitted
2665}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2666
2667typedef PACKED_PRE struct PACKED_POST
2668{
2669 /* Success or Failure */
2670 tANI_U32 status;
2671
2672 /* STA Idx */
2673 tANI_U32 staId;
2674
2675 /* Categories of STATS being returned as per eHalStatsMask*/
2676 tANI_U32 statsMask;
2677
2678 /* message type is same as the request type */
2679 tANI_U16 msgType;
2680
2681 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002682 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002683
2684} tHalStatsRspParams, *tpHalStatsRspParams;
2685
2686
2687
2688typedef PACKED_PRE struct PACKED_POST
2689{
2690 tHalMsgHeader header;
2691 tHalStatsRspParams statsRspParams;
2692} tHalStatsRspMsg, *tpHalStatsRspMsg;
2693
2694/*---------------------------------------------------------------------------
2695 * WLAN_HAL_SET_LINK_ST_REQ
2696 *--------------------------------------------------------------------------*/
2697typedef PACKED_PRE struct PACKED_POST
2698{
2699 tSirMacAddr bssid;
2700 tSirLinkState state;
2701 tSirMacAddr selfMacAddr;
2702} tLinkStateParams, *tpLinkStateParams;
2703
2704typedef PACKED_PRE struct PACKED_POST
2705{
2706 tHalMsgHeader header;
2707 tLinkStateParams linkStateParams;
2708} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2709
2710/*---------------------------------------------------------------------------
2711 * WLAN_HAL_SET_LINK_ST_RSP
2712 *--------------------------------------------------------------------------*/
2713
2714typedef PACKED_PRE struct PACKED_POST
2715{
2716 /*success or failure */
2717 tANI_U32 status;
2718} tLinkStateRspParams, *tpLinkStateRspParams;
2719
2720typedef PACKED_PRE struct PACKED_POST
2721{
2722 tHalMsgHeader header;
2723 tLinkStateRspParams linkStateRspParams;
2724} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2725
2726/*---------------------------------------------------------------------------
2727 * WLAN_HAL_ADD_TS_REQ
2728 *--------------------------------------------------------------------------*/
2729
2730/* TSPEC Params */
2731typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2732{
Jeff Johnson295189b2012-06-20 16:38:30 -07002733 tANI_U16 trafficType : 1;
2734 tANI_U16 tsid : 4;
2735 tANI_U16 direction : 2;
2736 tANI_U16 accessPolicy : 2;
2737 tANI_U16 aggregation : 1;
2738 tANI_U16 psb : 1;
2739 tANI_U16 userPrio : 3;
2740 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07002741} __ani_attr_packed tSirMacTSInfoTfc;
2742
2743/* Flag to schedule the traffic type */
2744typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2745{
Jeff Johnson295189b2012-06-20 16:38:30 -07002746 tANI_U8 schedule : 1;
2747 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07002748} __ani_attr_packed tSirMacTSInfoSch;
2749
2750/* Traffic and scheduling info */
2751typedef __ani_attr_pre_packed struct sSirMacTSInfo
2752{
2753 tSirMacTSInfoTfc traffic;
2754 tSirMacTSInfoSch schedule;
2755} __ani_attr_packed tSirMacTSInfo;
2756
2757/* Information elements */
2758typedef __ani_attr_pre_packed struct sSirMacTspecIE
2759{
2760 tANI_U8 type;
2761 tANI_U8 length;
2762 tSirMacTSInfo tsinfo;
2763 tANI_U16 nomMsduSz;
2764 tANI_U16 maxMsduSz;
2765 tANI_U32 minSvcInterval;
2766 tANI_U32 maxSvcInterval;
2767 tANI_U32 inactInterval;
2768 tANI_U32 suspendInterval;
2769 tANI_U32 svcStartTime;
2770 tANI_U32 minDataRate;
2771 tANI_U32 meanDataRate;
2772 tANI_U32 peakDataRate;
2773 tANI_U32 maxBurstSz;
2774 tANI_U32 delayBound;
2775 tANI_U32 minPhyRate;
2776 tANI_U16 surplusBw;
2777 tANI_U16 mediumTime;
2778}__ani_attr_packed tSirMacTspecIE;
2779
2780typedef PACKED_PRE struct PACKED_POST
2781{
2782 /* Station Index */
2783 tANI_U16 staIdx;
2784
2785 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2786 tANI_U16 tspecIdx;
2787
2788 /* To program TPE with required parameters */
2789 tSirMacTspecIE tspec;
2790
2791 /* U-APSD Flags: 1b per AC. Encoded as follows:
2792 b7 b6 b5 b4 b3 b2 b1 b0 =
2793 X X X X BE BK VI VO */
2794 tANI_U8 uAPSD;
2795
2796 /* These parameters are for all the access categories */
2797 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2798 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2799 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002800
Jeff Johnson295189b2012-06-20 16:38:30 -07002801} tAddTsParams, *tpAddTsParams;
2802
2803typedef PACKED_PRE struct PACKED_POST
2804{
2805 tHalMsgHeader header;
2806 tAddTsParams addTsParams;
2807} tAddTsReqMsg, *tpAddTsReqMsg;
2808
2809/*---------------------------------------------------------------------------
2810 * WLAN_HAL_ADD_TS_RSP
2811 *--------------------------------------------------------------------------*/
2812
2813typedef PACKED_PRE struct PACKED_POST
2814{
2815 /*success or failure */
2816 tANI_U32 status;
2817} tAddTsRspParams, *tpAddTsRspParams;
2818
2819typedef PACKED_PRE struct PACKED_POST
2820{
2821 tHalMsgHeader header;
2822 tAddTsRspParams addTsRspParams;
2823} tAddTsRspMsg, *tpAddTsRspMsg;
2824
2825
2826/*---------------------------------------------------------------------------
2827 * WLAN_HAL_DEL_TS_REQ
2828 *--------------------------------------------------------------------------*/
2829
2830typedef PACKED_PRE struct PACKED_POST
2831{
2832 /* Station Index */
2833 tANI_U16 staIdx;
2834
2835 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2836 tANI_U16 tspecIdx;
2837
2838 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002839 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002840
2841} tDelTsParams, *tpDelTsParams;
2842
2843typedef PACKED_PRE struct PACKED_POST
2844{
2845 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002846 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002847} tDelTsReqMsg, *tpDelTsReqMsg;
2848
2849/*---------------------------------------------------------------------------
2850 * WLAN_HAL_DEL_TS_RSP
2851 *--------------------------------------------------------------------------*/
2852
2853typedef PACKED_PRE struct PACKED_POST
2854{
2855 /*success or failure */
2856 tANI_U32 status;
2857} tDelTsRspParams, *tpDelTsRspParams;
2858
2859typedef PACKED_PRE struct PACKED_POST
2860{
2861 tHalMsgHeader header;
2862 tDelTsRspParams delTsRspParams;
2863} tDelTsRspMsg, *tpDelTsRspMsg;
2864
2865/* End of TSpec Parameters */
2866
2867/* Start of BLOCK ACK related Parameters */
2868
2869/*---------------------------------------------------------------------------
2870 * WLAN_HAL_ADD_BA_SESSION_REQ
2871 *--------------------------------------------------------------------------*/
2872
2873typedef PACKED_PRE struct PACKED_POST
2874{
2875 /* Station Index */
2876 tANI_U16 staIdx;
2877
2878 /* Peer MAC Address */
2879 tSirMacAddr peerMacAddr;
2880
2881 /* ADDBA Action Frame dialog token
2882 HAL will not interpret this object */
2883 tANI_U8 baDialogToken;
2884
2885 /* TID for which the BA is being setup
2886 This identifies the TC or TS of interest */
2887 tANI_U8 baTID;
2888
2889 /* 0 - Delayed BA (Not supported)
2890 1 - Immediate BA */
2891 tANI_U8 baPolicy;
2892
2893 /* Indicates the number of buffers for this TID (baTID)
2894 NOTE - This is the requested buffer size. When this
2895 is processed by HAL and subsequently by HDD, it is
2896 possible that HDD may change this buffer size. Any
2897 change in the buffer size should be noted by PE and
2898 advertized appropriately in the ADDBA response */
2899 tANI_U16 baBufferSize;
2900
2901 /* BA timeout in TU's 0 means no timeout will occur */
2902 tANI_U16 baTimeout;
2903
2904 /* b0..b3 - Fragment Number - Always set to 0
2905 b4..b15 - Starting Sequence Number of first MSDU
2906 for which this BA is setup */
2907 tANI_U16 baSSN;
2908
2909 /* ADDBA direction
2910 1 - Originator
2911 0 - Recipient */
2912 tANI_U8 baDirection;
2913} tAddBASessionParams, *tpAddBASessionParams;
2914
2915typedef PACKED_PRE struct PACKED_POST
2916{
2917 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002918 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002919}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2920
2921/*---------------------------------------------------------------------------
2922 * WLAN_HAL_ADD_BA_SESSION_RSP
2923 *--------------------------------------------------------------------------*/
2924
2925typedef PACKED_PRE struct PACKED_POST
2926{
2927 /*success or failure */
2928 tANI_U32 status;
2929
2930 /* Dialog token */
2931 tANI_U8 baDialogToken;
2932
2933 /* TID for which the BA session has been setup */
2934 tANI_U8 baTID;
2935
2936 /* BA Buffer Size allocated for the current BA session */
2937 tANI_U8 baBufferSize;
2938
2939 tANI_U8 baSessionID;
2940
2941 /* Reordering Window buffer */
2942 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002943
Jeff Johnson295189b2012-06-20 16:38:30 -07002944 /*Station Index to id the sta */
2945 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002946
Jeff Johnson295189b2012-06-20 16:38:30 -07002947 /* Starting Sequence Number */
2948 tANI_U16 SSN;
2949} tAddBASessionRspParams, *tpAddBASessionRspParams;
2950
2951typedef PACKED_PRE struct PACKED_POST
2952{
2953 tHalMsgHeader header;
2954 tAddBASessionRspParams addBASessionRspParams;
2955} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2956
2957/*---------------------------------------------------------------------------
2958 * WLAN_HAL_ADD_BA_REQ
2959 *--------------------------------------------------------------------------*/
2960
2961typedef PACKED_PRE struct PACKED_POST
2962{
2963 /* Session Id */
2964 tANI_U8 baSessionID;
2965
2966 /* Reorder Window Size */
2967 tANI_U8 winSize;
2968
2969#ifdef FEATURE_ON_CHIP_REORDERING
2970 tANI_BOOLEAN isReorderingDoneOnChip;
2971#endif
2972} tAddBAParams, *tpAddBAParams;
2973
2974typedef PACKED_PRE struct PACKED_POST
2975{
2976 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002977 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002978} tAddBAReqMsg, *tpAddBAReqMsg;
2979
2980
2981/*---------------------------------------------------------------------------
2982 * WLAN_HAL_ADD_BA_RSP
2983 *--------------------------------------------------------------------------*/
2984
2985typedef PACKED_PRE struct PACKED_POST
2986{
2987 /*success or failure */
2988 tANI_U32 status;
2989
2990 /* Dialog token */
2991 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002992
Jeff Johnson295189b2012-06-20 16:38:30 -07002993} tAddBARspParams, *tpAddBARspParams;
2994
2995typedef PACKED_PRE struct PACKED_POST
2996{
2997 tHalMsgHeader header;
2998 tAddBARspParams addBARspParams;
2999} tAddBARspMsg, *tpAddBARspMsg;
3000
3001
3002/*---------------------------------------------------------------------------
3003 * WLAN_HAL_TRIGGER_BA_REQ
3004 *--------------------------------------------------------------------------*/
3005
3006
3007typedef struct sAddBaInfo
3008{
3009 tANI_U16 fBaEnable : 1;
3010 tANI_U16 startingSeqNum: 12;
3011 tANI_U16 reserved : 3;
3012}tAddBaInfo, *tpAddBaInfo;
3013
3014typedef struct sTriggerBaRspCandidate
3015{
3016 tSirMacAddr staAddr;
3017 tAddBaInfo baInfo[STACFG_MAX_TC];
3018}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3019
3020typedef struct sTriggerBaCandidate
3021{
3022 tANI_U8 staIdx;
3023 tANI_U8 tidBitmap;
3024}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3025
3026typedef PACKED_PRE struct PACKED_POST
3027{
3028 /* Session Id */
3029 tANI_U8 baSessionID;
3030
Jeff Johnson32d95a32012-09-10 13:15:23 -07003031 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003032 * Candidate List(tTriggerBaCandidate)
3033 */
3034 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003035
Jeff Johnson295189b2012-06-20 16:38:30 -07003036} tTriggerBAParams, *tpTriggerBAParams;
3037
3038typedef PACKED_PRE struct PACKED_POST
3039{
3040 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003041 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003042} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3043
3044
3045/*---------------------------------------------------------------------------
3046 * WLAN_HAL_TRIGGER_BA_RSP
3047 *--------------------------------------------------------------------------*/
3048
3049typedef PACKED_PRE struct PACKED_POST
3050{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003051
Jeff Johnson295189b2012-06-20 16:38:30 -07003052 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003053 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003054
3055 /* success or failure */
3056 tANI_U32 status;
3057
Jeff Johnson32d95a32012-09-10 13:15:23 -07003058 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003059 * Rsp Candidate List(tTriggerRspBaCandidate)
3060 */
3061 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003062
Jeff Johnson295189b2012-06-20 16:38:30 -07003063
3064} tTriggerBARspParams, *tpTriggerBARspParams;
3065
3066typedef PACKED_PRE struct PACKED_POST
3067{
3068 tHalMsgHeader header;
3069 tTriggerBARspParams triggerBARspParams;
3070} tTriggerBARspMsg, *tpTriggerBARspMsg;
3071
3072/*---------------------------------------------------------------------------
3073 * WLAN_HAL_DEL_BA_REQ
3074 *--------------------------------------------------------------------------*/
3075
3076typedef PACKED_PRE struct PACKED_POST
3077{
3078 /* Station Index */
3079 tANI_U16 staIdx;
3080
3081 /* TID for which the BA session is being deleted */
3082 tANI_U8 baTID;
3083
3084 /* DELBA direction
3085 1 - Originator
3086 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003087 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003088} tDelBAParams, *tpDelBAParams;
3089
3090typedef PACKED_PRE struct PACKED_POST
3091{
3092 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003093 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003094} tDelBAReqMsg, *tpDelBAReqMsg;
3095
3096/*---------------------------------------------------------------------------
3097 * WLAN_HAL_DEL_BA_RSP
3098 *--------------------------------------------------------------------------*/
3099
3100typedef PACKED_PRE struct PACKED_POST
3101{
3102 /* success or failure */
3103 tANI_U32 status;
3104} tDelBARspParams, *tpDelBARspParams;
3105
3106typedef PACKED_PRE struct PACKED_POST
3107{
3108 tHalMsgHeader header;
3109 tDelBARspParams delBARspParams;
3110} tDelBARspMsg, *tpDelBARspMsg;
3111
3112
3113#ifdef FEATURE_WLAN_CCX
3114
3115/*---------------------------------------------------------------------------
3116 * WLAN_HAL_TSM_STATS_REQ
3117 *--------------------------------------------------------------------------*/
3118typedef PACKED_PRE struct PACKED_POST
3119{
3120 /* Traffic Id */
3121 tANI_U8 tsmTID;
3122
3123 tSirMacAddr bssId;
3124} tTsmStatsParams, *tpTsmStatsParams;
3125
3126typedef PACKED_PRE struct PACKED_POST
3127{
3128 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003129 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003130} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3131
3132
3133/*---------------------------------------------------------------------------
3134 * WLAN_HAL_TSM_STATS_RSP
3135 *--------------------------------------------------------------------------*/
3136typedef PACKED_PRE struct PACKED_POST
3137{
3138 /*success or failure */
3139 tANI_U32 status;
3140
Jeff Johnson32d95a32012-09-10 13:15:23 -07003141 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003142 tANI_U16 UplinkPktQueueDly;
3143
Jeff Johnson32d95a32012-09-10 13:15:23 -07003144 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003145 tANI_U16 UplinkPktQueueDlyHist[4];
3146
Jeff Johnson32d95a32012-09-10 13:15:23 -07003147 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003148 tANI_U32 UplinkPktTxDly;
3149
Jeff Johnson32d95a32012-09-10 13:15:23 -07003150 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003151 tANI_U16 UplinkPktLoss;
3152
Jeff Johnson32d95a32012-09-10 13:15:23 -07003153 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003154 tANI_U16 UplinkPktCount;
3155
Jeff Johnson32d95a32012-09-10 13:15:23 -07003156 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003157 tANI_U8 RoamingCount;
3158
Jeff Johnson32d95a32012-09-10 13:15:23 -07003159 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003160 tANI_U16 RoamingDly;
3161} tTsmStatsRspParams, *tpTsmStatsRspParams;
3162
3163typedef PACKED_PRE struct PACKED_POST
3164{
3165 tHalMsgHeader header;
3166 tTsmStatsRspParams tsmStatsRspParams;
3167} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3168
3169
3170#endif
3171
3172/*---------------------------------------------------------------------------
3173 * WLAN_HAL_SET_KEYDONE_MSG
3174 *--------------------------------------------------------------------------*/
3175
3176typedef PACKED_PRE struct PACKED_POST
3177{
3178 /*bssid of the keys */
3179 tANI_U8 bssidx;
3180 tANI_U8 encType;
3181} tSetKeyDoneParams, *tpSetKeyDoneParams;
3182
3183typedef PACKED_PRE struct PACKED_POST
3184{
3185 tHalMsgHeader header;
3186 tSetKeyDoneParams setKeyDoneParams;
3187} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3188
3189/*---------------------------------------------------------------------------
3190 * WLAN_HAL_DOWNLOAD_NV_REQ
3191 *--------------------------------------------------------------------------*/
3192typedef PACKED_PRE struct PACKED_POST
3193{
3194 /* Fragment sequence number of the NV Image. Note that NV Image might not
3195 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003196 * can hence choose to chop the NV blob into multiple fragments starting with
3197 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003198 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3199 * concatenated together by HAL without any padding bytes in between.*/
3200 tANI_U16 fragNumber;
3201
3202 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003203 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003204 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3205 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3206 tANI_U16 isLastFragment;
3207
3208 /* NV Image size (number of bytes) */
3209 tANI_U32 nvImgBufferSize;
3210
3211 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3212 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3213} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3214
3215typedef PACKED_PRE struct PACKED_POST
3216{
3217 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3218 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3219 tHalMsgHeader header;
3220 tHalNvImgDownloadReqParams nvImageReqParams;
3221} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3222
3223/*---------------------------------------------------------------------------
3224 * WLAN_HAL_DOWNLOAD_NV_RSP
3225 *--------------------------------------------------------------------------*/
3226typedef PACKED_PRE struct PACKED_POST
3227{
3228 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3229 * after each fragment */
3230 tANI_U32 status;
3231} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3232
3233typedef PACKED_PRE struct PACKED_POST
3234{
3235 tHalMsgHeader header;
3236 tHalNvImgDownloadRspParams nvImageRspParams;
3237} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3238
3239/*---------------------------------------------------------------------------
3240 * WLAN_HAL_STORE_NV_IND
3241 *--------------------------------------------------------------------------*/
3242typedef PACKED_PRE struct PACKED_POST
3243{
3244 /* NV Item */
3245 eNvTable tableID;
3246
3247 /* Size of NV Blob */
3248 tANI_U32 nvBlobSize;
3249
Jeff Johnson32d95a32012-09-10 13:15:23 -07003250 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003251 * NV blob i.e. uint8[nvBlobSize] */
3252} tHalNvStoreParams, *tpHalNvStoreParams;
3253
3254typedef PACKED_PRE struct PACKED_POST
3255{
3256 /* Note: The length specified in tHalNvStoreInd messages should be
3257 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3258 tHalMsgHeader header;
3259 tHalNvStoreParams nvStoreParams;
3260} tHalNvStoreInd, *tpHalNvStoreInd;
3261
3262/* End of Block Ack Related Parameters */
3263
3264/*---------------------------------------------------------------------------
3265 * WLAN_HAL_MIC_FAILURE_IND
3266 *--------------------------------------------------------------------------*/
3267
3268#define SIR_CIPHER_SEQ_CTR_SIZE 6
3269
3270typedef PACKED_PRE struct PACKED_POST
3271{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003272 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003273 tSirMacAddr taMacAddr; //transmitter address
3274 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003275 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003276 tANI_U8 IV1; // first byte of IV
3277 tANI_U8 keyId; // second byte of IV
3278 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3279 tSirMacAddr rxMacAddr; // receive address
3280} tSirMicFailureInfo, *tpSirMicFailureInfo;
3281
3282/* Definition for MIC failure indication
3283 MAC reports this each time a MIC failure occures on Rx TKIP packet
3284 */
3285typedef PACKED_PRE struct PACKED_POST
3286{
3287 tSirMacAddr bssId; // BSSID
3288 tSirMicFailureInfo info;
3289} tSirMicFailureInd, *tpSirMicFailureInd;
3290
3291typedef PACKED_PRE struct PACKED_POST
3292{
3293 tHalMsgHeader header;
3294 tSirMicFailureInd micFailureInd;
3295} tMicFailureIndMsg, *tpMicFailureIndMsg;
3296
Mohit Khanna4a70d262012-09-11 16:30:12 -07003297typedef PACKED_PRE struct PACKED_POST
3298{
3299 tANI_U16 opMode;
3300 tANI_U16 staId;
3301}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3302
3303typedef PACKED_PRE struct PACKED_POST
3304{
3305 tHalMsgHeader header;
3306 tUpdateVHTOpMode updateVhtOpMode;
3307} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3308
3309typedef PACKED_PRE struct PACKED_POST
3310{
3311 tANI_U32 status;
3312} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3313
3314typedef PACKED_PRE struct PACKED_POST
3315{
3316 tHalMsgHeader header;
3317 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3318} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3319
Jeff Johnson295189b2012-06-20 16:38:30 -07003320/*---------------------------------------------------------------------------
3321 * WLAN_HAL_UPDATE_BEACON_REQ
3322 *--------------------------------------------------------------------------*/
3323typedef PACKED_PRE struct PACKED_POST
3324{
3325
3326 tANI_U8 bssIdx;
3327
3328 //shortPreamble mode. HAL should update all the STA rates when it
3329 //receives this message
3330 tANI_U8 fShortPreamble;
3331 //short Slot time.
3332 tANI_U8 fShortSlotTime;
3333 //Beacon Interval
3334 tANI_U16 beaconInterval;
3335 //Protection related
3336 tANI_U8 llaCoexist;
3337 tANI_U8 llbCoexist;
3338 tANI_U8 llgCoexist;
3339 tANI_U8 ht20MhzCoexist;
3340 tANI_U8 llnNonGFCoexist;
3341 tANI_U8 fLsigTXOPProtectionFullSupport;
3342 tANI_U8 fRIFSMode;
3343
3344 tANI_U16 paramChangeBitmap;
3345}tUpdateBeaconParams, *tpUpdateBeaconParams;
3346
3347
3348typedef PACKED_PRE struct PACKED_POST
3349{
3350 tHalMsgHeader header;
3351 tUpdateBeaconParams updateBeaconParam;
3352} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3353
3354/*---------------------------------------------------------------------------
3355 * WLAN_HAL_UPDATE_BEACON_RSP
3356 *--------------------------------------------------------------------------*/
3357typedef PACKED_PRE struct PACKED_POST
3358{
3359 tANI_U32 status;
3360} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3361
3362typedef PACKED_PRE struct PACKED_POST
3363{
3364 tHalMsgHeader header;
3365 tUpdateBeaconRspParams updateBeaconRspParam;
3366} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3367
3368/*---------------------------------------------------------------------------
3369 * WLAN_HAL_SEND_BEACON_REQ
3370 *--------------------------------------------------------------------------*/
3371typedef PACKED_PRE struct PACKED_POST
3372{
3373 tANI_U32 beaconLength; //length of the template.
3374 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3375 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003376 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003377 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3378}tSendBeaconParams, *tpSendBeaconParams;
3379
3380
3381typedef PACKED_PRE struct PACKED_POST
3382{
3383 tHalMsgHeader header;
3384 tSendBeaconParams sendBeaconParam;
3385}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3386
3387/*---------------------------------------------------------------------------
3388 * WLAN_HAL_SEND_BEACON_RSP
3389 *--------------------------------------------------------------------------*/
3390typedef PACKED_PRE struct PACKED_POST
3391{
3392 tANI_U32 status;
3393} tSendBeaconRspParams, *tpSendBeaconRspParams;
3394
3395typedef PACKED_PRE struct PACKED_POST
3396{
3397 tHalMsgHeader header;
3398 tSendBeaconRspParams sendBeaconRspParam;
3399} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3400
3401#ifdef FEATURE_5GHZ_BAND
3402
3403/*---------------------------------------------------------------------------
3404 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3405 *--------------------------------------------------------------------------*/
3406typedef PACKED_PRE struct PACKED_POST
3407{
3408 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003409 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003410}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3411
3412
3413typedef PACKED_PRE struct PACKED_POST
3414{
3415 /* Link Parameters */
3416 tSirEnableRadarInfoType EnableRadarInfo;
3417}tEnableRadarReqParams, *tpEnableRadarReqParams;
3418
3419typedef PACKED_PRE struct PACKED_POST
3420{
3421 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003422 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003423}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3424
3425/*---------------------------------------------------------------------------
3426 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3427 *--------------------------------------------------------------------------*/
3428
3429typedef PACKED_PRE struct PACKED_POST
3430{
3431 /* Link Parameters */
3432 tSirMacAddr BSSID;
3433 /* success or failure */
3434 tANI_U32 status;
3435}tEnableRadarRspParams, *tpEnableRadarRspParams;
3436
3437typedef PACKED_PRE struct PACKED_POST
3438{
3439 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003440 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003441}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3442
3443/*---------------------------------------------------------------------------
3444 *WLAN_HAL_RADAR_DETECT_INTR_IND
3445 *--------------------------------------------------------------------------*/
3446
3447typedef PACKED_PRE struct PACKED_POST
3448{
3449 tANI_U8 radarDetChannel;
3450}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3451
3452typedef PACKED_PRE struct PACKED_POST
3453{
3454 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003455 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003456}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3457
3458/*---------------------------------------------------------------------------
3459 *WLAN_HAL_RADAR_DETECT_IND
3460 *-------------------------------------------------------------------------*/
3461typedef PACKED_PRE struct PACKED_POST
3462{
3463 /*channel number in which the RADAR detected*/
3464 tANI_U8 channelNumber;
3465
3466 /*RADAR pulse width*/
3467 tANI_U16 radarPulseWidth; // in usecond
3468
3469 /*Number of RADAR pulses */
3470 tANI_U16 numRadarPulse;
3471}tRadarDetectIndParams,*tpRadarDetectIndParams;
3472
3473typedef PACKED_PRE struct PACKED_POST
3474{
3475 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003476 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003477}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3478
3479
3480/*---------------------------------------------------------------------------
3481 *WLAN_HAL_GET_TPC_REPORT_REQ
3482 *-------------------------------------------------------------------------*/
3483typedef PACKED_PRE struct PACKED_POST
3484{
3485 tSirMacAddr sta;
3486 tANI_U8 dialogToken;
3487 tANI_U8 txpower;
3488}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3489
3490
3491typedef PACKED_PRE struct PACKED_POST
3492{
3493 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003494 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003495}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3496
3497/*---------------------------------------------------------------------------
3498 * WLAN_HAL_GET_TPC_REPORT_RSP
3499 *--------------------------------------------------------------------------*/
3500
3501typedef PACKED_PRE struct PACKED_POST
3502{
3503 /* success or failure */
3504 tANI_U32 status;
3505}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3506
3507typedef PACKED_PRE struct PACKED_POST
3508{
3509 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003510 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003511}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3512
3513#endif
3514
Jeff Johnson295189b2012-06-20 16:38:30 -07003515/*---------------------------------------------------------------------------
3516 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3517 *-------------------------------------------------------------------------*/
3518typedef PACKED_PRE struct PACKED_POST
3519{
3520 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3521 tANI_U32 probeRespTemplateLen;
3522 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3523 tSirMacAddr bssId;
3524
3525}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3526
3527typedef PACKED_PRE struct PACKED_POST
3528{
3529 tHalMsgHeader header;
3530 tSendProbeRespReqParams sendProbeRespReqParams ;
3531}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3532
3533/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003534 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003535 *--------------------------------------------------------------------------*/
3536
3537typedef PACKED_PRE struct PACKED_POST
3538{
3539 /* success or failure */
3540 tANI_U32 status;
3541}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3542
3543typedef PACKED_PRE struct PACKED_POST
3544{
3545 tHalMsgHeader header;
3546 tSendProbeRespRspParams sendProbeRespRspParams;
3547}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3548
3549
3550/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003551 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003552 *--------------------------------------------------------------------------*/
3553
3554typedef PACKED_PRE struct PACKED_POST
3555{
3556 /* success or failure */
3557 tANI_U32 status;
3558}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3559
3560typedef PACKED_PRE struct PACKED_POST
3561{
3562 tHalMsgHeader header;
3563 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3564}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3565
3566/*---------------------------------------------------------------------------
3567 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3568 *--------------------------------------------------------------------------*/
3569
3570typedef PACKED_PRE struct PACKED_POST
3571{
3572 tANI_U16 assocId;
3573 tANI_U16 staId;
3574 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3575 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003576 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003577 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003578
3579}tDeleteStaContextParams, *tpDeleteStaContextParams;
3580
3581
3582typedef PACKED_PRE struct PACKED_POST
3583{
3584 tHalMsgHeader header;
3585 tDeleteStaContextParams deleteStaContextParams;
3586}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3587
Anand Kumar012623a2013-01-11 17:00:00 -08003588typedef PACKED_PRE struct PACKED_POST
3589{
3590 tHalMsgHeader header;
3591 tANI_U8 assocId;
3592 tANI_U8 staIdx;
3593 tANI_U8 bssIdx;
3594 tANI_U8 uReasonCode;
3595 tANI_U32 uStatus;
3596} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003597
3598/*---------------------------------------------------------------------------
3599 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3600 *--------------------------------------------------------------------------*/
3601
3602typedef PACKED_PRE struct PACKED_POST
3603{
3604 tBtAmpEventType btAmpEventType;
3605
3606}tBtAmpEventParams, *tpBtAmpEventParams;
3607
3608
3609
3610typedef PACKED_PRE struct PACKED_POST
3611{
3612 tHalMsgHeader header;
3613 tBtAmpEventParams btAmpEventParams;
3614}tBtAmpEventMsg, *tpBtAmpEventMsg;
3615
3616/*---------------------------------------------------------------------------
3617*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3618*--------------------------------------------------------------------------*/
3619
3620typedef PACKED_PRE struct PACKED_POST
3621{
3622 /* success or failure */
3623 tANI_U32 status;
3624}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3625
3626typedef PACKED_PRE struct PACKED_POST
3627{
3628 tHalMsgHeader header;
3629 tBtAmpEventRspParams btAmpEventRspParams;
3630}tBtAmpEventRsp, *tpBtAmpEventRsp;
3631
3632
3633/*---------------------------------------------------------------------------
3634 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3635 *--------------------------------------------------------------------------*/
3636
3637typedef PACKED_PRE struct PACKED_POST
3638{
3639 // Station Index. originates from HAL
3640 tANI_U8 ucSTAId;
3641
3642 // TID for which the transmit queue is being flushed
3643 tANI_U8 ucTid;
3644
3645}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3646
3647
3648typedef PACKED_PRE struct PACKED_POST
3649{
3650 tHalMsgHeader header;
3651 tTlHalFlushAcParams tlHalFlushAcParam;
3652}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3653
3654/*---------------------------------------------------------------------------
3655*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3656*--------------------------------------------------------------------------*/
3657
3658typedef PACKED_PRE struct PACKED_POST
3659{
3660 // Station Index. originates from HAL
3661 tANI_U8 ucSTAId;
3662
3663 // TID for which the transmit queue is being flushed
3664 tANI_U8 ucTid;
3665
3666 /* success or failure */
3667 tANI_U32 status;
3668}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3669
3670typedef PACKED_PRE struct PACKED_POST
3671{
3672 tHalMsgHeader header;
3673 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3674}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3675
3676/*---------------------------------------------------------------------------
3677 * WLAN_HAL_ENTER_IMPS_REQ
3678 *--------------------------------------------------------------------------*/
3679typedef PACKED_PRE struct PACKED_POST
3680{
3681 tHalMsgHeader header;
3682} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3683
3684/*---------------------------------------------------------------------------
3685 * WLAN_HAL_EXIT_IMPS_REQ
3686 *--------------------------------------------------------------------------*/
3687typedef PACKED_PRE struct PACKED_POST
3688{
3689 tHalMsgHeader header;
3690} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3691
3692/*---------------------------------------------------------------------------
3693 * WLAN_HAL_ENTER_BMPS_REQ
3694 *--------------------------------------------------------------------------*/
3695
3696typedef PACKED_PRE struct PACKED_POST
3697{
3698 tANI_U8 bssIdx;
3699 //TBTT value derived from the last beacon
3700#ifndef BUILD_QWPTTSTATIC
3701 tANI_U64 tbtt;
3702#endif
3703 tANI_U8 dtimCount;
3704 //DTIM period given to HAL during association may not be valid,
3705 //if association is based on ProbeRsp instead of beacon.
3706 tANI_U8 dtimPeriod;
3707
3708 // For CCX and 11R Roaming
3709 tANI_U32 rssiFilterPeriod;
3710 tANI_U32 numBeaconPerRssiAverage;
3711 tANI_U8 bRssiFilterEnable;
3712
3713} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3714
3715
3716typedef PACKED_PRE struct PACKED_POST
3717{
3718 tHalMsgHeader header;
3719 tHalEnterBmpsReqParams enterBmpsReq;
3720} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3721
3722/*---------------------------------------------------------------------------
3723 * WLAN_HAL_EXIT_BMPS_REQ
3724 *--------------------------------------------------------------------------*/
3725typedef PACKED_PRE struct PACKED_POST
3726{
3727 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003728 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003729} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3730
3731typedef PACKED_PRE struct PACKED_POST
3732{
3733 tHalMsgHeader header;
3734 tHalExitBmpsReqParams exitBmpsReqParams;
3735} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3736
3737/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003738 * WLAN_HAL_MISSED_BEACON_IND
3739 *--------------------------------------------------------------------------*/
3740typedef PACKED_PRE struct PACKED_POST
3741{
3742 tANI_U8 bssIdx;
3743} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3744
3745typedef PACKED_PRE struct PACKED_POST
3746{
3747 tHalMsgHeader header;
3748 tHalMissedBeaconIndParams missedBeaconIndParams;
3749} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3750
3751/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003752 * WLAN_HAL_ADD_BCN_FILTER_REQ
3753 *--------------------------------------------------------------------------*/
3754/* Beacon Filtering data structures */
3755typedef PACKED_PRE struct PACKED_POST
3756{
3757 tANI_U8 offset;
3758 tANI_U8 value;
3759 tANI_U8 bitMask;
3760 tANI_U8 ref;
3761} tEidByteInfo, *tpEidByteInfo;
3762
Jeff Johnson32d95a32012-09-10 13:15:23 -07003763typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003764{
3765 tANI_U16 capabilityInfo;
3766 tANI_U16 capabilityMask;
3767 tANI_U16 beaconInterval;
3768 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003769 tANI_U8 bssIdx;
3770 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003771} tBeaconFilterMsg, *tpBeaconFilterMsg;
3772
3773/* The above structure would be followed by multiple of below mentioned structure */
3774typedef PACKED_PRE struct PACKED_POST
3775{
3776 tANI_U8 elementId;
3777 tANI_U8 checkIePresence;
3778 tEidByteInfo byte;
3779} tBeaconFilterIe, *tpBeaconFilterIe;
3780
3781typedef PACKED_PRE struct PACKED_POST
3782{
3783 tHalMsgHeader header;
3784 tBeaconFilterMsg addBcnFilterParams;
3785} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3786
3787/*---------------------------------------------------------------------------
3788 * WLAN_HAL_REM_BCN_FILTER_REQ
3789 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003790typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003791{
3792 tANI_U8 ucIeCount;
3793 tANI_U8 ucRemIeId[1];
3794} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3795
3796typedef PACKED_PRE struct PACKED_POST
3797{
3798 tHalMsgHeader header;
3799 tRemBeaconFilterMsg remBcnFilterParams;
3800} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3801
3802/*---------------------------------------------------------------------------
3803 * WLAN_HAL_HOST_OFFLOAD_REQ
3804 *--------------------------------------------------------------------------*/
3805#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3806#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3807#define HAL_IPV6_NS_OFFLOAD 2
3808#define HAL_IPV6_ADDR_LEN 16
3809#define HAL_MAC_ADDR_LEN 6
3810#define HAL_OFFLOAD_DISABLE 0
3811#define HAL_OFFLOAD_ENABLE 1
3812#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003813#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003814#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003815#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003816
3817typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3818{
3819 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3820 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3821 //Only support 2 possible Network Advertisement IPv6 address
3822 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3823 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3824 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3825 tANI_U8 srcIPv6AddrValid : 1;
3826 tANI_U8 targetIPv6Addr1Valid : 1;
3827 tANI_U8 targetIPv6Addr2Valid : 1;
3828 tANI_U8 reserved1 : 5;
3829 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003830 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003831 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003832} tHalNSOffloadParams;
3833
3834typedef PACKED_PRE struct PACKED_POST
3835{
3836 tANI_U8 offloadType;
3837 tANI_U8 enableOrDisable;
3838 PACKED_PRE union PACKED_POST
3839 {
3840 tANI_U8 hostIpv4Addr [4];
3841 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3842 } params;
3843} tHalHostOffloadReq, *tpHalHostOffloadReq;
3844
3845typedef PACKED_PRE struct PACKED_POST
3846{
3847 tHalMsgHeader header;
3848 tHalHostOffloadReq hostOffloadParams;
3849 tHalNSOffloadParams nsOffloadParams;
3850} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3851
Leo Chang397deb72013-08-22 11:33:16 -07003852
3853#ifdef FEATURE_WLAN_LPHB
3854typedef enum
3855{
3856 WIFI_HB_SET_ENABLE = 0x0001,
3857 WIFI_HB_SET_TCP_PARAMS = 0x0002,
3858 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
3859 WIFI_HB_SET_UDP_PARAMS = 0x0004,
3860 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
3861 WIFI_HB_SET_NETWORK_INFO = 0x0006,
3862}tLowPowerHeartBeatCmdType ;
3863
3864#define MAX_FLITER_SIZE 64
3865/*---------------------------------------------------------------------------
3866 *FEATURE_WLAN_LPHB REQ
3867 *--------------------------------------------------------------------------*/
3868typedef PACKED_PRE struct PACKED_POST
3869{
3870 uint32 hostIpv4Addr;
3871 uint32 destIpv4Addr;
3872 uint16 hostPort;
3873 uint16 destPort;
3874 uint16 timeOutSec; // in seconds
3875 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07003876 uint16 timePeriodSec; // in seconds
3877 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07003878} tlowPowerHeartBeatParamsTcpStruct;
3879
3880typedef PACKED_PRE struct PACKED_POST
3881{
3882 uint32 hostIpv4Addr;
3883 uint32 destIpv4Addr;
3884 uint16 hostPort;
3885 uint16 destPort;
3886 uint16 timePeriodSec;// in seconds
3887 uint16 timeOutSec; // in seconds
3888 tSirMacAddr gatewayMacAddr;
3889} tlowPowerHeartBeatParamsUdpStruct;
3890
3891typedef PACKED_PRE struct PACKED_POST
3892{
3893 uint32 offset;
3894 uint32 filterLength;
3895 uint8 filter[MAX_FLITER_SIZE];
3896} tlowPowerHeartBeatFilterStruct;
3897
3898typedef PACKED_PRE struct PACKED_POST
3899{
3900 uint8 heartBeatEnable;
3901 uint8 heartBeatType; //TCP or UDP
3902} tlowPowerHeartBeatEnableStruct;
3903
3904typedef PACKED_PRE struct PACKED_POST
3905{
3906 uint8 dummy;
3907} tlowPowerHeartBeatNetworkInfoStruct;
3908
3909
3910typedef PACKED_PRE struct PACKED_POST
3911{
3912 uint8 sessionIdx;
3913 uint16 lowPowerHeartBeatCmdType;
3914 PACKED_PRE union PACKED_PRO
3915 {
3916 tlowPowerHeartBeatEnableStruct control;
3917 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
3918 tlowPowerHeartBeatParamsTcpStruct tcpParams;
3919 tlowPowerHeartBeatParamsUdpStruct udpParams;
3920 tlowPowerHeartBeatNetworkInfoStruct info;
3921 }options;
3922} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
3923
3924
3925typedef PACKED_PRE struct PACKED_POST
3926{
3927 tHalMsgHeader header;
3928 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
3929} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
3930
3931/*---------------------------------------------------------------------------
3932 * FEATURE_WLAN_LPHB RSP
3933 *--------------------------------------------------------------------------*/
3934
3935typedef PACKED_PRE struct PACKED_POST
3936{
3937 /* success or failure */
3938 uint8 sessionIdx;
3939 uint32 status;
3940 uint16 lowPowerHeartBeatCmdType;
3941}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
3942
3943typedef PACKED_PRE struct PACKED_POST
3944{
3945 tHalMsgHeader header;
3946 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
3947}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
3948
3949
3950/*---------------------------------------------------------------------------
3951 * FEATURE_WLAN_LPHB IND
3952 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07003953#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
3954#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
3955
3956#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
3957#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07003958#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07003959
Kumar Anandea78e792013-10-10 23:47:01 -07003960
3961#define WIFI_LPHB_PROTO_UDP 0x01
3962#define WIFI_LPHB_PROTO_TCP 0x02
3963
Leo Chang397deb72013-08-22 11:33:16 -07003964typedef PACKED_PRE struct PACKED_POST
3965{
3966 uint8 bssIdx;
3967 uint8 sessionIdx;
3968 uint8 protocolType; /*TCP or UDP*/
3969 uint8 eventReason;
3970
3971}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
3972
3973typedef PACKED_PRE struct PACKED_POST
3974{
3975 tHalMsgHeader header;
3976 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
3977}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
3978
3979#endif
krunal soni2a4728d2013-09-20 21:56:50 -07003980
3981#ifdef FEATURE_WLAN_BATCH_SCAN
3982
3983/*---------------------------------------------------------------------------
3984 * WLAN_HAL_BATCHSCAN_SET_REQ
3985 *--------------------------------------------------------------------------*/
3986typedef PACKED_PRE struct PACKED_POST
3987{
3988 /* Scan Frerquency - default to 30Sec*/
3989 tANI_U32 scanInterval;
3990 tANI_U32 numScan2Batch;
3991 tANI_U32 bestNetworks;
3992 tANI_U8 rfBand;
3993 tANI_U8 rtt;
3994} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
3995
3996typedef PACKED_PRE struct PACKED_POST
3997{
3998 tHalMsgHeader header;
3999 tHalBatchScanSetParams batchScanParams;
4000} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4001
4002/*---------------------------------------------------------------------------
4003 * WLAN_HAL_BATCHSCAN_SET_RSP
4004 *--------------------------------------------------------------------------*/
4005typedef PACKED_PRE struct PACKED_POST
4006{
4007 tANI_U32 supportedMscan;
4008} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4009
4010typedef PACKED_PRE struct PACKED_POST
4011{
4012 tHalMsgHeader header;
4013 tHalBatchScanSetRspParam setBatchScanRspParam;
4014} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4015
4016/*---------------------------------------------------------------------------
4017* WLAN_HAL_BATCHSCAN_STOP_IND
4018*--------------------------------------------------------------------------*/
4019typedef PACKED_PRE struct PACKED_POST
4020{
4021 tANI_U32 param;
4022} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4023
4024typedef PACKED_PRE struct PACKED_POST
4025{
4026 tHalMsgHeader header;
4027 tHalBatchScanStopIndParam param;
4028} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4029
4030/*---------------------------------------------------------------------------
4031* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4032*--------------------------------------------------------------------------*/
4033typedef PACKED_PRE struct PACKED_POST
4034{
4035 tANI_U32 param;
4036} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4037
4038typedef PACKED_PRE struct PACKED_POST
4039{
4040 tHalMsgHeader header;
4041 tHalBatchScanTriggerResultParam param;
4042} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4043
4044/*---------------------------------------------------------------------------
4045 * WLAN_HAL_BATCHSCAN_GET_RSP
4046 *--------------------------------------------------------------------------*/
4047typedef PACKED_PRE struct PACKED_POST
4048{
4049 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004050 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004051 tANI_U8 ch; /* Channel */
4052 tANI_U8 rssi; /* RSSI or Level */
4053 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4054 tANI_U32 timestamp;
4055} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4056
4057typedef PACKED_PRE struct PACKED_POST
4058{
4059 tANI_U32 scanId; /* Scan List ID. */
4060 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4061 tANI_U32 numNetworksInScanList;
4062 /* Variable data ptr: Number of AP in Scan List */
4063 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4064 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4065 tANI_U8 scanList[1];
4066} tHalBatchScanList, *tpHalBatchScanList;
4067
4068typedef PACKED_PRE struct PACKED_POST
4069{
4070 tANI_U32 timestamp;
4071 tANI_U32 numScanLists;
4072 boolean isLastResult;
4073 /* Variable Data ptr: Number of Scan Lists*/
4074 /* following isLastResult is data of type tHalBatchScanList
4075 * of sizeof(tHalBatchScanList) * numScanLists*/
4076 tANI_U8 scanResults[1];
4077} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4078
4079typedef PACKED_PRE struct PACKED_POST
4080{
4081 tHalMsgHeader header;
4082 tHalBatchScanResultIndParam resultIndMsgParam;
4083} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4084
4085#endif
4086
Jeff Johnson295189b2012-06-20 16:38:30 -07004087/*---------------------------------------------------------------------------
4088 * WLAN_HAL_KEEP_ALIVE_REQ
4089 *--------------------------------------------------------------------------*/
4090/* Packet Types. */
4091#define HAL_KEEP_ALIVE_NULL_PKT 1
4092#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4093
4094/* Enable or disable keep alive */
4095#define HAL_KEEP_ALIVE_DISABLE 0
4096#define HAL_KEEP_ALIVE_ENABLE 1
4097
4098/* Keep Alive request. */
4099typedef PACKED_PRE struct PACKED_POST
4100{
4101 tANI_U8 packetType;
4102 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004103 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004104 tHalIpv4Addr destIpv4Addr;
4105 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004106 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004107} tHalKeepAliveReq, *tpHalKeepAliveReq;
4108
4109typedef PACKED_PRE struct PACKED_POST
4110{
4111 tHalMsgHeader header;
4112 tHalKeepAliveReq KeepAliveParams;
4113} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4114
4115/*---------------------------------------------------------------------------
4116 * WLAN_HAL_SET_RSSI_THRESH_REQ
4117 *--------------------------------------------------------------------------*/
4118typedef PACKED_PRE struct PACKED_POST
4119{
4120 tANI_S8 ucRssiThreshold1 : 8;
4121 tANI_S8 ucRssiThreshold2 : 8;
4122 tANI_S8 ucRssiThreshold3 : 8;
4123 tANI_U8 bRssiThres1PosNotify : 1;
4124 tANI_U8 bRssiThres1NegNotify : 1;
4125 tANI_U8 bRssiThres2PosNotify : 1;
4126 tANI_U8 bRssiThres2NegNotify : 1;
4127 tANI_U8 bRssiThres3PosNotify : 1;
4128 tANI_U8 bRssiThres3NegNotify : 1;
4129 tANI_U8 bReserved10 : 2;
4130} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004131
Jeff Johnson295189b2012-06-20 16:38:30 -07004132typedef PACKED_PRE struct PACKED_POST
4133{
4134 tHalMsgHeader header;
4135 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004136} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004137
4138/*---------------------------------------------------------------------------
4139 * WLAN_HAL_ENTER_UAPSD_REQ
4140 *--------------------------------------------------------------------------*/
4141typedef PACKED_PRE struct PACKED_POST
4142{
4143 tANI_U8 bkDeliveryEnabled:1;
4144 tANI_U8 beDeliveryEnabled:1;
4145 tANI_U8 viDeliveryEnabled:1;
4146 tANI_U8 voDeliveryEnabled:1;
4147 tANI_U8 bkTriggerEnabled:1;
4148 tANI_U8 beTriggerEnabled:1;
4149 tANI_U8 viTriggerEnabled:1;
4150 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004151 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004152} tUapsdReqParams, *tpUapsdReqParams;
4153
4154typedef PACKED_PRE struct PACKED_POST
4155{
4156 tHalMsgHeader header;
4157 tUapsdReqParams enterUapsdParams;
4158} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4159
4160/*---------------------------------------------------------------------------
4161 * WLAN_HAL_EXIT_UAPSD_REQ
4162 *--------------------------------------------------------------------------*/
4163typedef PACKED_PRE struct PACKED_POST
4164{
4165 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004166 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004167} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4168
Kumar Anandea78e792013-10-10 23:47:01 -07004169#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4170#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004171/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004172 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4173 *--------------------------------------------------------------------------*/
4174typedef PACKED_PRE struct PACKED_POST
4175{
4176 tANI_U32 selfStaIdx:8;
4177 tANI_U32 ucPtrnId:8; // Pattern ID
4178 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4179 tANI_U32 uPtrnIntervalMs; // In msec
4180 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4181} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4182
4183typedef PACKED_PRE struct PACKED_POST
4184{
4185 tHalMsgHeader header;
4186 tHalAddPeriodicTxPtrn ptrnParams;
4187} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4188
4189/*---------------------------------------------------------------------------
4190 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4191 *--------------------------------------------------------------------------*/
4192typedef PACKED_PRE struct PACKED_POST
4193{
4194 tANI_U32 selfStaIdx:8;
4195 tANI_U32 rsvd:24;
4196 /* Bitmap of pattern IDs that needs to be deleted */
4197 tANI_U32 uPatternIdBitmap;
4198} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4199
4200typedef PACKED_PRE struct PACKED_POST
4201{
4202 tHalMsgHeader header;
4203 tHalDelPeriodicTxPtrn ptrnParams;
4204} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4205
4206/*---------------------------------------------------------------------------
4207 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4208 *--------------------------------------------------------------------------*/
4209typedef PACKED_PRE struct PACKED_POST
4210{
4211 /* Type of Failure indication */
4212 tANI_U32 bssIdx:8;
4213 tANI_U32 selfStaIdx:8;
4214 tANI_U32 rsvd:16;
4215 tANI_U32 status;
4216 tANI_U32 patternIdBitmap;
4217} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4218
4219typedef PACKED_PRE struct PACKED_POST
4220{
4221 tHalMsgHeader header;
4222 tHalPeriodicTxPtrnFwInd fwIndParams;
4223} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4224
4225/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004226 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4227 *--------------------------------------------------------------------------*/
4228#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4229#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4230
4231typedef PACKED_PRE struct PACKED_POST
4232{
4233 tANI_U8 ucPatternId; // Pattern ID
4234 // Pattern byte offset from beginning of the 802.11 packet to start of the
4235 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07004236 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004237 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4238 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4239 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4240 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4241 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4242 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004243 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004244} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4245
4246typedef PACKED_PRE struct PACKED_POST
4247{
4248 tHalMsgHeader header;
4249 tHalWowlAddBcastPtrn ptrnParams;
4250} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004251
Jeff Johnsone7245742012-09-05 17:12:55 -07004252
4253
Jeff Johnson295189b2012-06-20 16:38:30 -07004254/*---------------------------------------------------------------------------
4255 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4256 *--------------------------------------------------------------------------*/
4257typedef PACKED_PRE struct PACKED_POST
4258{
4259 /* Pattern ID of the wakeup pattern to be deleted */
4260 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004261 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004262} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4263
4264typedef PACKED_PRE struct PACKED_POST
4265{
4266 tHalMsgHeader header;
4267 tHalWowlDelBcastPtrn ptrnParams;
4268} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4269
4270/*---------------------------------------------------------------------------
4271 * WLAN_HAL_ENTER_WOWL_REQ
4272 *--------------------------------------------------------------------------*/
4273typedef PACKED_PRE struct PACKED_POST
4274{
4275 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004276 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004277
4278 /* Magic pattern */
4279 tSirMacAddr magicPtrn;
4280
Jeff Johnson32d95a32012-09-10 13:15:23 -07004281 /* Enables/disables packet pattern filtering in firmware.
4282 Enabling this flag enables broadcast pattern matching
4283 in Firmware. If unicast pattern matching is also desired,
4284 ucUcastPatternFilteringEnable flag must be set tot true
4285 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004286 */
4287 tANI_U8 ucPatternFilteringEnable;
4288
Jeff Johnson32d95a32012-09-10 13:15:23 -07004289 /* Enables/disables unicast packet pattern filtering.
4290 This flag specifies whether we want to do pattern match
4291 on unicast packets as well and not just broadcast packets.
4292 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004293 (main controlling flag) is set to false
4294 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004295 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004296
Jeff Johnson32d95a32012-09-10 13:15:23 -07004297 /* This configuration is valid only when magicPktEnable=1.
4298 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004299 * Channel Switch Action Frame.
4300 */
4301 tANI_U8 ucWowChnlSwitchRcv;
4302
Jeff Johnson32d95a32012-09-10 13:15:23 -07004303 /* This configuration is valid only when magicPktEnable=1.
4304 * It requests hardware to wake up when it receives the
4305 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004306 */
4307 tANI_U8 ucWowDeauthRcv;
4308
Jeff Johnson32d95a32012-09-10 13:15:23 -07004309 /* This configuration is valid only when magicPktEnable=1.
4310 * It requests hardware to wake up when it receives the
4311 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004312 */
4313 tANI_U8 ucWowDisassocRcv;
4314
Jeff Johnson32d95a32012-09-10 13:15:23 -07004315 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004316 * It requests hardware to wake up when it has missed
4317 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07004318 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004319 */
4320 tANI_U8 ucWowMaxMissedBeacons;
4321
Jeff Johnson32d95a32012-09-10 13:15:23 -07004322 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004323 * This is a timeout value in units of microsec. It requests
4324 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07004325 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004326 */
4327 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004328
Jeff Johnson295189b2012-06-20 16:38:30 -07004329 /* This configuration directs the WoW packet filtering to look for EAP-ID
4330 * requests embedded in EAPOL frames and use this as a wake source.
4331 */
4332 tANI_U8 ucWoWEAPIDRequestEnable;
4333
4334 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4335 * requests and use this as a wake source.
4336 */
4337 tANI_U8 ucWoWEAPOL4WayEnable;
4338
4339 /* This configuration allows a host wakeup on an network scan offload match.
4340 */
4341 tANI_U8 ucWowNetScanOffloadMatch;
4342
4343 /* This configuration allows a host wakeup on any GTK rekeying error.
4344 */
4345 tANI_U8 ucWowGTKRekeyError;
4346
4347 /* This configuration allows a host wakeup on BSS connection loss.
4348 */
4349 tANI_U8 ucWoWBSSConnLoss;
4350
Jeff Johnsone7245742012-09-05 17:12:55 -07004351 tANI_U8 bssIdx;
4352
Jeff Johnson295189b2012-06-20 16:38:30 -07004353} tHalWowlEnterParams, *tpHalWowlEnterParams;
4354
4355typedef PACKED_PRE struct PACKED_POST
4356{
4357 tHalMsgHeader header;
4358 tHalWowlEnterParams enterWowlParams;
4359} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4360
4361/*---------------------------------------------------------------------------
4362 * WLAN_HAL_EXIT_WOWL_REQ
4363 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004364
Jeff Johnson295189b2012-06-20 16:38:30 -07004365typedef PACKED_PRE struct PACKED_POST
4366{
Jeff Johnsone7245742012-09-05 17:12:55 -07004367 tANI_U8 bssIdx;
4368
4369} tHalWowlExitParams, *tpHalWowlExitParams;
4370
4371typedef PACKED_PRE struct PACKED_POST
4372{
4373 tHalMsgHeader header;
4374 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004375} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4376
4377/*---------------------------------------------------------------------------
4378 * WLAN_HAL_GET_RSSI_REQ
4379 *--------------------------------------------------------------------------*/
4380typedef PACKED_PRE struct PACKED_POST
4381{
4382 tHalMsgHeader header;
4383} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4384
Anand Kumar012623a2013-01-11 17:00:00 -08004385typedef PACKED_PRE struct PACKED_POST
4386{
4387 /* Valid STA Idx for per STA stats request */
4388 tANI_U32 staId;
4389
4390}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4391
4392
4393/*---------------------------------------------------------------------------
4394 * WLAN_HAL_GET_ROAM_RSSI_REQ
4395 *--------------------------------------------------------------------------*/
4396typedef PACKED_PRE struct PACKED_POST
4397{
4398 tHalMsgHeader header;
4399 tHalRoamRssiReqParams roamRssiReqParams;
4400} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4401
4402
Jeff Johnson295189b2012-06-20 16:38:30 -07004403/*---------------------------------------------------------------------------
4404 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4405 *--------------------------------------------------------------------------*/
4406typedef PACKED_PRE struct PACKED_POST {
4407 tANI_U8 staidx; // STA index
4408 tANI_U8 ac; // Access Category
4409 tANI_U8 up; // User Priority
4410 tANI_U32 srvInterval; // Service Interval
4411 tANI_U32 susInterval; // Suspend Interval
4412 tANI_U32 delayInterval; // Delay Interval
4413} tUapsdInfo, tpUapsdInfo;
4414
4415typedef PACKED_PRE struct PACKED_POST
4416{
4417 tHalMsgHeader header;
4418 tUapsdInfo enableUapsdAcParams;
4419} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4420
4421/*---------------------------------------------------------------------------
4422 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4423 *--------------------------------------------------------------------------*/
4424typedef PACKED_PRE struct PACKED_POST {
4425 tANI_U8 setMcstBcstFilterSetting;
4426 tANI_U8 setMcstBcstFilter;
4427} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4428
4429typedef PACKED_PRE struct PACKED_POST
4430{
4431 tHalMsgHeader header;
4432 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4433} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4434
4435/*---------------------------------------------------------------------------
4436 * WLAN_HAL_ENTER_IMPS_RSP
4437 *--------------------------------------------------------------------------*/
4438typedef PACKED_PRE struct PACKED_POST
4439{
4440 /* success or failure */
4441 tANI_U32 status;
4442} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4443
4444typedef PACKED_PRE struct PACKED_POST
4445{
4446 tHalMsgHeader header;
4447 tHalEnterImpsRspParams enterImpsRspParams;
4448} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4449
4450/*---------------------------------------------------------------------------
4451 * WLAN_HAL_EXIT_IMPS_RSP
4452 *--------------------------------------------------------------------------*/
4453typedef PACKED_PRE struct PACKED_POST
4454{
4455 /* success or failure */
4456 tANI_U32 status;
4457} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4458
4459typedef PACKED_PRE struct PACKED_POST
4460{
4461 tHalMsgHeader header;
4462 tHalExitImpsRspParams exitImpsRspParams;
4463} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4464
4465/*---------------------------------------------------------------------------
4466 * WLAN_HAL_ENTER_BMPS_RSP
4467 *--------------------------------------------------------------------------*/
4468typedef PACKED_PRE struct PACKED_POST
4469{
4470 /* success or failure */
4471 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004472 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004473} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4474
4475typedef PACKED_PRE struct PACKED_POST
4476{
4477 tHalMsgHeader header;
4478 tHalEnterBmpsRspParams enterBmpsRspParams;
4479} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4480
4481/*---------------------------------------------------------------------------
4482 * WLAN_HAL_EXIT_BMPS_RSP
4483 *--------------------------------------------------------------------------*/
4484typedef PACKED_PRE struct PACKED_POST
4485{
4486 /* success or failure */
4487 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004488 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004489} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4490
4491typedef PACKED_PRE struct PACKED_POST
4492{
4493 tHalMsgHeader header;
4494 tHalExitBmpsRspParams exitBmpsRspParams;
4495} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4496
4497/*---------------------------------------------------------------------------
4498 * WLAN_HAL_ENTER_UAPSD_RSP
4499 *--------------------------------------------------------------------------*/
4500typedef PACKED_PRE struct PACKED_POST
4501{
4502 /* success or failure */
4503 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004504 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004505}tUapsdRspParams, *tpUapsdRspParams;
4506
4507typedef PACKED_PRE struct PACKED_POST
4508{
4509 tHalMsgHeader header;
4510 tUapsdRspParams enterUapsdRspParams;
4511} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4512
4513/*---------------------------------------------------------------------------
4514 * WLAN_HAL_EXIT_UAPSD_RSP
4515 *--------------------------------------------------------------------------*/
4516typedef PACKED_PRE struct PACKED_POST
4517{
4518 /* success or failure */
4519 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004520 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004521} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4522
4523typedef PACKED_PRE struct PACKED_POST
4524{
4525 tHalMsgHeader header;
4526 tHalExitUapsdRspParams exitUapsdRspParams;
4527} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4528
4529/*---------------------------------------------------------------------------
4530 * WLAN_HAL_RSSI_NOTIFICATION_IND
4531 *--------------------------------------------------------------------------*/
4532typedef PACKED_PRE struct PACKED_POST
4533{
4534 tANI_U32 bRssiThres1PosCross : 1;
4535 tANI_U32 bRssiThres1NegCross : 1;
4536 tANI_U32 bRssiThres2PosCross : 1;
4537 tANI_U32 bRssiThres2NegCross : 1;
4538 tANI_U32 bRssiThres3PosCross : 1;
4539 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004540 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004541 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07004542 tANI_U32 isBTCoexCompromise : 1;
4543 tANI_U32 bReserved : 9;
Jeff Johnson295189b2012-06-20 16:38:30 -07004544} tHalRSSINotification, *tpHalRSSINotification;
4545
4546typedef PACKED_PRE struct PACKED_POST
4547{
4548 tHalMsgHeader header;
4549 tHalRSSINotification rssiNotificationParams;
4550} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4551
4552/*---------------------------------------------------------------------------
4553 * WLAN_HAL_GET_RSSI_RSP
4554 *--------------------------------------------------------------------------*/
4555typedef PACKED_PRE struct PACKED_POST
4556{
4557 /* success or failure */
4558 tANI_U32 status;
4559 tANI_S8 rssi;
4560} tHalGetRssiParams, *tpHalGetRspParams;
4561
4562typedef PACKED_PRE struct PACKED_POST
4563{
4564 tHalMsgHeader header;
4565 tHalGetRssiParams rssiRspParams;
4566} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4567
4568/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004569 * WLAN_HAL_GET_ROAM_RSSI_RSP
4570 *--------------------------------------------------------------------------*/
4571typedef PACKED_PRE struct PACKED_POST
4572{
4573 /* success or failure */
4574 tANI_U32 status;
4575
4576 tANI_U8 staId;
4577 tANI_S8 rssi;
4578} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4579
4580typedef PACKED_PRE struct PACKED_POST
4581{
4582 tHalMsgHeader header;
4583 tHalGetRoamRssiParams roamRssiRspParams;
4584} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4585
4586/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004587 * WLAN_HAL_ENTER_WOWL_RSP
4588 *--------------------------------------------------------------------------*/
4589typedef PACKED_PRE struct PACKED_POST
4590{
4591 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004592 tANI_U32 status;
4593 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004594} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4595
4596typedef PACKED_PRE struct PACKED_POST
4597{
4598 tHalMsgHeader header;
4599 tHalEnterWowlRspParams enterWowlRspParams;
4600} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4601
4602/*---------------------------------------------------------------------------
4603 * WLAN_HAL_EXIT_WOWL_RSP
4604 *--------------------------------------------------------------------------*/
4605typedef PACKED_PRE struct PACKED_POST
4606{
4607 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004608 tANI_U32 status;
4609 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004610} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4611
4612typedef PACKED_PRE struct PACKED_POST
4613{
4614 tHalMsgHeader header;
4615 tHalExitWowlRspParams exitWowlRspParams;
4616} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4617
4618/*---------------------------------------------------------------------------
4619 * WLAN_HAL_ADD_BCN_FILTER_RSP
4620 *--------------------------------------------------------------------------*/
4621typedef PACKED_PRE struct PACKED_POST
4622{
4623 /* success or failure */
4624 tANI_U32 status;
4625} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4626
4627typedef PACKED_PRE struct PACKED_POST
4628{
4629 tHalMsgHeader header;
4630 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4631} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4632
4633/*---------------------------------------------------------------------------
4634 * WLAN_HAL_REM_BCN_FILTER_RSP
4635 *--------------------------------------------------------------------------*/
4636typedef PACKED_PRE struct PACKED_POST
4637{
4638 /* success or failure */
4639 tANI_U32 status;
4640} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4641
4642typedef PACKED_PRE struct PACKED_POST
4643{
4644 tHalMsgHeader header;
4645 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4646} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4647
4648/*---------------------------------------------------------------------------
4649 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4650 *--------------------------------------------------------------------------*/
4651typedef PACKED_PRE struct PACKED_POST
4652{
4653 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004654 tANI_U32 status;
4655 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004656} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4657
4658typedef PACKED_PRE struct PACKED_POST
4659{
4660 tHalMsgHeader header;
4661 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4662} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4663
4664/*---------------------------------------------------------------------------
4665 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4666 *--------------------------------------------------------------------------*/
4667typedef PACKED_PRE struct PACKED_POST
4668{
4669 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004670 tANI_U32 status;
4671 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004672} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4673
4674typedef PACKED_PRE struct PACKED_POST
4675{
4676 tHalMsgHeader header;
4677 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4678} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4679
4680/*---------------------------------------------------------------------------
4681 * WLAN_HAL_HOST_OFFLOAD_RSP
4682 *--------------------------------------------------------------------------*/
4683typedef PACKED_PRE struct PACKED_POST
4684{
4685 /* success or failure */
4686 tANI_U32 status;
4687} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4688
4689typedef PACKED_PRE struct PACKED_POST
4690{
4691 tHalMsgHeader header;
4692 tHalHostOffloadRspParams hostOffloadRspParams;
4693} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4694
4695/*---------------------------------------------------------------------------
4696 * WLAN_HAL_KEEP_ALIVE_RSP
4697 *--------------------------------------------------------------------------*/
4698typedef PACKED_PRE struct PACKED_POST
4699{
4700 /* success or failure */
4701 tANI_U32 status;
4702} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4703
4704typedef PACKED_PRE struct PACKED_POST
4705{
4706 tHalMsgHeader header;
4707 tHalKeepAliveRspParams keepAliveRspParams;
4708} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4709
4710/*---------------------------------------------------------------------------
4711 * WLAN_HAL_SET_RSSI_THRESH_RSP
4712 *--------------------------------------------------------------------------*/
4713typedef PACKED_PRE struct PACKED_POST
4714{
4715 /* success or failure */
4716 tANI_U32 status;
4717} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4718
4719typedef PACKED_PRE struct PACKED_POST
4720{
4721 tHalMsgHeader header;
4722 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4723} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4724
4725/*---------------------------------------------------------------------------
4726 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4727 *--------------------------------------------------------------------------*/
4728typedef PACKED_PRE struct PACKED_POST
4729{
4730 /* success or failure */
4731 tANI_U32 status;
4732} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4733
4734typedef PACKED_PRE struct PACKED_POST
4735{
4736 tHalMsgHeader header;
4737 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4738} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4739
4740/*---------------------------------------------------------------------------
4741 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4742 *--------------------------------------------------------------------------*/
4743typedef PACKED_PRE struct PACKED_POST
4744{
4745 /* success or failure */
4746 tANI_U32 status;
4747} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4748
4749typedef PACKED_PRE struct PACKED_POST
4750{
4751 tHalMsgHeader header;
4752 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4753} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4754
4755/*---------------------------------------------------------------------------
4756 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4757 *--------------------------------------------------------------------------*/
4758
4759typedef PACKED_PRE struct PACKED_POST
4760{
4761 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4762 //the request has power constraints, this should be applied only to that session
4763 tSirMacAddr selfStaMacAddr;
4764 //In request,
4765 //power == MaxTx power to be used.
4766 tPowerdBm power;
4767
4768}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4769
4770
4771typedef PACKED_PRE struct PACKED_POST
4772{
4773 tHalMsgHeader header;
4774 tSetMaxTxPwrParams setMaxTxPwrParams;
4775}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4776
4777/*---------------------------------------------------------------------------
4778*WLAN_HAL_SET_MAX_TX_POWER_RSP
4779*--------------------------------------------------------------------------*/
4780
4781typedef PACKED_PRE struct PACKED_POST
4782{
4783 //power == tx power used for management frames.
4784 tPowerdBm power;
4785
4786 /* success or failure */
4787 tANI_U32 status;
4788}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4789
4790typedef PACKED_PRE struct PACKED_POST
4791{
4792 tHalMsgHeader header;
4793 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4794}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4795
Kumar Anandea78e792013-10-10 23:47:01 -07004796
Jeff Johnson295189b2012-06-20 16:38:30 -07004797/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07004798 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
4799 *--------------------------------------------------------------------------*/
4800
4801/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
4802typedef enum
4803{
4804 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
4805 // For 2.4GHz or 5GHz bands
4806 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
4807 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
4808 // End of valid enums
4809 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
4810}tHalSetMaxTxPwrBandInfo;
4811
4812typedef PACKED_PRE struct PACKED_POST
4813{
4814 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07004815 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07004816}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
4817
Kumar Anandea78e792013-10-10 23:47:01 -07004818
Arif Hussain36fda162013-08-30 14:46:57 -07004819typedef PACKED_PRE struct PACKED_POST
4820{
4821 tHalMsgHeader header;
4822 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
4823}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
4824
4825/*---------------------------------------------------------------------------
4826*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
4827*--------------------------------------------------------------------------*/
4828
4829typedef PACKED_PRE struct PACKED_POST
4830{
4831 //power == tx power used for management frames.
4832 tPowerdBm power;
4833
4834 /* success or failure */
4835 tANI_U32 status;
4836}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
4837
4838typedef PACKED_PRE struct PACKED_POST
4839{
4840 tHalMsgHeader header;
4841 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
4842}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
4843
4844/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004845 *WLAN_HAL_SET_TX_POWER_REQ
4846 *--------------------------------------------------------------------------*/
4847
4848typedef PACKED_PRE struct PACKED_POST
4849{
4850 /* TX Power in milli watts */
4851 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004852 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004853}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4854
4855
4856typedef PACKED_PRE struct PACKED_POST
4857{
4858 tHalMsgHeader header;
4859 tSetTxPwrReqParams setTxPwrReqParams;
4860}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4861
4862/*---------------------------------------------------------------------------
4863*WLAN_HAL_SET_TX_POWER_RSP
4864*--------------------------------------------------------------------------*/
4865
4866typedef PACKED_PRE struct PACKED_POST
4867{
4868 /* success or failure */
4869 tANI_U32 status;
4870}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4871
4872typedef PACKED_PRE struct PACKED_POST
4873{
4874 tHalMsgHeader header;
4875 tSetTxPwrRspParams setTxPwrRspParams;
4876}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4877
4878/*---------------------------------------------------------------------------
4879 *WLAN_HAL_GET_TX_POWER_REQ
4880 *--------------------------------------------------------------------------*/
4881
4882typedef PACKED_PRE struct PACKED_POST
4883{
4884 tANI_U8 staId;
4885}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4886
4887typedef PACKED_PRE struct PACKED_POST
4888{
4889 tHalMsgHeader header;
4890 tGetTxPwrReqParams getTxPwrReqParams;
4891}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4892
4893/*---------------------------------------------------------------------------
4894*WLAN_HAL_GET_TX_POWER_RSP
4895*--------------------------------------------------------------------------*/
4896
4897typedef PACKED_PRE struct PACKED_POST
4898{
4899 /* success or failure */
4900 tANI_U32 status;
4901
4902 /* TX Power in milli watts */
4903 tANI_U32 txPower;
4904}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4905
4906typedef PACKED_PRE struct PACKED_POST
4907{
4908 tHalMsgHeader header;
4909 tGetTxPwrRspParams getTxPwrRspParams;
4910}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4911
4912#ifdef WLAN_FEATURE_P2P
4913/*---------------------------------------------------------------------------
4914 *WLAN_HAL_SET_P2P_GONOA_REQ
4915 *--------------------------------------------------------------------------*/
4916
4917typedef PACKED_PRE struct PACKED_POST
4918{
4919 tANI_U8 opp_ps;
4920 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004921 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004922 tANI_U32 duration;
4923 tANI_U32 interval;
4924 tANI_U32 single_noa_duration;
4925 tANI_U8 psSelection;
4926}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4927
4928
4929typedef PACKED_PRE struct PACKED_POST
4930{
4931 tHalMsgHeader header;
4932 tSetP2PGONOAParams setP2PGONOAParams;
4933}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4934
4935/*---------------------------------------------------------------------------
4936*WLAN_HAL_SET_P2P_GONOA_RSP
4937*--------------------------------------------------------------------------*/
4938
4939typedef PACKED_PRE struct PACKED_POST
4940{
4941 /* success or failure */
4942 tANI_U32 status;
4943}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4944
4945typedef PACKED_PRE struct PACKED_POST
4946{
4947 tHalMsgHeader header;
4948 tSetP2PGONOARspParams setP2PGONOARspParams;
4949}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4950#endif
4951
4952/*---------------------------------------------------------------------------
4953 *WLAN_HAL_ADD_SELF_STA_REQ
4954 *--------------------------------------------------------------------------*/
4955
4956typedef PACKED_PRE struct PACKED_POST
4957{
4958 tSirMacAddr selfMacAddr;
4959 tANI_U32 status;
4960}tAddStaSelfParams, *tpAddStaSelfParams;
4961
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004962typedef PACKED_PRE struct PACKED_POST
4963{
4964 tSirMacAddr selfMacAddr;
4965 tANI_U32 status;
4966 tHalIfacePersona iface_persona;
4967}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004968
4969typedef PACKED_PRE struct PACKED_POST
4970{
4971 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004972 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07004973 tAddStaSelfParams addStaSelfParams;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004974 tAddStaSelfParams_V1 addStaSelfParams_V1;
4975 }uAddStaSelfParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004976}tAddStaSelfReq, *tpAddStaSelfReq;
4977
4978/*---------------------------------------------------------------------------
4979*WLAN_HAL_ADD_SELF_STA_RSP
4980*--------------------------------------------------------------------------*/
4981
4982typedef PACKED_PRE struct PACKED_POST
4983{
4984 /* success or failure */
4985 tANI_U32 status;
4986
4987 /*Self STA Index */
4988 tANI_U8 selfStaIdx;
4989
4990 /* DPU Index (IGTK, PTK, GTK all same) */
4991 tANI_U8 dpuIdx;
4992
4993 /* DPU Signature */
4994 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004995
Jeff Johnson295189b2012-06-20 16:38:30 -07004996}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4997
4998typedef PACKED_PRE struct PACKED_POST
4999{
5000 tHalMsgHeader header;
5001 tAddStaSelfRspParams addStaSelfRspParams;
5002}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5003
5004
5005/*---------------------------------------------------------------------------
5006 WLAN_HAL_DEL_STA_SELF_REQ
5007---------------------------------------------------------------------------*/
5008
5009typedef PACKED_PRE struct PACKED_POST
5010{
5011 tSirMacAddr selfMacAddr;
5012
5013}tDelStaSelfParams, *tpDelStaSelfParams;
5014
5015typedef PACKED_PRE struct PACKED_POST
5016{
5017 tHalMsgHeader header;
5018 tDelStaSelfParams delStaSelfParams;
5019} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5020
5021
5022/*---------------------------------------------------------------------------
5023 WLAN_HAL_DEL_STA_SELF_RSP
5024---------------------------------------------------------------------------*/
5025
5026typedef PACKED_PRE struct PACKED_POST
5027{
5028 /*success or failure */
5029 tANI_U32 status;
5030
5031 tSirMacAddr selfMacAddr;
5032}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5033
5034typedef PACKED_PRE struct PACKED_POST
5035{
5036 tHalMsgHeader header;
5037 tDelStaSelfRspParams delStaSelfRspParams;
5038} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5039
5040
5041#ifdef WLAN_FEATURE_VOWIFI_11R
5042
5043/*---------------------------------------------------------------------------
5044 *WLAN_HAL_AGGR_ADD_TS_REQ
5045 *--------------------------------------------------------------------------*/
5046
5047typedef PACKED_PRE struct PACKED_POST
5048{
5049 /* Station Index */
5050 tANI_U16 staIdx;
5051
5052 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5053 /* This will carry the bitmap with the bit positions representing different AC.s*/
5054 tANI_U16 tspecIdx;
5055
5056 /* Tspec info per AC To program TPE with required parameters */
5057 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5058
5059 /* U-APSD Flags: 1b per AC. Encoded as follows:
5060 b7 b6 b5 b4 b3 b2 b1 b0 =
5061 X X X X BE BK VI VO */
5062 tANI_U8 uAPSD;
5063
5064 /* These parameters are for all the access categories */
5065 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5066 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5067 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5068
5069}tAggrAddTsParams, *tpAggrAddTsParams;
5070
5071
5072typedef PACKED_PRE struct PACKED_POST
5073{
5074 tHalMsgHeader header;
5075 tAggrAddTsParams aggrAddTsParam;
5076}tAggrAddTsReq, *tpAggrAddTsReq;
5077
5078/*---------------------------------------------------------------------------
5079*WLAN_HAL_AGGR_ADD_TS_RSP
5080*--------------------------------------------------------------------------*/
5081
5082typedef PACKED_PRE struct PACKED_POST
5083{
5084 /* success or failure */
5085 tANI_U32 status0;
5086 /* FIXME PRIMA for future use for 11R */
5087 tANI_U32 status1;
5088}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5089
5090typedef PACKED_PRE struct PACKED_POST
5091{
5092 tHalMsgHeader header;
5093 tAggrAddTsRspParams aggrAddTsRspParam;
5094}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5095
5096#endif
5097
5098/*---------------------------------------------------------------------------
5099 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5100 *--------------------------------------------------------------------------*/
5101typedef PACKED_PRE struct PACKED_POST
5102{
5103 tANI_U8 isAppsCpuAwake;
5104} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5105
5106typedef PACKED_PRE struct PACKED_POST
5107{
5108 tHalMsgHeader header;
5109 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5110} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5111
5112/*---------------------------------------------------------------------------
5113 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5114 *--------------------------------------------------------------------------*/
5115typedef PACKED_PRE struct PACKED_POST
5116{
5117 /* success or failure */
5118 tANI_U32 status;
5119} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5120
5121typedef PACKED_PRE struct PACKED_POST
5122{
5123 tHalMsgHeader header;
5124 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5125} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5126/*---------------------------------------------------------------------------
5127 * WLAN_HAL_DUMP_COMMAND_REQ
5128 *--------------------------------------------------------------------------*/
5129
5130typedef PACKED_PRE struct PACKED_POST
5131{
5132 tANI_U32 argument1;
5133 tANI_U32 argument2;
5134 tANI_U32 argument3;
5135 tANI_U32 argument4;
5136 tANI_U32 argument5;
5137
5138}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5139
5140typedef PACKED_PRE struct PACKED_POST
5141{
5142 tHalMsgHeader header;
5143 tHalDumpCmdReqParams dumpCmdReqParams;
5144} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5145
5146/*---------------------------------------------------------------------------
5147 * WLAN_HAL_DUMP_COMMAND_RSP
5148 *--------------------------------------------------------------------------*/
5149
5150typedef PACKED_PRE struct PACKED_POST
5151{
5152 /* success or failure */
5153 tANI_U32 status;
5154 /*Length of the responce message*/
5155 tANI_U32 rspLength;
5156 /*FiXME: Currently considering the the responce will be less than 100bytes */
5157 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07005158
Jeff Johnson295189b2012-06-20 16:38:30 -07005159} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5160
5161typedef PACKED_PRE struct PACKED_POST
5162{
5163 tHalMsgHeader header;
5164 tHalDumpCmdRspParams dumpCmdRspParams;
5165} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5166
5167/*---------------------------------------------------------------------------
5168 *WLAN_HAL_COEX_IND
5169 *-------------------------------------------------------------------------*/
5170#define WLAN_COEX_IND_DATA_SIZE (4)
5171#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5172#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005173#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5174#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005175#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5176#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07005177
5178typedef PACKED_PRE struct PACKED_POST
5179{
5180 /*Coex Indication Type*/
5181 tANI_U32 coexIndType;
5182
5183 /*Coex Indication Data*/
5184 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5185}tCoexIndParams,*tpCoexIndParams;
5186
5187typedef PACKED_PRE struct PACKED_POST
5188{
5189 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005190 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005191}tCoexIndMsg, *tpCoexIndMsg;
5192
5193/*---------------------------------------------------------------------------
5194 *WLAN_HAL_OTA_TX_COMPL_IND
5195 *-------------------------------------------------------------------------*/
5196
5197typedef PACKED_PRE struct PACKED_POST
5198{
5199 /*Tx Complete Indication Success or Failure*/
5200 tANI_U32 status;
5201}tTxComplParams,*tpTxComplParams;
5202
5203typedef PACKED_PRE struct PACKED_POST
5204{
5205 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005206 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005207}tTxComplIndMsg, *tpTxComplIndMsg;
5208
5209/*---------------------------------------------------------------------------
5210 * WLAN_HAL_HOST_SUSPEND_IND
5211 *-------------------------------------------------------------------------*/
5212
5213typedef PACKED_PRE struct PACKED_POST
5214{
5215 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005216 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005217}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5218
5219typedef PACKED_PRE struct PACKED_POST
5220{
5221 tHalMsgHeader header;
5222 tHalWlanHostSuspendIndParam suspendIndParams;
5223}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5224
5225/*---------------------------------------------------------------------------
5226 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5227 *-------------------------------------------------------------------------*/
5228
5229typedef PACKED_PRE struct PACKED_POST
5230{
5231 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005232 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005233}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5234
5235typedef PACKED_PRE struct PACKED_POST
5236{
5237 tHalMsgHeader header;
5238 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5239}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5240
5241#ifdef WLAN_FEATURE_P2P
5242/*---------------------------------------------------------------------------
5243 *WLAN_HAL_NOA_ATTR_IND
5244 *-------------------------------------------------------------------------*/
5245
5246typedef PACKED_PRE struct PACKED_POST
5247{
5248 tANI_U8 index ;
5249 tANI_U8 oppPsFlag ;
5250 tANI_U16 ctWin ;
5251
5252 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005253 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005254 tANI_U32 uNoa1Duration;
5255 tANI_U32 uNoa1Interval;
5256 tANI_U32 uNoa1StartTime;
5257
5258 tANI_U16 uNoa2IntervalCnt;
5259 tANI_U16 rsvd2;
5260 tANI_U32 uNoa2Duration;
5261 tANI_U32 uNoa2Interval;
5262 tANI_U32 uNoa2StartTime;
5263
5264 tANI_U32 status;
5265}tNoaAttrIndParams, *tpNoaAttrIndParams;
5266
5267typedef PACKED_PRE struct PACKED_POST
5268{
5269 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005270 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005271}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005272
5273/*---------------------------------------------------------------------------
5274 *WLAN_HAL_NOA_START_IND
5275 *-------------------------------------------------------------------------*/
5276
5277typedef PACKED_PRE struct PACKED_POST
5278{
5279 tANI_U32 status;
5280 tANI_U32 bssIdx;
5281}tNoaStartIndParams, *tpNoaStartIndParams;
5282
5283typedef PACKED_PRE struct PACKED_POST
5284{
5285 tHalMsgHeader header;
5286 tNoaStartIndParams noaStartIndParams;
5287}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005288#endif
5289
5290/*---------------------------------------------------------------------------
5291 * WLAN_HAL_HOST_RESUME_REQ
5292 *-------------------------------------------------------------------------*/
5293
5294typedef PACKED_PRE struct PACKED_POST
5295{
5296 tANI_U8 configuredMcstBcstFilterSetting;
5297}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5298
5299typedef PACKED_PRE struct PACKED_POST
5300{
5301 tHalMsgHeader header;
5302 tHalWlanHostResumeReqParam resumeReqParams;
5303}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5304
5305/*---------------------------------------------------------------------------
5306 * WLAN_HAL_HOST_RESUME_RSP
5307 *--------------------------------------------------------------------------*/
5308typedef PACKED_PRE struct PACKED_POST
5309{
5310 /* success or failure */
5311 tANI_U32 status;
5312} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5313
5314typedef PACKED_PRE struct PACKED_POST
5315{
5316 tHalMsgHeader header;
5317 tHalHostResumeRspParams hostResumeRspParams;
5318} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5319
Anand Kumar012623a2013-01-11 17:00:00 -08005320typedef PACKED_PRE struct PACKED_POST
5321{
5322 tANI_U16 staIdx;
5323 // Peer MAC Address, whose BA session has timed out
5324 tSirMacAddr peerMacAddr;
5325 // TID for which a BA session timeout is being triggered
5326 tANI_U8 baTID;
5327 // DELBA direction
5328 // 1 - Originator
5329 // 0 - Recipient
5330 tANI_U8 baDirection;
5331 tANI_U32 reasonCode;
5332 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5333} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5334
5335typedef PACKED_PRE struct PACKED_POST
5336{
5337 tHalMsgHeader header;
5338 tHalWlanDelBaIndMsg hostdelBaParam;
5339} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5340
Jeff Johnson295189b2012-06-20 16:38:30 -07005341/*---------------------------------------------------------------------------
5342 *PNO Messages
5343 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005344/* Max number of channels that a network can be found on*/
5345/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5346 * be changed at same time
5347 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005348#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005349
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305350/*Max number of channels that a network can be found on*/
5351#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5352
Jeff Johnson295189b2012-06-20 16:38:30 -07005353/*Maximum numbers of networks supported by PNO*/
5354#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5355
5356/*The number of scan time intervals that can be programmed into PNO*/
5357#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5358
5359/*Maximum size of the probe template*/
5360#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5361
Jeff Johnson32d95a32012-09-10 13:15:23 -07005362/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005363 Immediate - scanning will start immediately and PNO procedure will
5364 be repeated based on timer
5365 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005366 Resume - scanning will start on system resume
5367 Delay - start the scan timer to trigger PNO scan
5368 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005369typedef enum
5370{
5371 ePNO_MODE_IMMEDIATE,
5372 ePNO_MODE_ON_SUSPEND,
5373 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305374 ePNO_MODE_DELAY,
5375 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005376 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5377} ePNOMode;
5378
5379/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005380typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005381{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005382 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005383 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005384
Jeff Johnson295189b2012-06-20 16:38:30 -07005385 // Upper layer authentication types
5386 eAUTH_TYPE_WPA = 2,
5387 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005388
Jeff Johnson295189b2012-06-20 16:38:30 -07005389 eAUTH_TYPE_RSN = 4,
5390 eAUTH_TYPE_RSN_PSK = 5,
5391 eAUTH_TYPE_FT_RSN = 6,
5392 eAUTH_TYPE_FT_RSN_PSK = 7,
5393 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5394 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005395 eAUTH_TYPE_CCKM_WPA = 10,
5396 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005397
Jeff Johnson295189b2012-06-20 16:38:30 -07005398 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5399
5400}tAuthType;
5401
5402/* Encryption type */
5403typedef enum eEdType
5404{
5405 eED_ANY = 0,
5406 eED_NONE = 1,
5407 eED_WEP = 2,
5408 eED_TKIP = 3,
5409 eED_CCMP = 4,
5410 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005411
Jeff Johnson295189b2012-06-20 16:38:30 -07005412 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5413} tEdType;
5414
5415/* SSID broadcast type */
5416typedef enum eSSIDBcastType
5417{
5418 eBCAST_UNKNOWN = 0,
5419 eBCAST_NORMAL = 1,
5420 eBCAST_HIDDEN = 2,
5421
5422 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5423} tSSIDBcastType;
5424
Jeff Johnson32d95a32012-09-10 13:15:23 -07005425/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005426 The network description for which PNO will have to look for
5427*/
5428typedef PACKED_PRE struct PACKED_POST
5429{
5430 /*SSID of the BSS*/
5431 tSirMacSSid ssId;
5432
5433 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005434 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005435
5436 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005437 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005438
Jeff Johnson32d95a32012-09-10 13:15:23 -07005439 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005440 0 - if all channels */
5441 tANI_U8 ucChannelCount;
5442 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5443
5444 /*Indicates the RSSI threshold for the network to be considered*/
5445 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005446}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005447
5448typedef PACKED_PRE struct PACKED_POST
5449{
5450 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005451 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005452
Jeff Johnson32d95a32012-09-10 13:15:23 -07005453 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005454 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005455 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005456
Jeff Johnson32d95a32012-09-10 13:15:23 -07005457 /*e.g: 2 3
5458 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005459 - it will wait 2s between consecutive scans for 3 times
5460 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005461}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005462
Jeff Johnson32d95a32012-09-10 13:15:23 -07005463/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005464 The network parameters to be sent to the PNO algorithm
5465*/
5466typedef PACKED_PRE struct PACKED_POST
5467{
5468 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005469 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005470
Jeff Johnson32d95a32012-09-10 13:15:23 -07005471 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005472 two consecutive scan procedures
5473 If the desired is for a uniform timer that fires always at the exact same
5474 interval - one single value is to be set
5475 If there is a desire for a more complex - telescopic like timer multiple
5476 values can be set - once PNO reaches the end of the array it will
5477 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005478 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005479
5480}tScanTimersType;
5481
5482typedef PACKED_PRE struct PACKED_POST {
5483
5484 /*Enable PNO*/
5485 tANI_U32 enable;
5486
5487 /*Immediate, On Suspend, On Resume*/
5488 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005489
Jeff Johnson295189b2012-06-20 16:38:30 -07005490 /*Number of networks sent for PNO*/
5491 tANI_U32 ucNetworksCount;
5492
5493 /*The networks that PNO needs to look for*/
5494 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5495
5496 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005497 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005498
5499 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005500 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005501 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5502
5503 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005504 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005505 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5506
5507} tPrefNetwListParams, * tpPrefNetwListParams;
5508
5509/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005510 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005511*/
5512typedef PACKED_PRE struct PACKED_POST
5513{
5514 tHalMsgHeader header;
5515 tPrefNetwListParams prefNetwListParams;
5516} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5517
5518
Jeff Johnson32d95a32012-09-10 13:15:23 -07005519/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005520 The network description for which PNO will have to look for
5521*/
5522typedef PACKED_PRE struct PACKED_POST
5523{
5524 /*SSID of the BSS*/
5525 tSirMacSSid ssId;
5526
5527 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005528 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005529
5530 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005531 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005532
5533 /*SSID broadcast type, normal, hidden or unknown*/
5534 tSSIDBcastType bcastNetworkType;
5535
Jeff Johnson32d95a32012-09-10 13:15:23 -07005536 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005537 0 - if all channels */
5538 tANI_U8 ucChannelCount;
5539 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5540
5541 /*Indicates the RSSI threshold for the network to be considered*/
5542 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005543}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005544
5545typedef PACKED_PRE struct PACKED_POST {
5546
5547 /*Enable PNO*/
5548 tANI_U32 enable;
5549
5550 /*Immediate, On Suspend, On Resume*/
5551 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005552
Jeff Johnson295189b2012-06-20 16:38:30 -07005553 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005554 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005555
5556 /*The networks that PNO needs to look for*/
5557 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5558
5559 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005560 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005561
5562 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005563 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005564 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5565
5566 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005567 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005568 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5569
5570} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5571
5572/*
5573 Preferred network list request new
5574*/
5575typedef PACKED_PRE struct PACKED_POST
5576{
5577 tHalMsgHeader header;
5578 tPrefNetwListParamsNew prefNetwListParams;
5579} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5580
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005581#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5582typedef PACKED_PRE struct PACKED_POST
5583{
5584 tSirMacSSid ssId;
5585 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5586 tANI_U32 authentication;
5587 tEdType encryption;
5588 tEdType mcencryption;
5589 tANI_U8 ChannelCount;
5590 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5591}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005592
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005593typedef PACKED_PRE struct PACKED_POST
5594{
5595 tANI_U8 mdiePresent;
5596 tANI_U16 mobilityDomain;
5597}tMobilityDomainInfo;
5598
5599typedef PACKED_PRE struct PACKED_POST {
5600 eAniBoolean RoamScanOffloadEnabled;
5601 tANI_S8 LookupThreshold;
5602 tANI_U8 RoamRssiDiff;
5603 tANI_U8 ChannelCacheType;
5604 tANI_U8 Command;
5605 tANI_U8 StartScanReason;
5606 tANI_U16 NeighborScanTimerPeriod;
5607 tANI_U16 NeighborRoamScanRefreshPeriod;
5608 tANI_U16 NeighborScanChannelMinTime;
5609 tANI_U16 NeighborScanChannelMaxTime;
5610 tANI_U16 EmptyRefreshScanPeriod;
5611 tANI_U8 ValidChannelCount;
5612 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5613 eAniBoolean IsCCXEnabled;
5614
5615 tANI_U16 us24GProbeSize;
5616 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5617 tANI_U16 us5GProbeSize;
5618 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5619 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005620 tANI_U8 nProbes;
5621 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08005622 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08005623 tANI_S8 RxSensitivityThreshold;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005624 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5625 tRoamNetworkType ConnectedNetwork;
5626 tMobilityDomainInfo MDID;
5627} tRoamCandidateListParams, * tpRoamCandidateListParams;
5628
5629typedef PACKED_PRE struct PACKED_POST
5630{
Kumar Anandea78e792013-10-10 23:47:01 -07005631 tHalMsgHeader header;
5632 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005633} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5634
5635typedef PACKED_PRE struct PACKED_POST
5636{
Kumar Anandea78e792013-10-10 23:47:01 -07005637 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005638
Kumar Anandea78e792013-10-10 23:47:01 -07005639 /* status of the request - just to indicate that PNO has acknowledged
5640 * the request and will start scanning */
5641 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005642} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5643#endif
Kumar Anandea78e792013-10-10 23:47:01 -07005644
5645/*
5646 Preferred network list response
5647*/
5648typedef PACKED_PRE struct PACKED_POST
5649{
5650 tHalMsgHeader header;
5651
5652 /* status of the request - just to indicate that PNO has acknowledged
5653 * the request and will start scanning*/
5654 tANI_U32 status;
5655} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5656
5657/*
5658 Preferred network indication parameters
5659*/
5660typedef PACKED_PRE struct PACKED_POST {
5661
5662 /*Network that was found with the highest RSSI*/
5663 tSirMacSSid ssId;
5664
5665 /*Indicates the RSSI */
5666 tANI_U8 rssi;
5667
5668 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
5669 tANI_U16 frameLength;
5670
5671} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5672
5673/*
5674 Preferred network found indication
5675*/
5676typedef PACKED_PRE struct PACKED_POST {
5677
5678 tHalMsgHeader header;
5679 tPrefNetwFoundParams prefNetwFoundParams;
5680} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5681
5682
5683typedef PACKED_PRE struct PACKED_POST {
5684
5685 /*RSSI Threshold*/
5686 tANI_U8 ucRssiThreshold;
5687
5688} tRssiFilterParams, * tpRssiFilterParams;
5689
Jeff Johnson295189b2012-06-20 16:38:30 -07005690/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005691 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005692*/
5693typedef PACKED_PRE struct PACKED_POST
5694{
5695 tHalMsgHeader header;
5696 tRssiFilterParams prefRSSIFilterParams;
5697} tSetRssiFilterReq, *tpSetRssiFilterReq;
5698
5699/*
5700 Set RSSI filter resp
5701*/
5702typedef PACKED_PRE struct PACKED_POST{
5703 tHalMsgHeader header;
5704 /*status of the request */
5705 tANI_U32 status;
5706} tSetRssiFilterResp, *tpSetRssiFilterResp;
5707/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005708 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005709*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005710typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005711{
5712
5713 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005714 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005715
5716 /*Lets PNO know that host has determined the regulatory domain*/
5717 tANI_U8 b11dResolved;
5718
5719 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005720 tANI_U8 ucChannelCount;
5721 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005722
5723 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005724 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005725
5726 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005727 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005728
5729 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005730 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005731
5732 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005733 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005734
5735 /*Cb State*/
5736 ePhyChanBondState cbState;
5737
5738} tUpdateScanParams, * tpUpdateScanParams;
5739
5740/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305741 Update scan params
5742*/
5743typedef PACKED_PRE struct PACKED_POST
5744{
5745
5746 /*Host setting for 11d*/
5747 tANI_U8 b11dEnabled;
5748
5749 /*Lets PNO know that host has determined the regulatory domain*/
5750 tANI_U8 b11dResolved;
5751
5752 /*Channels on which PNO is allowed to scan*/
5753 tANI_U8 ucChannelCount;
5754 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5755
5756 /*Minimum channel time*/
5757 tANI_U16 usActiveMinChTime;
5758
5759 /*Maximum channel time*/
5760 tANI_U16 usActiveMaxChTime;
5761
5762 /*Minimum channel time*/
5763 tANI_U16 usPassiveMinChTime;
5764
5765 /*Maximum channel time*/
5766 tANI_U16 usPassiveMaxChTime;
5767
5768 /*Cb State*/
5769 ePhyChanBondState cbState;
5770
5771} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5772
5773/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005774 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005775 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005776*/
5777typedef PACKED_PRE struct PACKED_POST{
5778
5779 tHalMsgHeader header;
5780 tUpdateScanParams scanParams;
5781} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5782
5783/*
5784 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005785 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005786*/
5787typedef PACKED_PRE struct PACKED_POST{
5788
5789 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305790 tUpdateScanParamsEx scanParams;
5791} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5792
5793/*
5794 Update scan params - sent from host to PNO
5795 to be used during PNO scanning
5796*/
5797typedef PACKED_PRE struct PACKED_POST{
5798
5799 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005800
5801 /*status of the request */
5802 tANI_U32 status;
5803
5804} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5805
5806/*---------------------------------------------------------------------------
5807 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5808 *--------------------------------------------------------------------------*/
5809typedef PACKED_PRE struct PACKED_POST
5810{
5811 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5812 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5813 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5814 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5815} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5816
5817typedef PACKED_PRE struct PACKED_POST
5818{
5819 tHalMsgHeader header;
5820 tHalTxPerTrackingReqParam txPerTrackingParams;
5821} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5822
5823/*---------------------------------------------------------------------------
5824 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5825 *--------------------------------------------------------------------------*/
5826typedef PACKED_PRE struct PACKED_POST
5827{
5828 /* success or failure */
5829 tANI_U32 status;
5830} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5831
5832typedef PACKED_PRE struct PACKED_POST
5833{
5834 tHalMsgHeader header;
5835 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5836} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5837
5838/*---------------------------------------------------------------------------
5839 * WLAN_HAL_TX_PER_HIT_IND
5840 *--------------------------------------------------------------------------*/
5841typedef PACKED_PRE struct PACKED_POST
5842{
5843 tHalMsgHeader header;
5844}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5845
5846/*---------------------------------------------------------------------------
5847 *******************Packet Filtering Definitions Begin*******************
5848 *--------------------------------------------------------------------------*/
5849#define HAL_PROTOCOL_DATA_LEN 8
5850#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5851#define HAL_MAX_NUM_FILTERS 20
5852#define HAL_MAX_CMP_PER_FILTER 10
5853
5854typedef enum
5855{
5856 HAL_RCV_FILTER_TYPE_INVALID,
5857 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5858 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5859 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5860}tHalReceivePacketFilterType;
5861
Jeff Johnson32d95a32012-09-10 13:15:23 -07005862typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005863{
5864 HAL_FILTER_PROTO_TYPE_INVALID,
5865 HAL_FILTER_PROTO_TYPE_MAC,
5866 HAL_FILTER_PROTO_TYPE_ARP,
5867 HAL_FILTER_PROTO_TYPE_IPV4,
5868 HAL_FILTER_PROTO_TYPE_IPV6,
5869 HAL_FILTER_PROTO_TYPE_UDP,
5870 HAL_FILTER_PROTO_TYPE_MAX
5871}tHalRcvPktFltProtocolType;
5872
Jeff Johnson32d95a32012-09-10 13:15:23 -07005873typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005874{
5875 HAL_FILTER_CMP_TYPE_INVALID,
5876 HAL_FILTER_CMP_TYPE_EQUAL,
5877 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5878 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5879 HAL_FILTER_CMP_TYPE_MAX
5880}tHalRcvPktFltCmpFlagType;
5881
Jeff Johnson32d95a32012-09-10 13:15:23 -07005882typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005883{
5884 tANI_U8 protocolLayer;
5885 tANI_U8 cmpFlag;
5886 tANI_U16 dataLength; /* Length of the data to compare */
5887 tANI_U8 dataOffset; /* from start of the respective frame header */
5888 tANI_U8 reserved; /* Reserved field */
5889 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5890 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5891}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5892
5893typedef PACKED_PRE struct PACKED_POST
5894{
5895 tANI_U8 filterId;
5896 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005897 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005898 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005899 tHalRcvPktFilterParams paramsData[1];
5900}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5901
5902typedef PACKED_PRE struct PACKED_POST
5903{
Jeff Johnsone7245742012-09-05 17:12:55 -07005904 tANI_U8 filterId;
5905 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005906 tANI_U8 numParams;
5907 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005908 tANI_U8 bssIdx;
5909 tHalRcvPktFilterParams paramsData[1];
5910}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5911
5912typedef PACKED_PRE struct PACKED_POST
5913{
Jeff Johnson295189b2012-06-20 16:38:30 -07005914 tHalMsgHeader header;
5915 tHalRcvPktFilterCfgType pktFilterCfg;
5916} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5917
Jeff Johnsone7245742012-09-05 17:12:55 -07005918typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005919{
5920 tANI_U8 dataOffset; /* from start of the respective frame header */
5921 tANI_U32 cMulticastAddr;
5922 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005923 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005924} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5925
5926typedef PACKED_PRE struct PACKED_POST
5927{
5928 /* success or failure */
5929 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005930 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005931} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5932
5933typedef PACKED_PRE struct PACKED_POST
5934{
5935 tHalMsgHeader header;
5936 tHalSetPktFilterRspParams pktFilterRspParams;
5937} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5938
Jeff Johnsone7245742012-09-05 17:12:55 -07005939typedef PACKED_PRE struct PACKED_POST
5940{
5941 tANI_U8 bssIdx;
5942} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005943
5944typedef PACKED_PRE struct PACKED_POST
5945{
5946 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005947 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005948} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5949
Jeff Johnsone7245742012-09-05 17:12:55 -07005950
Jeff Johnson295189b2012-06-20 16:38:30 -07005951typedef PACKED_PRE struct PACKED_POST
5952{
5953 tANI_U8 filterId;
5954 tANI_U32 matchCnt;
5955} tHalRcvFltPktMatchCnt;
5956typedef PACKED_PRE struct PACKED_POST
5957{
5958 /* Success or Failure */
5959 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005960 tANI_U32 matchCnt;
5961 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005962 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005963} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5964
5965typedef PACKED_PRE struct PACKED_POST
5966{
5967 tHalMsgHeader header;
5968 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5969} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5970
5971typedef PACKED_PRE struct PACKED_POST
5972{
5973 tANI_U32 status; /* only valid for response message */
5974 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005975 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005976}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5977
5978typedef PACKED_PRE struct PACKED_POST
5979{
5980 tHalMsgHeader header;
5981 tHalRcvFltPktClearParam filterClearParam;
5982} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5983
5984typedef PACKED_PRE struct PACKED_POST
5985{
5986 tHalMsgHeader header;
5987 tHalRcvFltPktClearParam filterClearParam;
5988} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5989
5990typedef PACKED_PRE struct PACKED_POST
5991{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005992 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005993 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005994}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5995
5996typedef PACKED_PRE struct PACKED_POST
5997{
5998 tHalMsgHeader header;
5999 tHalRcvFltMcAddrListType mcAddrList;
6000} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6001
6002typedef PACKED_PRE struct PACKED_POST
6003{
6004 tHalMsgHeader header;
6005 tHalRcvFltPktSetMcListRspType rspParam;
6006} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6007
6008
6009/*---------------------------------------------------------------------------
6010 *******************Packet Filtering Definitions End*******************
6011 *--------------------------------------------------------------------------*/
6012
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006013/*
6014 * There are two versions of this message
6015 * Version 1 : Base version
6016 * Current version : Base version + Max LI modulated DTIM
6017 */
6018typedef PACKED_PRE struct PACKED_POST
6019{
6020 /* Ignore DTIM */
6021 tANI_U32 uIgnoreDTIM;
6022
6023 /*DTIM Period*/
6024 tANI_U32 uDTIMPeriod;
6025
6026 /* Listen Interval */
6027 tANI_U32 uListenInterval;
6028
6029 /* Broadcast Multicast Filter */
6030 tANI_U32 uBcastMcastFilter;
6031
6032 /* Beacon Early Termination */
6033 tANI_U32 uEnableBET;
6034
6035 /* Beacon Early Termination Interval */
6036 tANI_U32 uBETInterval;
6037}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6038
6039typedef PACKED_PRE struct PACKED_POST
6040{
6041 tHalMsgHeader header;
6042 tSetPowerParamsVer1Type powerParams;
6043} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6044
Jeff Johnson295189b2012-06-20 16:38:30 -07006045typedef PACKED_PRE struct PACKED_POST
6046{
6047 /* Ignore DTIM */
6048 tANI_U32 uIgnoreDTIM;
6049
6050 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006051 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006052
6053 /* Listen Interval */
6054 tANI_U32 uListenInterval;
6055
6056 /* Broadcast Multicast Filter */
6057 tANI_U32 uBcastMcastFilter;
6058
6059 /* Beacon Early Termination */
6060 tANI_U32 uEnableBET;
6061
6062 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006063 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006064
6065 /* MAX LI for modulated DTIM */
6066 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006067}tSetPowerParamsType, *tpSetPowerParamsType;
6068
6069typedef PACKED_PRE struct PACKED_POST
6070{
6071 tHalMsgHeader header;
6072 tSetPowerParamsType powerParams;
6073} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6074
6075typedef PACKED_PRE struct PACKED_POST{
6076
6077 tHalMsgHeader header;
6078
6079 /*status of the request */
6080 tANI_U32 status;
6081
6082} tSetPowerParamsResp, *tpSetPowerParamsResp;
6083
6084/*---------------------------------------------------------------------------
6085 ****************Capability bitmap exchange definitions and macros starts*************
6086 *--------------------------------------------------------------------------*/
6087
Anand Kumar012623a2013-01-11 17:00:00 -08006088typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006089 MCC = 0,
6090 P2P = 1,
6091 DOT11AC = 2,
6092 SLM_SESSIONIZATION = 3,
6093 DOT11AC_OPMODE = 4,
6094 SAP32STA = 5,
6095 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006096 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006097 WLANACTIVE_OFFLOAD = 8,
6098 BEACON_OFFLOAD = 9,
6099 SCAN_OFFLOAD = 10,
6100 ROAM_OFFLOAD = 11,
6101 BCN_MISS_OFFLOAD = 12,
6102 STA_POWERSAVE = 13,
6103 STA_ADVANCED_PWRSAVE = 14,
6104 AP_UAPSD = 15,
6105 AP_DFS = 16,
6106 BLOCKACK = 17,
6107 PHY_ERR = 18,
6108 BCN_FILTER = 19,
6109 RTT = 20,
6110 RATECTRL = 21,
6111 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006112 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006113 SPECULATIVE_PS_POLL = 24,
6114 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006115 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006116 WLAN_SCAN_OFFLOAD = 27,
6117 WLAN_PERIODIC_TX_PTRN = 28,
6118 ADVANCE_TDLS = 29,
6119 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306120 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306121 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306122 CH_SWITCH_V1 = 33,
6123 HT40_OBSS_SCAN = 34,
6124 UPDATE_CHANNEL_LIST = 35,
Kumar Anandea78e792013-10-10 23:47:01 -07006125 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006126} placeHolderInCapBitmap;
6127
Jeff Johnson295189b2012-06-20 16:38:30 -07006128typedef PACKED_PRE struct PACKED_POST{
6129
6130 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006131} tWlanFeatCaps, *tpWlanFeatCaps;
6132
6133typedef PACKED_PRE struct PACKED_POST{
6134
Jeff Johnson32d95a32012-09-10 13:15:23 -07006135 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006136 tWlanFeatCaps wlanFeatCaps;
6137
6138} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6139
Jeff Johnsone7245742012-09-05 17:12:55 -07006140#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6141#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006142#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006143#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006144#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006145#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006146#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006147
Jeff Johnsone7245742012-09-05 17:12:55 -07006148tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6149
Jeff Johnson295189b2012-06-20 16:38:30 -07006150#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006151 if ((b)<=127) { \
6152 arr_index = (b)/32; \
6153 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006154 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006155 (a)->featCaps[arr_index] |= (1<<bit_index); \
6156 } \
6157 }
6158#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006159 if ((b)<=127) { \
6160 arr_index = (b)/32; \
6161 bit_index = (b)%32; \
6162 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006163 } \
6164 }
6165#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006166 if ((b)<=127) { \
6167 arr_index = (b)/32; \
6168 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006169 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006170 } \
6171 }
6172
6173/*---------------------------------------------------------------------------
6174 * WLAN_HAL_WAKE_REASON_IND
6175 *--------------------------------------------------------------------------*/
6176
6177/* status codes to help debug rekey failures */
6178typedef enum
6179{
6180 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6181 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6182 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6183 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6184 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6185 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6186 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6187 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6188 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6189 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6190
6191 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6192} tGTKRekeyStatus;
6193
6194/* wake reason types */
6195typedef enum
6196{
6197 WLAN_HAL_WAKE_REASON_NONE = 0,
6198 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6199 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6200 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6201 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6202 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6203 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6204 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6205} tWakeReasonType;
6206
6207/*
6208 Wake Packet which is saved at tWakeReasonParams.DataStart
6209 This data is sent for any wake reasons that involve a packet-based wakeup :
6210
6211 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6212 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6213 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6214 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6215 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6216
6217 The information is provided to the host for auditing and debug purposes
6218
6219*/
6220
6221/*
6222 Wake reason indication parameters
6223*/
6224typedef PACKED_PRE struct PACKED_POST
6225{
6226 uint32 ulReason; /* see tWakeReasonType */
6227 uint32 ulReasonArg; /* argument specific to the reason type */
6228 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6229 HAL truncates the data (i.e. data packets) this length
6230 will be less than the actual length */
6231 uint32 ulActualDataLen; /* actual length of data */
6232 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6233 see specific wake type */
6234} tWakeReasonParams, *tpWakeReasonParams;
6235
6236/*
6237 Wake reason indication
6238*/
6239typedef PACKED_PRE struct PACKED_POST
6240{
6241 tHalMsgHeader header;
6242 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006243 tANI_U32 uBssIdx : 8;
6244 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006245} tHalWakeReasonInd, *tpHalWakeReasonInd;
6246
6247/*---------------------------------------------------------------------------
6248* WLAN_HAL_GTK_OFFLOAD_REQ
6249*--------------------------------------------------------------------------*/
6250
6251#define HAL_GTK_KEK_BYTES 16
6252#define HAL_GTK_KCK_BYTES 16
6253
6254#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6255
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006256#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6257
Jeff Johnson295189b2012-06-20 16:38:30 -07006258typedef PACKED_PRE struct PACKED_POST
6259{
6260 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006261 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006262 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6263 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006264 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006265} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6266
6267typedef PACKED_PRE struct PACKED_POST
6268{
6269 tHalMsgHeader header;
6270 tHalGtkOffloadReqParams gtkOffloadReqParams;
6271} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6272
6273/*---------------------------------------------------------------------------
6274* WLAN_HAL_GTK_OFFLOAD_RSP
6275*--------------------------------------------------------------------------*/
6276typedef PACKED_PRE struct PACKED_POST
6277{
6278 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006279 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006280} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6281
6282typedef PACKED_PRE struct PACKED_POST
6283{
6284 tHalMsgHeader header;
6285 tHalGtkOffloadRspParams gtkOffloadRspParams;
6286} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6287
6288
6289/*---------------------------------------------------------------------------
6290* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6291*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006292typedef PACKED_PRE struct PACKED_POST
6293{
6294 tANI_U8 bssIdx;
6295
6296} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006297
6298typedef PACKED_PRE struct PACKED_POST
6299{
6300 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006301 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006302} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6303
6304/*---------------------------------------------------------------------------
6305* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6306*--------------------------------------------------------------------------*/
6307typedef PACKED_PRE struct PACKED_POST
6308{
6309 tANI_U32 ulStatus; /* success or failure */
6310 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6311 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6312 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6313 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6314 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006315 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006316} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6317
6318typedef PACKED_PRE struct PACKED_POST
6319{
6320 tHalMsgHeader header;
6321 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6322} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6323
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006324/*---------------------------------------------------------------------------
6325* WLAN_HAL_DHCP_IND
6326*--------------------------------------------------------------------------*/
6327typedef PACKED_PRE struct PACKED_POST
6328{
6329 /*Indicates the device mode which indicates about the DHCP activity */
6330 tANI_U8 device_mode;
6331 tSirMacAddr macAddr;
6332} tDHCPInfo, *tpDHCPInfo;
6333
6334typedef PACKED_PRE struct PACKED_POST
6335{
6336 tHalMsgHeader header;
6337 tANI_U32 status; /* success or failure */
6338} tDHCPIndStatus, *tpDHCPIndstatus;
6339
Jeff Johnson295189b2012-06-20 16:38:30 -07006340/*
6341 Thermal Mitigation mode of operation.
6342 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6343 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6344 reducing transmit power
6345 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6346*/
6347typedef enum
6348{
6349 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6350 HAL_THERMAL_MITIGATION_MODE_0,
6351 HAL_THERMAL_MITIGATION_MODE_1,
6352 HAL_THERMAL_MITIGATION_MODE_2,
6353 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6354}tHalThermalMitigationModeType;
6355//typedef tANI_S16 tHalThermalMitigationModeType;
6356
6357/*
6358 Thermal Mitigation level.
6359 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6360 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6361
6362 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6363 level indicates normal mode of operation
6364 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6365 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6366 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6367 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6368*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006369typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006370{
6371 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6372 HAL_THERMAL_MITIGATION_LEVEL_0,
6373 HAL_THERMAL_MITIGATION_LEVEL_1,
6374 HAL_THERMAL_MITIGATION_LEVEL_2,
6375 HAL_THERMAL_MITIGATION_LEVEL_3,
6376 HAL_THERMAL_MITIGATION_LEVEL_4,
6377 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6378}tHalThermalMitigationLevelType;
6379//typedef tANI_S16 tHalThermalMitigationLevelType;
6380
6381typedef PACKED_PRE struct PACKED_POST
6382{
6383 /* Thermal Mitigation Operation Mode */
6384 tHalThermalMitigationModeType thermalMitMode;
6385
6386 /* Thermal Mitigation Level */
6387 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006388
Jeff Johnson295189b2012-06-20 16:38:30 -07006389}tSetThermalMitgationType, *tpSetThermalMitgationType;
6390
6391/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6392typedef PACKED_PRE struct PACKED_POST
6393{
6394 tHalMsgHeader header;
6395 tSetThermalMitgationType thermalMitParams;
6396} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6397
6398typedef PACKED_PRE struct PACKED_POST{
6399
6400 tHalMsgHeader header;
6401
6402 /*status of the request */
6403 tANI_U32 status;
6404
6405} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6406
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006407/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6408provided to FW from Host via periodic messages */
6409typedef PACKED_PRE struct PACKED_POST {
6410 /* TX stats */
6411 uint32 txBytesPushed;
6412 uint32 txPacketsPushed;
6413
6414 /* RX stats */
6415 uint32 rxBytesRcvd;
6416 uint32 rxPacketsRcvd;
6417 uint32 rxTimeTotal;
6418} tStaStatsClassB, *tpStaStatsClassB;
6419
6420typedef PACKED_PRE struct PACKED_POST {
6421
6422 /* Duration over which this stats was collected */
6423 tANI_U32 duration;
6424
6425 /* Per STA Stats */
6426 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6427} tStatsClassBIndParams, *tpStatsClassBIndParams;
6428
6429typedef PACKED_PRE struct PACKED_POST {
6430
6431 tHalMsgHeader header;
6432
6433 /* Class B Stats */
6434 tStatsClassBIndParams statsClassBIndParams;
6435} tStatsClassBInd, *tpStatsClassBInd;
6436
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306437/*Wifi Proximity paramters in AP mode*/
6438#ifdef FEATURE_WIFI_PROXIMITY
6439
6440typedef PACKED_PRE struct PACKED_POST{
6441
6442 tANI_U8 wifiProximityChannel;
6443 tANI_U32 wifiProximityDuration;
6444 tANI_U32 wifiProximityInterval;
6445 tANI_U32 wifiProximityMode;
6446 tANI_U32 wifiProximityStatus;
6447 tSirMacAddr bssId;
6448 tSirMacSSid ssId;
6449
6450} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6451
6452typedef PACKED_PRE struct PACKED_POST
6453{
6454 tHalMsgHeader header;
6455
6456 tSetWifiProximityReqParam wifiProximityReqParams;
6457
6458}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6459
6460/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6461typedef PACKED_PRE struct PACKED_POST{
6462
6463 tHalMsgHeader header;
6464
6465 /*status of the request */
6466 tANI_U32 status;
6467
6468} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6469
6470#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006471
6472#ifdef FEATURE_SPECULATIVE_PS_POLL
6473/*---------------------------------------------------------------------------
6474 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6475 *--------------------------------------------------------------------------*/
6476typedef PACKED_PRE struct PACKED_POST
6477{
6478 tANI_U8 bssIdx;
6479 tANI_U16 serviceInterval;
6480 tANI_U16 suspendInterval;
6481 tANI_U8 acMask;
6482} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6483
6484typedef PACKED_PRE struct PACKED_POST
6485{
6486 tHalMsgHeader header;
6487 tHalStartSpecPsPollReqParams specPsPollReq;
6488} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6489
6490/*---------------------------------------------------------------------------
6491 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6492 *--------------------------------------------------------------------------*/
6493typedef PACKED_PRE struct PACKED_POST
6494{
6495 /* success or failure */
6496 tANI_U32 status;
6497 tANI_U8 bssIdx;
6498} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6499
6500typedef PACKED_PRE struct PACKED_POST
6501{
6502 tHalMsgHeader header;
6503 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6504} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6505
6506/*---------------------------------------------------------------------------
6507 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6508 *--------------------------------------------------------------------------*/
6509typedef PACKED_PRE struct PACKED_POST
6510{
6511 tHalMsgHeader header;
6512 tANI_U8 bssIdx;
6513} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6514#endif
6515
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306516#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306517#define HAL_MAX_SUPP_CHANNELS 128
6518#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306519/*---------------------------------------------------------------------------
6520 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6521 *-------------------------------------------------------------------------*/
6522typedef PACKED_PRE struct PACKED_POST
6523{
6524 /*STA Index*/
6525 tANI_U16 staIdx;
6526
6527 /* if this is 1, self is initiator and peer is reponder */
6528 tANI_U8 bIsResponder;
6529
6530 /* QoS Info */
6531 tANI_U8 acVOUAPSDFlag:1;
6532 tANI_U8 acVIUAPSDFlag:1;
6533 tANI_U8 acBKUAPSDFlag:1;
6534 tANI_U8 acBEUAPSDFlag:1;
6535 tANI_U8 aAck:1;
6536 tANI_U8 maxServicePeriodLength:2;
6537 tANI_U8 moreDataAck:1;
6538
6539 /*TDLS Peer U-APSD Buffer STA Support*/
6540 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07006541
6542 /*TDLS off channel related params */
6543 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306544 tANI_U8 peerCurrOperClass;
6545 tANI_U8 selfCurrOperClass;
6546 tANI_U8 validChannelsLen;
6547 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
6548 tANI_U8 validOperClassesLen;
6549 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306550}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6551
6552typedef PACKED_PRE struct PACKED_POST
6553{
6554 tHalMsgHeader header;
6555 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6556} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6557
6558/*---------------------------------------------------------------------------
6559 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6560 *-------------------------------------------------------------------------*/
6561
6562typedef PACKED_PRE struct PACKED_POST
6563{
6564 tANI_U32 status;
6565
6566 /*STA Index*/
6567 tANI_U16 staIdx;
6568} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6569
6570typedef PACKED_PRE struct PACKED_POST
6571{
6572 tHalMsgHeader header;
6573 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6574} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6575
6576/*---------------------------------------------------------------------------
6577 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6578 *-------------------------------------------------------------------------*/
6579typedef PACKED_PRE struct PACKED_POST
6580{
6581 /*STA Index*/
6582 tANI_U16 staIdx;
6583}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6584
6585typedef PACKED_PRE struct PACKED_POST
6586{
6587 tHalMsgHeader header;
6588 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6589} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6590
6591/*---------------------------------------------------------------------------
6592 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6593 *-------------------------------------------------------------------------*/
6594
6595typedef PACKED_PRE struct PACKED_POST
6596{
6597 tANI_U32 status;
6598
6599 /*STA Index*/
6600 tANI_U16 staIdx;
6601} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6602
6603typedef PACKED_PRE struct PACKED_POST
6604{
6605 tHalMsgHeader header;
6606 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6607} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6608
6609/*---------------------------------------------------------------------------
6610 *WLAN_HAL_TDLS_IND
6611 *--------------------------------------------------------------------------*/
6612
6613typedef PACKED_PRE struct PACKED_POST
6614{
6615 tANI_U16 assocId;
6616 tANI_U16 staIdx;
6617 tANI_U16 status;
6618 tANI_U16 reasonCode;
6619}tTdlsIndParams, *tpTdlsIndParams;
6620
6621
6622typedef PACKED_PRE struct PACKED_POST
6623{
6624 tHalMsgHeader header;
6625 tTdlsIndParams tdlsIndParams;
6626}tTdlsIndMsg, *tpTdlsIndMsg;
6627
6628#endif
6629
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006630/*---------------------------------------------------------------------------
6631 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
6632 *--------------------------------------------------------------------------*/
6633
6634typedef PACKED_PRE struct PACKED_POST
6635{
6636 tANI_U8 bssIdx;
6637 tANI_U8 staIdx;
6638 tSirMacAddr staAddr;
6639}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
6640
6641
6642typedef PACKED_PRE struct PACKED_POST
6643{
6644 tHalMsgHeader header;
6645 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
6646}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
6647
6648
Kumar Anandea78e792013-10-10 23:47:01 -07006649/*********** Scan Offload Related Structures *************/
6650#define HAL_NUM_SCAN_SSID 10
6651#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07006652
Kumar Anandea78e792013-10-10 23:47:01 -07006653/*
6654 * Enumetation to indicate scan type (active/passive)
6655 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006656typedef enum
6657{
Kumar Anandea78e792013-10-10 23:47:01 -07006658 eSIR_PASSIVE_SCAN,
6659 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
6660} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006661
6662typedef PACKED_PRE struct PACKED_POST
6663{
Kumar Anandea78e792013-10-10 23:47:01 -07006664 tANI_U8 numBssid;
6665 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
6666 tANI_U8 numSsid;
6667 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
6668 tANI_BOOLEAN hiddenSsid;
6669 tSirMacAddr selfMacAddr;
6670 tSirBssType bssType;
6671 tSirScanType scanType;
6672 tANI_U32 minChannelTime;
6673 tANI_U32 maxChannelTime;
6674 tANI_BOOLEAN p2pSearch;
6675 tANI_U8 channelCount;
6676 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6677 tANI_U16 ieFieldLen;
6678 tANI_U8 ieField[1];
6679}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006680
6681/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006682 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07006683 *-------------------------------------------------------------------------*/
6684typedef PACKED_PRE struct PACKED_POST
6685{
Kumar Anandf53016f2013-09-04 15:15:53 -07006686 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006687 tScanOffloadReqType scanOffloadParams;
6688} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006689
6690/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006691 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07006692 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07006693typedef PACKED_PRE struct PACKED_POST
6694{
6695 tHalMsgHeader header;
6696
6697 /*status of the request - just to indicate SO has acknowledged
6698 * * the request and will start scanning*/
6699 tANI_U32 status;
6700} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
6701
6702/*---------------------------------------------------------------------------
6703 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
6704 *-------------------------------------------------------------------------*/
6705typedef PACKED_PRE struct PACKED_POST
6706{
6707 tHalMsgHeader header;
6708} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
6709
6710/*---------------------------------------------------------------------------
6711 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
6712 *-------------------------------------------------------------------------*/
6713typedef PACKED_PRE struct PACKED_POST
6714{
6715 tHalMsgHeader header;
6716
6717 /*status of the request - just to indicate SO has acknowledged
6718 the request and will start scanning*/
6719 tANI_U32 status;
6720} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
6721
6722/*
6723 * Enumetation of scan events indicated by firmware to the host
6724 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006725typedef enum
6726{
Kumar Anandea78e792013-10-10 23:47:01 -07006727 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
6728 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
6729 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
6730 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
6731 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
6732 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
6733 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
6734 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
6735 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
6736} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006737
6738typedef PACKED_PRE struct PACKED_POST
6739{
Kumar Anandea78e792013-10-10 23:47:01 -07006740 tScanEventType event;
6741 tANI_U32 channel;
6742 tANI_U32 scanId;
6743} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07006744
Kumar Anandea78e792013-10-10 23:47:01 -07006745/*---------------------------------------------------------------------------
6746 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
6747 *-------------------------------------------------------------------------*/
6748typedef PACKED_PRE struct PACKED_POST
6749{
6750 tHalMsgHeader header;
6751 tScanOffloadEventInfo scanOffloadInd;
6752} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006753
Kumar Anandea78e792013-10-10 23:47:01 -07006754typedef PACKED_PRE struct PACKED_POST {
6755 /** primary 20 MHz channel frequency in mhz */
6756 tANI_U32 mhz;
6757 /** Center frequency 1 in MHz*/
6758 tANI_U32 band_center_freq1;
6759 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
6760 tANI_U32 band_center_freq2;
6761 /* The first 26 bits are a bit mask to indicate any channel flags,
6762 (see WLAN_HAL_CHAN_FLAG*)
6763 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
6764 tANI_U32 channel_info;
6765 /** contains min power, max power, reg power and reg class id. */
6766 tANI_U32 reg_info_1;
6767 /** contains antennamax */
6768 tANI_U32 reg_info_2;
6769} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006770
Kumar Anandf53016f2013-09-04 15:15:53 -07006771
Kumar Anandea78e792013-10-10 23:47:01 -07006772typedef enum {
6773 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
6774 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
6775 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
6776 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
6777 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
6778 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
6779 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
6780 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
6781 WLAN_HAL_MODE_11AC_VHT20 = 8,
6782 WLAN_HAL_MODE_11AC_VHT40 = 9,
6783 WLAN_HAL_MODE_11AC_VHT80 = 10,
6784 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
6785 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
6786 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
6787 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07006788
Kumar Anandea78e792013-10-10 23:47:01 -07006789} tChannelPhyModeType;
6790
6791#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
6792#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
6793#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
6794#define WLAN_HAL_CHAN_AP_DISABLED 9
6795#define WLAN_HAL_CHAN_FLAG_DFS 10
6796#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
6797#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08006798#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
6799
6800#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
6801 (pwlan_hal_update_channel)->channel_info |= (1 << flag); \
6802 } while(0)
6803
6804#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
6805 (((pwlan_hal_update_channel)->channel_info & (1 << flag)) >> flag)
6806
6807#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
6808 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
6809 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
6810 } while(0)
6811#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
6812
6813#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
6814 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
6815 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
6816 } while(0)
6817#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
6818
6819#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
6820 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
6821 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
6822 } while(0)
6823#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
6824#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
6825 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
6826 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
6827 } while(0)
6828#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
6829
6830#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
6831 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
6832 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
6833 } while(0)
6834#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
6835
6836#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
6837 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
6838 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
6839 } while(0)
6840#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 -07006841
6842typedef PACKED_PRE struct PACKED_POST
6843{
6844 tANI_U8 numChan;
6845 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6846} tUpdateChannelReqType;
6847
6848/*---------------------------------------------------------------------------
6849 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
6850 *-------------------------------------------------------------------------*/
6851typedef PACKED_PRE struct PACKED_POST
6852{
6853 tHalMsgHeader header;
6854 tUpdateChannelReqType updateChannelParams;
6855} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
6856
6857/*---------------------------------------------------------------------------
6858 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
6859 *-------------------------------------------------------------------------*/
6860typedef PACKED_PRE struct PACKED_POST
6861{
6862 tHalMsgHeader header;
6863
6864 /*status of the request - just to indicate SO has acknowledged
6865 * * the request and will start scanning*/
6866 tANI_U32 status;
6867} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
6868
6869
6870/*---------------------------------------------------------------------------
6871* WLAN_HAL_TX_FAIL_IND
6872*--------------------------------------------------------------------------*/
6873// Northbound indication from FW to host on weak link detection
6874typedef PACKED_PRE struct PACKED_POST
6875{
6876 // Sequence number increases by 1 whenever the device driver
6877 // sends a notification event. This is cleared as 0 when the
6878 // JOIN IBSS commamd is issued
6879 tANI_U16 seqNo;
6880 tANI_U16 staId;
6881 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
6882} tHalTXFailIndParams, *tpHalTXFailIndParams;
6883
6884typedef PACKED_PRE struct PACKED_POST
6885{
6886 tHalMsgHeader header;
6887 tHalTXFailIndParams txFailIndParams;
6888} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
6889
6890/*---------------------------------------------------------------------------
6891* WLAN_HAL_TX_FAIL_MONITOR_IND
6892*--------------------------------------------------------------------------*/
6893// Southbound message from Host to monitor the Tx failures
6894typedef PACKED_PRE struct PACKED_POST
6895{
6896 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
6897 tANI_U8 tx_fail_count;
6898} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
6899
6900typedef PACKED_PRE struct PACKED_POST
6901{
6902 tHalMsgHeader header;
6903 tTXFailMonitorInfo txFailMonitor;
6904} tTXFailMonitorInd, *tpTXFailMonitorInd;
6905
6906/*---------------------------------------------------------------------------
6907* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
6908*--------------------------------------------------------------------------*/
6909typedef PACKED_PRE struct PACKED_POST
6910{
6911 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
6912 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
6913} tDestIpNextHopMacPair;
6914
6915typedef PACKED_PRE struct PACKED_POST
6916{
6917 tANI_U8 numEntries;
6918 tDestIpNextHopMacPair destIpMacPair[1];
6919} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006920
6921typedef PACKED_PRE struct PACKED_POST
6922{
6923 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006924 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
6925} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07006926
Kumar Anandf53016f2013-09-04 15:15:53 -07006927/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07006928 WLAN_HAL_RATE_UPDATE_IND
6929 *-------------------------------------------------------------------------*/
6930
6931typedef PACKED_PRE struct PACKED_POST
6932{
6933 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
6934 tANI_S32 ucastDataRate; //unit Mbpsx10
6935
6936 /* TX flag to differentiate between HT20, HT40 etc */
6937 tTxRateInfoFlags ucastDataRateTxFlag;
6938
6939 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
6940 tSirMacAddr bssid;
6941
6942 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
6943 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
6944
6945 /* TX flag to differentiate between HT20, HT40 etc */
6946 tTxRateInfoFlags reliableMcastDataRateTxFlag;
6947
6948 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
6949 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
6950
6951 /* TX flag to differentiate between HT20, HT40 etc */
6952 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
6953
6954 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
6955 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
6956
6957 /* TX flag to differentiate between HT20, HT40 etc */
6958 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
6959
6960} tHalRateUpdateParams, *tpHalRateUpdateParams;
6961
6962typedef PACKED_PRE struct PACKED_POST
6963{
6964 tHalMsgHeader header;
6965 tHalRateUpdateParams halRateUpdateParams;
6966} tHalRateUpdateInd, * tpHalRateUpdateInd;
6967
6968/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05306969 * WLAN_HAL_AVOID_FREQ_RANGE_IND
6970 *-------------------------------------------------------------------------*/
6971
6972#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 4
6973
6974typedef PACKED_PRE struct PACKED_POST
6975{
6976 tANI_U32 startFreq;
6977 tANI_U32 endFreq;
6978} tHalFreqRange, *tpHalFreqRange;
6979
6980typedef PACKED_PRE struct PACKED_POST
6981{
6982 tANI_U32 avoidCnt;
6983 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
6984} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
6985
6986typedef PACKED_PRE struct PACKED_POST
6987{
6988 tHalMsgHeader header;
6989 tHalAvoidFreqRangeIndParams freqRangeIndParams;
6990} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
6991
6992/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306993 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07006994 *-------------------------------------------------------------------------*/
6995
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306996typedef enum
6997{
6998 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
6999 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7000 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7001}tHT40OBssScanCmdType;
7002
7003typedef PACKED_PRE struct PACKED_POST
7004{
7005 tHT40OBssScanCmdType cmdType;
7006 tSirScanType scanType;
7007 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7008 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7009 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7010 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7011 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7012 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7013 tANI_U16 OBSSScanActivityThreshold;
7014 tANI_U8 selfStaIdx;
7015 tANI_U8 bssIdx;
7016 tANI_U8 fortyMHZIntolerent;
7017 tANI_U8 channelCount;
7018 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7019 tANI_U8 currentOperatingClass;
7020 tANI_U16 ieFieldLen;
7021 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7022}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7023
7024typedef PACKED_PRE struct PACKED_POST
7025{
7026 tHalMsgHeader header;
7027 tHT40ObssScanIndType scanHT40ObssScanParams;
7028} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7029
7030/*---------------------------------------------------------------------------
7031 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7032 *-------------------------------------------------------------------------*/
7033typedef PACKED_PRE struct PACKED_POST
7034{
7035 tHalMsgHeader header;
7036 tANI_U8 bssIdx;
7037} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07007038#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
7039#pragma pack(pop)
7040#elif defined(__ANI_COMPILER_PRAGMA_PACK)
7041#else
7042#endif
7043
7044#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07007045