blob: 376627769ffc0fa1dd6a339840b92b784e0841eb [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08002 * Copyright (c) 2012-2014, The Linux Foundation. All rights reserved.
Anand Kumar012623a2013-01-11 17:00:00 -08003 *
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 */
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070021
Jeff Johnson295189b2012-06-20 16:38:30 -070022/*==========================================================================
23 *
24 * @file: wlan_hal_msg.h
25 *
26 * @brief: Exports and types for messages sent to HAL from WDI
27 *
28 * @author: Kumar Anand
29 *
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -070030 * Copyright (C) 2010, Qualcomm Technologies, Inc.
Jeff Johnson295189b2012-06-20 16:38:30 -070031 * All rights reserved.
32 *
33 *=========================================================================*/
34
35#ifndef _WLAN_HAL_MSG_H_
36#define _WLAN_HAL_MSG_H_
37
38#include "halLegacyPalTypes.h"
39#include "halCompiler.h"
40#include "wlan_qct_dev_defs.h"
41#include "wlan_nv.h"
Anand Kumar012623a2013-01-11 17:00:00 -080042
Jeff Johnson295189b2012-06-20 16:38:30 -070043/*---------------------------------------------------------------------------
44 API VERSIONING INFORMATION
45
46 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
47 The MAJOR is incremented for major product/architecture changes
48 (and then MINOR/VERSION/REVISION are zeroed)
49 The MINOR is incremented for minor product/architecture changes
50 (and then VERSION/REVISION are zeroed)
51 The VERSION is incremented if a significant API change occurs
52 (and then REVISION is zeroed)
53 The REVISION is incremented if an insignificant API change occurs
54 or if a new API is added
55 All values are in the range 0..255 (ie they are 8-bit values)
56 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070057#define WLAN_HAL_VER_MAJOR 1
Kumar Anandea78e792013-10-10 23:47:01 -070058#define WLAN_HAL_VER_MINOR 5
Jeff Johnson295189b2012-06-20 16:38:30 -070059#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080060#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070061
62/*---------------------------------------------------------------------------
63 Commom Type definitons
64 ---------------------------------------------------------------------------*/
65
66//This is to force compiler to use the maximum of an int ( 4 bytes )
67#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070068#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070069
70//Max no. of transmit categories
71#define STACFG_MAX_TC 8
72
73//The maximum value of access category
74#define WLAN_HAL_MAX_AC 4
75
76typedef tANI_U8 tSirMacAddr[6];
77typedef tANI_U8 tHalIpv4Addr[4];
78
79#define HAL_MAC_ADDR_LEN 6
80#define HAL_IPV4_ADDR_LEN 4
81
82#define WALN_HAL_STA_INVALID_IDX 0xFF
83#define WLAN_HAL_BSS_INVALID_IDX 0xFF
84
85//Default Beacon template size
Jeff Johnson32d95a32012-09-10 13:15:23 -070086#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070087
Kumar Anandea78e792013-10-10 23:47:01 -070088
89//Max Tx Data Rate samples
90#define MAX_TX_RATE_SAMPLES 10
91//Max Beacon Rssi samples
92#define MAX_BCN_RSSI_SAMPLES 10
93
Jeff Johnson32d95a32012-09-10 13:15:23 -070094//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -070095#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
96#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
97#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
98#define PARAM_llACOEXIST_CHANGED (1 << 3)
99#define PARAM_llBCOEXIST_CHANGED (1 << 4)
100#define PARAM_llGCOEXIST_CHANGED (1 << 5)
101#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
102#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
103#define PARAM_RIFS_MODE_CHANGED (1<<8)
104#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
105#define PARAM_OBSS_MODE_CHANGED (1<<10)
106#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
107 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)
108
109/*Dump command response Buffer size*/
Gopichand Nakkala089c2582013-04-04 15:40:10 +0530110#define DUMPCMD_RSP_BUFFER 500
Jeff Johnson295189b2012-06-20 16:38:30 -0700111
112/*Version string max length (including NUL) */
113#define WLAN_HAL_VERSION_LENGTH 64
114
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530115#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
116#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS NUM_RF_CHANNELS
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -0800117#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 56
Yue Maab3ccfc2013-08-14 17:19:08 -0700118
Jeff Johnson295189b2012-06-20 16:38:30 -0700119/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700120typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700121{
122 //Init/De-Init
123 WLAN_HAL_START_REQ = 0,
124 WLAN_HAL_START_RSP = 1,
125 WLAN_HAL_STOP_REQ = 2,
126 WLAN_HAL_STOP_RSP = 3,
127
128 //Scan
129 WLAN_HAL_INIT_SCAN_REQ = 4,
130 WLAN_HAL_INIT_SCAN_RSP = 5,
131 WLAN_HAL_START_SCAN_REQ = 6,
132 WLAN_HAL_START_SCAN_RSP = 7 ,
133 WLAN_HAL_END_SCAN_REQ = 8,
134 WLAN_HAL_END_SCAN_RSP = 9,
135 WLAN_HAL_FINISH_SCAN_REQ = 10,
136 WLAN_HAL_FINISH_SCAN_RSP = 11,
137
138 // HW STA configuration/deconfiguration
139 WLAN_HAL_CONFIG_STA_REQ = 12,
140 WLAN_HAL_CONFIG_STA_RSP = 13,
141 WLAN_HAL_DELETE_STA_REQ = 14,
142 WLAN_HAL_DELETE_STA_RSP = 15,
143 WLAN_HAL_CONFIG_BSS_REQ = 16,
144 WLAN_HAL_CONFIG_BSS_RSP = 17,
145 WLAN_HAL_DELETE_BSS_REQ = 18,
146 WLAN_HAL_DELETE_BSS_RSP = 19,
147
148 //Infra STA asscoiation
149 WLAN_HAL_JOIN_REQ = 20,
150 WLAN_HAL_JOIN_RSP = 21,
151 WLAN_HAL_POST_ASSOC_REQ = 22,
152 WLAN_HAL_POST_ASSOC_RSP = 23,
153
154 //Security
155 WLAN_HAL_SET_BSSKEY_REQ = 24,
156 WLAN_HAL_SET_BSSKEY_RSP = 25,
157 WLAN_HAL_SET_STAKEY_REQ = 26,
158 WLAN_HAL_SET_STAKEY_RSP = 27,
159 WLAN_HAL_RMV_BSSKEY_REQ = 28,
160 WLAN_HAL_RMV_BSSKEY_RSP = 29,
161 WLAN_HAL_RMV_STAKEY_REQ = 30,
162 WLAN_HAL_RMV_STAKEY_RSP = 31,
163
164 //Qos Related
165 WLAN_HAL_ADD_TS_REQ = 32,
166 WLAN_HAL_ADD_TS_RSP = 33,
167 WLAN_HAL_DEL_TS_REQ = 34,
168 WLAN_HAL_DEL_TS_RSP = 35,
169 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
170 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
171 WLAN_HAL_ADD_BA_REQ = 38,
172 WLAN_HAL_ADD_BA_RSP = 39,
173 WLAN_HAL_DEL_BA_REQ = 40,
174 WLAN_HAL_DEL_BA_RSP = 41,
175
176 WLAN_HAL_CH_SWITCH_REQ = 42,
177 WLAN_HAL_CH_SWITCH_RSP = 43,
178 WLAN_HAL_SET_LINK_ST_REQ = 44,
179 WLAN_HAL_SET_LINK_ST_RSP = 45,
180 WLAN_HAL_GET_STATS_REQ = 46,
181 WLAN_HAL_GET_STATS_RSP = 47,
182 WLAN_HAL_UPDATE_CFG_REQ = 48,
183 WLAN_HAL_UPDATE_CFG_RSP = 49,
184
185 WLAN_HAL_MISSED_BEACON_IND = 50,
186 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
187 WLAN_HAL_MIC_FAILURE_IND = 52,
188 WLAN_HAL_FATAL_ERROR_IND = 53,
189 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700190
Jeff Johnson295189b2012-06-20 16:38:30 -0700191 //NV Interface
192 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
193 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
194
195 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
196 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
197 WLAN_HAL_TRIGGER_BA_REQ = 59,
198 WLAN_HAL_TRIGGER_BA_RSP = 60,
199 WLAN_HAL_UPDATE_BEACON_REQ = 61,
200 WLAN_HAL_UPDATE_BEACON_RSP = 62,
201 WLAN_HAL_SEND_BEACON_REQ = 63,
202 WLAN_HAL_SEND_BEACON_RSP = 64,
203
204 WLAN_HAL_SET_BCASTKEY_REQ = 65,
205 WLAN_HAL_SET_BCASTKEY_RSP = 66,
206 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
207 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
208 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700209
Jeff Johnson295189b2012-06-20 16:38:30 -0700210 // PTT interface support
211 WLAN_HAL_PROCESS_PTT_REQ = 70,
212 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700213
Jeff Johnson295189b2012-06-20 16:38:30 -0700214 // BTAMP related events
215 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
216 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
217 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
218 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
219
220 WLAN_HAL_ENTER_IMPS_REQ = 76,
221 WLAN_HAL_EXIT_IMPS_REQ = 77,
222 WLAN_HAL_ENTER_BMPS_REQ = 78,
223 WLAN_HAL_EXIT_BMPS_REQ = 79,
224 WLAN_HAL_ENTER_UAPSD_REQ = 80,
225 WLAN_HAL_EXIT_UAPSD_REQ = 81,
226 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
227 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
228 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
229 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
230 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
231 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
232 WLAN_HAL_ENTER_WOWL_REQ = 88,
233 WLAN_HAL_EXIT_WOWL_REQ = 89,
234 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
235 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
236 WLAN_HAL_GET_RSSI_REQ = 92,
237 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
238 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
239
240 WLAN_HAL_ENTER_IMPS_RSP = 95,
241 WLAN_HAL_EXIT_IMPS_RSP = 96,
242 WLAN_HAL_ENTER_BMPS_RSP = 97,
243 WLAN_HAL_EXIT_BMPS_RSP = 98,
244 WLAN_HAL_ENTER_UAPSD_RSP = 99,
245 WLAN_HAL_EXIT_UAPSD_RSP = 100,
246 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
247 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
248 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
249 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
250 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
251 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
252 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
253 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
254 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
255 WLAN_HAL_ENTER_WOWL_RSP = 110,
256 WLAN_HAL_EXIT_WOWL_RSP = 111,
257 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
258 WLAN_HAL_GET_RSSI_RSP = 113,
259 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
260
261 //11k related events
262 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
263 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
264
265 //11R related msgs
266 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
267 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
268
269 //P2P WLAN_FEATURE_P2P
270 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
271 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700272
Jeff Johnson295189b2012-06-20 16:38:30 -0700273 //WLAN Dump commands
274 WLAN_HAL_DUMP_COMMAND_REQ = 121,
275 WLAN_HAL_DUMP_COMMAND_RSP = 122,
276
Jeff Johnsone7245742012-09-05 17:12:55 -0700277 //OEM_DATA FEATURE SUPPORT
278 WLAN_HAL_START_OEM_DATA_REQ = 123,
279 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700280
281 //ADD SELF STA REQ and RSP
282 WLAN_HAL_ADD_STA_SELF_REQ = 125,
283 WLAN_HAL_ADD_STA_SELF_RSP = 126,
284
285 //DEL SELF STA SUPPORT
286 WLAN_HAL_DEL_STA_SELF_REQ = 127,
287 WLAN_HAL_DEL_STA_SELF_RSP = 128,
288
289 // Coex Indication
290 WLAN_HAL_COEX_IND = 129,
291
Jeff Johnson32d95a32012-09-10 13:15:23 -0700292 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700293 WLAN_HAL_OTA_TX_COMPL_IND = 130,
294
295 //Host Suspend/resume messages
296 WLAN_HAL_HOST_SUSPEND_IND = 131,
297 WLAN_HAL_HOST_RESUME_REQ = 132,
298 WLAN_HAL_HOST_RESUME_RSP = 133,
299
300 WLAN_HAL_SET_TX_POWER_REQ = 134,
301 WLAN_HAL_SET_TX_POWER_RSP = 135,
302 WLAN_HAL_GET_TX_POWER_REQ = 136,
303 WLAN_HAL_GET_TX_POWER_RSP = 137,
304
305 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700306
Jeff Johnson295189b2012-06-20 16:38:30 -0700307 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
308 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
309 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
310 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
311 WLAN_HAL_RADAR_DETECT_IND = 143,
312 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
313 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700314 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700315
316 /*PNO messages*/
317 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
318 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
319 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
320 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
321 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
322 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700323 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700324
325 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
326 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
327 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700328
Jeff Johnson295189b2012-06-20 16:38:30 -0700329 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700330 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700331
332 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700333 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700334 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700335 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700336 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700337 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
338 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700339 * Host and Riva code is in sync*/
340 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700341
Jeff Johnson295189b2012-06-20 16:38:30 -0700342 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
343 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
344
345 WLAN_HAL_TSM_STATS_REQ = 168,
346 WLAN_HAL_TSM_STATS_RSP = 169,
347
348 // wake reason indication (WOW)
349 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700350 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700351 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
352 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
353 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
354 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
355
356 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
357 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
358 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
359
360 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
361 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
362
Anand Kumar012623a2013-01-11 17:00:00 -0800363 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
364 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800365
Anand Kumar012623a2013-01-11 17:00:00 -0800366 WLAN_HAL_P2P_NOA_START_IND = 184,
367
368 WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
369 WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
Tushnim Bhattacharyya5dd94562013-03-20 20:15:03 -0700370
Shailender Karmuchiebe0e612013-01-18 18:49:14 -0800371 WLAN_HAL_CLASS_B_STATS_IND = 187,
372 WLAN_HAL_DEL_BA_IND = 188,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800373 WLAN_HAL_DHCP_START_IND = 189,
374 WLAN_HAL_DHCP_STOP_IND = 190,
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -0700375 WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
376 WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +0530377 WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
378 WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
Shailender Karmuchi07f514b2013-06-25 01:14:09 -0700379
380 WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
381 WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
382 WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
383
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530384 WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
385 WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
386 WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
387 WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
388 WLAN_HAL_TDLS_IND = 202,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -0700389 WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
Leo Chang397deb72013-08-22 11:33:16 -0700390
Kumar Anandf53016f2013-09-04 15:15:53 -0700391 /* Scan Offload APIs */
392 WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
393 WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
394 WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
395 WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
396 WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
397 WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
398 WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
399
Leo Chang397deb72013-08-22 11:33:16 -0700400 /* APIs to offload TCP/UDP Heartbeat handshakes */
401 WLAN_HAL_LPHB_CFG_REQ = 211,
402 WLAN_HAL_LPHB_CFG_RSP = 212,
403 WLAN_HAL_LPHB_IND = 213,
404
Yue Maab3ccfc2013-08-14 17:19:08 -0700405 WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
406 WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
407 WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +0530408
Kumar Anandf53016f2013-09-04 15:15:53 -0700409 // Events to set Per-Band Tx Power Limit
410 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
411 WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
412
413 /* Reliable Multicast using Leader Based Protocol */
414 WLAN_HAL_LBP_LEADER_REQ = 219,
415 WLAN_HAL_LBP_LEADER_RSP = 220,
416 WLAN_HAL_LBP_UPDATE_IND = 221,
417
krunal soni2a4728d2013-09-20 21:56:50 -0700418 /* Batchscan */
419 WLAN_HAL_BATCHSCAN_SET_REQ = 222,
420 WLAN_HAL_BATCHSCAN_SET_RSP = 223,
421 WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
422 WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
423 WLAN_HAL_BATCHSCAN_STOP_IND = 226,
424
425 WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
426 WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
427
Chittajit Mitraf5413a42013-10-18 14:20:08 -0700428 WLAN_HAL_RATE_UPDATE_IND = 229,
429
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +0530430 /* Tx Fail for weak link notification */
431 WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
432 WLAN_HAL_TX_FAIL_IND = 231,
433
434 /* Multi-hop IP routing offload */
435 WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
436
437 WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +0530438 /* 2G4 HT40 OBSS scan */
439 WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
440 WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800441 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700442}tHalHostMsgType;
443
Jeff Johnsone7245742012-09-05 17:12:55 -0700444/* Enumeration for Version */
445typedef enum
446{
447 WLAN_HAL_MSG_VERSION0 = 0,
448 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800449 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
450 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700451}tHalHostMsgVersion;
452
Jeff Johnson295189b2012-06-20 16:38:30 -0700453/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700454typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700455{
456 eANI_BOOLEAN_FALSE = 0,
457 eANI_BOOLEAN_TRUE,
458 eANI_BOOLEAN_OFF = 0,
459 eANI_BOOLEAN_ON = 1,
460 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
461} eAniBoolean;
462
463typedef enum
464{
465 eDRIVER_TYPE_PRODUCTION = 0,
466 eDRIVER_TYPE_MFG = 1,
467 eDRIVER_TYPE_DVT = 2,
468 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
469} tDriverType;
470
471typedef enum
472{
473 HAL_STOP_TYPE_SYS_RESET,
474 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
475 HAL_STOP_TYPE_RF_KILL,
476 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
477}tHalStopType;
478
479typedef enum
480{
481 eHAL_SYS_MODE_NORMAL,
482 eHAL_SYS_MODE_LEARN,
483 eHAL_SYS_MODE_SCAN,
484 eHAL_SYS_MODE_PROMISC,
485 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700486 eHAL_SYS_MODE_ROAM_SCAN,
487 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700488 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700489 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
490} eHalSysMode;
491
492typedef enum
493{
494 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
495 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
496 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
497 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700498#ifdef WLAN_FEATURE_11AC
499 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
500 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
501 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
502 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
503 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
504 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
505 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
506#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700507 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
508}ePhyChanBondState;
509
510// Spatial Multiplexing(SM) Power Save mode
511typedef enum eSirMacHTMIMOPowerSaveState
512{
513 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
514 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
515 eSIR_HT_MIMO_PS_NA = 2, // reserved
516 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
517 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
518} tSirMacHTMIMOPowerSaveState;
519
520/* each station added has a rate mode which specifies the sta attributes */
521typedef enum eStaRateMode {
522 eSTA_TAURUS = 0,
523 eSTA_TITAN,
524 eSTA_POLARIS,
525 eSTA_11b,
526 eSTA_11bg,
527 eSTA_11a,
528 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700529#ifdef WLAN_FEATURE_11AC
530 eSTA_11ac,
531#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700532 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
533} tStaRateMode, *tpStaRateMode;
534
535#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
536#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
537#define SIR_NUM_POLARIS_RATES 3 //72,96,108
538
539#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
540
541
542typedef enum eSirBssType
543{
544 eSIR_INFRASTRUCTURE_MODE,
545 eSIR_INFRA_AP_MODE, //Added for softAP support
546 eSIR_IBSS_MODE,
547 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
548 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
549 eSIR_AUTO_MODE,
550 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
551} tSirBssType;
552
553typedef enum eSirNwType
554{
555 eSIR_11A_NW_TYPE,
556 eSIR_11B_NW_TYPE,
557 eSIR_11G_NW_TYPE,
558 eSIR_11N_NW_TYPE,
559 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
560} tSirNwType;
561
562typedef tANI_U16 tSirMacBeaconInterval;
563
564#define SIR_MAC_RATESET_EID_MAX 12
565
566typedef enum eSirMacHTOperatingMode
567{
568 eSIR_HT_OP_MODE_PURE, // No Protection
569 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
570 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
571 eSIR_HT_OP_MODE_MIXED, // Protection is required
572 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
573} tSirMacHTOperatingMode;
574
Jeff Johnson295189b2012-06-20 16:38:30 -0700575/// Encryption type enum used with peer
576typedef enum eAniEdType
577{
578 eSIR_ED_NONE,
579 eSIR_ED_WEP40,
580 eSIR_ED_WEP104,
581 eSIR_ED_TKIP,
582 eSIR_ED_CCMP,
583 eSIR_ED_WPI,
584 eSIR_ED_AES_128_CMAC,
585 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
586} tAniEdType;
587
588#define WLAN_MAX_KEY_RSC_LEN 16
589#define WLAN_WAPI_KEY_RSC_LEN 16
590
591/// MAX key length when ULA is used
592#define SIR_MAC_MAX_KEY_LENGTH 32
593#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
594
595/// Enum to specify whether key is used
596/// for TX only, RX only or both
597typedef enum eAniKeyDirection
598{
599 eSIR_TX_ONLY,
600 eSIR_RX_ONLY,
601 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700602 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700603 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
604} tAniKeyDirection;
605
606typedef enum eAniWepType
607{
608 eSIR_WEP_STATIC,
609 eSIR_WEP_DYNAMIC,
610 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
611} tAniWepType;
612
613typedef enum eSriLinkState {
614
615 eSIR_LINK_IDLE_STATE = 0,
616 eSIR_LINK_PREASSOC_STATE = 1,
617 eSIR_LINK_POSTASSOC_STATE = 2,
618 eSIR_LINK_AP_STATE = 3,
619 eSIR_LINK_IBSS_STATE = 4,
620
621 /* BT-AMP Case */
622 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
623 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
624 eSIR_LINK_BTAMP_AP_STATE = 7,
625 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700626
Jeff Johnson295189b2012-06-20 16:38:30 -0700627 /* Reserved for HAL Internal Use */
628 eSIR_LINK_LEARN_STATE = 9,
629 eSIR_LINK_SCAN_STATE = 10,
630 eSIR_LINK_FINISH_SCAN_STATE = 11,
631 eSIR_LINK_INIT_CAL_STATE = 12,
632 eSIR_LINK_FINISH_CAL_STATE = 13,
633#ifdef WLAN_FEATURE_P2P
634 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530635 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700636#endif
637 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
638} tSirLinkState;
639
640typedef enum
641{
642 HAL_SUMMARY_STATS_INFO = 0x00000001,
643 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
644 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
645 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
646 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
647 HAL_PER_STA_STATS_INFO = 0x00000020
648}eHalStatsMask;
649
650/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700651typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700652{
653 BTAMP_EVENT_CONNECTION_START,
654 BTAMP_EVENT_CONNECTION_STOP,
655 BTAMP_EVENT_CONNECTION_TERMINATED,
656 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
657} tBtAmpEventType;
658
659//***************************************************************
660
661
662/*******************PE Statistics*************************/
663typedef enum
664{
665 PE_SUMMARY_STATS_INFO = 0x00000001,
666 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
667 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
668 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
669 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
670 PE_PER_STA_STATS_INFO = 0x00000020,
671 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
672}ePEStatsMask;
673
674/*---------------------------------------------------------------------------
675 Message definitons - All the messages below need to be packed
676 ---------------------------------------------------------------------------*/
677
678#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
679#pragma pack(push, 1)
680#elif defined(__ANI_COMPILER_PRAGMA_PACK)
681#pragma pack(1)
682#else
683#endif
684
685/// Definition for HAL API Version.
686typedef PACKED_PRE struct PACKED_POST
687{
688 tANI_U8 revision;
689 tANI_U8 version;
690 tANI_U8 minor;
691 tANI_U8 major;
692} tWcnssWlanVersion, *tpWcnssWlanVersion;
693
694/// Definition for Encryption Keys
695typedef PACKED_PRE struct PACKED_POST
696{
697 tANI_U8 keyId;
698 tANI_U8 unicast; // 0 for multicast
699 tAniKeyDirection keyDirection;
700 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
701 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
702 tANI_U16 keyLength;
703 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
704} tSirKeys, *tpSirKeys;
705
706
707//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
708typedef PACKED_PRE struct PACKED_POST
709{
710 /*STA Index*/
711 tANI_U16 staIdx;
712
713 /*Encryption Type used with peer*/
714 tAniEdType encType;
715
716 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700717 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700718
719 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
720 tANI_U8 defWEPIdx;
721
Jeff Johnson295189b2012-06-20 16:38:30 -0700722 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700723 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
724
Jeff Johnson295189b2012-06-20 16:38:30 -0700725 /*Control for Replay Count, 1= Single TID based replay count on Tx
726 0 = Per TID based replay count on TX */
727 tANI_U8 singleTidRc;
728
729} tSetStaKeyParams, *tpSetStaKeyParams;
730
731
732
733/* 4-byte control message header used by HAL*/
734typedef PACKED_PRE struct PACKED_POST
735{
Jeff Johnsone7245742012-09-05 17:12:55 -0700736 tHalHostMsgType msgType:16;
737 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700738 tANI_U32 msgLen;
739} tHalMsgHeader, *tpHalMsgHeader;
740
741/* Config format required by HAL for each CFG item*/
742typedef PACKED_PRE struct PACKED_POST
743{
744 /* Cfg Id. The Id required by HAL is exported by HAL
745 * in shared header file between UMAC and HAL.*/
746 tANI_U16 uCfgId;
747
Jeff Johnson32d95a32012-09-10 13:15:23 -0700748 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700749 * in the TLV format.*/
750 tANI_U16 uCfgLen;
751
752 /* Padding bytes for unaligned address's */
753 tANI_U16 uCfgPadBytes;
754
755 /* Reserve bytes for making cfgVal to align address */
756 tANI_U16 uCfgReserve;
757
758 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
759 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
760} tHalCfg, *tpHalCfg;
761
762/*---------------------------------------------------------------------------
763 WLAN_HAL_START_REQ
764---------------------------------------------------------------------------*/
765
766typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
767{
768 /* Drive Type - Production or FTM etc */
769 tDriverType driverType;
770
771 /*Length of the config buffer*/
772 tANI_U32 uConfigBufferLen;
773
Jeff Johnson32d95a32012-09-10 13:15:23 -0700774 /* Following this there is a TLV formatted buffer of length
775 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700776 * The TLV is expected to be formatted like this:
777 * 0 15 31 31+CFG_LEN-1 length-1
778 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
779 */
780} tHalMacStartParameters, *tpHalMacStartParameters;
781
782typedef PACKED_PRE struct PACKED_POST
783{
784 /* Note: The length specified in tHalMacStartReqMsg messages should be
785 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
786 tHalMsgHeader header;
787 tHalMacStartParameters startReqParams;
788} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
789
790/*---------------------------------------------------------------------------
791 WLAN_HAL_START_RSP
792---------------------------------------------------------------------------*/
793
794typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
795{
796 /*success or failure */
797 tANI_U16 status;
798
799 /*Max number of STA supported by the device*/
800 tANI_U8 ucMaxStations;
801
802 /*Max number of BSS supported by the device*/
803 tANI_U8 ucMaxBssids;
804
805 /*API Version */
806 tWcnssWlanVersion wcnssWlanVersion;
807
808 /*CRM build information */
809 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
810
811 /*hardware/chipset/misc version information */
812 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
813
814} tHalMacStartRspParams, *tpHalMacStartRspParams;
815
816typedef PACKED_PRE struct PACKED_POST
817{
818 tHalMsgHeader header;
819 tHalMacStartRspParams startRspParams;
820} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
821
822/*---------------------------------------------------------------------------
823 WLAN_HAL_STOP_REQ
824---------------------------------------------------------------------------*/
825
826typedef PACKED_PRE struct PACKED_POST
827{
828 /*The reason for which the device is being stopped*/
829 tHalStopType reason;
830
831}tHalMacStopReqParams, *tpHalMacStopReqParams;
832
833typedef PACKED_PRE struct PACKED_POST
834{
835 tHalMsgHeader header;
836 tHalMacStopReqParams stopReqParams;
837} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
838
839/*---------------------------------------------------------------------------
840 WLAN_HAL_STOP_RSP
841---------------------------------------------------------------------------*/
842
843typedef PACKED_PRE struct PACKED_POST
844{
845 /*success or failure */
846 tANI_U32 status;
847
848}tHalMacStopRspParams, *tpHalMacStopRspParams;
849
850typedef PACKED_PRE struct PACKED_POST
851{
852 tHalMsgHeader header;
853 tHalMacStopRspParams stopRspParams;
854} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
855
856/*---------------------------------------------------------------------------
857 WLAN_HAL_UPDATE_CFG_REQ
858---------------------------------------------------------------------------*/
859
860typedef PACKED_PRE struct PACKED_POST
861{
862 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
863 tANI_U32 uConfigBufferLen;
864
Jeff Johnson32d95a32012-09-10 13:15:23 -0700865 /* Following this there is a TLV formatted buffer of length
866 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700867 * The TLV is expected to be formatted like this:
868 * 0 15 31 31+CFG_LEN-1 length-1
869 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
870 */
871} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
872
873typedef PACKED_PRE struct PACKED_POST
874{
875 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
876 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
877 tHalMsgHeader header;
878 tHalUpdateCfgReqParams updateCfgReqParams;
879} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
880
881/*---------------------------------------------------------------------------
882 WLAN_HAL_UPDATE_CFG_RSP
883---------------------------------------------------------------------------*/
884
885typedef PACKED_PRE struct PACKED_POST
886{
887 /* success or failure */
888 tANI_U32 status;
889
890}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
891
892typedef PACKED_PRE struct PACKED_POST
893{
894 tHalMsgHeader header;
895 tHalUpdateCfgRspParams updateCfgRspParams;
896} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
897
898/*---------------------------------------------------------------------------
899 WLAN_HAL_INIT_SCAN_REQ
900---------------------------------------------------------------------------*/
901
902/// Frame control field format (2 bytes)
903typedef __ani_attr_pre_packed struct sSirMacFrameCtl
904{
905
906#ifndef ANI_LITTLE_BIT_ENDIAN
907
908 tANI_U8 subType :4;
909 tANI_U8 type :2;
910 tANI_U8 protVer :2;
911
912 tANI_U8 order :1;
913 tANI_U8 wep :1;
914 tANI_U8 moreData :1;
915 tANI_U8 powerMgmt :1;
916 tANI_U8 retry :1;
917 tANI_U8 moreFrag :1;
918 tANI_U8 fromDS :1;
919 tANI_U8 toDS :1;
920
921#else
922
923 tANI_U8 protVer :2;
924 tANI_U8 type :2;
925 tANI_U8 subType :4;
926
927 tANI_U8 toDS :1;
928 tANI_U8 fromDS :1;
929 tANI_U8 moreFrag :1;
930 tANI_U8 retry :1;
931 tANI_U8 powerMgmt :1;
932 tANI_U8 moreData :1;
933 tANI_U8 wep :1;
934 tANI_U8 order :1;
935
936#endif
937
938} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
939
940/// Sequence control field
941typedef __ani_attr_pre_packed struct sSirMacSeqCtl
942{
943 tANI_U8 fragNum : 4;
944 tANI_U8 seqNumLo : 4;
945 tANI_U8 seqNumHi : 8;
946} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
947
948/// Management header format
949typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
950{
951 tSirMacFrameCtl fc;
952 tANI_U8 durationLo;
953 tANI_U8 durationHi;
954 tANI_U8 da[6];
955 tANI_U8 sa[6];
956 tANI_U8 bssId[6];
957 tSirMacSeqCtl seqControl;
958} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
959
960/// Scan Entry to hold active BSS idx's
961typedef __ani_attr_pre_packed struct sSirScanEntry
962{
963 tANI_U8 bssIdx[HAL_NUM_BSSID];
964 tANI_U8 activeBSScnt;
965}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
966
967typedef PACKED_PRE struct PACKED_POST {
968
969 /*LEARN - AP Role
970 SCAN - STA Role*/
971 eHalSysMode scanMode;
972
973 /*BSSID of the BSS*/
974 tSirMacAddr bssid;
975
976 /*Whether BSS needs to be notified*/
977 tANI_U8 notifyBss;
978
979 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
980 CTS to Self). Must always be a valid frame type.*/
981 tANI_U8 frameType;
982
983 /*UMAC has the option of passing the MAC frame to be used for notifying
984 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
985 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
986 frameType.*/
987 tANI_U8 frameLength;
988
Jeff Johnson32d95a32012-09-10 13:15:23 -0700989 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700990 is non-zero. */
991 tSirMacMgmtHdr macMgmtHdr;
992
993 /*Entry to hold number of active BSS idx's*/
994 tSirScanEntry scanEntry;
995
996} tInitScanParams, * tpInitScanParams;
997
998typedef PACKED_PRE struct PACKED_POST
999{
1000 tHalMsgHeader header;
1001 tInitScanParams initScanParams;
1002} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1003
1004typedef PACKED_PRE struct PACKED_POST {
1005
1006 /*LEARN - AP Role
1007 SCAN - STA Role*/
1008 eHalSysMode scanMode;
1009
1010 /*BSSID of the BSS*/
1011 tSirMacAddr bssid;
1012
1013 /*Whether BSS needs to be notified*/
1014 tANI_U8 notifyBss;
1015
1016 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1017 CTS to Self). Must always be a valid frame type.*/
1018 tANI_U8 frameType;
1019
1020 /*UMAC has the option of passing the MAC frame to be used for notifying
1021 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1022 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1023 frameType.*/
1024 tANI_U8 frameLength;
1025
Jeff Johnson32d95a32012-09-10 13:15:23 -07001026 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001027 is non-zero. */
1028 tSirMacMgmtHdr macMgmtHdr;
1029
1030 /*Entry to hold number of active BSS idx's*/
1031 tSirScanEntry scanEntry;
1032
1033 /* Single NoA usage in Scanning */
1034 tANI_U8 useNoA;
1035
1036 /* Indicates the scan duration (in ms) */
1037 tANI_U16 scanDuration;
1038
1039} tInitScanConParams, * tpInitScanConParams;
1040
1041typedef PACKED_PRE struct PACKED_POST
1042{
1043 tHalMsgHeader header;
1044 tInitScanConParams initScanParams;
1045} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1046
1047
1048/*---------------------------------------------------------------------------
1049 WLAN_HAL_INIT_SCAN_RSP
1050---------------------------------------------------------------------------*/
1051
1052typedef PACKED_PRE struct PACKED_POST
1053{
1054 /*success or failure */
1055 tANI_U32 status;
1056
1057}tHalInitScanRspParams, *tpHalInitScanRspParams;
1058
1059typedef PACKED_PRE struct PACKED_POST
1060{
1061 tHalMsgHeader header;
1062 tHalInitScanRspParams initScanRspParams;
1063} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1064
1065/*---------------------------------------------------------------------------
1066 WLAN_HAL_START_SCAN_REQ
1067---------------------------------------------------------------------------*/
1068
Jeff Johnson32d95a32012-09-10 13:15:23 -07001069typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001070{
1071 /*Indicates the channel to scan*/
1072 tANI_U8 scanChannel;
1073
1074 } tStartScanParams, * tpStartScanParams;
1075
1076typedef PACKED_PRE struct PACKED_POST
1077{
1078 tHalMsgHeader header;
1079 tStartScanParams startScanParams;
1080} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1081
1082/*---------------------------------------------------------------------------
1083 WLAN_HAL_START_SCAN_RSP
1084---------------------------------------------------------------------------*/
1085
1086typedef PACKED_PRE struct PACKED_POST
1087{
1088 /*success or failure */
1089 tANI_U32 status;
1090
1091 tANI_U32 startTSF[2];
1092 tPowerdBm txMgmtPower;
1093
1094}tHalStartScanRspParams, *tpHalStartScanRspParams;
1095
1096typedef PACKED_PRE struct PACKED_POST
1097{
1098 tHalMsgHeader header;
1099 tHalStartScanRspParams startScanRspParams;
1100} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1101
1102/*---------------------------------------------------------------------------
1103 WLAN_HAL_END_SCAN_REQ
1104---------------------------------------------------------------------------*/
1105
1106typedef PACKED_PRE struct PACKED_POST
1107{
1108 /*Indicates the channel to stop scanning. Not used really. But retained
1109 for symmetry with "start Scan" message. It can also help in error
1110 check if needed.*/
1111 tANI_U8 scanChannel;
1112
1113} tEndScanParams, *tpEndScanParams;
1114
1115typedef PACKED_PRE struct PACKED_POST
1116{
1117 tHalMsgHeader header;
1118 tEndScanParams endScanParams;
1119} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1120
1121/*---------------------------------------------------------------------------
1122 WLAN_HAL_END_SCAN_RSP
1123---------------------------------------------------------------------------*/
1124
1125typedef PACKED_PRE struct PACKED_POST
1126{
1127 /*success or failure */
1128 tANI_U32 status;
1129
1130}tHalEndScanRspParams, *tpHalEndScanRspParams;
1131
1132typedef PACKED_PRE struct PACKED_POST
1133{
1134 tHalMsgHeader header;
1135 tHalEndScanRspParams endScanRspParams;
1136} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1137
1138/*---------------------------------------------------------------------------
1139 WLAN_HAL_FINISH_SCAN_REQ
1140---------------------------------------------------------------------------*/
1141
1142typedef PACKED_PRE struct PACKED_POST
1143{
1144 /* Identifies the operational state of the AP/STA
1145 * LEARN - AP Role SCAN - STA Role */
1146 eHalSysMode scanMode;
1147
1148 /*Operating channel to tune to.*/
1149 tANI_U8 currentOperChannel;
1150
1151 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1152 40 MHz extension channel in combination with the control channel*/
1153 ePhyChanBondState cbState;
1154
1155 /*BSSID of the BSS*/
1156 tSirMacAddr bssid;
1157
1158 /*Whether BSS needs to be notified*/
1159 tANI_U8 notifyBss;
1160
1161 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1162 CTS to Self). Must always be a valid frame type.*/
1163 tANI_U8 frameType;
1164
1165 /*UMAC has the option of passing the MAC frame to be used for notifying
1166 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1167 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1168 frameType.*/
1169 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001170
1171 /*Following the framelength there is a MAC frame buffer if frameLength
1172 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001173 tSirMacMgmtHdr macMgmtHdr;
1174
1175 /*Entry to hold number of active BSS idx's*/
1176 tSirScanEntry scanEntry;
1177
1178} tFinishScanParams, *tpFinishScanParams;
1179
1180typedef PACKED_PRE struct PACKED_POST
1181{
1182 tHalMsgHeader header;
1183 tFinishScanParams finishScanParams;
1184} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1185
1186/*---------------------------------------------------------------------------
1187 WLAN_HAL_FINISH_SCAN_RSP
1188---------------------------------------------------------------------------*/
1189
1190typedef PACKED_PRE struct PACKED_POST
1191{
1192 /*success or failure */
1193 tANI_U32 status;
1194
1195}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1196
1197typedef PACKED_PRE struct PACKED_POST
1198{
1199 tHalMsgHeader header;
1200 tHalFinishScanRspParams finishScanRspParams;
1201} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1202
1203/*---------------------------------------------------------------------------
1204 WLAN_HAL_CONFIG_STA_REQ
1205---------------------------------------------------------------------------*/
1206
1207typedef PACKED_PRE struct PACKED_POST {
1208 /*
1209 * For Self STA Entry: this represents Self Mode.
1210 * For Peer Stations, this represents the mode of the peer.
1211 * On Station:
1212 * --this mode is updated when PE adds the Self Entry.
1213 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1214 * ON AP:
1215 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1216 * to indicate the self mode of the AP.
1217 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1218 */
1219
1220 tStaRateMode opRateMode;
1221 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1222 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1223 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1224 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1225 tANI_U16 reserved;
1226
1227 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1228 //First 26 bits are reserved for those Titan rates and
1229 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1230 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1231
1232 /*
1233 * 0-76 bits used, remaining reserved
1234 * bits 0-15 and 32 should be set.
1235 */
1236 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1237
1238 /*
1239 * RX Highest Supported Data Rate defines the highest data
1240 * rate that the STA is able to receive, in unites of 1Mbps.
1241 * This value is derived from "Supported MCS Set field" inside
1242 * the HT capability element.
1243 */
1244 tANI_U16 rxHighestDataRate;
1245
1246} tSirSupportedRates, *tpSirSupportedRates;
1247
1248typedef PACKED_PRE struct PACKED_POST
1249{
1250 /*BSSID of STA*/
1251 tSirMacAddr bssId;
1252
1253 /*ASSOC ID, as assigned by UMAC*/
1254 tANI_U16 assocId;
1255
1256 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1257 tANI_U8 staType;
1258
1259 /*Short Preamble Supported.*/
1260 tANI_U8 shortPreambleSupported;
1261
1262 /*MAC Address of STA*/
1263 tSirMacAddr staMac;
1264
1265 /*Listen interval of the STA*/
1266 tANI_U16 listenInterval;
1267
1268 /*Support for 11e/WMM*/
1269 tANI_U8 wmmEnabled;
1270
1271 /*11n HT capable STA*/
1272 tANI_U8 htCapable;
1273
1274 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1275 tANI_U8 txChannelWidthSet;
1276
1277 /*RIFS mode 0 - NA, 1 - Allowed */
1278 tANI_U8 rifsMode;
1279
Jeff Johnson32d95a32012-09-10 13:15:23 -07001280 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001281 0 - No Support, 1 - Supported
1282 SG - there is global field */
1283 tANI_U8 lsigTxopProtection;
1284
1285 /*Max Ampdu Size supported by STA. TPE programming.
1286 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1287 tANI_U8 maxAmpduSize;
1288
1289 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1290 tANI_U8 maxAmpduDensity;
1291
1292 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1293 tANI_U8 maxAmsduSize;
1294
1295 /*Short GI support for 40Mhz packets*/
1296 tANI_U8 fShortGI40Mhz;
1297
1298 /*Short GI support for 20Mhz packets*/
1299 tANI_U8 fShortGI20Mhz;
1300
Jeff Johnson295189b2012-06-20 16:38:30 -07001301 /*Robust Management Frame (RMF) enabled/disabled*/
1302 tANI_U8 rmfEnabled;
1303
1304 /* The unicast encryption type in the association */
1305 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001306
1307 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001308 will set this flag in case of RE-ASSOC, where we want to reuse the old
1309 STA ID. 0 = Add, 1 = Update*/
1310 tANI_U8 action;
1311
1312 /*U-APSD Flags: 1b per AC. Encoded as follows:
1313 b7 b6 b5 b4 b3 b2 b1 b0 =
1314 X X X X BE BK VI VO */
1315 tANI_U8 uAPSD;
1316
1317 /*Max SP Length*/
1318 tANI_U8 maxSPLen;
1319
1320 /*11n Green Field preamble support
1321 0 - Not supported, 1 - Supported */
1322 tANI_U8 greenFieldCapable;
1323
1324 /*MIMO Power Save mode*/
1325 tSirMacHTMIMOPowerSaveState mimoPS;
1326
1327 /*Delayed BA Support*/
1328 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001329
Jeff Johnson295189b2012-06-20 16:38:30 -07001330 /*Max AMPDU duration in 32us*/
1331 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001332
Jeff Johnson295189b2012-06-20 16:38:30 -07001333 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1334 it to 0 if AP does not support it. This indication is sent to HAL and
1335 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1336 tANI_U8 fDsssCckMode40Mhz;
1337
1338 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1339 Retained for backward compalibity with existing HAL code*/
1340 tANI_U8 staIdx;
1341
1342 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1343 Retained for backward compalibity with existing HAL code*/
1344 tANI_U8 bssIdx;
1345
1346 tANI_U8 p2pCapableSta;
1347
Jeff Johnsone7245742012-09-05 17:12:55 -07001348 /*Reserved to align next field on a dword boundary*/
1349 tANI_U8 reserved;
1350
1351 /*These rates are the intersection of peer and self capabilities.*/
1352 tSirSupportedRates supportedRates;
1353
Jeff Johnson295189b2012-06-20 16:38:30 -07001354} tConfigStaParams, *tpConfigStaParams;
1355
Jeff Johnsone7245742012-09-05 17:12:55 -07001356/*------------------------------------------------------------------------
1357 * WLAN_HAL_CONFIG_STA_REQ
1358 * ----------------------------------------------------------------------*/
1359
1360typedef PACKED_PRE struct PACKED_POST {
1361 /*
1362 * For Self STA Entry: this represents Self Mode.
1363 * For Peer Stations, this represents the mode of the peer.
1364 * On Station:
1365 * --this mode is updated when PE adds the Self Entry.
1366 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1367 * ON AP:
1368 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1369 * to indicate the self mode of the AP.
1370 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1371 */
1372
1373 tStaRateMode opRateMode;
1374 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1375 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1376 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1377 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1378 tANI_U16 reserved;
1379
1380 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1381 //First 26 bits are reserved for those Titan rates and
1382 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1383 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1384
1385 /*
1386 * 0-76 bits used, remaining reserved
1387 * bits 0-15 and 32 should be set.
1388 */
1389 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1390
1391 /*
1392 * RX Highest Supported Data Rate defines the highest data
1393 * rate that the STA is able to receive, in unites of 1Mbps.
1394 * This value is derived from "Supported MCS Set field" inside
1395 * the HT capability element.
1396 */
1397 tANI_U16 rxHighestDataRate;
1398
1399 /* Indicates the Maximum MCS that can be received for each number
1400 * of spacial streams */
1401 tANI_U16 vhtRxMCSMap;
1402
1403 /*Indicate the highest VHT data rate that the STA is able to receive*/
1404 tANI_U16 vhtRxHighestDataRate;
1405
1406 /* Indicates the Maximum MCS that can be transmitted for each number
1407 * of spacial streams */
1408 tANI_U16 vhtTxMCSMap;
1409
1410 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1411 tANI_U16 vhtTxHighestDataRate;
1412
1413} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1414
1415typedef PACKED_PRE struct PACKED_POST
1416{
1417 /*BSSID of STA*/
1418 tSirMacAddr bssId;
1419
1420 /*ASSOC ID, as assigned by UMAC*/
1421 tANI_U16 assocId;
1422
1423 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1424 tANI_U8 staType;
1425
1426 /*Short Preamble Supported.*/
1427 tANI_U8 shortPreambleSupported;
1428
1429 /*MAC Address of STA*/
1430 tSirMacAddr staMac;
1431
1432 /*Listen interval of the STA*/
1433 tANI_U16 listenInterval;
1434
1435 /*Support for 11e/WMM*/
1436 tANI_U8 wmmEnabled;
1437
1438 /*11n HT capable STA*/
1439 tANI_U8 htCapable;
1440
1441 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1442 tANI_U8 txChannelWidthSet;
1443
1444 /*RIFS mode 0 - NA, 1 - Allowed */
1445 tANI_U8 rifsMode;
1446
1447 /*L-SIG TXOP Protection mechanism
1448 0 - No Support, 1 - Supported
1449 SG - there is global field */
1450 tANI_U8 lsigTxopProtection;
1451
1452 /*Max Ampdu Size supported by STA. TPE programming.
1453 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1454 tANI_U8 maxAmpduSize;
1455
1456 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1457 tANI_U8 maxAmpduDensity;
1458
1459 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1460 tANI_U8 maxAmsduSize;
1461
1462 /*Short GI support for 40Mhz packets*/
1463 tANI_U8 fShortGI40Mhz;
1464
1465 /*Short GI support for 20Mhz packets*/
1466 tANI_U8 fShortGI20Mhz;
1467
1468 /*Robust Management Frame (RMF) enabled/disabled*/
1469 tANI_U8 rmfEnabled;
1470
1471 /* The unicast encryption type in the association */
1472 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001473
1474 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001475 will set this flag in case of RE-ASSOC, where we want to reuse the old
1476 STA ID. 0 = Add, 1 = Update*/
1477 tANI_U8 action;
1478
1479 /*U-APSD Flags: 1b per AC. Encoded as follows:
1480 b7 b6 b5 b4 b3 b2 b1 b0 =
1481 X X X X BE BK VI VO */
1482 tANI_U8 uAPSD;
1483
1484 /*Max SP Length*/
1485 tANI_U8 maxSPLen;
1486
1487 /*11n Green Field preamble support
1488 0 - Not supported, 1 - Supported */
1489 tANI_U8 greenFieldCapable;
1490
1491 /*MIMO Power Save mode*/
1492 tSirMacHTMIMOPowerSaveState mimoPS;
1493
1494 /*Delayed BA Support*/
1495 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001496
Jeff Johnsone7245742012-09-05 17:12:55 -07001497 /*Max AMPDU duration in 32us*/
1498 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001499
Jeff Johnsone7245742012-09-05 17:12:55 -07001500 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1501 it to 0 if AP does not support it. This indication is sent to HAL and
1502 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1503 tANI_U8 fDsssCckMode40Mhz;
1504
1505 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1506 Retained for backward compalibity with existing HAL code*/
1507 tANI_U8 staIdx;
1508
1509 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1510 Retained for backward compalibity with existing HAL code*/
1511 tANI_U8 bssIdx;
1512
1513 tANI_U8 p2pCapableSta;
1514
1515 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001516 tANI_U8 htLdpcEnabled:1;
1517 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001518 tANI_U8 vhtTxBFEnabled:1;
1519 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001520
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001521 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001522 tSirSupportedRates_V1 supportedRates;
1523
1524 tANI_U8 vhtCapable;
1525 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001526
Jeff Johnsone7245742012-09-05 17:12:55 -07001527} tConfigStaParams_V1, *tpConfigStaParams_V1;
1528
Jeff Johnson295189b2012-06-20 16:38:30 -07001529typedef PACKED_PRE struct PACKED_POST
1530{
1531 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001532 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001533 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001534 tConfigStaParams_V1 configStaParams_V1;
1535 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001536} tConfigStaReqMsg, *tpConfigStaReqMsg;
1537
1538/*---------------------------------------------------------------------------
1539 WLAN_HAL_CONFIG_STA_RSP
1540---------------------------------------------------------------------------*/
1541
1542typedef PACKED_PRE struct PACKED_POST
1543{
1544 /*success or failure */
1545 tANI_U32 status;
1546
1547 /* Station index; valid only when 'status' field value SUCCESS */
1548 tANI_U8 staIdx;
1549
1550 /* BSSID Index of BSS to which the station is associated */
1551 tANI_U8 bssIdx;
1552
1553 /* DPU Index for PTK */
1554 tANI_U8 dpuIndex;
1555
Jeff Johnson32d95a32012-09-10 13:15:23 -07001556 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001557 tANI_U8 bcastDpuIndex;
1558
1559 /*DPU Index for IGTK */
1560 tANI_U8 bcastMgmtDpuIdx;
1561
1562 /*PTK DPU signature*/
1563 tANI_U8 ucUcastSig;
1564
1565 /*GTK DPU isignature*/
1566 tANI_U8 ucBcastSig;
1567
1568 /* IGTK DPU signature*/
1569 tANI_U8 ucMgmtSig;
1570
1571 tANI_U8 p2pCapableSta;
1572
1573}tConfigStaRspParams, *tpConfigStaRspParams;
1574
1575typedef PACKED_PRE struct PACKED_POST
1576{
1577 tHalMsgHeader header;
1578 tConfigStaRspParams configStaRspParams;
1579}tConfigStaRspMsg, *tpConfigStaRspMsg;
1580
1581/*---------------------------------------------------------------------------
1582 WLAN_HAL_DELETE_STA_REQ
1583---------------------------------------------------------------------------*/
1584
1585/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001586typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001587{
1588 /* Index of STA to delete */
1589 tANI_U8 staIdx;
1590} tDeleteStaParams, *tpDeleteStaParams;
1591
1592/* Delete STA Request message*/
1593typedef PACKED_PRE struct PACKED_POST
1594{
1595 tHalMsgHeader header;
1596 tDeleteStaParams delStaParams;
1597} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1598
1599/*---------------------------------------------------------------------------
1600 WLAN_HAL_DELETE_STA_RSP
1601---------------------------------------------------------------------------*/
1602
1603/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001604typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001605{
1606 /*success or failure */
1607 tANI_U32 status;
1608
1609 /* Index of STA deleted */
1610 tANI_U8 staId;
1611} tDeleteStaRspParams, *tpDeleteStaRspParams;
1612
1613/* Delete STA Response message*/
1614typedef PACKED_PRE struct PACKED_POST
1615{
1616 tHalMsgHeader header;
1617 tDeleteStaRspParams delStaRspParams;
1618} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1619
1620/*---------------------------------------------------------------------------
1621 WLAN_HAL_CONFIG_BSS_REQ
1622---------------------------------------------------------------------------*/
1623
1624//12 Bytes long because this structure can be used to represent rate
1625//and extended rate set IEs. The parser assume this to be at least 12
1626typedef __ani_attr_pre_packed struct sSirMacRateSet
1627{
1628 tANI_U8 numRates;
1629 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1630} __ani_attr_packed tSirMacRateSet;
1631
1632// access category record
1633typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1634{
1635#ifndef ANI_LITTLE_BIT_ENDIAN
1636 tANI_U8 rsvd : 1;
1637 tANI_U8 aci : 2;
1638 tANI_U8 acm : 1;
1639 tANI_U8 aifsn : 4;
1640#else
1641 tANI_U8 aifsn : 4;
1642 tANI_U8 acm : 1;
1643 tANI_U8 aci : 2;
1644 tANI_U8 rsvd : 1;
1645#endif
1646} __ani_attr_packed tSirMacAciAifsn;
1647
1648// contention window size
1649typedef __ani_attr_pre_packed struct sSirMacCW
1650{
1651#ifndef ANI_LITTLE_BIT_ENDIAN
1652 tANI_U8 max : 4;
1653 tANI_U8 min : 4;
1654#else
1655 tANI_U8 min : 4;
1656 tANI_U8 max : 4;
1657#endif
1658} __ani_attr_packed tSirMacCW;
1659
1660typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1661{
1662 tSirMacAciAifsn aci;
1663 tSirMacCW cw;
1664 tANI_U16 txoplimit;
1665} __ani_attr_packed tSirMacEdcaParamRecord;
1666
1667typedef __ani_attr_pre_packed struct sSirMacSSid
1668{
1669 tANI_U8 length;
1670 tANI_U8 ssId[32];
1671} __ani_attr_packed tSirMacSSid;
1672
1673// Concurrency role. These are generic IDs that identify the various roles
1674// in the software system.
1675typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001676 HAL_STA_MODE=0,
1677 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001678 HAL_P2P_CLIENT_MODE,
1679 HAL_P2P_GO_MODE,
1680 HAL_MONITOR_MODE,
1681} tHalConMode;
1682
1683//This is a bit pattern to be set for each mode
1684//bit 0 - sta mode
1685//bit 1 - ap mode
1686//bit 2 - p2p client mode
1687//bit 3 - p2p go mode
1688typedef enum
1689{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001690 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001691 HAL_SAP=2,
1692 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1693 HAL_P2P_CLIENT=4,
1694 HAL_P2P_GO=8,
1695 HAL_MAX_CONCURRENCY_PERSONA=4
1696} tHalConcurrencyMode;
1697
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001698// IFACE PERSONA for different Operating modes
1699typedef enum
1700{
1701 HAL_IFACE_UNKNOWN,
1702 HAL_IFACE_STA_MODE,
1703 HAL_IFACE_P2P_MODE,
1704 HAL_IFACE_MAX
1705} tHalIfacePersona;
1706
Jeff Johnson295189b2012-06-20 16:38:30 -07001707typedef PACKED_PRE struct PACKED_POST
1708{
1709 /* BSSID */
1710 tSirMacAddr bssId;
1711
Jeff Johnson295189b2012-06-20 16:38:30 -07001712 /* Self Mac Address */
1713 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001714
1715 /* BSS type */
1716 tSirBssType bssType;
1717
1718 /*Operational Mode: AP =0, STA = 1*/
1719 tANI_U8 operMode;
1720
1721 /*Network Type*/
1722 tSirNwType nwType;
1723
1724 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1725 tANI_U8 shortSlotTimeSupported;
1726
1727 /*Co-exist with 11a STA*/
1728 tANI_U8 llaCoexist;
1729
1730 /*Co-exist with 11b STA*/
1731 tANI_U8 llbCoexist;
1732
1733 /*Co-exist with 11g STA*/
1734 tANI_U8 llgCoexist;
1735
1736 /*Coexistence with 11n STA*/
1737 tANI_U8 ht20Coexist;
1738
1739 /*Non GF coexist flag*/
1740 tANI_U8 llnNonGFCoexist;
1741
1742 /*TXOP protection support*/
1743 tANI_U8 fLsigTXOPProtectionFullSupport;
1744
1745 /*RIFS mode*/
1746 tANI_U8 fRIFSMode;
1747
1748 /*Beacon Interval in TU*/
1749 tSirMacBeaconInterval beaconInterval;
1750
1751 /*DTIM period*/
1752 tANI_U8 dtimPeriod;
1753
1754 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1755 tANI_U8 txChannelWidthSet;
1756
1757 /*Operating channel*/
1758 tANI_U8 currentOperChannel;
1759
1760 /*Extension channel for channel bonding*/
1761 tANI_U8 currentExtChannel;
1762
1763 /*Reserved to align next field on a dword boundary*/
1764 tANI_U8 reserved;
1765
Jeff Johnsone7245742012-09-05 17:12:55 -07001766 /*SSID of the BSS*/
1767 tSirMacSSid ssId;
1768
1769 /*HAL should update the existing BSS entry, if this flag is set.
1770 UMAC will set this flag in case of reassoc, where we want to resue the
1771 the old BSSID and still return success 0 = Add, 1 = Update*/
1772 tANI_U8 action;
1773
1774 /* MAC Rate Set */
1775 tSirMacRateSet rateSet;
1776
1777 /*Enable/Disable HT capabilities of the BSS*/
1778 tANI_U8 htCapable;
1779
1780 // Enable/Disable OBSS protection
1781 tANI_U8 obssProtEnabled;
1782
1783 /*RMF enabled/disabled*/
1784 tANI_U8 rmfEnabled;
1785
1786 /*HT Operating Mode operating mode of the 802.11n STA*/
1787 tSirMacHTOperatingMode htOperMode;
1788
1789 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1790 tANI_U8 dualCTSProtection;
1791
1792 /* Probe Response Max retries */
1793 tANI_U8 ucMaxProbeRespRetryLimit;
1794
1795 /* To Enable Hidden ssid */
1796 tANI_U8 bHiddenSSIDEn;
1797
1798 /* To Enable Disable FW Proxy Probe Resp */
1799 tANI_U8 bProxyProbeRespEn;
1800
1801 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1802 EDCA params or might not desire to apply EDCA params during config BSS.
1803 0 implies Not Valid ; Non-Zero implies valid*/
1804 tANI_U8 edcaParamsValid;
1805
1806 /*EDCA Parameters for Best Effort Access Category*/
1807 tSirMacEdcaParamRecord acbe;
1808
1809 /*EDCA Parameters forBackground Access Category*/
1810 tSirMacEdcaParamRecord acbk;
1811
1812 /*EDCA Parameters for Video Access Category*/
1813 tSirMacEdcaParamRecord acvi;
1814
1815 /*EDCA Parameters for Voice Access Category*/
1816 tSirMacEdcaParamRecord acvo;
1817
1818#ifdef WLAN_FEATURE_VOWIFI_11R
1819 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1820 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1821#endif
1822
1823 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1824 tANI_U8 halPersona;
1825
1826 tANI_U8 bSpectrumMgtEnable;
1827
1828 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1829 tANI_S8 txMgmtPower;
1830 /*maxTxPower has max power to be used after applying the power constraint if any */
1831 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001832 /*Context of the station being added in HW
1833 Add a STA entry for "itself" -
1834 On AP - Add the AP itself in an "STA context"
1835 On STA - Add the AP to which this STA is joining in an "STA context" */
1836 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001837} tConfigBssParams, * tpConfigBssParams;
1838
1839
1840/*--------------------------------------------------------------------------
1841 * WLAN_HAL_CONFIG_BSS_REQ
1842 *--------------------------------------------------------------------------*/
1843typedef PACKED_PRE struct PACKED_POST
1844{
1845 /* BSSID */
1846 tSirMacAddr bssId;
1847
Jeff Johnsone7245742012-09-05 17:12:55 -07001848 /* Self Mac Address */
1849 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001850
1851 /* BSS type */
1852 tSirBssType bssType;
1853
1854 /*Operational Mode: AP =0, STA = 1*/
1855 tANI_U8 operMode;
1856
1857 /*Network Type*/
1858 tSirNwType nwType;
1859
1860 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1861 tANI_U8 shortSlotTimeSupported;
1862
1863 /*Co-exist with 11a STA*/
1864 tANI_U8 llaCoexist;
1865
1866 /*Co-exist with 11b STA*/
1867 tANI_U8 llbCoexist;
1868
1869 /*Co-exist with 11g STA*/
1870 tANI_U8 llgCoexist;
1871
1872 /*Coexistence with 11n STA*/
1873 tANI_U8 ht20Coexist;
1874
1875 /*Non GF coexist flag*/
1876 tANI_U8 llnNonGFCoexist;
1877
1878 /*TXOP protection support*/
1879 tANI_U8 fLsigTXOPProtectionFullSupport;
1880 /*RIFS mode*/
1881 tANI_U8 fRIFSMode;
1882
1883 /*Beacon Interval in TU*/
1884 tSirMacBeaconInterval beaconInterval;
1885
1886 /*DTIM period*/
1887 tANI_U8 dtimPeriod;
1888
1889 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1890 tANI_U8 txChannelWidthSet;
1891
1892 /*Operating channel*/
1893 tANI_U8 currentOperChannel;
1894
1895 /*Extension channel for channel bonding*/
1896 tANI_U8 currentExtChannel;
1897
1898 /*Reserved to align next field on a dword boundary*/
1899 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001900
1901 /*SSID of the BSS*/
1902 tSirMacSSid ssId;
1903
1904 /*HAL should update the existing BSS entry, if this flag is set.
1905 UMAC will set this flag in case of reassoc, where we want to resue the
1906 the old BSSID and still return success 0 = Add, 1 = Update*/
1907 tANI_U8 action;
1908
1909 /* MAC Rate Set */
1910 tSirMacRateSet rateSet;
1911
1912 /*Enable/Disable HT capabilities of the BSS*/
1913 tANI_U8 htCapable;
1914
1915 // Enable/Disable OBSS protection
1916 tANI_U8 obssProtEnabled;
1917
1918 /*RMF enabled/disabled*/
1919 tANI_U8 rmfEnabled;
1920
1921 /*HT Operating Mode operating mode of the 802.11n STA*/
1922 tSirMacHTOperatingMode htOperMode;
1923
1924 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1925 tANI_U8 dualCTSProtection;
1926
1927 /* Probe Response Max retries */
1928 tANI_U8 ucMaxProbeRespRetryLimit;
1929
1930 /* To Enable Hidden ssid */
1931 tANI_U8 bHiddenSSIDEn;
1932
1933 /* To Enable Disable FW Proxy Probe Resp */
1934 tANI_U8 bProxyProbeRespEn;
1935
Jeff Johnson32d95a32012-09-10 13:15:23 -07001936 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1937 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001938 0 implies Not Valid ; Non-Zero implies valid*/
1939 tANI_U8 edcaParamsValid;
1940
1941 /*EDCA Parameters for Best Effort Access Category*/
1942 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001943
Jeff Johnson295189b2012-06-20 16:38:30 -07001944 /*EDCA Parameters forBackground Access Category*/
1945 tSirMacEdcaParamRecord acbk;
1946
1947 /*EDCA Parameters for Video Access Category*/
1948 tSirMacEdcaParamRecord acvi;
1949
1950 /*EDCA Parameters for Voice Access Category*/
1951 tSirMacEdcaParamRecord acvo;
1952
1953#ifdef WLAN_FEATURE_VOWIFI_11R
1954 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1955 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1956#endif
1957
Jeff Johnson32d95a32012-09-10 13:15:23 -07001958 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001959 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001960
Jeff Johnson295189b2012-06-20 16:38:30 -07001961 tANI_U8 bSpectrumMgtEnable;
1962
1963 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1964 tANI_S8 txMgmtPower;
1965 /*maxTxPower has max power to be used after applying the power constraint if any */
1966 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001967 /*Context of the station being added in HW
1968 Add a STA entry for "itself" -
1969 On AP - Add the AP itself in an "STA context"
1970 On STA - Add the AP to which this STA is joining in an "STA context" */
1971 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001972
Jeff Johnsone7245742012-09-05 17:12:55 -07001973 tANI_U8 vhtCapable;
1974 tANI_U8 vhtTxChannelWidthSet;
1975} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001976
1977typedef PACKED_PRE struct PACKED_POST
1978{
1979 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001980 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001981 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001982 tConfigBssParams_V1 configBssParams_V1;
1983 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001984} tConfigBssReqMsg, *tpConfigBssReqMsg;
1985
1986/*---------------------------------------------------------------------------
1987 WLAN_HAL_CONFIG_BSS_RSP
1988---------------------------------------------------------------------------*/
1989
1990typedef PACKED_PRE struct PACKED_POST
1991{
1992 /* Success or Failure */
1993 tANI_U32 status;
1994
1995 /* BSS index allocated by HAL */
1996 tANI_U8 bssIdx;
1997
1998 /* DPU descriptor index for PTK */
1999 tANI_U8 dpuDescIndx;
2000
2001 /* PTK DPU signature */
2002 tANI_U8 ucastDpuSignature;
2003
2004 /* DPU descriptor index for GTK*/
2005 tANI_U8 bcastDpuDescIndx;
2006
2007 /* GTK DPU signature */
2008 tANI_U8 bcastDpuSignature;
2009
2010 /*DPU descriptor for IGTK*/
2011 tANI_U8 mgmtDpuDescIndx;
2012
2013 /* IGTK DPU signature */
2014 tANI_U8 mgmtDpuSignature;
2015
2016 /* Station Index for BSS entry*/
2017 tANI_U8 bssStaIdx;
2018
2019 /* Self station index for this BSS */
2020 tANI_U8 bssSelfStaIdx;
2021
2022 /* Bcast station for buffering bcast frames in AP role */
2023 tANI_U8 bssBcastStaIdx;
2024
2025 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2026 tSirMacAddr staMac;
2027
2028 /*HAL fills in the tx power used for mgmt frames in this field. */
2029 tANI_S8 txMgmtPower;
2030
2031} tConfigBssRspParams, * tpConfigBssRspParams;
2032
2033typedef PACKED_PRE struct PACKED_POST
2034{
2035 tHalMsgHeader header;
2036 tConfigBssRspParams configBssRspParams;
2037} tConfigBssRspMsg, *tpConfigBssRspMsg;
2038
2039/*---------------------------------------------------------------------------
2040 WLAN_HAL_DELETE_BSS_REQ
2041---------------------------------------------------------------------------*/
2042
2043typedef PACKED_PRE struct PACKED_POST
2044{
2045 /* BSS index to be deleted */
2046 tANI_U8 bssIdx;
2047
2048} tDeleteBssParams, *tpDeleteBssParams;
2049
2050typedef PACKED_PRE struct PACKED_POST
2051{
2052 tHalMsgHeader header;
2053 tDeleteBssParams deleteBssParams;
2054} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2055
2056/*---------------------------------------------------------------------------
2057 WLAN_HAL_DELETE_BSS_RSP
2058---------------------------------------------------------------------------*/
2059
2060typedef PACKED_PRE struct PACKED_POST
2061{
2062 /* Success or Failure */
2063 tANI_U32 status;
2064
2065 /* BSS index that has been deleted */
2066 tANI_U8 bssIdx;
2067
2068} tDeleteBssRspParams, *tpDeleteBssRspParams;
2069
2070typedef PACKED_PRE struct PACKED_POST
2071{
2072 tHalMsgHeader header;
2073 tDeleteBssRspParams deleteBssRspParams;
2074} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2075
2076/*---------------------------------------------------------------------------
2077 WLAN_HAL_JOIN_REQ
2078---------------------------------------------------------------------------*/
2079
2080typedef PACKED_PRE struct PACKED_POST
2081{
2082 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002083 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002084
2085 /*Indicates the channel to switch to.*/
2086 tANI_U8 ucChannel;
2087
2088 /* Self STA MAC */
2089 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002090
Jeff Johnson295189b2012-06-20 16:38:30 -07002091 /*Local power constraint*/
2092 tANI_U8 ucLocalPowerConstraint;
2093
2094 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002095 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002096
2097 /*link State*/
2098 tSirLinkState linkState;
2099
2100 /* Max TX power */
2101 tANI_S8 maxTxPower;
2102
2103} tHalJoinReqParams, *tpHalJoinReqParams;
2104
2105typedef PACKED_PRE struct PACKED_POST
2106{
2107 tHalMsgHeader header;
2108 tHalJoinReqParams joinReqParams;
2109} tHalJoinReqMsg, *tpHalJoinReqMsg;
2110
2111/*---------------------------------------------------------------------------
2112 WLAN_HAL_JOIN_RSP
2113---------------------------------------------------------------------------*/
2114
2115typedef PACKED_PRE struct PACKED_POST
2116{
2117 /*success or failure */
2118 tANI_U32 status;
2119
2120 /* HAL fills in the tx power used for mgmt frames in this field */
2121 tPowerdBm txMgmtPower;
2122
2123}tHalJoinRspParams, *tpHalJoinRspParams;
2124
2125typedef PACKED_PRE struct PACKED_POST
2126{
2127 tHalMsgHeader header;
2128 tHalJoinRspParams joinRspParams;
2129}tHalJoinRspMsg, *tpHalJoinRspMsg;
2130
2131/*---------------------------------------------------------------------------
2132 WLAN_HAL_POST_ASSOC_REQ
2133---------------------------------------------------------------------------*/
2134
2135typedef PACKED_PRE struct PACKED_POST
2136{
2137 tConfigStaParams configStaParams;
2138 tConfigBssParams configBssParams;
2139} tPostAssocReqParams, *tpPostAssocReqParams;
2140
2141typedef PACKED_PRE struct PACKED_POST
2142{
2143 tHalMsgHeader header;
2144 tPostAssocReqParams postAssocReqParams;
2145} tPostAssocReqMsg, *tpPostAssocReqMsg;
2146
2147/*---------------------------------------------------------------------------
2148 WLAN_HAL_POST_ASSOC_RSP
2149---------------------------------------------------------------------------*/
2150
2151typedef PACKED_PRE struct PACKED_POST
2152{
2153 tConfigStaRspParams configStaRspParams;
2154 tConfigBssRspParams configBssRspParams;
2155} tPostAssocRspParams, *tpPostAssocRspParams;
2156
2157typedef PACKED_PRE struct PACKED_POST
2158{
2159 tHalMsgHeader header;
2160 tPostAssocRspParams postAssocRspParams;
2161} tPostAssocRspMsg, *tpPostAssocRspMsg;
2162
2163/*---------------------------------------------------------------------------
2164 WLAN_HAL_SET_BSSKEY_REQ
2165---------------------------------------------------------------------------*/
2166
2167/*
2168 * This is used by PE to create a set of WEP keys for a given BSS.
2169 */
2170typedef PACKED_PRE struct PACKED_POST
2171{
2172 /*BSS Index of the BSS*/
2173 tANI_U8 bssIdx;
2174
2175 /*Encryption Type used with peer*/
2176 tAniEdType encType;
2177
2178 /*Number of keys*/
2179 tANI_U8 numKeys;
2180
2181 /*Array of keys.*/
2182 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002183
Jeff Johnson295189b2012-06-20 16:38:30 -07002184 /*Control for Replay Count, 1= Single TID based replay count on Tx
2185 0 = Per TID based replay count on TX */
2186 tANI_U8 singleTidRc;
2187} tSetBssKeyParams, *tpSetBssKeyParams;
2188
2189typedef PACKED_PRE struct PACKED_POST
2190{
2191 tHalMsgHeader header;
2192 tSetBssKeyParams setBssKeyParams;
2193} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2194
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002195/* tagged version of set bss key */
2196typedef PACKED_PRE struct PACKED_POST
2197{
2198 tSetBssKeyReqMsg Msg;
2199 uint32 Tag;
2200} tSetBssKeyReqMsgTagged;
2201
Jeff Johnson295189b2012-06-20 16:38:30 -07002202/*---------------------------------------------------------------------------
2203 WLAN_HAL_SET_BSSKEY_RSP
2204---------------------------------------------------------------------------*/
2205typedef PACKED_PRE struct PACKED_POST
2206{
2207 /*success or failure */
2208 tANI_U32 status;
2209
2210} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2211
2212typedef PACKED_PRE struct PACKED_POST
2213{
2214 tHalMsgHeader header;
2215 tSetBssKeyRspParams setBssKeyRspParams;
2216} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2217
2218/*---------------------------------------------------------------------------
2219 WLAN_HAL_SET_STAKEY_REQ,
2220---------------------------------------------------------------------------*/
2221
2222/*
2223 * This is used by PE to configure the key information on a given station.
2224 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2225 * a preconfigured key from a BSS the station assoicated with; otherwise
2226 * a new key descriptor is created based on the key field.
2227 */
2228
2229typedef PACKED_PRE struct PACKED_POST
2230{
2231 tHalMsgHeader header;
2232 tSetStaKeyParams setStaKeyParams;
2233} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2234
2235/*---------------------------------------------------------------------------
2236 WLAN_HAL_SET_STAKEY_RSP,
2237---------------------------------------------------------------------------*/
2238typedef PACKED_PRE struct PACKED_POST
2239{
2240 /*success or failure */
2241 tANI_U32 status;
2242
2243} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2244
2245typedef PACKED_PRE struct PACKED_POST
2246{
2247 tHalMsgHeader header;
2248 tSetStaKeyRspParams setStaKeyRspParams;
2249} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2250
2251/*---------------------------------------------------------------------------
2252 WLAN_HAL_RMV_BSSKEY_REQ,
2253---------------------------------------------------------------------------*/
2254/*
2255 * This is used by PE to remove keys for a given BSS.
2256 */
2257typedef PACKED_PRE struct PACKED_POST
2258
2259{
2260 /*BSS Index of the BSS*/
2261 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002262
Jeff Johnson295189b2012-06-20 16:38:30 -07002263 /*Encryption Type used with peer*/
2264 tAniEdType encType;
2265
2266 /*Key Id*/
2267 tANI_U8 keyId;
2268
2269 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2270 tAniWepType wepType;
2271
2272} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2273
2274typedef PACKED_PRE struct PACKED_POST
2275{
2276 tHalMsgHeader header;
2277 tRemoveBssKeyParams removeBssKeyParams;
2278} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2279
2280/*---------------------------------------------------------------------------
2281 WLAN_HAL_RMV_BSSKEY_RSP,
2282---------------------------------------------------------------------------*/
2283typedef PACKED_PRE struct PACKED_POST
2284{
2285 /*success or failure */
2286 tANI_U32 status;
2287
2288} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2289
2290typedef PACKED_PRE struct PACKED_POST
2291{
2292 tHalMsgHeader header;
2293 tRemoveBssKeyRspParams removeBssKeyRspParams;
2294} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2295
2296/*---------------------------------------------------------------------------
2297 WLAN_HAL_RMV_STAKEY_REQ,
2298---------------------------------------------------------------------------*/
2299/*
2300 * This is used by PE to Remove the key information on a given station.
2301 */
2302typedef PACKED_PRE struct PACKED_POST
2303{
2304 /*STA Index*/
2305 tANI_U16 staIdx;
2306
2307 /*Encryption Type used with peer*/
2308 tAniEdType encType;
2309
2310 /*Key Id*/
2311 tANI_U8 keyId;
2312
2313 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2314 the same key is used for both broadcast and unicast.*/
2315 tANI_BOOLEAN unicast;
2316
2317} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2318
2319typedef PACKED_PRE struct PACKED_POST
2320{
2321 tHalMsgHeader header;
2322 tRemoveStaKeyParams removeStaKeyParams;
2323} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2324
2325/*---------------------------------------------------------------------------
2326 WLAN_HAL_RMV_STAKEY_RSP,
2327---------------------------------------------------------------------------*/
2328typedef PACKED_PRE struct PACKED_POST
2329{
2330 /*success or failure */
2331 tANI_U32 status;
2332} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2333
2334typedef PACKED_PRE struct PACKED_POST
2335{
2336 tHalMsgHeader header;
2337 tRemoveStaKeyRspParams removeStaKeyRspParams;
2338} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2339
Jeff Johnsone7245742012-09-05 17:12:55 -07002340#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002341
Jeff Johnsone7245742012-09-05 17:12:55 -07002342#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002343#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002344#endif
2345
2346#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002347#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002348#endif
2349
2350/*-------------------------------------------------------------------------
2351WLAN_HAL_START_OEM_DATA_REQ
2352--------------------------------------------------------------------------*/
2353typedef PACKED_PRE struct PACKED_POST
2354{
2355 tANI_U32 status;
2356 tSirMacAddr selfMacAddr;
2357 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2358} tStartOemDataReqParams, *tpStartOemDataReqParams;
2359
2360typedef PACKED_PRE struct PACKED_POST
2361{
2362 tHalMsgHeader header;
2363 tStartOemDataReqParams startOemDataReqParams;
2364} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2365
2366/*-------------------------------------------------------------------------
2367WLAN_HAL_START_OEM_DATA_RSP
2368--------------------------------------------------------------------------*/
2369
2370typedef PACKED_PRE struct PACKED_POST
2371{
2372 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2373} tStartOemDataRspParams, *tpStartOemDataRspParams;
2374
2375typedef PACKED_PRE struct PACKED_POST
2376{
2377 tHalMsgHeader header;
2378 tStartOemDataRspParams startOemDataRspParams;
2379} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2380
2381#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002382
2383
2384
2385/*---------------------------------------------------------------------------
2386WLAN_HAL_CH_SWITCH_REQ
2387---------------------------------------------------------------------------*/
2388
2389typedef PACKED_PRE struct PACKED_POST
2390{
2391 /* Channel number */
2392 tANI_U8 channelNumber;
2393
2394 /* Local power constraint */
2395 tANI_U8 localPowerConstraint;
2396
2397 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002398 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002399
2400 //HAL fills in the tx power used for mgmt frames in this field.
2401 tPowerdBm txMgmtPower;
2402
2403 /* Max TX power */
2404 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002405
Jeff Johnson295189b2012-06-20 16:38:30 -07002406 /* Self STA MAC */
2407 tSirMacAddr selfStaMacAddr;
2408
2409 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2410 this should be applied only to that session*/
2411 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2412 * bssid needs to be out of the VOWifi feature flag */
2413 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2414 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2415 */
2416 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002417
Jeff Johnson295189b2012-06-20 16:38:30 -07002418}tSwitchChannelParams, *tpSwitchChannelParams;
2419
2420typedef PACKED_PRE struct PACKED_POST
2421{
2422 tHalMsgHeader header;
2423 tSwitchChannelParams switchChannelParams;
2424} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2425
2426/*---------------------------------------------------------------------------
2427WLAN_HAL_CH_SWITCH_RSP
2428---------------------------------------------------------------------------*/
2429
2430typedef PACKED_PRE struct PACKED_POST
2431{
2432 /* Status */
2433 tANI_U32 status;
2434
2435 /* Channel number - same as in request*/
2436 tANI_U8 channelNumber;
2437
2438 /* HAL fills in the tx power used for mgmt frames in this field */
2439 tPowerdBm txMgmtPower;
2440
2441 /* BSSID needed to identify session - same as in request*/
2442 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002443
Jeff Johnson295189b2012-06-20 16:38:30 -07002444}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2445
2446typedef PACKED_PRE struct PACKED_POST
2447{
2448 tHalMsgHeader header;
2449 tSwitchChannelRspParams switchChannelRspParams;
2450} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2451
2452/*---------------------------------------------------------------------------
2453WLAN_HAL_UPD_EDCA_PARAMS_REQ
2454---------------------------------------------------------------------------*/
2455
2456typedef PACKED_PRE struct PACKED_POST
2457{
2458 /*BSS Index*/
2459 tANI_U16 bssIdx;
2460
2461 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002462 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002463
2464 /* Background */
2465 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002466
Jeff Johnson295189b2012-06-20 16:38:30 -07002467 /* Video */
2468 tSirMacEdcaParamRecord acvi;
2469
2470 /* Voice */
2471 tSirMacEdcaParamRecord acvo;
2472
2473} tEdcaParams, *tpEdcaParams;
2474
2475typedef PACKED_PRE struct PACKED_POST
2476{
2477 tHalMsgHeader header;
2478 tEdcaParams edcaParams;
2479} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2480
2481/*---------------------------------------------------------------------------
2482WLAN_HAL_UPD_EDCA_PARAMS_RSP
2483---------------------------------------------------------------------------*/
2484typedef PACKED_PRE struct PACKED_POST
2485{
2486 /*success or failure */
2487 tANI_U32 status;
2488} tEdcaRspParams, *tpEdcaRspParams;
2489
2490typedef PACKED_PRE struct PACKED_POST
2491{
2492 tHalMsgHeader header;
2493 tEdcaRspParams edcaRspParams;
2494} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2495
2496
2497
2498/*---------------------------------------------------------------------------
2499 * WLAN_HAL_GET_STATS_REQ
2500 *--------------------------------------------------------------------------*/
2501typedef PACKED_PRE struct PACKED_POST
2502
2503{
2504 /* Index of STA to which the statistics */
2505 tANI_U16 staIdx;
2506
2507 /* Encryption mode */
2508 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002509
Jeff Johnson295189b2012-06-20 16:38:30 -07002510 /* status */
2511 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002512
Jeff Johnson295189b2012-06-20 16:38:30 -07002513 /* Statistics */
2514 tANI_U32 sendBlocks;
2515 tANI_U32 recvBlocks;
2516 tANI_U32 replays;
2517 tANI_U8 micErrorCnt;
2518 tANI_U32 protExclCnt;
2519 tANI_U16 formatErrCnt;
2520 tANI_U16 unDecryptableCnt;
2521 tANI_U32 decryptErrCnt;
2522 tANI_U32 decryptOkCnt;
2523} tDpuStatsParams, * tpDpuStatsParams;
2524
2525typedef PACKED_PRE struct PACKED_POST
2526{
2527 /* Valid STA Idx for per STA stats request */
2528 tANI_U32 staId;
2529
2530 /* Categories of stats requested as specified in eHalStatsMask*/
2531 tANI_U32 statsMask;
2532}tHalStatsReqParams, *tpHalStatsReqParams;
2533
2534typedef PACKED_PRE struct PACKED_POST
2535{
2536 tHalMsgHeader header;
2537 tHalStatsReqParams statsReqParams;
2538} tHalStatsReqMsg, *tpHalStatsReqMsg;
2539
2540/*---------------------------------------------------------------------------
2541 * WLAN_HAL_GET_STATS_RSP
2542 *--------------------------------------------------------------------------*/
2543
2544typedef PACKED_PRE struct PACKED_POST
2545{
2546 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2547 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2548 // station successfully transmitted after more than one retransmission attempt
2549
Jeff Johnson32d95a32012-09-10 13:15:23 -07002550 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2551 //(with and without retries, including multi-cast, broadcast)
2552 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2553 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002554 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2555 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2556 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2557 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 -07002558 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2559 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 -07002560 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2561 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 -07002562 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2563 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002564 //to provide this.
2565}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2566
2567
2568// defines tx_rate_flags
2569typedef enum eTxRateInfo
2570{
2571 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2572 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2573 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2574 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07002575 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2576 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2577 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
2578 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
2579 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
2580 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
2581} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07002582
2583
2584typedef PACKED_PRE struct PACKED_POST
2585{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002586 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 -07002587 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002588 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 -07002589 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002590 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2591 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002592 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002593 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2594 //for eg: if it is 10.5dBm, the value would be 105
2595 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2596 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002597
Jeff Johnson32d95a32012-09-10 13:15:23 -07002598 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2599 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002600 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002601 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2602 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002603}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2604
2605typedef PACKED_PRE struct PACKED_POST
2606{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002607 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2608 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002609 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002610 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 -07002611 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002612 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 -07002613 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002614 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 -07002615 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002616 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 -07002617 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002618 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 -07002619 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002620 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 -07002621 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002622 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 -07002623 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002624 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 -07002625 //decrypted
2626 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2627
2628}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002629
Jeff Johnson295189b2012-06-20 16:38:30 -07002630typedef PACKED_PRE struct PACKED_POST
2631{
2632 tAniGlobalSecurityStats ucStats;
2633 tAniGlobalSecurityStats mcbcStats;
2634}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2635
2636typedef PACKED_PRE struct PACKED_POST
2637{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002638 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2639 //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 -07002640 //address 1 field
2641 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 -07002642 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 -07002643 //primary channel
2644 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 -07002645 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 -07002646 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002647 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2648 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002649 //decoded correctly
2650}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2651
2652typedef PACKED_PRE struct PACKED_POST
2653{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002654 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 -07002655 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002656 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2657 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 -07002658 //is transmitted
2659}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2660
2661typedef PACKED_PRE struct PACKED_POST
2662{
2663 /* Success or Failure */
2664 tANI_U32 status;
2665
2666 /* STA Idx */
2667 tANI_U32 staId;
2668
2669 /* Categories of STATS being returned as per eHalStatsMask*/
2670 tANI_U32 statsMask;
2671
2672 /* message type is same as the request type */
2673 tANI_U16 msgType;
2674
2675 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002676 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002677
2678} tHalStatsRspParams, *tpHalStatsRspParams;
2679
2680
2681
2682typedef PACKED_PRE struct PACKED_POST
2683{
2684 tHalMsgHeader header;
2685 tHalStatsRspParams statsRspParams;
2686} tHalStatsRspMsg, *tpHalStatsRspMsg;
2687
2688/*---------------------------------------------------------------------------
2689 * WLAN_HAL_SET_LINK_ST_REQ
2690 *--------------------------------------------------------------------------*/
2691typedef PACKED_PRE struct PACKED_POST
2692{
2693 tSirMacAddr bssid;
2694 tSirLinkState state;
2695 tSirMacAddr selfMacAddr;
2696} tLinkStateParams, *tpLinkStateParams;
2697
2698typedef PACKED_PRE struct PACKED_POST
2699{
2700 tHalMsgHeader header;
2701 tLinkStateParams linkStateParams;
2702} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2703
2704/*---------------------------------------------------------------------------
2705 * WLAN_HAL_SET_LINK_ST_RSP
2706 *--------------------------------------------------------------------------*/
2707
2708typedef PACKED_PRE struct PACKED_POST
2709{
2710 /*success or failure */
2711 tANI_U32 status;
2712} tLinkStateRspParams, *tpLinkStateRspParams;
2713
2714typedef PACKED_PRE struct PACKED_POST
2715{
2716 tHalMsgHeader header;
2717 tLinkStateRspParams linkStateRspParams;
2718} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2719
2720/*---------------------------------------------------------------------------
2721 * WLAN_HAL_ADD_TS_REQ
2722 *--------------------------------------------------------------------------*/
2723
2724/* TSPEC Params */
2725typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2726{
Jeff Johnson295189b2012-06-20 16:38:30 -07002727 tANI_U16 trafficType : 1;
2728 tANI_U16 tsid : 4;
2729 tANI_U16 direction : 2;
2730 tANI_U16 accessPolicy : 2;
2731 tANI_U16 aggregation : 1;
2732 tANI_U16 psb : 1;
2733 tANI_U16 userPrio : 3;
2734 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07002735} __ani_attr_packed tSirMacTSInfoTfc;
2736
2737/* Flag to schedule the traffic type */
2738typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2739{
Jeff Johnson295189b2012-06-20 16:38:30 -07002740 tANI_U8 schedule : 1;
2741 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07002742} __ani_attr_packed tSirMacTSInfoSch;
2743
2744/* Traffic and scheduling info */
2745typedef __ani_attr_pre_packed struct sSirMacTSInfo
2746{
2747 tSirMacTSInfoTfc traffic;
2748 tSirMacTSInfoSch schedule;
2749} __ani_attr_packed tSirMacTSInfo;
2750
2751/* Information elements */
2752typedef __ani_attr_pre_packed struct sSirMacTspecIE
2753{
2754 tANI_U8 type;
2755 tANI_U8 length;
2756 tSirMacTSInfo tsinfo;
2757 tANI_U16 nomMsduSz;
2758 tANI_U16 maxMsduSz;
2759 tANI_U32 minSvcInterval;
2760 tANI_U32 maxSvcInterval;
2761 tANI_U32 inactInterval;
2762 tANI_U32 suspendInterval;
2763 tANI_U32 svcStartTime;
2764 tANI_U32 minDataRate;
2765 tANI_U32 meanDataRate;
2766 tANI_U32 peakDataRate;
2767 tANI_U32 maxBurstSz;
2768 tANI_U32 delayBound;
2769 tANI_U32 minPhyRate;
2770 tANI_U16 surplusBw;
2771 tANI_U16 mediumTime;
2772}__ani_attr_packed tSirMacTspecIE;
2773
2774typedef PACKED_PRE struct PACKED_POST
2775{
2776 /* Station Index */
2777 tANI_U16 staIdx;
2778
2779 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2780 tANI_U16 tspecIdx;
2781
2782 /* To program TPE with required parameters */
2783 tSirMacTspecIE tspec;
2784
2785 /* U-APSD Flags: 1b per AC. Encoded as follows:
2786 b7 b6 b5 b4 b3 b2 b1 b0 =
2787 X X X X BE BK VI VO */
2788 tANI_U8 uAPSD;
2789
2790 /* These parameters are for all the access categories */
2791 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2792 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2793 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002794
Jeff Johnson295189b2012-06-20 16:38:30 -07002795} tAddTsParams, *tpAddTsParams;
2796
2797typedef PACKED_PRE struct PACKED_POST
2798{
2799 tHalMsgHeader header;
2800 tAddTsParams addTsParams;
2801} tAddTsReqMsg, *tpAddTsReqMsg;
2802
2803/*---------------------------------------------------------------------------
2804 * WLAN_HAL_ADD_TS_RSP
2805 *--------------------------------------------------------------------------*/
2806
2807typedef PACKED_PRE struct PACKED_POST
2808{
2809 /*success or failure */
2810 tANI_U32 status;
2811} tAddTsRspParams, *tpAddTsRspParams;
2812
2813typedef PACKED_PRE struct PACKED_POST
2814{
2815 tHalMsgHeader header;
2816 tAddTsRspParams addTsRspParams;
2817} tAddTsRspMsg, *tpAddTsRspMsg;
2818
2819
2820/*---------------------------------------------------------------------------
2821 * WLAN_HAL_DEL_TS_REQ
2822 *--------------------------------------------------------------------------*/
2823
2824typedef PACKED_PRE struct PACKED_POST
2825{
2826 /* Station Index */
2827 tANI_U16 staIdx;
2828
2829 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2830 tANI_U16 tspecIdx;
2831
2832 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002833 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002834
2835} tDelTsParams, *tpDelTsParams;
2836
2837typedef PACKED_PRE struct PACKED_POST
2838{
2839 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002840 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002841} tDelTsReqMsg, *tpDelTsReqMsg;
2842
2843/*---------------------------------------------------------------------------
2844 * WLAN_HAL_DEL_TS_RSP
2845 *--------------------------------------------------------------------------*/
2846
2847typedef PACKED_PRE struct PACKED_POST
2848{
2849 /*success or failure */
2850 tANI_U32 status;
2851} tDelTsRspParams, *tpDelTsRspParams;
2852
2853typedef PACKED_PRE struct PACKED_POST
2854{
2855 tHalMsgHeader header;
2856 tDelTsRspParams delTsRspParams;
2857} tDelTsRspMsg, *tpDelTsRspMsg;
2858
2859/* End of TSpec Parameters */
2860
2861/* Start of BLOCK ACK related Parameters */
2862
2863/*---------------------------------------------------------------------------
2864 * WLAN_HAL_ADD_BA_SESSION_REQ
2865 *--------------------------------------------------------------------------*/
2866
2867typedef PACKED_PRE struct PACKED_POST
2868{
2869 /* Station Index */
2870 tANI_U16 staIdx;
2871
2872 /* Peer MAC Address */
2873 tSirMacAddr peerMacAddr;
2874
2875 /* ADDBA Action Frame dialog token
2876 HAL will not interpret this object */
2877 tANI_U8 baDialogToken;
2878
2879 /* TID for which the BA is being setup
2880 This identifies the TC or TS of interest */
2881 tANI_U8 baTID;
2882
2883 /* 0 - Delayed BA (Not supported)
2884 1 - Immediate BA */
2885 tANI_U8 baPolicy;
2886
2887 /* Indicates the number of buffers for this TID (baTID)
2888 NOTE - This is the requested buffer size. When this
2889 is processed by HAL and subsequently by HDD, it is
2890 possible that HDD may change this buffer size. Any
2891 change in the buffer size should be noted by PE and
2892 advertized appropriately in the ADDBA response */
2893 tANI_U16 baBufferSize;
2894
2895 /* BA timeout in TU's 0 means no timeout will occur */
2896 tANI_U16 baTimeout;
2897
2898 /* b0..b3 - Fragment Number - Always set to 0
2899 b4..b15 - Starting Sequence Number of first MSDU
2900 for which this BA is setup */
2901 tANI_U16 baSSN;
2902
2903 /* ADDBA direction
2904 1 - Originator
2905 0 - Recipient */
2906 tANI_U8 baDirection;
2907} tAddBASessionParams, *tpAddBASessionParams;
2908
2909typedef PACKED_PRE struct PACKED_POST
2910{
2911 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002912 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002913}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2914
2915/*---------------------------------------------------------------------------
2916 * WLAN_HAL_ADD_BA_SESSION_RSP
2917 *--------------------------------------------------------------------------*/
2918
2919typedef PACKED_PRE struct PACKED_POST
2920{
2921 /*success or failure */
2922 tANI_U32 status;
2923
2924 /* Dialog token */
2925 tANI_U8 baDialogToken;
2926
2927 /* TID for which the BA session has been setup */
2928 tANI_U8 baTID;
2929
2930 /* BA Buffer Size allocated for the current BA session */
2931 tANI_U8 baBufferSize;
2932
2933 tANI_U8 baSessionID;
2934
2935 /* Reordering Window buffer */
2936 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002937
Jeff Johnson295189b2012-06-20 16:38:30 -07002938 /*Station Index to id the sta */
2939 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002940
Jeff Johnson295189b2012-06-20 16:38:30 -07002941 /* Starting Sequence Number */
2942 tANI_U16 SSN;
2943} tAddBASessionRspParams, *tpAddBASessionRspParams;
2944
2945typedef PACKED_PRE struct PACKED_POST
2946{
2947 tHalMsgHeader header;
2948 tAddBASessionRspParams addBASessionRspParams;
2949} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2950
2951/*---------------------------------------------------------------------------
2952 * WLAN_HAL_ADD_BA_REQ
2953 *--------------------------------------------------------------------------*/
2954
2955typedef PACKED_PRE struct PACKED_POST
2956{
2957 /* Session Id */
2958 tANI_U8 baSessionID;
2959
2960 /* Reorder Window Size */
2961 tANI_U8 winSize;
2962
2963#ifdef FEATURE_ON_CHIP_REORDERING
2964 tANI_BOOLEAN isReorderingDoneOnChip;
2965#endif
2966} tAddBAParams, *tpAddBAParams;
2967
2968typedef PACKED_PRE struct PACKED_POST
2969{
2970 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002971 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002972} tAddBAReqMsg, *tpAddBAReqMsg;
2973
2974
2975/*---------------------------------------------------------------------------
2976 * WLAN_HAL_ADD_BA_RSP
2977 *--------------------------------------------------------------------------*/
2978
2979typedef PACKED_PRE struct PACKED_POST
2980{
2981 /*success or failure */
2982 tANI_U32 status;
2983
2984 /* Dialog token */
2985 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002986
Jeff Johnson295189b2012-06-20 16:38:30 -07002987} tAddBARspParams, *tpAddBARspParams;
2988
2989typedef PACKED_PRE struct PACKED_POST
2990{
2991 tHalMsgHeader header;
2992 tAddBARspParams addBARspParams;
2993} tAddBARspMsg, *tpAddBARspMsg;
2994
2995
2996/*---------------------------------------------------------------------------
2997 * WLAN_HAL_TRIGGER_BA_REQ
2998 *--------------------------------------------------------------------------*/
2999
3000
3001typedef struct sAddBaInfo
3002{
3003 tANI_U16 fBaEnable : 1;
3004 tANI_U16 startingSeqNum: 12;
3005 tANI_U16 reserved : 3;
3006}tAddBaInfo, *tpAddBaInfo;
3007
3008typedef struct sTriggerBaRspCandidate
3009{
3010 tSirMacAddr staAddr;
3011 tAddBaInfo baInfo[STACFG_MAX_TC];
3012}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3013
3014typedef struct sTriggerBaCandidate
3015{
3016 tANI_U8 staIdx;
3017 tANI_U8 tidBitmap;
3018}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3019
3020typedef PACKED_PRE struct PACKED_POST
3021{
3022 /* Session Id */
3023 tANI_U8 baSessionID;
3024
Jeff Johnson32d95a32012-09-10 13:15:23 -07003025 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003026 * Candidate List(tTriggerBaCandidate)
3027 */
3028 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003029
Jeff Johnson295189b2012-06-20 16:38:30 -07003030} tTriggerBAParams, *tpTriggerBAParams;
3031
3032typedef PACKED_PRE struct PACKED_POST
3033{
3034 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003035 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003036} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3037
3038
3039/*---------------------------------------------------------------------------
3040 * WLAN_HAL_TRIGGER_BA_RSP
3041 *--------------------------------------------------------------------------*/
3042
3043typedef PACKED_PRE struct PACKED_POST
3044{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003045
Jeff Johnson295189b2012-06-20 16:38:30 -07003046 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003047 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003048
3049 /* success or failure */
3050 tANI_U32 status;
3051
Jeff Johnson32d95a32012-09-10 13:15:23 -07003052 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003053 * Rsp Candidate List(tTriggerRspBaCandidate)
3054 */
3055 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003056
Jeff Johnson295189b2012-06-20 16:38:30 -07003057
3058} tTriggerBARspParams, *tpTriggerBARspParams;
3059
3060typedef PACKED_PRE struct PACKED_POST
3061{
3062 tHalMsgHeader header;
3063 tTriggerBARspParams triggerBARspParams;
3064} tTriggerBARspMsg, *tpTriggerBARspMsg;
3065
3066/*---------------------------------------------------------------------------
3067 * WLAN_HAL_DEL_BA_REQ
3068 *--------------------------------------------------------------------------*/
3069
3070typedef PACKED_PRE struct PACKED_POST
3071{
3072 /* Station Index */
3073 tANI_U16 staIdx;
3074
3075 /* TID for which the BA session is being deleted */
3076 tANI_U8 baTID;
3077
3078 /* DELBA direction
3079 1 - Originator
3080 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003081 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003082} tDelBAParams, *tpDelBAParams;
3083
3084typedef PACKED_PRE struct PACKED_POST
3085{
3086 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003087 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003088} tDelBAReqMsg, *tpDelBAReqMsg;
3089
3090/*---------------------------------------------------------------------------
3091 * WLAN_HAL_DEL_BA_RSP
3092 *--------------------------------------------------------------------------*/
3093
3094typedef PACKED_PRE struct PACKED_POST
3095{
3096 /* success or failure */
3097 tANI_U32 status;
3098} tDelBARspParams, *tpDelBARspParams;
3099
3100typedef PACKED_PRE struct PACKED_POST
3101{
3102 tHalMsgHeader header;
3103 tDelBARspParams delBARspParams;
3104} tDelBARspMsg, *tpDelBARspMsg;
3105
3106
3107#ifdef FEATURE_WLAN_CCX
3108
3109/*---------------------------------------------------------------------------
3110 * WLAN_HAL_TSM_STATS_REQ
3111 *--------------------------------------------------------------------------*/
3112typedef PACKED_PRE struct PACKED_POST
3113{
3114 /* Traffic Id */
3115 tANI_U8 tsmTID;
3116
3117 tSirMacAddr bssId;
3118} tTsmStatsParams, *tpTsmStatsParams;
3119
3120typedef PACKED_PRE struct PACKED_POST
3121{
3122 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003123 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003124} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3125
3126
3127/*---------------------------------------------------------------------------
3128 * WLAN_HAL_TSM_STATS_RSP
3129 *--------------------------------------------------------------------------*/
3130typedef PACKED_PRE struct PACKED_POST
3131{
3132 /*success or failure */
3133 tANI_U32 status;
3134
Jeff Johnson32d95a32012-09-10 13:15:23 -07003135 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003136 tANI_U16 UplinkPktQueueDly;
3137
Jeff Johnson32d95a32012-09-10 13:15:23 -07003138 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003139 tANI_U16 UplinkPktQueueDlyHist[4];
3140
Jeff Johnson32d95a32012-09-10 13:15:23 -07003141 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003142 tANI_U32 UplinkPktTxDly;
3143
Jeff Johnson32d95a32012-09-10 13:15:23 -07003144 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003145 tANI_U16 UplinkPktLoss;
3146
Jeff Johnson32d95a32012-09-10 13:15:23 -07003147 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003148 tANI_U16 UplinkPktCount;
3149
Jeff Johnson32d95a32012-09-10 13:15:23 -07003150 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003151 tANI_U8 RoamingCount;
3152
Jeff Johnson32d95a32012-09-10 13:15:23 -07003153 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003154 tANI_U16 RoamingDly;
3155} tTsmStatsRspParams, *tpTsmStatsRspParams;
3156
3157typedef PACKED_PRE struct PACKED_POST
3158{
3159 tHalMsgHeader header;
3160 tTsmStatsRspParams tsmStatsRspParams;
3161} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3162
3163
3164#endif
3165
3166/*---------------------------------------------------------------------------
3167 * WLAN_HAL_SET_KEYDONE_MSG
3168 *--------------------------------------------------------------------------*/
3169
3170typedef PACKED_PRE struct PACKED_POST
3171{
3172 /*bssid of the keys */
3173 tANI_U8 bssidx;
3174 tANI_U8 encType;
3175} tSetKeyDoneParams, *tpSetKeyDoneParams;
3176
3177typedef PACKED_PRE struct PACKED_POST
3178{
3179 tHalMsgHeader header;
3180 tSetKeyDoneParams setKeyDoneParams;
3181} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3182
3183/*---------------------------------------------------------------------------
3184 * WLAN_HAL_DOWNLOAD_NV_REQ
3185 *--------------------------------------------------------------------------*/
3186typedef PACKED_PRE struct PACKED_POST
3187{
3188 /* Fragment sequence number of the NV Image. Note that NV Image might not
3189 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003190 * can hence choose to chop the NV blob into multiple fragments starting with
3191 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003192 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3193 * concatenated together by HAL without any padding bytes in between.*/
3194 tANI_U16 fragNumber;
3195
3196 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003197 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003198 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3199 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3200 tANI_U16 isLastFragment;
3201
3202 /* NV Image size (number of bytes) */
3203 tANI_U32 nvImgBufferSize;
3204
3205 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3206 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3207} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3208
3209typedef PACKED_PRE struct PACKED_POST
3210{
3211 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3212 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3213 tHalMsgHeader header;
3214 tHalNvImgDownloadReqParams nvImageReqParams;
3215} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3216
3217/*---------------------------------------------------------------------------
3218 * WLAN_HAL_DOWNLOAD_NV_RSP
3219 *--------------------------------------------------------------------------*/
3220typedef PACKED_PRE struct PACKED_POST
3221{
3222 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3223 * after each fragment */
3224 tANI_U32 status;
3225} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3226
3227typedef PACKED_PRE struct PACKED_POST
3228{
3229 tHalMsgHeader header;
3230 tHalNvImgDownloadRspParams nvImageRspParams;
3231} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3232
3233/*---------------------------------------------------------------------------
3234 * WLAN_HAL_STORE_NV_IND
3235 *--------------------------------------------------------------------------*/
3236typedef PACKED_PRE struct PACKED_POST
3237{
3238 /* NV Item */
3239 eNvTable tableID;
3240
3241 /* Size of NV Blob */
3242 tANI_U32 nvBlobSize;
3243
Jeff Johnson32d95a32012-09-10 13:15:23 -07003244 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003245 * NV blob i.e. uint8[nvBlobSize] */
3246} tHalNvStoreParams, *tpHalNvStoreParams;
3247
3248typedef PACKED_PRE struct PACKED_POST
3249{
3250 /* Note: The length specified in tHalNvStoreInd messages should be
3251 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3252 tHalMsgHeader header;
3253 tHalNvStoreParams nvStoreParams;
3254} tHalNvStoreInd, *tpHalNvStoreInd;
3255
3256/* End of Block Ack Related Parameters */
3257
3258/*---------------------------------------------------------------------------
3259 * WLAN_HAL_MIC_FAILURE_IND
3260 *--------------------------------------------------------------------------*/
3261
3262#define SIR_CIPHER_SEQ_CTR_SIZE 6
3263
3264typedef PACKED_PRE struct PACKED_POST
3265{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003266 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003267 tSirMacAddr taMacAddr; //transmitter address
3268 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003269 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003270 tANI_U8 IV1; // first byte of IV
3271 tANI_U8 keyId; // second byte of IV
3272 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3273 tSirMacAddr rxMacAddr; // receive address
3274} tSirMicFailureInfo, *tpSirMicFailureInfo;
3275
3276/* Definition for MIC failure indication
3277 MAC reports this each time a MIC failure occures on Rx TKIP packet
3278 */
3279typedef PACKED_PRE struct PACKED_POST
3280{
3281 tSirMacAddr bssId; // BSSID
3282 tSirMicFailureInfo info;
3283} tSirMicFailureInd, *tpSirMicFailureInd;
3284
3285typedef PACKED_PRE struct PACKED_POST
3286{
3287 tHalMsgHeader header;
3288 tSirMicFailureInd micFailureInd;
3289} tMicFailureIndMsg, *tpMicFailureIndMsg;
3290
Mohit Khanna4a70d262012-09-11 16:30:12 -07003291typedef PACKED_PRE struct PACKED_POST
3292{
3293 tANI_U16 opMode;
3294 tANI_U16 staId;
3295}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3296
3297typedef PACKED_PRE struct PACKED_POST
3298{
3299 tHalMsgHeader header;
3300 tUpdateVHTOpMode updateVhtOpMode;
3301} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3302
3303typedef PACKED_PRE struct PACKED_POST
3304{
3305 tANI_U32 status;
3306} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3307
3308typedef PACKED_PRE struct PACKED_POST
3309{
3310 tHalMsgHeader header;
3311 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3312} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3313
Jeff Johnson295189b2012-06-20 16:38:30 -07003314/*---------------------------------------------------------------------------
3315 * WLAN_HAL_UPDATE_BEACON_REQ
3316 *--------------------------------------------------------------------------*/
3317typedef PACKED_PRE struct PACKED_POST
3318{
3319
3320 tANI_U8 bssIdx;
3321
3322 //shortPreamble mode. HAL should update all the STA rates when it
3323 //receives this message
3324 tANI_U8 fShortPreamble;
3325 //short Slot time.
3326 tANI_U8 fShortSlotTime;
3327 //Beacon Interval
3328 tANI_U16 beaconInterval;
3329 //Protection related
3330 tANI_U8 llaCoexist;
3331 tANI_U8 llbCoexist;
3332 tANI_U8 llgCoexist;
3333 tANI_U8 ht20MhzCoexist;
3334 tANI_U8 llnNonGFCoexist;
3335 tANI_U8 fLsigTXOPProtectionFullSupport;
3336 tANI_U8 fRIFSMode;
3337
3338 tANI_U16 paramChangeBitmap;
3339}tUpdateBeaconParams, *tpUpdateBeaconParams;
3340
3341
3342typedef PACKED_PRE struct PACKED_POST
3343{
3344 tHalMsgHeader header;
3345 tUpdateBeaconParams updateBeaconParam;
3346} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3347
3348/*---------------------------------------------------------------------------
3349 * WLAN_HAL_UPDATE_BEACON_RSP
3350 *--------------------------------------------------------------------------*/
3351typedef PACKED_PRE struct PACKED_POST
3352{
3353 tANI_U32 status;
3354} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3355
3356typedef PACKED_PRE struct PACKED_POST
3357{
3358 tHalMsgHeader header;
3359 tUpdateBeaconRspParams updateBeaconRspParam;
3360} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3361
3362/*---------------------------------------------------------------------------
3363 * WLAN_HAL_SEND_BEACON_REQ
3364 *--------------------------------------------------------------------------*/
3365typedef PACKED_PRE struct PACKED_POST
3366{
3367 tANI_U32 beaconLength; //length of the template.
3368 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3369 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003370 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003371 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3372}tSendBeaconParams, *tpSendBeaconParams;
3373
3374
3375typedef PACKED_PRE struct PACKED_POST
3376{
3377 tHalMsgHeader header;
3378 tSendBeaconParams sendBeaconParam;
3379}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3380
3381/*---------------------------------------------------------------------------
3382 * WLAN_HAL_SEND_BEACON_RSP
3383 *--------------------------------------------------------------------------*/
3384typedef PACKED_PRE struct PACKED_POST
3385{
3386 tANI_U32 status;
3387} tSendBeaconRspParams, *tpSendBeaconRspParams;
3388
3389typedef PACKED_PRE struct PACKED_POST
3390{
3391 tHalMsgHeader header;
3392 tSendBeaconRspParams sendBeaconRspParam;
3393} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3394
3395#ifdef FEATURE_5GHZ_BAND
3396
3397/*---------------------------------------------------------------------------
3398 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3399 *--------------------------------------------------------------------------*/
3400typedef PACKED_PRE struct PACKED_POST
3401{
3402 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003403 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003404}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3405
3406
3407typedef PACKED_PRE struct PACKED_POST
3408{
3409 /* Link Parameters */
3410 tSirEnableRadarInfoType EnableRadarInfo;
3411}tEnableRadarReqParams, *tpEnableRadarReqParams;
3412
3413typedef PACKED_PRE struct PACKED_POST
3414{
3415 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003416 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003417}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3418
3419/*---------------------------------------------------------------------------
3420 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3421 *--------------------------------------------------------------------------*/
3422
3423typedef PACKED_PRE struct PACKED_POST
3424{
3425 /* Link Parameters */
3426 tSirMacAddr BSSID;
3427 /* success or failure */
3428 tANI_U32 status;
3429}tEnableRadarRspParams, *tpEnableRadarRspParams;
3430
3431typedef PACKED_PRE struct PACKED_POST
3432{
3433 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003434 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003435}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3436
3437/*---------------------------------------------------------------------------
3438 *WLAN_HAL_RADAR_DETECT_INTR_IND
3439 *--------------------------------------------------------------------------*/
3440
3441typedef PACKED_PRE struct PACKED_POST
3442{
3443 tANI_U8 radarDetChannel;
3444}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3445
3446typedef PACKED_PRE struct PACKED_POST
3447{
3448 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003449 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003450}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3451
3452/*---------------------------------------------------------------------------
3453 *WLAN_HAL_RADAR_DETECT_IND
3454 *-------------------------------------------------------------------------*/
3455typedef PACKED_PRE struct PACKED_POST
3456{
3457 /*channel number in which the RADAR detected*/
3458 tANI_U8 channelNumber;
3459
3460 /*RADAR pulse width*/
3461 tANI_U16 radarPulseWidth; // in usecond
3462
3463 /*Number of RADAR pulses */
3464 tANI_U16 numRadarPulse;
3465}tRadarDetectIndParams,*tpRadarDetectIndParams;
3466
3467typedef PACKED_PRE struct PACKED_POST
3468{
3469 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003470 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003471}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3472
3473
3474/*---------------------------------------------------------------------------
3475 *WLAN_HAL_GET_TPC_REPORT_REQ
3476 *-------------------------------------------------------------------------*/
3477typedef PACKED_PRE struct PACKED_POST
3478{
3479 tSirMacAddr sta;
3480 tANI_U8 dialogToken;
3481 tANI_U8 txpower;
3482}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3483
3484
3485typedef PACKED_PRE struct PACKED_POST
3486{
3487 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003488 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003489}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3490
3491/*---------------------------------------------------------------------------
3492 * WLAN_HAL_GET_TPC_REPORT_RSP
3493 *--------------------------------------------------------------------------*/
3494
3495typedef PACKED_PRE struct PACKED_POST
3496{
3497 /* success or failure */
3498 tANI_U32 status;
3499}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3500
3501typedef PACKED_PRE struct PACKED_POST
3502{
3503 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003504 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003505}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3506
3507#endif
3508
Jeff Johnson295189b2012-06-20 16:38:30 -07003509/*---------------------------------------------------------------------------
3510 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3511 *-------------------------------------------------------------------------*/
3512typedef PACKED_PRE struct PACKED_POST
3513{
3514 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3515 tANI_U32 probeRespTemplateLen;
3516 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3517 tSirMacAddr bssId;
3518
3519}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3520
3521typedef PACKED_PRE struct PACKED_POST
3522{
3523 tHalMsgHeader header;
3524 tSendProbeRespReqParams sendProbeRespReqParams ;
3525}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3526
3527/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003528 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003529 *--------------------------------------------------------------------------*/
3530
3531typedef PACKED_PRE struct PACKED_POST
3532{
3533 /* success or failure */
3534 tANI_U32 status;
3535}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3536
3537typedef PACKED_PRE struct PACKED_POST
3538{
3539 tHalMsgHeader header;
3540 tSendProbeRespRspParams sendProbeRespRspParams;
3541}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3542
3543
3544/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003545 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003546 *--------------------------------------------------------------------------*/
3547
3548typedef PACKED_PRE struct PACKED_POST
3549{
3550 /* success or failure */
3551 tANI_U32 status;
3552}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3553
3554typedef PACKED_PRE struct PACKED_POST
3555{
3556 tHalMsgHeader header;
3557 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3558}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3559
3560/*---------------------------------------------------------------------------
3561 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3562 *--------------------------------------------------------------------------*/
3563
3564typedef PACKED_PRE struct PACKED_POST
3565{
3566 tANI_U16 assocId;
3567 tANI_U16 staId;
3568 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3569 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003570 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003571 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003572
3573}tDeleteStaContextParams, *tpDeleteStaContextParams;
3574
3575
3576typedef PACKED_PRE struct PACKED_POST
3577{
3578 tHalMsgHeader header;
3579 tDeleteStaContextParams deleteStaContextParams;
3580}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3581
Anand Kumar012623a2013-01-11 17:00:00 -08003582typedef PACKED_PRE struct PACKED_POST
3583{
3584 tHalMsgHeader header;
3585 tANI_U8 assocId;
3586 tANI_U8 staIdx;
3587 tANI_U8 bssIdx;
3588 tANI_U8 uReasonCode;
3589 tANI_U32 uStatus;
3590} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003591
3592/*---------------------------------------------------------------------------
3593 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3594 *--------------------------------------------------------------------------*/
3595
3596typedef PACKED_PRE struct PACKED_POST
3597{
3598 tBtAmpEventType btAmpEventType;
3599
3600}tBtAmpEventParams, *tpBtAmpEventParams;
3601
3602
3603
3604typedef PACKED_PRE struct PACKED_POST
3605{
3606 tHalMsgHeader header;
3607 tBtAmpEventParams btAmpEventParams;
3608}tBtAmpEventMsg, *tpBtAmpEventMsg;
3609
3610/*---------------------------------------------------------------------------
3611*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3612*--------------------------------------------------------------------------*/
3613
3614typedef PACKED_PRE struct PACKED_POST
3615{
3616 /* success or failure */
3617 tANI_U32 status;
3618}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3619
3620typedef PACKED_PRE struct PACKED_POST
3621{
3622 tHalMsgHeader header;
3623 tBtAmpEventRspParams btAmpEventRspParams;
3624}tBtAmpEventRsp, *tpBtAmpEventRsp;
3625
3626
3627/*---------------------------------------------------------------------------
3628 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3629 *--------------------------------------------------------------------------*/
3630
3631typedef PACKED_PRE struct PACKED_POST
3632{
3633 // Station Index. originates from HAL
3634 tANI_U8 ucSTAId;
3635
3636 // TID for which the transmit queue is being flushed
3637 tANI_U8 ucTid;
3638
3639}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3640
3641
3642typedef PACKED_PRE struct PACKED_POST
3643{
3644 tHalMsgHeader header;
3645 tTlHalFlushAcParams tlHalFlushAcParam;
3646}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3647
3648/*---------------------------------------------------------------------------
3649*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3650*--------------------------------------------------------------------------*/
3651
3652typedef PACKED_PRE struct PACKED_POST
3653{
3654 // Station Index. originates from HAL
3655 tANI_U8 ucSTAId;
3656
3657 // TID for which the transmit queue is being flushed
3658 tANI_U8 ucTid;
3659
3660 /* success or failure */
3661 tANI_U32 status;
3662}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3663
3664typedef PACKED_PRE struct PACKED_POST
3665{
3666 tHalMsgHeader header;
3667 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3668}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3669
3670/*---------------------------------------------------------------------------
3671 * WLAN_HAL_ENTER_IMPS_REQ
3672 *--------------------------------------------------------------------------*/
3673typedef PACKED_PRE struct PACKED_POST
3674{
3675 tHalMsgHeader header;
3676} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3677
3678/*---------------------------------------------------------------------------
3679 * WLAN_HAL_EXIT_IMPS_REQ
3680 *--------------------------------------------------------------------------*/
3681typedef PACKED_PRE struct PACKED_POST
3682{
3683 tHalMsgHeader header;
3684} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3685
3686/*---------------------------------------------------------------------------
3687 * WLAN_HAL_ENTER_BMPS_REQ
3688 *--------------------------------------------------------------------------*/
3689
3690typedef PACKED_PRE struct PACKED_POST
3691{
3692 tANI_U8 bssIdx;
3693 //TBTT value derived from the last beacon
3694#ifndef BUILD_QWPTTSTATIC
3695 tANI_U64 tbtt;
3696#endif
3697 tANI_U8 dtimCount;
3698 //DTIM period given to HAL during association may not be valid,
3699 //if association is based on ProbeRsp instead of beacon.
3700 tANI_U8 dtimPeriod;
3701
3702 // For CCX and 11R Roaming
3703 tANI_U32 rssiFilterPeriod;
3704 tANI_U32 numBeaconPerRssiAverage;
3705 tANI_U8 bRssiFilterEnable;
3706
3707} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3708
3709
3710typedef PACKED_PRE struct PACKED_POST
3711{
3712 tHalMsgHeader header;
3713 tHalEnterBmpsReqParams enterBmpsReq;
3714} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3715
3716/*---------------------------------------------------------------------------
3717 * WLAN_HAL_EXIT_BMPS_REQ
3718 *--------------------------------------------------------------------------*/
3719typedef PACKED_PRE struct PACKED_POST
3720{
3721 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003722 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003723} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3724
3725typedef PACKED_PRE struct PACKED_POST
3726{
3727 tHalMsgHeader header;
3728 tHalExitBmpsReqParams exitBmpsReqParams;
3729} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3730
3731/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003732 * WLAN_HAL_MISSED_BEACON_IND
3733 *--------------------------------------------------------------------------*/
3734typedef PACKED_PRE struct PACKED_POST
3735{
3736 tANI_U8 bssIdx;
3737} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3738
3739typedef PACKED_PRE struct PACKED_POST
3740{
3741 tHalMsgHeader header;
3742 tHalMissedBeaconIndParams missedBeaconIndParams;
3743} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3744
3745/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003746 * WLAN_HAL_ADD_BCN_FILTER_REQ
3747 *--------------------------------------------------------------------------*/
3748/* Beacon Filtering data structures */
3749typedef PACKED_PRE struct PACKED_POST
3750{
3751 tANI_U8 offset;
3752 tANI_U8 value;
3753 tANI_U8 bitMask;
3754 tANI_U8 ref;
3755} tEidByteInfo, *tpEidByteInfo;
3756
Jeff Johnson32d95a32012-09-10 13:15:23 -07003757typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003758{
3759 tANI_U16 capabilityInfo;
3760 tANI_U16 capabilityMask;
3761 tANI_U16 beaconInterval;
3762 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003763 tANI_U8 bssIdx;
3764 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003765} tBeaconFilterMsg, *tpBeaconFilterMsg;
3766
3767/* The above structure would be followed by multiple of below mentioned structure */
3768typedef PACKED_PRE struct PACKED_POST
3769{
3770 tANI_U8 elementId;
3771 tANI_U8 checkIePresence;
3772 tEidByteInfo byte;
3773} tBeaconFilterIe, *tpBeaconFilterIe;
3774
3775typedef PACKED_PRE struct PACKED_POST
3776{
3777 tHalMsgHeader header;
3778 tBeaconFilterMsg addBcnFilterParams;
3779} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3780
3781/*---------------------------------------------------------------------------
3782 * WLAN_HAL_REM_BCN_FILTER_REQ
3783 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003784typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003785{
3786 tANI_U8 ucIeCount;
3787 tANI_U8 ucRemIeId[1];
3788} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3789
3790typedef PACKED_PRE struct PACKED_POST
3791{
3792 tHalMsgHeader header;
3793 tRemBeaconFilterMsg remBcnFilterParams;
3794} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3795
3796/*---------------------------------------------------------------------------
3797 * WLAN_HAL_HOST_OFFLOAD_REQ
3798 *--------------------------------------------------------------------------*/
3799#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3800#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3801#define HAL_IPV6_NS_OFFLOAD 2
3802#define HAL_IPV6_ADDR_LEN 16
3803#define HAL_MAC_ADDR_LEN 6
3804#define HAL_OFFLOAD_DISABLE 0
3805#define HAL_OFFLOAD_ENABLE 1
3806#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003807#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003808#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003809#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003810
3811typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3812{
3813 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3814 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3815 //Only support 2 possible Network Advertisement IPv6 address
3816 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3817 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3818 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3819 tANI_U8 srcIPv6AddrValid : 1;
3820 tANI_U8 targetIPv6Addr1Valid : 1;
3821 tANI_U8 targetIPv6Addr2Valid : 1;
3822 tANI_U8 reserved1 : 5;
3823 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003824 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003825 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003826} tHalNSOffloadParams;
3827
3828typedef PACKED_PRE struct PACKED_POST
3829{
3830 tANI_U8 offloadType;
3831 tANI_U8 enableOrDisable;
3832 PACKED_PRE union PACKED_POST
3833 {
3834 tANI_U8 hostIpv4Addr [4];
3835 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3836 } params;
3837} tHalHostOffloadReq, *tpHalHostOffloadReq;
3838
3839typedef PACKED_PRE struct PACKED_POST
3840{
3841 tHalMsgHeader header;
3842 tHalHostOffloadReq hostOffloadParams;
3843 tHalNSOffloadParams nsOffloadParams;
3844} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3845
Leo Chang397deb72013-08-22 11:33:16 -07003846
3847#ifdef FEATURE_WLAN_LPHB
3848typedef enum
3849{
3850 WIFI_HB_SET_ENABLE = 0x0001,
3851 WIFI_HB_SET_TCP_PARAMS = 0x0002,
3852 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
3853 WIFI_HB_SET_UDP_PARAMS = 0x0004,
3854 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
3855 WIFI_HB_SET_NETWORK_INFO = 0x0006,
3856}tLowPowerHeartBeatCmdType ;
3857
3858#define MAX_FLITER_SIZE 64
3859/*---------------------------------------------------------------------------
3860 *FEATURE_WLAN_LPHB REQ
3861 *--------------------------------------------------------------------------*/
3862typedef PACKED_PRE struct PACKED_POST
3863{
3864 uint32 hostIpv4Addr;
3865 uint32 destIpv4Addr;
3866 uint16 hostPort;
3867 uint16 destPort;
3868 uint16 timeOutSec; // in seconds
3869 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07003870 uint16 timePeriodSec; // in seconds
3871 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07003872} tlowPowerHeartBeatParamsTcpStruct;
3873
3874typedef PACKED_PRE struct PACKED_POST
3875{
3876 uint32 hostIpv4Addr;
3877 uint32 destIpv4Addr;
3878 uint16 hostPort;
3879 uint16 destPort;
3880 uint16 timePeriodSec;// in seconds
3881 uint16 timeOutSec; // in seconds
3882 tSirMacAddr gatewayMacAddr;
3883} tlowPowerHeartBeatParamsUdpStruct;
3884
3885typedef PACKED_PRE struct PACKED_POST
3886{
3887 uint32 offset;
3888 uint32 filterLength;
3889 uint8 filter[MAX_FLITER_SIZE];
3890} tlowPowerHeartBeatFilterStruct;
3891
3892typedef PACKED_PRE struct PACKED_POST
3893{
3894 uint8 heartBeatEnable;
3895 uint8 heartBeatType; //TCP or UDP
3896} tlowPowerHeartBeatEnableStruct;
3897
3898typedef PACKED_PRE struct PACKED_POST
3899{
3900 uint8 dummy;
3901} tlowPowerHeartBeatNetworkInfoStruct;
3902
3903
3904typedef PACKED_PRE struct PACKED_POST
3905{
3906 uint8 sessionIdx;
3907 uint16 lowPowerHeartBeatCmdType;
3908 PACKED_PRE union PACKED_PRO
3909 {
3910 tlowPowerHeartBeatEnableStruct control;
3911 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
3912 tlowPowerHeartBeatParamsTcpStruct tcpParams;
3913 tlowPowerHeartBeatParamsUdpStruct udpParams;
3914 tlowPowerHeartBeatNetworkInfoStruct info;
3915 }options;
3916} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
3917
3918
3919typedef PACKED_PRE struct PACKED_POST
3920{
3921 tHalMsgHeader header;
3922 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
3923} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
3924
3925/*---------------------------------------------------------------------------
3926 * FEATURE_WLAN_LPHB RSP
3927 *--------------------------------------------------------------------------*/
3928
3929typedef PACKED_PRE struct PACKED_POST
3930{
3931 /* success or failure */
3932 uint8 sessionIdx;
3933 uint32 status;
3934 uint16 lowPowerHeartBeatCmdType;
3935}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
3936
3937typedef PACKED_PRE struct PACKED_POST
3938{
3939 tHalMsgHeader header;
3940 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
3941}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
3942
3943
3944/*---------------------------------------------------------------------------
3945 * FEATURE_WLAN_LPHB IND
3946 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07003947#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
3948#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
3949
3950#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
3951#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07003952#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07003953
Kumar Anandea78e792013-10-10 23:47:01 -07003954
3955#define WIFI_LPHB_PROTO_UDP 0x01
3956#define WIFI_LPHB_PROTO_TCP 0x02
3957
Leo Chang397deb72013-08-22 11:33:16 -07003958typedef PACKED_PRE struct PACKED_POST
3959{
3960 uint8 bssIdx;
3961 uint8 sessionIdx;
3962 uint8 protocolType; /*TCP or UDP*/
3963 uint8 eventReason;
3964
3965}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
3966
3967typedef PACKED_PRE struct PACKED_POST
3968{
3969 tHalMsgHeader header;
3970 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
3971}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
3972
3973#endif
krunal soni2a4728d2013-09-20 21:56:50 -07003974
3975#ifdef FEATURE_WLAN_BATCH_SCAN
3976
3977/*---------------------------------------------------------------------------
3978 * WLAN_HAL_BATCHSCAN_SET_REQ
3979 *--------------------------------------------------------------------------*/
3980typedef PACKED_PRE struct PACKED_POST
3981{
3982 /* Scan Frerquency - default to 30Sec*/
3983 tANI_U32 scanInterval;
3984 tANI_U32 numScan2Batch;
3985 tANI_U32 bestNetworks;
3986 tANI_U8 rfBand;
3987 tANI_U8 rtt;
3988} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
3989
3990typedef PACKED_PRE struct PACKED_POST
3991{
3992 tHalMsgHeader header;
3993 tHalBatchScanSetParams batchScanParams;
3994} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
3995
3996/*---------------------------------------------------------------------------
3997 * WLAN_HAL_BATCHSCAN_SET_RSP
3998 *--------------------------------------------------------------------------*/
3999typedef PACKED_PRE struct PACKED_POST
4000{
4001 tANI_U32 supportedMscan;
4002} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4003
4004typedef PACKED_PRE struct PACKED_POST
4005{
4006 tHalMsgHeader header;
4007 tHalBatchScanSetRspParam setBatchScanRspParam;
4008} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4009
4010/*---------------------------------------------------------------------------
4011* WLAN_HAL_BATCHSCAN_STOP_IND
4012*--------------------------------------------------------------------------*/
4013typedef PACKED_PRE struct PACKED_POST
4014{
4015 tANI_U32 param;
4016} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4017
4018typedef PACKED_PRE struct PACKED_POST
4019{
4020 tHalMsgHeader header;
4021 tHalBatchScanStopIndParam param;
4022} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4023
4024/*---------------------------------------------------------------------------
4025* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4026*--------------------------------------------------------------------------*/
4027typedef PACKED_PRE struct PACKED_POST
4028{
4029 tANI_U32 param;
4030} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4031
4032typedef PACKED_PRE struct PACKED_POST
4033{
4034 tHalMsgHeader header;
4035 tHalBatchScanTriggerResultParam param;
4036} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4037
4038/*---------------------------------------------------------------------------
4039 * WLAN_HAL_BATCHSCAN_GET_RSP
4040 *--------------------------------------------------------------------------*/
4041typedef PACKED_PRE struct PACKED_POST
4042{
4043 tANI_U8 bssid[6]; /* BSSID */
Rajeev Kumar1f7759a2014-01-23 15:21:47 -08004044 tANI_U8 ssid[33]; /* SSID */
krunal soni2a4728d2013-09-20 21:56:50 -07004045 tANI_U8 ch; /* Channel */
4046 tANI_U8 rssi; /* RSSI or Level */
4047 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4048 tANI_U32 timestamp;
4049} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4050
4051typedef PACKED_PRE struct PACKED_POST
4052{
4053 tANI_U32 scanId; /* Scan List ID. */
4054 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4055 tANI_U32 numNetworksInScanList;
4056 /* Variable data ptr: Number of AP in Scan List */
4057 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4058 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4059 tANI_U8 scanList[1];
4060} tHalBatchScanList, *tpHalBatchScanList;
4061
4062typedef PACKED_PRE struct PACKED_POST
4063{
4064 tANI_U32 timestamp;
4065 tANI_U32 numScanLists;
4066 boolean isLastResult;
4067 /* Variable Data ptr: Number of Scan Lists*/
4068 /* following isLastResult is data of type tHalBatchScanList
4069 * of sizeof(tHalBatchScanList) * numScanLists*/
4070 tANI_U8 scanResults[1];
4071} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4072
4073typedef PACKED_PRE struct PACKED_POST
4074{
4075 tHalMsgHeader header;
4076 tHalBatchScanResultIndParam resultIndMsgParam;
4077} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4078
4079#endif
4080
Jeff Johnson295189b2012-06-20 16:38:30 -07004081/*---------------------------------------------------------------------------
4082 * WLAN_HAL_KEEP_ALIVE_REQ
4083 *--------------------------------------------------------------------------*/
4084/* Packet Types. */
4085#define HAL_KEEP_ALIVE_NULL_PKT 1
4086#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4087
4088/* Enable or disable keep alive */
4089#define HAL_KEEP_ALIVE_DISABLE 0
4090#define HAL_KEEP_ALIVE_ENABLE 1
4091
4092/* Keep Alive request. */
4093typedef PACKED_PRE struct PACKED_POST
4094{
4095 tANI_U8 packetType;
4096 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004097 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004098 tHalIpv4Addr destIpv4Addr;
4099 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004100 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004101} tHalKeepAliveReq, *tpHalKeepAliveReq;
4102
4103typedef PACKED_PRE struct PACKED_POST
4104{
4105 tHalMsgHeader header;
4106 tHalKeepAliveReq KeepAliveParams;
4107} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4108
4109/*---------------------------------------------------------------------------
4110 * WLAN_HAL_SET_RSSI_THRESH_REQ
4111 *--------------------------------------------------------------------------*/
4112typedef PACKED_PRE struct PACKED_POST
4113{
4114 tANI_S8 ucRssiThreshold1 : 8;
4115 tANI_S8 ucRssiThreshold2 : 8;
4116 tANI_S8 ucRssiThreshold3 : 8;
4117 tANI_U8 bRssiThres1PosNotify : 1;
4118 tANI_U8 bRssiThres1NegNotify : 1;
4119 tANI_U8 bRssiThres2PosNotify : 1;
4120 tANI_U8 bRssiThres2NegNotify : 1;
4121 tANI_U8 bRssiThres3PosNotify : 1;
4122 tANI_U8 bRssiThres3NegNotify : 1;
4123 tANI_U8 bReserved10 : 2;
4124} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004125
Jeff Johnson295189b2012-06-20 16:38:30 -07004126typedef PACKED_PRE struct PACKED_POST
4127{
4128 tHalMsgHeader header;
4129 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004130} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004131
4132/*---------------------------------------------------------------------------
4133 * WLAN_HAL_ENTER_UAPSD_REQ
4134 *--------------------------------------------------------------------------*/
4135typedef PACKED_PRE struct PACKED_POST
4136{
4137 tANI_U8 bkDeliveryEnabled:1;
4138 tANI_U8 beDeliveryEnabled:1;
4139 tANI_U8 viDeliveryEnabled:1;
4140 tANI_U8 voDeliveryEnabled:1;
4141 tANI_U8 bkTriggerEnabled:1;
4142 tANI_U8 beTriggerEnabled:1;
4143 tANI_U8 viTriggerEnabled:1;
4144 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004145 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004146} tUapsdReqParams, *tpUapsdReqParams;
4147
4148typedef PACKED_PRE struct PACKED_POST
4149{
4150 tHalMsgHeader header;
4151 tUapsdReqParams enterUapsdParams;
4152} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4153
4154/*---------------------------------------------------------------------------
4155 * WLAN_HAL_EXIT_UAPSD_REQ
4156 *--------------------------------------------------------------------------*/
4157typedef PACKED_PRE struct PACKED_POST
4158{
4159 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004160 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004161} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4162
Kumar Anandea78e792013-10-10 23:47:01 -07004163#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4164#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004165/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004166 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4167 *--------------------------------------------------------------------------*/
4168typedef PACKED_PRE struct PACKED_POST
4169{
4170 tANI_U32 selfStaIdx:8;
4171 tANI_U32 ucPtrnId:8; // Pattern ID
4172 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4173 tANI_U32 uPtrnIntervalMs; // In msec
4174 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4175} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4176
4177typedef PACKED_PRE struct PACKED_POST
4178{
4179 tHalMsgHeader header;
4180 tHalAddPeriodicTxPtrn ptrnParams;
4181} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4182
4183/*---------------------------------------------------------------------------
4184 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4185 *--------------------------------------------------------------------------*/
4186typedef PACKED_PRE struct PACKED_POST
4187{
4188 tANI_U32 selfStaIdx:8;
4189 tANI_U32 rsvd:24;
4190 /* Bitmap of pattern IDs that needs to be deleted */
4191 tANI_U32 uPatternIdBitmap;
4192} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4193
4194typedef PACKED_PRE struct PACKED_POST
4195{
4196 tHalMsgHeader header;
4197 tHalDelPeriodicTxPtrn ptrnParams;
4198} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4199
4200/*---------------------------------------------------------------------------
4201 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4202 *--------------------------------------------------------------------------*/
4203typedef PACKED_PRE struct PACKED_POST
4204{
4205 /* Type of Failure indication */
4206 tANI_U32 bssIdx:8;
4207 tANI_U32 selfStaIdx:8;
4208 tANI_U32 rsvd:16;
4209 tANI_U32 status;
4210 tANI_U32 patternIdBitmap;
4211} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4212
4213typedef PACKED_PRE struct PACKED_POST
4214{
4215 tHalMsgHeader header;
4216 tHalPeriodicTxPtrnFwInd fwIndParams;
4217} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4218
4219/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004220 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4221 *--------------------------------------------------------------------------*/
4222#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4223#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4224
4225typedef PACKED_PRE struct PACKED_POST
4226{
4227 tANI_U8 ucPatternId; // Pattern ID
4228 // Pattern byte offset from beginning of the 802.11 packet to start of the
4229 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07004230 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004231 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4232 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4233 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4234 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4235 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4236 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004237 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004238} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4239
4240typedef PACKED_PRE struct PACKED_POST
4241{
4242 tHalMsgHeader header;
4243 tHalWowlAddBcastPtrn ptrnParams;
4244} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004245
Jeff Johnsone7245742012-09-05 17:12:55 -07004246
4247
Jeff Johnson295189b2012-06-20 16:38:30 -07004248/*---------------------------------------------------------------------------
4249 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4250 *--------------------------------------------------------------------------*/
4251typedef PACKED_PRE struct PACKED_POST
4252{
4253 /* Pattern ID of the wakeup pattern to be deleted */
4254 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004255 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004256} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4257
4258typedef PACKED_PRE struct PACKED_POST
4259{
4260 tHalMsgHeader header;
4261 tHalWowlDelBcastPtrn ptrnParams;
4262} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4263
4264/*---------------------------------------------------------------------------
4265 * WLAN_HAL_ENTER_WOWL_REQ
4266 *--------------------------------------------------------------------------*/
4267typedef PACKED_PRE struct PACKED_POST
4268{
4269 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004270 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004271
4272 /* Magic pattern */
4273 tSirMacAddr magicPtrn;
4274
Jeff Johnson32d95a32012-09-10 13:15:23 -07004275 /* Enables/disables packet pattern filtering in firmware.
4276 Enabling this flag enables broadcast pattern matching
4277 in Firmware. If unicast pattern matching is also desired,
4278 ucUcastPatternFilteringEnable flag must be set tot true
4279 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004280 */
4281 tANI_U8 ucPatternFilteringEnable;
4282
Jeff Johnson32d95a32012-09-10 13:15:23 -07004283 /* Enables/disables unicast packet pattern filtering.
4284 This flag specifies whether we want to do pattern match
4285 on unicast packets as well and not just broadcast packets.
4286 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004287 (main controlling flag) is set to false
4288 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004289 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004290
Jeff Johnson32d95a32012-09-10 13:15:23 -07004291 /* This configuration is valid only when magicPktEnable=1.
4292 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004293 * Channel Switch Action Frame.
4294 */
4295 tANI_U8 ucWowChnlSwitchRcv;
4296
Jeff Johnson32d95a32012-09-10 13:15:23 -07004297 /* This configuration is valid only when magicPktEnable=1.
4298 * It requests hardware to wake up when it receives the
4299 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004300 */
4301 tANI_U8 ucWowDeauthRcv;
4302
Jeff Johnson32d95a32012-09-10 13:15:23 -07004303 /* This configuration is valid only when magicPktEnable=1.
4304 * It requests hardware to wake up when it receives the
4305 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004306 */
4307 tANI_U8 ucWowDisassocRcv;
4308
Jeff Johnson32d95a32012-09-10 13:15:23 -07004309 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004310 * It requests hardware to wake up when it has missed
4311 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07004312 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004313 */
4314 tANI_U8 ucWowMaxMissedBeacons;
4315
Jeff Johnson32d95a32012-09-10 13:15:23 -07004316 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004317 * This is a timeout value in units of microsec. It requests
4318 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07004319 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004320 */
4321 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004322
Jeff Johnson295189b2012-06-20 16:38:30 -07004323 /* This configuration directs the WoW packet filtering to look for EAP-ID
4324 * requests embedded in EAPOL frames and use this as a wake source.
4325 */
4326 tANI_U8 ucWoWEAPIDRequestEnable;
4327
4328 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4329 * requests and use this as a wake source.
4330 */
4331 tANI_U8 ucWoWEAPOL4WayEnable;
4332
4333 /* This configuration allows a host wakeup on an network scan offload match.
4334 */
4335 tANI_U8 ucWowNetScanOffloadMatch;
4336
4337 /* This configuration allows a host wakeup on any GTK rekeying error.
4338 */
4339 tANI_U8 ucWowGTKRekeyError;
4340
4341 /* This configuration allows a host wakeup on BSS connection loss.
4342 */
4343 tANI_U8 ucWoWBSSConnLoss;
4344
Jeff Johnsone7245742012-09-05 17:12:55 -07004345 tANI_U8 bssIdx;
4346
Jeff Johnson295189b2012-06-20 16:38:30 -07004347} tHalWowlEnterParams, *tpHalWowlEnterParams;
4348
4349typedef PACKED_PRE struct PACKED_POST
4350{
4351 tHalMsgHeader header;
4352 tHalWowlEnterParams enterWowlParams;
4353} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4354
4355/*---------------------------------------------------------------------------
4356 * WLAN_HAL_EXIT_WOWL_REQ
4357 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004358
Jeff Johnson295189b2012-06-20 16:38:30 -07004359typedef PACKED_PRE struct PACKED_POST
4360{
Jeff Johnsone7245742012-09-05 17:12:55 -07004361 tANI_U8 bssIdx;
4362
4363} tHalWowlExitParams, *tpHalWowlExitParams;
4364
4365typedef PACKED_PRE struct PACKED_POST
4366{
4367 tHalMsgHeader header;
4368 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004369} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4370
4371/*---------------------------------------------------------------------------
4372 * WLAN_HAL_GET_RSSI_REQ
4373 *--------------------------------------------------------------------------*/
4374typedef PACKED_PRE struct PACKED_POST
4375{
4376 tHalMsgHeader header;
4377} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4378
Anand Kumar012623a2013-01-11 17:00:00 -08004379typedef PACKED_PRE struct PACKED_POST
4380{
4381 /* Valid STA Idx for per STA stats request */
4382 tANI_U32 staId;
4383
4384}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4385
4386
4387/*---------------------------------------------------------------------------
4388 * WLAN_HAL_GET_ROAM_RSSI_REQ
4389 *--------------------------------------------------------------------------*/
4390typedef PACKED_PRE struct PACKED_POST
4391{
4392 tHalMsgHeader header;
4393 tHalRoamRssiReqParams roamRssiReqParams;
4394} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4395
4396
Jeff Johnson295189b2012-06-20 16:38:30 -07004397/*---------------------------------------------------------------------------
4398 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4399 *--------------------------------------------------------------------------*/
4400typedef PACKED_PRE struct PACKED_POST {
4401 tANI_U8 staidx; // STA index
4402 tANI_U8 ac; // Access Category
4403 tANI_U8 up; // User Priority
4404 tANI_U32 srvInterval; // Service Interval
4405 tANI_U32 susInterval; // Suspend Interval
4406 tANI_U32 delayInterval; // Delay Interval
4407} tUapsdInfo, tpUapsdInfo;
4408
4409typedef PACKED_PRE struct PACKED_POST
4410{
4411 tHalMsgHeader header;
4412 tUapsdInfo enableUapsdAcParams;
4413} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4414
4415/*---------------------------------------------------------------------------
4416 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4417 *--------------------------------------------------------------------------*/
4418typedef PACKED_PRE struct PACKED_POST {
4419 tANI_U8 setMcstBcstFilterSetting;
4420 tANI_U8 setMcstBcstFilter;
4421} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4422
4423typedef PACKED_PRE struct PACKED_POST
4424{
4425 tHalMsgHeader header;
4426 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4427} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4428
4429/*---------------------------------------------------------------------------
4430 * WLAN_HAL_ENTER_IMPS_RSP
4431 *--------------------------------------------------------------------------*/
4432typedef PACKED_PRE struct PACKED_POST
4433{
4434 /* success or failure */
4435 tANI_U32 status;
4436} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4437
4438typedef PACKED_PRE struct PACKED_POST
4439{
4440 tHalMsgHeader header;
4441 tHalEnterImpsRspParams enterImpsRspParams;
4442} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4443
4444/*---------------------------------------------------------------------------
4445 * WLAN_HAL_EXIT_IMPS_RSP
4446 *--------------------------------------------------------------------------*/
4447typedef PACKED_PRE struct PACKED_POST
4448{
4449 /* success or failure */
4450 tANI_U32 status;
4451} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4452
4453typedef PACKED_PRE struct PACKED_POST
4454{
4455 tHalMsgHeader header;
4456 tHalExitImpsRspParams exitImpsRspParams;
4457} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4458
4459/*---------------------------------------------------------------------------
4460 * WLAN_HAL_ENTER_BMPS_RSP
4461 *--------------------------------------------------------------------------*/
4462typedef PACKED_PRE struct PACKED_POST
4463{
4464 /* success or failure */
4465 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004466 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004467} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4468
4469typedef PACKED_PRE struct PACKED_POST
4470{
4471 tHalMsgHeader header;
4472 tHalEnterBmpsRspParams enterBmpsRspParams;
4473} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4474
4475/*---------------------------------------------------------------------------
4476 * WLAN_HAL_EXIT_BMPS_RSP
4477 *--------------------------------------------------------------------------*/
4478typedef PACKED_PRE struct PACKED_POST
4479{
4480 /* success or failure */
4481 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004482 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004483} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4484
4485typedef PACKED_PRE struct PACKED_POST
4486{
4487 tHalMsgHeader header;
4488 tHalExitBmpsRspParams exitBmpsRspParams;
4489} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4490
4491/*---------------------------------------------------------------------------
4492 * WLAN_HAL_ENTER_UAPSD_RSP
4493 *--------------------------------------------------------------------------*/
4494typedef PACKED_PRE struct PACKED_POST
4495{
4496 /* success or failure */
4497 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004498 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004499}tUapsdRspParams, *tpUapsdRspParams;
4500
4501typedef PACKED_PRE struct PACKED_POST
4502{
4503 tHalMsgHeader header;
4504 tUapsdRspParams enterUapsdRspParams;
4505} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4506
4507/*---------------------------------------------------------------------------
4508 * WLAN_HAL_EXIT_UAPSD_RSP
4509 *--------------------------------------------------------------------------*/
4510typedef PACKED_PRE struct PACKED_POST
4511{
4512 /* success or failure */
4513 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004514 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004515} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4516
4517typedef PACKED_PRE struct PACKED_POST
4518{
4519 tHalMsgHeader header;
4520 tHalExitUapsdRspParams exitUapsdRspParams;
4521} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4522
4523/*---------------------------------------------------------------------------
4524 * WLAN_HAL_RSSI_NOTIFICATION_IND
4525 *--------------------------------------------------------------------------*/
4526typedef PACKED_PRE struct PACKED_POST
4527{
4528 tANI_U32 bRssiThres1PosCross : 1;
4529 tANI_U32 bRssiThres1NegCross : 1;
4530 tANI_U32 bRssiThres2PosCross : 1;
4531 tANI_U32 bRssiThres2NegCross : 1;
4532 tANI_U32 bRssiThres3PosCross : 1;
4533 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004534 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004535 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07004536 tANI_U32 isBTCoexCompromise : 1;
4537 tANI_U32 bReserved : 9;
Jeff Johnson295189b2012-06-20 16:38:30 -07004538} tHalRSSINotification, *tpHalRSSINotification;
4539
4540typedef PACKED_PRE struct PACKED_POST
4541{
4542 tHalMsgHeader header;
4543 tHalRSSINotification rssiNotificationParams;
4544} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4545
4546/*---------------------------------------------------------------------------
4547 * WLAN_HAL_GET_RSSI_RSP
4548 *--------------------------------------------------------------------------*/
4549typedef PACKED_PRE struct PACKED_POST
4550{
4551 /* success or failure */
4552 tANI_U32 status;
4553 tANI_S8 rssi;
4554} tHalGetRssiParams, *tpHalGetRspParams;
4555
4556typedef PACKED_PRE struct PACKED_POST
4557{
4558 tHalMsgHeader header;
4559 tHalGetRssiParams rssiRspParams;
4560} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4561
4562/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004563 * WLAN_HAL_GET_ROAM_RSSI_RSP
4564 *--------------------------------------------------------------------------*/
4565typedef PACKED_PRE struct PACKED_POST
4566{
4567 /* success or failure */
4568 tANI_U32 status;
4569
4570 tANI_U8 staId;
4571 tANI_S8 rssi;
4572} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4573
4574typedef PACKED_PRE struct PACKED_POST
4575{
4576 tHalMsgHeader header;
4577 tHalGetRoamRssiParams roamRssiRspParams;
4578} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4579
4580/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004581 * WLAN_HAL_ENTER_WOWL_RSP
4582 *--------------------------------------------------------------------------*/
4583typedef PACKED_PRE struct PACKED_POST
4584{
4585 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004586 tANI_U32 status;
4587 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004588} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4589
4590typedef PACKED_PRE struct PACKED_POST
4591{
4592 tHalMsgHeader header;
4593 tHalEnterWowlRspParams enterWowlRspParams;
4594} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4595
4596/*---------------------------------------------------------------------------
4597 * WLAN_HAL_EXIT_WOWL_RSP
4598 *--------------------------------------------------------------------------*/
4599typedef PACKED_PRE struct PACKED_POST
4600{
4601 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004602 tANI_U32 status;
4603 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004604} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4605
4606typedef PACKED_PRE struct PACKED_POST
4607{
4608 tHalMsgHeader header;
4609 tHalExitWowlRspParams exitWowlRspParams;
4610} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4611
4612/*---------------------------------------------------------------------------
4613 * WLAN_HAL_ADD_BCN_FILTER_RSP
4614 *--------------------------------------------------------------------------*/
4615typedef PACKED_PRE struct PACKED_POST
4616{
4617 /* success or failure */
4618 tANI_U32 status;
4619} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4620
4621typedef PACKED_PRE struct PACKED_POST
4622{
4623 tHalMsgHeader header;
4624 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4625} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4626
4627/*---------------------------------------------------------------------------
4628 * WLAN_HAL_REM_BCN_FILTER_RSP
4629 *--------------------------------------------------------------------------*/
4630typedef PACKED_PRE struct PACKED_POST
4631{
4632 /* success or failure */
4633 tANI_U32 status;
4634} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4635
4636typedef PACKED_PRE struct PACKED_POST
4637{
4638 tHalMsgHeader header;
4639 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4640} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4641
4642/*---------------------------------------------------------------------------
4643 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4644 *--------------------------------------------------------------------------*/
4645typedef PACKED_PRE struct PACKED_POST
4646{
4647 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004648 tANI_U32 status;
4649 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004650} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4651
4652typedef PACKED_PRE struct PACKED_POST
4653{
4654 tHalMsgHeader header;
4655 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4656} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4657
4658/*---------------------------------------------------------------------------
4659 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4660 *--------------------------------------------------------------------------*/
4661typedef PACKED_PRE struct PACKED_POST
4662{
4663 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004664 tANI_U32 status;
4665 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004666} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4667
4668typedef PACKED_PRE struct PACKED_POST
4669{
4670 tHalMsgHeader header;
4671 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4672} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4673
4674/*---------------------------------------------------------------------------
4675 * WLAN_HAL_HOST_OFFLOAD_RSP
4676 *--------------------------------------------------------------------------*/
4677typedef PACKED_PRE struct PACKED_POST
4678{
4679 /* success or failure */
4680 tANI_U32 status;
4681} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4682
4683typedef PACKED_PRE struct PACKED_POST
4684{
4685 tHalMsgHeader header;
4686 tHalHostOffloadRspParams hostOffloadRspParams;
4687} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4688
4689/*---------------------------------------------------------------------------
4690 * WLAN_HAL_KEEP_ALIVE_RSP
4691 *--------------------------------------------------------------------------*/
4692typedef PACKED_PRE struct PACKED_POST
4693{
4694 /* success or failure */
4695 tANI_U32 status;
4696} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4697
4698typedef PACKED_PRE struct PACKED_POST
4699{
4700 tHalMsgHeader header;
4701 tHalKeepAliveRspParams keepAliveRspParams;
4702} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4703
4704/*---------------------------------------------------------------------------
4705 * WLAN_HAL_SET_RSSI_THRESH_RSP
4706 *--------------------------------------------------------------------------*/
4707typedef PACKED_PRE struct PACKED_POST
4708{
4709 /* success or failure */
4710 tANI_U32 status;
4711} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4712
4713typedef PACKED_PRE struct PACKED_POST
4714{
4715 tHalMsgHeader header;
4716 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4717} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4718
4719/*---------------------------------------------------------------------------
4720 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4721 *--------------------------------------------------------------------------*/
4722typedef PACKED_PRE struct PACKED_POST
4723{
4724 /* success or failure */
4725 tANI_U32 status;
4726} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4727
4728typedef PACKED_PRE struct PACKED_POST
4729{
4730 tHalMsgHeader header;
4731 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4732} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4733
4734/*---------------------------------------------------------------------------
4735 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4736 *--------------------------------------------------------------------------*/
4737typedef PACKED_PRE struct PACKED_POST
4738{
4739 /* success or failure */
4740 tANI_U32 status;
4741} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4742
4743typedef PACKED_PRE struct PACKED_POST
4744{
4745 tHalMsgHeader header;
4746 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4747} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4748
4749/*---------------------------------------------------------------------------
4750 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4751 *--------------------------------------------------------------------------*/
4752
4753typedef PACKED_PRE struct PACKED_POST
4754{
4755 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4756 //the request has power constraints, this should be applied only to that session
4757 tSirMacAddr selfStaMacAddr;
4758 //In request,
4759 //power == MaxTx power to be used.
4760 tPowerdBm power;
4761
4762}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4763
4764
4765typedef PACKED_PRE struct PACKED_POST
4766{
4767 tHalMsgHeader header;
4768 tSetMaxTxPwrParams setMaxTxPwrParams;
4769}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4770
4771/*---------------------------------------------------------------------------
4772*WLAN_HAL_SET_MAX_TX_POWER_RSP
4773*--------------------------------------------------------------------------*/
4774
4775typedef PACKED_PRE struct PACKED_POST
4776{
4777 //power == tx power used for management frames.
4778 tPowerdBm power;
4779
4780 /* success or failure */
4781 tANI_U32 status;
4782}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4783
4784typedef PACKED_PRE struct PACKED_POST
4785{
4786 tHalMsgHeader header;
4787 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4788}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4789
Kumar Anandea78e792013-10-10 23:47:01 -07004790
Jeff Johnson295189b2012-06-20 16:38:30 -07004791/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07004792 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
4793 *--------------------------------------------------------------------------*/
4794
4795/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
4796typedef enum
4797{
4798 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
4799 // For 2.4GHz or 5GHz bands
4800 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
4801 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
4802 // End of valid enums
4803 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
4804}tHalSetMaxTxPwrBandInfo;
4805
4806typedef PACKED_PRE struct PACKED_POST
4807{
4808 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07004809 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07004810}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
4811
Kumar Anandea78e792013-10-10 23:47:01 -07004812
Arif Hussain36fda162013-08-30 14:46:57 -07004813typedef PACKED_PRE struct PACKED_POST
4814{
4815 tHalMsgHeader header;
4816 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
4817}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
4818
4819/*---------------------------------------------------------------------------
4820*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
4821*--------------------------------------------------------------------------*/
4822
4823typedef PACKED_PRE struct PACKED_POST
4824{
4825 //power == tx power used for management frames.
4826 tPowerdBm power;
4827
4828 /* success or failure */
4829 tANI_U32 status;
4830}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
4831
4832typedef PACKED_PRE struct PACKED_POST
4833{
4834 tHalMsgHeader header;
4835 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
4836}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
4837
4838/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004839 *WLAN_HAL_SET_TX_POWER_REQ
4840 *--------------------------------------------------------------------------*/
4841
4842typedef PACKED_PRE struct PACKED_POST
4843{
4844 /* TX Power in milli watts */
4845 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004846 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004847}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4848
4849
4850typedef PACKED_PRE struct PACKED_POST
4851{
4852 tHalMsgHeader header;
4853 tSetTxPwrReqParams setTxPwrReqParams;
4854}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4855
4856/*---------------------------------------------------------------------------
4857*WLAN_HAL_SET_TX_POWER_RSP
4858*--------------------------------------------------------------------------*/
4859
4860typedef PACKED_PRE struct PACKED_POST
4861{
4862 /* success or failure */
4863 tANI_U32 status;
4864}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4865
4866typedef PACKED_PRE struct PACKED_POST
4867{
4868 tHalMsgHeader header;
4869 tSetTxPwrRspParams setTxPwrRspParams;
4870}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4871
4872/*---------------------------------------------------------------------------
4873 *WLAN_HAL_GET_TX_POWER_REQ
4874 *--------------------------------------------------------------------------*/
4875
4876typedef PACKED_PRE struct PACKED_POST
4877{
4878 tANI_U8 staId;
4879}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4880
4881typedef PACKED_PRE struct PACKED_POST
4882{
4883 tHalMsgHeader header;
4884 tGetTxPwrReqParams getTxPwrReqParams;
4885}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4886
4887/*---------------------------------------------------------------------------
4888*WLAN_HAL_GET_TX_POWER_RSP
4889*--------------------------------------------------------------------------*/
4890
4891typedef PACKED_PRE struct PACKED_POST
4892{
4893 /* success or failure */
4894 tANI_U32 status;
4895
4896 /* TX Power in milli watts */
4897 tANI_U32 txPower;
4898}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4899
4900typedef PACKED_PRE struct PACKED_POST
4901{
4902 tHalMsgHeader header;
4903 tGetTxPwrRspParams getTxPwrRspParams;
4904}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4905
4906#ifdef WLAN_FEATURE_P2P
4907/*---------------------------------------------------------------------------
4908 *WLAN_HAL_SET_P2P_GONOA_REQ
4909 *--------------------------------------------------------------------------*/
4910
4911typedef PACKED_PRE struct PACKED_POST
4912{
4913 tANI_U8 opp_ps;
4914 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004915 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004916 tANI_U32 duration;
4917 tANI_U32 interval;
4918 tANI_U32 single_noa_duration;
4919 tANI_U8 psSelection;
4920}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4921
4922
4923typedef PACKED_PRE struct PACKED_POST
4924{
4925 tHalMsgHeader header;
4926 tSetP2PGONOAParams setP2PGONOAParams;
4927}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4928
4929/*---------------------------------------------------------------------------
4930*WLAN_HAL_SET_P2P_GONOA_RSP
4931*--------------------------------------------------------------------------*/
4932
4933typedef PACKED_PRE struct PACKED_POST
4934{
4935 /* success or failure */
4936 tANI_U32 status;
4937}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4938
4939typedef PACKED_PRE struct PACKED_POST
4940{
4941 tHalMsgHeader header;
4942 tSetP2PGONOARspParams setP2PGONOARspParams;
4943}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4944#endif
4945
4946/*---------------------------------------------------------------------------
4947 *WLAN_HAL_ADD_SELF_STA_REQ
4948 *--------------------------------------------------------------------------*/
4949
4950typedef PACKED_PRE struct PACKED_POST
4951{
4952 tSirMacAddr selfMacAddr;
4953 tANI_U32 status;
4954}tAddStaSelfParams, *tpAddStaSelfParams;
4955
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004956typedef PACKED_PRE struct PACKED_POST
4957{
4958 tSirMacAddr selfMacAddr;
4959 tANI_U32 status;
4960 tHalIfacePersona iface_persona;
4961}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004962
4963typedef PACKED_PRE struct PACKED_POST
4964{
4965 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004966 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07004967 tAddStaSelfParams addStaSelfParams;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004968 tAddStaSelfParams_V1 addStaSelfParams_V1;
4969 }uAddStaSelfParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004970}tAddStaSelfReq, *tpAddStaSelfReq;
4971
4972/*---------------------------------------------------------------------------
4973*WLAN_HAL_ADD_SELF_STA_RSP
4974*--------------------------------------------------------------------------*/
4975
4976typedef PACKED_PRE struct PACKED_POST
4977{
4978 /* success or failure */
4979 tANI_U32 status;
4980
4981 /*Self STA Index */
4982 tANI_U8 selfStaIdx;
4983
4984 /* DPU Index (IGTK, PTK, GTK all same) */
4985 tANI_U8 dpuIdx;
4986
4987 /* DPU Signature */
4988 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004989
Jeff Johnson295189b2012-06-20 16:38:30 -07004990}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4991
4992typedef PACKED_PRE struct PACKED_POST
4993{
4994 tHalMsgHeader header;
4995 tAddStaSelfRspParams addStaSelfRspParams;
4996}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4997
4998
4999/*---------------------------------------------------------------------------
5000 WLAN_HAL_DEL_STA_SELF_REQ
5001---------------------------------------------------------------------------*/
5002
5003typedef PACKED_PRE struct PACKED_POST
5004{
5005 tSirMacAddr selfMacAddr;
5006
5007}tDelStaSelfParams, *tpDelStaSelfParams;
5008
5009typedef PACKED_PRE struct PACKED_POST
5010{
5011 tHalMsgHeader header;
5012 tDelStaSelfParams delStaSelfParams;
5013} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5014
5015
5016/*---------------------------------------------------------------------------
5017 WLAN_HAL_DEL_STA_SELF_RSP
5018---------------------------------------------------------------------------*/
5019
5020typedef PACKED_PRE struct PACKED_POST
5021{
5022 /*success or failure */
5023 tANI_U32 status;
5024
5025 tSirMacAddr selfMacAddr;
5026}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5027
5028typedef PACKED_PRE struct PACKED_POST
5029{
5030 tHalMsgHeader header;
5031 tDelStaSelfRspParams delStaSelfRspParams;
5032} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5033
5034
5035#ifdef WLAN_FEATURE_VOWIFI_11R
5036
5037/*---------------------------------------------------------------------------
5038 *WLAN_HAL_AGGR_ADD_TS_REQ
5039 *--------------------------------------------------------------------------*/
5040
5041typedef PACKED_PRE struct PACKED_POST
5042{
5043 /* Station Index */
5044 tANI_U16 staIdx;
5045
5046 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5047 /* This will carry the bitmap with the bit positions representing different AC.s*/
5048 tANI_U16 tspecIdx;
5049
5050 /* Tspec info per AC To program TPE with required parameters */
5051 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5052
5053 /* U-APSD Flags: 1b per AC. Encoded as follows:
5054 b7 b6 b5 b4 b3 b2 b1 b0 =
5055 X X X X BE BK VI VO */
5056 tANI_U8 uAPSD;
5057
5058 /* These parameters are for all the access categories */
5059 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5060 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5061 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5062
5063}tAggrAddTsParams, *tpAggrAddTsParams;
5064
5065
5066typedef PACKED_PRE struct PACKED_POST
5067{
5068 tHalMsgHeader header;
5069 tAggrAddTsParams aggrAddTsParam;
5070}tAggrAddTsReq, *tpAggrAddTsReq;
5071
5072/*---------------------------------------------------------------------------
5073*WLAN_HAL_AGGR_ADD_TS_RSP
5074*--------------------------------------------------------------------------*/
5075
5076typedef PACKED_PRE struct PACKED_POST
5077{
5078 /* success or failure */
5079 tANI_U32 status0;
5080 /* FIXME PRIMA for future use for 11R */
5081 tANI_U32 status1;
5082}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5083
5084typedef PACKED_PRE struct PACKED_POST
5085{
5086 tHalMsgHeader header;
5087 tAggrAddTsRspParams aggrAddTsRspParam;
5088}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5089
5090#endif
5091
5092/*---------------------------------------------------------------------------
5093 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5094 *--------------------------------------------------------------------------*/
5095typedef PACKED_PRE struct PACKED_POST
5096{
5097 tANI_U8 isAppsCpuAwake;
5098} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5099
5100typedef PACKED_PRE struct PACKED_POST
5101{
5102 tHalMsgHeader header;
5103 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5104} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5105
5106/*---------------------------------------------------------------------------
5107 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5108 *--------------------------------------------------------------------------*/
5109typedef PACKED_PRE struct PACKED_POST
5110{
5111 /* success or failure */
5112 tANI_U32 status;
5113} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5114
5115typedef PACKED_PRE struct PACKED_POST
5116{
5117 tHalMsgHeader header;
5118 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5119} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5120/*---------------------------------------------------------------------------
5121 * WLAN_HAL_DUMP_COMMAND_REQ
5122 *--------------------------------------------------------------------------*/
5123
5124typedef PACKED_PRE struct PACKED_POST
5125{
5126 tANI_U32 argument1;
5127 tANI_U32 argument2;
5128 tANI_U32 argument3;
5129 tANI_U32 argument4;
5130 tANI_U32 argument5;
5131
5132}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5133
5134typedef PACKED_PRE struct PACKED_POST
5135{
5136 tHalMsgHeader header;
5137 tHalDumpCmdReqParams dumpCmdReqParams;
5138} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5139
5140/*---------------------------------------------------------------------------
5141 * WLAN_HAL_DUMP_COMMAND_RSP
5142 *--------------------------------------------------------------------------*/
5143
5144typedef PACKED_PRE struct PACKED_POST
5145{
5146 /* success or failure */
5147 tANI_U32 status;
5148 /*Length of the responce message*/
5149 tANI_U32 rspLength;
5150 /*FiXME: Currently considering the the responce will be less than 100bytes */
5151 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07005152
Jeff Johnson295189b2012-06-20 16:38:30 -07005153} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5154
5155typedef PACKED_PRE struct PACKED_POST
5156{
5157 tHalMsgHeader header;
5158 tHalDumpCmdRspParams dumpCmdRspParams;
5159} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5160
5161/*---------------------------------------------------------------------------
5162 *WLAN_HAL_COEX_IND
5163 *-------------------------------------------------------------------------*/
5164#define WLAN_COEX_IND_DATA_SIZE (4)
5165#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5166#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005167#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5168#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005169#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5170#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07005171
5172typedef PACKED_PRE struct PACKED_POST
5173{
5174 /*Coex Indication Type*/
5175 tANI_U32 coexIndType;
5176
5177 /*Coex Indication Data*/
5178 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5179}tCoexIndParams,*tpCoexIndParams;
5180
5181typedef PACKED_PRE struct PACKED_POST
5182{
5183 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005184 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005185}tCoexIndMsg, *tpCoexIndMsg;
5186
5187/*---------------------------------------------------------------------------
5188 *WLAN_HAL_OTA_TX_COMPL_IND
5189 *-------------------------------------------------------------------------*/
5190
5191typedef PACKED_PRE struct PACKED_POST
5192{
5193 /*Tx Complete Indication Success or Failure*/
5194 tANI_U32 status;
5195}tTxComplParams,*tpTxComplParams;
5196
5197typedef PACKED_PRE struct PACKED_POST
5198{
5199 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005200 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005201}tTxComplIndMsg, *tpTxComplIndMsg;
5202
5203/*---------------------------------------------------------------------------
5204 * WLAN_HAL_HOST_SUSPEND_IND
5205 *-------------------------------------------------------------------------*/
5206
5207typedef PACKED_PRE struct PACKED_POST
5208{
5209 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005210 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005211}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5212
5213typedef PACKED_PRE struct PACKED_POST
5214{
5215 tHalMsgHeader header;
5216 tHalWlanHostSuspendIndParam suspendIndParams;
5217}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5218
5219/*---------------------------------------------------------------------------
5220 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5221 *-------------------------------------------------------------------------*/
5222
5223typedef PACKED_PRE struct PACKED_POST
5224{
5225 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005226 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005227}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5228
5229typedef PACKED_PRE struct PACKED_POST
5230{
5231 tHalMsgHeader header;
5232 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5233}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5234
5235#ifdef WLAN_FEATURE_P2P
5236/*---------------------------------------------------------------------------
5237 *WLAN_HAL_NOA_ATTR_IND
5238 *-------------------------------------------------------------------------*/
5239
5240typedef PACKED_PRE struct PACKED_POST
5241{
5242 tANI_U8 index ;
5243 tANI_U8 oppPsFlag ;
5244 tANI_U16 ctWin ;
5245
5246 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005247 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005248 tANI_U32 uNoa1Duration;
5249 tANI_U32 uNoa1Interval;
5250 tANI_U32 uNoa1StartTime;
5251
5252 tANI_U16 uNoa2IntervalCnt;
5253 tANI_U16 rsvd2;
5254 tANI_U32 uNoa2Duration;
5255 tANI_U32 uNoa2Interval;
5256 tANI_U32 uNoa2StartTime;
5257
5258 tANI_U32 status;
5259}tNoaAttrIndParams, *tpNoaAttrIndParams;
5260
5261typedef PACKED_PRE struct PACKED_POST
5262{
5263 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005264 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005265}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005266
5267/*---------------------------------------------------------------------------
5268 *WLAN_HAL_NOA_START_IND
5269 *-------------------------------------------------------------------------*/
5270
5271typedef PACKED_PRE struct PACKED_POST
5272{
5273 tANI_U32 status;
5274 tANI_U32 bssIdx;
5275}tNoaStartIndParams, *tpNoaStartIndParams;
5276
5277typedef PACKED_PRE struct PACKED_POST
5278{
5279 tHalMsgHeader header;
5280 tNoaStartIndParams noaStartIndParams;
5281}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005282#endif
5283
5284/*---------------------------------------------------------------------------
5285 * WLAN_HAL_HOST_RESUME_REQ
5286 *-------------------------------------------------------------------------*/
5287
5288typedef PACKED_PRE struct PACKED_POST
5289{
5290 tANI_U8 configuredMcstBcstFilterSetting;
5291}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5292
5293typedef PACKED_PRE struct PACKED_POST
5294{
5295 tHalMsgHeader header;
5296 tHalWlanHostResumeReqParam resumeReqParams;
5297}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5298
5299/*---------------------------------------------------------------------------
5300 * WLAN_HAL_HOST_RESUME_RSP
5301 *--------------------------------------------------------------------------*/
5302typedef PACKED_PRE struct PACKED_POST
5303{
5304 /* success or failure */
5305 tANI_U32 status;
5306} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5307
5308typedef PACKED_PRE struct PACKED_POST
5309{
5310 tHalMsgHeader header;
5311 tHalHostResumeRspParams hostResumeRspParams;
5312} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5313
Anand Kumar012623a2013-01-11 17:00:00 -08005314typedef PACKED_PRE struct PACKED_POST
5315{
5316 tANI_U16 staIdx;
5317 // Peer MAC Address, whose BA session has timed out
5318 tSirMacAddr peerMacAddr;
5319 // TID for which a BA session timeout is being triggered
5320 tANI_U8 baTID;
5321 // DELBA direction
5322 // 1 - Originator
5323 // 0 - Recipient
5324 tANI_U8 baDirection;
5325 tANI_U32 reasonCode;
5326 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5327} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5328
5329typedef PACKED_PRE struct PACKED_POST
5330{
5331 tHalMsgHeader header;
5332 tHalWlanDelBaIndMsg hostdelBaParam;
5333} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5334
Jeff Johnson295189b2012-06-20 16:38:30 -07005335/*---------------------------------------------------------------------------
5336 *PNO Messages
5337 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005338/* Max number of channels that a network can be found on*/
5339/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5340 * be changed at same time
5341 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005342#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005343
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305344/*Max number of channels that a network can be found on*/
5345#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5346
Jeff Johnson295189b2012-06-20 16:38:30 -07005347/*Maximum numbers of networks supported by PNO*/
5348#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5349
5350/*The number of scan time intervals that can be programmed into PNO*/
5351#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5352
5353/*Maximum size of the probe template*/
5354#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5355
Jeff Johnson32d95a32012-09-10 13:15:23 -07005356/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005357 Immediate - scanning will start immediately and PNO procedure will
5358 be repeated based on timer
5359 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005360 Resume - scanning will start on system resume
5361 Delay - start the scan timer to trigger PNO scan
5362 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005363typedef enum
5364{
5365 ePNO_MODE_IMMEDIATE,
5366 ePNO_MODE_ON_SUSPEND,
5367 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305368 ePNO_MODE_DELAY,
5369 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005370 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5371} ePNOMode;
5372
5373/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005374typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005375{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005376 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005377 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005378
Jeff Johnson295189b2012-06-20 16:38:30 -07005379 // Upper layer authentication types
5380 eAUTH_TYPE_WPA = 2,
5381 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005382
Jeff Johnson295189b2012-06-20 16:38:30 -07005383 eAUTH_TYPE_RSN = 4,
5384 eAUTH_TYPE_RSN_PSK = 5,
5385 eAUTH_TYPE_FT_RSN = 6,
5386 eAUTH_TYPE_FT_RSN_PSK = 7,
5387 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5388 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005389 eAUTH_TYPE_CCKM_WPA = 10,
5390 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005391
Jeff Johnson295189b2012-06-20 16:38:30 -07005392 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5393
5394}tAuthType;
5395
5396/* Encryption type */
5397typedef enum eEdType
5398{
5399 eED_ANY = 0,
5400 eED_NONE = 1,
5401 eED_WEP = 2,
5402 eED_TKIP = 3,
5403 eED_CCMP = 4,
5404 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005405
Jeff Johnson295189b2012-06-20 16:38:30 -07005406 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5407} tEdType;
5408
5409/* SSID broadcast type */
5410typedef enum eSSIDBcastType
5411{
5412 eBCAST_UNKNOWN = 0,
5413 eBCAST_NORMAL = 1,
5414 eBCAST_HIDDEN = 2,
5415
5416 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5417} tSSIDBcastType;
5418
Jeff Johnson32d95a32012-09-10 13:15:23 -07005419/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005420 The network description for which PNO will have to look for
5421*/
5422typedef PACKED_PRE struct PACKED_POST
5423{
5424 /*SSID of the BSS*/
5425 tSirMacSSid ssId;
5426
5427 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005428 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005429
5430 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005431 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005432
Jeff Johnson32d95a32012-09-10 13:15:23 -07005433 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005434 0 - if all channels */
5435 tANI_U8 ucChannelCount;
5436 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5437
5438 /*Indicates the RSSI threshold for the network to be considered*/
5439 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005440}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005441
5442typedef PACKED_PRE struct PACKED_POST
5443{
5444 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005445 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005446
Jeff Johnson32d95a32012-09-10 13:15:23 -07005447 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005448 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005449 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005450
Jeff Johnson32d95a32012-09-10 13:15:23 -07005451 /*e.g: 2 3
5452 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005453 - it will wait 2s between consecutive scans for 3 times
5454 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005455}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005456
Jeff Johnson32d95a32012-09-10 13:15:23 -07005457/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005458 The network parameters to be sent to the PNO algorithm
5459*/
5460typedef PACKED_PRE struct PACKED_POST
5461{
5462 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005463 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005464
Jeff Johnson32d95a32012-09-10 13:15:23 -07005465 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005466 two consecutive scan procedures
5467 If the desired is for a uniform timer that fires always at the exact same
5468 interval - one single value is to be set
5469 If there is a desire for a more complex - telescopic like timer multiple
5470 values can be set - once PNO reaches the end of the array it will
5471 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005472 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005473
5474}tScanTimersType;
5475
5476typedef PACKED_PRE struct PACKED_POST {
5477
5478 /*Enable PNO*/
5479 tANI_U32 enable;
5480
5481 /*Immediate, On Suspend, On Resume*/
5482 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005483
Jeff Johnson295189b2012-06-20 16:38:30 -07005484 /*Number of networks sent for PNO*/
5485 tANI_U32 ucNetworksCount;
5486
5487 /*The networks that PNO needs to look for*/
5488 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5489
5490 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005491 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005492
5493 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005494 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005495 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5496
5497 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005498 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005499 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5500
5501} tPrefNetwListParams, * tpPrefNetwListParams;
5502
5503/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005504 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005505*/
5506typedef PACKED_PRE struct PACKED_POST
5507{
5508 tHalMsgHeader header;
5509 tPrefNetwListParams prefNetwListParams;
5510} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5511
5512
Jeff Johnson32d95a32012-09-10 13:15:23 -07005513/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005514 The network description for which PNO will have to look for
5515*/
5516typedef PACKED_PRE struct PACKED_POST
5517{
5518 /*SSID of the BSS*/
5519 tSirMacSSid ssId;
5520
5521 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005522 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005523
5524 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005525 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005526
5527 /*SSID broadcast type, normal, hidden or unknown*/
5528 tSSIDBcastType bcastNetworkType;
5529
Jeff Johnson32d95a32012-09-10 13:15:23 -07005530 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005531 0 - if all channels */
5532 tANI_U8 ucChannelCount;
5533 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5534
5535 /*Indicates the RSSI threshold for the network to be considered*/
5536 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005537}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005538
5539typedef PACKED_PRE struct PACKED_POST {
5540
5541 /*Enable PNO*/
5542 tANI_U32 enable;
5543
5544 /*Immediate, On Suspend, On Resume*/
5545 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005546
Jeff Johnson295189b2012-06-20 16:38:30 -07005547 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005548 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005549
5550 /*The networks that PNO needs to look for*/
5551 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5552
5553 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005554 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005555
5556 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005557 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005558 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5559
5560 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005561 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005562 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5563
5564} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5565
5566/*
5567 Preferred network list request new
5568*/
5569typedef PACKED_PRE struct PACKED_POST
5570{
5571 tHalMsgHeader header;
5572 tPrefNetwListParamsNew prefNetwListParams;
5573} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5574
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005575#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5576typedef PACKED_PRE struct PACKED_POST
5577{
5578 tSirMacSSid ssId;
5579 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5580 tANI_U32 authentication;
5581 tEdType encryption;
5582 tEdType mcencryption;
5583 tANI_U8 ChannelCount;
5584 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5585}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005586
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005587typedef PACKED_PRE struct PACKED_POST
5588{
5589 tANI_U8 mdiePresent;
5590 tANI_U16 mobilityDomain;
5591}tMobilityDomainInfo;
5592
5593typedef PACKED_PRE struct PACKED_POST {
5594 eAniBoolean RoamScanOffloadEnabled;
5595 tANI_S8 LookupThreshold;
5596 tANI_U8 RoamRssiDiff;
5597 tANI_U8 ChannelCacheType;
5598 tANI_U8 Command;
5599 tANI_U8 StartScanReason;
5600 tANI_U16 NeighborScanTimerPeriod;
5601 tANI_U16 NeighborRoamScanRefreshPeriod;
5602 tANI_U16 NeighborScanChannelMinTime;
5603 tANI_U16 NeighborScanChannelMaxTime;
5604 tANI_U16 EmptyRefreshScanPeriod;
5605 tANI_U8 ValidChannelCount;
5606 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5607 eAniBoolean IsCCXEnabled;
5608
5609 tANI_U16 us24GProbeSize;
5610 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5611 tANI_U16 us5GProbeSize;
5612 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5613 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005614 tANI_U8 nProbes;
5615 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08005616 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08005617 tANI_S8 RxSensitivityThreshold;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005618 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5619 tRoamNetworkType ConnectedNetwork;
5620 tMobilityDomainInfo MDID;
5621} tRoamCandidateListParams, * tpRoamCandidateListParams;
5622
5623typedef PACKED_PRE struct PACKED_POST
5624{
Kumar Anandea78e792013-10-10 23:47:01 -07005625 tHalMsgHeader header;
5626 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005627} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5628
5629typedef PACKED_PRE struct PACKED_POST
5630{
Kumar Anandea78e792013-10-10 23:47:01 -07005631 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005632
Kumar Anandea78e792013-10-10 23:47:01 -07005633 /* status of the request - just to indicate that PNO has acknowledged
5634 * the request and will start scanning */
5635 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005636} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5637#endif
Kumar Anandea78e792013-10-10 23:47:01 -07005638
5639/*
5640 Preferred network list response
5641*/
5642typedef PACKED_PRE struct PACKED_POST
5643{
5644 tHalMsgHeader header;
5645
5646 /* status of the request - just to indicate that PNO has acknowledged
5647 * the request and will start scanning*/
5648 tANI_U32 status;
5649} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5650
5651/*
5652 Preferred network indication parameters
5653*/
5654typedef PACKED_PRE struct PACKED_POST {
5655
5656 /*Network that was found with the highest RSSI*/
5657 tSirMacSSid ssId;
5658
5659 /*Indicates the RSSI */
5660 tANI_U8 rssi;
5661
5662 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
5663 tANI_U16 frameLength;
5664
5665} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5666
5667/*
5668 Preferred network found indication
5669*/
5670typedef PACKED_PRE struct PACKED_POST {
5671
5672 tHalMsgHeader header;
5673 tPrefNetwFoundParams prefNetwFoundParams;
5674} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5675
5676
5677typedef PACKED_PRE struct PACKED_POST {
5678
5679 /*RSSI Threshold*/
5680 tANI_U8 ucRssiThreshold;
5681
5682} tRssiFilterParams, * tpRssiFilterParams;
5683
Jeff Johnson295189b2012-06-20 16:38:30 -07005684/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005685 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005686*/
5687typedef PACKED_PRE struct PACKED_POST
5688{
5689 tHalMsgHeader header;
5690 tRssiFilterParams prefRSSIFilterParams;
5691} tSetRssiFilterReq, *tpSetRssiFilterReq;
5692
5693/*
5694 Set RSSI filter resp
5695*/
5696typedef PACKED_PRE struct PACKED_POST{
5697 tHalMsgHeader header;
5698 /*status of the request */
5699 tANI_U32 status;
5700} tSetRssiFilterResp, *tpSetRssiFilterResp;
5701/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005702 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005703*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005704typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005705{
5706
5707 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005708 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005709
5710 /*Lets PNO know that host has determined the regulatory domain*/
5711 tANI_U8 b11dResolved;
5712
5713 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005714 tANI_U8 ucChannelCount;
5715 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005716
5717 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005718 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005719
5720 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005721 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005722
5723 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005724 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005725
5726 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005727 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005728
5729 /*Cb State*/
5730 ePhyChanBondState cbState;
5731
5732} tUpdateScanParams, * tpUpdateScanParams;
5733
5734/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305735 Update scan params
5736*/
5737typedef PACKED_PRE struct PACKED_POST
5738{
5739
5740 /*Host setting for 11d*/
5741 tANI_U8 b11dEnabled;
5742
5743 /*Lets PNO know that host has determined the regulatory domain*/
5744 tANI_U8 b11dResolved;
5745
5746 /*Channels on which PNO is allowed to scan*/
5747 tANI_U8 ucChannelCount;
5748 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5749
5750 /*Minimum channel time*/
5751 tANI_U16 usActiveMinChTime;
5752
5753 /*Maximum channel time*/
5754 tANI_U16 usActiveMaxChTime;
5755
5756 /*Minimum channel time*/
5757 tANI_U16 usPassiveMinChTime;
5758
5759 /*Maximum channel time*/
5760 tANI_U16 usPassiveMaxChTime;
5761
5762 /*Cb State*/
5763 ePhyChanBondState cbState;
5764
5765} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5766
5767/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005768 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005769 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005770*/
5771typedef PACKED_PRE struct PACKED_POST{
5772
5773 tHalMsgHeader header;
5774 tUpdateScanParams scanParams;
5775} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5776
5777/*
5778 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005779 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005780*/
5781typedef PACKED_PRE struct PACKED_POST{
5782
5783 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305784 tUpdateScanParamsEx scanParams;
5785} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5786
5787/*
5788 Update scan params - sent from host to PNO
5789 to be used during PNO scanning
5790*/
5791typedef PACKED_PRE struct PACKED_POST{
5792
5793 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005794
5795 /*status of the request */
5796 tANI_U32 status;
5797
5798} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5799
5800/*---------------------------------------------------------------------------
5801 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5802 *--------------------------------------------------------------------------*/
5803typedef PACKED_PRE struct PACKED_POST
5804{
5805 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5806 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5807 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5808 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5809} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5810
5811typedef PACKED_PRE struct PACKED_POST
5812{
5813 tHalMsgHeader header;
5814 tHalTxPerTrackingReqParam txPerTrackingParams;
5815} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5816
5817/*---------------------------------------------------------------------------
5818 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5819 *--------------------------------------------------------------------------*/
5820typedef PACKED_PRE struct PACKED_POST
5821{
5822 /* success or failure */
5823 tANI_U32 status;
5824} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5825
5826typedef PACKED_PRE struct PACKED_POST
5827{
5828 tHalMsgHeader header;
5829 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5830} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5831
5832/*---------------------------------------------------------------------------
5833 * WLAN_HAL_TX_PER_HIT_IND
5834 *--------------------------------------------------------------------------*/
5835typedef PACKED_PRE struct PACKED_POST
5836{
5837 tHalMsgHeader header;
5838}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5839
5840/*---------------------------------------------------------------------------
5841 *******************Packet Filtering Definitions Begin*******************
5842 *--------------------------------------------------------------------------*/
5843#define HAL_PROTOCOL_DATA_LEN 8
5844#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5845#define HAL_MAX_NUM_FILTERS 20
5846#define HAL_MAX_CMP_PER_FILTER 10
5847
5848typedef enum
5849{
5850 HAL_RCV_FILTER_TYPE_INVALID,
5851 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5852 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5853 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5854}tHalReceivePacketFilterType;
5855
Jeff Johnson32d95a32012-09-10 13:15:23 -07005856typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005857{
5858 HAL_FILTER_PROTO_TYPE_INVALID,
5859 HAL_FILTER_PROTO_TYPE_MAC,
5860 HAL_FILTER_PROTO_TYPE_ARP,
5861 HAL_FILTER_PROTO_TYPE_IPV4,
5862 HAL_FILTER_PROTO_TYPE_IPV6,
5863 HAL_FILTER_PROTO_TYPE_UDP,
5864 HAL_FILTER_PROTO_TYPE_MAX
5865}tHalRcvPktFltProtocolType;
5866
Jeff Johnson32d95a32012-09-10 13:15:23 -07005867typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005868{
5869 HAL_FILTER_CMP_TYPE_INVALID,
5870 HAL_FILTER_CMP_TYPE_EQUAL,
5871 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5872 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5873 HAL_FILTER_CMP_TYPE_MAX
5874}tHalRcvPktFltCmpFlagType;
5875
Jeff Johnson32d95a32012-09-10 13:15:23 -07005876typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005877{
5878 tANI_U8 protocolLayer;
5879 tANI_U8 cmpFlag;
5880 tANI_U16 dataLength; /* Length of the data to compare */
5881 tANI_U8 dataOffset; /* from start of the respective frame header */
5882 tANI_U8 reserved; /* Reserved field */
5883 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5884 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5885}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5886
5887typedef PACKED_PRE struct PACKED_POST
5888{
5889 tANI_U8 filterId;
5890 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005891 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005892 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005893 tHalRcvPktFilterParams paramsData[1];
5894}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5895
5896typedef PACKED_PRE struct PACKED_POST
5897{
Jeff Johnsone7245742012-09-05 17:12:55 -07005898 tANI_U8 filterId;
5899 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005900 tANI_U8 numParams;
5901 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005902 tANI_U8 bssIdx;
5903 tHalRcvPktFilterParams paramsData[1];
5904}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5905
5906typedef PACKED_PRE struct PACKED_POST
5907{
Jeff Johnson295189b2012-06-20 16:38:30 -07005908 tHalMsgHeader header;
5909 tHalRcvPktFilterCfgType pktFilterCfg;
5910} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5911
Jeff Johnsone7245742012-09-05 17:12:55 -07005912typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005913{
5914 tANI_U8 dataOffset; /* from start of the respective frame header */
5915 tANI_U32 cMulticastAddr;
5916 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005917 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005918} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5919
5920typedef PACKED_PRE struct PACKED_POST
5921{
5922 /* success or failure */
5923 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005924 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005925} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5926
5927typedef PACKED_PRE struct PACKED_POST
5928{
5929 tHalMsgHeader header;
5930 tHalSetPktFilterRspParams pktFilterRspParams;
5931} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5932
Jeff Johnsone7245742012-09-05 17:12:55 -07005933typedef PACKED_PRE struct PACKED_POST
5934{
5935 tANI_U8 bssIdx;
5936} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005937
5938typedef PACKED_PRE struct PACKED_POST
5939{
5940 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005941 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005942} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5943
Jeff Johnsone7245742012-09-05 17:12:55 -07005944
Jeff Johnson295189b2012-06-20 16:38:30 -07005945typedef PACKED_PRE struct PACKED_POST
5946{
5947 tANI_U8 filterId;
5948 tANI_U32 matchCnt;
5949} tHalRcvFltPktMatchCnt;
5950typedef PACKED_PRE struct PACKED_POST
5951{
5952 /* Success or Failure */
5953 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005954 tANI_U32 matchCnt;
5955 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005956 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005957} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5958
5959typedef PACKED_PRE struct PACKED_POST
5960{
5961 tHalMsgHeader header;
5962 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5963} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5964
5965typedef PACKED_PRE struct PACKED_POST
5966{
5967 tANI_U32 status; /* only valid for response message */
5968 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005969 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005970}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5971
5972typedef PACKED_PRE struct PACKED_POST
5973{
5974 tHalMsgHeader header;
5975 tHalRcvFltPktClearParam filterClearParam;
5976} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5977
5978typedef PACKED_PRE struct PACKED_POST
5979{
5980 tHalMsgHeader header;
5981 tHalRcvFltPktClearParam filterClearParam;
5982} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5983
5984typedef PACKED_PRE struct PACKED_POST
5985{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005986 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005987 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005988}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5989
5990typedef PACKED_PRE struct PACKED_POST
5991{
5992 tHalMsgHeader header;
5993 tHalRcvFltMcAddrListType mcAddrList;
5994} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5995
5996typedef PACKED_PRE struct PACKED_POST
5997{
5998 tHalMsgHeader header;
5999 tHalRcvFltPktSetMcListRspType rspParam;
6000} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
6001
6002
6003/*---------------------------------------------------------------------------
6004 *******************Packet Filtering Definitions End*******************
6005 *--------------------------------------------------------------------------*/
6006
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006007/*
6008 * There are two versions of this message
6009 * Version 1 : Base version
6010 * Current version : Base version + Max LI modulated DTIM
6011 */
6012typedef PACKED_PRE struct PACKED_POST
6013{
6014 /* Ignore DTIM */
6015 tANI_U32 uIgnoreDTIM;
6016
6017 /*DTIM Period*/
6018 tANI_U32 uDTIMPeriod;
6019
6020 /* Listen Interval */
6021 tANI_U32 uListenInterval;
6022
6023 /* Broadcast Multicast Filter */
6024 tANI_U32 uBcastMcastFilter;
6025
6026 /* Beacon Early Termination */
6027 tANI_U32 uEnableBET;
6028
6029 /* Beacon Early Termination Interval */
6030 tANI_U32 uBETInterval;
6031}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6032
6033typedef PACKED_PRE struct PACKED_POST
6034{
6035 tHalMsgHeader header;
6036 tSetPowerParamsVer1Type powerParams;
6037} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6038
Jeff Johnson295189b2012-06-20 16:38:30 -07006039typedef PACKED_PRE struct PACKED_POST
6040{
6041 /* Ignore DTIM */
6042 tANI_U32 uIgnoreDTIM;
6043
6044 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006045 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006046
6047 /* Listen Interval */
6048 tANI_U32 uListenInterval;
6049
6050 /* Broadcast Multicast Filter */
6051 tANI_U32 uBcastMcastFilter;
6052
6053 /* Beacon Early Termination */
6054 tANI_U32 uEnableBET;
6055
6056 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006057 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006058
6059 /* MAX LI for modulated DTIM */
6060 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006061}tSetPowerParamsType, *tpSetPowerParamsType;
6062
6063typedef PACKED_PRE struct PACKED_POST
6064{
6065 tHalMsgHeader header;
6066 tSetPowerParamsType powerParams;
6067} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6068
6069typedef PACKED_PRE struct PACKED_POST{
6070
6071 tHalMsgHeader header;
6072
6073 /*status of the request */
6074 tANI_U32 status;
6075
6076} tSetPowerParamsResp, *tpSetPowerParamsResp;
6077
6078/*---------------------------------------------------------------------------
6079 ****************Capability bitmap exchange definitions and macros starts*************
6080 *--------------------------------------------------------------------------*/
6081
Anand Kumar012623a2013-01-11 17:00:00 -08006082typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006083 MCC = 0,
6084 P2P = 1,
6085 DOT11AC = 2,
6086 SLM_SESSIONIZATION = 3,
6087 DOT11AC_OPMODE = 4,
6088 SAP32STA = 5,
6089 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006090 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006091 WLANACTIVE_OFFLOAD = 8,
6092 BEACON_OFFLOAD = 9,
6093 SCAN_OFFLOAD = 10,
6094 ROAM_OFFLOAD = 11,
6095 BCN_MISS_OFFLOAD = 12,
6096 STA_POWERSAVE = 13,
6097 STA_ADVANCED_PWRSAVE = 14,
6098 AP_UAPSD = 15,
6099 AP_DFS = 16,
6100 BLOCKACK = 17,
6101 PHY_ERR = 18,
6102 BCN_FILTER = 19,
6103 RTT = 20,
6104 RATECTRL = 21,
6105 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006106 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006107 SPECULATIVE_PS_POLL = 24,
6108 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006109 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006110 WLAN_SCAN_OFFLOAD = 27,
6111 WLAN_PERIODIC_TX_PTRN = 28,
6112 ADVANCE_TDLS = 29,
6113 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306114 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306115 EXTENDED_NSOFFLOAD_SLOT = 32,
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306116 CH_SWITCH_V1 = 33,
6117 HT40_OBSS_SCAN = 34,
6118 UPDATE_CHANNEL_LIST = 35,
Kumar Anandea78e792013-10-10 23:47:01 -07006119 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006120} placeHolderInCapBitmap;
6121
Jeff Johnson295189b2012-06-20 16:38:30 -07006122typedef PACKED_PRE struct PACKED_POST{
6123
6124 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006125} tWlanFeatCaps, *tpWlanFeatCaps;
6126
6127typedef PACKED_PRE struct PACKED_POST{
6128
Jeff Johnson32d95a32012-09-10 13:15:23 -07006129 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006130 tWlanFeatCaps wlanFeatCaps;
6131
6132} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6133
Jeff Johnsone7245742012-09-05 17:12:55 -07006134#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6135#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006136#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006137#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006138#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006139#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006140#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006141
Jeff Johnsone7245742012-09-05 17:12:55 -07006142tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6143
Jeff Johnson295189b2012-06-20 16:38:30 -07006144#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006145 if ((b)<=127) { \
6146 arr_index = (b)/32; \
6147 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006148 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006149 (a)->featCaps[arr_index] |= (1<<bit_index); \
6150 } \
6151 }
6152#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006153 if ((b)<=127) { \
6154 arr_index = (b)/32; \
6155 bit_index = (b)%32; \
6156 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006157 } \
6158 }
6159#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006160 if ((b)<=127) { \
6161 arr_index = (b)/32; \
6162 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006163 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006164 } \
6165 }
6166
6167/*---------------------------------------------------------------------------
6168 * WLAN_HAL_WAKE_REASON_IND
6169 *--------------------------------------------------------------------------*/
6170
6171/* status codes to help debug rekey failures */
6172typedef enum
6173{
6174 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6175 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6176 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6177 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6178 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6179 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6180 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6181 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6182 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6183 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6184
6185 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6186} tGTKRekeyStatus;
6187
6188/* wake reason types */
6189typedef enum
6190{
6191 WLAN_HAL_WAKE_REASON_NONE = 0,
6192 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6193 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6194 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6195 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6196 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6197 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6198 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6199} tWakeReasonType;
6200
6201/*
6202 Wake Packet which is saved at tWakeReasonParams.DataStart
6203 This data is sent for any wake reasons that involve a packet-based wakeup :
6204
6205 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6206 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6207 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6208 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6209 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6210
6211 The information is provided to the host for auditing and debug purposes
6212
6213*/
6214
6215/*
6216 Wake reason indication parameters
6217*/
6218typedef PACKED_PRE struct PACKED_POST
6219{
6220 uint32 ulReason; /* see tWakeReasonType */
6221 uint32 ulReasonArg; /* argument specific to the reason type */
6222 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6223 HAL truncates the data (i.e. data packets) this length
6224 will be less than the actual length */
6225 uint32 ulActualDataLen; /* actual length of data */
6226 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6227 see specific wake type */
6228} tWakeReasonParams, *tpWakeReasonParams;
6229
6230/*
6231 Wake reason indication
6232*/
6233typedef PACKED_PRE struct PACKED_POST
6234{
6235 tHalMsgHeader header;
6236 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006237 tANI_U32 uBssIdx : 8;
6238 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006239} tHalWakeReasonInd, *tpHalWakeReasonInd;
6240
6241/*---------------------------------------------------------------------------
6242* WLAN_HAL_GTK_OFFLOAD_REQ
6243*--------------------------------------------------------------------------*/
6244
6245#define HAL_GTK_KEK_BYTES 16
6246#define HAL_GTK_KCK_BYTES 16
6247
6248#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6249
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006250#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6251
Jeff Johnson295189b2012-06-20 16:38:30 -07006252typedef PACKED_PRE struct PACKED_POST
6253{
6254 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006255 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006256 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6257 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006258 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006259} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6260
6261typedef PACKED_PRE struct PACKED_POST
6262{
6263 tHalMsgHeader header;
6264 tHalGtkOffloadReqParams gtkOffloadReqParams;
6265} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6266
6267/*---------------------------------------------------------------------------
6268* WLAN_HAL_GTK_OFFLOAD_RSP
6269*--------------------------------------------------------------------------*/
6270typedef PACKED_PRE struct PACKED_POST
6271{
6272 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006273 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006274} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6275
6276typedef PACKED_PRE struct PACKED_POST
6277{
6278 tHalMsgHeader header;
6279 tHalGtkOffloadRspParams gtkOffloadRspParams;
6280} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6281
6282
6283/*---------------------------------------------------------------------------
6284* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6285*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006286typedef PACKED_PRE struct PACKED_POST
6287{
6288 tANI_U8 bssIdx;
6289
6290} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006291
6292typedef PACKED_PRE struct PACKED_POST
6293{
6294 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006295 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006296} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6297
6298/*---------------------------------------------------------------------------
6299* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6300*--------------------------------------------------------------------------*/
6301typedef PACKED_PRE struct PACKED_POST
6302{
6303 tANI_U32 ulStatus; /* success or failure */
6304 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6305 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6306 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6307 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6308 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006309 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006310} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6311
6312typedef PACKED_PRE struct PACKED_POST
6313{
6314 tHalMsgHeader header;
6315 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6316} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6317
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006318/*---------------------------------------------------------------------------
6319* WLAN_HAL_DHCP_IND
6320*--------------------------------------------------------------------------*/
6321typedef PACKED_PRE struct PACKED_POST
6322{
6323 /*Indicates the device mode which indicates about the DHCP activity */
6324 tANI_U8 device_mode;
6325 tSirMacAddr macAddr;
6326} tDHCPInfo, *tpDHCPInfo;
6327
6328typedef PACKED_PRE struct PACKED_POST
6329{
6330 tHalMsgHeader header;
6331 tANI_U32 status; /* success or failure */
6332} tDHCPIndStatus, *tpDHCPIndstatus;
6333
Jeff Johnson295189b2012-06-20 16:38:30 -07006334/*
6335 Thermal Mitigation mode of operation.
6336 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6337 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6338 reducing transmit power
6339 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6340*/
6341typedef enum
6342{
6343 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6344 HAL_THERMAL_MITIGATION_MODE_0,
6345 HAL_THERMAL_MITIGATION_MODE_1,
6346 HAL_THERMAL_MITIGATION_MODE_2,
6347 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6348}tHalThermalMitigationModeType;
6349//typedef tANI_S16 tHalThermalMitigationModeType;
6350
6351/*
6352 Thermal Mitigation level.
6353 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6354 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6355
6356 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6357 level indicates normal mode of operation
6358 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6359 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6360 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6361 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6362*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006363typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006364{
6365 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6366 HAL_THERMAL_MITIGATION_LEVEL_0,
6367 HAL_THERMAL_MITIGATION_LEVEL_1,
6368 HAL_THERMAL_MITIGATION_LEVEL_2,
6369 HAL_THERMAL_MITIGATION_LEVEL_3,
6370 HAL_THERMAL_MITIGATION_LEVEL_4,
6371 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6372}tHalThermalMitigationLevelType;
6373//typedef tANI_S16 tHalThermalMitigationLevelType;
6374
6375typedef PACKED_PRE struct PACKED_POST
6376{
6377 /* Thermal Mitigation Operation Mode */
6378 tHalThermalMitigationModeType thermalMitMode;
6379
6380 /* Thermal Mitigation Level */
6381 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006382
Jeff Johnson295189b2012-06-20 16:38:30 -07006383}tSetThermalMitgationType, *tpSetThermalMitgationType;
6384
6385/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6386typedef PACKED_PRE struct PACKED_POST
6387{
6388 tHalMsgHeader header;
6389 tSetThermalMitgationType thermalMitParams;
6390} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6391
6392typedef PACKED_PRE struct PACKED_POST{
6393
6394 tHalMsgHeader header;
6395
6396 /*status of the request */
6397 tANI_U32 status;
6398
6399} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6400
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006401/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6402provided to FW from Host via periodic messages */
6403typedef PACKED_PRE struct PACKED_POST {
6404 /* TX stats */
6405 uint32 txBytesPushed;
6406 uint32 txPacketsPushed;
6407
6408 /* RX stats */
6409 uint32 rxBytesRcvd;
6410 uint32 rxPacketsRcvd;
6411 uint32 rxTimeTotal;
6412} tStaStatsClassB, *tpStaStatsClassB;
6413
6414typedef PACKED_PRE struct PACKED_POST {
6415
6416 /* Duration over which this stats was collected */
6417 tANI_U32 duration;
6418
6419 /* Per STA Stats */
6420 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6421} tStatsClassBIndParams, *tpStatsClassBIndParams;
6422
6423typedef PACKED_PRE struct PACKED_POST {
6424
6425 tHalMsgHeader header;
6426
6427 /* Class B Stats */
6428 tStatsClassBIndParams statsClassBIndParams;
6429} tStatsClassBInd, *tpStatsClassBInd;
6430
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306431/*Wifi Proximity paramters in AP mode*/
6432#ifdef FEATURE_WIFI_PROXIMITY
6433
6434typedef PACKED_PRE struct PACKED_POST{
6435
6436 tANI_U8 wifiProximityChannel;
6437 tANI_U32 wifiProximityDuration;
6438 tANI_U32 wifiProximityInterval;
6439 tANI_U32 wifiProximityMode;
6440 tANI_U32 wifiProximityStatus;
6441 tSirMacAddr bssId;
6442 tSirMacSSid ssId;
6443
6444} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6445
6446typedef PACKED_PRE struct PACKED_POST
6447{
6448 tHalMsgHeader header;
6449
6450 tSetWifiProximityReqParam wifiProximityReqParams;
6451
6452}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6453
6454/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6455typedef PACKED_PRE struct PACKED_POST{
6456
6457 tHalMsgHeader header;
6458
6459 /*status of the request */
6460 tANI_U32 status;
6461
6462} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6463
6464#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006465
6466#ifdef FEATURE_SPECULATIVE_PS_POLL
6467/*---------------------------------------------------------------------------
6468 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6469 *--------------------------------------------------------------------------*/
6470typedef PACKED_PRE struct PACKED_POST
6471{
6472 tANI_U8 bssIdx;
6473 tANI_U16 serviceInterval;
6474 tANI_U16 suspendInterval;
6475 tANI_U8 acMask;
6476} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6477
6478typedef PACKED_PRE struct PACKED_POST
6479{
6480 tHalMsgHeader header;
6481 tHalStartSpecPsPollReqParams specPsPollReq;
6482} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6483
6484/*---------------------------------------------------------------------------
6485 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6486 *--------------------------------------------------------------------------*/
6487typedef PACKED_PRE struct PACKED_POST
6488{
6489 /* success or failure */
6490 tANI_U32 status;
6491 tANI_U8 bssIdx;
6492} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6493
6494typedef PACKED_PRE struct PACKED_POST
6495{
6496 tHalMsgHeader header;
6497 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6498} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6499
6500/*---------------------------------------------------------------------------
6501 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6502 *--------------------------------------------------------------------------*/
6503typedef PACKED_PRE struct PACKED_POST
6504{
6505 tHalMsgHeader header;
6506 tANI_U8 bssIdx;
6507} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6508#endif
6509
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306510#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306511#define HAL_MAX_SUPP_CHANNELS 128
6512#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306513/*---------------------------------------------------------------------------
6514 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6515 *-------------------------------------------------------------------------*/
6516typedef PACKED_PRE struct PACKED_POST
6517{
6518 /*STA Index*/
6519 tANI_U16 staIdx;
6520
6521 /* if this is 1, self is initiator and peer is reponder */
6522 tANI_U8 bIsResponder;
6523
6524 /* QoS Info */
6525 tANI_U8 acVOUAPSDFlag:1;
6526 tANI_U8 acVIUAPSDFlag:1;
6527 tANI_U8 acBKUAPSDFlag:1;
6528 tANI_U8 acBEUAPSDFlag:1;
6529 tANI_U8 aAck:1;
6530 tANI_U8 maxServicePeriodLength:2;
6531 tANI_U8 moreDataAck:1;
6532
6533 /*TDLS Peer U-APSD Buffer STA Support*/
6534 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07006535
6536 /*TDLS off channel related params */
6537 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306538 tANI_U8 peerCurrOperClass;
6539 tANI_U8 selfCurrOperClass;
6540 tANI_U8 validChannelsLen;
6541 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
6542 tANI_U8 validOperClassesLen;
6543 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306544}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6545
6546typedef PACKED_PRE struct PACKED_POST
6547{
6548 tHalMsgHeader header;
6549 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6550} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6551
6552/*---------------------------------------------------------------------------
6553 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6554 *-------------------------------------------------------------------------*/
6555
6556typedef PACKED_PRE struct PACKED_POST
6557{
6558 tANI_U32 status;
6559
6560 /*STA Index*/
6561 tANI_U16 staIdx;
6562} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6563
6564typedef PACKED_PRE struct PACKED_POST
6565{
6566 tHalMsgHeader header;
6567 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6568} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6569
6570/*---------------------------------------------------------------------------
6571 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6572 *-------------------------------------------------------------------------*/
6573typedef PACKED_PRE struct PACKED_POST
6574{
6575 /*STA Index*/
6576 tANI_U16 staIdx;
6577}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6578
6579typedef PACKED_PRE struct PACKED_POST
6580{
6581 tHalMsgHeader header;
6582 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6583} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6584
6585/*---------------------------------------------------------------------------
6586 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6587 *-------------------------------------------------------------------------*/
6588
6589typedef PACKED_PRE struct PACKED_POST
6590{
6591 tANI_U32 status;
6592
6593 /*STA Index*/
6594 tANI_U16 staIdx;
6595} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6596
6597typedef PACKED_PRE struct PACKED_POST
6598{
6599 tHalMsgHeader header;
6600 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6601} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6602
6603/*---------------------------------------------------------------------------
6604 *WLAN_HAL_TDLS_IND
6605 *--------------------------------------------------------------------------*/
6606
6607typedef PACKED_PRE struct PACKED_POST
6608{
6609 tANI_U16 assocId;
6610 tANI_U16 staIdx;
6611 tANI_U16 status;
6612 tANI_U16 reasonCode;
6613}tTdlsIndParams, *tpTdlsIndParams;
6614
6615
6616typedef PACKED_PRE struct PACKED_POST
6617{
6618 tHalMsgHeader header;
6619 tTdlsIndParams tdlsIndParams;
6620}tTdlsIndMsg, *tpTdlsIndMsg;
6621
6622#endif
6623
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006624/*---------------------------------------------------------------------------
6625 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
6626 *--------------------------------------------------------------------------*/
6627
6628typedef PACKED_PRE struct PACKED_POST
6629{
6630 tANI_U8 bssIdx;
6631 tANI_U8 staIdx;
6632 tSirMacAddr staAddr;
6633}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
6634
6635
6636typedef PACKED_PRE struct PACKED_POST
6637{
6638 tHalMsgHeader header;
6639 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
6640}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
6641
6642
Kumar Anandea78e792013-10-10 23:47:01 -07006643/*********** Scan Offload Related Structures *************/
6644#define HAL_NUM_SCAN_SSID 10
6645#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07006646
Kumar Anandea78e792013-10-10 23:47:01 -07006647/*
6648 * Enumetation to indicate scan type (active/passive)
6649 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006650typedef enum
6651{
Kumar Anandea78e792013-10-10 23:47:01 -07006652 eSIR_PASSIVE_SCAN,
6653 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
6654} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006655
6656typedef PACKED_PRE struct PACKED_POST
6657{
Kumar Anandea78e792013-10-10 23:47:01 -07006658 tANI_U8 numBssid;
6659 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
6660 tANI_U8 numSsid;
6661 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
6662 tANI_BOOLEAN hiddenSsid;
6663 tSirMacAddr selfMacAddr;
6664 tSirBssType bssType;
6665 tSirScanType scanType;
6666 tANI_U32 minChannelTime;
6667 tANI_U32 maxChannelTime;
6668 tANI_BOOLEAN p2pSearch;
6669 tANI_U8 channelCount;
6670 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6671 tANI_U16 ieFieldLen;
6672 tANI_U8 ieField[1];
6673}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006674
6675/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006676 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07006677 *-------------------------------------------------------------------------*/
6678typedef PACKED_PRE struct PACKED_POST
6679{
Kumar Anandf53016f2013-09-04 15:15:53 -07006680 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006681 tScanOffloadReqType scanOffloadParams;
6682} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006683
6684/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006685 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07006686 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07006687typedef PACKED_PRE struct PACKED_POST
6688{
6689 tHalMsgHeader header;
6690
6691 /*status of the request - just to indicate SO has acknowledged
6692 * * the request and will start scanning*/
6693 tANI_U32 status;
6694} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
6695
6696/*---------------------------------------------------------------------------
6697 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
6698 *-------------------------------------------------------------------------*/
6699typedef PACKED_PRE struct PACKED_POST
6700{
6701 tHalMsgHeader header;
6702} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
6703
6704/*---------------------------------------------------------------------------
6705 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
6706 *-------------------------------------------------------------------------*/
6707typedef PACKED_PRE struct PACKED_POST
6708{
6709 tHalMsgHeader header;
6710
6711 /*status of the request - just to indicate SO has acknowledged
6712 the request and will start scanning*/
6713 tANI_U32 status;
6714} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
6715
6716/*
6717 * Enumetation of scan events indicated by firmware to the host
6718 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006719typedef enum
6720{
Kumar Anandea78e792013-10-10 23:47:01 -07006721 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
6722 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
6723 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
6724 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
6725 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
6726 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
6727 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
6728 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
6729 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
6730} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006731
6732typedef PACKED_PRE struct PACKED_POST
6733{
Kumar Anandea78e792013-10-10 23:47:01 -07006734 tScanEventType event;
6735 tANI_U32 channel;
6736 tANI_U32 scanId;
6737} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07006738
Kumar Anandea78e792013-10-10 23:47:01 -07006739/*---------------------------------------------------------------------------
6740 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
6741 *-------------------------------------------------------------------------*/
6742typedef PACKED_PRE struct PACKED_POST
6743{
6744 tHalMsgHeader header;
6745 tScanOffloadEventInfo scanOffloadInd;
6746} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006747
Kumar Anandea78e792013-10-10 23:47:01 -07006748typedef PACKED_PRE struct PACKED_POST {
6749 /** primary 20 MHz channel frequency in mhz */
6750 tANI_U32 mhz;
6751 /** Center frequency 1 in MHz*/
6752 tANI_U32 band_center_freq1;
6753 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
6754 tANI_U32 band_center_freq2;
6755 /* The first 26 bits are a bit mask to indicate any channel flags,
6756 (see WLAN_HAL_CHAN_FLAG*)
6757 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
6758 tANI_U32 channel_info;
6759 /** contains min power, max power, reg power and reg class id. */
6760 tANI_U32 reg_info_1;
6761 /** contains antennamax */
6762 tANI_U32 reg_info_2;
6763} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006764
Kumar Anandf53016f2013-09-04 15:15:53 -07006765
Kumar Anandea78e792013-10-10 23:47:01 -07006766typedef enum {
6767 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
6768 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
6769 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
6770 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
6771 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
6772 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
6773 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
6774 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
6775 WLAN_HAL_MODE_11AC_VHT20 = 8,
6776 WLAN_HAL_MODE_11AC_VHT40 = 9,
6777 WLAN_HAL_MODE_11AC_VHT80 = 10,
6778 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
6779 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
6780 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
6781 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07006782
Kumar Anandea78e792013-10-10 23:47:01 -07006783} tChannelPhyModeType;
6784
6785#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
6786#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
6787#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
6788#define WLAN_HAL_CHAN_AP_DISABLED 9
6789#define WLAN_HAL_CHAN_FLAG_DFS 10
6790#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
6791#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
6792
6793typedef PACKED_PRE struct PACKED_POST
6794{
6795 tANI_U8 numChan;
6796 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6797} tUpdateChannelReqType;
6798
6799/*---------------------------------------------------------------------------
6800 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
6801 *-------------------------------------------------------------------------*/
6802typedef PACKED_PRE struct PACKED_POST
6803{
6804 tHalMsgHeader header;
6805 tUpdateChannelReqType updateChannelParams;
6806} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
6807
6808/*---------------------------------------------------------------------------
6809 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
6810 *-------------------------------------------------------------------------*/
6811typedef PACKED_PRE struct PACKED_POST
6812{
6813 tHalMsgHeader header;
6814
6815 /*status of the request - just to indicate SO has acknowledged
6816 * * the request and will start scanning*/
6817 tANI_U32 status;
6818} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
6819
6820
6821/*---------------------------------------------------------------------------
6822* WLAN_HAL_TX_FAIL_IND
6823*--------------------------------------------------------------------------*/
6824// Northbound indication from FW to host on weak link detection
6825typedef PACKED_PRE struct PACKED_POST
6826{
6827 // Sequence number increases by 1 whenever the device driver
6828 // sends a notification event. This is cleared as 0 when the
6829 // JOIN IBSS commamd is issued
6830 tANI_U16 seqNo;
6831 tANI_U16 staId;
6832 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
6833} tHalTXFailIndParams, *tpHalTXFailIndParams;
6834
6835typedef PACKED_PRE struct PACKED_POST
6836{
6837 tHalMsgHeader header;
6838 tHalTXFailIndParams txFailIndParams;
6839} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
6840
6841/*---------------------------------------------------------------------------
6842* WLAN_HAL_TX_FAIL_MONITOR_IND
6843*--------------------------------------------------------------------------*/
6844// Southbound message from Host to monitor the Tx failures
6845typedef PACKED_PRE struct PACKED_POST
6846{
6847 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
6848 tANI_U8 tx_fail_count;
6849} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
6850
6851typedef PACKED_PRE struct PACKED_POST
6852{
6853 tHalMsgHeader header;
6854 tTXFailMonitorInfo txFailMonitor;
6855} tTXFailMonitorInd, *tpTXFailMonitorInd;
6856
6857/*---------------------------------------------------------------------------
6858* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
6859*--------------------------------------------------------------------------*/
6860typedef PACKED_PRE struct PACKED_POST
6861{
6862 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
6863 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
6864} tDestIpNextHopMacPair;
6865
6866typedef PACKED_PRE struct PACKED_POST
6867{
6868 tANI_U8 numEntries;
6869 tDestIpNextHopMacPair destIpMacPair[1];
6870} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006871
6872typedef PACKED_PRE struct PACKED_POST
6873{
6874 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006875 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
6876} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07006877
Kumar Anandf53016f2013-09-04 15:15:53 -07006878/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07006879 WLAN_HAL_RATE_UPDATE_IND
6880 *-------------------------------------------------------------------------*/
6881
6882typedef PACKED_PRE struct PACKED_POST
6883{
6884 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
6885 tANI_S32 ucastDataRate; //unit Mbpsx10
6886
6887 /* TX flag to differentiate between HT20, HT40 etc */
6888 tTxRateInfoFlags ucastDataRateTxFlag;
6889
6890 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
6891 tSirMacAddr bssid;
6892
6893 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
6894 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
6895
6896 /* TX flag to differentiate between HT20, HT40 etc */
6897 tTxRateInfoFlags reliableMcastDataRateTxFlag;
6898
6899 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
6900 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
6901
6902 /* TX flag to differentiate between HT20, HT40 etc */
6903 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
6904
6905 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
6906 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
6907
6908 /* TX flag to differentiate between HT20, HT40 etc */
6909 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
6910
6911} tHalRateUpdateParams, *tpHalRateUpdateParams;
6912
6913typedef PACKED_PRE struct PACKED_POST
6914{
6915 tHalMsgHeader header;
6916 tHalRateUpdateParams halRateUpdateParams;
6917} tHalRateUpdateInd, * tpHalRateUpdateInd;
6918
6919/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05306920 * WLAN_HAL_AVOID_FREQ_RANGE_IND
6921 *-------------------------------------------------------------------------*/
6922
6923#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 4
6924
6925typedef PACKED_PRE struct PACKED_POST
6926{
6927 tANI_U32 startFreq;
6928 tANI_U32 endFreq;
6929} tHalFreqRange, *tpHalFreqRange;
6930
6931typedef PACKED_PRE struct PACKED_POST
6932{
6933 tANI_U32 avoidCnt;
6934 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
6935} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
6936
6937typedef PACKED_PRE struct PACKED_POST
6938{
6939 tHalMsgHeader header;
6940 tHalAvoidFreqRangeIndParams freqRangeIndParams;
6941} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
6942
6943/*---------------------------------------------------------------------------
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306944 * WLAN_HAL_START_HT40_OBSS_SCAN_IND
Kumar Anandf53016f2013-09-04 15:15:53 -07006945 *-------------------------------------------------------------------------*/
6946
Sandeep Puligilla77bf84e2014-01-31 20:49:07 +05306947typedef enum
6948{
6949 WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
6950 WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
6951 WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
6952}tHT40OBssScanCmdType;
6953
6954typedef PACKED_PRE struct PACKED_POST
6955{
6956 tHT40OBssScanCmdType cmdType;
6957 tSirScanType scanType;
6958 tANI_U16 OBSSScanPassiveDwellTime; // In TUs
6959 tANI_U16 OBSSScanActiveDwellTime; // In TUs
6960 tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
6961 tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
6962 tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
6963 tANI_U16 BSSWidthChannelTransitionDelayFactor;
6964 tANI_U16 OBSSScanActivityThreshold;
6965 tANI_U8 selfStaIdx;
6966 tANI_U8 bssIdx;
6967 tANI_U8 fortyMHZIntolerent;
6968 tANI_U8 channelCount;
6969 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6970 tANI_U8 currentOperatingClass;
6971 tANI_U16 ieFieldLen;
6972 tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
6973}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
6974
6975typedef PACKED_PRE struct PACKED_POST
6976{
6977 tHalMsgHeader header;
6978 tHT40ObssScanIndType scanHT40ObssScanParams;
6979} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
6980
6981/*---------------------------------------------------------------------------
6982 * WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
6983 *-------------------------------------------------------------------------*/
6984typedef PACKED_PRE struct PACKED_POST
6985{
6986 tHalMsgHeader header;
6987 tANI_U8 bssIdx;
6988} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07006989#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6990#pragma pack(pop)
6991#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6992#else
6993#endif
6994
6995#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006996