blob: 4b49063fca636f701d37701242d1e48af84d253c [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Amar Singhalb41c45b2014-03-21 14:44:14 -07002* Copyright (c) 2012-2014 The Linux Foundation. All rights reserved.
3*
4* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5*
6*
7* Permission to use, copy, modify, and/or distribute this software for
8* any purpose with or without fee is hereby granted, provided that the
9* above copyright notice and this permission notice appear in all
10* copies.
11*
12* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19* PERFORMANCE OF THIS SOFTWARE.
20*/
Prakash Dhavali0573c4d2014-02-12 13:19:04 -080021
22/*
Amar Singhalb41c45b2014-03-21 14:44:14 -070023* This file was originally distributed by Qualcomm Atheros, Inc.
24* under proprietary terms before Copyright ownership was assigned
25* to the Linux Foundation.
26*/
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070027
Jeff Johnson295189b2012-06-20 16:38:30 -070028/*==========================================================================
29 *
30 * @file: wlan_hal_msg.h
31 *
32 * @brief: Exports and types for messages sent to HAL from WDI
33 *
34 * @author: Kumar Anand
35 *
Jeff Johnson295189b2012-06-20 16:38:30 -070036 *
37 *=========================================================================*/
38
39#ifndef _WLAN_HAL_MSG_H_
40#define _WLAN_HAL_MSG_H_
41
42#include "halLegacyPalTypes.h"
43#include "halCompiler.h"
44#include "wlan_qct_dev_defs.h"
45#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080046
Jeff Johnson295189b2012-06-20 16:38:30 -070047/*---------------------------------------------------------------------------
48 API VERSIONING INFORMATION
49
50 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
51 The MAJOR is incremented for major product/architecture changes
52 (and then MINOR/VERSION/REVISION are zeroed)
53 The MINOR is incremented for minor product/architecture changes
54 (and then VERSION/REVISION are zeroed)
55 The VERSION is incremented if a significant API change occurs
56 (and then REVISION is zeroed)
57 The REVISION is incremented if an insignificant API change occurs
58 or if a new API is added
59 All values are in the range 0..255 (ie they are 8-bit values)
60 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070061#define WLAN_HAL_VER_MAJOR 1
Kumar Anandea78e792013-10-10 23:47:01 -070062#define WLAN_HAL_VER_MINOR 5
Jeff Johnson295189b2012-06-20 16:38:30 -070063#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080064#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070065
66/*---------------------------------------------------------------------------
67 Commom Type definitons
68 ---------------------------------------------------------------------------*/
69
70//This is to force compiler to use the maximum of an int ( 4 bytes )
71#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070072#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070073
74//Max no. of transmit categories
75#define STACFG_MAX_TC 8
76
77//The maximum value of access category
78#define WLAN_HAL_MAX_AC 4
79
80typedef tANI_U8 tSirMacAddr[6];
81typedef tANI_U8 tHalIpv4Addr[4];
82
83#define HAL_MAC_ADDR_LEN 6
84#define HAL_IPV4_ADDR_LEN 4
85
Amar Singhalb41c45b2014-03-21 14:44:14 -070086#define WLAN_HAL_STA_INVALID_IDX 0xFF
Jeff Johnson295189b2012-06-20 16:38:30 -070087#define WLAN_HAL_BSS_INVALID_IDX 0xFF
88
89//Default Beacon template size
Jeff Johnson32d95a32012-09-10 13:15:23 -070090#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070091
Kumar Anandea78e792013-10-10 23:47:01 -070092
93//Max Tx Data Rate samples
94#define MAX_TX_RATE_SAMPLES 10
95//Max Beacon Rssi samples
96#define MAX_BCN_RSSI_SAMPLES 10
97
Jeff Johnson32d95a32012-09-10 13:15:23 -070098//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -070099#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
100#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
101#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
102#define PARAM_llACOEXIST_CHANGED (1 << 3)
103#define PARAM_llBCOEXIST_CHANGED (1 << 4)
104#define PARAM_llGCOEXIST_CHANGED (1 << 5)
105#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
106#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
107#define PARAM_RIFS_MODE_CHANGED (1<<8)
108#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
109#define PARAM_OBSS_MODE_CHANGED (1<<10)
110#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
111 PARAM_llGCOEXIST_CHANGED|PARAM_HT20MHZCOEXIST_CHANGED|PARAM_NON_GF_DEVICES_PRESENT_CHANGED|PARAM_RIFS_MODE_CHANGED|PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED| PARAM_OBSS_MODE_CHANGED)
112
113/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530114#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700115
116/*Version string max length (including NUL) */
117#define WLAN_HAL_VERSION_LENGTH 64
118
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530119#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
Amar Singhalb41c45b2014-03-21 14:44:14 -0700120/* 80 is actually NUM_RF_CHANNELS_V2, but beyond V2, this number will be ignored by FW */
Varun Reddy Yeturu94d94c12014-02-06 11:12:56 -0800121#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS 80
Amar Singhalb41c45b2014-03-21 14:44:14 -0700122#define WLAN_HAL_ROAM_SACN_PMK_SIZE 32
123#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 20
Yue Maab3ccfc2013-08-14 17:19:08 -0700124
Jeff Johnson295189b2012-06-20 16:38:30 -0700125/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700126typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700127{
128 //Init/De-Init
129 WLAN_HAL_START_REQ = 0,
130 WLAN_HAL_START_RSP = 1,
131 WLAN_HAL_STOP_REQ = 2,
132 WLAN_HAL_STOP_RSP = 3,
133
134 //Scan
135 WLAN_HAL_INIT_SCAN_REQ = 4,
136 WLAN_HAL_INIT_SCAN_RSP = 5,
137 WLAN_HAL_START_SCAN_REQ = 6,
138 WLAN_HAL_START_SCAN_RSP = 7 ,
139 WLAN_HAL_END_SCAN_REQ = 8,
140 WLAN_HAL_END_SCAN_RSP = 9,
141 WLAN_HAL_FINISH_SCAN_REQ = 10,
142 WLAN_HAL_FINISH_SCAN_RSP = 11,
143
144 // HW STA configuration/deconfiguration
145 WLAN_HAL_CONFIG_STA_REQ = 12,
146 WLAN_HAL_CONFIG_STA_RSP = 13,
147 WLAN_HAL_DELETE_STA_REQ = 14,
148 WLAN_HAL_DELETE_STA_RSP = 15,
149 WLAN_HAL_CONFIG_BSS_REQ = 16,
150 WLAN_HAL_CONFIG_BSS_RSP = 17,
151 WLAN_HAL_DELETE_BSS_REQ = 18,
152 WLAN_HAL_DELETE_BSS_RSP = 19,
153
154 //Infra STA asscoiation
155 WLAN_HAL_JOIN_REQ = 20,
156 WLAN_HAL_JOIN_RSP = 21,
157 WLAN_HAL_POST_ASSOC_REQ = 22,
158 WLAN_HAL_POST_ASSOC_RSP = 23,
159
160 //Security
161 WLAN_HAL_SET_BSSKEY_REQ = 24,
162 WLAN_HAL_SET_BSSKEY_RSP = 25,
163 WLAN_HAL_SET_STAKEY_REQ = 26,
164 WLAN_HAL_SET_STAKEY_RSP = 27,
165 WLAN_HAL_RMV_BSSKEY_REQ = 28,
166 WLAN_HAL_RMV_BSSKEY_RSP = 29,
167 WLAN_HAL_RMV_STAKEY_REQ = 30,
168 WLAN_HAL_RMV_STAKEY_RSP = 31,
169
170 //Qos Related
171 WLAN_HAL_ADD_TS_REQ = 32,
172 WLAN_HAL_ADD_TS_RSP = 33,
173 WLAN_HAL_DEL_TS_REQ = 34,
174 WLAN_HAL_DEL_TS_RSP = 35,
175 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
176 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
177 WLAN_HAL_ADD_BA_REQ = 38,
178 WLAN_HAL_ADD_BA_RSP = 39,
179 WLAN_HAL_DEL_BA_REQ = 40,
180 WLAN_HAL_DEL_BA_RSP = 41,
181
182 WLAN_HAL_CH_SWITCH_REQ = 42,
183 WLAN_HAL_CH_SWITCH_RSP = 43,
184 WLAN_HAL_SET_LINK_ST_REQ = 44,
185 WLAN_HAL_SET_LINK_ST_RSP = 45,
186 WLAN_HAL_GET_STATS_REQ = 46,
187 WLAN_HAL_GET_STATS_RSP = 47,
188 WLAN_HAL_UPDATE_CFG_REQ = 48,
189 WLAN_HAL_UPDATE_CFG_RSP = 49,
190
191 WLAN_HAL_MISSED_BEACON_IND = 50,
192 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
193 WLAN_HAL_MIC_FAILURE_IND = 52,
194 WLAN_HAL_FATAL_ERROR_IND = 53,
195 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700196
Jeff Johnson295189b2012-06-20 16:38:30 -0700197 //NV Interface
198 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
199 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
200
201 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
202 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
203 WLAN_HAL_TRIGGER_BA_REQ = 59,
204 WLAN_HAL_TRIGGER_BA_RSP = 60,
205 WLAN_HAL_UPDATE_BEACON_REQ = 61,
206 WLAN_HAL_UPDATE_BEACON_RSP = 62,
207 WLAN_HAL_SEND_BEACON_REQ = 63,
208 WLAN_HAL_SEND_BEACON_RSP = 64,
209
210 WLAN_HAL_SET_BCASTKEY_REQ = 65,
211 WLAN_HAL_SET_BCASTKEY_RSP = 66,
212 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
213 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
214 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700215
Jeff Johnson295189b2012-06-20 16:38:30 -0700216 // PTT interface support
217 WLAN_HAL_PROCESS_PTT_REQ = 70,
218 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700219
Jeff Johnson295189b2012-06-20 16:38:30 -0700220 // BTAMP related events
221 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
222 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
223 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
224 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
225
226 WLAN_HAL_ENTER_IMPS_REQ = 76,
227 WLAN_HAL_EXIT_IMPS_REQ = 77,
228 WLAN_HAL_ENTER_BMPS_REQ = 78,
229 WLAN_HAL_EXIT_BMPS_REQ = 79,
230 WLAN_HAL_ENTER_UAPSD_REQ = 80,
231 WLAN_HAL_EXIT_UAPSD_REQ = 81,
232 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
233 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
234 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
235 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
236 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
237 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
238 WLAN_HAL_ENTER_WOWL_REQ = 88,
239 WLAN_HAL_EXIT_WOWL_REQ = 89,
240 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
241 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
242 WLAN_HAL_GET_RSSI_REQ = 92,
243 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
244 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
245
246 WLAN_HAL_ENTER_IMPS_RSP = 95,
247 WLAN_HAL_EXIT_IMPS_RSP = 96,
248 WLAN_HAL_ENTER_BMPS_RSP = 97,
249 WLAN_HAL_EXIT_BMPS_RSP = 98,
250 WLAN_HAL_ENTER_UAPSD_RSP = 99,
251 WLAN_HAL_EXIT_UAPSD_RSP = 100,
252 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
253 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
254 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
255 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
256 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
257 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
258 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
259 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
260 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
261 WLAN_HAL_ENTER_WOWL_RSP = 110,
262 WLAN_HAL_EXIT_WOWL_RSP = 111,
263 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
264 WLAN_HAL_GET_RSSI_RSP = 113,
265 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
266
267 //11k related events
268 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
269 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
270
271 //11R related msgs
272 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
273 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
274
275 //P2P WLAN_FEATURE_P2P
276 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
277 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700278
Jeff Johnson295189b2012-06-20 16:38:30 -0700279 //WLAN Dump commands
280 WLAN_HAL_DUMP_COMMAND_REQ = 121,
281 WLAN_HAL_DUMP_COMMAND_RSP = 122,
282
Jeff Johnsone7245742012-09-05 17:12:55 -0700283 //OEM_DATA FEATURE SUPPORT
284 WLAN_HAL_START_OEM_DATA_REQ = 123,
285 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700286
287 //ADD SELF STA REQ and RSP
288 WLAN_HAL_ADD_STA_SELF_REQ = 125,
289 WLAN_HAL_ADD_STA_SELF_RSP = 126,
290
291 //DEL SELF STA SUPPORT
292 WLAN_HAL_DEL_STA_SELF_REQ = 127,
293 WLAN_HAL_DEL_STA_SELF_RSP = 128,
294
295 // Coex Indication
296 WLAN_HAL_COEX_IND = 129,
297
Jeff Johnson32d95a32012-09-10 13:15:23 -0700298 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700299 WLAN_HAL_OTA_TX_COMPL_IND = 130,
300
301 //Host Suspend/resume messages
302 WLAN_HAL_HOST_SUSPEND_IND = 131,
303 WLAN_HAL_HOST_RESUME_REQ = 132,
304 WLAN_HAL_HOST_RESUME_RSP = 133,
305
306 WLAN_HAL_SET_TX_POWER_REQ = 134,
307 WLAN_HAL_SET_TX_POWER_RSP = 135,
308 WLAN_HAL_GET_TX_POWER_REQ = 136,
309 WLAN_HAL_GET_TX_POWER_RSP = 137,
310
311 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700312
Jeff Johnson295189b2012-06-20 16:38:30 -0700313 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
314 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
315 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
316 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
317 WLAN_HAL_RADAR_DETECT_IND = 143,
318 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
319 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700320 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700321
322 /*PNO messages*/
323 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
324 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
325 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
326 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
327 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
328 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700329 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700330
331 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
332 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
333 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700334
Jeff Johnson295189b2012-06-20 16:38:30 -0700335 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700336 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700337
338 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700339 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700340 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700341 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700342 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700343 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
344 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700345 * Host and Riva code is in sync*/
346 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700347
Jeff Johnson295189b2012-06-20 16:38:30 -0700348 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
349 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
350
351 WLAN_HAL_TSM_STATS_REQ = 168,
352 WLAN_HAL_TSM_STATS_RSP = 169,
353
354 // wake reason indication (WOW)
355 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700356 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700357 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
358 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
359 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
360 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
361
362 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
363 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
364 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
365
366 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
367 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
368
Anand Kumar012623a2013-01-11 17:00:00 -0800369 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
370 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800371
Anand Kumar012623a2013-01-11 17:00:00 -0800372 WLAN_HAL_P2P_NOA_START_IND = 184,
373
374 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
375 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -0700376
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800377 WLAN_HAL_CLASS_B_STATS_IND = 187,
378 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800379 WLAN_HAL_DHCP_START_IND = 189,
380 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700381 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
382 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530383 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
384 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700385
386 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
387 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
388 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
389
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530390 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
391 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
392 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
393 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
394 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700395 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700396
Kumar Anandf53016f2013-09-04 15:15:53 -0700397 /* Scan Offload APIs */
398 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
399 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
400 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
401 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
402 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
403 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
404 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
405
Leo Chang397deb72013-08-22 11:33:16 -0700406 /* APIs to offload TCP/UDP Heartbeat handshakes */
407 WLAN_HAL_LPHB_CFG_REQ = 211,
408 WLAN_HAL_LPHB_CFG_RSP = 212,
409 WLAN_HAL_LPHB_IND = 213,
410
Yue Maab3ccfc2013-08-14 17:19:08 -0700411 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
412 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
413 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530414
Kumar Anandf53016f2013-09-04 15:15:53 -0700415 // Events to set Per-Band Tx Power Limit
416 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
417 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
418
419 /* Reliable Multicast using Leader Based Protocol */
420 WLAN_HAL_LBP_LEADER_REQ = 219,
421 WLAN_HAL_LBP_LEADER_RSP = 220,
422 WLAN_HAL_LBP_UPDATE_IND = 221,
423
krunal soni2a4728d2013-09-20 21:56:50 -0700424 /* Batchscan */
425 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
426 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
427 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
428 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
429 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
430
431 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
432 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
433
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700434 WLAN_HAL_RATE_UPDATE_IND = 229,
435
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530436 /* Tx Fail for weak link notification */
437 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
438 WLAN_HAL_TX_FAIL_IND = 231,
439
440 /* Multi-hop IP routing offload */
441 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
442
Amar Singhalb41c45b2014-03-21 14:44:14 -0700443 /* Channel avoidance for LTE Coex */
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530444 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800445
Amar Singhalb41c45b2014-03-21 14:44:14 -0700446 /* Fast Roam Offload Synchup request protocol */
447 /* TODO_LFR3 : change this value accordingly before final check-in */
448 WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
449 WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
450
451 WLAN_HAL_MOTION_START_EVENT_REQ = 250,
452 WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
453
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800454 /* Channel Switch Request version 1 */
455 WLAN_HAL_CH_SWITCH_V1_REQ = 252,
456 WLAN_HAL_CH_SWITCH_V1_RSP = 253,
457
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530458 /* 2G4 HT40 OBSS scan */
459 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700460 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
461
462 /* WLAN NAN Messages */
463 WLAN_HAL_NAN_FIRST = 256,
464 WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
465 WLAN_HAL_NAN_RSP = 257,
466 WLAN_HAL_NAN_EVT = 258,
467 WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800468
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800469 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700470}tHalHostMsgType;
471
Jeff Johnsone7245742012-09-05 17:12:55 -0700472/* Enumeration for Version */
473typedef enum
474{
475 WLAN_HAL_MSG_VERSION0 = 0,
476 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800477 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
478 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700479}tHalHostMsgVersion;
480
Jeff Johnson295189b2012-06-20 16:38:30 -0700481/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700482typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700483{
484 eANI_BOOLEAN_FALSE = 0,
485 eANI_BOOLEAN_TRUE,
486 eANI_BOOLEAN_OFF = 0,
487 eANI_BOOLEAN_ON = 1,
488 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
489} eAniBoolean;
490
491typedef enum
492{
493 eDRIVER_TYPE_PRODUCTION = 0,
494 eDRIVER_TYPE_MFG = 1,
495 eDRIVER_TYPE_DVT = 2,
496 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
497} tDriverType;
498
499typedef enum
500{
501 HAL_STOP_TYPE_SYS_RESET,
502 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
503 HAL_STOP_TYPE_RF_KILL,
504 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
505}tHalStopType;
506
507typedef enum
508{
509 eHAL_SYS_MODE_NORMAL,
510 eHAL_SYS_MODE_LEARN,
511 eHAL_SYS_MODE_SCAN,
512 eHAL_SYS_MODE_PROMISC,
513 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700514 eHAL_SYS_MODE_ROAM_SCAN,
515 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700516 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700517 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
518} eHalSysMode;
519
520typedef enum
521{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800522 eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
523 eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
524 eHAL_CHANNEL_SWITCH_SOURCE_MCC,
525 eHAL_CHANNEL_SWITCH_SOURCE_CSA,
526 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
527 eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
528 eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
529 eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
530 eHAL_CHANNEL_SWITCH_SOURCE_WCA,
Amar Singhalb41c45b2014-03-21 14:44:14 -0700531 eHAL_CHANNEL_SWITCH_SOURCE_MLME,
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -0800532 eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
533} eHalChanSwitchSource;
534
535typedef enum
536{
Jeff Johnson295189b2012-06-20 16:38:30 -0700537 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
538 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
539 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
540 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700541#ifdef WLAN_FEATURE_11AC
542 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
543 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
544 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
545 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
546 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
547 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
548 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
549#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700550 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
551}ePhyChanBondState;
552
553// Spatial Multiplexing(SM) Power Save mode
554typedef enum eSirMacHTMIMOPowerSaveState
555{
556 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
557 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
558 eSIR_HT_MIMO_PS_NA = 2, // reserved
559 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
560 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
561} tSirMacHTMIMOPowerSaveState;
562
563/* each station added has a rate mode which specifies the sta attributes */
564typedef enum eStaRateMode {
565 eSTA_TAURUS = 0,
566 eSTA_TITAN,
567 eSTA_POLARIS,
568 eSTA_11b,
569 eSTA_11bg,
570 eSTA_11a,
571 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700572#ifdef WLAN_FEATURE_11AC
573 eSTA_11ac,
574#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700575 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
576} tStaRateMode, *tpStaRateMode;
577
578#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
579#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
580#define SIR_NUM_POLARIS_RATES 3 //72,96,108
581
582#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
583
584
585typedef enum eSirBssType
586{
587 eSIR_INFRASTRUCTURE_MODE,
588 eSIR_INFRA_AP_MODE, //Added for softAP support
589 eSIR_IBSS_MODE,
590 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
591 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
592 eSIR_AUTO_MODE,
593 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
594} tSirBssType;
595
596typedef enum eSirNwType
597{
598 eSIR_11A_NW_TYPE,
599 eSIR_11B_NW_TYPE,
600 eSIR_11G_NW_TYPE,
601 eSIR_11N_NW_TYPE,
602 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
603} tSirNwType;
604
605typedef tANI_U16 tSirMacBeaconInterval;
606
607#define SIR_MAC_RATESET_EID_MAX 12
608
609typedef enum eSirMacHTOperatingMode
610{
611 eSIR_HT_OP_MODE_PURE, // No Protection
612 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
613 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
614 eSIR_HT_OP_MODE_MIXED, // Protection is required
615 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
616} tSirMacHTOperatingMode;
617
Jeff Johnson295189b2012-06-20 16:38:30 -0700618/// Encryption type enum used with peer
619typedef enum eAniEdType
620{
621 eSIR_ED_NONE,
622 eSIR_ED_WEP40,
623 eSIR_ED_WEP104,
624 eSIR_ED_TKIP,
625 eSIR_ED_CCMP,
626 eSIR_ED_WPI,
627 eSIR_ED_AES_128_CMAC,
628 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
629} tAniEdType;
630
631#define WLAN_MAX_KEY_RSC_LEN 16
632#define WLAN_WAPI_KEY_RSC_LEN 16
633
634/// MAX key length when ULA is used
635#define SIR_MAC_MAX_KEY_LENGTH 32
636#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
637
638/// Enum to specify whether key is used
639/// for TX only, RX only or both
640typedef enum eAniKeyDirection
641{
642 eSIR_TX_ONLY,
643 eSIR_RX_ONLY,
644 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700645 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700646 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
647} tAniKeyDirection;
648
649typedef enum eAniWepType
650{
651 eSIR_WEP_STATIC,
652 eSIR_WEP_DYNAMIC,
653 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
654} tAniWepType;
655
656typedef enum eSriLinkState {
657
658 eSIR_LINK_IDLE_STATE = 0,
659 eSIR_LINK_PREASSOC_STATE = 1,
660 eSIR_LINK_POSTASSOC_STATE = 2,
661 eSIR_LINK_AP_STATE = 3,
662 eSIR_LINK_IBSS_STATE = 4,
663
664 /* BT-AMP Case */
665 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
666 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
667 eSIR_LINK_BTAMP_AP_STATE = 7,
668 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700669
Jeff Johnson295189b2012-06-20 16:38:30 -0700670 /* Reserved for HAL Internal Use */
671 eSIR_LINK_LEARN_STATE = 9,
672 eSIR_LINK_SCAN_STATE = 10,
673 eSIR_LINK_FINISH_SCAN_STATE = 11,
674 eSIR_LINK_INIT_CAL_STATE = 12,
675 eSIR_LINK_FINISH_CAL_STATE = 13,
676#ifdef WLAN_FEATURE_P2P
677 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530678 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700679#endif
Amar Singhalb41c45b2014-03-21 14:44:14 -0700680#ifdef WLAN_FEATURE_ROAM_OFFLOAD
681 eSIR_LINK_FT_PREASSOC_STATE = 16,
682#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700683 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
684} tSirLinkState;
685
686typedef enum
687{
688 HAL_SUMMARY_STATS_INFO = 0x00000001,
689 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
690 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
691 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
692 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
693 HAL_PER_STA_STATS_INFO = 0x00000020
694}eHalStatsMask;
695
696/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700697typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700698{
699 BTAMP_EVENT_CONNECTION_START,
700 BTAMP_EVENT_CONNECTION_STOP,
701 BTAMP_EVENT_CONNECTION_TERMINATED,
702 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
703} tBtAmpEventType;
704
705//***************************************************************
706
707
708/*******************PE Statistics*************************/
709typedef enum
710{
711 PE_SUMMARY_STATS_INFO = 0x00000001,
712 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
713 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
714 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
715 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
716 PE_PER_STA_STATS_INFO = 0x00000020,
717 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
718}ePEStatsMask;
719
720/*---------------------------------------------------------------------------
721 Message definitons - All the messages below need to be packed
722 ---------------------------------------------------------------------------*/
723
724#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
725#pragma pack(push, 1)
726#elif defined(__ANI_COMPILER_PRAGMA_PACK)
727#pragma pack(1)
728#else
729#endif
730
731/// Definition for HAL API Version.
732typedef PACKED_PRE struct PACKED_POST
733{
734 tANI_U8 revision;
735 tANI_U8 version;
736 tANI_U8 minor;
737 tANI_U8 major;
738} tWcnssWlanVersion, *tpWcnssWlanVersion;
739
740/// Definition for Encryption Keys
741typedef PACKED_PRE struct PACKED_POST
742{
743 tANI_U8 keyId;
744 tANI_U8 unicast; // 0 for multicast
745 tAniKeyDirection keyDirection;
746 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
747 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
748 tANI_U16 keyLength;
749 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
750} tSirKeys, *tpSirKeys;
751
752
753//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
754typedef PACKED_PRE struct PACKED_POST
755{
756 /*STA Index*/
757 tANI_U16 staIdx;
758
759 /*Encryption Type used with peer*/
760 tAniEdType encType;
761
762 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700763 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700764
765 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
766 tANI_U8 defWEPIdx;
767
Jeff Johnson295189b2012-06-20 16:38:30 -0700768 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700769 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
770
Jeff Johnson295189b2012-06-20 16:38:30 -0700771 /*Control for Replay Count, 1= Single TID based replay count on Tx
772 0 = Per TID based replay count on TX */
773 tANI_U8 singleTidRc;
774
775} tSetStaKeyParams, *tpSetStaKeyParams;
776
777
778
779/* 4-byte control message header used by HAL*/
780typedef PACKED_PRE struct PACKED_POST
781{
Jeff Johnsone7245742012-09-05 17:12:55 -0700782 tHalHostMsgType msgType:16;
783 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700784 tANI_U32 msgLen;
785} tHalMsgHeader, *tpHalMsgHeader;
786
787/* Config format required by HAL for each CFG item*/
788typedef PACKED_PRE struct PACKED_POST
789{
790 /* Cfg Id. The Id required by HAL is exported by HAL
791 * in shared header file between UMAC and HAL.*/
792 tANI_U16 uCfgId;
793
Jeff Johnson32d95a32012-09-10 13:15:23 -0700794 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700795 * in the TLV format.*/
796 tANI_U16 uCfgLen;
797
798 /* Padding bytes for unaligned address's */
799 tANI_U16 uCfgPadBytes;
800
801 /* Reserve bytes for making cfgVal to align address */
802 tANI_U16 uCfgReserve;
803
804 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
805 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
806} tHalCfg, *tpHalCfg;
807
808/*---------------------------------------------------------------------------
809 WLAN_HAL_START_REQ
810---------------------------------------------------------------------------*/
811
812typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
813{
814 /* Drive Type - Production or FTM etc */
815 tDriverType driverType;
816
817 /*Length of the config buffer*/
818 tANI_U32 uConfigBufferLen;
819
Jeff Johnson32d95a32012-09-10 13:15:23 -0700820 /* Following this there is a TLV formatted buffer of length
821 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700822 * The TLV is expected to be formatted like this:
823 * 0 15 31 31+CFG_LEN-1 length-1
824 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
825 */
826} tHalMacStartParameters, *tpHalMacStartParameters;
827
828typedef PACKED_PRE struct PACKED_POST
829{
830 /* Note: The length specified in tHalMacStartReqMsg messages should be
831 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
832 tHalMsgHeader header;
833 tHalMacStartParameters startReqParams;
834} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
835
836/*---------------------------------------------------------------------------
837 WLAN_HAL_START_RSP
838---------------------------------------------------------------------------*/
839
840typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
841{
842 /*success or failure */
843 tANI_U16 status;
844
845 /*Max number of STA supported by the device*/
846 tANI_U8 ucMaxStations;
847
848 /*Max number of BSS supported by the device*/
849 tANI_U8 ucMaxBssids;
850
851 /*API Version */
852 tWcnssWlanVersion wcnssWlanVersion;
853
854 /*CRM build information */
855 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
856
857 /*hardware/chipset/misc version information */
858 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
859
860} tHalMacStartRspParams, *tpHalMacStartRspParams;
861
862typedef PACKED_PRE struct PACKED_POST
863{
864 tHalMsgHeader header;
865 tHalMacStartRspParams startRspParams;
866} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
867
868/*---------------------------------------------------------------------------
869 WLAN_HAL_STOP_REQ
870---------------------------------------------------------------------------*/
871
872typedef PACKED_PRE struct PACKED_POST
873{
874 /*The reason for which the device is being stopped*/
875 tHalStopType reason;
876
877}tHalMacStopReqParams, *tpHalMacStopReqParams;
878
879typedef PACKED_PRE struct PACKED_POST
880{
881 tHalMsgHeader header;
882 tHalMacStopReqParams stopReqParams;
883} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
884
885/*---------------------------------------------------------------------------
886 WLAN_HAL_STOP_RSP
887---------------------------------------------------------------------------*/
888
889typedef PACKED_PRE struct PACKED_POST
890{
891 /*success or failure */
892 tANI_U32 status;
893
894}tHalMacStopRspParams, *tpHalMacStopRspParams;
895
896typedef PACKED_PRE struct PACKED_POST
897{
898 tHalMsgHeader header;
899 tHalMacStopRspParams stopRspParams;
900} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
901
902/*---------------------------------------------------------------------------
903 WLAN_HAL_UPDATE_CFG_REQ
904---------------------------------------------------------------------------*/
905
906typedef PACKED_PRE struct PACKED_POST
907{
908 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
909 tANI_U32 uConfigBufferLen;
910
Jeff Johnson32d95a32012-09-10 13:15:23 -0700911 /* Following this there is a TLV formatted buffer of length
912 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700913 * The TLV is expected to be formatted like this:
914 * 0 15 31 31+CFG_LEN-1 length-1
915 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
916 */
917} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
918
919typedef PACKED_PRE struct PACKED_POST
920{
921 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
922 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
923 tHalMsgHeader header;
924 tHalUpdateCfgReqParams updateCfgReqParams;
925} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
926
927/*---------------------------------------------------------------------------
928 WLAN_HAL_UPDATE_CFG_RSP
929---------------------------------------------------------------------------*/
930
931typedef PACKED_PRE struct PACKED_POST
932{
933 /* success or failure */
934 tANI_U32 status;
935
936}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
937
938typedef PACKED_PRE struct PACKED_POST
939{
940 tHalMsgHeader header;
941 tHalUpdateCfgRspParams updateCfgRspParams;
942} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
943
944/*---------------------------------------------------------------------------
945 WLAN_HAL_INIT_SCAN_REQ
946---------------------------------------------------------------------------*/
947
948/// Frame control field format (2 bytes)
949typedef __ani_attr_pre_packed struct sSirMacFrameCtl
950{
951
952#ifndef ANI_LITTLE_BIT_ENDIAN
953
954 tANI_U8 subType :4;
955 tANI_U8 type :2;
956 tANI_U8 protVer :2;
957
958 tANI_U8 order :1;
959 tANI_U8 wep :1;
960 tANI_U8 moreData :1;
961 tANI_U8 powerMgmt :1;
962 tANI_U8 retry :1;
963 tANI_U8 moreFrag :1;
964 tANI_U8 fromDS :1;
965 tANI_U8 toDS :1;
966
967#else
968
969 tANI_U8 protVer :2;
970 tANI_U8 type :2;
971 tANI_U8 subType :4;
972
973 tANI_U8 toDS :1;
974 tANI_U8 fromDS :1;
975 tANI_U8 moreFrag :1;
976 tANI_U8 retry :1;
977 tANI_U8 powerMgmt :1;
978 tANI_U8 moreData :1;
979 tANI_U8 wep :1;
980 tANI_U8 order :1;
981
982#endif
983
984} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
985
986/// Sequence control field
987typedef __ani_attr_pre_packed struct sSirMacSeqCtl
988{
989 tANI_U8 fragNum : 4;
990 tANI_U8 seqNumLo : 4;
991 tANI_U8 seqNumHi : 8;
992} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
993
994/// Management header format
995typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
996{
997 tSirMacFrameCtl fc;
998 tANI_U8 durationLo;
999 tANI_U8 durationHi;
1000 tANI_U8 da[6];
1001 tANI_U8 sa[6];
1002 tANI_U8 bssId[6];
1003 tSirMacSeqCtl seqControl;
1004} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
1005
1006/// Scan Entry to hold active BSS idx's
1007typedef __ani_attr_pre_packed struct sSirScanEntry
1008{
1009 tANI_U8 bssIdx[HAL_NUM_BSSID];
1010 tANI_U8 activeBSScnt;
1011}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
1012
1013typedef PACKED_PRE struct PACKED_POST {
1014
1015 /*LEARN - AP Role
1016 SCAN - STA Role*/
1017 eHalSysMode scanMode;
1018
1019 /*BSSID of the BSS*/
1020 tSirMacAddr bssid;
1021
1022 /*Whether BSS needs to be notified*/
1023 tANI_U8 notifyBss;
1024
1025 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1026 CTS to Self). Must always be a valid frame type.*/
1027 tANI_U8 frameType;
1028
1029 /*UMAC has the option of passing the MAC frame to be used for notifying
1030 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1031 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1032 frameType.*/
1033 tANI_U8 frameLength;
1034
Jeff Johnson32d95a32012-09-10 13:15:23 -07001035 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001036 is non-zero. */
1037 tSirMacMgmtHdr macMgmtHdr;
1038
1039 /*Entry to hold number of active BSS idx's*/
1040 tSirScanEntry scanEntry;
1041
1042} tInitScanParams, * tpInitScanParams;
1043
1044typedef PACKED_PRE struct PACKED_POST
1045{
1046 tHalMsgHeader header;
1047 tInitScanParams initScanParams;
1048} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1049
1050typedef PACKED_PRE struct PACKED_POST {
1051
1052 /*LEARN - AP Role
1053 SCAN - STA Role*/
1054 eHalSysMode scanMode;
1055
1056 /*BSSID of the BSS*/
1057 tSirMacAddr bssid;
1058
1059 /*Whether BSS needs to be notified*/
1060 tANI_U8 notifyBss;
1061
1062 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1063 CTS to Self). Must always be a valid frame type.*/
1064 tANI_U8 frameType;
1065
1066 /*UMAC has the option of passing the MAC frame to be used for notifying
1067 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1068 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1069 frameType.*/
1070 tANI_U8 frameLength;
1071
Jeff Johnson32d95a32012-09-10 13:15:23 -07001072 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001073 is non-zero. */
1074 tSirMacMgmtHdr macMgmtHdr;
1075
1076 /*Entry to hold number of active BSS idx's*/
1077 tSirScanEntry scanEntry;
1078
1079 /* Single NoA usage in Scanning */
1080 tANI_U8 useNoA;
1081
1082 /* Indicates the scan duration (in ms) */
1083 tANI_U16 scanDuration;
1084
1085} tInitScanConParams, * tpInitScanConParams;
1086
1087typedef PACKED_PRE struct PACKED_POST
1088{
1089 tHalMsgHeader header;
1090 tInitScanConParams initScanParams;
1091} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1092
1093
1094/*---------------------------------------------------------------------------
1095 WLAN_HAL_INIT_SCAN_RSP
1096---------------------------------------------------------------------------*/
1097
1098typedef PACKED_PRE struct PACKED_POST
1099{
1100 /*success or failure */
1101 tANI_U32 status;
1102
1103}tHalInitScanRspParams, *tpHalInitScanRspParams;
1104
1105typedef PACKED_PRE struct PACKED_POST
1106{
1107 tHalMsgHeader header;
1108 tHalInitScanRspParams initScanRspParams;
1109} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1110
1111/*---------------------------------------------------------------------------
1112 WLAN_HAL_START_SCAN_REQ
1113---------------------------------------------------------------------------*/
1114
Jeff Johnson32d95a32012-09-10 13:15:23 -07001115typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001116{
1117 /*Indicates the channel to scan*/
1118 tANI_U8 scanChannel;
1119
1120 } tStartScanParams, * tpStartScanParams;
1121
1122typedef PACKED_PRE struct PACKED_POST
1123{
1124 tHalMsgHeader header;
1125 tStartScanParams startScanParams;
1126} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1127
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001128typedef PACKED_PRE struct PACKED_POST
1129{
1130 tHalMsgHeader header;
1131} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
1132
Jeff Johnson295189b2012-06-20 16:38:30 -07001133/*---------------------------------------------------------------------------
1134 WLAN_HAL_START_SCAN_RSP
1135---------------------------------------------------------------------------*/
1136
1137typedef PACKED_PRE struct PACKED_POST
1138{
1139 /*success or failure */
1140 tANI_U32 status;
1141
1142 tANI_U32 startTSF[2];
1143 tPowerdBm txMgmtPower;
1144
1145}tHalStartScanRspParams, *tpHalStartScanRspParams;
1146
1147typedef PACKED_PRE struct PACKED_POST
1148{
1149 tHalMsgHeader header;
1150 tHalStartScanRspParams startScanRspParams;
1151} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1152
1153/*---------------------------------------------------------------------------
1154 WLAN_HAL_END_SCAN_REQ
1155---------------------------------------------------------------------------*/
1156
1157typedef PACKED_PRE struct PACKED_POST
1158{
1159 /*Indicates the channel to stop scanning. Not used really. But retained
1160 for symmetry with "start Scan" message. It can also help in error
1161 check if needed.*/
1162 tANI_U8 scanChannel;
1163
1164} tEndScanParams, *tpEndScanParams;
1165
1166typedef PACKED_PRE struct PACKED_POST
1167{
1168 tHalMsgHeader header;
1169 tEndScanParams endScanParams;
1170} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1171
1172/*---------------------------------------------------------------------------
1173 WLAN_HAL_END_SCAN_RSP
1174---------------------------------------------------------------------------*/
1175
1176typedef PACKED_PRE struct PACKED_POST
1177{
1178 /*success or failure */
1179 tANI_U32 status;
1180
1181}tHalEndScanRspParams, *tpHalEndScanRspParams;
1182
1183typedef PACKED_PRE struct PACKED_POST
1184{
1185 tHalMsgHeader header;
1186 tHalEndScanRspParams endScanRspParams;
1187} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1188
1189/*---------------------------------------------------------------------------
1190 WLAN_HAL_FINISH_SCAN_REQ
1191---------------------------------------------------------------------------*/
1192
1193typedef PACKED_PRE struct PACKED_POST
1194{
1195 /* Identifies the operational state of the AP/STA
1196 * LEARN - AP Role SCAN - STA Role */
1197 eHalSysMode scanMode;
1198
1199 /*Operating channel to tune to.*/
1200 tANI_U8 currentOperChannel;
1201
1202 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1203 40 MHz extension channel in combination with the control channel*/
1204 ePhyChanBondState cbState;
1205
1206 /*BSSID of the BSS*/
1207 tSirMacAddr bssid;
1208
1209 /*Whether BSS needs to be notified*/
1210 tANI_U8 notifyBss;
1211
1212 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1213 CTS to Self). Must always be a valid frame type.*/
1214 tANI_U8 frameType;
1215
1216 /*UMAC has the option of passing the MAC frame to be used for notifying
1217 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1218 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1219 frameType.*/
1220 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001221
1222 /*Following the framelength there is a MAC frame buffer if frameLength
1223 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001224 tSirMacMgmtHdr macMgmtHdr;
1225
1226 /*Entry to hold number of active BSS idx's*/
1227 tSirScanEntry scanEntry;
1228
1229} tFinishScanParams, *tpFinishScanParams;
1230
1231typedef PACKED_PRE struct PACKED_POST
1232{
1233 tHalMsgHeader header;
1234 tFinishScanParams finishScanParams;
1235} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1236
1237/*---------------------------------------------------------------------------
1238 WLAN_HAL_FINISH_SCAN_RSP
1239---------------------------------------------------------------------------*/
1240
1241typedef PACKED_PRE struct PACKED_POST
1242{
1243 /*success or failure */
1244 tANI_U32 status;
1245
1246}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1247
1248typedef PACKED_PRE struct PACKED_POST
1249{
1250 tHalMsgHeader header;
1251 tHalFinishScanRspParams finishScanRspParams;
1252} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1253
1254/*---------------------------------------------------------------------------
1255 WLAN_HAL_CONFIG_STA_REQ
1256---------------------------------------------------------------------------*/
1257
1258typedef PACKED_PRE struct PACKED_POST {
1259 /*
1260 * For Self STA Entry: this represents Self Mode.
1261 * For Peer Stations, this represents the mode of the peer.
1262 * On Station:
1263 * --this mode is updated when PE adds the Self Entry.
1264 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1265 * ON AP:
1266 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1267 * to indicate the self mode of the AP.
1268 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1269 */
1270
1271 tStaRateMode opRateMode;
1272 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1273 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1274 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1275 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1276 tANI_U16 reserved;
1277
1278 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1279 //First 26 bits are reserved for those Titan rates and
1280 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1281 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1282
1283 /*
1284 * 0-76 bits used, remaining reserved
1285 * bits 0-15 and 32 should be set.
1286 */
1287 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1288
1289 /*
1290 * RX Highest Supported Data Rate defines the highest data
1291 * rate that the STA is able to receive, in unites of 1Mbps.
1292 * This value is derived from "Supported MCS Set field" inside
1293 * the HT capability element.
1294 */
1295 tANI_U16 rxHighestDataRate;
1296
1297} tSirSupportedRates, *tpSirSupportedRates;
1298
1299typedef PACKED_PRE struct PACKED_POST
1300{
1301 /*BSSID of STA*/
1302 tSirMacAddr bssId;
1303
1304 /*ASSOC ID, as assigned by UMAC*/
1305 tANI_U16 assocId;
1306
1307 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1308 tANI_U8 staType;
1309
1310 /*Short Preamble Supported.*/
1311 tANI_U8 shortPreambleSupported;
1312
1313 /*MAC Address of STA*/
1314 tSirMacAddr staMac;
1315
1316 /*Listen interval of the STA*/
1317 tANI_U16 listenInterval;
1318
1319 /*Support for 11e/WMM*/
1320 tANI_U8 wmmEnabled;
1321
1322 /*11n HT capable STA*/
1323 tANI_U8 htCapable;
1324
1325 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1326 tANI_U8 txChannelWidthSet;
1327
1328 /*RIFS mode 0 - NA, 1 - Allowed */
1329 tANI_U8 rifsMode;
1330
Jeff Johnson32d95a32012-09-10 13:15:23 -07001331 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001332 0 - No Support, 1 - Supported
1333 SG - there is global field */
1334 tANI_U8 lsigTxopProtection;
1335
1336 /*Max Ampdu Size supported by STA. TPE programming.
1337 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1338 tANI_U8 maxAmpduSize;
1339
1340 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1341 tANI_U8 maxAmpduDensity;
1342
1343 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1344 tANI_U8 maxAmsduSize;
1345
1346 /*Short GI support for 40Mhz packets*/
1347 tANI_U8 fShortGI40Mhz;
1348
1349 /*Short GI support for 20Mhz packets*/
1350 tANI_U8 fShortGI20Mhz;
1351
Jeff Johnson295189b2012-06-20 16:38:30 -07001352 /*Robust Management Frame (RMF) enabled/disabled*/
1353 tANI_U8 rmfEnabled;
1354
1355 /* The unicast encryption type in the association */
1356 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001357
1358 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001359 will set this flag in case of RE-ASSOC, where we want to reuse the old
1360 STA ID. 0 = Add, 1 = Update*/
1361 tANI_U8 action;
1362
1363 /*U-APSD Flags: 1b per AC. Encoded as follows:
1364 b7 b6 b5 b4 b3 b2 b1 b0 =
1365 X X X X BE BK VI VO */
1366 tANI_U8 uAPSD;
1367
1368 /*Max SP Length*/
1369 tANI_U8 maxSPLen;
1370
1371 /*11n Green Field preamble support
1372 0 - Not supported, 1 - Supported */
1373 tANI_U8 greenFieldCapable;
1374
1375 /*MIMO Power Save mode*/
1376 tSirMacHTMIMOPowerSaveState mimoPS;
1377
1378 /*Delayed BA Support*/
1379 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001380
Jeff Johnson295189b2012-06-20 16:38:30 -07001381 /*Max AMPDU duration in 32us*/
1382 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001383
Jeff Johnson295189b2012-06-20 16:38:30 -07001384 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1385 it to 0 if AP does not support it. This indication is sent to HAL and
1386 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1387 tANI_U8 fDsssCckMode40Mhz;
1388
1389 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1390 Retained for backward compalibity with existing HAL code*/
1391 tANI_U8 staIdx;
1392
1393 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1394 Retained for backward compalibity with existing HAL code*/
1395 tANI_U8 bssIdx;
1396
1397 tANI_U8 p2pCapableSta;
1398
Jeff Johnsone7245742012-09-05 17:12:55 -07001399 /*Reserved to align next field on a dword boundary*/
1400 tANI_U8 reserved;
1401
1402 /*These rates are the intersection of peer and self capabilities.*/
1403 tSirSupportedRates supportedRates;
1404
Jeff Johnson295189b2012-06-20 16:38:30 -07001405} tConfigStaParams, *tpConfigStaParams;
1406
Jeff Johnsone7245742012-09-05 17:12:55 -07001407/*------------------------------------------------------------------------
1408 * WLAN_HAL_CONFIG_STA_REQ
1409 * ----------------------------------------------------------------------*/
1410
1411typedef PACKED_PRE struct PACKED_POST {
1412 /*
1413 * For Self STA Entry: this represents Self Mode.
1414 * For Peer Stations, this represents the mode of the peer.
1415 * On Station:
1416 * --this mode is updated when PE adds the Self Entry.
1417 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1418 * ON AP:
1419 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1420 * to indicate the self mode of the AP.
1421 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1422 */
1423
1424 tStaRateMode opRateMode;
1425 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1426 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1427 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1428 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1429 tANI_U16 reserved;
1430
1431 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1432 //First 26 bits are reserved for those Titan rates and
1433 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1434 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1435
1436 /*
1437 * 0-76 bits used, remaining reserved
1438 * bits 0-15 and 32 should be set.
1439 */
1440 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1441
1442 /*
1443 * RX Highest Supported Data Rate defines the highest data
1444 * rate that the STA is able to receive, in unites of 1Mbps.
1445 * This value is derived from "Supported MCS Set field" inside
1446 * the HT capability element.
1447 */
1448 tANI_U16 rxHighestDataRate;
1449
1450 /* Indicates the Maximum MCS that can be received for each number
1451 * of spacial streams */
1452 tANI_U16 vhtRxMCSMap;
1453
1454 /*Indicate the highest VHT data rate that the STA is able to receive*/
1455 tANI_U16 vhtRxHighestDataRate;
1456
1457 /* Indicates the Maximum MCS that can be transmitted for each number
1458 * of spacial streams */
1459 tANI_U16 vhtTxMCSMap;
1460
1461 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1462 tANI_U16 vhtTxHighestDataRate;
1463
1464} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1465
1466typedef PACKED_PRE struct PACKED_POST
1467{
1468 /*BSSID of STA*/
1469 tSirMacAddr bssId;
1470
1471 /*ASSOC ID, as assigned by UMAC*/
1472 tANI_U16 assocId;
1473
1474 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1475 tANI_U8 staType;
1476
1477 /*Short Preamble Supported.*/
1478 tANI_U8 shortPreambleSupported;
1479
1480 /*MAC Address of STA*/
1481 tSirMacAddr staMac;
1482
1483 /*Listen interval of the STA*/
1484 tANI_U16 listenInterval;
1485
1486 /*Support for 11e/WMM*/
1487 tANI_U8 wmmEnabled;
1488
1489 /*11n HT capable STA*/
1490 tANI_U8 htCapable;
1491
1492 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1493 tANI_U8 txChannelWidthSet;
1494
1495 /*RIFS mode 0 - NA, 1 - Allowed */
1496 tANI_U8 rifsMode;
1497
1498 /*L-SIG TXOP Protection mechanism
1499 0 - No Support, 1 - Supported
1500 SG - there is global field */
1501 tANI_U8 lsigTxopProtection;
1502
1503 /*Max Ampdu Size supported by STA. TPE programming.
1504 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1505 tANI_U8 maxAmpduSize;
1506
1507 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1508 tANI_U8 maxAmpduDensity;
1509
1510 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1511 tANI_U8 maxAmsduSize;
1512
1513 /*Short GI support for 40Mhz packets*/
1514 tANI_U8 fShortGI40Mhz;
1515
1516 /*Short GI support for 20Mhz packets*/
1517 tANI_U8 fShortGI20Mhz;
1518
1519 /*Robust Management Frame (RMF) enabled/disabled*/
1520 tANI_U8 rmfEnabled;
1521
1522 /* The unicast encryption type in the association */
1523 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001524
1525 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001526 will set this flag in case of RE-ASSOC, where we want to reuse the old
1527 STA ID. 0 = Add, 1 = Update*/
1528 tANI_U8 action;
1529
1530 /*U-APSD Flags: 1b per AC. Encoded as follows:
1531 b7 b6 b5 b4 b3 b2 b1 b0 =
1532 X X X X BE BK VI VO */
1533 tANI_U8 uAPSD;
1534
1535 /*Max SP Length*/
1536 tANI_U8 maxSPLen;
1537
1538 /*11n Green Field preamble support
1539 0 - Not supported, 1 - Supported */
1540 tANI_U8 greenFieldCapable;
1541
1542 /*MIMO Power Save mode*/
1543 tSirMacHTMIMOPowerSaveState mimoPS;
1544
1545 /*Delayed BA Support*/
1546 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001547
Jeff Johnsone7245742012-09-05 17:12:55 -07001548 /*Max AMPDU duration in 32us*/
1549 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001550
Jeff Johnsone7245742012-09-05 17:12:55 -07001551 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1552 it to 0 if AP does not support it. This indication is sent to HAL and
1553 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1554 tANI_U8 fDsssCckMode40Mhz;
1555
1556 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1557 Retained for backward compalibity with existing HAL code*/
1558 tANI_U8 staIdx;
1559
1560 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1561 Retained for backward compalibity with existing HAL code*/
1562 tANI_U8 bssIdx;
1563
1564 tANI_U8 p2pCapableSta;
1565
1566 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001567 tANI_U8 htLdpcEnabled:1;
1568 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001569 tANI_U8 vhtTxBFEnabled:1;
1570 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001571
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001572 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001573 tSirSupportedRates_V1 supportedRates;
1574
1575 tANI_U8 vhtCapable;
1576 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001577
Jeff Johnsone7245742012-09-05 17:12:55 -07001578} tConfigStaParams_V1, *tpConfigStaParams_V1;
1579
Jeff Johnson295189b2012-06-20 16:38:30 -07001580typedef PACKED_PRE struct PACKED_POST
1581{
1582 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001583 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001584 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001585 tConfigStaParams_V1 configStaParams_V1;
1586 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001587} tConfigStaReqMsg, *tpConfigStaReqMsg;
1588
1589/*---------------------------------------------------------------------------
1590 WLAN_HAL_CONFIG_STA_RSP
1591---------------------------------------------------------------------------*/
1592
1593typedef PACKED_PRE struct PACKED_POST
1594{
1595 /*success or failure */
1596 tANI_U32 status;
1597
1598 /* Station index; valid only when 'status' field value SUCCESS */
1599 tANI_U8 staIdx;
1600
1601 /* BSSID Index of BSS to which the station is associated */
1602 tANI_U8 bssIdx;
1603
1604 /* DPU Index for PTK */
1605 tANI_U8 dpuIndex;
1606
Jeff Johnson32d95a32012-09-10 13:15:23 -07001607 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001608 tANI_U8 bcastDpuIndex;
1609
1610 /*DPU Index for IGTK */
1611 tANI_U8 bcastMgmtDpuIdx;
1612
1613 /*PTK DPU signature*/
1614 tANI_U8 ucUcastSig;
1615
1616 /*GTK DPU isignature*/
1617 tANI_U8 ucBcastSig;
1618
1619 /* IGTK DPU signature*/
1620 tANI_U8 ucMgmtSig;
1621
1622 tANI_U8 p2pCapableSta;
1623
1624}tConfigStaRspParams, *tpConfigStaRspParams;
1625
1626typedef PACKED_PRE struct PACKED_POST
1627{
1628 tHalMsgHeader header;
1629 tConfigStaRspParams configStaRspParams;
1630}tConfigStaRspMsg, *tpConfigStaRspMsg;
1631
1632/*---------------------------------------------------------------------------
1633 WLAN_HAL_DELETE_STA_REQ
1634---------------------------------------------------------------------------*/
1635
1636/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001637typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001638{
1639 /* Index of STA to delete */
1640 tANI_U8 staIdx;
1641} tDeleteStaParams, *tpDeleteStaParams;
1642
1643/* Delete STA Request message*/
1644typedef PACKED_PRE struct PACKED_POST
1645{
1646 tHalMsgHeader header;
1647 tDeleteStaParams delStaParams;
1648} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1649
1650/*---------------------------------------------------------------------------
1651 WLAN_HAL_DELETE_STA_RSP
1652---------------------------------------------------------------------------*/
1653
1654/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001655typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001656{
1657 /*success or failure */
1658 tANI_U32 status;
1659
1660 /* Index of STA deleted */
1661 tANI_U8 staId;
1662} tDeleteStaRspParams, *tpDeleteStaRspParams;
1663
1664/* Delete STA Response message*/
1665typedef PACKED_PRE struct PACKED_POST
1666{
1667 tHalMsgHeader header;
1668 tDeleteStaRspParams delStaRspParams;
1669} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1670
1671/*---------------------------------------------------------------------------
1672 WLAN_HAL_CONFIG_BSS_REQ
1673---------------------------------------------------------------------------*/
1674
1675//12 Bytes long because this structure can be used to represent rate
1676//and extended rate set IEs. The parser assume this to be at least 12
1677typedef __ani_attr_pre_packed struct sSirMacRateSet
1678{
1679 tANI_U8 numRates;
1680 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1681} __ani_attr_packed tSirMacRateSet;
1682
1683// access category record
1684typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1685{
1686#ifndef ANI_LITTLE_BIT_ENDIAN
1687 tANI_U8 rsvd : 1;
1688 tANI_U8 aci : 2;
1689 tANI_U8 acm : 1;
1690 tANI_U8 aifsn : 4;
1691#else
1692 tANI_U8 aifsn : 4;
1693 tANI_U8 acm : 1;
1694 tANI_U8 aci : 2;
1695 tANI_U8 rsvd : 1;
1696#endif
1697} __ani_attr_packed tSirMacAciAifsn;
1698
1699// contention window size
1700typedef __ani_attr_pre_packed struct sSirMacCW
1701{
1702#ifndef ANI_LITTLE_BIT_ENDIAN
1703 tANI_U8 max : 4;
1704 tANI_U8 min : 4;
1705#else
1706 tANI_U8 min : 4;
1707 tANI_U8 max : 4;
1708#endif
1709} __ani_attr_packed tSirMacCW;
1710
1711typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1712{
1713 tSirMacAciAifsn aci;
1714 tSirMacCW cw;
1715 tANI_U16 txoplimit;
1716} __ani_attr_packed tSirMacEdcaParamRecord;
1717
1718typedef __ani_attr_pre_packed struct sSirMacSSid
1719{
1720 tANI_U8 length;
1721 tANI_U8 ssId[32];
1722} __ani_attr_packed tSirMacSSid;
1723
1724// Concurrency role. These are generic IDs that identify the various roles
1725// in the software system.
1726typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001727 HAL_STA_MODE=0,
1728 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001729 HAL_P2P_CLIENT_MODE,
1730 HAL_P2P_GO_MODE,
1731 HAL_MONITOR_MODE,
1732} tHalConMode;
1733
1734//This is a bit pattern to be set for each mode
1735//bit 0 - sta mode
1736//bit 1 - ap mode
1737//bit 2 - p2p client mode
1738//bit 3 - p2p go mode
1739typedef enum
1740{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001741 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001742 HAL_SAP=2,
1743 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1744 HAL_P2P_CLIENT=4,
1745 HAL_P2P_GO=8,
1746 HAL_MAX_CONCURRENCY_PERSONA=4
1747} tHalConcurrencyMode;
1748
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001749// IFACE PERSONA for different Operating modes
1750typedef enum
1751{
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08001752 HAL_IFACE_UNKNOWN=0,
1753 HAL_IFACE_STA_MODE=1,
1754 HAL_IFACE_P2P_MODE=2,
1755 HAL_IFACE_MAX=0x7FFFFFFF,
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001756} tHalIfacePersona;
1757
Jeff Johnson295189b2012-06-20 16:38:30 -07001758typedef PACKED_PRE struct PACKED_POST
1759{
1760 /* BSSID */
1761 tSirMacAddr bssId;
1762
Jeff Johnson295189b2012-06-20 16:38:30 -07001763 /* Self Mac Address */
1764 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001765
1766 /* BSS type */
1767 tSirBssType bssType;
1768
1769 /*Operational Mode: AP =0, STA = 1*/
1770 tANI_U8 operMode;
1771
1772 /*Network Type*/
1773 tSirNwType nwType;
1774
1775 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1776 tANI_U8 shortSlotTimeSupported;
1777
1778 /*Co-exist with 11a STA*/
1779 tANI_U8 llaCoexist;
1780
1781 /*Co-exist with 11b STA*/
1782 tANI_U8 llbCoexist;
1783
1784 /*Co-exist with 11g STA*/
1785 tANI_U8 llgCoexist;
1786
1787 /*Coexistence with 11n STA*/
1788 tANI_U8 ht20Coexist;
1789
1790 /*Non GF coexist flag*/
1791 tANI_U8 llnNonGFCoexist;
1792
1793 /*TXOP protection support*/
1794 tANI_U8 fLsigTXOPProtectionFullSupport;
1795
1796 /*RIFS mode*/
1797 tANI_U8 fRIFSMode;
1798
1799 /*Beacon Interval in TU*/
1800 tSirMacBeaconInterval beaconInterval;
1801
1802 /*DTIM period*/
1803 tANI_U8 dtimPeriod;
1804
1805 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1806 tANI_U8 txChannelWidthSet;
1807
1808 /*Operating channel*/
1809 tANI_U8 currentOperChannel;
1810
1811 /*Extension channel for channel bonding*/
1812 tANI_U8 currentExtChannel;
1813
1814 /*Reserved to align next field on a dword boundary*/
1815 tANI_U8 reserved;
1816
Jeff Johnsone7245742012-09-05 17:12:55 -07001817 /*SSID of the BSS*/
1818 tSirMacSSid ssId;
1819
1820 /*HAL should update the existing BSS entry, if this flag is set.
1821 UMAC will set this flag in case of reassoc, where we want to resue the
1822 the old BSSID and still return success 0 = Add, 1 = Update*/
1823 tANI_U8 action;
1824
1825 /* MAC Rate Set */
1826 tSirMacRateSet rateSet;
1827
1828 /*Enable/Disable HT capabilities of the BSS*/
1829 tANI_U8 htCapable;
1830
1831 // Enable/Disable OBSS protection
1832 tANI_U8 obssProtEnabled;
1833
1834 /*RMF enabled/disabled*/
1835 tANI_U8 rmfEnabled;
1836
1837 /*HT Operating Mode operating mode of the 802.11n STA*/
1838 tSirMacHTOperatingMode htOperMode;
1839
1840 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1841 tANI_U8 dualCTSProtection;
1842
1843 /* Probe Response Max retries */
1844 tANI_U8 ucMaxProbeRespRetryLimit;
1845
1846 /* To Enable Hidden ssid */
1847 tANI_U8 bHiddenSSIDEn;
1848
1849 /* To Enable Disable FW Proxy Probe Resp */
1850 tANI_U8 bProxyProbeRespEn;
1851
1852 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1853 EDCA params or might not desire to apply EDCA params during config BSS.
1854 0 implies Not Valid ; Non-Zero implies valid*/
1855 tANI_U8 edcaParamsValid;
1856
1857 /*EDCA Parameters for Best Effort Access Category*/
1858 tSirMacEdcaParamRecord acbe;
1859
1860 /*EDCA Parameters forBackground Access Category*/
1861 tSirMacEdcaParamRecord acbk;
1862
1863 /*EDCA Parameters for Video Access Category*/
1864 tSirMacEdcaParamRecord acvi;
1865
1866 /*EDCA Parameters for Voice Access Category*/
1867 tSirMacEdcaParamRecord acvo;
1868
1869#ifdef WLAN_FEATURE_VOWIFI_11R
1870 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1871 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1872#endif
1873
1874 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1875 tANI_U8 halPersona;
1876
1877 tANI_U8 bSpectrumMgtEnable;
1878
1879 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1880 tANI_S8 txMgmtPower;
1881 /*maxTxPower has max power to be used after applying the power constraint if any */
1882 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001883 /*Context of the station being added in HW
1884 Add a STA entry for "itself" -
1885 On AP - Add the AP itself in an "STA context"
1886 On STA - Add the AP to which this STA is joining in an "STA context" */
1887 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001888} tConfigBssParams, * tpConfigBssParams;
1889
1890
1891/*--------------------------------------------------------------------------
1892 * WLAN_HAL_CONFIG_BSS_REQ
1893 *--------------------------------------------------------------------------*/
1894typedef PACKED_PRE struct PACKED_POST
1895{
1896 /* BSSID */
1897 tSirMacAddr bssId;
1898
Jeff Johnsone7245742012-09-05 17:12:55 -07001899 /* Self Mac Address */
1900 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001901
1902 /* BSS type */
1903 tSirBssType bssType;
1904
1905 /*Operational Mode: AP =0, STA = 1*/
1906 tANI_U8 operMode;
1907
1908 /*Network Type*/
1909 tSirNwType nwType;
1910
1911 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1912 tANI_U8 shortSlotTimeSupported;
1913
1914 /*Co-exist with 11a STA*/
1915 tANI_U8 llaCoexist;
1916
1917 /*Co-exist with 11b STA*/
1918 tANI_U8 llbCoexist;
1919
1920 /*Co-exist with 11g STA*/
1921 tANI_U8 llgCoexist;
1922
1923 /*Coexistence with 11n STA*/
1924 tANI_U8 ht20Coexist;
1925
1926 /*Non GF coexist flag*/
1927 tANI_U8 llnNonGFCoexist;
1928
1929 /*TXOP protection support*/
1930 tANI_U8 fLsigTXOPProtectionFullSupport;
1931 /*RIFS mode*/
1932 tANI_U8 fRIFSMode;
1933
1934 /*Beacon Interval in TU*/
1935 tSirMacBeaconInterval beaconInterval;
1936
1937 /*DTIM period*/
1938 tANI_U8 dtimPeriod;
1939
1940 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1941 tANI_U8 txChannelWidthSet;
1942
1943 /*Operating channel*/
1944 tANI_U8 currentOperChannel;
1945
1946 /*Extension channel for channel bonding*/
1947 tANI_U8 currentExtChannel;
1948
1949 /*Reserved to align next field on a dword boundary*/
1950 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001951
1952 /*SSID of the BSS*/
1953 tSirMacSSid ssId;
1954
1955 /*HAL should update the existing BSS entry, if this flag is set.
1956 UMAC will set this flag in case of reassoc, where we want to resue the
1957 the old BSSID and still return success 0 = Add, 1 = Update*/
1958 tANI_U8 action;
1959
1960 /* MAC Rate Set */
1961 tSirMacRateSet rateSet;
1962
1963 /*Enable/Disable HT capabilities of the BSS*/
1964 tANI_U8 htCapable;
1965
1966 // Enable/Disable OBSS protection
1967 tANI_U8 obssProtEnabled;
1968
1969 /*RMF enabled/disabled*/
1970 tANI_U8 rmfEnabled;
1971
1972 /*HT Operating Mode operating mode of the 802.11n STA*/
1973 tSirMacHTOperatingMode htOperMode;
1974
1975 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1976 tANI_U8 dualCTSProtection;
1977
1978 /* Probe Response Max retries */
1979 tANI_U8 ucMaxProbeRespRetryLimit;
1980
1981 /* To Enable Hidden ssid */
1982 tANI_U8 bHiddenSSIDEn;
1983
1984 /* To Enable Disable FW Proxy Probe Resp */
1985 tANI_U8 bProxyProbeRespEn;
1986
Jeff Johnson32d95a32012-09-10 13:15:23 -07001987 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1988 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001989 0 implies Not Valid ; Non-Zero implies valid*/
1990 tANI_U8 edcaParamsValid;
1991
1992 /*EDCA Parameters for Best Effort Access Category*/
1993 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001994
Jeff Johnson295189b2012-06-20 16:38:30 -07001995 /*EDCA Parameters forBackground Access Category*/
1996 tSirMacEdcaParamRecord acbk;
1997
1998 /*EDCA Parameters for Video Access Category*/
1999 tSirMacEdcaParamRecord acvi;
2000
2001 /*EDCA Parameters for Voice Access Category*/
2002 tSirMacEdcaParamRecord acvo;
2003
2004#ifdef WLAN_FEATURE_VOWIFI_11R
2005 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
2006 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
2007#endif
2008
Jeff Johnson32d95a32012-09-10 13:15:23 -07002009 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07002010 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002011
Jeff Johnson295189b2012-06-20 16:38:30 -07002012 tANI_U8 bSpectrumMgtEnable;
2013
2014 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
2015 tANI_S8 txMgmtPower;
2016 /*maxTxPower has max power to be used after applying the power constraint if any */
2017 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07002018 /*Context of the station being added in HW
2019 Add a STA entry for "itself" -
2020 On AP - Add the AP itself in an "STA context"
2021 On STA - Add the AP to which this STA is joining in an "STA context" */
2022 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002023
Jeff Johnsone7245742012-09-05 17:12:55 -07002024 tANI_U8 vhtCapable;
2025 tANI_U8 vhtTxChannelWidthSet;
2026} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002027
2028typedef PACKED_PRE struct PACKED_POST
2029{
2030 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07002031 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07002032 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07002033 tConfigBssParams_V1 configBssParams_V1;
2034 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002035} tConfigBssReqMsg, *tpConfigBssReqMsg;
2036
2037/*---------------------------------------------------------------------------
2038 WLAN_HAL_CONFIG_BSS_RSP
2039---------------------------------------------------------------------------*/
2040
2041typedef PACKED_PRE struct PACKED_POST
2042{
2043 /* Success or Failure */
2044 tANI_U32 status;
2045
2046 /* BSS index allocated by HAL */
2047 tANI_U8 bssIdx;
2048
2049 /* DPU descriptor index for PTK */
2050 tANI_U8 dpuDescIndx;
2051
2052 /* PTK DPU signature */
2053 tANI_U8 ucastDpuSignature;
2054
2055 /* DPU descriptor index for GTK*/
2056 tANI_U8 bcastDpuDescIndx;
2057
2058 /* GTK DPU signature */
2059 tANI_U8 bcastDpuSignature;
2060
2061 /*DPU descriptor for IGTK*/
2062 tANI_U8 mgmtDpuDescIndx;
2063
2064 /* IGTK DPU signature */
2065 tANI_U8 mgmtDpuSignature;
2066
2067 /* Station Index for BSS entry*/
2068 tANI_U8 bssStaIdx;
2069
2070 /* Self station index for this BSS */
2071 tANI_U8 bssSelfStaIdx;
2072
2073 /* Bcast station for buffering bcast frames in AP role */
2074 tANI_U8 bssBcastStaIdx;
2075
2076 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2077 tSirMacAddr staMac;
2078
2079 /*HAL fills in the tx power used for mgmt frames in this field. */
2080 tANI_S8 txMgmtPower;
2081
2082} tConfigBssRspParams, * tpConfigBssRspParams;
2083
2084typedef PACKED_PRE struct PACKED_POST
2085{
2086 tHalMsgHeader header;
2087 tConfigBssRspParams configBssRspParams;
2088} tConfigBssRspMsg, *tpConfigBssRspMsg;
2089
2090/*---------------------------------------------------------------------------
2091 WLAN_HAL_DELETE_BSS_REQ
2092---------------------------------------------------------------------------*/
2093
2094typedef PACKED_PRE struct PACKED_POST
2095{
2096 /* BSS index to be deleted */
2097 tANI_U8 bssIdx;
2098
2099} tDeleteBssParams, *tpDeleteBssParams;
2100
2101typedef PACKED_PRE struct PACKED_POST
2102{
2103 tHalMsgHeader header;
2104 tDeleteBssParams deleteBssParams;
2105} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2106
2107/*---------------------------------------------------------------------------
2108 WLAN_HAL_DELETE_BSS_RSP
2109---------------------------------------------------------------------------*/
2110
2111typedef PACKED_PRE struct PACKED_POST
2112{
2113 /* Success or Failure */
2114 tANI_U32 status;
2115
2116 /* BSS index that has been deleted */
2117 tANI_U8 bssIdx;
2118
2119} tDeleteBssRspParams, *tpDeleteBssRspParams;
2120
2121typedef PACKED_PRE struct PACKED_POST
2122{
2123 tHalMsgHeader header;
2124 tDeleteBssRspParams deleteBssRspParams;
2125} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2126
2127/*---------------------------------------------------------------------------
2128 WLAN_HAL_JOIN_REQ
2129---------------------------------------------------------------------------*/
2130
2131typedef PACKED_PRE struct PACKED_POST
2132{
2133 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002134 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002135
2136 /*Indicates the channel to switch to.*/
2137 tANI_U8 ucChannel;
2138
2139 /* Self STA MAC */
2140 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002141
Jeff Johnson295189b2012-06-20 16:38:30 -07002142 /*Local power constraint*/
2143 tANI_U8 ucLocalPowerConstraint;
2144
2145 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002146 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002147
2148 /*link State*/
2149 tSirLinkState linkState;
2150
2151 /* Max TX power */
2152 tANI_S8 maxTxPower;
2153
2154} tHalJoinReqParams, *tpHalJoinReqParams;
2155
2156typedef PACKED_PRE struct PACKED_POST
2157{
2158 tHalMsgHeader header;
2159 tHalJoinReqParams joinReqParams;
2160} tHalJoinReqMsg, *tpHalJoinReqMsg;
2161
2162/*---------------------------------------------------------------------------
2163 WLAN_HAL_JOIN_RSP
2164---------------------------------------------------------------------------*/
2165
2166typedef PACKED_PRE struct PACKED_POST
2167{
2168 /*success or failure */
2169 tANI_U32 status;
2170
2171 /* HAL fills in the tx power used for mgmt frames in this field */
2172 tPowerdBm txMgmtPower;
2173
2174}tHalJoinRspParams, *tpHalJoinRspParams;
2175
2176typedef PACKED_PRE struct PACKED_POST
2177{
2178 tHalMsgHeader header;
2179 tHalJoinRspParams joinRspParams;
2180}tHalJoinRspMsg, *tpHalJoinRspMsg;
2181
2182/*---------------------------------------------------------------------------
2183 WLAN_HAL_POST_ASSOC_REQ
2184---------------------------------------------------------------------------*/
2185
2186typedef PACKED_PRE struct PACKED_POST
2187{
2188 tConfigStaParams configStaParams;
2189 tConfigBssParams configBssParams;
2190} tPostAssocReqParams, *tpPostAssocReqParams;
2191
2192typedef PACKED_PRE struct PACKED_POST
2193{
2194 tHalMsgHeader header;
2195 tPostAssocReqParams postAssocReqParams;
2196} tPostAssocReqMsg, *tpPostAssocReqMsg;
2197
2198/*---------------------------------------------------------------------------
2199 WLAN_HAL_POST_ASSOC_RSP
2200---------------------------------------------------------------------------*/
2201
2202typedef PACKED_PRE struct PACKED_POST
2203{
2204 tConfigStaRspParams configStaRspParams;
2205 tConfigBssRspParams configBssRspParams;
2206} tPostAssocRspParams, *tpPostAssocRspParams;
2207
2208typedef PACKED_PRE struct PACKED_POST
2209{
2210 tHalMsgHeader header;
2211 tPostAssocRspParams postAssocRspParams;
2212} tPostAssocRspMsg, *tpPostAssocRspMsg;
2213
2214/*---------------------------------------------------------------------------
2215 WLAN_HAL_SET_BSSKEY_REQ
2216---------------------------------------------------------------------------*/
2217
2218/*
2219 * This is used by PE to create a set of WEP keys for a given BSS.
2220 */
2221typedef PACKED_PRE struct PACKED_POST
2222{
2223 /*BSS Index of the BSS*/
2224 tANI_U8 bssIdx;
2225
2226 /*Encryption Type used with peer*/
2227 tAniEdType encType;
2228
2229 /*Number of keys*/
2230 tANI_U8 numKeys;
2231
2232 /*Array of keys.*/
2233 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002234
Jeff Johnson295189b2012-06-20 16:38:30 -07002235 /*Control for Replay Count, 1= Single TID based replay count on Tx
2236 0 = Per TID based replay count on TX */
2237 tANI_U8 singleTidRc;
2238} tSetBssKeyParams, *tpSetBssKeyParams;
2239
2240typedef PACKED_PRE struct PACKED_POST
2241{
2242 tHalMsgHeader header;
2243 tSetBssKeyParams setBssKeyParams;
2244} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2245
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002246/* tagged version of set bss key */
2247typedef PACKED_PRE struct PACKED_POST
2248{
2249 tSetBssKeyReqMsg Msg;
2250 uint32 Tag;
2251} tSetBssKeyReqMsgTagged;
2252
Jeff Johnson295189b2012-06-20 16:38:30 -07002253/*---------------------------------------------------------------------------
2254 WLAN_HAL_SET_BSSKEY_RSP
2255---------------------------------------------------------------------------*/
2256typedef PACKED_PRE struct PACKED_POST
2257{
2258 /*success or failure */
2259 tANI_U32 status;
2260
2261} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2262
2263typedef PACKED_PRE struct PACKED_POST
2264{
2265 tHalMsgHeader header;
2266 tSetBssKeyRspParams setBssKeyRspParams;
2267} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2268
2269/*---------------------------------------------------------------------------
2270 WLAN_HAL_SET_STAKEY_REQ,
2271---------------------------------------------------------------------------*/
2272
2273/*
2274 * This is used by PE to configure the key information on a given station.
2275 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2276 * a preconfigured key from a BSS the station assoicated with; otherwise
2277 * a new key descriptor is created based on the key field.
2278 */
2279
2280typedef PACKED_PRE struct PACKED_POST
2281{
2282 tHalMsgHeader header;
2283 tSetStaKeyParams setStaKeyParams;
2284} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2285
2286/*---------------------------------------------------------------------------
2287 WLAN_HAL_SET_STAKEY_RSP,
2288---------------------------------------------------------------------------*/
2289typedef PACKED_PRE struct PACKED_POST
2290{
2291 /*success or failure */
2292 tANI_U32 status;
2293
2294} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2295
2296typedef PACKED_PRE struct PACKED_POST
2297{
2298 tHalMsgHeader header;
2299 tSetStaKeyRspParams setStaKeyRspParams;
2300} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2301
2302/*---------------------------------------------------------------------------
2303 WLAN_HAL_RMV_BSSKEY_REQ,
2304---------------------------------------------------------------------------*/
2305/*
2306 * This is used by PE to remove keys for a given BSS.
2307 */
2308typedef PACKED_PRE struct PACKED_POST
2309
2310{
2311 /*BSS Index of the BSS*/
2312 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002313
Jeff Johnson295189b2012-06-20 16:38:30 -07002314 /*Encryption Type used with peer*/
2315 tAniEdType encType;
2316
2317 /*Key Id*/
2318 tANI_U8 keyId;
2319
2320 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2321 tAniWepType wepType;
2322
2323} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2324
2325typedef PACKED_PRE struct PACKED_POST
2326{
2327 tHalMsgHeader header;
2328 tRemoveBssKeyParams removeBssKeyParams;
2329} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2330
2331/*---------------------------------------------------------------------------
2332 WLAN_HAL_RMV_BSSKEY_RSP,
2333---------------------------------------------------------------------------*/
2334typedef PACKED_PRE struct PACKED_POST
2335{
2336 /*success or failure */
2337 tANI_U32 status;
2338
2339} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2340
2341typedef PACKED_PRE struct PACKED_POST
2342{
2343 tHalMsgHeader header;
2344 tRemoveBssKeyRspParams removeBssKeyRspParams;
2345} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2346
2347/*---------------------------------------------------------------------------
2348 WLAN_HAL_RMV_STAKEY_REQ,
2349---------------------------------------------------------------------------*/
2350/*
2351 * This is used by PE to Remove the key information on a given station.
2352 */
2353typedef PACKED_PRE struct PACKED_POST
2354{
2355 /*STA Index*/
2356 tANI_U16 staIdx;
2357
2358 /*Encryption Type used with peer*/
2359 tAniEdType encType;
2360
2361 /*Key Id*/
2362 tANI_U8 keyId;
2363
2364 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2365 the same key is used for both broadcast and unicast.*/
2366 tANI_BOOLEAN unicast;
2367
2368} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2369
2370typedef PACKED_PRE struct PACKED_POST
2371{
2372 tHalMsgHeader header;
2373 tRemoveStaKeyParams removeStaKeyParams;
2374} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2375
2376/*---------------------------------------------------------------------------
2377 WLAN_HAL_RMV_STAKEY_RSP,
2378---------------------------------------------------------------------------*/
2379typedef PACKED_PRE struct PACKED_POST
2380{
2381 /*success or failure */
2382 tANI_U32 status;
2383} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2384
2385typedef PACKED_PRE struct PACKED_POST
2386{
2387 tHalMsgHeader header;
2388 tRemoveStaKeyRspParams removeStaKeyRspParams;
2389} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2390
Jeff Johnsone7245742012-09-05 17:12:55 -07002391#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002392
Jeff Johnsone7245742012-09-05 17:12:55 -07002393#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002394#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002395#endif
2396
2397#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002398#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002399#endif
2400
2401/*-------------------------------------------------------------------------
2402WLAN_HAL_START_OEM_DATA_REQ
2403--------------------------------------------------------------------------*/
2404typedef PACKED_PRE struct PACKED_POST
2405{
2406 tANI_U32 status;
2407 tSirMacAddr selfMacAddr;
2408 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2409} tStartOemDataReqParams, *tpStartOemDataReqParams;
2410
2411typedef PACKED_PRE struct PACKED_POST
2412{
2413 tHalMsgHeader header;
2414 tStartOemDataReqParams startOemDataReqParams;
2415} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2416
2417/*-------------------------------------------------------------------------
2418WLAN_HAL_START_OEM_DATA_RSP
2419--------------------------------------------------------------------------*/
2420
2421typedef PACKED_PRE struct PACKED_POST
2422{
2423 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2424} tStartOemDataRspParams, *tpStartOemDataRspParams;
2425
2426typedef PACKED_PRE struct PACKED_POST
2427{
2428 tHalMsgHeader header;
2429 tStartOemDataRspParams startOemDataRspParams;
2430} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2431
2432#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002433
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002434/*---------------------------------------------------------------------------
2435WLAN_HAL_CH_SWITCH_V1_REQ
2436---------------------------------------------------------------------------*/
Jeff Johnson295189b2012-06-20 16:38:30 -07002437
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002438typedef PACKED_PRE struct PACKED_POST
2439{
2440 /* Channel number */
2441 tANI_U8 channelNumber;
2442
2443 /* Local power constraint */
2444 tANI_U8 localPowerConstraint;
2445
2446 /*Secondary channel offset */
2447 ePhyChanBondState secondaryChannelOffset;
2448
2449 //HAL fills in the tx power used for mgmt frames in this field.
2450 tPowerdBm txMgmtPower;
2451
2452 /* Max TX power */
2453 tPowerdBm maxTxPower;
2454
2455 /* Self STA MAC */
2456 tSirMacAddr selfStaMacAddr;
2457
2458 /*VO WIFI comment: BSSID needed to identify session. As the request has
2459 * power constraints, this should be applied only to that session
2460 * Since MTU timing and EDCA are sessionized, this struct needs to be
2461 * sessionized and bssid needs to be out of the VOWifi feature flag
2462 * V IMP: Keep bssId field at the end of this msg. It is used to
Amar Singhalb41c45b2014-03-21 14:44:14 -07002463 * mantain backward compatbility
2464 * by way of ignoring if using new host/old FW or old host/new FW since
2465 * it is at the end of this struct
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002466 */
2467 tSirMacAddr bssId;
2468
2469 /* Source of Channel Switch */
2470 eHalChanSwitchSource channelSwitchSrc;
Amar Singhalb41c45b2014-03-21 14:44:14 -07002471
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002472} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
2473
2474typedef PACKED_PRE struct PACKED_POST
2475{
2476 tHalMsgHeader header;
2477 tSwitchChannelParams_V1 switchChannelParams_V1;
2478} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
2479
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08002480/*---------------------------------------------------------------------------
2481WLAN_HAL_CH_SWITCH_V1_RSP
2482---------------------------------------------------------------------------*/
2483
2484typedef PACKED_PRE struct PACKED_POST
2485{
2486 /* Status */
2487 tANI_U32 status;
2488
2489 /* Channel number - same as in request*/
2490 tANI_U8 channelNumber;
2491
2492 /* HAL fills in the tx power used for mgmt frames in this field */
2493 tPowerdBm txMgmtPower;
2494
2495 /* BSSID needed to identify session - same as in request*/
2496 tSirMacAddr bssId;
2497
2498 /* Source of Channel Switch */
2499 eHalChanSwitchSource channelSwitchSrc;
2500
2501} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
2502
2503typedef PACKED_PRE struct PACKED_POST
2504{
2505 tHalMsgHeader header;
2506 tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
2507} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07002508
2509/*---------------------------------------------------------------------------
2510WLAN_HAL_CH_SWITCH_REQ
2511---------------------------------------------------------------------------*/
2512
2513typedef PACKED_PRE struct PACKED_POST
2514{
2515 /* Channel number */
2516 tANI_U8 channelNumber;
2517
2518 /* Local power constraint */
2519 tANI_U8 localPowerConstraint;
2520
2521 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002522 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002523
2524 //HAL fills in the tx power used for mgmt frames in this field.
2525 tPowerdBm txMgmtPower;
2526
2527 /* Max TX power */
2528 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002529
Jeff Johnson295189b2012-06-20 16:38:30 -07002530 /* Self STA MAC */
2531 tSirMacAddr selfStaMacAddr;
2532
2533 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2534 this should be applied only to that session*/
2535 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2536 * bssid needs to be out of the VOWifi feature flag */
2537 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2538 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2539 */
2540 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002541
Jeff Johnson295189b2012-06-20 16:38:30 -07002542}tSwitchChannelParams, *tpSwitchChannelParams;
2543
2544typedef PACKED_PRE struct PACKED_POST
2545{
2546 tHalMsgHeader header;
2547 tSwitchChannelParams switchChannelParams;
2548} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2549
2550/*---------------------------------------------------------------------------
2551WLAN_HAL_CH_SWITCH_RSP
2552---------------------------------------------------------------------------*/
2553
2554typedef PACKED_PRE struct PACKED_POST
2555{
2556 /* Status */
2557 tANI_U32 status;
2558
2559 /* Channel number - same as in request*/
2560 tANI_U8 channelNumber;
2561
2562 /* HAL fills in the tx power used for mgmt frames in this field */
2563 tPowerdBm txMgmtPower;
2564
2565 /* BSSID needed to identify session - same as in request*/
2566 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002567
Jeff Johnson295189b2012-06-20 16:38:30 -07002568}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2569
2570typedef PACKED_PRE struct PACKED_POST
2571{
2572 tHalMsgHeader header;
2573 tSwitchChannelRspParams switchChannelRspParams;
2574} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2575
2576/*---------------------------------------------------------------------------
2577WLAN_HAL_UPD_EDCA_PARAMS_REQ
2578---------------------------------------------------------------------------*/
2579
2580typedef PACKED_PRE struct PACKED_POST
2581{
2582 /*BSS Index*/
2583 tANI_U16 bssIdx;
2584
2585 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002586 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002587
2588 /* Background */
2589 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002590
Jeff Johnson295189b2012-06-20 16:38:30 -07002591 /* Video */
2592 tSirMacEdcaParamRecord acvi;
2593
2594 /* Voice */
2595 tSirMacEdcaParamRecord acvo;
2596
2597} tEdcaParams, *tpEdcaParams;
2598
2599typedef PACKED_PRE struct PACKED_POST
2600{
2601 tHalMsgHeader header;
2602 tEdcaParams edcaParams;
2603} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2604
2605/*---------------------------------------------------------------------------
2606WLAN_HAL_UPD_EDCA_PARAMS_RSP
2607---------------------------------------------------------------------------*/
2608typedef PACKED_PRE struct PACKED_POST
2609{
2610 /*success or failure */
2611 tANI_U32 status;
2612} tEdcaRspParams, *tpEdcaRspParams;
2613
2614typedef PACKED_PRE struct PACKED_POST
2615{
2616 tHalMsgHeader header;
2617 tEdcaRspParams edcaRspParams;
2618} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2619
2620
2621
2622/*---------------------------------------------------------------------------
2623 * WLAN_HAL_GET_STATS_REQ
2624 *--------------------------------------------------------------------------*/
2625typedef PACKED_PRE struct PACKED_POST
2626
2627{
2628 /* Index of STA to which the statistics */
2629 tANI_U16 staIdx;
2630
2631 /* Encryption mode */
2632 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002633
Jeff Johnson295189b2012-06-20 16:38:30 -07002634 /* status */
2635 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002636
Jeff Johnson295189b2012-06-20 16:38:30 -07002637 /* Statistics */
2638 tANI_U32 sendBlocks;
2639 tANI_U32 recvBlocks;
2640 tANI_U32 replays;
2641 tANI_U8 micErrorCnt;
2642 tANI_U32 protExclCnt;
2643 tANI_U16 formatErrCnt;
2644 tANI_U16 unDecryptableCnt;
2645 tANI_U32 decryptErrCnt;
2646 tANI_U32 decryptOkCnt;
2647} tDpuStatsParams, * tpDpuStatsParams;
2648
2649typedef PACKED_PRE struct PACKED_POST
2650{
2651 /* Valid STA Idx for per STA stats request */
2652 tANI_U32 staId;
2653
2654 /* Categories of stats requested as specified in eHalStatsMask*/
2655 tANI_U32 statsMask;
2656}tHalStatsReqParams, *tpHalStatsReqParams;
2657
2658typedef PACKED_PRE struct PACKED_POST
2659{
2660 tHalMsgHeader header;
2661 tHalStatsReqParams statsReqParams;
2662} tHalStatsReqMsg, *tpHalStatsReqMsg;
2663
2664/*---------------------------------------------------------------------------
2665 * WLAN_HAL_GET_STATS_RSP
2666 *--------------------------------------------------------------------------*/
2667
2668typedef PACKED_PRE struct PACKED_POST
2669{
2670 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2671 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2672 // station successfully transmitted after more than one retransmission attempt
2673
Jeff Johnson32d95a32012-09-10 13:15:23 -07002674 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2675 //(with and without retries, including multi-cast, broadcast)
2676 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2677 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002678 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2679 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2680 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2681 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 -07002682 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2683 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 -07002684 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2685 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 -07002686 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2687 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002688 //to provide this.
2689}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2690
2691
2692// defines tx_rate_flags
2693typedef enum eTxRateInfo
2694{
2695 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2696 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2697 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2698 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07002699 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2700 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2701 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
2702 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
2703 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
2704 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
2705} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07002706
2707
2708typedef PACKED_PRE struct PACKED_POST
2709{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002710 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 -07002711 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002712 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 -07002713 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002714 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2715 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002716 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002717 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2718 //for eg: if it is 10.5dBm, the value would be 105
2719 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2720 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002721
Jeff Johnson32d95a32012-09-10 13:15:23 -07002722 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2723 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002724 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002725 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2726 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002727}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2728
2729typedef PACKED_PRE struct PACKED_POST
2730{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002731 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2732 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002733 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002734 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 -07002735 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002736 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 -07002737 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002738 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 -07002739 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002740 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 -07002741 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002742 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 -07002743 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002744 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 -07002745 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002746 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 -07002747 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002748 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 -07002749 //decrypted
2750 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2751
2752}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002753
Jeff Johnson295189b2012-06-20 16:38:30 -07002754typedef PACKED_PRE struct PACKED_POST
2755{
2756 tAniGlobalSecurityStats ucStats;
2757 tAniGlobalSecurityStats mcbcStats;
2758}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2759
2760typedef PACKED_PRE struct PACKED_POST
2761{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002762 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2763 //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 -07002764 //address 1 field
2765 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 -07002766 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 -07002767 //primary channel
2768 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 -07002769 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 -07002770 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002771 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2772 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002773 //decoded correctly
2774}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2775
2776typedef PACKED_PRE struct PACKED_POST
2777{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002778 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 -07002779 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002780 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2781 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 -07002782 //is transmitted
2783}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2784
2785typedef PACKED_PRE struct PACKED_POST
2786{
2787 /* Success or Failure */
2788 tANI_U32 status;
2789
2790 /* STA Idx */
2791 tANI_U32 staId;
2792
2793 /* Categories of STATS being returned as per eHalStatsMask*/
2794 tANI_U32 statsMask;
2795
2796 /* message type is same as the request type */
2797 tANI_U16 msgType;
2798
2799 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002800 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002801
2802} tHalStatsRspParams, *tpHalStatsRspParams;
2803
2804
2805
2806typedef PACKED_PRE struct PACKED_POST
2807{
2808 tHalMsgHeader header;
2809 tHalStatsRspParams statsRspParams;
2810} tHalStatsRspMsg, *tpHalStatsRspMsg;
2811
2812/*---------------------------------------------------------------------------
2813 * WLAN_HAL_SET_LINK_ST_REQ
2814 *--------------------------------------------------------------------------*/
2815typedef PACKED_PRE struct PACKED_POST
2816{
2817 tSirMacAddr bssid;
2818 tSirLinkState state;
2819 tSirMacAddr selfMacAddr;
2820} tLinkStateParams, *tpLinkStateParams;
2821
2822typedef PACKED_PRE struct PACKED_POST
2823{
2824 tHalMsgHeader header;
2825 tLinkStateParams linkStateParams;
2826} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2827
2828/*---------------------------------------------------------------------------
2829 * WLAN_HAL_SET_LINK_ST_RSP
2830 *--------------------------------------------------------------------------*/
2831
2832typedef PACKED_PRE struct PACKED_POST
2833{
2834 /*success or failure */
2835 tANI_U32 status;
2836} tLinkStateRspParams, *tpLinkStateRspParams;
2837
2838typedef PACKED_PRE struct PACKED_POST
2839{
2840 tHalMsgHeader header;
2841 tLinkStateRspParams linkStateRspParams;
2842} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2843
2844/*---------------------------------------------------------------------------
2845 * WLAN_HAL_ADD_TS_REQ
2846 *--------------------------------------------------------------------------*/
2847
2848/* TSPEC Params */
2849typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2850{
Jeff Johnson295189b2012-06-20 16:38:30 -07002851 tANI_U16 trafficType : 1;
2852 tANI_U16 tsid : 4;
2853 tANI_U16 direction : 2;
2854 tANI_U16 accessPolicy : 2;
2855 tANI_U16 aggregation : 1;
2856 tANI_U16 psb : 1;
2857 tANI_U16 userPrio : 3;
2858 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07002859} __ani_attr_packed tSirMacTSInfoTfc;
2860
2861/* Flag to schedule the traffic type */
2862typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2863{
Jeff Johnson295189b2012-06-20 16:38:30 -07002864 tANI_U8 schedule : 1;
2865 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07002866} __ani_attr_packed tSirMacTSInfoSch;
2867
2868/* Traffic and scheduling info */
2869typedef __ani_attr_pre_packed struct sSirMacTSInfo
2870{
2871 tSirMacTSInfoTfc traffic;
2872 tSirMacTSInfoSch schedule;
2873} __ani_attr_packed tSirMacTSInfo;
2874
2875/* Information elements */
2876typedef __ani_attr_pre_packed struct sSirMacTspecIE
2877{
2878 tANI_U8 type;
2879 tANI_U8 length;
2880 tSirMacTSInfo tsinfo;
2881 tANI_U16 nomMsduSz;
2882 tANI_U16 maxMsduSz;
2883 tANI_U32 minSvcInterval;
2884 tANI_U32 maxSvcInterval;
2885 tANI_U32 inactInterval;
2886 tANI_U32 suspendInterval;
2887 tANI_U32 svcStartTime;
2888 tANI_U32 minDataRate;
2889 tANI_U32 meanDataRate;
2890 tANI_U32 peakDataRate;
2891 tANI_U32 maxBurstSz;
2892 tANI_U32 delayBound;
2893 tANI_U32 minPhyRate;
2894 tANI_U16 surplusBw;
2895 tANI_U16 mediumTime;
2896}__ani_attr_packed tSirMacTspecIE;
2897
2898typedef PACKED_PRE struct PACKED_POST
2899{
2900 /* Station Index */
2901 tANI_U16 staIdx;
2902
2903 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2904 tANI_U16 tspecIdx;
2905
2906 /* To program TPE with required parameters */
2907 tSirMacTspecIE tspec;
2908
2909 /* U-APSD Flags: 1b per AC. Encoded as follows:
2910 b7 b6 b5 b4 b3 b2 b1 b0 =
2911 X X X X BE BK VI VO */
2912 tANI_U8 uAPSD;
2913
2914 /* These parameters are for all the access categories */
2915 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2916 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2917 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002918
Jeff Johnson295189b2012-06-20 16:38:30 -07002919} tAddTsParams, *tpAddTsParams;
2920
2921typedef PACKED_PRE struct PACKED_POST
2922{
2923 tHalMsgHeader header;
2924 tAddTsParams addTsParams;
2925} tAddTsReqMsg, *tpAddTsReqMsg;
2926
2927/*---------------------------------------------------------------------------
2928 * WLAN_HAL_ADD_TS_RSP
2929 *--------------------------------------------------------------------------*/
2930
2931typedef PACKED_PRE struct PACKED_POST
2932{
2933 /*success or failure */
2934 tANI_U32 status;
2935} tAddTsRspParams, *tpAddTsRspParams;
2936
2937typedef PACKED_PRE struct PACKED_POST
2938{
2939 tHalMsgHeader header;
2940 tAddTsRspParams addTsRspParams;
2941} tAddTsRspMsg, *tpAddTsRspMsg;
2942
2943
2944/*---------------------------------------------------------------------------
2945 * WLAN_HAL_DEL_TS_REQ
2946 *--------------------------------------------------------------------------*/
2947
2948typedef PACKED_PRE struct PACKED_POST
2949{
2950 /* Station Index */
2951 tANI_U16 staIdx;
2952
2953 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2954 tANI_U16 tspecIdx;
2955
2956 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002957 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002958
2959} tDelTsParams, *tpDelTsParams;
2960
2961typedef PACKED_PRE struct PACKED_POST
2962{
2963 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002964 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002965} tDelTsReqMsg, *tpDelTsReqMsg;
2966
2967/*---------------------------------------------------------------------------
2968 * WLAN_HAL_DEL_TS_RSP
2969 *--------------------------------------------------------------------------*/
2970
2971typedef PACKED_PRE struct PACKED_POST
2972{
2973 /*success or failure */
2974 tANI_U32 status;
2975} tDelTsRspParams, *tpDelTsRspParams;
2976
2977typedef PACKED_PRE struct PACKED_POST
2978{
2979 tHalMsgHeader header;
2980 tDelTsRspParams delTsRspParams;
2981} tDelTsRspMsg, *tpDelTsRspMsg;
2982
2983/* End of TSpec Parameters */
2984
2985/* Start of BLOCK ACK related Parameters */
2986
2987/*---------------------------------------------------------------------------
2988 * WLAN_HAL_ADD_BA_SESSION_REQ
2989 *--------------------------------------------------------------------------*/
2990
2991typedef PACKED_PRE struct PACKED_POST
2992{
2993 /* Station Index */
2994 tANI_U16 staIdx;
2995
2996 /* Peer MAC Address */
2997 tSirMacAddr peerMacAddr;
2998
2999 /* ADDBA Action Frame dialog token
3000 HAL will not interpret this object */
3001 tANI_U8 baDialogToken;
3002
3003 /* TID for which the BA is being setup
3004 This identifies the TC or TS of interest */
3005 tANI_U8 baTID;
3006
3007 /* 0 - Delayed BA (Not supported)
3008 1 - Immediate BA */
3009 tANI_U8 baPolicy;
3010
3011 /* Indicates the number of buffers for this TID (baTID)
3012 NOTE - This is the requested buffer size. When this
3013 is processed by HAL and subsequently by HDD, it is
3014 possible that HDD may change this buffer size. Any
3015 change in the buffer size should be noted by PE and
3016 advertized appropriately in the ADDBA response */
3017 tANI_U16 baBufferSize;
3018
3019 /* BA timeout in TU's 0 means no timeout will occur */
3020 tANI_U16 baTimeout;
3021
3022 /* b0..b3 - Fragment Number - Always set to 0
3023 b4..b15 - Starting Sequence Number of first MSDU
3024 for which this BA is setup */
3025 tANI_U16 baSSN;
3026
3027 /* ADDBA direction
3028 1 - Originator
3029 0 - Recipient */
3030 tANI_U8 baDirection;
3031} tAddBASessionParams, *tpAddBASessionParams;
3032
3033typedef PACKED_PRE struct PACKED_POST
3034{
3035 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003036 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003037}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
3038
3039/*---------------------------------------------------------------------------
3040 * WLAN_HAL_ADD_BA_SESSION_RSP
3041 *--------------------------------------------------------------------------*/
3042
3043typedef PACKED_PRE struct PACKED_POST
3044{
3045 /*success or failure */
3046 tANI_U32 status;
3047
3048 /* Dialog token */
3049 tANI_U8 baDialogToken;
3050
3051 /* TID for which the BA session has been setup */
3052 tANI_U8 baTID;
3053
3054 /* BA Buffer Size allocated for the current BA session */
3055 tANI_U8 baBufferSize;
3056
3057 tANI_U8 baSessionID;
3058
3059 /* Reordering Window buffer */
3060 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003061
Jeff Johnson295189b2012-06-20 16:38:30 -07003062 /*Station Index to id the sta */
3063 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003064
Jeff Johnson295189b2012-06-20 16:38:30 -07003065 /* Starting Sequence Number */
3066 tANI_U16 SSN;
3067} tAddBASessionRspParams, *tpAddBASessionRspParams;
3068
3069typedef PACKED_PRE struct PACKED_POST
3070{
3071 tHalMsgHeader header;
3072 tAddBASessionRspParams addBASessionRspParams;
3073} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
3074
3075/*---------------------------------------------------------------------------
3076 * WLAN_HAL_ADD_BA_REQ
3077 *--------------------------------------------------------------------------*/
3078
3079typedef PACKED_PRE struct PACKED_POST
3080{
3081 /* Session Id */
3082 tANI_U8 baSessionID;
3083
3084 /* Reorder Window Size */
3085 tANI_U8 winSize;
3086
3087#ifdef FEATURE_ON_CHIP_REORDERING
3088 tANI_BOOLEAN isReorderingDoneOnChip;
3089#endif
3090} tAddBAParams, *tpAddBAParams;
3091
3092typedef PACKED_PRE struct PACKED_POST
3093{
3094 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003095 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003096} tAddBAReqMsg, *tpAddBAReqMsg;
3097
3098
3099/*---------------------------------------------------------------------------
3100 * WLAN_HAL_ADD_BA_RSP
3101 *--------------------------------------------------------------------------*/
3102
3103typedef PACKED_PRE struct PACKED_POST
3104{
3105 /*success or failure */
3106 tANI_U32 status;
3107
3108 /* Dialog token */
3109 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003110
Jeff Johnson295189b2012-06-20 16:38:30 -07003111} tAddBARspParams, *tpAddBARspParams;
3112
3113typedef PACKED_PRE struct PACKED_POST
3114{
3115 tHalMsgHeader header;
3116 tAddBARspParams addBARspParams;
3117} tAddBARspMsg, *tpAddBARspMsg;
3118
3119
3120/*---------------------------------------------------------------------------
3121 * WLAN_HAL_TRIGGER_BA_REQ
3122 *--------------------------------------------------------------------------*/
3123
3124
3125typedef struct sAddBaInfo
3126{
3127 tANI_U16 fBaEnable : 1;
3128 tANI_U16 startingSeqNum: 12;
3129 tANI_U16 reserved : 3;
3130}tAddBaInfo, *tpAddBaInfo;
3131
3132typedef struct sTriggerBaRspCandidate
3133{
3134 tSirMacAddr staAddr;
3135 tAddBaInfo baInfo[STACFG_MAX_TC];
3136}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3137
3138typedef struct sTriggerBaCandidate
3139{
3140 tANI_U8 staIdx;
3141 tANI_U8 tidBitmap;
3142}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3143
3144typedef PACKED_PRE struct PACKED_POST
3145{
3146 /* Session Id */
3147 tANI_U8 baSessionID;
3148
Jeff Johnson32d95a32012-09-10 13:15:23 -07003149 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003150 * Candidate List(tTriggerBaCandidate)
3151 */
3152 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003153
Jeff Johnson295189b2012-06-20 16:38:30 -07003154} tTriggerBAParams, *tpTriggerBAParams;
3155
3156typedef PACKED_PRE struct PACKED_POST
3157{
3158 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003159 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003160} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3161
3162
3163/*---------------------------------------------------------------------------
3164 * WLAN_HAL_TRIGGER_BA_RSP
3165 *--------------------------------------------------------------------------*/
3166
3167typedef PACKED_PRE struct PACKED_POST
3168{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003169
Jeff Johnson295189b2012-06-20 16:38:30 -07003170 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003171 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003172
3173 /* success or failure */
3174 tANI_U32 status;
3175
Jeff Johnson32d95a32012-09-10 13:15:23 -07003176 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003177 * Rsp Candidate List(tTriggerRspBaCandidate)
3178 */
3179 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003180
Jeff Johnson295189b2012-06-20 16:38:30 -07003181
3182} tTriggerBARspParams, *tpTriggerBARspParams;
3183
3184typedef PACKED_PRE struct PACKED_POST
3185{
3186 tHalMsgHeader header;
3187 tTriggerBARspParams triggerBARspParams;
3188} tTriggerBARspMsg, *tpTriggerBARspMsg;
3189
3190/*---------------------------------------------------------------------------
3191 * WLAN_HAL_DEL_BA_REQ
3192 *--------------------------------------------------------------------------*/
3193
3194typedef PACKED_PRE struct PACKED_POST
3195{
3196 /* Station Index */
3197 tANI_U16 staIdx;
3198
3199 /* TID for which the BA session is being deleted */
3200 tANI_U8 baTID;
3201
3202 /* DELBA direction
3203 1 - Originator
3204 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003205 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003206} tDelBAParams, *tpDelBAParams;
3207
3208typedef PACKED_PRE struct PACKED_POST
3209{
3210 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003211 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003212} tDelBAReqMsg, *tpDelBAReqMsg;
3213
3214/*---------------------------------------------------------------------------
3215 * WLAN_HAL_DEL_BA_RSP
3216 *--------------------------------------------------------------------------*/
3217
3218typedef PACKED_PRE struct PACKED_POST
3219{
3220 /* success or failure */
3221 tANI_U32 status;
3222} tDelBARspParams, *tpDelBARspParams;
3223
3224typedef PACKED_PRE struct PACKED_POST
3225{
3226 tHalMsgHeader header;
3227 tDelBARspParams delBARspParams;
3228} tDelBARspMsg, *tpDelBARspMsg;
3229
3230
Jeff Johnson295189b2012-06-20 16:38:30 -07003231/*---------------------------------------------------------------------------
3232 * WLAN_HAL_TSM_STATS_REQ
3233 *--------------------------------------------------------------------------*/
3234typedef PACKED_PRE struct PACKED_POST
3235{
3236 /* Traffic Id */
3237 tANI_U8 tsmTID;
3238
3239 tSirMacAddr bssId;
3240} tTsmStatsParams, *tpTsmStatsParams;
3241
3242typedef PACKED_PRE struct PACKED_POST
3243{
3244 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003245 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003246} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3247
3248
3249/*---------------------------------------------------------------------------
3250 * WLAN_HAL_TSM_STATS_RSP
3251 *--------------------------------------------------------------------------*/
3252typedef PACKED_PRE struct PACKED_POST
3253{
3254 /*success or failure */
3255 tANI_U32 status;
3256
Jeff Johnson32d95a32012-09-10 13:15:23 -07003257 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003258 tANI_U16 UplinkPktQueueDly;
3259
Jeff Johnson32d95a32012-09-10 13:15:23 -07003260 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003261 tANI_U16 UplinkPktQueueDlyHist[4];
3262
Jeff Johnson32d95a32012-09-10 13:15:23 -07003263 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003264 tANI_U32 UplinkPktTxDly;
3265
Jeff Johnson32d95a32012-09-10 13:15:23 -07003266 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003267 tANI_U16 UplinkPktLoss;
3268
Jeff Johnson32d95a32012-09-10 13:15:23 -07003269 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003270 tANI_U16 UplinkPktCount;
3271
Jeff Johnson32d95a32012-09-10 13:15:23 -07003272 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003273 tANI_U8 RoamingCount;
3274
Jeff Johnson32d95a32012-09-10 13:15:23 -07003275 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003276 tANI_U16 RoamingDly;
3277} tTsmStatsRspParams, *tpTsmStatsRspParams;
3278
3279typedef PACKED_PRE struct PACKED_POST
3280{
3281 tHalMsgHeader header;
3282 tTsmStatsRspParams tsmStatsRspParams;
3283} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3284
3285
Jeff Johnson295189b2012-06-20 16:38:30 -07003286/*---------------------------------------------------------------------------
3287 * WLAN_HAL_SET_KEYDONE_MSG
3288 *--------------------------------------------------------------------------*/
3289
3290typedef PACKED_PRE struct PACKED_POST
3291{
3292 /*bssid of the keys */
3293 tANI_U8 bssidx;
3294 tANI_U8 encType;
3295} tSetKeyDoneParams, *tpSetKeyDoneParams;
3296
3297typedef PACKED_PRE struct PACKED_POST
3298{
3299 tHalMsgHeader header;
3300 tSetKeyDoneParams setKeyDoneParams;
3301} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3302
3303/*---------------------------------------------------------------------------
3304 * WLAN_HAL_DOWNLOAD_NV_REQ
3305 *--------------------------------------------------------------------------*/
3306typedef PACKED_PRE struct PACKED_POST
3307{
3308 /* Fragment sequence number of the NV Image. Note that NV Image might not
3309 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003310 * can hence choose to chop the NV blob into multiple fragments starting with
3311 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003312 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3313 * concatenated together by HAL without any padding bytes in between.*/
3314 tANI_U16 fragNumber;
3315
3316 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003317 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003318 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3319 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3320 tANI_U16 isLastFragment;
3321
3322 /* NV Image size (number of bytes) */
3323 tANI_U32 nvImgBufferSize;
3324
3325 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3326 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3327} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3328
3329typedef PACKED_PRE struct PACKED_POST
3330{
3331 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3332 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3333 tHalMsgHeader header;
3334 tHalNvImgDownloadReqParams nvImageReqParams;
3335} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3336
3337/*---------------------------------------------------------------------------
3338 * WLAN_HAL_DOWNLOAD_NV_RSP
3339 *--------------------------------------------------------------------------*/
3340typedef PACKED_PRE struct PACKED_POST
3341{
3342 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3343 * after each fragment */
3344 tANI_U32 status;
3345} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3346
3347typedef PACKED_PRE struct PACKED_POST
3348{
3349 tHalMsgHeader header;
3350 tHalNvImgDownloadRspParams nvImageRspParams;
3351} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3352
3353/*---------------------------------------------------------------------------
3354 * WLAN_HAL_STORE_NV_IND
3355 *--------------------------------------------------------------------------*/
3356typedef PACKED_PRE struct PACKED_POST
3357{
3358 /* NV Item */
3359 eNvTable tableID;
3360
3361 /* Size of NV Blob */
3362 tANI_U32 nvBlobSize;
3363
Jeff Johnson32d95a32012-09-10 13:15:23 -07003364 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003365 * NV blob i.e. uint8[nvBlobSize] */
3366} tHalNvStoreParams, *tpHalNvStoreParams;
3367
3368typedef PACKED_PRE struct PACKED_POST
3369{
3370 /* Note: The length specified in tHalNvStoreInd messages should be
3371 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3372 tHalMsgHeader header;
3373 tHalNvStoreParams nvStoreParams;
3374} tHalNvStoreInd, *tpHalNvStoreInd;
3375
3376/* End of Block Ack Related Parameters */
3377
3378/*---------------------------------------------------------------------------
3379 * WLAN_HAL_MIC_FAILURE_IND
3380 *--------------------------------------------------------------------------*/
3381
3382#define SIR_CIPHER_SEQ_CTR_SIZE 6
3383
3384typedef PACKED_PRE struct PACKED_POST
3385{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003386 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003387 tSirMacAddr taMacAddr; //transmitter address
3388 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003389 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003390 tANI_U8 IV1; // first byte of IV
3391 tANI_U8 keyId; // second byte of IV
3392 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3393 tSirMacAddr rxMacAddr; // receive address
3394} tSirMicFailureInfo, *tpSirMicFailureInfo;
3395
3396/* Definition for MIC failure indication
3397 MAC reports this each time a MIC failure occures on Rx TKIP packet
3398 */
3399typedef PACKED_PRE struct PACKED_POST
3400{
3401 tSirMacAddr bssId; // BSSID
3402 tSirMicFailureInfo info;
3403} tSirMicFailureInd, *tpSirMicFailureInd;
3404
3405typedef PACKED_PRE struct PACKED_POST
3406{
3407 tHalMsgHeader header;
3408 tSirMicFailureInd micFailureInd;
3409} tMicFailureIndMsg, *tpMicFailureIndMsg;
3410
Mohit Khanna4a70d262012-09-11 16:30:12 -07003411typedef PACKED_PRE struct PACKED_POST
3412{
3413 tANI_U16 opMode;
3414 tANI_U16 staId;
3415}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3416
3417typedef PACKED_PRE struct PACKED_POST
3418{
3419 tHalMsgHeader header;
3420 tUpdateVHTOpMode updateVhtOpMode;
3421} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3422
3423typedef PACKED_PRE struct PACKED_POST
3424{
3425 tANI_U32 status;
3426} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3427
3428typedef PACKED_PRE struct PACKED_POST
3429{
3430 tHalMsgHeader header;
3431 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3432} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3433
Jeff Johnson295189b2012-06-20 16:38:30 -07003434/*---------------------------------------------------------------------------
3435 * WLAN_HAL_UPDATE_BEACON_REQ
3436 *--------------------------------------------------------------------------*/
3437typedef PACKED_PRE struct PACKED_POST
3438{
3439
3440 tANI_U8 bssIdx;
3441
3442 //shortPreamble mode. HAL should update all the STA rates when it
3443 //receives this message
3444 tANI_U8 fShortPreamble;
3445 //short Slot time.
3446 tANI_U8 fShortSlotTime;
3447 //Beacon Interval
3448 tANI_U16 beaconInterval;
3449 //Protection related
3450 tANI_U8 llaCoexist;
3451 tANI_U8 llbCoexist;
3452 tANI_U8 llgCoexist;
3453 tANI_U8 ht20MhzCoexist;
3454 tANI_U8 llnNonGFCoexist;
3455 tANI_U8 fLsigTXOPProtectionFullSupport;
3456 tANI_U8 fRIFSMode;
3457
3458 tANI_U16 paramChangeBitmap;
3459}tUpdateBeaconParams, *tpUpdateBeaconParams;
3460
3461
3462typedef PACKED_PRE struct PACKED_POST
3463{
3464 tHalMsgHeader header;
3465 tUpdateBeaconParams updateBeaconParam;
3466} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3467
3468/*---------------------------------------------------------------------------
3469 * WLAN_HAL_UPDATE_BEACON_RSP
3470 *--------------------------------------------------------------------------*/
3471typedef PACKED_PRE struct PACKED_POST
3472{
3473 tANI_U32 status;
3474} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3475
3476typedef PACKED_PRE struct PACKED_POST
3477{
3478 tHalMsgHeader header;
3479 tUpdateBeaconRspParams updateBeaconRspParam;
3480} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3481
3482/*---------------------------------------------------------------------------
3483 * WLAN_HAL_SEND_BEACON_REQ
3484 *--------------------------------------------------------------------------*/
3485typedef PACKED_PRE struct PACKED_POST
3486{
3487 tANI_U32 beaconLength; //length of the template.
3488 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3489 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003490 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003491 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3492}tSendBeaconParams, *tpSendBeaconParams;
3493
3494
3495typedef PACKED_PRE struct PACKED_POST
3496{
3497 tHalMsgHeader header;
3498 tSendBeaconParams sendBeaconParam;
3499}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3500
3501/*---------------------------------------------------------------------------
3502 * WLAN_HAL_SEND_BEACON_RSP
3503 *--------------------------------------------------------------------------*/
3504typedef PACKED_PRE struct PACKED_POST
3505{
3506 tANI_U32 status;
3507} tSendBeaconRspParams, *tpSendBeaconRspParams;
3508
3509typedef PACKED_PRE struct PACKED_POST
3510{
3511 tHalMsgHeader header;
3512 tSendBeaconRspParams sendBeaconRspParam;
3513} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3514
3515#ifdef FEATURE_5GHZ_BAND
3516
3517/*---------------------------------------------------------------------------
3518 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3519 *--------------------------------------------------------------------------*/
3520typedef PACKED_PRE struct PACKED_POST
3521{
3522 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003523 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003524}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3525
3526
3527typedef PACKED_PRE struct PACKED_POST
3528{
3529 /* Link Parameters */
3530 tSirEnableRadarInfoType EnableRadarInfo;
3531}tEnableRadarReqParams, *tpEnableRadarReqParams;
3532
3533typedef PACKED_PRE struct PACKED_POST
3534{
3535 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003536 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003537}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3538
3539/*---------------------------------------------------------------------------
3540 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3541 *--------------------------------------------------------------------------*/
3542
3543typedef PACKED_PRE struct PACKED_POST
3544{
3545 /* Link Parameters */
3546 tSirMacAddr BSSID;
3547 /* success or failure */
3548 tANI_U32 status;
3549}tEnableRadarRspParams, *tpEnableRadarRspParams;
3550
3551typedef PACKED_PRE struct PACKED_POST
3552{
3553 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003554 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003555}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3556
3557/*---------------------------------------------------------------------------
3558 *WLAN_HAL_RADAR_DETECT_INTR_IND
3559 *--------------------------------------------------------------------------*/
3560
3561typedef PACKED_PRE struct PACKED_POST
3562{
3563 tANI_U8 radarDetChannel;
3564}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3565
3566typedef PACKED_PRE struct PACKED_POST
3567{
3568 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003569 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003570}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3571
3572/*---------------------------------------------------------------------------
3573 *WLAN_HAL_RADAR_DETECT_IND
3574 *-------------------------------------------------------------------------*/
3575typedef PACKED_PRE struct PACKED_POST
3576{
3577 /*channel number in which the RADAR detected*/
3578 tANI_U8 channelNumber;
3579
3580 /*RADAR pulse width*/
3581 tANI_U16 radarPulseWidth; // in usecond
3582
3583 /*Number of RADAR pulses */
3584 tANI_U16 numRadarPulse;
3585}tRadarDetectIndParams,*tpRadarDetectIndParams;
3586
3587typedef PACKED_PRE struct PACKED_POST
3588{
3589 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003590 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003591}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3592
3593
3594/*---------------------------------------------------------------------------
3595 *WLAN_HAL_GET_TPC_REPORT_REQ
3596 *-------------------------------------------------------------------------*/
3597typedef PACKED_PRE struct PACKED_POST
3598{
3599 tSirMacAddr sta;
3600 tANI_U8 dialogToken;
3601 tANI_U8 txpower;
3602}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3603
3604
3605typedef PACKED_PRE struct PACKED_POST
3606{
3607 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003608 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003609}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3610
3611/*---------------------------------------------------------------------------
3612 * WLAN_HAL_GET_TPC_REPORT_RSP
3613 *--------------------------------------------------------------------------*/
3614
3615typedef PACKED_PRE struct PACKED_POST
3616{
3617 /* success or failure */
3618 tANI_U32 status;
3619}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3620
3621typedef PACKED_PRE struct PACKED_POST
3622{
3623 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003624 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003625}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3626
3627#endif
3628
Jeff Johnson295189b2012-06-20 16:38:30 -07003629/*---------------------------------------------------------------------------
3630 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3631 *-------------------------------------------------------------------------*/
3632typedef PACKED_PRE struct PACKED_POST
3633{
3634 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3635 tANI_U32 probeRespTemplateLen;
3636 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3637 tSirMacAddr bssId;
3638
3639}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3640
3641typedef PACKED_PRE struct PACKED_POST
3642{
3643 tHalMsgHeader header;
3644 tSendProbeRespReqParams sendProbeRespReqParams ;
3645}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3646
3647/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003648 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003649 *--------------------------------------------------------------------------*/
3650
3651typedef PACKED_PRE struct PACKED_POST
3652{
3653 /* success or failure */
3654 tANI_U32 status;
3655}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3656
3657typedef PACKED_PRE struct PACKED_POST
3658{
3659 tHalMsgHeader header;
3660 tSendProbeRespRspParams sendProbeRespRspParams;
3661}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3662
3663
3664/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003665 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003666 *--------------------------------------------------------------------------*/
3667
3668typedef PACKED_PRE struct PACKED_POST
3669{
3670 /* success or failure */
3671 tANI_U32 status;
3672}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3673
3674typedef PACKED_PRE struct PACKED_POST
3675{
3676 tHalMsgHeader header;
3677 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3678}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3679
3680/*---------------------------------------------------------------------------
3681 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3682 *--------------------------------------------------------------------------*/
3683
3684typedef PACKED_PRE struct PACKED_POST
3685{
3686 tANI_U16 assocId;
3687 tANI_U16 staId;
3688 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3689 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003690 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003691 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003692
3693}tDeleteStaContextParams, *tpDeleteStaContextParams;
3694
3695
3696typedef PACKED_PRE struct PACKED_POST
3697{
3698 tHalMsgHeader header;
3699 tDeleteStaContextParams deleteStaContextParams;
3700}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3701
Anand Kumar012623a2013-01-11 17:00:00 -08003702typedef PACKED_PRE struct PACKED_POST
3703{
3704 tHalMsgHeader header;
3705 tANI_U8 assocId;
3706 tANI_U8 staIdx;
3707 tANI_U8 bssIdx;
3708 tANI_U8 uReasonCode;
3709 tANI_U32 uStatus;
Amar Singhalb41c45b2014-03-21 14:44:14 -07003710#ifdef WLAN_FEATURE_ROAM_OFFLOAD
3711 tANI_U8 staAddr[6];
3712 tANI_U8 bssId[6];
3713#endif
Anand Kumar012623a2013-01-11 17:00:00 -08003714} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003715
3716/*---------------------------------------------------------------------------
3717 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3718 *--------------------------------------------------------------------------*/
3719
3720typedef PACKED_PRE struct PACKED_POST
3721{
3722 tBtAmpEventType btAmpEventType;
3723
3724}tBtAmpEventParams, *tpBtAmpEventParams;
3725
3726
3727
3728typedef PACKED_PRE struct PACKED_POST
3729{
3730 tHalMsgHeader header;
3731 tBtAmpEventParams btAmpEventParams;
3732}tBtAmpEventMsg, *tpBtAmpEventMsg;
3733
3734/*---------------------------------------------------------------------------
3735*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3736*--------------------------------------------------------------------------*/
3737
3738typedef PACKED_PRE struct PACKED_POST
3739{
3740 /* success or failure */
3741 tANI_U32 status;
3742}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3743
3744typedef PACKED_PRE struct PACKED_POST
3745{
3746 tHalMsgHeader header;
3747 tBtAmpEventRspParams btAmpEventRspParams;
3748}tBtAmpEventRsp, *tpBtAmpEventRsp;
3749
3750
3751/*---------------------------------------------------------------------------
3752 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3753 *--------------------------------------------------------------------------*/
3754
3755typedef PACKED_PRE struct PACKED_POST
3756{
3757 // Station Index. originates from HAL
3758 tANI_U8 ucSTAId;
3759
3760 // TID for which the transmit queue is being flushed
3761 tANI_U8 ucTid;
3762
3763}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3764
3765
3766typedef PACKED_PRE struct PACKED_POST
3767{
3768 tHalMsgHeader header;
3769 tTlHalFlushAcParams tlHalFlushAcParam;
3770}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3771
3772/*---------------------------------------------------------------------------
3773*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3774*--------------------------------------------------------------------------*/
3775
3776typedef PACKED_PRE struct PACKED_POST
3777{
3778 // Station Index. originates from HAL
3779 tANI_U8 ucSTAId;
3780
3781 // TID for which the transmit queue is being flushed
3782 tANI_U8 ucTid;
3783
3784 /* success or failure */
3785 tANI_U32 status;
3786}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3787
3788typedef PACKED_PRE struct PACKED_POST
3789{
3790 tHalMsgHeader header;
3791 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3792}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3793
3794/*---------------------------------------------------------------------------
3795 * WLAN_HAL_ENTER_IMPS_REQ
3796 *--------------------------------------------------------------------------*/
3797typedef PACKED_PRE struct PACKED_POST
3798{
3799 tHalMsgHeader header;
3800} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3801
3802/*---------------------------------------------------------------------------
3803 * WLAN_HAL_EXIT_IMPS_REQ
3804 *--------------------------------------------------------------------------*/
3805typedef PACKED_PRE struct PACKED_POST
3806{
3807 tHalMsgHeader header;
3808} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3809
3810/*---------------------------------------------------------------------------
3811 * WLAN_HAL_ENTER_BMPS_REQ
3812 *--------------------------------------------------------------------------*/
3813
3814typedef PACKED_PRE struct PACKED_POST
3815{
3816 tANI_U8 bssIdx;
3817 //TBTT value derived from the last beacon
3818#ifndef BUILD_QWPTTSTATIC
3819 tANI_U64 tbtt;
3820#endif
3821 tANI_U8 dtimCount;
3822 //DTIM period given to HAL during association may not be valid,
3823 //if association is based on ProbeRsp instead of beacon.
3824 tANI_U8 dtimPeriod;
3825
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08003826 // For ESE and 11R Roaming
Jeff Johnson295189b2012-06-20 16:38:30 -07003827 tANI_U32 rssiFilterPeriod;
3828 tANI_U32 numBeaconPerRssiAverage;
3829 tANI_U8 bRssiFilterEnable;
3830
3831} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3832
3833
3834typedef PACKED_PRE struct PACKED_POST
3835{
3836 tHalMsgHeader header;
3837 tHalEnterBmpsReqParams enterBmpsReq;
3838} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3839
3840/*---------------------------------------------------------------------------
3841 * WLAN_HAL_EXIT_BMPS_REQ
3842 *--------------------------------------------------------------------------*/
3843typedef PACKED_PRE struct PACKED_POST
3844{
3845 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003846 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003847} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3848
3849typedef PACKED_PRE struct PACKED_POST
3850{
3851 tHalMsgHeader header;
3852 tHalExitBmpsReqParams exitBmpsReqParams;
3853} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3854
3855/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003856 * WLAN_HAL_MISSED_BEACON_IND
3857 *--------------------------------------------------------------------------*/
3858typedef PACKED_PRE struct PACKED_POST
3859{
3860 tANI_U8 bssIdx;
3861} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3862
3863typedef PACKED_PRE struct PACKED_POST
3864{
3865 tHalMsgHeader header;
3866 tHalMissedBeaconIndParams missedBeaconIndParams;
3867} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3868
3869/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003870 * WLAN_HAL_ADD_BCN_FILTER_REQ
3871 *--------------------------------------------------------------------------*/
3872/* Beacon Filtering data structures */
3873typedef PACKED_PRE struct PACKED_POST
3874{
3875 tANI_U8 offset;
3876 tANI_U8 value;
3877 tANI_U8 bitMask;
3878 tANI_U8 ref;
3879} tEidByteInfo, *tpEidByteInfo;
3880
Jeff Johnson32d95a32012-09-10 13:15:23 -07003881typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003882{
3883 tANI_U16 capabilityInfo;
3884 tANI_U16 capabilityMask;
3885 tANI_U16 beaconInterval;
3886 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003887 tANI_U8 bssIdx;
3888 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003889} tBeaconFilterMsg, *tpBeaconFilterMsg;
3890
3891/* The above structure would be followed by multiple of below mentioned structure */
3892typedef PACKED_PRE struct PACKED_POST
3893{
3894 tANI_U8 elementId;
3895 tANI_U8 checkIePresence;
3896 tEidByteInfo byte;
3897} tBeaconFilterIe, *tpBeaconFilterIe;
3898
3899typedef PACKED_PRE struct PACKED_POST
3900{
3901 tHalMsgHeader header;
3902 tBeaconFilterMsg addBcnFilterParams;
3903} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3904
3905/*---------------------------------------------------------------------------
3906 * WLAN_HAL_REM_BCN_FILTER_REQ
3907 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003908typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003909{
3910 tANI_U8 ucIeCount;
3911 tANI_U8 ucRemIeId[1];
3912} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3913
3914typedef PACKED_PRE struct PACKED_POST
3915{
3916 tHalMsgHeader header;
3917 tRemBeaconFilterMsg remBcnFilterParams;
3918} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3919
3920/*---------------------------------------------------------------------------
3921 * WLAN_HAL_HOST_OFFLOAD_REQ
3922 *--------------------------------------------------------------------------*/
3923#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3924#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3925#define HAL_IPV6_NS_OFFLOAD 2
3926#define HAL_IPV6_ADDR_LEN 16
3927#define HAL_MAC_ADDR_LEN 6
3928#define HAL_OFFLOAD_DISABLE 0
3929#define HAL_OFFLOAD_ENABLE 1
3930#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003931#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003932#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003933#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003934
3935typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3936{
3937 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3938 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3939 //Only support 2 possible Network Advertisement IPv6 address
3940 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3941 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3942 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3943 tANI_U8 srcIPv6AddrValid : 1;
3944 tANI_U8 targetIPv6Addr1Valid : 1;
3945 tANI_U8 targetIPv6Addr2Valid : 1;
3946 tANI_U8 reserved1 : 5;
3947 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003948 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003949 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003950} tHalNSOffloadParams;
3951
3952typedef PACKED_PRE struct PACKED_POST
3953{
3954 tANI_U8 offloadType;
3955 tANI_U8 enableOrDisable;
3956 PACKED_PRE union PACKED_POST
3957 {
3958 tANI_U8 hostIpv4Addr [4];
3959 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3960 } params;
3961} tHalHostOffloadReq, *tpHalHostOffloadReq;
3962
3963typedef PACKED_PRE struct PACKED_POST
3964{
3965 tHalMsgHeader header;
3966 tHalHostOffloadReq hostOffloadParams;
3967 tHalNSOffloadParams nsOffloadParams;
3968} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3969
Leo Chang397deb72013-08-22 11:33:16 -07003970
3971#ifdef FEATURE_WLAN_LPHB
3972typedef enum
3973{
3974 WIFI_HB_SET_ENABLE = 0x0001,
3975 WIFI_HB_SET_TCP_PARAMS = 0x0002,
3976 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
3977 WIFI_HB_SET_UDP_PARAMS = 0x0004,
3978 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
3979 WIFI_HB_SET_NETWORK_INFO = 0x0006,
3980}tLowPowerHeartBeatCmdType ;
3981
3982#define MAX_FLITER_SIZE 64
3983/*---------------------------------------------------------------------------
3984 *FEATURE_WLAN_LPHB REQ
3985 *--------------------------------------------------------------------------*/
3986typedef PACKED_PRE struct PACKED_POST
3987{
3988 uint32 hostIpv4Addr;
3989 uint32 destIpv4Addr;
3990 uint16 hostPort;
3991 uint16 destPort;
3992 uint16 timeOutSec; // in seconds
3993 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07003994 uint16 timePeriodSec; // in seconds
3995 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07003996} tlowPowerHeartBeatParamsTcpStruct;
3997
3998typedef PACKED_PRE struct PACKED_POST
3999{
4000 uint32 hostIpv4Addr;
4001 uint32 destIpv4Addr;
4002 uint16 hostPort;
4003 uint16 destPort;
4004 uint16 timePeriodSec;// in seconds
4005 uint16 timeOutSec; // in seconds
4006 tSirMacAddr gatewayMacAddr;
4007} tlowPowerHeartBeatParamsUdpStruct;
4008
4009typedef PACKED_PRE struct PACKED_POST
4010{
4011 uint32 offset;
4012 uint32 filterLength;
4013 uint8 filter[MAX_FLITER_SIZE];
4014} tlowPowerHeartBeatFilterStruct;
4015
4016typedef PACKED_PRE struct PACKED_POST
4017{
4018 uint8 heartBeatEnable;
4019 uint8 heartBeatType; //TCP or UDP
4020} tlowPowerHeartBeatEnableStruct;
4021
4022typedef PACKED_PRE struct PACKED_POST
4023{
4024 uint8 dummy;
4025} tlowPowerHeartBeatNetworkInfoStruct;
4026
4027
4028typedef PACKED_PRE struct PACKED_POST
4029{
4030 uint8 sessionIdx;
4031 uint16 lowPowerHeartBeatCmdType;
4032 PACKED_PRE union PACKED_PRO
4033 {
4034 tlowPowerHeartBeatEnableStruct control;
4035 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
4036 tlowPowerHeartBeatParamsTcpStruct tcpParams;
4037 tlowPowerHeartBeatParamsUdpStruct udpParams;
4038 tlowPowerHeartBeatNetworkInfoStruct info;
4039 }options;
4040} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
4041
4042
4043typedef PACKED_PRE struct PACKED_POST
4044{
4045 tHalMsgHeader header;
4046 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
4047} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
4048
4049/*---------------------------------------------------------------------------
4050 * FEATURE_WLAN_LPHB RSP
4051 *--------------------------------------------------------------------------*/
4052
4053typedef PACKED_PRE struct PACKED_POST
4054{
4055 /* success or failure */
4056 uint8 sessionIdx;
4057 uint32 status;
4058 uint16 lowPowerHeartBeatCmdType;
4059}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
4060
4061typedef PACKED_PRE struct PACKED_POST
4062{
4063 tHalMsgHeader header;
4064 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
4065}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
4066
4067
4068/*---------------------------------------------------------------------------
4069 * FEATURE_WLAN_LPHB IND
4070 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07004071#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
4072#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
4073
4074#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
4075#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07004076#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07004077
Kumar Anandea78e792013-10-10 23:47:01 -07004078
4079#define WIFI_LPHB_PROTO_UDP 0x01
4080#define WIFI_LPHB_PROTO_TCP 0x02
4081
Leo Chang397deb72013-08-22 11:33:16 -07004082typedef PACKED_PRE struct PACKED_POST
4083{
4084 uint8 bssIdx;
4085 uint8 sessionIdx;
4086 uint8 protocolType; /*TCP or UDP*/
4087 uint8 eventReason;
4088
4089}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
4090
4091typedef PACKED_PRE struct PACKED_POST
4092{
4093 tHalMsgHeader header;
4094 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
4095}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
4096
4097#endif
krunal soni2a4728d2013-09-20 21:56:50 -07004098
4099#ifdef FEATURE_WLAN_BATCH_SCAN
4100
4101/*---------------------------------------------------------------------------
4102 * WLAN_HAL_BATCHSCAN_SET_REQ
4103 *--------------------------------------------------------------------------*/
4104typedef PACKED_PRE struct PACKED_POST
4105{
4106 /* Scan Frerquency - default to 30Sec*/
4107 tANI_U32 scanInterval;
4108 tANI_U32 numScan2Batch;
4109 tANI_U32 bestNetworks;
4110 tANI_U8 rfBand;
4111 tANI_U8 rtt;
4112} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
4113
4114typedef PACKED_PRE struct PACKED_POST
4115{
4116 tHalMsgHeader header;
4117 tHalBatchScanSetParams batchScanParams;
4118} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
4119
4120/*---------------------------------------------------------------------------
4121 * WLAN_HAL_BATCHSCAN_SET_RSP
4122 *--------------------------------------------------------------------------*/
4123typedef PACKED_PRE struct PACKED_POST
4124{
4125 tANI_U32 supportedMscan;
4126} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4127
4128typedef PACKED_PRE struct PACKED_POST
4129{
4130 tHalMsgHeader header;
4131 tHalBatchScanSetRspParam setBatchScanRspParam;
4132} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4133
4134/*---------------------------------------------------------------------------
4135* WLAN_HAL_BATCHSCAN_STOP_IND
4136*--------------------------------------------------------------------------*/
4137typedef PACKED_PRE struct PACKED_POST
4138{
4139 tANI_U32 param;
4140} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4141
4142typedef PACKED_PRE struct PACKED_POST
4143{
4144 tHalMsgHeader header;
4145 tHalBatchScanStopIndParam param;
4146} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4147
4148/*---------------------------------------------------------------------------
4149* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4150*--------------------------------------------------------------------------*/
4151typedef PACKED_PRE struct PACKED_POST
4152{
4153 tANI_U32 param;
4154} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4155
4156typedef PACKED_PRE struct PACKED_POST
4157{
4158 tHalMsgHeader header;
4159 tHalBatchScanTriggerResultParam param;
4160} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4161
4162/*---------------------------------------------------------------------------
4163 * WLAN_HAL_BATCHSCAN_GET_RSP
4164 *--------------------------------------------------------------------------*/
4165typedef PACKED_PRE struct PACKED_POST
4166{
4167 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004168 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004169 tANI_U8 ch; /* Channel */
4170 tANI_U8 rssi; /* RSSI or Level */
4171 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4172 tANI_U32 timestamp;
4173} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4174
4175typedef PACKED_PRE struct PACKED_POST
4176{
4177 tANI_U32 scanId; /* Scan List ID. */
4178 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4179 tANI_U32 numNetworksInScanList;
4180 /* Variable data ptr: Number of AP in Scan List */
4181 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4182 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4183 tANI_U8 scanList[1];
4184} tHalBatchScanList, *tpHalBatchScanList;
4185
4186typedef PACKED_PRE struct PACKED_POST
4187{
4188 tANI_U32 timestamp;
4189 tANI_U32 numScanLists;
4190 boolean isLastResult;
4191 /* Variable Data ptr: Number of Scan Lists*/
4192 /* following isLastResult is data of type tHalBatchScanList
4193 * of sizeof(tHalBatchScanList) * numScanLists*/
4194 tANI_U8 scanResults[1];
4195} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4196
4197typedef PACKED_PRE struct PACKED_POST
4198{
4199 tHalMsgHeader header;
4200 tHalBatchScanResultIndParam resultIndMsgParam;
4201} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4202
4203#endif
4204
Jeff Johnson295189b2012-06-20 16:38:30 -07004205/*---------------------------------------------------------------------------
4206 * WLAN_HAL_KEEP_ALIVE_REQ
4207 *--------------------------------------------------------------------------*/
4208/* Packet Types. */
4209#define HAL_KEEP_ALIVE_NULL_PKT 1
4210#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4211
4212/* Enable or disable keep alive */
4213#define HAL_KEEP_ALIVE_DISABLE 0
4214#define HAL_KEEP_ALIVE_ENABLE 1
4215
4216/* Keep Alive request. */
4217typedef PACKED_PRE struct PACKED_POST
4218{
4219 tANI_U8 packetType;
4220 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004221 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004222 tHalIpv4Addr destIpv4Addr;
4223 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004224 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004225} tHalKeepAliveReq, *tpHalKeepAliveReq;
4226
4227typedef PACKED_PRE struct PACKED_POST
4228{
4229 tHalMsgHeader header;
4230 tHalKeepAliveReq KeepAliveParams;
4231} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4232
4233/*---------------------------------------------------------------------------
4234 * WLAN_HAL_SET_RSSI_THRESH_REQ
4235 *--------------------------------------------------------------------------*/
4236typedef PACKED_PRE struct PACKED_POST
4237{
4238 tANI_S8 ucRssiThreshold1 : 8;
4239 tANI_S8 ucRssiThreshold2 : 8;
4240 tANI_S8 ucRssiThreshold3 : 8;
4241 tANI_U8 bRssiThres1PosNotify : 1;
4242 tANI_U8 bRssiThres1NegNotify : 1;
4243 tANI_U8 bRssiThres2PosNotify : 1;
4244 tANI_U8 bRssiThres2NegNotify : 1;
4245 tANI_U8 bRssiThres3PosNotify : 1;
4246 tANI_U8 bRssiThres3NegNotify : 1;
4247 tANI_U8 bReserved10 : 2;
4248} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004249
Jeff Johnson295189b2012-06-20 16:38:30 -07004250typedef PACKED_PRE struct PACKED_POST
4251{
4252 tHalMsgHeader header;
4253 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004254} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004255
4256/*---------------------------------------------------------------------------
4257 * WLAN_HAL_ENTER_UAPSD_REQ
4258 *--------------------------------------------------------------------------*/
4259typedef PACKED_PRE struct PACKED_POST
4260{
4261 tANI_U8 bkDeliveryEnabled:1;
4262 tANI_U8 beDeliveryEnabled:1;
4263 tANI_U8 viDeliveryEnabled:1;
4264 tANI_U8 voDeliveryEnabled:1;
4265 tANI_U8 bkTriggerEnabled:1;
4266 tANI_U8 beTriggerEnabled:1;
4267 tANI_U8 viTriggerEnabled:1;
4268 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004269 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004270} tUapsdReqParams, *tpUapsdReqParams;
4271
4272typedef PACKED_PRE struct PACKED_POST
4273{
4274 tHalMsgHeader header;
4275 tUapsdReqParams enterUapsdParams;
4276} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4277
4278/*---------------------------------------------------------------------------
4279 * WLAN_HAL_EXIT_UAPSD_REQ
4280 *--------------------------------------------------------------------------*/
4281typedef PACKED_PRE struct PACKED_POST
4282{
4283 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004284 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004285} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4286
Kumar Anandea78e792013-10-10 23:47:01 -07004287#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4288#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004289/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004290 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4291 *--------------------------------------------------------------------------*/
4292typedef PACKED_PRE struct PACKED_POST
4293{
4294 tANI_U32 selfStaIdx:8;
4295 tANI_U32 ucPtrnId:8; // Pattern ID
4296 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4297 tANI_U32 uPtrnIntervalMs; // In msec
4298 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4299} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4300
4301typedef PACKED_PRE struct PACKED_POST
4302{
4303 tHalMsgHeader header;
4304 tHalAddPeriodicTxPtrn ptrnParams;
4305} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4306
4307/*---------------------------------------------------------------------------
4308 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4309 *--------------------------------------------------------------------------*/
4310typedef PACKED_PRE struct PACKED_POST
4311{
4312 tANI_U32 selfStaIdx:8;
4313 tANI_U32 rsvd:24;
4314 /* Bitmap of pattern IDs that needs to be deleted */
4315 tANI_U32 uPatternIdBitmap;
4316} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4317
4318typedef PACKED_PRE struct PACKED_POST
4319{
4320 tHalMsgHeader header;
4321 tHalDelPeriodicTxPtrn ptrnParams;
4322} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4323
4324/*---------------------------------------------------------------------------
4325 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4326 *--------------------------------------------------------------------------*/
4327typedef PACKED_PRE struct PACKED_POST
4328{
4329 /* Type of Failure indication */
4330 tANI_U32 bssIdx:8;
4331 tANI_U32 selfStaIdx:8;
4332 tANI_U32 rsvd:16;
4333 tANI_U32 status;
4334 tANI_U32 patternIdBitmap;
4335} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4336
4337typedef PACKED_PRE struct PACKED_POST
4338{
4339 tHalMsgHeader header;
4340 tHalPeriodicTxPtrnFwInd fwIndParams;
4341} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4342
4343/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004344 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4345 *--------------------------------------------------------------------------*/
4346#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4347#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4348
4349typedef PACKED_PRE struct PACKED_POST
4350{
4351 tANI_U8 ucPatternId; // Pattern ID
4352 // Pattern byte offset from beginning of the 802.11 packet to start of the
4353 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07004354 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004355 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4356 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4357 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4358 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4359 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4360 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004361 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004362} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4363
4364typedef PACKED_PRE struct PACKED_POST
4365{
4366 tHalMsgHeader header;
4367 tHalWowlAddBcastPtrn ptrnParams;
4368} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004369
Jeff Johnsone7245742012-09-05 17:12:55 -07004370
4371
Jeff Johnson295189b2012-06-20 16:38:30 -07004372/*---------------------------------------------------------------------------
4373 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4374 *--------------------------------------------------------------------------*/
4375typedef PACKED_PRE struct PACKED_POST
4376{
4377 /* Pattern ID of the wakeup pattern to be deleted */
4378 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004379 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004380} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4381
4382typedef PACKED_PRE struct PACKED_POST
4383{
4384 tHalMsgHeader header;
4385 tHalWowlDelBcastPtrn ptrnParams;
4386} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4387
4388/*---------------------------------------------------------------------------
4389 * WLAN_HAL_ENTER_WOWL_REQ
4390 *--------------------------------------------------------------------------*/
4391typedef PACKED_PRE struct PACKED_POST
4392{
4393 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004394 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004395
4396 /* Magic pattern */
4397 tSirMacAddr magicPtrn;
4398
Jeff Johnson32d95a32012-09-10 13:15:23 -07004399 /* Enables/disables packet pattern filtering in firmware.
4400 Enabling this flag enables broadcast pattern matching
4401 in Firmware. If unicast pattern matching is also desired,
4402 ucUcastPatternFilteringEnable flag must be set tot true
4403 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004404 */
4405 tANI_U8 ucPatternFilteringEnable;
4406
Jeff Johnson32d95a32012-09-10 13:15:23 -07004407 /* Enables/disables unicast packet pattern filtering.
4408 This flag specifies whether we want to do pattern match
4409 on unicast packets as well and not just broadcast packets.
4410 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004411 (main controlling flag) is set to false
4412 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004413 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004414
Jeff Johnson32d95a32012-09-10 13:15:23 -07004415 /* This configuration is valid only when magicPktEnable=1.
4416 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004417 * Channel Switch Action Frame.
4418 */
4419 tANI_U8 ucWowChnlSwitchRcv;
4420
Jeff Johnson32d95a32012-09-10 13:15:23 -07004421 /* This configuration is valid only when magicPktEnable=1.
4422 * It requests hardware to wake up when it receives the
4423 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004424 */
4425 tANI_U8 ucWowDeauthRcv;
4426
Jeff Johnson32d95a32012-09-10 13:15:23 -07004427 /* This configuration is valid only when magicPktEnable=1.
4428 * It requests hardware to wake up when it receives the
4429 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004430 */
4431 tANI_U8 ucWowDisassocRcv;
4432
Jeff Johnson32d95a32012-09-10 13:15:23 -07004433 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004434 * It requests hardware to wake up when it has missed
4435 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07004436 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004437 */
4438 tANI_U8 ucWowMaxMissedBeacons;
4439
Jeff Johnson32d95a32012-09-10 13:15:23 -07004440 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004441 * This is a timeout value in units of microsec. It requests
4442 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07004443 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004444 */
4445 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004446
Jeff Johnson295189b2012-06-20 16:38:30 -07004447 /* This configuration directs the WoW packet filtering to look for EAP-ID
4448 * requests embedded in EAPOL frames and use this as a wake source.
4449 */
4450 tANI_U8 ucWoWEAPIDRequestEnable;
4451
4452 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4453 * requests and use this as a wake source.
4454 */
4455 tANI_U8 ucWoWEAPOL4WayEnable;
4456
4457 /* This configuration allows a host wakeup on an network scan offload match.
4458 */
4459 tANI_U8 ucWowNetScanOffloadMatch;
4460
4461 /* This configuration allows a host wakeup on any GTK rekeying error.
4462 */
4463 tANI_U8 ucWowGTKRekeyError;
4464
4465 /* This configuration allows a host wakeup on BSS connection loss.
4466 */
4467 tANI_U8 ucWoWBSSConnLoss;
4468
Jeff Johnsone7245742012-09-05 17:12:55 -07004469 tANI_U8 bssIdx;
4470
Jeff Johnson295189b2012-06-20 16:38:30 -07004471} tHalWowlEnterParams, *tpHalWowlEnterParams;
4472
4473typedef PACKED_PRE struct PACKED_POST
4474{
4475 tHalMsgHeader header;
4476 tHalWowlEnterParams enterWowlParams;
4477} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4478
4479/*---------------------------------------------------------------------------
4480 * WLAN_HAL_EXIT_WOWL_REQ
4481 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004482
Jeff Johnson295189b2012-06-20 16:38:30 -07004483typedef PACKED_PRE struct PACKED_POST
4484{
Jeff Johnsone7245742012-09-05 17:12:55 -07004485 tANI_U8 bssIdx;
4486
4487} tHalWowlExitParams, *tpHalWowlExitParams;
4488
4489typedef PACKED_PRE struct PACKED_POST
4490{
4491 tHalMsgHeader header;
4492 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004493} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4494
4495/*---------------------------------------------------------------------------
4496 * WLAN_HAL_GET_RSSI_REQ
4497 *--------------------------------------------------------------------------*/
4498typedef PACKED_PRE struct PACKED_POST
4499{
4500 tHalMsgHeader header;
4501} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4502
Anand Kumar012623a2013-01-11 17:00:00 -08004503typedef PACKED_PRE struct PACKED_POST
4504{
4505 /* Valid STA Idx for per STA stats request */
4506 tANI_U32 staId;
4507
4508}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4509
4510
4511/*---------------------------------------------------------------------------
4512 * WLAN_HAL_GET_ROAM_RSSI_REQ
4513 *--------------------------------------------------------------------------*/
4514typedef PACKED_PRE struct PACKED_POST
4515{
4516 tHalMsgHeader header;
4517 tHalRoamRssiReqParams roamRssiReqParams;
4518} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4519
4520
Jeff Johnson295189b2012-06-20 16:38:30 -07004521/*---------------------------------------------------------------------------
4522 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4523 *--------------------------------------------------------------------------*/
4524typedef PACKED_PRE struct PACKED_POST {
4525 tANI_U8 staidx; // STA index
4526 tANI_U8 ac; // Access Category
4527 tANI_U8 up; // User Priority
4528 tANI_U32 srvInterval; // Service Interval
4529 tANI_U32 susInterval; // Suspend Interval
4530 tANI_U32 delayInterval; // Delay Interval
4531} tUapsdInfo, tpUapsdInfo;
4532
4533typedef PACKED_PRE struct PACKED_POST
4534{
4535 tHalMsgHeader header;
4536 tUapsdInfo enableUapsdAcParams;
4537} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4538
4539/*---------------------------------------------------------------------------
4540 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4541 *--------------------------------------------------------------------------*/
4542typedef PACKED_PRE struct PACKED_POST {
4543 tANI_U8 setMcstBcstFilterSetting;
4544 tANI_U8 setMcstBcstFilter;
4545} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4546
4547typedef PACKED_PRE struct PACKED_POST
4548{
4549 tHalMsgHeader header;
4550 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4551} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4552
4553/*---------------------------------------------------------------------------
4554 * WLAN_HAL_ENTER_IMPS_RSP
4555 *--------------------------------------------------------------------------*/
4556typedef PACKED_PRE struct PACKED_POST
4557{
4558 /* success or failure */
4559 tANI_U32 status;
4560} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4561
4562typedef PACKED_PRE struct PACKED_POST
4563{
4564 tHalMsgHeader header;
4565 tHalEnterImpsRspParams enterImpsRspParams;
4566} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4567
4568/*---------------------------------------------------------------------------
4569 * WLAN_HAL_EXIT_IMPS_RSP
4570 *--------------------------------------------------------------------------*/
4571typedef PACKED_PRE struct PACKED_POST
4572{
4573 /* success or failure */
4574 tANI_U32 status;
4575} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4576
4577typedef PACKED_PRE struct PACKED_POST
4578{
4579 tHalMsgHeader header;
4580 tHalExitImpsRspParams exitImpsRspParams;
4581} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4582
4583/*---------------------------------------------------------------------------
4584 * WLAN_HAL_ENTER_BMPS_RSP
4585 *--------------------------------------------------------------------------*/
4586typedef PACKED_PRE struct PACKED_POST
4587{
4588 /* success or failure */
4589 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004590 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004591} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4592
4593typedef PACKED_PRE struct PACKED_POST
4594{
4595 tHalMsgHeader header;
4596 tHalEnterBmpsRspParams enterBmpsRspParams;
4597} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4598
4599/*---------------------------------------------------------------------------
4600 * WLAN_HAL_EXIT_BMPS_RSP
4601 *--------------------------------------------------------------------------*/
4602typedef PACKED_PRE struct PACKED_POST
4603{
4604 /* success or failure */
4605 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004606 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004607} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4608
4609typedef PACKED_PRE struct PACKED_POST
4610{
4611 tHalMsgHeader header;
4612 tHalExitBmpsRspParams exitBmpsRspParams;
4613} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4614
4615/*---------------------------------------------------------------------------
4616 * WLAN_HAL_ENTER_UAPSD_RSP
4617 *--------------------------------------------------------------------------*/
4618typedef PACKED_PRE struct PACKED_POST
4619{
4620 /* success or failure */
4621 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004622 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004623}tUapsdRspParams, *tpUapsdRspParams;
4624
4625typedef PACKED_PRE struct PACKED_POST
4626{
4627 tHalMsgHeader header;
4628 tUapsdRspParams enterUapsdRspParams;
4629} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4630
4631/*---------------------------------------------------------------------------
4632 * WLAN_HAL_EXIT_UAPSD_RSP
4633 *--------------------------------------------------------------------------*/
4634typedef PACKED_PRE struct PACKED_POST
4635{
4636 /* success or failure */
4637 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004638 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004639} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4640
4641typedef PACKED_PRE struct PACKED_POST
4642{
4643 tHalMsgHeader header;
4644 tHalExitUapsdRspParams exitUapsdRspParams;
4645} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4646
4647/*---------------------------------------------------------------------------
4648 * WLAN_HAL_RSSI_NOTIFICATION_IND
4649 *--------------------------------------------------------------------------*/
4650typedef PACKED_PRE struct PACKED_POST
4651{
4652 tANI_U32 bRssiThres1PosCross : 1;
4653 tANI_U32 bRssiThres1NegCross : 1;
4654 tANI_U32 bRssiThres2PosCross : 1;
4655 tANI_U32 bRssiThres2NegCross : 1;
4656 tANI_U32 bRssiThres3PosCross : 1;
4657 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004658 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004659 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07004660 tANI_U32 isBTCoexCompromise : 1;
4661 tANI_U32 bReserved : 9;
Amar Singhalb41c45b2014-03-21 14:44:14 -07004662 tANI_S8 refRssiThreshold1;
4663 tANI_S8 refRssiThreshold2;
4664 tANI_S8 refRssiThreshold3;
Jeff Johnson295189b2012-06-20 16:38:30 -07004665} tHalRSSINotification, *tpHalRSSINotification;
4666
4667typedef PACKED_PRE struct PACKED_POST
4668{
4669 tHalMsgHeader header;
4670 tHalRSSINotification rssiNotificationParams;
4671} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4672
4673/*---------------------------------------------------------------------------
4674 * WLAN_HAL_GET_RSSI_RSP
4675 *--------------------------------------------------------------------------*/
4676typedef PACKED_PRE struct PACKED_POST
4677{
4678 /* success or failure */
4679 tANI_U32 status;
4680 tANI_S8 rssi;
4681} tHalGetRssiParams, *tpHalGetRspParams;
4682
4683typedef PACKED_PRE struct PACKED_POST
4684{
4685 tHalMsgHeader header;
4686 tHalGetRssiParams rssiRspParams;
4687} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4688
4689/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004690 * WLAN_HAL_GET_ROAM_RSSI_RSP
4691 *--------------------------------------------------------------------------*/
4692typedef PACKED_PRE struct PACKED_POST
4693{
4694 /* success or failure */
4695 tANI_U32 status;
4696
4697 tANI_U8 staId;
4698 tANI_S8 rssi;
4699} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4700
4701typedef PACKED_PRE struct PACKED_POST
4702{
4703 tHalMsgHeader header;
4704 tHalGetRoamRssiParams roamRssiRspParams;
4705} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4706
4707/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004708 * WLAN_HAL_ENTER_WOWL_RSP
4709 *--------------------------------------------------------------------------*/
4710typedef PACKED_PRE struct PACKED_POST
4711{
4712 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004713 tANI_U32 status;
4714 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004715} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4716
4717typedef PACKED_PRE struct PACKED_POST
4718{
4719 tHalMsgHeader header;
4720 tHalEnterWowlRspParams enterWowlRspParams;
4721} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4722
4723/*---------------------------------------------------------------------------
4724 * WLAN_HAL_EXIT_WOWL_RSP
4725 *--------------------------------------------------------------------------*/
4726typedef PACKED_PRE struct PACKED_POST
4727{
4728 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004729 tANI_U32 status;
4730 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004731} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4732
4733typedef PACKED_PRE struct PACKED_POST
4734{
4735 tHalMsgHeader header;
4736 tHalExitWowlRspParams exitWowlRspParams;
4737} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4738
4739/*---------------------------------------------------------------------------
4740 * WLAN_HAL_ADD_BCN_FILTER_RSP
4741 *--------------------------------------------------------------------------*/
4742typedef PACKED_PRE struct PACKED_POST
4743{
4744 /* success or failure */
4745 tANI_U32 status;
4746} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4747
4748typedef PACKED_PRE struct PACKED_POST
4749{
4750 tHalMsgHeader header;
4751 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4752} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4753
4754/*---------------------------------------------------------------------------
4755 * WLAN_HAL_REM_BCN_FILTER_RSP
4756 *--------------------------------------------------------------------------*/
4757typedef PACKED_PRE struct PACKED_POST
4758{
4759 /* success or failure */
4760 tANI_U32 status;
4761} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4762
4763typedef PACKED_PRE struct PACKED_POST
4764{
4765 tHalMsgHeader header;
4766 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4767} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4768
4769/*---------------------------------------------------------------------------
4770 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4771 *--------------------------------------------------------------------------*/
4772typedef PACKED_PRE struct PACKED_POST
4773{
4774 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004775 tANI_U32 status;
4776 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004777} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4778
4779typedef PACKED_PRE struct PACKED_POST
4780{
4781 tHalMsgHeader header;
4782 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4783} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4784
4785/*---------------------------------------------------------------------------
4786 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4787 *--------------------------------------------------------------------------*/
4788typedef PACKED_PRE struct PACKED_POST
4789{
4790 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004791 tANI_U32 status;
4792 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004793} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4794
4795typedef PACKED_PRE struct PACKED_POST
4796{
4797 tHalMsgHeader header;
4798 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4799} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4800
4801/*---------------------------------------------------------------------------
4802 * WLAN_HAL_HOST_OFFLOAD_RSP
4803 *--------------------------------------------------------------------------*/
4804typedef PACKED_PRE struct PACKED_POST
4805{
4806 /* success or failure */
4807 tANI_U32 status;
4808} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4809
4810typedef PACKED_PRE struct PACKED_POST
4811{
4812 tHalMsgHeader header;
4813 tHalHostOffloadRspParams hostOffloadRspParams;
4814} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4815
4816/*---------------------------------------------------------------------------
4817 * WLAN_HAL_KEEP_ALIVE_RSP
4818 *--------------------------------------------------------------------------*/
4819typedef PACKED_PRE struct PACKED_POST
4820{
4821 /* success or failure */
4822 tANI_U32 status;
4823} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4824
4825typedef PACKED_PRE struct PACKED_POST
4826{
4827 tHalMsgHeader header;
4828 tHalKeepAliveRspParams keepAliveRspParams;
4829} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4830
4831/*---------------------------------------------------------------------------
4832 * WLAN_HAL_SET_RSSI_THRESH_RSP
4833 *--------------------------------------------------------------------------*/
4834typedef PACKED_PRE struct PACKED_POST
4835{
4836 /* success or failure */
4837 tANI_U32 status;
4838} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4839
4840typedef PACKED_PRE struct PACKED_POST
4841{
4842 tHalMsgHeader header;
4843 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4844} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4845
4846/*---------------------------------------------------------------------------
4847 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4848 *--------------------------------------------------------------------------*/
4849typedef PACKED_PRE struct PACKED_POST
4850{
4851 /* success or failure */
4852 tANI_U32 status;
4853} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4854
4855typedef PACKED_PRE struct PACKED_POST
4856{
4857 tHalMsgHeader header;
4858 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4859} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4860
4861/*---------------------------------------------------------------------------
4862 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4863 *--------------------------------------------------------------------------*/
4864typedef PACKED_PRE struct PACKED_POST
4865{
4866 /* success or failure */
4867 tANI_U32 status;
4868} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4869
4870typedef PACKED_PRE struct PACKED_POST
4871{
4872 tHalMsgHeader header;
4873 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4874} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4875
4876/*---------------------------------------------------------------------------
4877 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4878 *--------------------------------------------------------------------------*/
4879
4880typedef PACKED_PRE struct PACKED_POST
4881{
4882 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4883 //the request has power constraints, this should be applied only to that session
4884 tSirMacAddr selfStaMacAddr;
4885 //In request,
4886 //power == MaxTx power to be used.
4887 tPowerdBm power;
4888
4889}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4890
4891
4892typedef PACKED_PRE struct PACKED_POST
4893{
4894 tHalMsgHeader header;
4895 tSetMaxTxPwrParams setMaxTxPwrParams;
4896}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4897
4898/*---------------------------------------------------------------------------
4899*WLAN_HAL_SET_MAX_TX_POWER_RSP
4900*--------------------------------------------------------------------------*/
4901
4902typedef PACKED_PRE struct PACKED_POST
4903{
4904 //power == tx power used for management frames.
4905 tPowerdBm power;
4906
4907 /* success or failure */
4908 tANI_U32 status;
4909}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4910
4911typedef PACKED_PRE struct PACKED_POST
4912{
4913 tHalMsgHeader header;
4914 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4915}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4916
Kumar Anandea78e792013-10-10 23:47:01 -07004917
Jeff Johnson295189b2012-06-20 16:38:30 -07004918/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07004919 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
4920 *--------------------------------------------------------------------------*/
4921
4922/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
4923typedef enum
4924{
4925 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
4926 // For 2.4GHz or 5GHz bands
4927 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
4928 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
4929 // End of valid enums
4930 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
4931}tHalSetMaxTxPwrBandInfo;
4932
4933typedef PACKED_PRE struct PACKED_POST
4934{
4935 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07004936 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07004937}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
4938
Kumar Anandea78e792013-10-10 23:47:01 -07004939
Arif Hussain36fda162013-08-30 14:46:57 -07004940typedef PACKED_PRE struct PACKED_POST
4941{
4942 tHalMsgHeader header;
4943 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
4944}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
4945
4946/*---------------------------------------------------------------------------
4947*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
4948*--------------------------------------------------------------------------*/
4949
4950typedef PACKED_PRE struct PACKED_POST
4951{
4952 //power == tx power used for management frames.
4953 tPowerdBm power;
4954
4955 /* success or failure */
4956 tANI_U32 status;
4957}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
4958
4959typedef PACKED_PRE struct PACKED_POST
4960{
4961 tHalMsgHeader header;
4962 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
4963}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
4964
4965/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004966 *WLAN_HAL_SET_TX_POWER_REQ
4967 *--------------------------------------------------------------------------*/
4968
4969typedef PACKED_PRE struct PACKED_POST
4970{
4971 /* TX Power in milli watts */
4972 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004973 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004974}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4975
4976
4977typedef PACKED_PRE struct PACKED_POST
4978{
4979 tHalMsgHeader header;
4980 tSetTxPwrReqParams setTxPwrReqParams;
4981}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4982
4983/*---------------------------------------------------------------------------
4984*WLAN_HAL_SET_TX_POWER_RSP
4985*--------------------------------------------------------------------------*/
4986
4987typedef PACKED_PRE struct PACKED_POST
4988{
4989 /* success or failure */
4990 tANI_U32 status;
4991}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4992
4993typedef PACKED_PRE struct PACKED_POST
4994{
4995 tHalMsgHeader header;
4996 tSetTxPwrRspParams setTxPwrRspParams;
4997}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4998
4999/*---------------------------------------------------------------------------
5000 *WLAN_HAL_GET_TX_POWER_REQ
5001 *--------------------------------------------------------------------------*/
5002
5003typedef PACKED_PRE struct PACKED_POST
5004{
5005 tANI_U8 staId;
5006}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
5007
5008typedef PACKED_PRE struct PACKED_POST
5009{
5010 tHalMsgHeader header;
5011 tGetTxPwrReqParams getTxPwrReqParams;
5012}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
5013
5014/*---------------------------------------------------------------------------
5015*WLAN_HAL_GET_TX_POWER_RSP
5016*--------------------------------------------------------------------------*/
5017
5018typedef PACKED_PRE struct PACKED_POST
5019{
5020 /* success or failure */
5021 tANI_U32 status;
5022
5023 /* TX Power in milli watts */
5024 tANI_U32 txPower;
5025}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
5026
5027typedef PACKED_PRE struct PACKED_POST
5028{
5029 tHalMsgHeader header;
5030 tGetTxPwrRspParams getTxPwrRspParams;
5031}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
5032
5033#ifdef WLAN_FEATURE_P2P
5034/*---------------------------------------------------------------------------
5035 *WLAN_HAL_SET_P2P_GONOA_REQ
5036 *--------------------------------------------------------------------------*/
5037
5038typedef PACKED_PRE struct PACKED_POST
5039{
5040 tANI_U8 opp_ps;
5041 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005042 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07005043 tANI_U32 duration;
5044 tANI_U32 interval;
5045 tANI_U32 single_noa_duration;
5046 tANI_U8 psSelection;
5047}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
5048
5049
5050typedef PACKED_PRE struct PACKED_POST
5051{
5052 tHalMsgHeader header;
5053 tSetP2PGONOAParams setP2PGONOAParams;
5054}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
5055
5056/*---------------------------------------------------------------------------
5057*WLAN_HAL_SET_P2P_GONOA_RSP
5058*--------------------------------------------------------------------------*/
5059
5060typedef PACKED_PRE struct PACKED_POST
5061{
5062 /* success or failure */
5063 tANI_U32 status;
5064}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
5065
5066typedef PACKED_PRE struct PACKED_POST
5067{
5068 tHalMsgHeader header;
5069 tSetP2PGONOARspParams setP2PGONOARspParams;
5070}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
5071#endif
5072
5073/*---------------------------------------------------------------------------
5074 *WLAN_HAL_ADD_SELF_STA_REQ
5075 *--------------------------------------------------------------------------*/
5076
5077typedef PACKED_PRE struct PACKED_POST
5078{
5079 tSirMacAddr selfMacAddr;
5080 tANI_U32 status;
5081}tAddStaSelfParams, *tpAddStaSelfParams;
5082
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005083typedef PACKED_PRE struct PACKED_POST
5084{
Amar Singhalb41c45b2014-03-21 14:44:14 -07005085 tHalMsgHeader header;
5086 tAddStaSelfParams addStaSelfParams;
5087}tAddStaSelfReq, *tpAddStaSelfReq;
5088
5089/* This V1 structure carries additionally the IFACE PERSONA
5090 of the interface as compared to the legacy control
5091 message */
5092typedef PACKED_PRE struct PACKED_POST
5093{
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005094 tSirMacAddr selfMacAddr;
5095 tANI_U32 status;
5096 tHalIfacePersona iface_persona;
5097}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005098
5099typedef PACKED_PRE struct PACKED_POST
5100{
5101 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07005102 tAddStaSelfParams_V1 addStaSelfParams_V1;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005103}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07005104
5105/*---------------------------------------------------------------------------
5106*WLAN_HAL_ADD_SELF_STA_RSP
5107*--------------------------------------------------------------------------*/
5108
5109typedef PACKED_PRE struct PACKED_POST
5110{
5111 /* success or failure */
5112 tANI_U32 status;
5113
5114 /*Self STA Index */
5115 tANI_U8 selfStaIdx;
5116
5117 /* DPU Index (IGTK, PTK, GTK all same) */
5118 tANI_U8 dpuIdx;
5119
5120 /* DPU Signature */
5121 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005122
Jeff Johnson295189b2012-06-20 16:38:30 -07005123}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
5124
5125typedef PACKED_PRE struct PACKED_POST
5126{
5127 tHalMsgHeader header;
5128 tAddStaSelfRspParams addStaSelfRspParams;
5129}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
5130
5131
5132/*---------------------------------------------------------------------------
5133 WLAN_HAL_DEL_STA_SELF_REQ
5134---------------------------------------------------------------------------*/
5135
5136typedef PACKED_PRE struct PACKED_POST
5137{
5138 tSirMacAddr selfMacAddr;
5139
5140}tDelStaSelfParams, *tpDelStaSelfParams;
5141
5142typedef PACKED_PRE struct PACKED_POST
5143{
5144 tHalMsgHeader header;
5145 tDelStaSelfParams delStaSelfParams;
5146} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5147
5148
5149/*---------------------------------------------------------------------------
5150 WLAN_HAL_DEL_STA_SELF_RSP
5151---------------------------------------------------------------------------*/
5152
5153typedef PACKED_PRE struct PACKED_POST
5154{
5155 /*success or failure */
5156 tANI_U32 status;
5157
5158 tSirMacAddr selfMacAddr;
5159}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5160
5161typedef PACKED_PRE struct PACKED_POST
5162{
5163 tHalMsgHeader header;
5164 tDelStaSelfRspParams delStaSelfRspParams;
5165} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5166
5167
5168#ifdef WLAN_FEATURE_VOWIFI_11R
5169
5170/*---------------------------------------------------------------------------
5171 *WLAN_HAL_AGGR_ADD_TS_REQ
5172 *--------------------------------------------------------------------------*/
5173
5174typedef PACKED_PRE struct PACKED_POST
5175{
5176 /* Station Index */
5177 tANI_U16 staIdx;
5178
5179 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5180 /* This will carry the bitmap with the bit positions representing different AC.s*/
5181 tANI_U16 tspecIdx;
5182
5183 /* Tspec info per AC To program TPE with required parameters */
5184 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5185
5186 /* U-APSD Flags: 1b per AC. Encoded as follows:
5187 b7 b6 b5 b4 b3 b2 b1 b0 =
5188 X X X X BE BK VI VO */
5189 tANI_U8 uAPSD;
5190
5191 /* These parameters are for all the access categories */
5192 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5193 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5194 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5195
5196}tAggrAddTsParams, *tpAggrAddTsParams;
5197
5198
5199typedef PACKED_PRE struct PACKED_POST
5200{
5201 tHalMsgHeader header;
5202 tAggrAddTsParams aggrAddTsParam;
5203}tAggrAddTsReq, *tpAggrAddTsReq;
5204
5205/*---------------------------------------------------------------------------
5206*WLAN_HAL_AGGR_ADD_TS_RSP
5207*--------------------------------------------------------------------------*/
5208
5209typedef PACKED_PRE struct PACKED_POST
5210{
5211 /* success or failure */
5212 tANI_U32 status0;
5213 /* FIXME PRIMA for future use for 11R */
5214 tANI_U32 status1;
5215}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5216
5217typedef PACKED_PRE struct PACKED_POST
5218{
5219 tHalMsgHeader header;
5220 tAggrAddTsRspParams aggrAddTsRspParam;
5221}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5222
5223#endif
5224
5225/*---------------------------------------------------------------------------
5226 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5227 *--------------------------------------------------------------------------*/
5228typedef PACKED_PRE struct PACKED_POST
5229{
5230 tANI_U8 isAppsCpuAwake;
5231} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5232
5233typedef PACKED_PRE struct PACKED_POST
5234{
5235 tHalMsgHeader header;
5236 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5237} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5238
5239/*---------------------------------------------------------------------------
5240 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5241 *--------------------------------------------------------------------------*/
5242typedef PACKED_PRE struct PACKED_POST
5243{
5244 /* success or failure */
5245 tANI_U32 status;
5246} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5247
5248typedef PACKED_PRE struct PACKED_POST
5249{
5250 tHalMsgHeader header;
5251 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5252} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5253/*---------------------------------------------------------------------------
5254 * WLAN_HAL_DUMP_COMMAND_REQ
5255 *--------------------------------------------------------------------------*/
5256
5257typedef PACKED_PRE struct PACKED_POST
5258{
5259 tANI_U32 argument1;
5260 tANI_U32 argument2;
5261 tANI_U32 argument3;
5262 tANI_U32 argument4;
5263 tANI_U32 argument5;
5264
5265}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5266
5267typedef PACKED_PRE struct PACKED_POST
5268{
5269 tHalMsgHeader header;
5270 tHalDumpCmdReqParams dumpCmdReqParams;
5271} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5272
5273/*---------------------------------------------------------------------------
5274 * WLAN_HAL_DUMP_COMMAND_RSP
5275 *--------------------------------------------------------------------------*/
5276
5277typedef PACKED_PRE struct PACKED_POST
5278{
5279 /* success or failure */
5280 tANI_U32 status;
5281 /*Length of the responce message*/
5282 tANI_U32 rspLength;
5283 /*FiXME: Currently considering the the responce will be less than 100bytes */
5284 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07005285
Jeff Johnson295189b2012-06-20 16:38:30 -07005286} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5287
5288typedef PACKED_PRE struct PACKED_POST
5289{
5290 tHalMsgHeader header;
5291 tHalDumpCmdRspParams dumpCmdRspParams;
5292} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5293
5294/*---------------------------------------------------------------------------
5295 *WLAN_HAL_COEX_IND
5296 *-------------------------------------------------------------------------*/
5297#define WLAN_COEX_IND_DATA_SIZE (4)
5298#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5299#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005300#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5301#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005302#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5303#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07005304
5305typedef PACKED_PRE struct PACKED_POST
5306{
5307 /*Coex Indication Type*/
5308 tANI_U32 coexIndType;
5309
5310 /*Coex Indication Data*/
5311 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5312}tCoexIndParams,*tpCoexIndParams;
5313
5314typedef PACKED_PRE struct PACKED_POST
5315{
5316 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005317 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005318}tCoexIndMsg, *tpCoexIndMsg;
5319
5320/*---------------------------------------------------------------------------
5321 *WLAN_HAL_OTA_TX_COMPL_IND
5322 *-------------------------------------------------------------------------*/
5323
5324typedef PACKED_PRE struct PACKED_POST
5325{
5326 /*Tx Complete Indication Success or Failure*/
5327 tANI_U32 status;
5328}tTxComplParams,*tpTxComplParams;
5329
5330typedef PACKED_PRE struct PACKED_POST
5331{
5332 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005333 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005334}tTxComplIndMsg, *tpTxComplIndMsg;
5335
5336/*---------------------------------------------------------------------------
5337 * WLAN_HAL_HOST_SUSPEND_IND
5338 *-------------------------------------------------------------------------*/
5339
5340typedef PACKED_PRE struct PACKED_POST
5341{
5342 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005343 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005344}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5345
5346typedef PACKED_PRE struct PACKED_POST
5347{
5348 tHalMsgHeader header;
5349 tHalWlanHostSuspendIndParam suspendIndParams;
5350}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5351
5352/*---------------------------------------------------------------------------
5353 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5354 *-------------------------------------------------------------------------*/
5355
5356typedef PACKED_PRE struct PACKED_POST
5357{
5358 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005359 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005360}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5361
5362typedef PACKED_PRE struct PACKED_POST
5363{
5364 tHalMsgHeader header;
5365 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5366}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5367
5368#ifdef WLAN_FEATURE_P2P
5369/*---------------------------------------------------------------------------
5370 *WLAN_HAL_NOA_ATTR_IND
5371 *-------------------------------------------------------------------------*/
5372
5373typedef PACKED_PRE struct PACKED_POST
5374{
5375 tANI_U8 index ;
5376 tANI_U8 oppPsFlag ;
5377 tANI_U16 ctWin ;
5378
5379 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005380 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005381 tANI_U32 uNoa1Duration;
5382 tANI_U32 uNoa1Interval;
5383 tANI_U32 uNoa1StartTime;
5384
5385 tANI_U16 uNoa2IntervalCnt;
5386 tANI_U16 rsvd2;
5387 tANI_U32 uNoa2Duration;
5388 tANI_U32 uNoa2Interval;
5389 tANI_U32 uNoa2StartTime;
5390
5391 tANI_U32 status;
5392}tNoaAttrIndParams, *tpNoaAttrIndParams;
5393
5394typedef PACKED_PRE struct PACKED_POST
5395{
5396 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005397 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005398}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005399
5400/*---------------------------------------------------------------------------
5401 *WLAN_HAL_NOA_START_IND
5402 *-------------------------------------------------------------------------*/
5403
5404typedef PACKED_PRE struct PACKED_POST
5405{
5406 tANI_U32 status;
5407 tANI_U32 bssIdx;
5408}tNoaStartIndParams, *tpNoaStartIndParams;
5409
5410typedef PACKED_PRE struct PACKED_POST
5411{
5412 tHalMsgHeader header;
5413 tNoaStartIndParams noaStartIndParams;
5414}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005415#endif
5416
5417/*---------------------------------------------------------------------------
5418 * WLAN_HAL_HOST_RESUME_REQ
5419 *-------------------------------------------------------------------------*/
5420
5421typedef PACKED_PRE struct PACKED_POST
5422{
5423 tANI_U8 configuredMcstBcstFilterSetting;
5424}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5425
5426typedef PACKED_PRE struct PACKED_POST
5427{
5428 tHalMsgHeader header;
5429 tHalWlanHostResumeReqParam resumeReqParams;
5430}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5431
5432/*---------------------------------------------------------------------------
5433 * WLAN_HAL_HOST_RESUME_RSP
5434 *--------------------------------------------------------------------------*/
5435typedef PACKED_PRE struct PACKED_POST
5436{
5437 /* success or failure */
5438 tANI_U32 status;
5439} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5440
5441typedef PACKED_PRE struct PACKED_POST
5442{
5443 tHalMsgHeader header;
5444 tHalHostResumeRspParams hostResumeRspParams;
5445} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5446
Anand Kumar012623a2013-01-11 17:00:00 -08005447typedef PACKED_PRE struct PACKED_POST
5448{
5449 tANI_U16 staIdx;
5450 // Peer MAC Address, whose BA session has timed out
5451 tSirMacAddr peerMacAddr;
5452 // TID for which a BA session timeout is being triggered
5453 tANI_U8 baTID;
5454 // DELBA direction
5455 // 1 - Originator
5456 // 0 - Recipient
5457 tANI_U8 baDirection;
5458 tANI_U32 reasonCode;
5459 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5460} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5461
5462typedef PACKED_PRE struct PACKED_POST
5463{
5464 tHalMsgHeader header;
5465 tHalWlanDelBaIndMsg hostdelBaParam;
5466} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5467
Jeff Johnson295189b2012-06-20 16:38:30 -07005468/*---------------------------------------------------------------------------
5469 *PNO Messages
5470 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005471/* Max number of channels that a network can be found on*/
5472/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5473 * be changed at same time
5474 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005475#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005476
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305477/*Max number of channels that a network can be found on*/
5478#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5479
Jeff Johnson295189b2012-06-20 16:38:30 -07005480/*Maximum numbers of networks supported by PNO*/
5481#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5482
5483/*The number of scan time intervals that can be programmed into PNO*/
5484#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5485
5486/*Maximum size of the probe template*/
5487#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5488
Jeff Johnson32d95a32012-09-10 13:15:23 -07005489/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005490 Immediate - scanning will start immediately and PNO procedure will
5491 be repeated based on timer
5492 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005493 Resume - scanning will start on system resume
5494 Delay - start the scan timer to trigger PNO scan
5495 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005496typedef enum
5497{
5498 ePNO_MODE_IMMEDIATE,
5499 ePNO_MODE_ON_SUSPEND,
5500 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305501 ePNO_MODE_DELAY,
5502 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005503 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5504} ePNOMode;
5505
5506/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005507typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005508{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005509 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005510 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005511
Jeff Johnson295189b2012-06-20 16:38:30 -07005512 // Upper layer authentication types
5513 eAUTH_TYPE_WPA = 2,
5514 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005515
Jeff Johnson295189b2012-06-20 16:38:30 -07005516 eAUTH_TYPE_RSN = 4,
5517 eAUTH_TYPE_RSN_PSK = 5,
5518 eAUTH_TYPE_FT_RSN = 6,
5519 eAUTH_TYPE_FT_RSN_PSK = 7,
5520 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5521 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005522 eAUTH_TYPE_CCKM_WPA = 10,
5523 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005524
Jeff Johnson295189b2012-06-20 16:38:30 -07005525 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5526
5527}tAuthType;
5528
5529/* Encryption type */
5530typedef enum eEdType
5531{
5532 eED_ANY = 0,
5533 eED_NONE = 1,
5534 eED_WEP = 2,
5535 eED_TKIP = 3,
5536 eED_CCMP = 4,
5537 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005538
Jeff Johnson295189b2012-06-20 16:38:30 -07005539 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5540} tEdType;
5541
5542/* SSID broadcast type */
5543typedef enum eSSIDBcastType
5544{
5545 eBCAST_UNKNOWN = 0,
5546 eBCAST_NORMAL = 1,
5547 eBCAST_HIDDEN = 2,
5548
5549 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5550} tSSIDBcastType;
5551
Jeff Johnson32d95a32012-09-10 13:15:23 -07005552/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005553 The network description for which PNO will have to look for
5554*/
5555typedef PACKED_PRE struct PACKED_POST
5556{
5557 /*SSID of the BSS*/
5558 tSirMacSSid ssId;
5559
5560 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005561 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005562
5563 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005564 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005565
Jeff Johnson32d95a32012-09-10 13:15:23 -07005566 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005567 0 - if all channels */
5568 tANI_U8 ucChannelCount;
5569 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5570
5571 /*Indicates the RSSI threshold for the network to be considered*/
5572 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005573}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005574
5575typedef PACKED_PRE struct PACKED_POST
5576{
5577 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005578 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005579
Jeff Johnson32d95a32012-09-10 13:15:23 -07005580 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005581 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005582 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005583
Jeff Johnson32d95a32012-09-10 13:15:23 -07005584 /*e.g: 2 3
5585 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005586 - it will wait 2s between consecutive scans for 3 times
5587 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005588}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005589
Jeff Johnson32d95a32012-09-10 13:15:23 -07005590/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005591 The network parameters to be sent to the PNO algorithm
5592*/
5593typedef PACKED_PRE struct PACKED_POST
5594{
5595 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005596 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005597
Jeff Johnson32d95a32012-09-10 13:15:23 -07005598 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005599 two consecutive scan procedures
5600 If the desired is for a uniform timer that fires always at the exact same
5601 interval - one single value is to be set
5602 If there is a desire for a more complex - telescopic like timer multiple
5603 values can be set - once PNO reaches the end of the array it will
5604 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005605 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005606
5607}tScanTimersType;
5608
5609typedef PACKED_PRE struct PACKED_POST {
5610
5611 /*Enable PNO*/
5612 tANI_U32 enable;
5613
5614 /*Immediate, On Suspend, On Resume*/
5615 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005616
Jeff Johnson295189b2012-06-20 16:38:30 -07005617 /*Number of networks sent for PNO*/
5618 tANI_U32 ucNetworksCount;
5619
5620 /*The networks that PNO needs to look for*/
5621 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5622
5623 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005624 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005625
5626 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005627 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005628 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5629
5630 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005631 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005632 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5633
5634} tPrefNetwListParams, * tpPrefNetwListParams;
5635
5636/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005637 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005638*/
5639typedef PACKED_PRE struct PACKED_POST
5640{
5641 tHalMsgHeader header;
5642 tPrefNetwListParams prefNetwListParams;
5643} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5644
5645
Jeff Johnson32d95a32012-09-10 13:15:23 -07005646/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005647 The network description for which PNO will have to look for
5648*/
5649typedef PACKED_PRE struct PACKED_POST
5650{
5651 /*SSID of the BSS*/
5652 tSirMacSSid ssId;
5653
5654 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005655 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005656
5657 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005658 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005659
5660 /*SSID broadcast type, normal, hidden or unknown*/
5661 tSSIDBcastType bcastNetworkType;
5662
Jeff Johnson32d95a32012-09-10 13:15:23 -07005663 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005664 0 - if all channels */
5665 tANI_U8 ucChannelCount;
5666 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5667
5668 /*Indicates the RSSI threshold for the network to be considered*/
5669 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005670}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005671
5672typedef PACKED_PRE struct PACKED_POST {
5673
5674 /*Enable PNO*/
5675 tANI_U32 enable;
5676
5677 /*Immediate, On Suspend, On Resume*/
5678 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005679
Jeff Johnson295189b2012-06-20 16:38:30 -07005680 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005681 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005682
5683 /*The networks that PNO needs to look for*/
5684 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5685
5686 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005687 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005688
5689 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005690 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005691 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5692
5693 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005694 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005695 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5696
5697} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5698
5699/*
5700 Preferred network list request new
5701*/
5702typedef PACKED_PRE struct PACKED_POST
5703{
5704 tHalMsgHeader header;
5705 tPrefNetwListParamsNew prefNetwListParams;
5706} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5707
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005708#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5709typedef PACKED_PRE struct PACKED_POST
5710{
5711 tSirMacSSid ssId;
5712 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5713 tANI_U32 authentication;
5714 tEdType encryption;
5715 tEdType mcencryption;
5716 tANI_U8 ChannelCount;
5717 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5718}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005719
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005720typedef PACKED_PRE struct PACKED_POST
5721{
5722 tANI_U8 mdiePresent;
5723 tANI_U16 mobilityDomain;
5724}tMobilityDomainInfo;
5725
5726typedef PACKED_PRE struct PACKED_POST {
5727 eAniBoolean RoamScanOffloadEnabled;
5728 tANI_S8 LookupThreshold;
5729 tANI_U8 RoamRssiDiff;
5730 tANI_U8 ChannelCacheType;
5731 tANI_U8 Command;
5732 tANI_U8 StartScanReason;
5733 tANI_U16 NeighborScanTimerPeriod;
5734 tANI_U16 NeighborRoamScanRefreshPeriod;
5735 tANI_U16 NeighborScanChannelMinTime;
5736 tANI_U16 NeighborScanChannelMaxTime;
5737 tANI_U16 EmptyRefreshScanPeriod;
5738 tANI_U8 ValidChannelCount;
5739 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
Varun Reddy Yeturua4cec9f2014-02-27 15:19:47 -08005740 eAniBoolean IsESEEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005741
5742 tANI_U16 us24GProbeSize;
5743 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5744 tANI_U16 us5GProbeSize;
5745 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5746 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005747 tANI_U8 nProbes;
5748 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08005749 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08005750 tANI_S8 RxSensitivityThreshold;
Amar Singhalb41c45b2014-03-21 14:44:14 -07005751 tANI_U8 RoamOffloadEnabled;
5752 tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
5753 tANI_U8 Prefer5GHz;
5754 tANI_U8 RoamRssiCatGap;
5755 tANI_U8 Select5GHzMargin;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005756 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5757 tRoamNetworkType ConnectedNetwork;
5758 tMobilityDomainInfo MDID;
5759} tRoamCandidateListParams, * tpRoamCandidateListParams;
5760
5761typedef PACKED_PRE struct PACKED_POST
5762{
Kumar Anandea78e792013-10-10 23:47:01 -07005763 tHalMsgHeader header;
5764 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005765} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5766
5767typedef PACKED_PRE struct PACKED_POST
5768{
Kumar Anandea78e792013-10-10 23:47:01 -07005769 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005770
Kumar Anandea78e792013-10-10 23:47:01 -07005771 /* status of the request - just to indicate that PNO has acknowledged
5772 * the request and will start scanning */
5773 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005774} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5775#endif
Kumar Anandea78e792013-10-10 23:47:01 -07005776
5777/*
5778 Preferred network list response
5779*/
5780typedef PACKED_PRE struct PACKED_POST
5781{
5782 tHalMsgHeader header;
5783
5784 /* status of the request - just to indicate that PNO has acknowledged
5785 * the request and will start scanning*/
5786 tANI_U32 status;
5787} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5788
5789/*
5790 Preferred network indication parameters
5791*/
5792typedef PACKED_PRE struct PACKED_POST {
5793
5794 /*Network that was found with the highest RSSI*/
5795 tSirMacSSid ssId;
5796
5797 /*Indicates the RSSI */
5798 tANI_U8 rssi;
5799
5800 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
5801 tANI_U16 frameLength;
5802
5803} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5804
5805/*
5806 Preferred network found indication
5807*/
5808typedef PACKED_PRE struct PACKED_POST {
5809
5810 tHalMsgHeader header;
5811 tPrefNetwFoundParams prefNetwFoundParams;
5812} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5813
5814
5815typedef PACKED_PRE struct PACKED_POST {
5816
5817 /*RSSI Threshold*/
5818 tANI_U8 ucRssiThreshold;
5819
5820} tRssiFilterParams, * tpRssiFilterParams;
5821
Jeff Johnson295189b2012-06-20 16:38:30 -07005822/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005823 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005824*/
5825typedef PACKED_PRE struct PACKED_POST
5826{
5827 tHalMsgHeader header;
5828 tRssiFilterParams prefRSSIFilterParams;
5829} tSetRssiFilterReq, *tpSetRssiFilterReq;
5830
5831/*
5832 Set RSSI filter resp
5833*/
5834typedef PACKED_PRE struct PACKED_POST{
5835 tHalMsgHeader header;
5836 /*status of the request */
5837 tANI_U32 status;
5838} tSetRssiFilterResp, *tpSetRssiFilterResp;
5839/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005840 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005841*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005842typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005843{
5844
5845 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005846 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005847
5848 /*Lets PNO know that host has determined the regulatory domain*/
5849 tANI_U8 b11dResolved;
5850
5851 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005852 tANI_U8 ucChannelCount;
5853 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005854
5855 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005856 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005857
5858 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005859 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005860
5861 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005862 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005863
5864 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005865 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005866
5867 /*Cb State*/
5868 ePhyChanBondState cbState;
5869
5870} tUpdateScanParams, * tpUpdateScanParams;
5871
5872/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305873 Update scan params
5874*/
5875typedef PACKED_PRE struct PACKED_POST
5876{
5877
5878 /*Host setting for 11d*/
5879 tANI_U8 b11dEnabled;
5880
5881 /*Lets PNO know that host has determined the regulatory domain*/
5882 tANI_U8 b11dResolved;
5883
5884 /*Channels on which PNO is allowed to scan*/
5885 tANI_U8 ucChannelCount;
5886 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5887
5888 /*Minimum channel time*/
5889 tANI_U16 usActiveMinChTime;
5890
5891 /*Maximum channel time*/
5892 tANI_U16 usActiveMaxChTime;
5893
5894 /*Minimum channel time*/
5895 tANI_U16 usPassiveMinChTime;
5896
5897 /*Maximum channel time*/
5898 tANI_U16 usPassiveMaxChTime;
5899
5900 /*Cb State*/
5901 ePhyChanBondState cbState;
5902
5903} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5904
5905/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005906 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005907 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005908*/
5909typedef PACKED_PRE struct PACKED_POST{
5910
5911 tHalMsgHeader header;
5912 tUpdateScanParams scanParams;
5913} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5914
5915/*
5916 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005917 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005918*/
5919typedef PACKED_PRE struct PACKED_POST{
5920
5921 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305922 tUpdateScanParamsEx scanParams;
5923} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5924
5925/*
5926 Update scan params - sent from host to PNO
5927 to be used during PNO scanning
5928*/
5929typedef PACKED_PRE struct PACKED_POST{
5930
5931 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005932
5933 /*status of the request */
5934 tANI_U32 status;
5935
5936} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5937
5938/*---------------------------------------------------------------------------
5939 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5940 *--------------------------------------------------------------------------*/
5941typedef PACKED_PRE struct PACKED_POST
5942{
5943 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5944 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5945 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5946 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5947} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5948
5949typedef PACKED_PRE struct PACKED_POST
5950{
5951 tHalMsgHeader header;
5952 tHalTxPerTrackingReqParam txPerTrackingParams;
5953} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5954
5955/*---------------------------------------------------------------------------
5956 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5957 *--------------------------------------------------------------------------*/
5958typedef PACKED_PRE struct PACKED_POST
5959{
5960 /* success or failure */
5961 tANI_U32 status;
5962} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5963
5964typedef PACKED_PRE struct PACKED_POST
5965{
5966 tHalMsgHeader header;
5967 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5968} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5969
5970/*---------------------------------------------------------------------------
5971 * WLAN_HAL_TX_PER_HIT_IND
5972 *--------------------------------------------------------------------------*/
5973typedef PACKED_PRE struct PACKED_POST
5974{
5975 tHalMsgHeader header;
5976}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5977
5978/*---------------------------------------------------------------------------
5979 *******************Packet Filtering Definitions Begin*******************
5980 *--------------------------------------------------------------------------*/
5981#define HAL_PROTOCOL_DATA_LEN 8
5982#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5983#define HAL_MAX_NUM_FILTERS 20
5984#define HAL_MAX_CMP_PER_FILTER 10
5985
5986typedef enum
5987{
5988 HAL_RCV_FILTER_TYPE_INVALID,
5989 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5990 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5991 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5992}tHalReceivePacketFilterType;
5993
Jeff Johnson32d95a32012-09-10 13:15:23 -07005994typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005995{
5996 HAL_FILTER_PROTO_TYPE_INVALID,
5997 HAL_FILTER_PROTO_TYPE_MAC,
5998 HAL_FILTER_PROTO_TYPE_ARP,
5999 HAL_FILTER_PROTO_TYPE_IPV4,
6000 HAL_FILTER_PROTO_TYPE_IPV6,
6001 HAL_FILTER_PROTO_TYPE_UDP,
6002 HAL_FILTER_PROTO_TYPE_MAX
6003}tHalRcvPktFltProtocolType;
6004
Jeff Johnson32d95a32012-09-10 13:15:23 -07006005typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006006{
6007 HAL_FILTER_CMP_TYPE_INVALID,
6008 HAL_FILTER_CMP_TYPE_EQUAL,
6009 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
6010 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
6011 HAL_FILTER_CMP_TYPE_MAX
6012}tHalRcvPktFltCmpFlagType;
6013
Jeff Johnson32d95a32012-09-10 13:15:23 -07006014typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006015{
6016 tANI_U8 protocolLayer;
6017 tANI_U8 cmpFlag;
6018 tANI_U16 dataLength; /* Length of the data to compare */
6019 tANI_U8 dataOffset; /* from start of the respective frame header */
6020 tANI_U8 reserved; /* Reserved field */
6021 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
6022 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
6023}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
6024
6025typedef PACKED_PRE struct PACKED_POST
6026{
6027 tANI_U8 filterId;
6028 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006029 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006030 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07006031 tHalRcvPktFilterParams paramsData[1];
6032}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
6033
6034typedef PACKED_PRE struct PACKED_POST
6035{
Jeff Johnsone7245742012-09-05 17:12:55 -07006036 tANI_U8 filterId;
6037 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006038 tANI_U8 numParams;
6039 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07006040 tANI_U8 bssIdx;
6041 tHalRcvPktFilterParams paramsData[1];
6042}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
6043
6044typedef PACKED_PRE struct PACKED_POST
6045{
Jeff Johnson295189b2012-06-20 16:38:30 -07006046 tHalMsgHeader header;
6047 tHalRcvPktFilterCfgType pktFilterCfg;
6048} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
6049
Jeff Johnsone7245742012-09-05 17:12:55 -07006050typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07006051{
6052 tANI_U8 dataOffset; /* from start of the respective frame header */
6053 tANI_U32 cMulticastAddr;
6054 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006055 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006056} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
6057
6058typedef PACKED_PRE struct PACKED_POST
6059{
6060 /* success or failure */
6061 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006062 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006063} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
6064
6065typedef PACKED_PRE struct PACKED_POST
6066{
6067 tHalMsgHeader header;
6068 tHalSetPktFilterRspParams pktFilterRspParams;
6069} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
6070
Jeff Johnsone7245742012-09-05 17:12:55 -07006071typedef PACKED_PRE struct PACKED_POST
6072{
6073 tANI_U8 bssIdx;
6074} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006075
6076typedef PACKED_PRE struct PACKED_POST
6077{
6078 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006079 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006080} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
6081
Jeff Johnsone7245742012-09-05 17:12:55 -07006082
Jeff Johnson295189b2012-06-20 16:38:30 -07006083typedef PACKED_PRE struct PACKED_POST
6084{
6085 tANI_U8 filterId;
6086 tANI_U32 matchCnt;
6087} tHalRcvFltPktMatchCnt;
6088typedef PACKED_PRE struct PACKED_POST
6089{
6090 /* Success or Failure */
6091 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006092 tANI_U32 matchCnt;
6093 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07006094 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006095} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
6096
6097typedef PACKED_PRE struct PACKED_POST
6098{
6099 tHalMsgHeader header;
6100 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
6101} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
6102
6103typedef PACKED_PRE struct PACKED_POST
6104{
6105 tANI_U32 status; /* only valid for response message */
6106 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07006107 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006108}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
6109
6110typedef PACKED_PRE struct PACKED_POST
6111{
6112 tHalMsgHeader header;
6113 tHalRcvFltPktClearParam filterClearParam;
6114} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
6115
6116typedef PACKED_PRE struct PACKED_POST
6117{
6118 tHalMsgHeader header;
6119 tHalRcvFltPktClearParam filterClearParam;
6120} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
6121
6122typedef PACKED_PRE struct PACKED_POST
6123{
Jeff Johnson32d95a32012-09-10 13:15:23 -07006124 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07006125 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006126}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
6127
6128typedef PACKED_PRE struct PACKED_POST
6129{
6130 tHalMsgHeader header;
6131 tHalRcvFltMcAddrListType mcAddrList;
6132} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
6133
6134typedef PACKED_PRE struct PACKED_POST
6135{
6136 tHalMsgHeader header;
6137 tHalRcvFltPktSetMcListRspType rspParam;
6138} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6139
6140
6141/*---------------------------------------------------------------------------
6142 *******************Packet Filtering Definitions End*******************
6143 *--------------------------------------------------------------------------*/
6144
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006145/*
6146 * There are two versions of this message
6147 * Version 1 : Base version
6148 * Current version : Base version + Max LI modulated DTIM
6149 */
6150typedef PACKED_PRE struct PACKED_POST
6151{
6152 /* Ignore DTIM */
6153 tANI_U32 uIgnoreDTIM;
6154
6155 /*DTIM Period*/
6156 tANI_U32 uDTIMPeriod;
6157
6158 /* Listen Interval */
6159 tANI_U32 uListenInterval;
6160
6161 /* Broadcast Multicast Filter */
6162 tANI_U32 uBcastMcastFilter;
6163
6164 /* Beacon Early Termination */
6165 tANI_U32 uEnableBET;
6166
6167 /* Beacon Early Termination Interval */
6168 tANI_U32 uBETInterval;
6169}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6170
6171typedef PACKED_PRE struct PACKED_POST
6172{
6173 tHalMsgHeader header;
6174 tSetPowerParamsVer1Type powerParams;
6175} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6176
Jeff Johnson295189b2012-06-20 16:38:30 -07006177typedef PACKED_PRE struct PACKED_POST
6178{
6179 /* Ignore DTIM */
6180 tANI_U32 uIgnoreDTIM;
6181
6182 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006183 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006184
6185 /* Listen Interval */
6186 tANI_U32 uListenInterval;
6187
6188 /* Broadcast Multicast Filter */
6189 tANI_U32 uBcastMcastFilter;
6190
6191 /* Beacon Early Termination */
6192 tANI_U32 uEnableBET;
6193
6194 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006195 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006196
6197 /* MAX LI for modulated DTIM */
6198 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006199}tSetPowerParamsType, *tpSetPowerParamsType;
6200
6201typedef PACKED_PRE struct PACKED_POST
6202{
6203 tHalMsgHeader header;
6204 tSetPowerParamsType powerParams;
6205} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6206
6207typedef PACKED_PRE struct PACKED_POST{
6208
6209 tHalMsgHeader header;
6210
6211 /*status of the request */
6212 tANI_U32 status;
6213
6214} tSetPowerParamsResp, *tpSetPowerParamsResp;
6215
6216/*---------------------------------------------------------------------------
6217 ****************Capability bitmap exchange definitions and macros starts*************
6218 *--------------------------------------------------------------------------*/
6219
Anand Kumar012623a2013-01-11 17:00:00 -08006220typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006221 MCC = 0,
6222 P2P = 1,
6223 DOT11AC = 2,
6224 SLM_SESSIONIZATION = 3,
6225 DOT11AC_OPMODE = 4,
6226 SAP32STA = 5,
6227 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006228 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006229 WLANACTIVE_OFFLOAD = 8,
6230 BEACON_OFFLOAD = 9,
6231 SCAN_OFFLOAD = 10,
6232 ROAM_OFFLOAD = 11,
6233 BCN_MISS_OFFLOAD = 12,
6234 STA_POWERSAVE = 13,
6235 STA_ADVANCED_PWRSAVE = 14,
6236 AP_UAPSD = 15,
6237 AP_DFS = 16,
6238 BLOCKACK = 17,
6239 PHY_ERR = 18,
6240 BCN_FILTER = 19,
6241 RTT = 20,
6242 RATECTRL = 21,
6243 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006244 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006245 SPECULATIVE_PS_POLL = 24,
6246 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006247 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006248 WLAN_SCAN_OFFLOAD = 27,
6249 WLAN_PERIODIC_TX_PTRN = 28,
6250 ADVANCE_TDLS = 29,
6251 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306252 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306253 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306254 CH_SWITCH_V1 = 33,
6255 HT40_OBSS_SCAN = 34,
6256 UPDATE_CHANNEL_LIST = 35,
Amar Singhalb41c45b2014-03-21 14:44:14 -07006257 WLAN_MCADDR_FLT = 36,
6258 WLAN_CH144 = 37,
6259 NAN = 38,
Kumar Anandea78e792013-10-10 23:47:01 -07006260 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006261} placeHolderInCapBitmap;
6262
Jeff Johnson295189b2012-06-20 16:38:30 -07006263typedef PACKED_PRE struct PACKED_POST{
6264
6265 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006266} tWlanFeatCaps, *tpWlanFeatCaps;
6267
6268typedef PACKED_PRE struct PACKED_POST{
6269
Jeff Johnson32d95a32012-09-10 13:15:23 -07006270 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006271 tWlanFeatCaps wlanFeatCaps;
6272
6273} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6274
Jeff Johnsone7245742012-09-05 17:12:55 -07006275#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6276#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006277#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006278#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006279#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006280#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006281#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Kalikinkar dhara3487ffc2014-02-07 13:12:19 -08006282#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006283
Jeff Johnsone7245742012-09-05 17:12:55 -07006284tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6285
Jeff Johnson295189b2012-06-20 16:38:30 -07006286#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006287 if ((b)<=127) { \
6288 arr_index = (b)/32; \
6289 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006290 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006291 (a)->featCaps[arr_index] |= (1<<bit_index); \
6292 } \
6293 }
6294#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006295 if ((b)<=127) { \
6296 arr_index = (b)/32; \
6297 bit_index = (b)%32; \
6298 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006299 } \
6300 }
6301#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006302 if ((b)<=127) { \
6303 arr_index = (b)/32; \
6304 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006305 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006306 } \
6307 }
6308
6309/*---------------------------------------------------------------------------
6310 * WLAN_HAL_WAKE_REASON_IND
6311 *--------------------------------------------------------------------------*/
6312
6313/* status codes to help debug rekey failures */
6314typedef enum
6315{
6316 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6317 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6318 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6319 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6320 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6321 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6322 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6323 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6324 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6325 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6326
6327 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6328} tGTKRekeyStatus;
6329
6330/* wake reason types */
6331typedef enum
6332{
6333 WLAN_HAL_WAKE_REASON_NONE = 0,
6334 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6335 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6336 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6337 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6338 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6339 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6340 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6341} tWakeReasonType;
6342
6343/*
6344 Wake Packet which is saved at tWakeReasonParams.DataStart
6345 This data is sent for any wake reasons that involve a packet-based wakeup :
6346
6347 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6348 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6349 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6350 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6351 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6352
6353 The information is provided to the host for auditing and debug purposes
6354
6355*/
6356
6357/*
6358 Wake reason indication parameters
6359*/
6360typedef PACKED_PRE struct PACKED_POST
6361{
6362 uint32 ulReason; /* see tWakeReasonType */
6363 uint32 ulReasonArg; /* argument specific to the reason type */
6364 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6365 HAL truncates the data (i.e. data packets) this length
6366 will be less than the actual length */
6367 uint32 ulActualDataLen; /* actual length of data */
6368 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6369 see specific wake type */
6370} tWakeReasonParams, *tpWakeReasonParams;
6371
6372/*
6373 Wake reason indication
6374*/
6375typedef PACKED_PRE struct PACKED_POST
6376{
6377 tHalMsgHeader header;
6378 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006379 tANI_U32 uBssIdx : 8;
6380 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006381} tHalWakeReasonInd, *tpHalWakeReasonInd;
6382
6383/*---------------------------------------------------------------------------
6384* WLAN_HAL_GTK_OFFLOAD_REQ
6385*--------------------------------------------------------------------------*/
6386
6387#define HAL_GTK_KEK_BYTES 16
6388#define HAL_GTK_KCK_BYTES 16
6389
6390#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6391
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006392#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6393
Jeff Johnson295189b2012-06-20 16:38:30 -07006394typedef PACKED_PRE struct PACKED_POST
6395{
6396 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006397 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006398 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6399 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006400 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006401} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6402
6403typedef PACKED_PRE struct PACKED_POST
6404{
6405 tHalMsgHeader header;
6406 tHalGtkOffloadReqParams gtkOffloadReqParams;
6407} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6408
6409/*---------------------------------------------------------------------------
6410* WLAN_HAL_GTK_OFFLOAD_RSP
6411*--------------------------------------------------------------------------*/
6412typedef PACKED_PRE struct PACKED_POST
6413{
6414 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006415 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006416} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6417
6418typedef PACKED_PRE struct PACKED_POST
6419{
6420 tHalMsgHeader header;
6421 tHalGtkOffloadRspParams gtkOffloadRspParams;
6422} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6423
6424
6425/*---------------------------------------------------------------------------
6426* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6427*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006428typedef PACKED_PRE struct PACKED_POST
6429{
6430 tANI_U8 bssIdx;
6431
6432} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006433
6434typedef PACKED_PRE struct PACKED_POST
6435{
6436 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006437 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006438} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6439
6440/*---------------------------------------------------------------------------
6441* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6442*--------------------------------------------------------------------------*/
6443typedef PACKED_PRE struct PACKED_POST
6444{
6445 tANI_U32 ulStatus; /* success or failure */
6446 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6447 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6448 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6449 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6450 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006451 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006452} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6453
6454typedef PACKED_PRE struct PACKED_POST
6455{
6456 tHalMsgHeader header;
6457 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6458} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6459
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006460/*---------------------------------------------------------------------------
6461* WLAN_HAL_DHCP_IND
6462*--------------------------------------------------------------------------*/
6463typedef PACKED_PRE struct PACKED_POST
6464{
6465 /*Indicates the device mode which indicates about the DHCP activity */
6466 tANI_U8 device_mode;
6467 tSirMacAddr macAddr;
6468} tDHCPInfo, *tpDHCPInfo;
6469
6470typedef PACKED_PRE struct PACKED_POST
6471{
6472 tHalMsgHeader header;
6473 tANI_U32 status; /* success or failure */
6474} tDHCPIndStatus, *tpDHCPIndstatus;
6475
Jeff Johnson295189b2012-06-20 16:38:30 -07006476/*
6477 Thermal Mitigation mode of operation.
6478 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6479 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6480 reducing transmit power
6481 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6482*/
6483typedef enum
6484{
6485 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6486 HAL_THERMAL_MITIGATION_MODE_0,
6487 HAL_THERMAL_MITIGATION_MODE_1,
6488 HAL_THERMAL_MITIGATION_MODE_2,
6489 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6490}tHalThermalMitigationModeType;
6491//typedef tANI_S16 tHalThermalMitigationModeType;
6492
6493/*
6494 Thermal Mitigation level.
6495 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6496 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6497
6498 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6499 level indicates normal mode of operation
6500 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6501 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6502 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6503 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6504*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006505typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006506{
6507 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6508 HAL_THERMAL_MITIGATION_LEVEL_0,
6509 HAL_THERMAL_MITIGATION_LEVEL_1,
6510 HAL_THERMAL_MITIGATION_LEVEL_2,
6511 HAL_THERMAL_MITIGATION_LEVEL_3,
6512 HAL_THERMAL_MITIGATION_LEVEL_4,
6513 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6514}tHalThermalMitigationLevelType;
6515//typedef tANI_S16 tHalThermalMitigationLevelType;
6516
6517typedef PACKED_PRE struct PACKED_POST
6518{
6519 /* Thermal Mitigation Operation Mode */
6520 tHalThermalMitigationModeType thermalMitMode;
6521
6522 /* Thermal Mitigation Level */
6523 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006524
Jeff Johnson295189b2012-06-20 16:38:30 -07006525}tSetThermalMitgationType, *tpSetThermalMitgationType;
6526
6527/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6528typedef PACKED_PRE struct PACKED_POST
6529{
6530 tHalMsgHeader header;
6531 tSetThermalMitgationType thermalMitParams;
6532} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6533
6534typedef PACKED_PRE struct PACKED_POST{
6535
6536 tHalMsgHeader header;
6537
6538 /*status of the request */
6539 tANI_U32 status;
6540
6541} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6542
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006543/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6544provided to FW from Host via periodic messages */
6545typedef PACKED_PRE struct PACKED_POST {
6546 /* TX stats */
6547 uint32 txBytesPushed;
6548 uint32 txPacketsPushed;
6549
6550 /* RX stats */
6551 uint32 rxBytesRcvd;
6552 uint32 rxPacketsRcvd;
6553 uint32 rxTimeTotal;
6554} tStaStatsClassB, *tpStaStatsClassB;
6555
6556typedef PACKED_PRE struct PACKED_POST {
6557
6558 /* Duration over which this stats was collected */
6559 tANI_U32 duration;
6560
6561 /* Per STA Stats */
6562 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6563} tStatsClassBIndParams, *tpStatsClassBIndParams;
6564
6565typedef PACKED_PRE struct PACKED_POST {
6566
6567 tHalMsgHeader header;
6568
6569 /* Class B Stats */
6570 tStatsClassBIndParams statsClassBIndParams;
6571} tStatsClassBInd, *tpStatsClassBInd;
6572
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306573/*Wifi Proximity paramters in AP mode*/
6574#ifdef FEATURE_WIFI_PROXIMITY
6575
6576typedef PACKED_PRE struct PACKED_POST{
6577
6578 tANI_U8 wifiProximityChannel;
6579 tANI_U32 wifiProximityDuration;
6580 tANI_U32 wifiProximityInterval;
6581 tANI_U32 wifiProximityMode;
6582 tANI_U32 wifiProximityStatus;
6583 tSirMacAddr bssId;
6584 tSirMacSSid ssId;
6585
6586} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6587
6588typedef PACKED_PRE struct PACKED_POST
6589{
6590 tHalMsgHeader header;
6591
6592 tSetWifiProximityReqParam wifiProximityReqParams;
6593
6594}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6595
6596/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6597typedef PACKED_PRE struct PACKED_POST{
6598
6599 tHalMsgHeader header;
6600
6601 /*status of the request */
6602 tANI_U32 status;
6603
6604} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6605
6606#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006607
6608#ifdef FEATURE_SPECULATIVE_PS_POLL
6609/*---------------------------------------------------------------------------
6610 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6611 *--------------------------------------------------------------------------*/
6612typedef PACKED_PRE struct PACKED_POST
6613{
6614 tANI_U8 bssIdx;
6615 tANI_U16 serviceInterval;
6616 tANI_U16 suspendInterval;
6617 tANI_U8 acMask;
6618} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6619
6620typedef PACKED_PRE struct PACKED_POST
6621{
6622 tHalMsgHeader header;
6623 tHalStartSpecPsPollReqParams specPsPollReq;
6624} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6625
6626/*---------------------------------------------------------------------------
6627 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6628 *--------------------------------------------------------------------------*/
6629typedef PACKED_PRE struct PACKED_POST
6630{
6631 /* success or failure */
6632 tANI_U32 status;
6633 tANI_U8 bssIdx;
6634} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6635
6636typedef PACKED_PRE struct PACKED_POST
6637{
6638 tHalMsgHeader header;
6639 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6640} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6641
6642/*---------------------------------------------------------------------------
6643 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6644 *--------------------------------------------------------------------------*/
6645typedef PACKED_PRE struct PACKED_POST
6646{
6647 tHalMsgHeader header;
6648 tANI_U8 bssIdx;
6649} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6650#endif
6651
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306652#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306653#define HAL_MAX_SUPP_CHANNELS 128
6654#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306655/*---------------------------------------------------------------------------
6656 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6657 *-------------------------------------------------------------------------*/
6658typedef PACKED_PRE struct PACKED_POST
6659{
6660 /*STA Index*/
6661 tANI_U16 staIdx;
6662
6663 /* if this is 1, self is initiator and peer is reponder */
6664 tANI_U8 bIsResponder;
6665
6666 /* QoS Info */
6667 tANI_U8 acVOUAPSDFlag:1;
6668 tANI_U8 acVIUAPSDFlag:1;
6669 tANI_U8 acBKUAPSDFlag:1;
6670 tANI_U8 acBEUAPSDFlag:1;
6671 tANI_U8 aAck:1;
6672 tANI_U8 maxServicePeriodLength:2;
6673 tANI_U8 moreDataAck:1;
6674
6675 /*TDLS Peer U-APSD Buffer STA Support*/
6676 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07006677
6678 /*TDLS off channel related params */
6679 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306680 tANI_U8 peerCurrOperClass;
6681 tANI_U8 selfCurrOperClass;
6682 tANI_U8 validChannelsLen;
6683 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
6684 tANI_U8 validOperClassesLen;
6685 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306686}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6687
6688typedef PACKED_PRE struct PACKED_POST
6689{
6690 tHalMsgHeader header;
6691 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6692} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6693
6694/*---------------------------------------------------------------------------
6695 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6696 *-------------------------------------------------------------------------*/
6697
6698typedef PACKED_PRE struct PACKED_POST
6699{
6700 tANI_U32 status;
6701
6702 /*STA Index*/
6703 tANI_U16 staIdx;
6704} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6705
6706typedef PACKED_PRE struct PACKED_POST
6707{
6708 tHalMsgHeader header;
6709 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6710} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6711
6712/*---------------------------------------------------------------------------
6713 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6714 *-------------------------------------------------------------------------*/
6715typedef PACKED_PRE struct PACKED_POST
6716{
6717 /*STA Index*/
6718 tANI_U16 staIdx;
6719}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6720
6721typedef PACKED_PRE struct PACKED_POST
6722{
6723 tHalMsgHeader header;
6724 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6725} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6726
6727/*---------------------------------------------------------------------------
6728 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6729 *-------------------------------------------------------------------------*/
6730
6731typedef PACKED_PRE struct PACKED_POST
6732{
6733 tANI_U32 status;
6734
6735 /*STA Index*/
6736 tANI_U16 staIdx;
6737} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6738
6739typedef PACKED_PRE struct PACKED_POST
6740{
6741 tHalMsgHeader header;
6742 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6743} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6744
6745/*---------------------------------------------------------------------------
6746 *WLAN_HAL_TDLS_IND
6747 *--------------------------------------------------------------------------*/
6748
6749typedef PACKED_PRE struct PACKED_POST
6750{
6751 tANI_U16 assocId;
6752 tANI_U16 staIdx;
6753 tANI_U16 status;
6754 tANI_U16 reasonCode;
6755}tTdlsIndParams, *tpTdlsIndParams;
6756
6757
6758typedef PACKED_PRE struct PACKED_POST
6759{
6760 tHalMsgHeader header;
6761 tTdlsIndParams tdlsIndParams;
6762}tTdlsIndMsg, *tpTdlsIndMsg;
6763
6764#endif
6765
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006766/*---------------------------------------------------------------------------
6767 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
6768 *--------------------------------------------------------------------------*/
6769
6770typedef PACKED_PRE struct PACKED_POST
6771{
6772 tANI_U8 bssIdx;
6773 tANI_U8 staIdx;
6774 tSirMacAddr staAddr;
6775}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
6776
6777
6778typedef PACKED_PRE struct PACKED_POST
6779{
6780 tHalMsgHeader header;
6781 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
6782}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
6783
6784
Kumar Anandea78e792013-10-10 23:47:01 -07006785/*********** Scan Offload Related Structures *************/
6786#define HAL_NUM_SCAN_SSID 10
6787#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07006788
Kumar Anandea78e792013-10-10 23:47:01 -07006789/*
6790 * Enumetation to indicate scan type (active/passive)
6791 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006792typedef enum
6793{
Kumar Anandea78e792013-10-10 23:47:01 -07006794 eSIR_PASSIVE_SCAN,
6795 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
6796} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006797
6798typedef PACKED_PRE struct PACKED_POST
6799{
Kumar Anandea78e792013-10-10 23:47:01 -07006800 tANI_U8 numBssid;
6801 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
6802 tANI_U8 numSsid;
6803 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
6804 tANI_BOOLEAN hiddenSsid;
6805 tSirMacAddr selfMacAddr;
6806 tSirBssType bssType;
6807 tSirScanType scanType;
6808 tANI_U32 minChannelTime;
6809 tANI_U32 maxChannelTime;
6810 tANI_BOOLEAN p2pSearch;
6811 tANI_U8 channelCount;
6812 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6813 tANI_U16 ieFieldLen;
6814 tANI_U8 ieField[1];
6815}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006816
6817/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006818 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07006819 *-------------------------------------------------------------------------*/
6820typedef PACKED_PRE struct PACKED_POST
6821{
Kumar Anandf53016f2013-09-04 15:15:53 -07006822 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006823 tScanOffloadReqType scanOffloadParams;
6824} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006825
6826/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006827 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07006828 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07006829typedef PACKED_PRE struct PACKED_POST
6830{
6831 tHalMsgHeader header;
6832
6833 /*status of the request - just to indicate SO has acknowledged
6834 * * the request and will start scanning*/
6835 tANI_U32 status;
6836} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
6837
6838/*---------------------------------------------------------------------------
6839 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
6840 *-------------------------------------------------------------------------*/
6841typedef PACKED_PRE struct PACKED_POST
6842{
6843 tHalMsgHeader header;
6844} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
6845
6846/*---------------------------------------------------------------------------
6847 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
6848 *-------------------------------------------------------------------------*/
6849typedef PACKED_PRE struct PACKED_POST
6850{
6851 tHalMsgHeader header;
6852
6853 /*status of the request - just to indicate SO has acknowledged
6854 the request and will start scanning*/
6855 tANI_U32 status;
6856} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
6857
6858/*
6859 * Enumetation of scan events indicated by firmware to the host
6860 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006861typedef enum
6862{
Kumar Anandea78e792013-10-10 23:47:01 -07006863 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
6864 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
6865 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
6866 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
6867 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
6868 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
6869 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
6870 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
6871 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
6872} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006873
6874typedef PACKED_PRE struct PACKED_POST
6875{
Kumar Anandea78e792013-10-10 23:47:01 -07006876 tScanEventType event;
6877 tANI_U32 channel;
6878 tANI_U32 scanId;
6879} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07006880
Kumar Anandea78e792013-10-10 23:47:01 -07006881/*---------------------------------------------------------------------------
6882 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
6883 *-------------------------------------------------------------------------*/
6884typedef PACKED_PRE struct PACKED_POST
6885{
6886 tHalMsgHeader header;
6887 tScanOffloadEventInfo scanOffloadInd;
6888} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006889
Kumar Anandea78e792013-10-10 23:47:01 -07006890typedef PACKED_PRE struct PACKED_POST {
6891 /** primary 20 MHz channel frequency in mhz */
6892 tANI_U32 mhz;
6893 /** Center frequency 1 in MHz*/
6894 tANI_U32 band_center_freq1;
6895 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
6896 tANI_U32 band_center_freq2;
6897 /* The first 26 bits are a bit mask to indicate any channel flags,
6898 (see WLAN_HAL_CHAN_FLAG*)
6899 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
6900 tANI_U32 channel_info;
6901 /** contains min power, max power, reg power and reg class id. */
6902 tANI_U32 reg_info_1;
6903 /** contains antennamax */
6904 tANI_U32 reg_info_2;
6905} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006906
Kumar Anandf53016f2013-09-04 15:15:53 -07006907
Kumar Anandea78e792013-10-10 23:47:01 -07006908typedef enum {
6909 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
6910 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
6911 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
6912 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
6913 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
6914 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
6915 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
6916 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
6917 WLAN_HAL_MODE_11AC_VHT20 = 8,
6918 WLAN_HAL_MODE_11AC_VHT40 = 9,
6919 WLAN_HAL_MODE_11AC_VHT80 = 10,
6920 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
6921 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
6922 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
6923 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07006924
Kumar Anandea78e792013-10-10 23:47:01 -07006925} tChannelPhyModeType;
6926
6927#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
6928#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
6929#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
6930#define WLAN_HAL_CHAN_AP_DISABLED 9
6931#define WLAN_HAL_CHAN_FLAG_DFS 10
6932#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
6933#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08006934#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
6935
6936#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
Amar Singhalb41c45b2014-03-21 14:44:14 -07006937 (pwlan_hal_update_channel)->info |= (1 << flag); \
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08006938 } while(0)
6939
6940#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
Amar Singhalb41c45b2014-03-21 14:44:14 -07006941 (((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
Manjunathappa Prakash67bd2492014-02-07 14:34:29 -08006942
6943#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
6944 (pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
6945 (pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
6946 } while(0)
6947#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
6948
6949#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
6950 (pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
6951 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
6952 } while(0)
6953#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
6954
6955#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
6956 (pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
6957 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
6958 } while(0)
6959#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
6960#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
6961 (pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
6962 (pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
6963 } while(0)
6964#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
6965
6966#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
6967 (pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
6968 (pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
6969 } while(0)
6970#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
6971
6972#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
6973 (pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
6974 (pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
6975 } while(0)
6976#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 -07006977
6978typedef PACKED_PRE struct PACKED_POST
6979{
6980 tANI_U8 numChan;
6981 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6982} tUpdateChannelReqType;
6983
6984/*---------------------------------------------------------------------------
6985 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
6986 *-------------------------------------------------------------------------*/
6987typedef PACKED_PRE struct PACKED_POST
6988{
6989 tHalMsgHeader header;
6990 tUpdateChannelReqType updateChannelParams;
6991} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
6992
6993/*---------------------------------------------------------------------------
6994 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
6995 *-------------------------------------------------------------------------*/
6996typedef PACKED_PRE struct PACKED_POST
6997{
6998 tHalMsgHeader header;
6999
7000 /*status of the request - just to indicate SO has acknowledged
7001 * * the request and will start scanning*/
7002 tANI_U32 status;
7003} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
7004
7005
7006/*---------------------------------------------------------------------------
7007* WLAN_HAL_TX_FAIL_IND
7008*--------------------------------------------------------------------------*/
7009// Northbound indication from FW to host on weak link detection
7010typedef PACKED_PRE struct PACKED_POST
7011{
7012 // Sequence number increases by 1 whenever the device driver
7013 // sends a notification event. This is cleared as 0 when the
7014 // JOIN IBSS commamd is issued
7015 tANI_U16 seqNo;
7016 tANI_U16 staId;
7017 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
7018} tHalTXFailIndParams, *tpHalTXFailIndParams;
7019
7020typedef PACKED_PRE struct PACKED_POST
7021{
7022 tHalMsgHeader header;
7023 tHalTXFailIndParams txFailIndParams;
7024} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
7025
7026/*---------------------------------------------------------------------------
7027* WLAN_HAL_TX_FAIL_MONITOR_IND
7028*--------------------------------------------------------------------------*/
7029// Southbound message from Host to monitor the Tx failures
7030typedef PACKED_PRE struct PACKED_POST
7031{
7032 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
7033 tANI_U8 tx_fail_count;
7034} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
7035
7036typedef PACKED_PRE struct PACKED_POST
7037{
7038 tHalMsgHeader header;
7039 tTXFailMonitorInfo txFailMonitor;
7040} tTXFailMonitorInd, *tpTXFailMonitorInd;
7041
7042/*---------------------------------------------------------------------------
7043* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
7044*--------------------------------------------------------------------------*/
7045typedef PACKED_PRE struct PACKED_POST
7046{
7047 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
7048 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
7049} tDestIpNextHopMacPair;
7050
7051typedef PACKED_PRE struct PACKED_POST
7052{
7053 tANI_U8 numEntries;
7054 tDestIpNextHopMacPair destIpMacPair[1];
7055} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07007056
7057typedef PACKED_PRE struct PACKED_POST
7058{
7059 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07007060 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
7061} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07007062
Kumar Anandf53016f2013-09-04 15:15:53 -07007063/*---------------------------------------------------------------------------
Amar Singhalb41c45b2014-03-21 14:44:14 -07007064 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
7065 *-------------------------------------------------------------------------*/
7066typedef enum
7067{
7068 /* reassociation is done, but couldn't finish security handshake */
7069 WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
7070
7071 /* roam has successfully completed by firmware */
7072 WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
7073
7074 /* UNKONW error */
7075 WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
7076}tHalRoamOffloadRoamAuthStatus;
7077
7078typedef enum
7079{
7080 WLAN_HAL_ROAM_TYPE_WPA_PSK,
7081 WLAN_HAL_ROAM_TYPE_WPA2_PSK,
7082 WLAN_HAL_ROAM_TYPE_OKC,
7083 WLAN_HAL_ROAM_TYPE_CCKM,
7084 WLAN_HAL_ROAM_TYPE_FT,
7085 WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
7086} tHalRoamOffloadType;
7087
7088typedef PACKED_PRE struct PACKED_POST
7089{
7090 /* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
7091 tANI_U16 beaconProbeRespOffset;
7092
7093 /* Length of beaon / probe resp. */
7094 tANI_U16 beaconProbeRespLength;
7095
7096 /* Offset of reassoc resp in this structure. Offset from the starting of the message */
7097 tANI_U16 reassocRespOffset;
7098
7099 /* Length of reassoc resp. */
7100 tANI_U16 reassocRespLength;
7101
7102 /* 0 for probe response frame, 1 for beacon frame, */
7103 tANI_U8 isBeacon;
7104
7105 /* staIdx of old AP */
7106 tANI_U8 oldStaIdx;
7107
7108 /* note : from bssIdx field to txMgmtPower are exactly mapped to
7109 tConfigBssRspParams */
7110 /* bssIdx of new roamed AP */
7111 tANI_U8 bssIdx;
7112
7113 /* DPU descriptor index for PTK */
7114 tANI_U8 dpuDescIndx;
7115
7116 /* PTK DPU signature */
7117 tANI_U8 ucastDpuSignature;
7118
7119 /* DPU descriptor index for GTK*/
7120 tANI_U8 bcastDpuDescIndx;
7121
7122 /* GTK DPU signature */
7123 tANI_U8 bcastDpuSignature;
7124
7125 /*DPU descriptor for IGTK*/
7126 tANI_U8 mgmtDpuDescIndx;
7127
7128 /* IGTK DPU signature */
7129 tANI_U8 mgmtDpuSignature;
7130
7131 /* Station Index for BSS entry*/
7132 tANI_U8 staIdx;
7133
7134 /* Self station index for this BSS */
7135 tANI_U8 selfStaIdx;
7136
7137 /* Bcast station for buffering bcast frames in AP role */
7138 tANI_U8 bcastStaIdx;
7139
7140 /* MAC address of roamed AP */
7141 tSirMacAddr bssid;
7142
7143 /*HAL fills in the tx power used for mgmt frames in this field. */
7144 tANI_S8 txMgmtPower;
7145
7146 /* success or failure */
7147 tHalRoamOffloadRoamAuthStatus authStatus;
7148
7149 /* TODO : add more info as needed */
7150
7151 /* beaconProbeRespOffset points to starting of beacon/probe resp frame */
7152 /* Beacon or probe resp from new AP. This is in 802.11
7153 frame format starting with MAC header. */
7154 /* Up to beaconProbeRespLength */
7155
7156 /* reassocRespOffset points to starting of reassoc resp frame */
7157 /* Reassoc resp from new AP. This is in 802.11
7158 frame format starting with MAC header. */
7159 /* Up to reassocRespLength */
7160
7161} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
7162
7163
7164typedef PACKED_PRE struct PACKED_POST
7165{
7166 tHalMsgHeader header;
7167 tHalRoamOffloadSynchIndParams params;
7168} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
7169
7170/*---------------------------------------------------------------------------
7171 * WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
7172 *-------------------------------------------------------------------------*/
7173typedef PACKED_PRE struct PACKED_POST
7174{
7175 /* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
7176 tSirMacAddr bssid;
7177} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
7178
7179typedef PACKED_PRE struct PACKED_POST
7180{
7181 tHalMsgHeader header;
7182 tHalRoamOffloadSynchCnfParams params;
7183} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
7184
7185
7186/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07007187 WLAN_HAL_RATE_UPDATE_IND
7188 *-------------------------------------------------------------------------*/
7189
7190typedef PACKED_PRE struct PACKED_POST
7191{
7192 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
7193 tANI_S32 ucastDataRate; //unit Mbpsx10
7194
7195 /* TX flag to differentiate between HT20, HT40 etc */
7196 tTxRateInfoFlags ucastDataRateTxFlag;
7197
7198 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
7199 tSirMacAddr bssid;
7200
7201 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
7202 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
7203
7204 /* TX flag to differentiate between HT20, HT40 etc */
7205 tTxRateInfoFlags reliableMcastDataRateTxFlag;
7206
7207 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
7208 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
7209
7210 /* TX flag to differentiate between HT20, HT40 etc */
7211 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
7212
7213 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
7214 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
7215
7216 /* TX flag to differentiate between HT20, HT40 etc */
7217 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
7218
7219} tHalRateUpdateParams, *tpHalRateUpdateParams;
7220
7221typedef PACKED_PRE struct PACKED_POST
7222{
7223 tHalMsgHeader header;
7224 tHalRateUpdateParams halRateUpdateParams;
7225} tHalRateUpdateInd, * tpHalRateUpdateInd;
7226
7227/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05307228 * WLAN_HAL_AVOID_FREQ_RANGE_IND
7229 *-------------------------------------------------------------------------*/
7230
7231#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 4
7232
7233typedef PACKED_PRE struct PACKED_POST
7234{
7235 tANI_U32 startFreq;
7236 tANI_U32 endFreq;
7237} tHalFreqRange, *tpHalFreqRange;
7238
7239typedef PACKED_PRE struct PACKED_POST
7240{
7241 tANI_U32 avoidCnt;
7242 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
7243} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
7244
7245typedef PACKED_PRE struct PACKED_POST
7246{
7247 tHalMsgHeader header;
7248 tHalAvoidFreqRangeIndParams freqRangeIndParams;
7249} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
7250
7251/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307252 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07007253 *-------------------------------------------------------------------------*/
7254
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307255typedef enum
7256{
7257 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
7258 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
7259 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
7260}tHT40OBssScanCmdType;
7261
7262typedef PACKED_PRE struct PACKED_POST
7263{
7264 tHT40OBssScanCmdType cmdType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007265
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307266 tSirScanType scanType;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007267 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
7268 tANI_U16 OBSSScanActiveDwellTime; // In TUs
7269 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
7270 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
7271 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
7272 tANI_U16 BSSWidthChannelTransitionDelayFactor;
7273 tANI_U16 OBSSScanActivityThreshold;
7274
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307275 tANI_U8 selfStaIdx;
7276 tANI_U8 bssIdx;
7277 tANI_U8 fortyMHZIntolerent;
7278 tANI_U8 channelCount;
7279 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
7280 tANI_U8 currentOperatingClass;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007281
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05307282 tANI_U16 ieFieldLen;
7283 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
7284}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
7285
7286typedef PACKED_PRE struct PACKED_POST
7287{
7288 tHalMsgHeader header;
7289 tHT40ObssScanIndType scanHT40ObssScanParams;
7290} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
7291
7292/*---------------------------------------------------------------------------
7293 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
7294 *-------------------------------------------------------------------------*/
7295typedef PACKED_PRE struct PACKED_POST
7296{
7297 tHalMsgHeader header;
7298 tANI_U8 bssIdx;
7299} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Amar Singhalb41c45b2014-03-21 14:44:14 -07007300
Jeff Johnson295189b2012-06-20 16:38:30 -07007301#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
7302#pragma pack(pop)
7303#elif defined(__ANI_COMPILER_PRAGMA_PACK)
7304#else
7305#endif
7306
7307#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07007308