blob: e3ab0dfa7f976a248cd12fb73a9dd3ebc429bbb6 [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,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800438 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700439}tHalHostMsgType;
440
Jeff Johnsone7245742012-09-05 17:12:55 -0700441/* Enumeration for Version */
442typedef enum
443{
444 WLAN_HAL_MSG_VERSION0 = 0,
445 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800446 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
447 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700448}tHalHostMsgVersion;
449
Jeff Johnson295189b2012-06-20 16:38:30 -0700450/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700451typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700452{
453 eANI_BOOLEAN_FALSE = 0,
454 eANI_BOOLEAN_TRUE,
455 eANI_BOOLEAN_OFF = 0,
456 eANI_BOOLEAN_ON = 1,
457 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
458} eAniBoolean;
459
460typedef enum
461{
462 eDRIVER_TYPE_PRODUCTION = 0,
463 eDRIVER_TYPE_MFG = 1,
464 eDRIVER_TYPE_DVT = 2,
465 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
466} tDriverType;
467
468typedef enum
469{
470 HAL_STOP_TYPE_SYS_RESET,
471 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
472 HAL_STOP_TYPE_RF_KILL,
473 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
474}tHalStopType;
475
476typedef enum
477{
478 eHAL_SYS_MODE_NORMAL,
479 eHAL_SYS_MODE_LEARN,
480 eHAL_SYS_MODE_SCAN,
481 eHAL_SYS_MODE_PROMISC,
482 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700483 eHAL_SYS_MODE_ROAM_SCAN,
484 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700485 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700486 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
487} eHalSysMode;
488
489typedef enum
490{
491 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
492 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
493 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
494 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700495#ifdef WLAN_FEATURE_11AC
496 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
497 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
498 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
499 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
500 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
501 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
502 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
503#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700504 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
505}ePhyChanBondState;
506
507// Spatial Multiplexing(SM) Power Save mode
508typedef enum eSirMacHTMIMOPowerSaveState
509{
510 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
511 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
512 eSIR_HT_MIMO_PS_NA = 2, // reserved
513 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
514 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
515} tSirMacHTMIMOPowerSaveState;
516
517/* each station added has a rate mode which specifies the sta attributes */
518typedef enum eStaRateMode {
519 eSTA_TAURUS = 0,
520 eSTA_TITAN,
521 eSTA_POLARIS,
522 eSTA_11b,
523 eSTA_11bg,
524 eSTA_11a,
525 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700526#ifdef WLAN_FEATURE_11AC
527 eSTA_11ac,
528#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700529 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
530} tStaRateMode, *tpStaRateMode;
531
532#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
533#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
534#define SIR_NUM_POLARIS_RATES 3 //72,96,108
535
536#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
537
538
539typedef enum eSirBssType
540{
541 eSIR_INFRASTRUCTURE_MODE,
542 eSIR_INFRA_AP_MODE, //Added for softAP support
543 eSIR_IBSS_MODE,
544 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
545 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
546 eSIR_AUTO_MODE,
547 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
548} tSirBssType;
549
550typedef enum eSirNwType
551{
552 eSIR_11A_NW_TYPE,
553 eSIR_11B_NW_TYPE,
554 eSIR_11G_NW_TYPE,
555 eSIR_11N_NW_TYPE,
556 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
557} tSirNwType;
558
559typedef tANI_U16 tSirMacBeaconInterval;
560
561#define SIR_MAC_RATESET_EID_MAX 12
562
563typedef enum eSirMacHTOperatingMode
564{
565 eSIR_HT_OP_MODE_PURE, // No Protection
566 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
567 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
568 eSIR_HT_OP_MODE_MIXED, // Protection is required
569 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
570} tSirMacHTOperatingMode;
571
Jeff Johnson295189b2012-06-20 16:38:30 -0700572/// Encryption type enum used with peer
573typedef enum eAniEdType
574{
575 eSIR_ED_NONE,
576 eSIR_ED_WEP40,
577 eSIR_ED_WEP104,
578 eSIR_ED_TKIP,
579 eSIR_ED_CCMP,
580 eSIR_ED_WPI,
581 eSIR_ED_AES_128_CMAC,
582 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
583} tAniEdType;
584
585#define WLAN_MAX_KEY_RSC_LEN 16
586#define WLAN_WAPI_KEY_RSC_LEN 16
587
588/// MAX key length when ULA is used
589#define SIR_MAC_MAX_KEY_LENGTH 32
590#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
591
592/// Enum to specify whether key is used
593/// for TX only, RX only or both
594typedef enum eAniKeyDirection
595{
596 eSIR_TX_ONLY,
597 eSIR_RX_ONLY,
598 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700599 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700600 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
601} tAniKeyDirection;
602
603typedef enum eAniWepType
604{
605 eSIR_WEP_STATIC,
606 eSIR_WEP_DYNAMIC,
607 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
608} tAniWepType;
609
610typedef enum eSriLinkState {
611
612 eSIR_LINK_IDLE_STATE = 0,
613 eSIR_LINK_PREASSOC_STATE = 1,
614 eSIR_LINK_POSTASSOC_STATE = 2,
615 eSIR_LINK_AP_STATE = 3,
616 eSIR_LINK_IBSS_STATE = 4,
617
618 /* BT-AMP Case */
619 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
620 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
621 eSIR_LINK_BTAMP_AP_STATE = 7,
622 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700623
Jeff Johnson295189b2012-06-20 16:38:30 -0700624 /* Reserved for HAL Internal Use */
625 eSIR_LINK_LEARN_STATE = 9,
626 eSIR_LINK_SCAN_STATE = 10,
627 eSIR_LINK_FINISH_SCAN_STATE = 11,
628 eSIR_LINK_INIT_CAL_STATE = 12,
629 eSIR_LINK_FINISH_CAL_STATE = 13,
630#ifdef WLAN_FEATURE_P2P
631 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530632 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700633#endif
634 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
635} tSirLinkState;
636
637typedef enum
638{
639 HAL_SUMMARY_STATS_INFO = 0x00000001,
640 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
641 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
642 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
643 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
644 HAL_PER_STA_STATS_INFO = 0x00000020
645}eHalStatsMask;
646
647/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700648typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700649{
650 BTAMP_EVENT_CONNECTION_START,
651 BTAMP_EVENT_CONNECTION_STOP,
652 BTAMP_EVENT_CONNECTION_TERMINATED,
653 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
654} tBtAmpEventType;
655
656//***************************************************************
657
658
659/*******************PE Statistics*************************/
660typedef enum
661{
662 PE_SUMMARY_STATS_INFO = 0x00000001,
663 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
664 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
665 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
666 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
667 PE_PER_STA_STATS_INFO = 0x00000020,
668 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
669}ePEStatsMask;
670
671/*---------------------------------------------------------------------------
672 Message definitons - All the messages below need to be packed
673 ---------------------------------------------------------------------------*/
674
675#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
676#pragma pack(push, 1)
677#elif defined(__ANI_COMPILER_PRAGMA_PACK)
678#pragma pack(1)
679#else
680#endif
681
682/// Definition for HAL API Version.
683typedef PACKED_PRE struct PACKED_POST
684{
685 tANI_U8 revision;
686 tANI_U8 version;
687 tANI_U8 minor;
688 tANI_U8 major;
689} tWcnssWlanVersion, *tpWcnssWlanVersion;
690
691/// Definition for Encryption Keys
692typedef PACKED_PRE struct PACKED_POST
693{
694 tANI_U8 keyId;
695 tANI_U8 unicast; // 0 for multicast
696 tAniKeyDirection keyDirection;
697 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
698 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
699 tANI_U16 keyLength;
700 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
701} tSirKeys, *tpSirKeys;
702
703
704//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
705typedef PACKED_PRE struct PACKED_POST
706{
707 /*STA Index*/
708 tANI_U16 staIdx;
709
710 /*Encryption Type used with peer*/
711 tAniEdType encType;
712
713 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700714 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700715
716 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
717 tANI_U8 defWEPIdx;
718
Jeff Johnson295189b2012-06-20 16:38:30 -0700719 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700720 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
721
Jeff Johnson295189b2012-06-20 16:38:30 -0700722 /*Control for Replay Count, 1= Single TID based replay count on Tx
723 0 = Per TID based replay count on TX */
724 tANI_U8 singleTidRc;
725
726} tSetStaKeyParams, *tpSetStaKeyParams;
727
728
729
730/* 4-byte control message header used by HAL*/
731typedef PACKED_PRE struct PACKED_POST
732{
Jeff Johnsone7245742012-09-05 17:12:55 -0700733 tHalHostMsgType msgType:16;
734 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700735 tANI_U32 msgLen;
736} tHalMsgHeader, *tpHalMsgHeader;
737
738/* Config format required by HAL for each CFG item*/
739typedef PACKED_PRE struct PACKED_POST
740{
741 /* Cfg Id. The Id required by HAL is exported by HAL
742 * in shared header file between UMAC and HAL.*/
743 tANI_U16 uCfgId;
744
Jeff Johnson32d95a32012-09-10 13:15:23 -0700745 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700746 * in the TLV format.*/
747 tANI_U16 uCfgLen;
748
749 /* Padding bytes for unaligned address's */
750 tANI_U16 uCfgPadBytes;
751
752 /* Reserve bytes for making cfgVal to align address */
753 tANI_U16 uCfgReserve;
754
755 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
756 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
757} tHalCfg, *tpHalCfg;
758
759/*---------------------------------------------------------------------------
760 WLAN_HAL_START_REQ
761---------------------------------------------------------------------------*/
762
763typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
764{
765 /* Drive Type - Production or FTM etc */
766 tDriverType driverType;
767
768 /*Length of the config buffer*/
769 tANI_U32 uConfigBufferLen;
770
Jeff Johnson32d95a32012-09-10 13:15:23 -0700771 /* Following this there is a TLV formatted buffer of length
772 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700773 * The TLV is expected to be formatted like this:
774 * 0 15 31 31+CFG_LEN-1 length-1
775 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
776 */
777} tHalMacStartParameters, *tpHalMacStartParameters;
778
779typedef PACKED_PRE struct PACKED_POST
780{
781 /* Note: The length specified in tHalMacStartReqMsg messages should be
782 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
783 tHalMsgHeader header;
784 tHalMacStartParameters startReqParams;
785} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
786
787/*---------------------------------------------------------------------------
788 WLAN_HAL_START_RSP
789---------------------------------------------------------------------------*/
790
791typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
792{
793 /*success or failure */
794 tANI_U16 status;
795
796 /*Max number of STA supported by the device*/
797 tANI_U8 ucMaxStations;
798
799 /*Max number of BSS supported by the device*/
800 tANI_U8 ucMaxBssids;
801
802 /*API Version */
803 tWcnssWlanVersion wcnssWlanVersion;
804
805 /*CRM build information */
806 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
807
808 /*hardware/chipset/misc version information */
809 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
810
811} tHalMacStartRspParams, *tpHalMacStartRspParams;
812
813typedef PACKED_PRE struct PACKED_POST
814{
815 tHalMsgHeader header;
816 tHalMacStartRspParams startRspParams;
817} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
818
819/*---------------------------------------------------------------------------
820 WLAN_HAL_STOP_REQ
821---------------------------------------------------------------------------*/
822
823typedef PACKED_PRE struct PACKED_POST
824{
825 /*The reason for which the device is being stopped*/
826 tHalStopType reason;
827
828}tHalMacStopReqParams, *tpHalMacStopReqParams;
829
830typedef PACKED_PRE struct PACKED_POST
831{
832 tHalMsgHeader header;
833 tHalMacStopReqParams stopReqParams;
834} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
835
836/*---------------------------------------------------------------------------
837 WLAN_HAL_STOP_RSP
838---------------------------------------------------------------------------*/
839
840typedef PACKED_PRE struct PACKED_POST
841{
842 /*success or failure */
843 tANI_U32 status;
844
845}tHalMacStopRspParams, *tpHalMacStopRspParams;
846
847typedef PACKED_PRE struct PACKED_POST
848{
849 tHalMsgHeader header;
850 tHalMacStopRspParams stopRspParams;
851} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
852
853/*---------------------------------------------------------------------------
854 WLAN_HAL_UPDATE_CFG_REQ
855---------------------------------------------------------------------------*/
856
857typedef PACKED_PRE struct PACKED_POST
858{
859 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
860 tANI_U32 uConfigBufferLen;
861
Jeff Johnson32d95a32012-09-10 13:15:23 -0700862 /* Following this there is a TLV formatted buffer of length
863 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700864 * The TLV is expected to be formatted like this:
865 * 0 15 31 31+CFG_LEN-1 length-1
866 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
867 */
868} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
869
870typedef PACKED_PRE struct PACKED_POST
871{
872 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
873 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
874 tHalMsgHeader header;
875 tHalUpdateCfgReqParams updateCfgReqParams;
876} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
877
878/*---------------------------------------------------------------------------
879 WLAN_HAL_UPDATE_CFG_RSP
880---------------------------------------------------------------------------*/
881
882typedef PACKED_PRE struct PACKED_POST
883{
884 /* success or failure */
885 tANI_U32 status;
886
887}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
888
889typedef PACKED_PRE struct PACKED_POST
890{
891 tHalMsgHeader header;
892 tHalUpdateCfgRspParams updateCfgRspParams;
893} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
894
895/*---------------------------------------------------------------------------
896 WLAN_HAL_INIT_SCAN_REQ
897---------------------------------------------------------------------------*/
898
899/// Frame control field format (2 bytes)
900typedef __ani_attr_pre_packed struct sSirMacFrameCtl
901{
902
903#ifndef ANI_LITTLE_BIT_ENDIAN
904
905 tANI_U8 subType :4;
906 tANI_U8 type :2;
907 tANI_U8 protVer :2;
908
909 tANI_U8 order :1;
910 tANI_U8 wep :1;
911 tANI_U8 moreData :1;
912 tANI_U8 powerMgmt :1;
913 tANI_U8 retry :1;
914 tANI_U8 moreFrag :1;
915 tANI_U8 fromDS :1;
916 tANI_U8 toDS :1;
917
918#else
919
920 tANI_U8 protVer :2;
921 tANI_U8 type :2;
922 tANI_U8 subType :4;
923
924 tANI_U8 toDS :1;
925 tANI_U8 fromDS :1;
926 tANI_U8 moreFrag :1;
927 tANI_U8 retry :1;
928 tANI_U8 powerMgmt :1;
929 tANI_U8 moreData :1;
930 tANI_U8 wep :1;
931 tANI_U8 order :1;
932
933#endif
934
935} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
936
937/// Sequence control field
938typedef __ani_attr_pre_packed struct sSirMacSeqCtl
939{
940 tANI_U8 fragNum : 4;
941 tANI_U8 seqNumLo : 4;
942 tANI_U8 seqNumHi : 8;
943} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
944
945/// Management header format
946typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
947{
948 tSirMacFrameCtl fc;
949 tANI_U8 durationLo;
950 tANI_U8 durationHi;
951 tANI_U8 da[6];
952 tANI_U8 sa[6];
953 tANI_U8 bssId[6];
954 tSirMacSeqCtl seqControl;
955} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
956
957/// Scan Entry to hold active BSS idx's
958typedef __ani_attr_pre_packed struct sSirScanEntry
959{
960 tANI_U8 bssIdx[HAL_NUM_BSSID];
961 tANI_U8 activeBSScnt;
962}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
963
964typedef PACKED_PRE struct PACKED_POST {
965
966 /*LEARN - AP Role
967 SCAN - STA Role*/
968 eHalSysMode scanMode;
969
970 /*BSSID of the BSS*/
971 tSirMacAddr bssid;
972
973 /*Whether BSS needs to be notified*/
974 tANI_U8 notifyBss;
975
976 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
977 CTS to Self). Must always be a valid frame type.*/
978 tANI_U8 frameType;
979
980 /*UMAC has the option of passing the MAC frame to be used for notifying
981 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
982 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
983 frameType.*/
984 tANI_U8 frameLength;
985
Jeff Johnson32d95a32012-09-10 13:15:23 -0700986 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700987 is non-zero. */
988 tSirMacMgmtHdr macMgmtHdr;
989
990 /*Entry to hold number of active BSS idx's*/
991 tSirScanEntry scanEntry;
992
993} tInitScanParams, * tpInitScanParams;
994
995typedef PACKED_PRE struct PACKED_POST
996{
997 tHalMsgHeader header;
998 tInitScanParams initScanParams;
999} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
1000
1001typedef PACKED_PRE struct PACKED_POST {
1002
1003 /*LEARN - AP Role
1004 SCAN - STA Role*/
1005 eHalSysMode scanMode;
1006
1007 /*BSSID of the BSS*/
1008 tSirMacAddr bssid;
1009
1010 /*Whether BSS needs to be notified*/
1011 tANI_U8 notifyBss;
1012
1013 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1014 CTS to Self). Must always be a valid frame type.*/
1015 tANI_U8 frameType;
1016
1017 /*UMAC has the option of passing the MAC frame to be used for notifying
1018 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1019 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1020 frameType.*/
1021 tANI_U8 frameLength;
1022
Jeff Johnson32d95a32012-09-10 13:15:23 -07001023 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001024 is non-zero. */
1025 tSirMacMgmtHdr macMgmtHdr;
1026
1027 /*Entry to hold number of active BSS idx's*/
1028 tSirScanEntry scanEntry;
1029
1030 /* Single NoA usage in Scanning */
1031 tANI_U8 useNoA;
1032
1033 /* Indicates the scan duration (in ms) */
1034 tANI_U16 scanDuration;
1035
1036} tInitScanConParams, * tpInitScanConParams;
1037
1038typedef PACKED_PRE struct PACKED_POST
1039{
1040 tHalMsgHeader header;
1041 tInitScanConParams initScanParams;
1042} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1043
1044
1045/*---------------------------------------------------------------------------
1046 WLAN_HAL_INIT_SCAN_RSP
1047---------------------------------------------------------------------------*/
1048
1049typedef PACKED_PRE struct PACKED_POST
1050{
1051 /*success or failure */
1052 tANI_U32 status;
1053
1054}tHalInitScanRspParams, *tpHalInitScanRspParams;
1055
1056typedef PACKED_PRE struct PACKED_POST
1057{
1058 tHalMsgHeader header;
1059 tHalInitScanRspParams initScanRspParams;
1060} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1061
1062/*---------------------------------------------------------------------------
1063 WLAN_HAL_START_SCAN_REQ
1064---------------------------------------------------------------------------*/
1065
Jeff Johnson32d95a32012-09-10 13:15:23 -07001066typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001067{
1068 /*Indicates the channel to scan*/
1069 tANI_U8 scanChannel;
1070
1071 } tStartScanParams, * tpStartScanParams;
1072
1073typedef PACKED_PRE struct PACKED_POST
1074{
1075 tHalMsgHeader header;
1076 tStartScanParams startScanParams;
1077} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1078
1079/*---------------------------------------------------------------------------
1080 WLAN_HAL_START_SCAN_RSP
1081---------------------------------------------------------------------------*/
1082
1083typedef PACKED_PRE struct PACKED_POST
1084{
1085 /*success or failure */
1086 tANI_U32 status;
1087
1088 tANI_U32 startTSF[2];
1089 tPowerdBm txMgmtPower;
1090
1091}tHalStartScanRspParams, *tpHalStartScanRspParams;
1092
1093typedef PACKED_PRE struct PACKED_POST
1094{
1095 tHalMsgHeader header;
1096 tHalStartScanRspParams startScanRspParams;
1097} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1098
1099/*---------------------------------------------------------------------------
1100 WLAN_HAL_END_SCAN_REQ
1101---------------------------------------------------------------------------*/
1102
1103typedef PACKED_PRE struct PACKED_POST
1104{
1105 /*Indicates the channel to stop scanning. Not used really. But retained
1106 for symmetry with "start Scan" message. It can also help in error
1107 check if needed.*/
1108 tANI_U8 scanChannel;
1109
1110} tEndScanParams, *tpEndScanParams;
1111
1112typedef PACKED_PRE struct PACKED_POST
1113{
1114 tHalMsgHeader header;
1115 tEndScanParams endScanParams;
1116} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1117
1118/*---------------------------------------------------------------------------
1119 WLAN_HAL_END_SCAN_RSP
1120---------------------------------------------------------------------------*/
1121
1122typedef PACKED_PRE struct PACKED_POST
1123{
1124 /*success or failure */
1125 tANI_U32 status;
1126
1127}tHalEndScanRspParams, *tpHalEndScanRspParams;
1128
1129typedef PACKED_PRE struct PACKED_POST
1130{
1131 tHalMsgHeader header;
1132 tHalEndScanRspParams endScanRspParams;
1133} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1134
1135/*---------------------------------------------------------------------------
1136 WLAN_HAL_FINISH_SCAN_REQ
1137---------------------------------------------------------------------------*/
1138
1139typedef PACKED_PRE struct PACKED_POST
1140{
1141 /* Identifies the operational state of the AP/STA
1142 * LEARN - AP Role SCAN - STA Role */
1143 eHalSysMode scanMode;
1144
1145 /*Operating channel to tune to.*/
1146 tANI_U8 currentOperChannel;
1147
1148 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1149 40 MHz extension channel in combination with the control channel*/
1150 ePhyChanBondState cbState;
1151
1152 /*BSSID of the BSS*/
1153 tSirMacAddr bssid;
1154
1155 /*Whether BSS needs to be notified*/
1156 tANI_U8 notifyBss;
1157
1158 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1159 CTS to Self). Must always be a valid frame type.*/
1160 tANI_U8 frameType;
1161
1162 /*UMAC has the option of passing the MAC frame to be used for notifying
1163 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1164 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1165 frameType.*/
1166 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001167
1168 /*Following the framelength there is a MAC frame buffer if frameLength
1169 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001170 tSirMacMgmtHdr macMgmtHdr;
1171
1172 /*Entry to hold number of active BSS idx's*/
1173 tSirScanEntry scanEntry;
1174
1175} tFinishScanParams, *tpFinishScanParams;
1176
1177typedef PACKED_PRE struct PACKED_POST
1178{
1179 tHalMsgHeader header;
1180 tFinishScanParams finishScanParams;
1181} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1182
1183/*---------------------------------------------------------------------------
1184 WLAN_HAL_FINISH_SCAN_RSP
1185---------------------------------------------------------------------------*/
1186
1187typedef PACKED_PRE struct PACKED_POST
1188{
1189 /*success or failure */
1190 tANI_U32 status;
1191
1192}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1193
1194typedef PACKED_PRE struct PACKED_POST
1195{
1196 tHalMsgHeader header;
1197 tHalFinishScanRspParams finishScanRspParams;
1198} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1199
1200/*---------------------------------------------------------------------------
1201 WLAN_HAL_CONFIG_STA_REQ
1202---------------------------------------------------------------------------*/
1203
1204typedef PACKED_PRE struct PACKED_POST {
1205 /*
1206 * For Self STA Entry: this represents Self Mode.
1207 * For Peer Stations, this represents the mode of the peer.
1208 * On Station:
1209 * --this mode is updated when PE adds the Self Entry.
1210 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1211 * ON AP:
1212 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1213 * to indicate the self mode of the AP.
1214 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1215 */
1216
1217 tStaRateMode opRateMode;
1218 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1219 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1220 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1221 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1222 tANI_U16 reserved;
1223
1224 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1225 //First 26 bits are reserved for those Titan rates and
1226 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1227 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1228
1229 /*
1230 * 0-76 bits used, remaining reserved
1231 * bits 0-15 and 32 should be set.
1232 */
1233 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1234
1235 /*
1236 * RX Highest Supported Data Rate defines the highest data
1237 * rate that the STA is able to receive, in unites of 1Mbps.
1238 * This value is derived from "Supported MCS Set field" inside
1239 * the HT capability element.
1240 */
1241 tANI_U16 rxHighestDataRate;
1242
1243} tSirSupportedRates, *tpSirSupportedRates;
1244
1245typedef PACKED_PRE struct PACKED_POST
1246{
1247 /*BSSID of STA*/
1248 tSirMacAddr bssId;
1249
1250 /*ASSOC ID, as assigned by UMAC*/
1251 tANI_U16 assocId;
1252
1253 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1254 tANI_U8 staType;
1255
1256 /*Short Preamble Supported.*/
1257 tANI_U8 shortPreambleSupported;
1258
1259 /*MAC Address of STA*/
1260 tSirMacAddr staMac;
1261
1262 /*Listen interval of the STA*/
1263 tANI_U16 listenInterval;
1264
1265 /*Support for 11e/WMM*/
1266 tANI_U8 wmmEnabled;
1267
1268 /*11n HT capable STA*/
1269 tANI_U8 htCapable;
1270
1271 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1272 tANI_U8 txChannelWidthSet;
1273
1274 /*RIFS mode 0 - NA, 1 - Allowed */
1275 tANI_U8 rifsMode;
1276
Jeff Johnson32d95a32012-09-10 13:15:23 -07001277 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001278 0 - No Support, 1 - Supported
1279 SG - there is global field */
1280 tANI_U8 lsigTxopProtection;
1281
1282 /*Max Ampdu Size supported by STA. TPE programming.
1283 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1284 tANI_U8 maxAmpduSize;
1285
1286 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1287 tANI_U8 maxAmpduDensity;
1288
1289 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1290 tANI_U8 maxAmsduSize;
1291
1292 /*Short GI support for 40Mhz packets*/
1293 tANI_U8 fShortGI40Mhz;
1294
1295 /*Short GI support for 20Mhz packets*/
1296 tANI_U8 fShortGI20Mhz;
1297
Jeff Johnson295189b2012-06-20 16:38:30 -07001298 /*Robust Management Frame (RMF) enabled/disabled*/
1299 tANI_U8 rmfEnabled;
1300
1301 /* The unicast encryption type in the association */
1302 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001303
1304 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001305 will set this flag in case of RE-ASSOC, where we want to reuse the old
1306 STA ID. 0 = Add, 1 = Update*/
1307 tANI_U8 action;
1308
1309 /*U-APSD Flags: 1b per AC. Encoded as follows:
1310 b7 b6 b5 b4 b3 b2 b1 b0 =
1311 X X X X BE BK VI VO */
1312 tANI_U8 uAPSD;
1313
1314 /*Max SP Length*/
1315 tANI_U8 maxSPLen;
1316
1317 /*11n Green Field preamble support
1318 0 - Not supported, 1 - Supported */
1319 tANI_U8 greenFieldCapable;
1320
1321 /*MIMO Power Save mode*/
1322 tSirMacHTMIMOPowerSaveState mimoPS;
1323
1324 /*Delayed BA Support*/
1325 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001326
Jeff Johnson295189b2012-06-20 16:38:30 -07001327 /*Max AMPDU duration in 32us*/
1328 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001329
Jeff Johnson295189b2012-06-20 16:38:30 -07001330 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1331 it to 0 if AP does not support it. This indication is sent to HAL and
1332 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1333 tANI_U8 fDsssCckMode40Mhz;
1334
1335 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1336 Retained for backward compalibity with existing HAL code*/
1337 tANI_U8 staIdx;
1338
1339 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1340 Retained for backward compalibity with existing HAL code*/
1341 tANI_U8 bssIdx;
1342
1343 tANI_U8 p2pCapableSta;
1344
Jeff Johnsone7245742012-09-05 17:12:55 -07001345 /*Reserved to align next field on a dword boundary*/
1346 tANI_U8 reserved;
1347
1348 /*These rates are the intersection of peer and self capabilities.*/
1349 tSirSupportedRates supportedRates;
1350
Jeff Johnson295189b2012-06-20 16:38:30 -07001351} tConfigStaParams, *tpConfigStaParams;
1352
Jeff Johnsone7245742012-09-05 17:12:55 -07001353/*------------------------------------------------------------------------
1354 * WLAN_HAL_CONFIG_STA_REQ
1355 * ----------------------------------------------------------------------*/
1356
1357typedef PACKED_PRE struct PACKED_POST {
1358 /*
1359 * For Self STA Entry: this represents Self Mode.
1360 * For Peer Stations, this represents the mode of the peer.
1361 * On Station:
1362 * --this mode is updated when PE adds the Self Entry.
1363 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1364 * ON AP:
1365 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1366 * to indicate the self mode of the AP.
1367 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1368 */
1369
1370 tStaRateMode opRateMode;
1371 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1372 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1373 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1374 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1375 tANI_U16 reserved;
1376
1377 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1378 //First 26 bits are reserved for those Titan rates and
1379 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1380 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1381
1382 /*
1383 * 0-76 bits used, remaining reserved
1384 * bits 0-15 and 32 should be set.
1385 */
1386 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1387
1388 /*
1389 * RX Highest Supported Data Rate defines the highest data
1390 * rate that the STA is able to receive, in unites of 1Mbps.
1391 * This value is derived from "Supported MCS Set field" inside
1392 * the HT capability element.
1393 */
1394 tANI_U16 rxHighestDataRate;
1395
1396 /* Indicates the Maximum MCS that can be received for each number
1397 * of spacial streams */
1398 tANI_U16 vhtRxMCSMap;
1399
1400 /*Indicate the highest VHT data rate that the STA is able to receive*/
1401 tANI_U16 vhtRxHighestDataRate;
1402
1403 /* Indicates the Maximum MCS that can be transmitted for each number
1404 * of spacial streams */
1405 tANI_U16 vhtTxMCSMap;
1406
1407 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1408 tANI_U16 vhtTxHighestDataRate;
1409
1410} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1411
1412typedef PACKED_PRE struct PACKED_POST
1413{
1414 /*BSSID of STA*/
1415 tSirMacAddr bssId;
1416
1417 /*ASSOC ID, as assigned by UMAC*/
1418 tANI_U16 assocId;
1419
1420 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1421 tANI_U8 staType;
1422
1423 /*Short Preamble Supported.*/
1424 tANI_U8 shortPreambleSupported;
1425
1426 /*MAC Address of STA*/
1427 tSirMacAddr staMac;
1428
1429 /*Listen interval of the STA*/
1430 tANI_U16 listenInterval;
1431
1432 /*Support for 11e/WMM*/
1433 tANI_U8 wmmEnabled;
1434
1435 /*11n HT capable STA*/
1436 tANI_U8 htCapable;
1437
1438 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1439 tANI_U8 txChannelWidthSet;
1440
1441 /*RIFS mode 0 - NA, 1 - Allowed */
1442 tANI_U8 rifsMode;
1443
1444 /*L-SIG TXOP Protection mechanism
1445 0 - No Support, 1 - Supported
1446 SG - there is global field */
1447 tANI_U8 lsigTxopProtection;
1448
1449 /*Max Ampdu Size supported by STA. TPE programming.
1450 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1451 tANI_U8 maxAmpduSize;
1452
1453 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1454 tANI_U8 maxAmpduDensity;
1455
1456 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1457 tANI_U8 maxAmsduSize;
1458
1459 /*Short GI support for 40Mhz packets*/
1460 tANI_U8 fShortGI40Mhz;
1461
1462 /*Short GI support for 20Mhz packets*/
1463 tANI_U8 fShortGI20Mhz;
1464
1465 /*Robust Management Frame (RMF) enabled/disabled*/
1466 tANI_U8 rmfEnabled;
1467
1468 /* The unicast encryption type in the association */
1469 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001470
1471 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001472 will set this flag in case of RE-ASSOC, where we want to reuse the old
1473 STA ID. 0 = Add, 1 = Update*/
1474 tANI_U8 action;
1475
1476 /*U-APSD Flags: 1b per AC. Encoded as follows:
1477 b7 b6 b5 b4 b3 b2 b1 b0 =
1478 X X X X BE BK VI VO */
1479 tANI_U8 uAPSD;
1480
1481 /*Max SP Length*/
1482 tANI_U8 maxSPLen;
1483
1484 /*11n Green Field preamble support
1485 0 - Not supported, 1 - Supported */
1486 tANI_U8 greenFieldCapable;
1487
1488 /*MIMO Power Save mode*/
1489 tSirMacHTMIMOPowerSaveState mimoPS;
1490
1491 /*Delayed BA Support*/
1492 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001493
Jeff Johnsone7245742012-09-05 17:12:55 -07001494 /*Max AMPDU duration in 32us*/
1495 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001496
Jeff Johnsone7245742012-09-05 17:12:55 -07001497 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1498 it to 0 if AP does not support it. This indication is sent to HAL and
1499 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1500 tANI_U8 fDsssCckMode40Mhz;
1501
1502 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1503 Retained for backward compalibity with existing HAL code*/
1504 tANI_U8 staIdx;
1505
1506 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1507 Retained for backward compalibity with existing HAL code*/
1508 tANI_U8 bssIdx;
1509
1510 tANI_U8 p2pCapableSta;
1511
1512 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001513 tANI_U8 htLdpcEnabled:1;
1514 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001515 tANI_U8 vhtTxBFEnabled:1;
1516 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001517
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001518 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001519 tSirSupportedRates_V1 supportedRates;
1520
1521 tANI_U8 vhtCapable;
1522 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001523
Jeff Johnsone7245742012-09-05 17:12:55 -07001524} tConfigStaParams_V1, *tpConfigStaParams_V1;
1525
Jeff Johnson295189b2012-06-20 16:38:30 -07001526typedef PACKED_PRE struct PACKED_POST
1527{
1528 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001529 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001530 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001531 tConfigStaParams_V1 configStaParams_V1;
1532 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001533} tConfigStaReqMsg, *tpConfigStaReqMsg;
1534
1535/*---------------------------------------------------------------------------
1536 WLAN_HAL_CONFIG_STA_RSP
1537---------------------------------------------------------------------------*/
1538
1539typedef PACKED_PRE struct PACKED_POST
1540{
1541 /*success or failure */
1542 tANI_U32 status;
1543
1544 /* Station index; valid only when 'status' field value SUCCESS */
1545 tANI_U8 staIdx;
1546
1547 /* BSSID Index of BSS to which the station is associated */
1548 tANI_U8 bssIdx;
1549
1550 /* DPU Index for PTK */
1551 tANI_U8 dpuIndex;
1552
Jeff Johnson32d95a32012-09-10 13:15:23 -07001553 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001554 tANI_U8 bcastDpuIndex;
1555
1556 /*DPU Index for IGTK */
1557 tANI_U8 bcastMgmtDpuIdx;
1558
1559 /*PTK DPU signature*/
1560 tANI_U8 ucUcastSig;
1561
1562 /*GTK DPU isignature*/
1563 tANI_U8 ucBcastSig;
1564
1565 /* IGTK DPU signature*/
1566 tANI_U8 ucMgmtSig;
1567
1568 tANI_U8 p2pCapableSta;
1569
1570}tConfigStaRspParams, *tpConfigStaRspParams;
1571
1572typedef PACKED_PRE struct PACKED_POST
1573{
1574 tHalMsgHeader header;
1575 tConfigStaRspParams configStaRspParams;
1576}tConfigStaRspMsg, *tpConfigStaRspMsg;
1577
1578/*---------------------------------------------------------------------------
1579 WLAN_HAL_DELETE_STA_REQ
1580---------------------------------------------------------------------------*/
1581
1582/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001583typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001584{
1585 /* Index of STA to delete */
1586 tANI_U8 staIdx;
1587} tDeleteStaParams, *tpDeleteStaParams;
1588
1589/* Delete STA Request message*/
1590typedef PACKED_PRE struct PACKED_POST
1591{
1592 tHalMsgHeader header;
1593 tDeleteStaParams delStaParams;
1594} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1595
1596/*---------------------------------------------------------------------------
1597 WLAN_HAL_DELETE_STA_RSP
1598---------------------------------------------------------------------------*/
1599
1600/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001601typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001602{
1603 /*success or failure */
1604 tANI_U32 status;
1605
1606 /* Index of STA deleted */
1607 tANI_U8 staId;
1608} tDeleteStaRspParams, *tpDeleteStaRspParams;
1609
1610/* Delete STA Response message*/
1611typedef PACKED_PRE struct PACKED_POST
1612{
1613 tHalMsgHeader header;
1614 tDeleteStaRspParams delStaRspParams;
1615} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1616
1617/*---------------------------------------------------------------------------
1618 WLAN_HAL_CONFIG_BSS_REQ
1619---------------------------------------------------------------------------*/
1620
1621//12 Bytes long because this structure can be used to represent rate
1622//and extended rate set IEs. The parser assume this to be at least 12
1623typedef __ani_attr_pre_packed struct sSirMacRateSet
1624{
1625 tANI_U8 numRates;
1626 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1627} __ani_attr_packed tSirMacRateSet;
1628
1629// access category record
1630typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1631{
1632#ifndef ANI_LITTLE_BIT_ENDIAN
1633 tANI_U8 rsvd : 1;
1634 tANI_U8 aci : 2;
1635 tANI_U8 acm : 1;
1636 tANI_U8 aifsn : 4;
1637#else
1638 tANI_U8 aifsn : 4;
1639 tANI_U8 acm : 1;
1640 tANI_U8 aci : 2;
1641 tANI_U8 rsvd : 1;
1642#endif
1643} __ani_attr_packed tSirMacAciAifsn;
1644
1645// contention window size
1646typedef __ani_attr_pre_packed struct sSirMacCW
1647{
1648#ifndef ANI_LITTLE_BIT_ENDIAN
1649 tANI_U8 max : 4;
1650 tANI_U8 min : 4;
1651#else
1652 tANI_U8 min : 4;
1653 tANI_U8 max : 4;
1654#endif
1655} __ani_attr_packed tSirMacCW;
1656
1657typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1658{
1659 tSirMacAciAifsn aci;
1660 tSirMacCW cw;
1661 tANI_U16 txoplimit;
1662} __ani_attr_packed tSirMacEdcaParamRecord;
1663
1664typedef __ani_attr_pre_packed struct sSirMacSSid
1665{
1666 tANI_U8 length;
1667 tANI_U8 ssId[32];
1668} __ani_attr_packed tSirMacSSid;
1669
1670// Concurrency role. These are generic IDs that identify the various roles
1671// in the software system.
1672typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001673 HAL_STA_MODE=0,
1674 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001675 HAL_P2P_CLIENT_MODE,
1676 HAL_P2P_GO_MODE,
1677 HAL_MONITOR_MODE,
1678} tHalConMode;
1679
1680//This is a bit pattern to be set for each mode
1681//bit 0 - sta mode
1682//bit 1 - ap mode
1683//bit 2 - p2p client mode
1684//bit 3 - p2p go mode
1685typedef enum
1686{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001687 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001688 HAL_SAP=2,
1689 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1690 HAL_P2P_CLIENT=4,
1691 HAL_P2P_GO=8,
1692 HAL_MAX_CONCURRENCY_PERSONA=4
1693} tHalConcurrencyMode;
1694
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001695// IFACE PERSONA for different Operating modes
1696typedef enum
1697{
1698 HAL_IFACE_UNKNOWN,
1699 HAL_IFACE_STA_MODE,
1700 HAL_IFACE_P2P_MODE,
1701 HAL_IFACE_MAX
1702} tHalIfacePersona;
1703
Jeff Johnson295189b2012-06-20 16:38:30 -07001704typedef PACKED_PRE struct PACKED_POST
1705{
1706 /* BSSID */
1707 tSirMacAddr bssId;
1708
Jeff Johnson295189b2012-06-20 16:38:30 -07001709 /* Self Mac Address */
1710 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001711
1712 /* BSS type */
1713 tSirBssType bssType;
1714
1715 /*Operational Mode: AP =0, STA = 1*/
1716 tANI_U8 operMode;
1717
1718 /*Network Type*/
1719 tSirNwType nwType;
1720
1721 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1722 tANI_U8 shortSlotTimeSupported;
1723
1724 /*Co-exist with 11a STA*/
1725 tANI_U8 llaCoexist;
1726
1727 /*Co-exist with 11b STA*/
1728 tANI_U8 llbCoexist;
1729
1730 /*Co-exist with 11g STA*/
1731 tANI_U8 llgCoexist;
1732
1733 /*Coexistence with 11n STA*/
1734 tANI_U8 ht20Coexist;
1735
1736 /*Non GF coexist flag*/
1737 tANI_U8 llnNonGFCoexist;
1738
1739 /*TXOP protection support*/
1740 tANI_U8 fLsigTXOPProtectionFullSupport;
1741
1742 /*RIFS mode*/
1743 tANI_U8 fRIFSMode;
1744
1745 /*Beacon Interval in TU*/
1746 tSirMacBeaconInterval beaconInterval;
1747
1748 /*DTIM period*/
1749 tANI_U8 dtimPeriod;
1750
1751 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1752 tANI_U8 txChannelWidthSet;
1753
1754 /*Operating channel*/
1755 tANI_U8 currentOperChannel;
1756
1757 /*Extension channel for channel bonding*/
1758 tANI_U8 currentExtChannel;
1759
1760 /*Reserved to align next field on a dword boundary*/
1761 tANI_U8 reserved;
1762
Jeff Johnsone7245742012-09-05 17:12:55 -07001763 /*SSID of the BSS*/
1764 tSirMacSSid ssId;
1765
1766 /*HAL should update the existing BSS entry, if this flag is set.
1767 UMAC will set this flag in case of reassoc, where we want to resue the
1768 the old BSSID and still return success 0 = Add, 1 = Update*/
1769 tANI_U8 action;
1770
1771 /* MAC Rate Set */
1772 tSirMacRateSet rateSet;
1773
1774 /*Enable/Disable HT capabilities of the BSS*/
1775 tANI_U8 htCapable;
1776
1777 // Enable/Disable OBSS protection
1778 tANI_U8 obssProtEnabled;
1779
1780 /*RMF enabled/disabled*/
1781 tANI_U8 rmfEnabled;
1782
1783 /*HT Operating Mode operating mode of the 802.11n STA*/
1784 tSirMacHTOperatingMode htOperMode;
1785
1786 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1787 tANI_U8 dualCTSProtection;
1788
1789 /* Probe Response Max retries */
1790 tANI_U8 ucMaxProbeRespRetryLimit;
1791
1792 /* To Enable Hidden ssid */
1793 tANI_U8 bHiddenSSIDEn;
1794
1795 /* To Enable Disable FW Proxy Probe Resp */
1796 tANI_U8 bProxyProbeRespEn;
1797
1798 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1799 EDCA params or might not desire to apply EDCA params during config BSS.
1800 0 implies Not Valid ; Non-Zero implies valid*/
1801 tANI_U8 edcaParamsValid;
1802
1803 /*EDCA Parameters for Best Effort Access Category*/
1804 tSirMacEdcaParamRecord acbe;
1805
1806 /*EDCA Parameters forBackground Access Category*/
1807 tSirMacEdcaParamRecord acbk;
1808
1809 /*EDCA Parameters for Video Access Category*/
1810 tSirMacEdcaParamRecord acvi;
1811
1812 /*EDCA Parameters for Voice Access Category*/
1813 tSirMacEdcaParamRecord acvo;
1814
1815#ifdef WLAN_FEATURE_VOWIFI_11R
1816 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1817 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1818#endif
1819
1820 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1821 tANI_U8 halPersona;
1822
1823 tANI_U8 bSpectrumMgtEnable;
1824
1825 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1826 tANI_S8 txMgmtPower;
1827 /*maxTxPower has max power to be used after applying the power constraint if any */
1828 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001829 /*Context of the station being added in HW
1830 Add a STA entry for "itself" -
1831 On AP - Add the AP itself in an "STA context"
1832 On STA - Add the AP to which this STA is joining in an "STA context" */
1833 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001834} tConfigBssParams, * tpConfigBssParams;
1835
1836
1837/*--------------------------------------------------------------------------
1838 * WLAN_HAL_CONFIG_BSS_REQ
1839 *--------------------------------------------------------------------------*/
1840typedef PACKED_PRE struct PACKED_POST
1841{
1842 /* BSSID */
1843 tSirMacAddr bssId;
1844
Jeff Johnsone7245742012-09-05 17:12:55 -07001845 /* Self Mac Address */
1846 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001847
1848 /* BSS type */
1849 tSirBssType bssType;
1850
1851 /*Operational Mode: AP =0, STA = 1*/
1852 tANI_U8 operMode;
1853
1854 /*Network Type*/
1855 tSirNwType nwType;
1856
1857 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1858 tANI_U8 shortSlotTimeSupported;
1859
1860 /*Co-exist with 11a STA*/
1861 tANI_U8 llaCoexist;
1862
1863 /*Co-exist with 11b STA*/
1864 tANI_U8 llbCoexist;
1865
1866 /*Co-exist with 11g STA*/
1867 tANI_U8 llgCoexist;
1868
1869 /*Coexistence with 11n STA*/
1870 tANI_U8 ht20Coexist;
1871
1872 /*Non GF coexist flag*/
1873 tANI_U8 llnNonGFCoexist;
1874
1875 /*TXOP protection support*/
1876 tANI_U8 fLsigTXOPProtectionFullSupport;
1877 /*RIFS mode*/
1878 tANI_U8 fRIFSMode;
1879
1880 /*Beacon Interval in TU*/
1881 tSirMacBeaconInterval beaconInterval;
1882
1883 /*DTIM period*/
1884 tANI_U8 dtimPeriod;
1885
1886 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1887 tANI_U8 txChannelWidthSet;
1888
1889 /*Operating channel*/
1890 tANI_U8 currentOperChannel;
1891
1892 /*Extension channel for channel bonding*/
1893 tANI_U8 currentExtChannel;
1894
1895 /*Reserved to align next field on a dword boundary*/
1896 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001897
1898 /*SSID of the BSS*/
1899 tSirMacSSid ssId;
1900
1901 /*HAL should update the existing BSS entry, if this flag is set.
1902 UMAC will set this flag in case of reassoc, where we want to resue the
1903 the old BSSID and still return success 0 = Add, 1 = Update*/
1904 tANI_U8 action;
1905
1906 /* MAC Rate Set */
1907 tSirMacRateSet rateSet;
1908
1909 /*Enable/Disable HT capabilities of the BSS*/
1910 tANI_U8 htCapable;
1911
1912 // Enable/Disable OBSS protection
1913 tANI_U8 obssProtEnabled;
1914
1915 /*RMF enabled/disabled*/
1916 tANI_U8 rmfEnabled;
1917
1918 /*HT Operating Mode operating mode of the 802.11n STA*/
1919 tSirMacHTOperatingMode htOperMode;
1920
1921 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1922 tANI_U8 dualCTSProtection;
1923
1924 /* Probe Response Max retries */
1925 tANI_U8 ucMaxProbeRespRetryLimit;
1926
1927 /* To Enable Hidden ssid */
1928 tANI_U8 bHiddenSSIDEn;
1929
1930 /* To Enable Disable FW Proxy Probe Resp */
1931 tANI_U8 bProxyProbeRespEn;
1932
Jeff Johnson32d95a32012-09-10 13:15:23 -07001933 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1934 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001935 0 implies Not Valid ; Non-Zero implies valid*/
1936 tANI_U8 edcaParamsValid;
1937
1938 /*EDCA Parameters for Best Effort Access Category*/
1939 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001940
Jeff Johnson295189b2012-06-20 16:38:30 -07001941 /*EDCA Parameters forBackground Access Category*/
1942 tSirMacEdcaParamRecord acbk;
1943
1944 /*EDCA Parameters for Video Access Category*/
1945 tSirMacEdcaParamRecord acvi;
1946
1947 /*EDCA Parameters for Voice Access Category*/
1948 tSirMacEdcaParamRecord acvo;
1949
1950#ifdef WLAN_FEATURE_VOWIFI_11R
1951 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1952 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1953#endif
1954
Jeff Johnson32d95a32012-09-10 13:15:23 -07001955 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001956 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001957
Jeff Johnson295189b2012-06-20 16:38:30 -07001958 tANI_U8 bSpectrumMgtEnable;
1959
1960 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1961 tANI_S8 txMgmtPower;
1962 /*maxTxPower has max power to be used after applying the power constraint if any */
1963 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001964 /*Context of the station being added in HW
1965 Add a STA entry for "itself" -
1966 On AP - Add the AP itself in an "STA context"
1967 On STA - Add the AP to which this STA is joining in an "STA context" */
1968 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001969
Jeff Johnsone7245742012-09-05 17:12:55 -07001970 tANI_U8 vhtCapable;
1971 tANI_U8 vhtTxChannelWidthSet;
1972} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001973
1974typedef PACKED_PRE struct PACKED_POST
1975{
1976 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001977 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001978 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001979 tConfigBssParams_V1 configBssParams_V1;
1980 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001981} tConfigBssReqMsg, *tpConfigBssReqMsg;
1982
1983/*---------------------------------------------------------------------------
1984 WLAN_HAL_CONFIG_BSS_RSP
1985---------------------------------------------------------------------------*/
1986
1987typedef PACKED_PRE struct PACKED_POST
1988{
1989 /* Success or Failure */
1990 tANI_U32 status;
1991
1992 /* BSS index allocated by HAL */
1993 tANI_U8 bssIdx;
1994
1995 /* DPU descriptor index for PTK */
1996 tANI_U8 dpuDescIndx;
1997
1998 /* PTK DPU signature */
1999 tANI_U8 ucastDpuSignature;
2000
2001 /* DPU descriptor index for GTK*/
2002 tANI_U8 bcastDpuDescIndx;
2003
2004 /* GTK DPU signature */
2005 tANI_U8 bcastDpuSignature;
2006
2007 /*DPU descriptor for IGTK*/
2008 tANI_U8 mgmtDpuDescIndx;
2009
2010 /* IGTK DPU signature */
2011 tANI_U8 mgmtDpuSignature;
2012
2013 /* Station Index for BSS entry*/
2014 tANI_U8 bssStaIdx;
2015
2016 /* Self station index for this BSS */
2017 tANI_U8 bssSelfStaIdx;
2018
2019 /* Bcast station for buffering bcast frames in AP role */
2020 tANI_U8 bssBcastStaIdx;
2021
2022 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2023 tSirMacAddr staMac;
2024
2025 /*HAL fills in the tx power used for mgmt frames in this field. */
2026 tANI_S8 txMgmtPower;
2027
2028} tConfigBssRspParams, * tpConfigBssRspParams;
2029
2030typedef PACKED_PRE struct PACKED_POST
2031{
2032 tHalMsgHeader header;
2033 tConfigBssRspParams configBssRspParams;
2034} tConfigBssRspMsg, *tpConfigBssRspMsg;
2035
2036/*---------------------------------------------------------------------------
2037 WLAN_HAL_DELETE_BSS_REQ
2038---------------------------------------------------------------------------*/
2039
2040typedef PACKED_PRE struct PACKED_POST
2041{
2042 /* BSS index to be deleted */
2043 tANI_U8 bssIdx;
2044
2045} tDeleteBssParams, *tpDeleteBssParams;
2046
2047typedef PACKED_PRE struct PACKED_POST
2048{
2049 tHalMsgHeader header;
2050 tDeleteBssParams deleteBssParams;
2051} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2052
2053/*---------------------------------------------------------------------------
2054 WLAN_HAL_DELETE_BSS_RSP
2055---------------------------------------------------------------------------*/
2056
2057typedef PACKED_PRE struct PACKED_POST
2058{
2059 /* Success or Failure */
2060 tANI_U32 status;
2061
2062 /* BSS index that has been deleted */
2063 tANI_U8 bssIdx;
2064
2065} tDeleteBssRspParams, *tpDeleteBssRspParams;
2066
2067typedef PACKED_PRE struct PACKED_POST
2068{
2069 tHalMsgHeader header;
2070 tDeleteBssRspParams deleteBssRspParams;
2071} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2072
2073/*---------------------------------------------------------------------------
2074 WLAN_HAL_JOIN_REQ
2075---------------------------------------------------------------------------*/
2076
2077typedef PACKED_PRE struct PACKED_POST
2078{
2079 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002080 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002081
2082 /*Indicates the channel to switch to.*/
2083 tANI_U8 ucChannel;
2084
2085 /* Self STA MAC */
2086 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002087
Jeff Johnson295189b2012-06-20 16:38:30 -07002088 /*Local power constraint*/
2089 tANI_U8 ucLocalPowerConstraint;
2090
2091 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002092 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002093
2094 /*link State*/
2095 tSirLinkState linkState;
2096
2097 /* Max TX power */
2098 tANI_S8 maxTxPower;
2099
2100} tHalJoinReqParams, *tpHalJoinReqParams;
2101
2102typedef PACKED_PRE struct PACKED_POST
2103{
2104 tHalMsgHeader header;
2105 tHalJoinReqParams joinReqParams;
2106} tHalJoinReqMsg, *tpHalJoinReqMsg;
2107
2108/*---------------------------------------------------------------------------
2109 WLAN_HAL_JOIN_RSP
2110---------------------------------------------------------------------------*/
2111
2112typedef PACKED_PRE struct PACKED_POST
2113{
2114 /*success or failure */
2115 tANI_U32 status;
2116
2117 /* HAL fills in the tx power used for mgmt frames in this field */
2118 tPowerdBm txMgmtPower;
2119
2120}tHalJoinRspParams, *tpHalJoinRspParams;
2121
2122typedef PACKED_PRE struct PACKED_POST
2123{
2124 tHalMsgHeader header;
2125 tHalJoinRspParams joinRspParams;
2126}tHalJoinRspMsg, *tpHalJoinRspMsg;
2127
2128/*---------------------------------------------------------------------------
2129 WLAN_HAL_POST_ASSOC_REQ
2130---------------------------------------------------------------------------*/
2131
2132typedef PACKED_PRE struct PACKED_POST
2133{
2134 tConfigStaParams configStaParams;
2135 tConfigBssParams configBssParams;
2136} tPostAssocReqParams, *tpPostAssocReqParams;
2137
2138typedef PACKED_PRE struct PACKED_POST
2139{
2140 tHalMsgHeader header;
2141 tPostAssocReqParams postAssocReqParams;
2142} tPostAssocReqMsg, *tpPostAssocReqMsg;
2143
2144/*---------------------------------------------------------------------------
2145 WLAN_HAL_POST_ASSOC_RSP
2146---------------------------------------------------------------------------*/
2147
2148typedef PACKED_PRE struct PACKED_POST
2149{
2150 tConfigStaRspParams configStaRspParams;
2151 tConfigBssRspParams configBssRspParams;
2152} tPostAssocRspParams, *tpPostAssocRspParams;
2153
2154typedef PACKED_PRE struct PACKED_POST
2155{
2156 tHalMsgHeader header;
2157 tPostAssocRspParams postAssocRspParams;
2158} tPostAssocRspMsg, *tpPostAssocRspMsg;
2159
2160/*---------------------------------------------------------------------------
2161 WLAN_HAL_SET_BSSKEY_REQ
2162---------------------------------------------------------------------------*/
2163
2164/*
2165 * This is used by PE to create a set of WEP keys for a given BSS.
2166 */
2167typedef PACKED_PRE struct PACKED_POST
2168{
2169 /*BSS Index of the BSS*/
2170 tANI_U8 bssIdx;
2171
2172 /*Encryption Type used with peer*/
2173 tAniEdType encType;
2174
2175 /*Number of keys*/
2176 tANI_U8 numKeys;
2177
2178 /*Array of keys.*/
2179 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002180
Jeff Johnson295189b2012-06-20 16:38:30 -07002181 /*Control for Replay Count, 1= Single TID based replay count on Tx
2182 0 = Per TID based replay count on TX */
2183 tANI_U8 singleTidRc;
2184} tSetBssKeyParams, *tpSetBssKeyParams;
2185
2186typedef PACKED_PRE struct PACKED_POST
2187{
2188 tHalMsgHeader header;
2189 tSetBssKeyParams setBssKeyParams;
2190} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2191
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002192/* tagged version of set bss key */
2193typedef PACKED_PRE struct PACKED_POST
2194{
2195 tSetBssKeyReqMsg Msg;
2196 uint32 Tag;
2197} tSetBssKeyReqMsgTagged;
2198
Jeff Johnson295189b2012-06-20 16:38:30 -07002199/*---------------------------------------------------------------------------
2200 WLAN_HAL_SET_BSSKEY_RSP
2201---------------------------------------------------------------------------*/
2202typedef PACKED_PRE struct PACKED_POST
2203{
2204 /*success or failure */
2205 tANI_U32 status;
2206
2207} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2208
2209typedef PACKED_PRE struct PACKED_POST
2210{
2211 tHalMsgHeader header;
2212 tSetBssKeyRspParams setBssKeyRspParams;
2213} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2214
2215/*---------------------------------------------------------------------------
2216 WLAN_HAL_SET_STAKEY_REQ,
2217---------------------------------------------------------------------------*/
2218
2219/*
2220 * This is used by PE to configure the key information on a given station.
2221 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2222 * a preconfigured key from a BSS the station assoicated with; otherwise
2223 * a new key descriptor is created based on the key field.
2224 */
2225
2226typedef PACKED_PRE struct PACKED_POST
2227{
2228 tHalMsgHeader header;
2229 tSetStaKeyParams setStaKeyParams;
2230} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2231
2232/*---------------------------------------------------------------------------
2233 WLAN_HAL_SET_STAKEY_RSP,
2234---------------------------------------------------------------------------*/
2235typedef PACKED_PRE struct PACKED_POST
2236{
2237 /*success or failure */
2238 tANI_U32 status;
2239
2240} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2241
2242typedef PACKED_PRE struct PACKED_POST
2243{
2244 tHalMsgHeader header;
2245 tSetStaKeyRspParams setStaKeyRspParams;
2246} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2247
2248/*---------------------------------------------------------------------------
2249 WLAN_HAL_RMV_BSSKEY_REQ,
2250---------------------------------------------------------------------------*/
2251/*
2252 * This is used by PE to remove keys for a given BSS.
2253 */
2254typedef PACKED_PRE struct PACKED_POST
2255
2256{
2257 /*BSS Index of the BSS*/
2258 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002259
Jeff Johnson295189b2012-06-20 16:38:30 -07002260 /*Encryption Type used with peer*/
2261 tAniEdType encType;
2262
2263 /*Key Id*/
2264 tANI_U8 keyId;
2265
2266 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2267 tAniWepType wepType;
2268
2269} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2270
2271typedef PACKED_PRE struct PACKED_POST
2272{
2273 tHalMsgHeader header;
2274 tRemoveBssKeyParams removeBssKeyParams;
2275} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2276
2277/*---------------------------------------------------------------------------
2278 WLAN_HAL_RMV_BSSKEY_RSP,
2279---------------------------------------------------------------------------*/
2280typedef PACKED_PRE struct PACKED_POST
2281{
2282 /*success or failure */
2283 tANI_U32 status;
2284
2285} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2286
2287typedef PACKED_PRE struct PACKED_POST
2288{
2289 tHalMsgHeader header;
2290 tRemoveBssKeyRspParams removeBssKeyRspParams;
2291} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2292
2293/*---------------------------------------------------------------------------
2294 WLAN_HAL_RMV_STAKEY_REQ,
2295---------------------------------------------------------------------------*/
2296/*
2297 * This is used by PE to Remove the key information on a given station.
2298 */
2299typedef PACKED_PRE struct PACKED_POST
2300{
2301 /*STA Index*/
2302 tANI_U16 staIdx;
2303
2304 /*Encryption Type used with peer*/
2305 tAniEdType encType;
2306
2307 /*Key Id*/
2308 tANI_U8 keyId;
2309
2310 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2311 the same key is used for both broadcast and unicast.*/
2312 tANI_BOOLEAN unicast;
2313
2314} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2315
2316typedef PACKED_PRE struct PACKED_POST
2317{
2318 tHalMsgHeader header;
2319 tRemoveStaKeyParams removeStaKeyParams;
2320} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2321
2322/*---------------------------------------------------------------------------
2323 WLAN_HAL_RMV_STAKEY_RSP,
2324---------------------------------------------------------------------------*/
2325typedef PACKED_PRE struct PACKED_POST
2326{
2327 /*success or failure */
2328 tANI_U32 status;
2329} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2330
2331typedef PACKED_PRE struct PACKED_POST
2332{
2333 tHalMsgHeader header;
2334 tRemoveStaKeyRspParams removeStaKeyRspParams;
2335} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2336
Jeff Johnsone7245742012-09-05 17:12:55 -07002337#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002338
Jeff Johnsone7245742012-09-05 17:12:55 -07002339#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002340#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002341#endif
2342
2343#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002344#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002345#endif
2346
2347/*-------------------------------------------------------------------------
2348WLAN_HAL_START_OEM_DATA_REQ
2349--------------------------------------------------------------------------*/
2350typedef PACKED_PRE struct PACKED_POST
2351{
2352 tANI_U32 status;
2353 tSirMacAddr selfMacAddr;
2354 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2355} tStartOemDataReqParams, *tpStartOemDataReqParams;
2356
2357typedef PACKED_PRE struct PACKED_POST
2358{
2359 tHalMsgHeader header;
2360 tStartOemDataReqParams startOemDataReqParams;
2361} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2362
2363/*-------------------------------------------------------------------------
2364WLAN_HAL_START_OEM_DATA_RSP
2365--------------------------------------------------------------------------*/
2366
2367typedef PACKED_PRE struct PACKED_POST
2368{
2369 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2370} tStartOemDataRspParams, *tpStartOemDataRspParams;
2371
2372typedef PACKED_PRE struct PACKED_POST
2373{
2374 tHalMsgHeader header;
2375 tStartOemDataRspParams startOemDataRspParams;
2376} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2377
2378#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002379
2380
2381
2382/*---------------------------------------------------------------------------
2383WLAN_HAL_CH_SWITCH_REQ
2384---------------------------------------------------------------------------*/
2385
2386typedef PACKED_PRE struct PACKED_POST
2387{
2388 /* Channel number */
2389 tANI_U8 channelNumber;
2390
2391 /* Local power constraint */
2392 tANI_U8 localPowerConstraint;
2393
2394 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002395 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002396
2397 //HAL fills in the tx power used for mgmt frames in this field.
2398 tPowerdBm txMgmtPower;
2399
2400 /* Max TX power */
2401 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002402
Jeff Johnson295189b2012-06-20 16:38:30 -07002403 /* Self STA MAC */
2404 tSirMacAddr selfStaMacAddr;
2405
2406 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2407 this should be applied only to that session*/
2408 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2409 * bssid needs to be out of the VOWifi feature flag */
2410 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2411 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2412 */
2413 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002414
Jeff Johnson295189b2012-06-20 16:38:30 -07002415}tSwitchChannelParams, *tpSwitchChannelParams;
2416
2417typedef PACKED_PRE struct PACKED_POST
2418{
2419 tHalMsgHeader header;
2420 tSwitchChannelParams switchChannelParams;
2421} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2422
2423/*---------------------------------------------------------------------------
2424WLAN_HAL_CH_SWITCH_RSP
2425---------------------------------------------------------------------------*/
2426
2427typedef PACKED_PRE struct PACKED_POST
2428{
2429 /* Status */
2430 tANI_U32 status;
2431
2432 /* Channel number - same as in request*/
2433 tANI_U8 channelNumber;
2434
2435 /* HAL fills in the tx power used for mgmt frames in this field */
2436 tPowerdBm txMgmtPower;
2437
2438 /* BSSID needed to identify session - same as in request*/
2439 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002440
Jeff Johnson295189b2012-06-20 16:38:30 -07002441}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2442
2443typedef PACKED_PRE struct PACKED_POST
2444{
2445 tHalMsgHeader header;
2446 tSwitchChannelRspParams switchChannelRspParams;
2447} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2448
2449/*---------------------------------------------------------------------------
2450WLAN_HAL_UPD_EDCA_PARAMS_REQ
2451---------------------------------------------------------------------------*/
2452
2453typedef PACKED_PRE struct PACKED_POST
2454{
2455 /*BSS Index*/
2456 tANI_U16 bssIdx;
2457
2458 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002459 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002460
2461 /* Background */
2462 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002463
Jeff Johnson295189b2012-06-20 16:38:30 -07002464 /* Video */
2465 tSirMacEdcaParamRecord acvi;
2466
2467 /* Voice */
2468 tSirMacEdcaParamRecord acvo;
2469
2470} tEdcaParams, *tpEdcaParams;
2471
2472typedef PACKED_PRE struct PACKED_POST
2473{
2474 tHalMsgHeader header;
2475 tEdcaParams edcaParams;
2476} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2477
2478/*---------------------------------------------------------------------------
2479WLAN_HAL_UPD_EDCA_PARAMS_RSP
2480---------------------------------------------------------------------------*/
2481typedef PACKED_PRE struct PACKED_POST
2482{
2483 /*success or failure */
2484 tANI_U32 status;
2485} tEdcaRspParams, *tpEdcaRspParams;
2486
2487typedef PACKED_PRE struct PACKED_POST
2488{
2489 tHalMsgHeader header;
2490 tEdcaRspParams edcaRspParams;
2491} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2492
2493
2494
2495/*---------------------------------------------------------------------------
2496 * WLAN_HAL_GET_STATS_REQ
2497 *--------------------------------------------------------------------------*/
2498typedef PACKED_PRE struct PACKED_POST
2499
2500{
2501 /* Index of STA to which the statistics */
2502 tANI_U16 staIdx;
2503
2504 /* Encryption mode */
2505 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002506
Jeff Johnson295189b2012-06-20 16:38:30 -07002507 /* status */
2508 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002509
Jeff Johnson295189b2012-06-20 16:38:30 -07002510 /* Statistics */
2511 tANI_U32 sendBlocks;
2512 tANI_U32 recvBlocks;
2513 tANI_U32 replays;
2514 tANI_U8 micErrorCnt;
2515 tANI_U32 protExclCnt;
2516 tANI_U16 formatErrCnt;
2517 tANI_U16 unDecryptableCnt;
2518 tANI_U32 decryptErrCnt;
2519 tANI_U32 decryptOkCnt;
2520} tDpuStatsParams, * tpDpuStatsParams;
2521
2522typedef PACKED_PRE struct PACKED_POST
2523{
2524 /* Valid STA Idx for per STA stats request */
2525 tANI_U32 staId;
2526
2527 /* Categories of stats requested as specified in eHalStatsMask*/
2528 tANI_U32 statsMask;
2529}tHalStatsReqParams, *tpHalStatsReqParams;
2530
2531typedef PACKED_PRE struct PACKED_POST
2532{
2533 tHalMsgHeader header;
2534 tHalStatsReqParams statsReqParams;
2535} tHalStatsReqMsg, *tpHalStatsReqMsg;
2536
2537/*---------------------------------------------------------------------------
2538 * WLAN_HAL_GET_STATS_RSP
2539 *--------------------------------------------------------------------------*/
2540
2541typedef PACKED_PRE struct PACKED_POST
2542{
2543 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2544 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2545 // station successfully transmitted after more than one retransmission attempt
2546
Jeff Johnson32d95a32012-09-10 13:15:23 -07002547 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2548 //(with and without retries, including multi-cast, broadcast)
2549 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2550 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002551 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2552 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2553 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2554 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 -07002555 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2556 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 -07002557 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2558 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 -07002559 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2560 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002561 //to provide this.
2562}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2563
2564
2565// defines tx_rate_flags
2566typedef enum eTxRateInfo
2567{
2568 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2569 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2570 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2571 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07002572 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2573 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2574 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
2575 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
2576 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
2577 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
2578} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07002579
2580
2581typedef PACKED_PRE struct PACKED_POST
2582{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002583 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 -07002584 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002585 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 -07002586 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002587 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2588 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002589 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002590 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2591 //for eg: if it is 10.5dBm, the value would be 105
2592 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2593 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002594
Jeff Johnson32d95a32012-09-10 13:15:23 -07002595 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2596 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002597 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002598 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2599 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002600}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2601
2602typedef PACKED_PRE struct PACKED_POST
2603{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002604 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2605 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002606 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002607 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 -07002608 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002609 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 -07002610 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002611 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 -07002612 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002613 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 -07002614 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002615 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 -07002616 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002617 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 -07002618 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002619 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 -07002620 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002621 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 -07002622 //decrypted
2623 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2624
2625}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002626
Jeff Johnson295189b2012-06-20 16:38:30 -07002627typedef PACKED_PRE struct PACKED_POST
2628{
2629 tAniGlobalSecurityStats ucStats;
2630 tAniGlobalSecurityStats mcbcStats;
2631}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2632
2633typedef PACKED_PRE struct PACKED_POST
2634{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002635 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2636 //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 -07002637 //address 1 field
2638 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 -07002639 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 -07002640 //primary channel
2641 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 -07002642 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 -07002643 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002644 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2645 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002646 //decoded correctly
2647}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2648
2649typedef PACKED_PRE struct PACKED_POST
2650{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002651 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 -07002652 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002653 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2654 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 -07002655 //is transmitted
2656}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2657
2658typedef PACKED_PRE struct PACKED_POST
2659{
2660 /* Success or Failure */
2661 tANI_U32 status;
2662
2663 /* STA Idx */
2664 tANI_U32 staId;
2665
2666 /* Categories of STATS being returned as per eHalStatsMask*/
2667 tANI_U32 statsMask;
2668
2669 /* message type is same as the request type */
2670 tANI_U16 msgType;
2671
2672 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002673 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002674
2675} tHalStatsRspParams, *tpHalStatsRspParams;
2676
2677
2678
2679typedef PACKED_PRE struct PACKED_POST
2680{
2681 tHalMsgHeader header;
2682 tHalStatsRspParams statsRspParams;
2683} tHalStatsRspMsg, *tpHalStatsRspMsg;
2684
2685/*---------------------------------------------------------------------------
2686 * WLAN_HAL_SET_LINK_ST_REQ
2687 *--------------------------------------------------------------------------*/
2688typedef PACKED_PRE struct PACKED_POST
2689{
2690 tSirMacAddr bssid;
2691 tSirLinkState state;
2692 tSirMacAddr selfMacAddr;
2693} tLinkStateParams, *tpLinkStateParams;
2694
2695typedef PACKED_PRE struct PACKED_POST
2696{
2697 tHalMsgHeader header;
2698 tLinkStateParams linkStateParams;
2699} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2700
2701/*---------------------------------------------------------------------------
2702 * WLAN_HAL_SET_LINK_ST_RSP
2703 *--------------------------------------------------------------------------*/
2704
2705typedef PACKED_PRE struct PACKED_POST
2706{
2707 /*success or failure */
2708 tANI_U32 status;
2709} tLinkStateRspParams, *tpLinkStateRspParams;
2710
2711typedef PACKED_PRE struct PACKED_POST
2712{
2713 tHalMsgHeader header;
2714 tLinkStateRspParams linkStateRspParams;
2715} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2716
2717/*---------------------------------------------------------------------------
2718 * WLAN_HAL_ADD_TS_REQ
2719 *--------------------------------------------------------------------------*/
2720
2721/* TSPEC Params */
2722typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2723{
Jeff Johnson295189b2012-06-20 16:38:30 -07002724 tANI_U16 trafficType : 1;
2725 tANI_U16 tsid : 4;
2726 tANI_U16 direction : 2;
2727 tANI_U16 accessPolicy : 2;
2728 tANI_U16 aggregation : 1;
2729 tANI_U16 psb : 1;
2730 tANI_U16 userPrio : 3;
2731 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07002732} __ani_attr_packed tSirMacTSInfoTfc;
2733
2734/* Flag to schedule the traffic type */
2735typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2736{
Jeff Johnson295189b2012-06-20 16:38:30 -07002737 tANI_U8 schedule : 1;
2738 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07002739} __ani_attr_packed tSirMacTSInfoSch;
2740
2741/* Traffic and scheduling info */
2742typedef __ani_attr_pre_packed struct sSirMacTSInfo
2743{
2744 tSirMacTSInfoTfc traffic;
2745 tSirMacTSInfoSch schedule;
2746} __ani_attr_packed tSirMacTSInfo;
2747
2748/* Information elements */
2749typedef __ani_attr_pre_packed struct sSirMacTspecIE
2750{
2751 tANI_U8 type;
2752 tANI_U8 length;
2753 tSirMacTSInfo tsinfo;
2754 tANI_U16 nomMsduSz;
2755 tANI_U16 maxMsduSz;
2756 tANI_U32 minSvcInterval;
2757 tANI_U32 maxSvcInterval;
2758 tANI_U32 inactInterval;
2759 tANI_U32 suspendInterval;
2760 tANI_U32 svcStartTime;
2761 tANI_U32 minDataRate;
2762 tANI_U32 meanDataRate;
2763 tANI_U32 peakDataRate;
2764 tANI_U32 maxBurstSz;
2765 tANI_U32 delayBound;
2766 tANI_U32 minPhyRate;
2767 tANI_U16 surplusBw;
2768 tANI_U16 mediumTime;
2769}__ani_attr_packed tSirMacTspecIE;
2770
2771typedef PACKED_PRE struct PACKED_POST
2772{
2773 /* Station Index */
2774 tANI_U16 staIdx;
2775
2776 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2777 tANI_U16 tspecIdx;
2778
2779 /* To program TPE with required parameters */
2780 tSirMacTspecIE tspec;
2781
2782 /* U-APSD Flags: 1b per AC. Encoded as follows:
2783 b7 b6 b5 b4 b3 b2 b1 b0 =
2784 X X X X BE BK VI VO */
2785 tANI_U8 uAPSD;
2786
2787 /* These parameters are for all the access categories */
2788 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2789 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2790 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002791
Jeff Johnson295189b2012-06-20 16:38:30 -07002792} tAddTsParams, *tpAddTsParams;
2793
2794typedef PACKED_PRE struct PACKED_POST
2795{
2796 tHalMsgHeader header;
2797 tAddTsParams addTsParams;
2798} tAddTsReqMsg, *tpAddTsReqMsg;
2799
2800/*---------------------------------------------------------------------------
2801 * WLAN_HAL_ADD_TS_RSP
2802 *--------------------------------------------------------------------------*/
2803
2804typedef PACKED_PRE struct PACKED_POST
2805{
2806 /*success or failure */
2807 tANI_U32 status;
2808} tAddTsRspParams, *tpAddTsRspParams;
2809
2810typedef PACKED_PRE struct PACKED_POST
2811{
2812 tHalMsgHeader header;
2813 tAddTsRspParams addTsRspParams;
2814} tAddTsRspMsg, *tpAddTsRspMsg;
2815
2816
2817/*---------------------------------------------------------------------------
2818 * WLAN_HAL_DEL_TS_REQ
2819 *--------------------------------------------------------------------------*/
2820
2821typedef PACKED_PRE struct PACKED_POST
2822{
2823 /* Station Index */
2824 tANI_U16 staIdx;
2825
2826 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2827 tANI_U16 tspecIdx;
2828
2829 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002830 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002831
2832} tDelTsParams, *tpDelTsParams;
2833
2834typedef PACKED_PRE struct PACKED_POST
2835{
2836 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002837 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002838} tDelTsReqMsg, *tpDelTsReqMsg;
2839
2840/*---------------------------------------------------------------------------
2841 * WLAN_HAL_DEL_TS_RSP
2842 *--------------------------------------------------------------------------*/
2843
2844typedef PACKED_PRE struct PACKED_POST
2845{
2846 /*success or failure */
2847 tANI_U32 status;
2848} tDelTsRspParams, *tpDelTsRspParams;
2849
2850typedef PACKED_PRE struct PACKED_POST
2851{
2852 tHalMsgHeader header;
2853 tDelTsRspParams delTsRspParams;
2854} tDelTsRspMsg, *tpDelTsRspMsg;
2855
2856/* End of TSpec Parameters */
2857
2858/* Start of BLOCK ACK related Parameters */
2859
2860/*---------------------------------------------------------------------------
2861 * WLAN_HAL_ADD_BA_SESSION_REQ
2862 *--------------------------------------------------------------------------*/
2863
2864typedef PACKED_PRE struct PACKED_POST
2865{
2866 /* Station Index */
2867 tANI_U16 staIdx;
2868
2869 /* Peer MAC Address */
2870 tSirMacAddr peerMacAddr;
2871
2872 /* ADDBA Action Frame dialog token
2873 HAL will not interpret this object */
2874 tANI_U8 baDialogToken;
2875
2876 /* TID for which the BA is being setup
2877 This identifies the TC or TS of interest */
2878 tANI_U8 baTID;
2879
2880 /* 0 - Delayed BA (Not supported)
2881 1 - Immediate BA */
2882 tANI_U8 baPolicy;
2883
2884 /* Indicates the number of buffers for this TID (baTID)
2885 NOTE - This is the requested buffer size. When this
2886 is processed by HAL and subsequently by HDD, it is
2887 possible that HDD may change this buffer size. Any
2888 change in the buffer size should be noted by PE and
2889 advertized appropriately in the ADDBA response */
2890 tANI_U16 baBufferSize;
2891
2892 /* BA timeout in TU's 0 means no timeout will occur */
2893 tANI_U16 baTimeout;
2894
2895 /* b0..b3 - Fragment Number - Always set to 0
2896 b4..b15 - Starting Sequence Number of first MSDU
2897 for which this BA is setup */
2898 tANI_U16 baSSN;
2899
2900 /* ADDBA direction
2901 1 - Originator
2902 0 - Recipient */
2903 tANI_U8 baDirection;
2904} tAddBASessionParams, *tpAddBASessionParams;
2905
2906typedef PACKED_PRE struct PACKED_POST
2907{
2908 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002909 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002910}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2911
2912/*---------------------------------------------------------------------------
2913 * WLAN_HAL_ADD_BA_SESSION_RSP
2914 *--------------------------------------------------------------------------*/
2915
2916typedef PACKED_PRE struct PACKED_POST
2917{
2918 /*success or failure */
2919 tANI_U32 status;
2920
2921 /* Dialog token */
2922 tANI_U8 baDialogToken;
2923
2924 /* TID for which the BA session has been setup */
2925 tANI_U8 baTID;
2926
2927 /* BA Buffer Size allocated for the current BA session */
2928 tANI_U8 baBufferSize;
2929
2930 tANI_U8 baSessionID;
2931
2932 /* Reordering Window buffer */
2933 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002934
Jeff Johnson295189b2012-06-20 16:38:30 -07002935 /*Station Index to id the sta */
2936 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002937
Jeff Johnson295189b2012-06-20 16:38:30 -07002938 /* Starting Sequence Number */
2939 tANI_U16 SSN;
2940} tAddBASessionRspParams, *tpAddBASessionRspParams;
2941
2942typedef PACKED_PRE struct PACKED_POST
2943{
2944 tHalMsgHeader header;
2945 tAddBASessionRspParams addBASessionRspParams;
2946} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2947
2948/*---------------------------------------------------------------------------
2949 * WLAN_HAL_ADD_BA_REQ
2950 *--------------------------------------------------------------------------*/
2951
2952typedef PACKED_PRE struct PACKED_POST
2953{
2954 /* Session Id */
2955 tANI_U8 baSessionID;
2956
2957 /* Reorder Window Size */
2958 tANI_U8 winSize;
2959
2960#ifdef FEATURE_ON_CHIP_REORDERING
2961 tANI_BOOLEAN isReorderingDoneOnChip;
2962#endif
2963} tAddBAParams, *tpAddBAParams;
2964
2965typedef PACKED_PRE struct PACKED_POST
2966{
2967 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002968 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002969} tAddBAReqMsg, *tpAddBAReqMsg;
2970
2971
2972/*---------------------------------------------------------------------------
2973 * WLAN_HAL_ADD_BA_RSP
2974 *--------------------------------------------------------------------------*/
2975
2976typedef PACKED_PRE struct PACKED_POST
2977{
2978 /*success or failure */
2979 tANI_U32 status;
2980
2981 /* Dialog token */
2982 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002983
Jeff Johnson295189b2012-06-20 16:38:30 -07002984} tAddBARspParams, *tpAddBARspParams;
2985
2986typedef PACKED_PRE struct PACKED_POST
2987{
2988 tHalMsgHeader header;
2989 tAddBARspParams addBARspParams;
2990} tAddBARspMsg, *tpAddBARspMsg;
2991
2992
2993/*---------------------------------------------------------------------------
2994 * WLAN_HAL_TRIGGER_BA_REQ
2995 *--------------------------------------------------------------------------*/
2996
2997
2998typedef struct sAddBaInfo
2999{
3000 tANI_U16 fBaEnable : 1;
3001 tANI_U16 startingSeqNum: 12;
3002 tANI_U16 reserved : 3;
3003}tAddBaInfo, *tpAddBaInfo;
3004
3005typedef struct sTriggerBaRspCandidate
3006{
3007 tSirMacAddr staAddr;
3008 tAddBaInfo baInfo[STACFG_MAX_TC];
3009}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3010
3011typedef struct sTriggerBaCandidate
3012{
3013 tANI_U8 staIdx;
3014 tANI_U8 tidBitmap;
3015}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3016
3017typedef PACKED_PRE struct PACKED_POST
3018{
3019 /* Session Id */
3020 tANI_U8 baSessionID;
3021
Jeff Johnson32d95a32012-09-10 13:15:23 -07003022 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003023 * Candidate List(tTriggerBaCandidate)
3024 */
3025 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003026
Jeff Johnson295189b2012-06-20 16:38:30 -07003027} tTriggerBAParams, *tpTriggerBAParams;
3028
3029typedef PACKED_PRE struct PACKED_POST
3030{
3031 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003032 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003033} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3034
3035
3036/*---------------------------------------------------------------------------
3037 * WLAN_HAL_TRIGGER_BA_RSP
3038 *--------------------------------------------------------------------------*/
3039
3040typedef PACKED_PRE struct PACKED_POST
3041{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003042
Jeff Johnson295189b2012-06-20 16:38:30 -07003043 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003044 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003045
3046 /* success or failure */
3047 tANI_U32 status;
3048
Jeff Johnson32d95a32012-09-10 13:15:23 -07003049 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003050 * Rsp Candidate List(tTriggerRspBaCandidate)
3051 */
3052 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003053
Jeff Johnson295189b2012-06-20 16:38:30 -07003054
3055} tTriggerBARspParams, *tpTriggerBARspParams;
3056
3057typedef PACKED_PRE struct PACKED_POST
3058{
3059 tHalMsgHeader header;
3060 tTriggerBARspParams triggerBARspParams;
3061} tTriggerBARspMsg, *tpTriggerBARspMsg;
3062
3063/*---------------------------------------------------------------------------
3064 * WLAN_HAL_DEL_BA_REQ
3065 *--------------------------------------------------------------------------*/
3066
3067typedef PACKED_PRE struct PACKED_POST
3068{
3069 /* Station Index */
3070 tANI_U16 staIdx;
3071
3072 /* TID for which the BA session is being deleted */
3073 tANI_U8 baTID;
3074
3075 /* DELBA direction
3076 1 - Originator
3077 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003078 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003079} tDelBAParams, *tpDelBAParams;
3080
3081typedef PACKED_PRE struct PACKED_POST
3082{
3083 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003084 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003085} tDelBAReqMsg, *tpDelBAReqMsg;
3086
3087/*---------------------------------------------------------------------------
3088 * WLAN_HAL_DEL_BA_RSP
3089 *--------------------------------------------------------------------------*/
3090
3091typedef PACKED_PRE struct PACKED_POST
3092{
3093 /* success or failure */
3094 tANI_U32 status;
3095} tDelBARspParams, *tpDelBARspParams;
3096
3097typedef PACKED_PRE struct PACKED_POST
3098{
3099 tHalMsgHeader header;
3100 tDelBARspParams delBARspParams;
3101} tDelBARspMsg, *tpDelBARspMsg;
3102
3103
3104#ifdef FEATURE_WLAN_CCX
3105
3106/*---------------------------------------------------------------------------
3107 * WLAN_HAL_TSM_STATS_REQ
3108 *--------------------------------------------------------------------------*/
3109typedef PACKED_PRE struct PACKED_POST
3110{
3111 /* Traffic Id */
3112 tANI_U8 tsmTID;
3113
3114 tSirMacAddr bssId;
3115} tTsmStatsParams, *tpTsmStatsParams;
3116
3117typedef PACKED_PRE struct PACKED_POST
3118{
3119 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003120 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003121} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3122
3123
3124/*---------------------------------------------------------------------------
3125 * WLAN_HAL_TSM_STATS_RSP
3126 *--------------------------------------------------------------------------*/
3127typedef PACKED_PRE struct PACKED_POST
3128{
3129 /*success or failure */
3130 tANI_U32 status;
3131
Jeff Johnson32d95a32012-09-10 13:15:23 -07003132 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003133 tANI_U16 UplinkPktQueueDly;
3134
Jeff Johnson32d95a32012-09-10 13:15:23 -07003135 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003136 tANI_U16 UplinkPktQueueDlyHist[4];
3137
Jeff Johnson32d95a32012-09-10 13:15:23 -07003138 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003139 tANI_U32 UplinkPktTxDly;
3140
Jeff Johnson32d95a32012-09-10 13:15:23 -07003141 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003142 tANI_U16 UplinkPktLoss;
3143
Jeff Johnson32d95a32012-09-10 13:15:23 -07003144 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003145 tANI_U16 UplinkPktCount;
3146
Jeff Johnson32d95a32012-09-10 13:15:23 -07003147 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003148 tANI_U8 RoamingCount;
3149
Jeff Johnson32d95a32012-09-10 13:15:23 -07003150 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003151 tANI_U16 RoamingDly;
3152} tTsmStatsRspParams, *tpTsmStatsRspParams;
3153
3154typedef PACKED_PRE struct PACKED_POST
3155{
3156 tHalMsgHeader header;
3157 tTsmStatsRspParams tsmStatsRspParams;
3158} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3159
3160
3161#endif
3162
3163/*---------------------------------------------------------------------------
3164 * WLAN_HAL_SET_KEYDONE_MSG
3165 *--------------------------------------------------------------------------*/
3166
3167typedef PACKED_PRE struct PACKED_POST
3168{
3169 /*bssid of the keys */
3170 tANI_U8 bssidx;
3171 tANI_U8 encType;
3172} tSetKeyDoneParams, *tpSetKeyDoneParams;
3173
3174typedef PACKED_PRE struct PACKED_POST
3175{
3176 tHalMsgHeader header;
3177 tSetKeyDoneParams setKeyDoneParams;
3178} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3179
3180/*---------------------------------------------------------------------------
3181 * WLAN_HAL_DOWNLOAD_NV_REQ
3182 *--------------------------------------------------------------------------*/
3183typedef PACKED_PRE struct PACKED_POST
3184{
3185 /* Fragment sequence number of the NV Image. Note that NV Image might not
3186 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003187 * can hence choose to chop the NV blob into multiple fragments starting with
3188 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003189 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3190 * concatenated together by HAL without any padding bytes in between.*/
3191 tANI_U16 fragNumber;
3192
3193 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003194 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003195 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3196 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3197 tANI_U16 isLastFragment;
3198
3199 /* NV Image size (number of bytes) */
3200 tANI_U32 nvImgBufferSize;
3201
3202 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3203 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3204} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3205
3206typedef PACKED_PRE struct PACKED_POST
3207{
3208 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3209 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3210 tHalMsgHeader header;
3211 tHalNvImgDownloadReqParams nvImageReqParams;
3212} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3213
3214/*---------------------------------------------------------------------------
3215 * WLAN_HAL_DOWNLOAD_NV_RSP
3216 *--------------------------------------------------------------------------*/
3217typedef PACKED_PRE struct PACKED_POST
3218{
3219 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3220 * after each fragment */
3221 tANI_U32 status;
3222} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3223
3224typedef PACKED_PRE struct PACKED_POST
3225{
3226 tHalMsgHeader header;
3227 tHalNvImgDownloadRspParams nvImageRspParams;
3228} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3229
3230/*---------------------------------------------------------------------------
3231 * WLAN_HAL_STORE_NV_IND
3232 *--------------------------------------------------------------------------*/
3233typedef PACKED_PRE struct PACKED_POST
3234{
3235 /* NV Item */
3236 eNvTable tableID;
3237
3238 /* Size of NV Blob */
3239 tANI_U32 nvBlobSize;
3240
Jeff Johnson32d95a32012-09-10 13:15:23 -07003241 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003242 * NV blob i.e. uint8[nvBlobSize] */
3243} tHalNvStoreParams, *tpHalNvStoreParams;
3244
3245typedef PACKED_PRE struct PACKED_POST
3246{
3247 /* Note: The length specified in tHalNvStoreInd messages should be
3248 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3249 tHalMsgHeader header;
3250 tHalNvStoreParams nvStoreParams;
3251} tHalNvStoreInd, *tpHalNvStoreInd;
3252
3253/* End of Block Ack Related Parameters */
3254
3255/*---------------------------------------------------------------------------
3256 * WLAN_HAL_MIC_FAILURE_IND
3257 *--------------------------------------------------------------------------*/
3258
3259#define SIR_CIPHER_SEQ_CTR_SIZE 6
3260
3261typedef PACKED_PRE struct PACKED_POST
3262{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003263 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003264 tSirMacAddr taMacAddr; //transmitter address
3265 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003266 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003267 tANI_U8 IV1; // first byte of IV
3268 tANI_U8 keyId; // second byte of IV
3269 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3270 tSirMacAddr rxMacAddr; // receive address
3271} tSirMicFailureInfo, *tpSirMicFailureInfo;
3272
3273/* Definition for MIC failure indication
3274 MAC reports this each time a MIC failure occures on Rx TKIP packet
3275 */
3276typedef PACKED_PRE struct PACKED_POST
3277{
3278 tSirMacAddr bssId; // BSSID
3279 tSirMicFailureInfo info;
3280} tSirMicFailureInd, *tpSirMicFailureInd;
3281
3282typedef PACKED_PRE struct PACKED_POST
3283{
3284 tHalMsgHeader header;
3285 tSirMicFailureInd micFailureInd;
3286} tMicFailureIndMsg, *tpMicFailureIndMsg;
3287
Mohit Khanna4a70d262012-09-11 16:30:12 -07003288typedef PACKED_PRE struct PACKED_POST
3289{
3290 tANI_U16 opMode;
3291 tANI_U16 staId;
3292}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3293
3294typedef PACKED_PRE struct PACKED_POST
3295{
3296 tHalMsgHeader header;
3297 tUpdateVHTOpMode updateVhtOpMode;
3298} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3299
3300typedef PACKED_PRE struct PACKED_POST
3301{
3302 tANI_U32 status;
3303} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3304
3305typedef PACKED_PRE struct PACKED_POST
3306{
3307 tHalMsgHeader header;
3308 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3309} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3310
Jeff Johnson295189b2012-06-20 16:38:30 -07003311/*---------------------------------------------------------------------------
3312 * WLAN_HAL_UPDATE_BEACON_REQ
3313 *--------------------------------------------------------------------------*/
3314typedef PACKED_PRE struct PACKED_POST
3315{
3316
3317 tANI_U8 bssIdx;
3318
3319 //shortPreamble mode. HAL should update all the STA rates when it
3320 //receives this message
3321 tANI_U8 fShortPreamble;
3322 //short Slot time.
3323 tANI_U8 fShortSlotTime;
3324 //Beacon Interval
3325 tANI_U16 beaconInterval;
3326 //Protection related
3327 tANI_U8 llaCoexist;
3328 tANI_U8 llbCoexist;
3329 tANI_U8 llgCoexist;
3330 tANI_U8 ht20MhzCoexist;
3331 tANI_U8 llnNonGFCoexist;
3332 tANI_U8 fLsigTXOPProtectionFullSupport;
3333 tANI_U8 fRIFSMode;
3334
3335 tANI_U16 paramChangeBitmap;
3336}tUpdateBeaconParams, *tpUpdateBeaconParams;
3337
3338
3339typedef PACKED_PRE struct PACKED_POST
3340{
3341 tHalMsgHeader header;
3342 tUpdateBeaconParams updateBeaconParam;
3343} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3344
3345/*---------------------------------------------------------------------------
3346 * WLAN_HAL_UPDATE_BEACON_RSP
3347 *--------------------------------------------------------------------------*/
3348typedef PACKED_PRE struct PACKED_POST
3349{
3350 tANI_U32 status;
3351} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3352
3353typedef PACKED_PRE struct PACKED_POST
3354{
3355 tHalMsgHeader header;
3356 tUpdateBeaconRspParams updateBeaconRspParam;
3357} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3358
3359/*---------------------------------------------------------------------------
3360 * WLAN_HAL_SEND_BEACON_REQ
3361 *--------------------------------------------------------------------------*/
3362typedef PACKED_PRE struct PACKED_POST
3363{
3364 tANI_U32 beaconLength; //length of the template.
3365 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3366 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003367 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003368 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3369}tSendBeaconParams, *tpSendBeaconParams;
3370
3371
3372typedef PACKED_PRE struct PACKED_POST
3373{
3374 tHalMsgHeader header;
3375 tSendBeaconParams sendBeaconParam;
3376}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3377
3378/*---------------------------------------------------------------------------
3379 * WLAN_HAL_SEND_BEACON_RSP
3380 *--------------------------------------------------------------------------*/
3381typedef PACKED_PRE struct PACKED_POST
3382{
3383 tANI_U32 status;
3384} tSendBeaconRspParams, *tpSendBeaconRspParams;
3385
3386typedef PACKED_PRE struct PACKED_POST
3387{
3388 tHalMsgHeader header;
3389 tSendBeaconRspParams sendBeaconRspParam;
3390} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3391
3392#ifdef FEATURE_5GHZ_BAND
3393
3394/*---------------------------------------------------------------------------
3395 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3396 *--------------------------------------------------------------------------*/
3397typedef PACKED_PRE struct PACKED_POST
3398{
3399 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003400 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003401}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3402
3403
3404typedef PACKED_PRE struct PACKED_POST
3405{
3406 /* Link Parameters */
3407 tSirEnableRadarInfoType EnableRadarInfo;
3408}tEnableRadarReqParams, *tpEnableRadarReqParams;
3409
3410typedef PACKED_PRE struct PACKED_POST
3411{
3412 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003413 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003414}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3415
3416/*---------------------------------------------------------------------------
3417 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3418 *--------------------------------------------------------------------------*/
3419
3420typedef PACKED_PRE struct PACKED_POST
3421{
3422 /* Link Parameters */
3423 tSirMacAddr BSSID;
3424 /* success or failure */
3425 tANI_U32 status;
3426}tEnableRadarRspParams, *tpEnableRadarRspParams;
3427
3428typedef PACKED_PRE struct PACKED_POST
3429{
3430 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003431 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003432}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3433
3434/*---------------------------------------------------------------------------
3435 *WLAN_HAL_RADAR_DETECT_INTR_IND
3436 *--------------------------------------------------------------------------*/
3437
3438typedef PACKED_PRE struct PACKED_POST
3439{
3440 tANI_U8 radarDetChannel;
3441}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3442
3443typedef PACKED_PRE struct PACKED_POST
3444{
3445 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003446 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003447}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3448
3449/*---------------------------------------------------------------------------
3450 *WLAN_HAL_RADAR_DETECT_IND
3451 *-------------------------------------------------------------------------*/
3452typedef PACKED_PRE struct PACKED_POST
3453{
3454 /*channel number in which the RADAR detected*/
3455 tANI_U8 channelNumber;
3456
3457 /*RADAR pulse width*/
3458 tANI_U16 radarPulseWidth; // in usecond
3459
3460 /*Number of RADAR pulses */
3461 tANI_U16 numRadarPulse;
3462}tRadarDetectIndParams,*tpRadarDetectIndParams;
3463
3464typedef PACKED_PRE struct PACKED_POST
3465{
3466 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003467 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003468}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3469
3470
3471/*---------------------------------------------------------------------------
3472 *WLAN_HAL_GET_TPC_REPORT_REQ
3473 *-------------------------------------------------------------------------*/
3474typedef PACKED_PRE struct PACKED_POST
3475{
3476 tSirMacAddr sta;
3477 tANI_U8 dialogToken;
3478 tANI_U8 txpower;
3479}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3480
3481
3482typedef PACKED_PRE struct PACKED_POST
3483{
3484 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003485 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003486}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3487
3488/*---------------------------------------------------------------------------
3489 * WLAN_HAL_GET_TPC_REPORT_RSP
3490 *--------------------------------------------------------------------------*/
3491
3492typedef PACKED_PRE struct PACKED_POST
3493{
3494 /* success or failure */
3495 tANI_U32 status;
3496}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3497
3498typedef PACKED_PRE struct PACKED_POST
3499{
3500 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003501 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003502}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3503
3504#endif
3505
Jeff Johnson295189b2012-06-20 16:38:30 -07003506/*---------------------------------------------------------------------------
3507 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3508 *-------------------------------------------------------------------------*/
3509typedef PACKED_PRE struct PACKED_POST
3510{
3511 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3512 tANI_U32 probeRespTemplateLen;
3513 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3514 tSirMacAddr bssId;
3515
3516}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3517
3518typedef PACKED_PRE struct PACKED_POST
3519{
3520 tHalMsgHeader header;
3521 tSendProbeRespReqParams sendProbeRespReqParams ;
3522}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3523
3524/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003525 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003526 *--------------------------------------------------------------------------*/
3527
3528typedef PACKED_PRE struct PACKED_POST
3529{
3530 /* success or failure */
3531 tANI_U32 status;
3532}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3533
3534typedef PACKED_PRE struct PACKED_POST
3535{
3536 tHalMsgHeader header;
3537 tSendProbeRespRspParams sendProbeRespRspParams;
3538}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3539
3540
3541/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003542 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003543 *--------------------------------------------------------------------------*/
3544
3545typedef PACKED_PRE struct PACKED_POST
3546{
3547 /* success or failure */
3548 tANI_U32 status;
3549}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3550
3551typedef PACKED_PRE struct PACKED_POST
3552{
3553 tHalMsgHeader header;
3554 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3555}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3556
3557/*---------------------------------------------------------------------------
3558 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3559 *--------------------------------------------------------------------------*/
3560
3561typedef PACKED_PRE struct PACKED_POST
3562{
3563 tANI_U16 assocId;
3564 tANI_U16 staId;
3565 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3566 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003567 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003568 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003569
3570}tDeleteStaContextParams, *tpDeleteStaContextParams;
3571
3572
3573typedef PACKED_PRE struct PACKED_POST
3574{
3575 tHalMsgHeader header;
3576 tDeleteStaContextParams deleteStaContextParams;
3577}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3578
Anand Kumar012623a2013-01-11 17:00:00 -08003579typedef PACKED_PRE struct PACKED_POST
3580{
3581 tHalMsgHeader header;
3582 tANI_U8 assocId;
3583 tANI_U8 staIdx;
3584 tANI_U8 bssIdx;
3585 tANI_U8 uReasonCode;
3586 tANI_U32 uStatus;
3587} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003588
3589/*---------------------------------------------------------------------------
3590 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3591 *--------------------------------------------------------------------------*/
3592
3593typedef PACKED_PRE struct PACKED_POST
3594{
3595 tBtAmpEventType btAmpEventType;
3596
3597}tBtAmpEventParams, *tpBtAmpEventParams;
3598
3599
3600
3601typedef PACKED_PRE struct PACKED_POST
3602{
3603 tHalMsgHeader header;
3604 tBtAmpEventParams btAmpEventParams;
3605}tBtAmpEventMsg, *tpBtAmpEventMsg;
3606
3607/*---------------------------------------------------------------------------
3608*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3609*--------------------------------------------------------------------------*/
3610
3611typedef PACKED_PRE struct PACKED_POST
3612{
3613 /* success or failure */
3614 tANI_U32 status;
3615}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3616
3617typedef PACKED_PRE struct PACKED_POST
3618{
3619 tHalMsgHeader header;
3620 tBtAmpEventRspParams btAmpEventRspParams;
3621}tBtAmpEventRsp, *tpBtAmpEventRsp;
3622
3623
3624/*---------------------------------------------------------------------------
3625 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3626 *--------------------------------------------------------------------------*/
3627
3628typedef PACKED_PRE struct PACKED_POST
3629{
3630 // Station Index. originates from HAL
3631 tANI_U8 ucSTAId;
3632
3633 // TID for which the transmit queue is being flushed
3634 tANI_U8 ucTid;
3635
3636}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3637
3638
3639typedef PACKED_PRE struct PACKED_POST
3640{
3641 tHalMsgHeader header;
3642 tTlHalFlushAcParams tlHalFlushAcParam;
3643}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3644
3645/*---------------------------------------------------------------------------
3646*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3647*--------------------------------------------------------------------------*/
3648
3649typedef PACKED_PRE struct PACKED_POST
3650{
3651 // Station Index. originates from HAL
3652 tANI_U8 ucSTAId;
3653
3654 // TID for which the transmit queue is being flushed
3655 tANI_U8 ucTid;
3656
3657 /* success or failure */
3658 tANI_U32 status;
3659}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3660
3661typedef PACKED_PRE struct PACKED_POST
3662{
3663 tHalMsgHeader header;
3664 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3665}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3666
3667/*---------------------------------------------------------------------------
3668 * WLAN_HAL_ENTER_IMPS_REQ
3669 *--------------------------------------------------------------------------*/
3670typedef PACKED_PRE struct PACKED_POST
3671{
3672 tHalMsgHeader header;
3673} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3674
3675/*---------------------------------------------------------------------------
3676 * WLAN_HAL_EXIT_IMPS_REQ
3677 *--------------------------------------------------------------------------*/
3678typedef PACKED_PRE struct PACKED_POST
3679{
3680 tHalMsgHeader header;
3681} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3682
3683/*---------------------------------------------------------------------------
3684 * WLAN_HAL_ENTER_BMPS_REQ
3685 *--------------------------------------------------------------------------*/
3686
3687typedef PACKED_PRE struct PACKED_POST
3688{
3689 tANI_U8 bssIdx;
3690 //TBTT value derived from the last beacon
3691#ifndef BUILD_QWPTTSTATIC
3692 tANI_U64 tbtt;
3693#endif
3694 tANI_U8 dtimCount;
3695 //DTIM period given to HAL during association may not be valid,
3696 //if association is based on ProbeRsp instead of beacon.
3697 tANI_U8 dtimPeriod;
3698
3699 // For CCX and 11R Roaming
3700 tANI_U32 rssiFilterPeriod;
3701 tANI_U32 numBeaconPerRssiAverage;
3702 tANI_U8 bRssiFilterEnable;
3703
3704} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3705
3706
3707typedef PACKED_PRE struct PACKED_POST
3708{
3709 tHalMsgHeader header;
3710 tHalEnterBmpsReqParams enterBmpsReq;
3711} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3712
3713/*---------------------------------------------------------------------------
3714 * WLAN_HAL_EXIT_BMPS_REQ
3715 *--------------------------------------------------------------------------*/
3716typedef PACKED_PRE struct PACKED_POST
3717{
3718 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003719 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003720} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3721
3722typedef PACKED_PRE struct PACKED_POST
3723{
3724 tHalMsgHeader header;
3725 tHalExitBmpsReqParams exitBmpsReqParams;
3726} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3727
3728/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003729 * WLAN_HAL_MISSED_BEACON_IND
3730 *--------------------------------------------------------------------------*/
3731typedef PACKED_PRE struct PACKED_POST
3732{
3733 tANI_U8 bssIdx;
3734} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3735
3736typedef PACKED_PRE struct PACKED_POST
3737{
3738 tHalMsgHeader header;
3739 tHalMissedBeaconIndParams missedBeaconIndParams;
3740} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3741
3742/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003743 * WLAN_HAL_ADD_BCN_FILTER_REQ
3744 *--------------------------------------------------------------------------*/
3745/* Beacon Filtering data structures */
3746typedef PACKED_PRE struct PACKED_POST
3747{
3748 tANI_U8 offset;
3749 tANI_U8 value;
3750 tANI_U8 bitMask;
3751 tANI_U8 ref;
3752} tEidByteInfo, *tpEidByteInfo;
3753
Jeff Johnson32d95a32012-09-10 13:15:23 -07003754typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003755{
3756 tANI_U16 capabilityInfo;
3757 tANI_U16 capabilityMask;
3758 tANI_U16 beaconInterval;
3759 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003760 tANI_U8 bssIdx;
3761 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003762} tBeaconFilterMsg, *tpBeaconFilterMsg;
3763
3764/* The above structure would be followed by multiple of below mentioned structure */
3765typedef PACKED_PRE struct PACKED_POST
3766{
3767 tANI_U8 elementId;
3768 tANI_U8 checkIePresence;
3769 tEidByteInfo byte;
3770} tBeaconFilterIe, *tpBeaconFilterIe;
3771
3772typedef PACKED_PRE struct PACKED_POST
3773{
3774 tHalMsgHeader header;
3775 tBeaconFilterMsg addBcnFilterParams;
3776} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3777
3778/*---------------------------------------------------------------------------
3779 * WLAN_HAL_REM_BCN_FILTER_REQ
3780 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003781typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003782{
3783 tANI_U8 ucIeCount;
3784 tANI_U8 ucRemIeId[1];
3785} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3786
3787typedef PACKED_PRE struct PACKED_POST
3788{
3789 tHalMsgHeader header;
3790 tRemBeaconFilterMsg remBcnFilterParams;
3791} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3792
3793/*---------------------------------------------------------------------------
3794 * WLAN_HAL_HOST_OFFLOAD_REQ
3795 *--------------------------------------------------------------------------*/
3796#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3797#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3798#define HAL_IPV6_NS_OFFLOAD 2
3799#define HAL_IPV6_ADDR_LEN 16
3800#define HAL_MAC_ADDR_LEN 6
3801#define HAL_OFFLOAD_DISABLE 0
3802#define HAL_OFFLOAD_ENABLE 1
3803#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003804#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003805#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003806#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003807
3808typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3809{
3810 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3811 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3812 //Only support 2 possible Network Advertisement IPv6 address
3813 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3814 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3815 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3816 tANI_U8 srcIPv6AddrValid : 1;
3817 tANI_U8 targetIPv6Addr1Valid : 1;
3818 tANI_U8 targetIPv6Addr2Valid : 1;
3819 tANI_U8 reserved1 : 5;
3820 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003821 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003822 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003823} tHalNSOffloadParams;
3824
3825typedef PACKED_PRE struct PACKED_POST
3826{
3827 tANI_U8 offloadType;
3828 tANI_U8 enableOrDisable;
3829 PACKED_PRE union PACKED_POST
3830 {
3831 tANI_U8 hostIpv4Addr [4];
3832 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3833 } params;
3834} tHalHostOffloadReq, *tpHalHostOffloadReq;
3835
3836typedef PACKED_PRE struct PACKED_POST
3837{
3838 tHalMsgHeader header;
3839 tHalHostOffloadReq hostOffloadParams;
3840 tHalNSOffloadParams nsOffloadParams;
3841} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3842
Leo Chang397deb72013-08-22 11:33:16 -07003843
3844#ifdef FEATURE_WLAN_LPHB
3845typedef enum
3846{
3847 WIFI_HB_SET_ENABLE = 0x0001,
3848 WIFI_HB_SET_TCP_PARAMS = 0x0002,
3849 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
3850 WIFI_HB_SET_UDP_PARAMS = 0x0004,
3851 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
3852 WIFI_HB_SET_NETWORK_INFO = 0x0006,
3853}tLowPowerHeartBeatCmdType ;
3854
3855#define MAX_FLITER_SIZE 64
3856/*---------------------------------------------------------------------------
3857 *FEATURE_WLAN_LPHB REQ
3858 *--------------------------------------------------------------------------*/
3859typedef PACKED_PRE struct PACKED_POST
3860{
3861 uint32 hostIpv4Addr;
3862 uint32 destIpv4Addr;
3863 uint16 hostPort;
3864 uint16 destPort;
3865 uint16 timeOutSec; // in seconds
3866 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07003867 uint16 timePeriodSec; // in seconds
3868 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07003869} tlowPowerHeartBeatParamsTcpStruct;
3870
3871typedef PACKED_PRE struct PACKED_POST
3872{
3873 uint32 hostIpv4Addr;
3874 uint32 destIpv4Addr;
3875 uint16 hostPort;
3876 uint16 destPort;
3877 uint16 timePeriodSec;// in seconds
3878 uint16 timeOutSec; // in seconds
3879 tSirMacAddr gatewayMacAddr;
3880} tlowPowerHeartBeatParamsUdpStruct;
3881
3882typedef PACKED_PRE struct PACKED_POST
3883{
3884 uint32 offset;
3885 uint32 filterLength;
3886 uint8 filter[MAX_FLITER_SIZE];
3887} tlowPowerHeartBeatFilterStruct;
3888
3889typedef PACKED_PRE struct PACKED_POST
3890{
3891 uint8 heartBeatEnable;
3892 uint8 heartBeatType; //TCP or UDP
3893} tlowPowerHeartBeatEnableStruct;
3894
3895typedef PACKED_PRE struct PACKED_POST
3896{
3897 uint8 dummy;
3898} tlowPowerHeartBeatNetworkInfoStruct;
3899
3900
3901typedef PACKED_PRE struct PACKED_POST
3902{
3903 uint8 sessionIdx;
3904 uint16 lowPowerHeartBeatCmdType;
3905 PACKED_PRE union PACKED_PRO
3906 {
3907 tlowPowerHeartBeatEnableStruct control;
3908 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
3909 tlowPowerHeartBeatParamsTcpStruct tcpParams;
3910 tlowPowerHeartBeatParamsUdpStruct udpParams;
3911 tlowPowerHeartBeatNetworkInfoStruct info;
3912 }options;
3913} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
3914
3915
3916typedef PACKED_PRE struct PACKED_POST
3917{
3918 tHalMsgHeader header;
3919 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
3920} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
3921
3922/*---------------------------------------------------------------------------
3923 * FEATURE_WLAN_LPHB RSP
3924 *--------------------------------------------------------------------------*/
3925
3926typedef PACKED_PRE struct PACKED_POST
3927{
3928 /* success or failure */
3929 uint8 sessionIdx;
3930 uint32 status;
3931 uint16 lowPowerHeartBeatCmdType;
3932}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
3933
3934typedef PACKED_PRE struct PACKED_POST
3935{
3936 tHalMsgHeader header;
3937 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
3938}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
3939
3940
3941/*---------------------------------------------------------------------------
3942 * FEATURE_WLAN_LPHB IND
3943 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07003944#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
3945#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
3946
3947#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
3948#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07003949#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07003950
Kumar Anandea78e792013-10-10 23:47:01 -07003951
3952#define WIFI_LPHB_PROTO_UDP 0x01
3953#define WIFI_LPHB_PROTO_TCP 0x02
3954
Leo Chang397deb72013-08-22 11:33:16 -07003955typedef PACKED_PRE struct PACKED_POST
3956{
3957 uint8 bssIdx;
3958 uint8 sessionIdx;
3959 uint8 protocolType; /*TCP or UDP*/
3960 uint8 eventReason;
3961
3962}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
3963
3964typedef PACKED_PRE struct PACKED_POST
3965{
3966 tHalMsgHeader header;
3967 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
3968}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
3969
3970#endif
krunal soni2a4728d2013-09-20 21:56:50 -07003971
3972#ifdef FEATURE_WLAN_BATCH_SCAN
3973
3974/*---------------------------------------------------------------------------
3975 * WLAN_HAL_BATCHSCAN_SET_REQ
3976 *--------------------------------------------------------------------------*/
3977typedef PACKED_PRE struct PACKED_POST
3978{
3979 /* Scan Frerquency - default to 30Sec*/
3980 tANI_U32 scanInterval;
3981 tANI_U32 numScan2Batch;
3982 tANI_U32 bestNetworks;
3983 tANI_U8 rfBand;
3984 tANI_U8 rtt;
3985} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
3986
3987typedef PACKED_PRE struct PACKED_POST
3988{
3989 tHalMsgHeader header;
3990 tHalBatchScanSetParams batchScanParams;
3991} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
3992
3993/*---------------------------------------------------------------------------
3994 * WLAN_HAL_BATCHSCAN_SET_RSP
3995 *--------------------------------------------------------------------------*/
3996typedef PACKED_PRE struct PACKED_POST
3997{
3998 tANI_U32 supportedMscan;
3999} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
4000
4001typedef PACKED_PRE struct PACKED_POST
4002{
4003 tHalMsgHeader header;
4004 tHalBatchScanSetRspParam setBatchScanRspParam;
4005} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
4006
4007/*---------------------------------------------------------------------------
4008* WLAN_HAL_BATCHSCAN_STOP_IND
4009*--------------------------------------------------------------------------*/
4010typedef PACKED_PRE struct PACKED_POST
4011{
4012 tANI_U32 param;
4013} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4014
4015typedef PACKED_PRE struct PACKED_POST
4016{
4017 tHalMsgHeader header;
4018 tHalBatchScanStopIndParam param;
4019} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4020
4021/*---------------------------------------------------------------------------
4022* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4023*--------------------------------------------------------------------------*/
4024typedef PACKED_PRE struct PACKED_POST
4025{
4026 tANI_U32 param;
4027} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4028
4029typedef PACKED_PRE struct PACKED_POST
4030{
4031 tHalMsgHeader header;
4032 tHalBatchScanTriggerResultParam param;
4033} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4034
4035/*---------------------------------------------------------------------------
4036 * WLAN_HAL_BATCHSCAN_GET_RSP
4037 *--------------------------------------------------------------------------*/
4038typedef PACKED_PRE struct PACKED_POST
4039{
4040 tANI_U8 bssid[6]; /* BSSID */
4041 tANI_U8 ssid[32]; /* SSID */
4042 tANI_U8 ch; /* Channel */
4043 tANI_U8 rssi; /* RSSI or Level */
4044 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4045 tANI_U32 timestamp;
4046} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4047
4048typedef PACKED_PRE struct PACKED_POST
4049{
4050 tANI_U32 scanId; /* Scan List ID. */
4051 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4052 tANI_U32 numNetworksInScanList;
4053 /* Variable data ptr: Number of AP in Scan List */
4054 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4055 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4056 tANI_U8 scanList[1];
4057} tHalBatchScanList, *tpHalBatchScanList;
4058
4059typedef PACKED_PRE struct PACKED_POST
4060{
4061 tANI_U32 timestamp;
4062 tANI_U32 numScanLists;
4063 boolean isLastResult;
4064 /* Variable Data ptr: Number of Scan Lists*/
4065 /* following isLastResult is data of type tHalBatchScanList
4066 * of sizeof(tHalBatchScanList) * numScanLists*/
4067 tANI_U8 scanResults[1];
4068} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4069
4070typedef PACKED_PRE struct PACKED_POST
4071{
4072 tHalMsgHeader header;
4073 tHalBatchScanResultIndParam resultIndMsgParam;
4074} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4075
4076#endif
4077
Jeff Johnson295189b2012-06-20 16:38:30 -07004078/*---------------------------------------------------------------------------
4079 * WLAN_HAL_KEEP_ALIVE_REQ
4080 *--------------------------------------------------------------------------*/
4081/* Packet Types. */
4082#define HAL_KEEP_ALIVE_NULL_PKT 1
4083#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4084
4085/* Enable or disable keep alive */
4086#define HAL_KEEP_ALIVE_DISABLE 0
4087#define HAL_KEEP_ALIVE_ENABLE 1
4088
4089/* Keep Alive request. */
4090typedef PACKED_PRE struct PACKED_POST
4091{
4092 tANI_U8 packetType;
4093 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004094 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004095 tHalIpv4Addr destIpv4Addr;
4096 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004097 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004098} tHalKeepAliveReq, *tpHalKeepAliveReq;
4099
4100typedef PACKED_PRE struct PACKED_POST
4101{
4102 tHalMsgHeader header;
4103 tHalKeepAliveReq KeepAliveParams;
4104} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4105
4106/*---------------------------------------------------------------------------
4107 * WLAN_HAL_SET_RSSI_THRESH_REQ
4108 *--------------------------------------------------------------------------*/
4109typedef PACKED_PRE struct PACKED_POST
4110{
4111 tANI_S8 ucRssiThreshold1 : 8;
4112 tANI_S8 ucRssiThreshold2 : 8;
4113 tANI_S8 ucRssiThreshold3 : 8;
4114 tANI_U8 bRssiThres1PosNotify : 1;
4115 tANI_U8 bRssiThres1NegNotify : 1;
4116 tANI_U8 bRssiThres2PosNotify : 1;
4117 tANI_U8 bRssiThres2NegNotify : 1;
4118 tANI_U8 bRssiThres3PosNotify : 1;
4119 tANI_U8 bRssiThres3NegNotify : 1;
4120 tANI_U8 bReserved10 : 2;
4121} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004122
Jeff Johnson295189b2012-06-20 16:38:30 -07004123typedef PACKED_PRE struct PACKED_POST
4124{
4125 tHalMsgHeader header;
4126 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004127} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004128
4129/*---------------------------------------------------------------------------
4130 * WLAN_HAL_ENTER_UAPSD_REQ
4131 *--------------------------------------------------------------------------*/
4132typedef PACKED_PRE struct PACKED_POST
4133{
4134 tANI_U8 bkDeliveryEnabled:1;
4135 tANI_U8 beDeliveryEnabled:1;
4136 tANI_U8 viDeliveryEnabled:1;
4137 tANI_U8 voDeliveryEnabled:1;
4138 tANI_U8 bkTriggerEnabled:1;
4139 tANI_U8 beTriggerEnabled:1;
4140 tANI_U8 viTriggerEnabled:1;
4141 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004142 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004143} tUapsdReqParams, *tpUapsdReqParams;
4144
4145typedef PACKED_PRE struct PACKED_POST
4146{
4147 tHalMsgHeader header;
4148 tUapsdReqParams enterUapsdParams;
4149} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4150
4151/*---------------------------------------------------------------------------
4152 * WLAN_HAL_EXIT_UAPSD_REQ
4153 *--------------------------------------------------------------------------*/
4154typedef PACKED_PRE struct PACKED_POST
4155{
4156 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004157 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004158} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4159
Kumar Anandea78e792013-10-10 23:47:01 -07004160#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4161#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004162/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004163 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4164 *--------------------------------------------------------------------------*/
4165typedef PACKED_PRE struct PACKED_POST
4166{
4167 tANI_U32 selfStaIdx:8;
4168 tANI_U32 ucPtrnId:8; // Pattern ID
4169 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4170 tANI_U32 uPtrnIntervalMs; // In msec
4171 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4172} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4173
4174typedef PACKED_PRE struct PACKED_POST
4175{
4176 tHalMsgHeader header;
4177 tHalAddPeriodicTxPtrn ptrnParams;
4178} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4179
4180/*---------------------------------------------------------------------------
4181 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4182 *--------------------------------------------------------------------------*/
4183typedef PACKED_PRE struct PACKED_POST
4184{
4185 tANI_U32 selfStaIdx:8;
4186 tANI_U32 rsvd:24;
4187 /* Bitmap of pattern IDs that needs to be deleted */
4188 tANI_U32 uPatternIdBitmap;
4189} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4190
4191typedef PACKED_PRE struct PACKED_POST
4192{
4193 tHalMsgHeader header;
4194 tHalDelPeriodicTxPtrn ptrnParams;
4195} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4196
4197/*---------------------------------------------------------------------------
4198 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4199 *--------------------------------------------------------------------------*/
4200typedef PACKED_PRE struct PACKED_POST
4201{
4202 /* Type of Failure indication */
4203 tANI_U32 bssIdx:8;
4204 tANI_U32 selfStaIdx:8;
4205 tANI_U32 rsvd:16;
4206 tANI_U32 status;
4207 tANI_U32 patternIdBitmap;
4208} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4209
4210typedef PACKED_PRE struct PACKED_POST
4211{
4212 tHalMsgHeader header;
4213 tHalPeriodicTxPtrnFwInd fwIndParams;
4214} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4215
4216/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004217 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4218 *--------------------------------------------------------------------------*/
4219#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4220#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4221
4222typedef PACKED_PRE struct PACKED_POST
4223{
4224 tANI_U8 ucPatternId; // Pattern ID
4225 // Pattern byte offset from beginning of the 802.11 packet to start of the
4226 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07004227 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004228 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4229 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4230 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4231 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4232 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4233 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004234 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004235} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4236
4237typedef PACKED_PRE struct PACKED_POST
4238{
4239 tHalMsgHeader header;
4240 tHalWowlAddBcastPtrn ptrnParams;
4241} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004242
Jeff Johnsone7245742012-09-05 17:12:55 -07004243
4244
Jeff Johnson295189b2012-06-20 16:38:30 -07004245/*---------------------------------------------------------------------------
4246 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4247 *--------------------------------------------------------------------------*/
4248typedef PACKED_PRE struct PACKED_POST
4249{
4250 /* Pattern ID of the wakeup pattern to be deleted */
4251 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004252 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004253} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4254
4255typedef PACKED_PRE struct PACKED_POST
4256{
4257 tHalMsgHeader header;
4258 tHalWowlDelBcastPtrn ptrnParams;
4259} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4260
4261/*---------------------------------------------------------------------------
4262 * WLAN_HAL_ENTER_WOWL_REQ
4263 *--------------------------------------------------------------------------*/
4264typedef PACKED_PRE struct PACKED_POST
4265{
4266 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004267 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004268
4269 /* Magic pattern */
4270 tSirMacAddr magicPtrn;
4271
Jeff Johnson32d95a32012-09-10 13:15:23 -07004272 /* Enables/disables packet pattern filtering in firmware.
4273 Enabling this flag enables broadcast pattern matching
4274 in Firmware. If unicast pattern matching is also desired,
4275 ucUcastPatternFilteringEnable flag must be set tot true
4276 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004277 */
4278 tANI_U8 ucPatternFilteringEnable;
4279
Jeff Johnson32d95a32012-09-10 13:15:23 -07004280 /* Enables/disables unicast packet pattern filtering.
4281 This flag specifies whether we want to do pattern match
4282 on unicast packets as well and not just broadcast packets.
4283 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004284 (main controlling flag) is set to false
4285 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004286 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004287
Jeff Johnson32d95a32012-09-10 13:15:23 -07004288 /* This configuration is valid only when magicPktEnable=1.
4289 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004290 * Channel Switch Action Frame.
4291 */
4292 tANI_U8 ucWowChnlSwitchRcv;
4293
Jeff Johnson32d95a32012-09-10 13:15:23 -07004294 /* This configuration is valid only when magicPktEnable=1.
4295 * It requests hardware to wake up when it receives the
4296 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004297 */
4298 tANI_U8 ucWowDeauthRcv;
4299
Jeff Johnson32d95a32012-09-10 13:15:23 -07004300 /* This configuration is valid only when magicPktEnable=1.
4301 * It requests hardware to wake up when it receives the
4302 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004303 */
4304 tANI_U8 ucWowDisassocRcv;
4305
Jeff Johnson32d95a32012-09-10 13:15:23 -07004306 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004307 * It requests hardware to wake up when it has missed
4308 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07004309 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004310 */
4311 tANI_U8 ucWowMaxMissedBeacons;
4312
Jeff Johnson32d95a32012-09-10 13:15:23 -07004313 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004314 * This is a timeout value in units of microsec. It requests
4315 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07004316 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004317 */
4318 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004319
Jeff Johnson295189b2012-06-20 16:38:30 -07004320 /* This configuration directs the WoW packet filtering to look for EAP-ID
4321 * requests embedded in EAPOL frames and use this as a wake source.
4322 */
4323 tANI_U8 ucWoWEAPIDRequestEnable;
4324
4325 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4326 * requests and use this as a wake source.
4327 */
4328 tANI_U8 ucWoWEAPOL4WayEnable;
4329
4330 /* This configuration allows a host wakeup on an network scan offload match.
4331 */
4332 tANI_U8 ucWowNetScanOffloadMatch;
4333
4334 /* This configuration allows a host wakeup on any GTK rekeying error.
4335 */
4336 tANI_U8 ucWowGTKRekeyError;
4337
4338 /* This configuration allows a host wakeup on BSS connection loss.
4339 */
4340 tANI_U8 ucWoWBSSConnLoss;
4341
Jeff Johnsone7245742012-09-05 17:12:55 -07004342 tANI_U8 bssIdx;
4343
Jeff Johnson295189b2012-06-20 16:38:30 -07004344} tHalWowlEnterParams, *tpHalWowlEnterParams;
4345
4346typedef PACKED_PRE struct PACKED_POST
4347{
4348 tHalMsgHeader header;
4349 tHalWowlEnterParams enterWowlParams;
4350} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4351
4352/*---------------------------------------------------------------------------
4353 * WLAN_HAL_EXIT_WOWL_REQ
4354 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004355
Jeff Johnson295189b2012-06-20 16:38:30 -07004356typedef PACKED_PRE struct PACKED_POST
4357{
Jeff Johnsone7245742012-09-05 17:12:55 -07004358 tANI_U8 bssIdx;
4359
4360} tHalWowlExitParams, *tpHalWowlExitParams;
4361
4362typedef PACKED_PRE struct PACKED_POST
4363{
4364 tHalMsgHeader header;
4365 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004366} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4367
4368/*---------------------------------------------------------------------------
4369 * WLAN_HAL_GET_RSSI_REQ
4370 *--------------------------------------------------------------------------*/
4371typedef PACKED_PRE struct PACKED_POST
4372{
4373 tHalMsgHeader header;
4374} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4375
Anand Kumar012623a2013-01-11 17:00:00 -08004376typedef PACKED_PRE struct PACKED_POST
4377{
4378 /* Valid STA Idx for per STA stats request */
4379 tANI_U32 staId;
4380
4381}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4382
4383
4384/*---------------------------------------------------------------------------
4385 * WLAN_HAL_GET_ROAM_RSSI_REQ
4386 *--------------------------------------------------------------------------*/
4387typedef PACKED_PRE struct PACKED_POST
4388{
4389 tHalMsgHeader header;
4390 tHalRoamRssiReqParams roamRssiReqParams;
4391} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4392
4393
Jeff Johnson295189b2012-06-20 16:38:30 -07004394/*---------------------------------------------------------------------------
4395 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4396 *--------------------------------------------------------------------------*/
4397typedef PACKED_PRE struct PACKED_POST {
4398 tANI_U8 staidx; // STA index
4399 tANI_U8 ac; // Access Category
4400 tANI_U8 up; // User Priority
4401 tANI_U32 srvInterval; // Service Interval
4402 tANI_U32 susInterval; // Suspend Interval
4403 tANI_U32 delayInterval; // Delay Interval
4404} tUapsdInfo, tpUapsdInfo;
4405
4406typedef PACKED_PRE struct PACKED_POST
4407{
4408 tHalMsgHeader header;
4409 tUapsdInfo enableUapsdAcParams;
4410} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4411
4412/*---------------------------------------------------------------------------
4413 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4414 *--------------------------------------------------------------------------*/
4415typedef PACKED_PRE struct PACKED_POST {
4416 tANI_U8 setMcstBcstFilterSetting;
4417 tANI_U8 setMcstBcstFilter;
4418} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4419
4420typedef PACKED_PRE struct PACKED_POST
4421{
4422 tHalMsgHeader header;
4423 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4424} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4425
4426/*---------------------------------------------------------------------------
4427 * WLAN_HAL_ENTER_IMPS_RSP
4428 *--------------------------------------------------------------------------*/
4429typedef PACKED_PRE struct PACKED_POST
4430{
4431 /* success or failure */
4432 tANI_U32 status;
4433} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4434
4435typedef PACKED_PRE struct PACKED_POST
4436{
4437 tHalMsgHeader header;
4438 tHalEnterImpsRspParams enterImpsRspParams;
4439} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4440
4441/*---------------------------------------------------------------------------
4442 * WLAN_HAL_EXIT_IMPS_RSP
4443 *--------------------------------------------------------------------------*/
4444typedef PACKED_PRE struct PACKED_POST
4445{
4446 /* success or failure */
4447 tANI_U32 status;
4448} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4449
4450typedef PACKED_PRE struct PACKED_POST
4451{
4452 tHalMsgHeader header;
4453 tHalExitImpsRspParams exitImpsRspParams;
4454} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4455
4456/*---------------------------------------------------------------------------
4457 * WLAN_HAL_ENTER_BMPS_RSP
4458 *--------------------------------------------------------------------------*/
4459typedef PACKED_PRE struct PACKED_POST
4460{
4461 /* success or failure */
4462 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004463 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004464} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4465
4466typedef PACKED_PRE struct PACKED_POST
4467{
4468 tHalMsgHeader header;
4469 tHalEnterBmpsRspParams enterBmpsRspParams;
4470} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4471
4472/*---------------------------------------------------------------------------
4473 * WLAN_HAL_EXIT_BMPS_RSP
4474 *--------------------------------------------------------------------------*/
4475typedef PACKED_PRE struct PACKED_POST
4476{
4477 /* success or failure */
4478 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004479 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004480} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4481
4482typedef PACKED_PRE struct PACKED_POST
4483{
4484 tHalMsgHeader header;
4485 tHalExitBmpsRspParams exitBmpsRspParams;
4486} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4487
4488/*---------------------------------------------------------------------------
4489 * WLAN_HAL_ENTER_UAPSD_RSP
4490 *--------------------------------------------------------------------------*/
4491typedef PACKED_PRE struct PACKED_POST
4492{
4493 /* success or failure */
4494 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004495 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004496}tUapsdRspParams, *tpUapsdRspParams;
4497
4498typedef PACKED_PRE struct PACKED_POST
4499{
4500 tHalMsgHeader header;
4501 tUapsdRspParams enterUapsdRspParams;
4502} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4503
4504/*---------------------------------------------------------------------------
4505 * WLAN_HAL_EXIT_UAPSD_RSP
4506 *--------------------------------------------------------------------------*/
4507typedef PACKED_PRE struct PACKED_POST
4508{
4509 /* success or failure */
4510 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004511 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004512} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4513
4514typedef PACKED_PRE struct PACKED_POST
4515{
4516 tHalMsgHeader header;
4517 tHalExitUapsdRspParams exitUapsdRspParams;
4518} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4519
4520/*---------------------------------------------------------------------------
4521 * WLAN_HAL_RSSI_NOTIFICATION_IND
4522 *--------------------------------------------------------------------------*/
4523typedef PACKED_PRE struct PACKED_POST
4524{
4525 tANI_U32 bRssiThres1PosCross : 1;
4526 tANI_U32 bRssiThres1NegCross : 1;
4527 tANI_U32 bRssiThres2PosCross : 1;
4528 tANI_U32 bRssiThres2NegCross : 1;
4529 tANI_U32 bRssiThres3PosCross : 1;
4530 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004531 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004532 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07004533 tANI_U32 isBTCoexCompromise : 1;
4534 tANI_U32 bReserved : 9;
Jeff Johnson295189b2012-06-20 16:38:30 -07004535} tHalRSSINotification, *tpHalRSSINotification;
4536
4537typedef PACKED_PRE struct PACKED_POST
4538{
4539 tHalMsgHeader header;
4540 tHalRSSINotification rssiNotificationParams;
4541} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4542
4543/*---------------------------------------------------------------------------
4544 * WLAN_HAL_GET_RSSI_RSP
4545 *--------------------------------------------------------------------------*/
4546typedef PACKED_PRE struct PACKED_POST
4547{
4548 /* success or failure */
4549 tANI_U32 status;
4550 tANI_S8 rssi;
4551} tHalGetRssiParams, *tpHalGetRspParams;
4552
4553typedef PACKED_PRE struct PACKED_POST
4554{
4555 tHalMsgHeader header;
4556 tHalGetRssiParams rssiRspParams;
4557} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4558
4559/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004560 * WLAN_HAL_GET_ROAM_RSSI_RSP
4561 *--------------------------------------------------------------------------*/
4562typedef PACKED_PRE struct PACKED_POST
4563{
4564 /* success or failure */
4565 tANI_U32 status;
4566
4567 tANI_U8 staId;
4568 tANI_S8 rssi;
4569} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4570
4571typedef PACKED_PRE struct PACKED_POST
4572{
4573 tHalMsgHeader header;
4574 tHalGetRoamRssiParams roamRssiRspParams;
4575} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4576
4577/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004578 * WLAN_HAL_ENTER_WOWL_RSP
4579 *--------------------------------------------------------------------------*/
4580typedef PACKED_PRE struct PACKED_POST
4581{
4582 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004583 tANI_U32 status;
4584 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004585} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4586
4587typedef PACKED_PRE struct PACKED_POST
4588{
4589 tHalMsgHeader header;
4590 tHalEnterWowlRspParams enterWowlRspParams;
4591} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4592
4593/*---------------------------------------------------------------------------
4594 * WLAN_HAL_EXIT_WOWL_RSP
4595 *--------------------------------------------------------------------------*/
4596typedef PACKED_PRE struct PACKED_POST
4597{
4598 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004599 tANI_U32 status;
4600 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004601} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4602
4603typedef PACKED_PRE struct PACKED_POST
4604{
4605 tHalMsgHeader header;
4606 tHalExitWowlRspParams exitWowlRspParams;
4607} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4608
4609/*---------------------------------------------------------------------------
4610 * WLAN_HAL_ADD_BCN_FILTER_RSP
4611 *--------------------------------------------------------------------------*/
4612typedef PACKED_PRE struct PACKED_POST
4613{
4614 /* success or failure */
4615 tANI_U32 status;
4616} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4617
4618typedef PACKED_PRE struct PACKED_POST
4619{
4620 tHalMsgHeader header;
4621 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4622} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4623
4624/*---------------------------------------------------------------------------
4625 * WLAN_HAL_REM_BCN_FILTER_RSP
4626 *--------------------------------------------------------------------------*/
4627typedef PACKED_PRE struct PACKED_POST
4628{
4629 /* success or failure */
4630 tANI_U32 status;
4631} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4632
4633typedef PACKED_PRE struct PACKED_POST
4634{
4635 tHalMsgHeader header;
4636 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4637} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4638
4639/*---------------------------------------------------------------------------
4640 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4641 *--------------------------------------------------------------------------*/
4642typedef PACKED_PRE struct PACKED_POST
4643{
4644 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004645 tANI_U32 status;
4646 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004647} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4648
4649typedef PACKED_PRE struct PACKED_POST
4650{
4651 tHalMsgHeader header;
4652 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4653} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4654
4655/*---------------------------------------------------------------------------
4656 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4657 *--------------------------------------------------------------------------*/
4658typedef PACKED_PRE struct PACKED_POST
4659{
4660 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004661 tANI_U32 status;
4662 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004663} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4664
4665typedef PACKED_PRE struct PACKED_POST
4666{
4667 tHalMsgHeader header;
4668 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4669} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4670
4671/*---------------------------------------------------------------------------
4672 * WLAN_HAL_HOST_OFFLOAD_RSP
4673 *--------------------------------------------------------------------------*/
4674typedef PACKED_PRE struct PACKED_POST
4675{
4676 /* success or failure */
4677 tANI_U32 status;
4678} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4679
4680typedef PACKED_PRE struct PACKED_POST
4681{
4682 tHalMsgHeader header;
4683 tHalHostOffloadRspParams hostOffloadRspParams;
4684} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4685
4686/*---------------------------------------------------------------------------
4687 * WLAN_HAL_KEEP_ALIVE_RSP
4688 *--------------------------------------------------------------------------*/
4689typedef PACKED_PRE struct PACKED_POST
4690{
4691 /* success or failure */
4692 tANI_U32 status;
4693} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4694
4695typedef PACKED_PRE struct PACKED_POST
4696{
4697 tHalMsgHeader header;
4698 tHalKeepAliveRspParams keepAliveRspParams;
4699} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4700
4701/*---------------------------------------------------------------------------
4702 * WLAN_HAL_SET_RSSI_THRESH_RSP
4703 *--------------------------------------------------------------------------*/
4704typedef PACKED_PRE struct PACKED_POST
4705{
4706 /* success or failure */
4707 tANI_U32 status;
4708} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4709
4710typedef PACKED_PRE struct PACKED_POST
4711{
4712 tHalMsgHeader header;
4713 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4714} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4715
4716/*---------------------------------------------------------------------------
4717 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4718 *--------------------------------------------------------------------------*/
4719typedef PACKED_PRE struct PACKED_POST
4720{
4721 /* success or failure */
4722 tANI_U32 status;
4723} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4724
4725typedef PACKED_PRE struct PACKED_POST
4726{
4727 tHalMsgHeader header;
4728 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4729} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4730
4731/*---------------------------------------------------------------------------
4732 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4733 *--------------------------------------------------------------------------*/
4734typedef PACKED_PRE struct PACKED_POST
4735{
4736 /* success or failure */
4737 tANI_U32 status;
4738} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4739
4740typedef PACKED_PRE struct PACKED_POST
4741{
4742 tHalMsgHeader header;
4743 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4744} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4745
4746/*---------------------------------------------------------------------------
4747 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4748 *--------------------------------------------------------------------------*/
4749
4750typedef PACKED_PRE struct PACKED_POST
4751{
4752 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4753 //the request has power constraints, this should be applied only to that session
4754 tSirMacAddr selfStaMacAddr;
4755 //In request,
4756 //power == MaxTx power to be used.
4757 tPowerdBm power;
4758
4759}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4760
4761
4762typedef PACKED_PRE struct PACKED_POST
4763{
4764 tHalMsgHeader header;
4765 tSetMaxTxPwrParams setMaxTxPwrParams;
4766}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4767
4768/*---------------------------------------------------------------------------
4769*WLAN_HAL_SET_MAX_TX_POWER_RSP
4770*--------------------------------------------------------------------------*/
4771
4772typedef PACKED_PRE struct PACKED_POST
4773{
4774 //power == tx power used for management frames.
4775 tPowerdBm power;
4776
4777 /* success or failure */
4778 tANI_U32 status;
4779}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4780
4781typedef PACKED_PRE struct PACKED_POST
4782{
4783 tHalMsgHeader header;
4784 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4785}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4786
Kumar Anandea78e792013-10-10 23:47:01 -07004787
Jeff Johnson295189b2012-06-20 16:38:30 -07004788/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07004789 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
4790 *--------------------------------------------------------------------------*/
4791
4792/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
4793typedef enum
4794{
4795 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
4796 // For 2.4GHz or 5GHz bands
4797 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
4798 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
4799 // End of valid enums
4800 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
4801}tHalSetMaxTxPwrBandInfo;
4802
4803typedef PACKED_PRE struct PACKED_POST
4804{
4805 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07004806 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07004807}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
4808
Kumar Anandea78e792013-10-10 23:47:01 -07004809
Arif Hussain36fda162013-08-30 14:46:57 -07004810typedef PACKED_PRE struct PACKED_POST
4811{
4812 tHalMsgHeader header;
4813 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
4814}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
4815
4816/*---------------------------------------------------------------------------
4817*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
4818*--------------------------------------------------------------------------*/
4819
4820typedef PACKED_PRE struct PACKED_POST
4821{
4822 //power == tx power used for management frames.
4823 tPowerdBm power;
4824
4825 /* success or failure */
4826 tANI_U32 status;
4827}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
4828
4829typedef PACKED_PRE struct PACKED_POST
4830{
4831 tHalMsgHeader header;
4832 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
4833}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
4834
4835/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004836 *WLAN_HAL_SET_TX_POWER_REQ
4837 *--------------------------------------------------------------------------*/
4838
4839typedef PACKED_PRE struct PACKED_POST
4840{
4841 /* TX Power in milli watts */
4842 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004843 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004844}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4845
4846
4847typedef PACKED_PRE struct PACKED_POST
4848{
4849 tHalMsgHeader header;
4850 tSetTxPwrReqParams setTxPwrReqParams;
4851}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4852
4853/*---------------------------------------------------------------------------
4854*WLAN_HAL_SET_TX_POWER_RSP
4855*--------------------------------------------------------------------------*/
4856
4857typedef PACKED_PRE struct PACKED_POST
4858{
4859 /* success or failure */
4860 tANI_U32 status;
4861}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4862
4863typedef PACKED_PRE struct PACKED_POST
4864{
4865 tHalMsgHeader header;
4866 tSetTxPwrRspParams setTxPwrRspParams;
4867}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4868
4869/*---------------------------------------------------------------------------
4870 *WLAN_HAL_GET_TX_POWER_REQ
4871 *--------------------------------------------------------------------------*/
4872
4873typedef PACKED_PRE struct PACKED_POST
4874{
4875 tANI_U8 staId;
4876}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4877
4878typedef PACKED_PRE struct PACKED_POST
4879{
4880 tHalMsgHeader header;
4881 tGetTxPwrReqParams getTxPwrReqParams;
4882}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4883
4884/*---------------------------------------------------------------------------
4885*WLAN_HAL_GET_TX_POWER_RSP
4886*--------------------------------------------------------------------------*/
4887
4888typedef PACKED_PRE struct PACKED_POST
4889{
4890 /* success or failure */
4891 tANI_U32 status;
4892
4893 /* TX Power in milli watts */
4894 tANI_U32 txPower;
4895}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4896
4897typedef PACKED_PRE struct PACKED_POST
4898{
4899 tHalMsgHeader header;
4900 tGetTxPwrRspParams getTxPwrRspParams;
4901}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4902
4903#ifdef WLAN_FEATURE_P2P
4904/*---------------------------------------------------------------------------
4905 *WLAN_HAL_SET_P2P_GONOA_REQ
4906 *--------------------------------------------------------------------------*/
4907
4908typedef PACKED_PRE struct PACKED_POST
4909{
4910 tANI_U8 opp_ps;
4911 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004912 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004913 tANI_U32 duration;
4914 tANI_U32 interval;
4915 tANI_U32 single_noa_duration;
4916 tANI_U8 psSelection;
4917}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4918
4919
4920typedef PACKED_PRE struct PACKED_POST
4921{
4922 tHalMsgHeader header;
4923 tSetP2PGONOAParams setP2PGONOAParams;
4924}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4925
4926/*---------------------------------------------------------------------------
4927*WLAN_HAL_SET_P2P_GONOA_RSP
4928*--------------------------------------------------------------------------*/
4929
4930typedef PACKED_PRE struct PACKED_POST
4931{
4932 /* success or failure */
4933 tANI_U32 status;
4934}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4935
4936typedef PACKED_PRE struct PACKED_POST
4937{
4938 tHalMsgHeader header;
4939 tSetP2PGONOARspParams setP2PGONOARspParams;
4940}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4941#endif
4942
4943/*---------------------------------------------------------------------------
4944 *WLAN_HAL_ADD_SELF_STA_REQ
4945 *--------------------------------------------------------------------------*/
4946
4947typedef PACKED_PRE struct PACKED_POST
4948{
4949 tSirMacAddr selfMacAddr;
4950 tANI_U32 status;
4951}tAddStaSelfParams, *tpAddStaSelfParams;
4952
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004953typedef PACKED_PRE struct PACKED_POST
4954{
4955 tSirMacAddr selfMacAddr;
4956 tANI_U32 status;
4957 tHalIfacePersona iface_persona;
4958}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004959
4960typedef PACKED_PRE struct PACKED_POST
4961{
4962 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004963 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07004964 tAddStaSelfParams addStaSelfParams;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004965 tAddStaSelfParams_V1 addStaSelfParams_V1;
4966 }uAddStaSelfParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004967}tAddStaSelfReq, *tpAddStaSelfReq;
4968
4969/*---------------------------------------------------------------------------
4970*WLAN_HAL_ADD_SELF_STA_RSP
4971*--------------------------------------------------------------------------*/
4972
4973typedef PACKED_PRE struct PACKED_POST
4974{
4975 /* success or failure */
4976 tANI_U32 status;
4977
4978 /*Self STA Index */
4979 tANI_U8 selfStaIdx;
4980
4981 /* DPU Index (IGTK, PTK, GTK all same) */
4982 tANI_U8 dpuIdx;
4983
4984 /* DPU Signature */
4985 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004986
Jeff Johnson295189b2012-06-20 16:38:30 -07004987}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4988
4989typedef PACKED_PRE struct PACKED_POST
4990{
4991 tHalMsgHeader header;
4992 tAddStaSelfRspParams addStaSelfRspParams;
4993}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4994
4995
4996/*---------------------------------------------------------------------------
4997 WLAN_HAL_DEL_STA_SELF_REQ
4998---------------------------------------------------------------------------*/
4999
5000typedef PACKED_PRE struct PACKED_POST
5001{
5002 tSirMacAddr selfMacAddr;
5003
5004}tDelStaSelfParams, *tpDelStaSelfParams;
5005
5006typedef PACKED_PRE struct PACKED_POST
5007{
5008 tHalMsgHeader header;
5009 tDelStaSelfParams delStaSelfParams;
5010} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5011
5012
5013/*---------------------------------------------------------------------------
5014 WLAN_HAL_DEL_STA_SELF_RSP
5015---------------------------------------------------------------------------*/
5016
5017typedef PACKED_PRE struct PACKED_POST
5018{
5019 /*success or failure */
5020 tANI_U32 status;
5021
5022 tSirMacAddr selfMacAddr;
5023}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5024
5025typedef PACKED_PRE struct PACKED_POST
5026{
5027 tHalMsgHeader header;
5028 tDelStaSelfRspParams delStaSelfRspParams;
5029} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5030
5031
5032#ifdef WLAN_FEATURE_VOWIFI_11R
5033
5034/*---------------------------------------------------------------------------
5035 *WLAN_HAL_AGGR_ADD_TS_REQ
5036 *--------------------------------------------------------------------------*/
5037
5038typedef PACKED_PRE struct PACKED_POST
5039{
5040 /* Station Index */
5041 tANI_U16 staIdx;
5042
5043 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5044 /* This will carry the bitmap with the bit positions representing different AC.s*/
5045 tANI_U16 tspecIdx;
5046
5047 /* Tspec info per AC To program TPE with required parameters */
5048 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5049
5050 /* U-APSD Flags: 1b per AC. Encoded as follows:
5051 b7 b6 b5 b4 b3 b2 b1 b0 =
5052 X X X X BE BK VI VO */
5053 tANI_U8 uAPSD;
5054
5055 /* These parameters are for all the access categories */
5056 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5057 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5058 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5059
5060}tAggrAddTsParams, *tpAggrAddTsParams;
5061
5062
5063typedef PACKED_PRE struct PACKED_POST
5064{
5065 tHalMsgHeader header;
5066 tAggrAddTsParams aggrAddTsParam;
5067}tAggrAddTsReq, *tpAggrAddTsReq;
5068
5069/*---------------------------------------------------------------------------
5070*WLAN_HAL_AGGR_ADD_TS_RSP
5071*--------------------------------------------------------------------------*/
5072
5073typedef PACKED_PRE struct PACKED_POST
5074{
5075 /* success or failure */
5076 tANI_U32 status0;
5077 /* FIXME PRIMA for future use for 11R */
5078 tANI_U32 status1;
5079}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5080
5081typedef PACKED_PRE struct PACKED_POST
5082{
5083 tHalMsgHeader header;
5084 tAggrAddTsRspParams aggrAddTsRspParam;
5085}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5086
5087#endif
5088
5089/*---------------------------------------------------------------------------
5090 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5091 *--------------------------------------------------------------------------*/
5092typedef PACKED_PRE struct PACKED_POST
5093{
5094 tANI_U8 isAppsCpuAwake;
5095} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5096
5097typedef PACKED_PRE struct PACKED_POST
5098{
5099 tHalMsgHeader header;
5100 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5101} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5102
5103/*---------------------------------------------------------------------------
5104 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5105 *--------------------------------------------------------------------------*/
5106typedef PACKED_PRE struct PACKED_POST
5107{
5108 /* success or failure */
5109 tANI_U32 status;
5110} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5111
5112typedef PACKED_PRE struct PACKED_POST
5113{
5114 tHalMsgHeader header;
5115 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5116} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5117/*---------------------------------------------------------------------------
5118 * WLAN_HAL_DUMP_COMMAND_REQ
5119 *--------------------------------------------------------------------------*/
5120
5121typedef PACKED_PRE struct PACKED_POST
5122{
5123 tANI_U32 argument1;
5124 tANI_U32 argument2;
5125 tANI_U32 argument3;
5126 tANI_U32 argument4;
5127 tANI_U32 argument5;
5128
5129}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5130
5131typedef PACKED_PRE struct PACKED_POST
5132{
5133 tHalMsgHeader header;
5134 tHalDumpCmdReqParams dumpCmdReqParams;
5135} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5136
5137/*---------------------------------------------------------------------------
5138 * WLAN_HAL_DUMP_COMMAND_RSP
5139 *--------------------------------------------------------------------------*/
5140
5141typedef PACKED_PRE struct PACKED_POST
5142{
5143 /* success or failure */
5144 tANI_U32 status;
5145 /*Length of the responce message*/
5146 tANI_U32 rspLength;
5147 /*FiXME: Currently considering the the responce will be less than 100bytes */
5148 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07005149
Jeff Johnson295189b2012-06-20 16:38:30 -07005150} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5151
5152typedef PACKED_PRE struct PACKED_POST
5153{
5154 tHalMsgHeader header;
5155 tHalDumpCmdRspParams dumpCmdRspParams;
5156} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5157
5158/*---------------------------------------------------------------------------
5159 *WLAN_HAL_COEX_IND
5160 *-------------------------------------------------------------------------*/
5161#define WLAN_COEX_IND_DATA_SIZE (4)
5162#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5163#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005164#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5165#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005166#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5167#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07005168
5169typedef PACKED_PRE struct PACKED_POST
5170{
5171 /*Coex Indication Type*/
5172 tANI_U32 coexIndType;
5173
5174 /*Coex Indication Data*/
5175 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5176}tCoexIndParams,*tpCoexIndParams;
5177
5178typedef PACKED_PRE struct PACKED_POST
5179{
5180 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005181 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005182}tCoexIndMsg, *tpCoexIndMsg;
5183
5184/*---------------------------------------------------------------------------
5185 *WLAN_HAL_OTA_TX_COMPL_IND
5186 *-------------------------------------------------------------------------*/
5187
5188typedef PACKED_PRE struct PACKED_POST
5189{
5190 /*Tx Complete Indication Success or Failure*/
5191 tANI_U32 status;
5192}tTxComplParams,*tpTxComplParams;
5193
5194typedef PACKED_PRE struct PACKED_POST
5195{
5196 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005197 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005198}tTxComplIndMsg, *tpTxComplIndMsg;
5199
5200/*---------------------------------------------------------------------------
5201 * WLAN_HAL_HOST_SUSPEND_IND
5202 *-------------------------------------------------------------------------*/
5203
5204typedef PACKED_PRE struct PACKED_POST
5205{
5206 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005207 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005208}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5209
5210typedef PACKED_PRE struct PACKED_POST
5211{
5212 tHalMsgHeader header;
5213 tHalWlanHostSuspendIndParam suspendIndParams;
5214}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5215
5216/*---------------------------------------------------------------------------
5217 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5218 *-------------------------------------------------------------------------*/
5219
5220typedef PACKED_PRE struct PACKED_POST
5221{
5222 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005223 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005224}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5225
5226typedef PACKED_PRE struct PACKED_POST
5227{
5228 tHalMsgHeader header;
5229 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5230}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5231
5232#ifdef WLAN_FEATURE_P2P
5233/*---------------------------------------------------------------------------
5234 *WLAN_HAL_NOA_ATTR_IND
5235 *-------------------------------------------------------------------------*/
5236
5237typedef PACKED_PRE struct PACKED_POST
5238{
5239 tANI_U8 index ;
5240 tANI_U8 oppPsFlag ;
5241 tANI_U16 ctWin ;
5242
5243 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005244 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005245 tANI_U32 uNoa1Duration;
5246 tANI_U32 uNoa1Interval;
5247 tANI_U32 uNoa1StartTime;
5248
5249 tANI_U16 uNoa2IntervalCnt;
5250 tANI_U16 rsvd2;
5251 tANI_U32 uNoa2Duration;
5252 tANI_U32 uNoa2Interval;
5253 tANI_U32 uNoa2StartTime;
5254
5255 tANI_U32 status;
5256}tNoaAttrIndParams, *tpNoaAttrIndParams;
5257
5258typedef PACKED_PRE struct PACKED_POST
5259{
5260 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005261 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005262}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005263
5264/*---------------------------------------------------------------------------
5265 *WLAN_HAL_NOA_START_IND
5266 *-------------------------------------------------------------------------*/
5267
5268typedef PACKED_PRE struct PACKED_POST
5269{
5270 tANI_U32 status;
5271 tANI_U32 bssIdx;
5272}tNoaStartIndParams, *tpNoaStartIndParams;
5273
5274typedef PACKED_PRE struct PACKED_POST
5275{
5276 tHalMsgHeader header;
5277 tNoaStartIndParams noaStartIndParams;
5278}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005279#endif
5280
5281/*---------------------------------------------------------------------------
5282 * WLAN_HAL_HOST_RESUME_REQ
5283 *-------------------------------------------------------------------------*/
5284
5285typedef PACKED_PRE struct PACKED_POST
5286{
5287 tANI_U8 configuredMcstBcstFilterSetting;
5288}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5289
5290typedef PACKED_PRE struct PACKED_POST
5291{
5292 tHalMsgHeader header;
5293 tHalWlanHostResumeReqParam resumeReqParams;
5294}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5295
5296/*---------------------------------------------------------------------------
5297 * WLAN_HAL_HOST_RESUME_RSP
5298 *--------------------------------------------------------------------------*/
5299typedef PACKED_PRE struct PACKED_POST
5300{
5301 /* success or failure */
5302 tANI_U32 status;
5303} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5304
5305typedef PACKED_PRE struct PACKED_POST
5306{
5307 tHalMsgHeader header;
5308 tHalHostResumeRspParams hostResumeRspParams;
5309} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5310
Anand Kumar012623a2013-01-11 17:00:00 -08005311typedef PACKED_PRE struct PACKED_POST
5312{
5313 tANI_U16 staIdx;
5314 // Peer MAC Address, whose BA session has timed out
5315 tSirMacAddr peerMacAddr;
5316 // TID for which a BA session timeout is being triggered
5317 tANI_U8 baTID;
5318 // DELBA direction
5319 // 1 - Originator
5320 // 0 - Recipient
5321 tANI_U8 baDirection;
5322 tANI_U32 reasonCode;
5323 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5324} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5325
5326typedef PACKED_PRE struct PACKED_POST
5327{
5328 tHalMsgHeader header;
5329 tHalWlanDelBaIndMsg hostdelBaParam;
5330} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5331
Jeff Johnson295189b2012-06-20 16:38:30 -07005332/*---------------------------------------------------------------------------
5333 *PNO Messages
5334 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005335/* Max number of channels that a network can be found on*/
5336/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5337 * be changed at same time
5338 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005339#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005340
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305341/*Max number of channels that a network can be found on*/
5342#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5343
Jeff Johnson295189b2012-06-20 16:38:30 -07005344/*Maximum numbers of networks supported by PNO*/
5345#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5346
5347/*The number of scan time intervals that can be programmed into PNO*/
5348#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5349
5350/*Maximum size of the probe template*/
5351#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5352
Jeff Johnson32d95a32012-09-10 13:15:23 -07005353/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005354 Immediate - scanning will start immediately and PNO procedure will
5355 be repeated based on timer
5356 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005357 Resume - scanning will start on system resume
5358 Delay - start the scan timer to trigger PNO scan
5359 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005360typedef enum
5361{
5362 ePNO_MODE_IMMEDIATE,
5363 ePNO_MODE_ON_SUSPEND,
5364 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305365 ePNO_MODE_DELAY,
5366 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005367 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5368} ePNOMode;
5369
5370/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005371typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005372{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005373 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005374 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005375
Jeff Johnson295189b2012-06-20 16:38:30 -07005376 // Upper layer authentication types
5377 eAUTH_TYPE_WPA = 2,
5378 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005379
Jeff Johnson295189b2012-06-20 16:38:30 -07005380 eAUTH_TYPE_RSN = 4,
5381 eAUTH_TYPE_RSN_PSK = 5,
5382 eAUTH_TYPE_FT_RSN = 6,
5383 eAUTH_TYPE_FT_RSN_PSK = 7,
5384 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5385 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005386 eAUTH_TYPE_CCKM_WPA = 10,
5387 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005388
Jeff Johnson295189b2012-06-20 16:38:30 -07005389 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5390
5391}tAuthType;
5392
5393/* Encryption type */
5394typedef enum eEdType
5395{
5396 eED_ANY = 0,
5397 eED_NONE = 1,
5398 eED_WEP = 2,
5399 eED_TKIP = 3,
5400 eED_CCMP = 4,
5401 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005402
Jeff Johnson295189b2012-06-20 16:38:30 -07005403 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5404} tEdType;
5405
5406/* SSID broadcast type */
5407typedef enum eSSIDBcastType
5408{
5409 eBCAST_UNKNOWN = 0,
5410 eBCAST_NORMAL = 1,
5411 eBCAST_HIDDEN = 2,
5412
5413 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5414} tSSIDBcastType;
5415
Jeff Johnson32d95a32012-09-10 13:15:23 -07005416/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005417 The network description for which PNO will have to look for
5418*/
5419typedef PACKED_PRE struct PACKED_POST
5420{
5421 /*SSID of the BSS*/
5422 tSirMacSSid ssId;
5423
5424 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005425 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005426
5427 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005428 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005429
Jeff Johnson32d95a32012-09-10 13:15:23 -07005430 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005431 0 - if all channels */
5432 tANI_U8 ucChannelCount;
5433 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5434
5435 /*Indicates the RSSI threshold for the network to be considered*/
5436 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005437}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005438
5439typedef PACKED_PRE struct PACKED_POST
5440{
5441 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005442 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005443
Jeff Johnson32d95a32012-09-10 13:15:23 -07005444 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005445 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005446 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005447
Jeff Johnson32d95a32012-09-10 13:15:23 -07005448 /*e.g: 2 3
5449 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005450 - it will wait 2s between consecutive scans for 3 times
5451 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005452}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005453
Jeff Johnson32d95a32012-09-10 13:15:23 -07005454/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005455 The network parameters to be sent to the PNO algorithm
5456*/
5457typedef PACKED_PRE struct PACKED_POST
5458{
5459 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005460 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005461
Jeff Johnson32d95a32012-09-10 13:15:23 -07005462 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005463 two consecutive scan procedures
5464 If the desired is for a uniform timer that fires always at the exact same
5465 interval - one single value is to be set
5466 If there is a desire for a more complex - telescopic like timer multiple
5467 values can be set - once PNO reaches the end of the array it will
5468 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005469 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005470
5471}tScanTimersType;
5472
5473typedef PACKED_PRE struct PACKED_POST {
5474
5475 /*Enable PNO*/
5476 tANI_U32 enable;
5477
5478 /*Immediate, On Suspend, On Resume*/
5479 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005480
Jeff Johnson295189b2012-06-20 16:38:30 -07005481 /*Number of networks sent for PNO*/
5482 tANI_U32 ucNetworksCount;
5483
5484 /*The networks that PNO needs to look for*/
5485 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5486
5487 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005488 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005489
5490 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005491 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005492 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5493
5494 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005495 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005496 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5497
5498} tPrefNetwListParams, * tpPrefNetwListParams;
5499
5500/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005501 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005502*/
5503typedef PACKED_PRE struct PACKED_POST
5504{
5505 tHalMsgHeader header;
5506 tPrefNetwListParams prefNetwListParams;
5507} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5508
5509
Jeff Johnson32d95a32012-09-10 13:15:23 -07005510/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005511 The network description for which PNO will have to look for
5512*/
5513typedef PACKED_PRE struct PACKED_POST
5514{
5515 /*SSID of the BSS*/
5516 tSirMacSSid ssId;
5517
5518 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005519 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005520
5521 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005522 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005523
5524 /*SSID broadcast type, normal, hidden or unknown*/
5525 tSSIDBcastType bcastNetworkType;
5526
Jeff Johnson32d95a32012-09-10 13:15:23 -07005527 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005528 0 - if all channels */
5529 tANI_U8 ucChannelCount;
5530 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5531
5532 /*Indicates the RSSI threshold for the network to be considered*/
5533 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005534}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005535
5536typedef PACKED_PRE struct PACKED_POST {
5537
5538 /*Enable PNO*/
5539 tANI_U32 enable;
5540
5541 /*Immediate, On Suspend, On Resume*/
5542 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005543
Jeff Johnson295189b2012-06-20 16:38:30 -07005544 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005545 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005546
5547 /*The networks that PNO needs to look for*/
5548 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5549
5550 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005551 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005552
5553 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005554 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005555 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5556
5557 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005558 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005559 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5560
5561} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5562
5563/*
5564 Preferred network list request new
5565*/
5566typedef PACKED_PRE struct PACKED_POST
5567{
5568 tHalMsgHeader header;
5569 tPrefNetwListParamsNew prefNetwListParams;
5570} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5571
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005572#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5573typedef PACKED_PRE struct PACKED_POST
5574{
5575 tSirMacSSid ssId;
5576 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5577 tANI_U32 authentication;
5578 tEdType encryption;
5579 tEdType mcencryption;
5580 tANI_U8 ChannelCount;
5581 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5582}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005583
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005584typedef PACKED_PRE struct PACKED_POST
5585{
5586 tANI_U8 mdiePresent;
5587 tANI_U16 mobilityDomain;
5588}tMobilityDomainInfo;
5589
5590typedef PACKED_PRE struct PACKED_POST {
5591 eAniBoolean RoamScanOffloadEnabled;
5592 tANI_S8 LookupThreshold;
5593 tANI_U8 RoamRssiDiff;
5594 tANI_U8 ChannelCacheType;
5595 tANI_U8 Command;
5596 tANI_U8 StartScanReason;
5597 tANI_U16 NeighborScanTimerPeriod;
5598 tANI_U16 NeighborRoamScanRefreshPeriod;
5599 tANI_U16 NeighborScanChannelMinTime;
5600 tANI_U16 NeighborScanChannelMaxTime;
5601 tANI_U16 EmptyRefreshScanPeriod;
5602 tANI_U8 ValidChannelCount;
5603 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5604 eAniBoolean IsCCXEnabled;
5605
5606 tANI_U16 us24GProbeSize;
5607 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5608 tANI_U16 us5GProbeSize;
5609 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5610 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005611 tANI_U8 nProbes;
5612 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08005613 eAniBoolean MAWCEnabled;
Varun Reddy Yeturu4b263b32014-01-09 15:21:31 -08005614 tANI_S8 RxSensitivityThreshold;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005615 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5616 tRoamNetworkType ConnectedNetwork;
5617 tMobilityDomainInfo MDID;
5618} tRoamCandidateListParams, * tpRoamCandidateListParams;
5619
5620typedef PACKED_PRE struct PACKED_POST
5621{
Kumar Anandea78e792013-10-10 23:47:01 -07005622 tHalMsgHeader header;
5623 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005624} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5625
5626typedef PACKED_PRE struct PACKED_POST
5627{
Kumar Anandea78e792013-10-10 23:47:01 -07005628 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005629
Kumar Anandea78e792013-10-10 23:47:01 -07005630 /* status of the request - just to indicate that PNO has acknowledged
5631 * the request and will start scanning */
5632 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005633} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5634#endif
Kumar Anandea78e792013-10-10 23:47:01 -07005635
5636/*
5637 Preferred network list response
5638*/
5639typedef PACKED_PRE struct PACKED_POST
5640{
5641 tHalMsgHeader header;
5642
5643 /* status of the request - just to indicate that PNO has acknowledged
5644 * the request and will start scanning*/
5645 tANI_U32 status;
5646} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5647
5648/*
5649 Preferred network indication parameters
5650*/
5651typedef PACKED_PRE struct PACKED_POST {
5652
5653 /*Network that was found with the highest RSSI*/
5654 tSirMacSSid ssId;
5655
5656 /*Indicates the RSSI */
5657 tANI_U8 rssi;
5658
5659 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
5660 tANI_U16 frameLength;
5661
5662} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5663
5664/*
5665 Preferred network found indication
5666*/
5667typedef PACKED_PRE struct PACKED_POST {
5668
5669 tHalMsgHeader header;
5670 tPrefNetwFoundParams prefNetwFoundParams;
5671} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5672
5673
5674typedef PACKED_PRE struct PACKED_POST {
5675
5676 /*RSSI Threshold*/
5677 tANI_U8 ucRssiThreshold;
5678
5679} tRssiFilterParams, * tpRssiFilterParams;
5680
Jeff Johnson295189b2012-06-20 16:38:30 -07005681/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005682 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005683*/
5684typedef PACKED_PRE struct PACKED_POST
5685{
5686 tHalMsgHeader header;
5687 tRssiFilterParams prefRSSIFilterParams;
5688} tSetRssiFilterReq, *tpSetRssiFilterReq;
5689
5690/*
5691 Set RSSI filter resp
5692*/
5693typedef PACKED_PRE struct PACKED_POST{
5694 tHalMsgHeader header;
5695 /*status of the request */
5696 tANI_U32 status;
5697} tSetRssiFilterResp, *tpSetRssiFilterResp;
5698/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005699 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005700*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005701typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005702{
5703
5704 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005705 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005706
5707 /*Lets PNO know that host has determined the regulatory domain*/
5708 tANI_U8 b11dResolved;
5709
5710 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005711 tANI_U8 ucChannelCount;
5712 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005713
5714 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005715 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005716
5717 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005718 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005719
5720 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005721 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005722
5723 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005724 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005725
5726 /*Cb State*/
5727 ePhyChanBondState cbState;
5728
5729} tUpdateScanParams, * tpUpdateScanParams;
5730
5731/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305732 Update scan params
5733*/
5734typedef PACKED_PRE struct PACKED_POST
5735{
5736
5737 /*Host setting for 11d*/
5738 tANI_U8 b11dEnabled;
5739
5740 /*Lets PNO know that host has determined the regulatory domain*/
5741 tANI_U8 b11dResolved;
5742
5743 /*Channels on which PNO is allowed to scan*/
5744 tANI_U8 ucChannelCount;
5745 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5746
5747 /*Minimum channel time*/
5748 tANI_U16 usActiveMinChTime;
5749
5750 /*Maximum channel time*/
5751 tANI_U16 usActiveMaxChTime;
5752
5753 /*Minimum channel time*/
5754 tANI_U16 usPassiveMinChTime;
5755
5756 /*Maximum channel time*/
5757 tANI_U16 usPassiveMaxChTime;
5758
5759 /*Cb State*/
5760 ePhyChanBondState cbState;
5761
5762} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5763
5764/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005765 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005766 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005767*/
5768typedef PACKED_PRE struct PACKED_POST{
5769
5770 tHalMsgHeader header;
5771 tUpdateScanParams scanParams;
5772} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5773
5774/*
5775 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005776 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005777*/
5778typedef PACKED_PRE struct PACKED_POST{
5779
5780 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305781 tUpdateScanParamsEx scanParams;
5782} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5783
5784/*
5785 Update scan params - sent from host to PNO
5786 to be used during PNO scanning
5787*/
5788typedef PACKED_PRE struct PACKED_POST{
5789
5790 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005791
5792 /*status of the request */
5793 tANI_U32 status;
5794
5795} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5796
5797/*---------------------------------------------------------------------------
5798 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5799 *--------------------------------------------------------------------------*/
5800typedef PACKED_PRE struct PACKED_POST
5801{
5802 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5803 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5804 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5805 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5806} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5807
5808typedef PACKED_PRE struct PACKED_POST
5809{
5810 tHalMsgHeader header;
5811 tHalTxPerTrackingReqParam txPerTrackingParams;
5812} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5813
5814/*---------------------------------------------------------------------------
5815 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5816 *--------------------------------------------------------------------------*/
5817typedef PACKED_PRE struct PACKED_POST
5818{
5819 /* success or failure */
5820 tANI_U32 status;
5821} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5822
5823typedef PACKED_PRE struct PACKED_POST
5824{
5825 tHalMsgHeader header;
5826 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5827} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5828
5829/*---------------------------------------------------------------------------
5830 * WLAN_HAL_TX_PER_HIT_IND
5831 *--------------------------------------------------------------------------*/
5832typedef PACKED_PRE struct PACKED_POST
5833{
5834 tHalMsgHeader header;
5835}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5836
5837/*---------------------------------------------------------------------------
5838 *******************Packet Filtering Definitions Begin*******************
5839 *--------------------------------------------------------------------------*/
5840#define HAL_PROTOCOL_DATA_LEN 8
5841#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5842#define HAL_MAX_NUM_FILTERS 20
5843#define HAL_MAX_CMP_PER_FILTER 10
5844
5845typedef enum
5846{
5847 HAL_RCV_FILTER_TYPE_INVALID,
5848 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5849 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5850 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5851}tHalReceivePacketFilterType;
5852
Jeff Johnson32d95a32012-09-10 13:15:23 -07005853typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005854{
5855 HAL_FILTER_PROTO_TYPE_INVALID,
5856 HAL_FILTER_PROTO_TYPE_MAC,
5857 HAL_FILTER_PROTO_TYPE_ARP,
5858 HAL_FILTER_PROTO_TYPE_IPV4,
5859 HAL_FILTER_PROTO_TYPE_IPV6,
5860 HAL_FILTER_PROTO_TYPE_UDP,
5861 HAL_FILTER_PROTO_TYPE_MAX
5862}tHalRcvPktFltProtocolType;
5863
Jeff Johnson32d95a32012-09-10 13:15:23 -07005864typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005865{
5866 HAL_FILTER_CMP_TYPE_INVALID,
5867 HAL_FILTER_CMP_TYPE_EQUAL,
5868 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5869 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5870 HAL_FILTER_CMP_TYPE_MAX
5871}tHalRcvPktFltCmpFlagType;
5872
Jeff Johnson32d95a32012-09-10 13:15:23 -07005873typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005874{
5875 tANI_U8 protocolLayer;
5876 tANI_U8 cmpFlag;
5877 tANI_U16 dataLength; /* Length of the data to compare */
5878 tANI_U8 dataOffset; /* from start of the respective frame header */
5879 tANI_U8 reserved; /* Reserved field */
5880 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5881 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5882}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5883
5884typedef PACKED_PRE struct PACKED_POST
5885{
5886 tANI_U8 filterId;
5887 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005888 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005889 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005890 tHalRcvPktFilterParams paramsData[1];
5891}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5892
5893typedef PACKED_PRE struct PACKED_POST
5894{
Jeff Johnsone7245742012-09-05 17:12:55 -07005895 tANI_U8 filterId;
5896 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005897 tANI_U8 numParams;
5898 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005899 tANI_U8 bssIdx;
5900 tHalRcvPktFilterParams paramsData[1];
5901}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5902
5903typedef PACKED_PRE struct PACKED_POST
5904{
Jeff Johnson295189b2012-06-20 16:38:30 -07005905 tHalMsgHeader header;
5906 tHalRcvPktFilterCfgType pktFilterCfg;
5907} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5908
Jeff Johnsone7245742012-09-05 17:12:55 -07005909typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005910{
5911 tANI_U8 dataOffset; /* from start of the respective frame header */
5912 tANI_U32 cMulticastAddr;
5913 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005914 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005915} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5916
5917typedef PACKED_PRE struct PACKED_POST
5918{
5919 /* success or failure */
5920 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005921 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005922} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5923
5924typedef PACKED_PRE struct PACKED_POST
5925{
5926 tHalMsgHeader header;
5927 tHalSetPktFilterRspParams pktFilterRspParams;
5928} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5929
Jeff Johnsone7245742012-09-05 17:12:55 -07005930typedef PACKED_PRE struct PACKED_POST
5931{
5932 tANI_U8 bssIdx;
5933} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005934
5935typedef PACKED_PRE struct PACKED_POST
5936{
5937 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005938 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005939} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5940
Jeff Johnsone7245742012-09-05 17:12:55 -07005941
Jeff Johnson295189b2012-06-20 16:38:30 -07005942typedef PACKED_PRE struct PACKED_POST
5943{
5944 tANI_U8 filterId;
5945 tANI_U32 matchCnt;
5946} tHalRcvFltPktMatchCnt;
5947typedef PACKED_PRE struct PACKED_POST
5948{
5949 /* Success or Failure */
5950 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005951 tANI_U32 matchCnt;
5952 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005953 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005954} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5955
5956typedef PACKED_PRE struct PACKED_POST
5957{
5958 tHalMsgHeader header;
5959 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5960} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5961
5962typedef PACKED_PRE struct PACKED_POST
5963{
5964 tANI_U32 status; /* only valid for response message */
5965 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005966 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005967}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5968
5969typedef PACKED_PRE struct PACKED_POST
5970{
5971 tHalMsgHeader header;
5972 tHalRcvFltPktClearParam filterClearParam;
5973} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5974
5975typedef PACKED_PRE struct PACKED_POST
5976{
5977 tHalMsgHeader header;
5978 tHalRcvFltPktClearParam filterClearParam;
5979} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5980
5981typedef PACKED_PRE struct PACKED_POST
5982{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005983 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005984 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005985}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5986
5987typedef PACKED_PRE struct PACKED_POST
5988{
5989 tHalMsgHeader header;
5990 tHalRcvFltMcAddrListType mcAddrList;
5991} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5992
5993typedef PACKED_PRE struct PACKED_POST
5994{
5995 tHalMsgHeader header;
5996 tHalRcvFltPktSetMcListRspType rspParam;
5997} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5998
5999
6000/*---------------------------------------------------------------------------
6001 *******************Packet Filtering Definitions End*******************
6002 *--------------------------------------------------------------------------*/
6003
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006004/*
6005 * There are two versions of this message
6006 * Version 1 : Base version
6007 * Current version : Base version + Max LI modulated DTIM
6008 */
6009typedef PACKED_PRE struct PACKED_POST
6010{
6011 /* Ignore DTIM */
6012 tANI_U32 uIgnoreDTIM;
6013
6014 /*DTIM Period*/
6015 tANI_U32 uDTIMPeriod;
6016
6017 /* Listen Interval */
6018 tANI_U32 uListenInterval;
6019
6020 /* Broadcast Multicast Filter */
6021 tANI_U32 uBcastMcastFilter;
6022
6023 /* Beacon Early Termination */
6024 tANI_U32 uEnableBET;
6025
6026 /* Beacon Early Termination Interval */
6027 tANI_U32 uBETInterval;
6028}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6029
6030typedef PACKED_PRE struct PACKED_POST
6031{
6032 tHalMsgHeader header;
6033 tSetPowerParamsVer1Type powerParams;
6034} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6035
Jeff Johnson295189b2012-06-20 16:38:30 -07006036typedef PACKED_PRE struct PACKED_POST
6037{
6038 /* Ignore DTIM */
6039 tANI_U32 uIgnoreDTIM;
6040
6041 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006042 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006043
6044 /* Listen Interval */
6045 tANI_U32 uListenInterval;
6046
6047 /* Broadcast Multicast Filter */
6048 tANI_U32 uBcastMcastFilter;
6049
6050 /* Beacon Early Termination */
6051 tANI_U32 uEnableBET;
6052
6053 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006054 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006055
6056 /* MAX LI for modulated DTIM */
6057 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006058}tSetPowerParamsType, *tpSetPowerParamsType;
6059
6060typedef PACKED_PRE struct PACKED_POST
6061{
6062 tHalMsgHeader header;
6063 tSetPowerParamsType powerParams;
6064} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6065
6066typedef PACKED_PRE struct PACKED_POST{
6067
6068 tHalMsgHeader header;
6069
6070 /*status of the request */
6071 tANI_U32 status;
6072
6073} tSetPowerParamsResp, *tpSetPowerParamsResp;
6074
6075/*---------------------------------------------------------------------------
6076 ****************Capability bitmap exchange definitions and macros starts*************
6077 *--------------------------------------------------------------------------*/
6078
Anand Kumar012623a2013-01-11 17:00:00 -08006079typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006080 MCC = 0,
6081 P2P = 1,
6082 DOT11AC = 2,
6083 SLM_SESSIONIZATION = 3,
6084 DOT11AC_OPMODE = 4,
6085 SAP32STA = 5,
6086 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006087 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006088 WLANACTIVE_OFFLOAD = 8,
6089 BEACON_OFFLOAD = 9,
6090 SCAN_OFFLOAD = 10,
6091 ROAM_OFFLOAD = 11,
6092 BCN_MISS_OFFLOAD = 12,
6093 STA_POWERSAVE = 13,
6094 STA_ADVANCED_PWRSAVE = 14,
6095 AP_UAPSD = 15,
6096 AP_DFS = 16,
6097 BLOCKACK = 17,
6098 PHY_ERR = 18,
6099 BCN_FILTER = 19,
6100 RTT = 20,
6101 RATECTRL = 21,
6102 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006103 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006104 SPECULATIVE_PS_POLL = 24,
6105 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006106 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006107 WLAN_SCAN_OFFLOAD = 27,
6108 WLAN_PERIODIC_TX_PTRN = 28,
6109 ADVANCE_TDLS = 29,
6110 BATCH_SCAN = 30,
Kanchanapally, Vidyullathad7fde902013-12-24 11:38:36 +05306111 FW_IN_TX_PATH = 31,
Hardik Kantilal Patele104d632014-01-27 11:41:41 +05306112 EXTENDED_NSOFFLOAD_SLOT = 32,
Kumar Anandea78e792013-10-10 23:47:01 -07006113 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006114} placeHolderInCapBitmap;
6115
Jeff Johnson295189b2012-06-20 16:38:30 -07006116typedef PACKED_PRE struct PACKED_POST{
6117
6118 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006119} tWlanFeatCaps, *tpWlanFeatCaps;
6120
6121typedef PACKED_PRE struct PACKED_POST{
6122
Jeff Johnson32d95a32012-09-10 13:15:23 -07006123 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006124 tWlanFeatCaps wlanFeatCaps;
6125
6126} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6127
Jeff Johnsone7245742012-09-05 17:12:55 -07006128#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6129#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006130#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006131#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006132#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006133#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006134#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006135
Jeff Johnsone7245742012-09-05 17:12:55 -07006136tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6137
Jeff Johnson295189b2012-06-20 16:38:30 -07006138#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006139 if ((b)<=127) { \
6140 arr_index = (b)/32; \
6141 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006142 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006143 (a)->featCaps[arr_index] |= (1<<bit_index); \
6144 } \
6145 }
6146#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006147 if ((b)<=127) { \
6148 arr_index = (b)/32; \
6149 bit_index = (b)%32; \
6150 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006151 } \
6152 }
6153#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006154 if ((b)<=127) { \
6155 arr_index = (b)/32; \
6156 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006157 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006158 } \
6159 }
6160
6161/*---------------------------------------------------------------------------
6162 * WLAN_HAL_WAKE_REASON_IND
6163 *--------------------------------------------------------------------------*/
6164
6165/* status codes to help debug rekey failures */
6166typedef enum
6167{
6168 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6169 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6170 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6171 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6172 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6173 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6174 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6175 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6176 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6177 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6178
6179 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6180} tGTKRekeyStatus;
6181
6182/* wake reason types */
6183typedef enum
6184{
6185 WLAN_HAL_WAKE_REASON_NONE = 0,
6186 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6187 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6188 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6189 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6190 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6191 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6192 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6193} tWakeReasonType;
6194
6195/*
6196 Wake Packet which is saved at tWakeReasonParams.DataStart
6197 This data is sent for any wake reasons that involve a packet-based wakeup :
6198
6199 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6200 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6201 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6202 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6203 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6204
6205 The information is provided to the host for auditing and debug purposes
6206
6207*/
6208
6209/*
6210 Wake reason indication parameters
6211*/
6212typedef PACKED_PRE struct PACKED_POST
6213{
6214 uint32 ulReason; /* see tWakeReasonType */
6215 uint32 ulReasonArg; /* argument specific to the reason type */
6216 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6217 HAL truncates the data (i.e. data packets) this length
6218 will be less than the actual length */
6219 uint32 ulActualDataLen; /* actual length of data */
6220 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6221 see specific wake type */
6222} tWakeReasonParams, *tpWakeReasonParams;
6223
6224/*
6225 Wake reason indication
6226*/
6227typedef PACKED_PRE struct PACKED_POST
6228{
6229 tHalMsgHeader header;
6230 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006231 tANI_U32 uBssIdx : 8;
6232 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006233} tHalWakeReasonInd, *tpHalWakeReasonInd;
6234
6235/*---------------------------------------------------------------------------
6236* WLAN_HAL_GTK_OFFLOAD_REQ
6237*--------------------------------------------------------------------------*/
6238
6239#define HAL_GTK_KEK_BYTES 16
6240#define HAL_GTK_KCK_BYTES 16
6241
6242#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6243
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006244#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6245
Jeff Johnson295189b2012-06-20 16:38:30 -07006246typedef PACKED_PRE struct PACKED_POST
6247{
6248 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006249 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006250 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6251 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006252 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006253} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6254
6255typedef PACKED_PRE struct PACKED_POST
6256{
6257 tHalMsgHeader header;
6258 tHalGtkOffloadReqParams gtkOffloadReqParams;
6259} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6260
6261/*---------------------------------------------------------------------------
6262* WLAN_HAL_GTK_OFFLOAD_RSP
6263*--------------------------------------------------------------------------*/
6264typedef PACKED_PRE struct PACKED_POST
6265{
6266 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006267 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006268} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6269
6270typedef PACKED_PRE struct PACKED_POST
6271{
6272 tHalMsgHeader header;
6273 tHalGtkOffloadRspParams gtkOffloadRspParams;
6274} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6275
6276
6277/*---------------------------------------------------------------------------
6278* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6279*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006280typedef PACKED_PRE struct PACKED_POST
6281{
6282 tANI_U8 bssIdx;
6283
6284} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006285
6286typedef PACKED_PRE struct PACKED_POST
6287{
6288 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006289 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006290} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6291
6292/*---------------------------------------------------------------------------
6293* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6294*--------------------------------------------------------------------------*/
6295typedef PACKED_PRE struct PACKED_POST
6296{
6297 tANI_U32 ulStatus; /* success or failure */
6298 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6299 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6300 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6301 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6302 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006303 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006304} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6305
6306typedef PACKED_PRE struct PACKED_POST
6307{
6308 tHalMsgHeader header;
6309 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6310} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6311
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006312/*---------------------------------------------------------------------------
6313* WLAN_HAL_DHCP_IND
6314*--------------------------------------------------------------------------*/
6315typedef PACKED_PRE struct PACKED_POST
6316{
6317 /*Indicates the device mode which indicates about the DHCP activity */
6318 tANI_U8 device_mode;
6319 tSirMacAddr macAddr;
6320} tDHCPInfo, *tpDHCPInfo;
6321
6322typedef PACKED_PRE struct PACKED_POST
6323{
6324 tHalMsgHeader header;
6325 tANI_U32 status; /* success or failure */
6326} tDHCPIndStatus, *tpDHCPIndstatus;
6327
Jeff Johnson295189b2012-06-20 16:38:30 -07006328/*
6329 Thermal Mitigation mode of operation.
6330 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6331 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6332 reducing transmit power
6333 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6334*/
6335typedef enum
6336{
6337 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6338 HAL_THERMAL_MITIGATION_MODE_0,
6339 HAL_THERMAL_MITIGATION_MODE_1,
6340 HAL_THERMAL_MITIGATION_MODE_2,
6341 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6342}tHalThermalMitigationModeType;
6343//typedef tANI_S16 tHalThermalMitigationModeType;
6344
6345/*
6346 Thermal Mitigation level.
6347 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6348 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6349
6350 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6351 level indicates normal mode of operation
6352 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6353 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6354 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6355 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6356*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006357typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006358{
6359 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6360 HAL_THERMAL_MITIGATION_LEVEL_0,
6361 HAL_THERMAL_MITIGATION_LEVEL_1,
6362 HAL_THERMAL_MITIGATION_LEVEL_2,
6363 HAL_THERMAL_MITIGATION_LEVEL_3,
6364 HAL_THERMAL_MITIGATION_LEVEL_4,
6365 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6366}tHalThermalMitigationLevelType;
6367//typedef tANI_S16 tHalThermalMitigationLevelType;
6368
6369typedef PACKED_PRE struct PACKED_POST
6370{
6371 /* Thermal Mitigation Operation Mode */
6372 tHalThermalMitigationModeType thermalMitMode;
6373
6374 /* Thermal Mitigation Level */
6375 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006376
Jeff Johnson295189b2012-06-20 16:38:30 -07006377}tSetThermalMitgationType, *tpSetThermalMitgationType;
6378
6379/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6380typedef PACKED_PRE struct PACKED_POST
6381{
6382 tHalMsgHeader header;
6383 tSetThermalMitgationType thermalMitParams;
6384} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6385
6386typedef PACKED_PRE struct PACKED_POST{
6387
6388 tHalMsgHeader header;
6389
6390 /*status of the request */
6391 tANI_U32 status;
6392
6393} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6394
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006395/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6396provided to FW from Host via periodic messages */
6397typedef PACKED_PRE struct PACKED_POST {
6398 /* TX stats */
6399 uint32 txBytesPushed;
6400 uint32 txPacketsPushed;
6401
6402 /* RX stats */
6403 uint32 rxBytesRcvd;
6404 uint32 rxPacketsRcvd;
6405 uint32 rxTimeTotal;
6406} tStaStatsClassB, *tpStaStatsClassB;
6407
6408typedef PACKED_PRE struct PACKED_POST {
6409
6410 /* Duration over which this stats was collected */
6411 tANI_U32 duration;
6412
6413 /* Per STA Stats */
6414 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6415} tStatsClassBIndParams, *tpStatsClassBIndParams;
6416
6417typedef PACKED_PRE struct PACKED_POST {
6418
6419 tHalMsgHeader header;
6420
6421 /* Class B Stats */
6422 tStatsClassBIndParams statsClassBIndParams;
6423} tStatsClassBInd, *tpStatsClassBInd;
6424
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306425/*Wifi Proximity paramters in AP mode*/
6426#ifdef FEATURE_WIFI_PROXIMITY
6427
6428typedef PACKED_PRE struct PACKED_POST{
6429
6430 tANI_U8 wifiProximityChannel;
6431 tANI_U32 wifiProximityDuration;
6432 tANI_U32 wifiProximityInterval;
6433 tANI_U32 wifiProximityMode;
6434 tANI_U32 wifiProximityStatus;
6435 tSirMacAddr bssId;
6436 tSirMacSSid ssId;
6437
6438} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6439
6440typedef PACKED_PRE struct PACKED_POST
6441{
6442 tHalMsgHeader header;
6443
6444 tSetWifiProximityReqParam wifiProximityReqParams;
6445
6446}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6447
6448/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6449typedef PACKED_PRE struct PACKED_POST{
6450
6451 tHalMsgHeader header;
6452
6453 /*status of the request */
6454 tANI_U32 status;
6455
6456} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6457
6458#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006459
6460#ifdef FEATURE_SPECULATIVE_PS_POLL
6461/*---------------------------------------------------------------------------
6462 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6463 *--------------------------------------------------------------------------*/
6464typedef PACKED_PRE struct PACKED_POST
6465{
6466 tANI_U8 bssIdx;
6467 tANI_U16 serviceInterval;
6468 tANI_U16 suspendInterval;
6469 tANI_U8 acMask;
6470} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6471
6472typedef PACKED_PRE struct PACKED_POST
6473{
6474 tHalMsgHeader header;
6475 tHalStartSpecPsPollReqParams specPsPollReq;
6476} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6477
6478/*---------------------------------------------------------------------------
6479 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6480 *--------------------------------------------------------------------------*/
6481typedef PACKED_PRE struct PACKED_POST
6482{
6483 /* success or failure */
6484 tANI_U32 status;
6485 tANI_U8 bssIdx;
6486} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6487
6488typedef PACKED_PRE struct PACKED_POST
6489{
6490 tHalMsgHeader header;
6491 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6492} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6493
6494/*---------------------------------------------------------------------------
6495 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6496 *--------------------------------------------------------------------------*/
6497typedef PACKED_PRE struct PACKED_POST
6498{
6499 tHalMsgHeader header;
6500 tANI_U8 bssIdx;
6501} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6502#endif
6503
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306504#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306505#define HAL_MAX_SUPP_CHANNELS 128
6506#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306507/*---------------------------------------------------------------------------
6508 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6509 *-------------------------------------------------------------------------*/
6510typedef PACKED_PRE struct PACKED_POST
6511{
6512 /*STA Index*/
6513 tANI_U16 staIdx;
6514
6515 /* if this is 1, self is initiator and peer is reponder */
6516 tANI_U8 bIsResponder;
6517
6518 /* QoS Info */
6519 tANI_U8 acVOUAPSDFlag:1;
6520 tANI_U8 acVIUAPSDFlag:1;
6521 tANI_U8 acBKUAPSDFlag:1;
6522 tANI_U8 acBEUAPSDFlag:1;
6523 tANI_U8 aAck:1;
6524 tANI_U8 maxServicePeriodLength:2;
6525 tANI_U8 moreDataAck:1;
6526
6527 /*TDLS Peer U-APSD Buffer STA Support*/
6528 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07006529
6530 /*TDLS off channel related params */
6531 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306532 tANI_U8 peerCurrOperClass;
6533 tANI_U8 selfCurrOperClass;
6534 tANI_U8 validChannelsLen;
6535 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
6536 tANI_U8 validOperClassesLen;
6537 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306538}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6539
6540typedef PACKED_PRE struct PACKED_POST
6541{
6542 tHalMsgHeader header;
6543 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6544} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6545
6546/*---------------------------------------------------------------------------
6547 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6548 *-------------------------------------------------------------------------*/
6549
6550typedef PACKED_PRE struct PACKED_POST
6551{
6552 tANI_U32 status;
6553
6554 /*STA Index*/
6555 tANI_U16 staIdx;
6556} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6557
6558typedef PACKED_PRE struct PACKED_POST
6559{
6560 tHalMsgHeader header;
6561 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6562} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6563
6564/*---------------------------------------------------------------------------
6565 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6566 *-------------------------------------------------------------------------*/
6567typedef PACKED_PRE struct PACKED_POST
6568{
6569 /*STA Index*/
6570 tANI_U16 staIdx;
6571}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6572
6573typedef PACKED_PRE struct PACKED_POST
6574{
6575 tHalMsgHeader header;
6576 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6577} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6578
6579/*---------------------------------------------------------------------------
6580 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6581 *-------------------------------------------------------------------------*/
6582
6583typedef PACKED_PRE struct PACKED_POST
6584{
6585 tANI_U32 status;
6586
6587 /*STA Index*/
6588 tANI_U16 staIdx;
6589} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6590
6591typedef PACKED_PRE struct PACKED_POST
6592{
6593 tHalMsgHeader header;
6594 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6595} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6596
6597/*---------------------------------------------------------------------------
6598 *WLAN_HAL_TDLS_IND
6599 *--------------------------------------------------------------------------*/
6600
6601typedef PACKED_PRE struct PACKED_POST
6602{
6603 tANI_U16 assocId;
6604 tANI_U16 staIdx;
6605 tANI_U16 status;
6606 tANI_U16 reasonCode;
6607}tTdlsIndParams, *tpTdlsIndParams;
6608
6609
6610typedef PACKED_PRE struct PACKED_POST
6611{
6612 tHalMsgHeader header;
6613 tTdlsIndParams tdlsIndParams;
6614}tTdlsIndMsg, *tpTdlsIndMsg;
6615
6616#endif
6617
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006618/*---------------------------------------------------------------------------
6619 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
6620 *--------------------------------------------------------------------------*/
6621
6622typedef PACKED_PRE struct PACKED_POST
6623{
6624 tANI_U8 bssIdx;
6625 tANI_U8 staIdx;
6626 tSirMacAddr staAddr;
6627}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
6628
6629
6630typedef PACKED_PRE struct PACKED_POST
6631{
6632 tHalMsgHeader header;
6633 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
6634}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
6635
6636
Kumar Anandea78e792013-10-10 23:47:01 -07006637/*********** Scan Offload Related Structures *************/
6638#define HAL_NUM_SCAN_SSID 10
6639#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07006640
Kumar Anandea78e792013-10-10 23:47:01 -07006641/*
6642 * Enumetation to indicate scan type (active/passive)
6643 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006644typedef enum
6645{
Kumar Anandea78e792013-10-10 23:47:01 -07006646 eSIR_PASSIVE_SCAN,
6647 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
6648} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006649
6650typedef PACKED_PRE struct PACKED_POST
6651{
Kumar Anandea78e792013-10-10 23:47:01 -07006652 tANI_U8 numBssid;
6653 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
6654 tANI_U8 numSsid;
6655 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
6656 tANI_BOOLEAN hiddenSsid;
6657 tSirMacAddr selfMacAddr;
6658 tSirBssType bssType;
6659 tSirScanType scanType;
6660 tANI_U32 minChannelTime;
6661 tANI_U32 maxChannelTime;
6662 tANI_BOOLEAN p2pSearch;
6663 tANI_U8 channelCount;
6664 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6665 tANI_U16 ieFieldLen;
6666 tANI_U8 ieField[1];
6667}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006668
6669/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006670 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07006671 *-------------------------------------------------------------------------*/
6672typedef PACKED_PRE struct PACKED_POST
6673{
Kumar Anandf53016f2013-09-04 15:15:53 -07006674 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006675 tScanOffloadReqType scanOffloadParams;
6676} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006677
6678/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006679 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07006680 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07006681typedef PACKED_PRE struct PACKED_POST
6682{
6683 tHalMsgHeader header;
6684
6685 /*status of the request - just to indicate SO has acknowledged
6686 * * the request and will start scanning*/
6687 tANI_U32 status;
6688} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
6689
6690/*---------------------------------------------------------------------------
6691 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
6692 *-------------------------------------------------------------------------*/
6693typedef PACKED_PRE struct PACKED_POST
6694{
6695 tHalMsgHeader header;
6696} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
6697
6698/*---------------------------------------------------------------------------
6699 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
6700 *-------------------------------------------------------------------------*/
6701typedef PACKED_PRE struct PACKED_POST
6702{
6703 tHalMsgHeader header;
6704
6705 /*status of the request - just to indicate SO has acknowledged
6706 the request and will start scanning*/
6707 tANI_U32 status;
6708} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
6709
6710/*
6711 * Enumetation of scan events indicated by firmware to the host
6712 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006713typedef enum
6714{
Kumar Anandea78e792013-10-10 23:47:01 -07006715 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
6716 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
6717 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
6718 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
6719 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
6720 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
6721 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
6722 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
6723 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
6724} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006725
6726typedef PACKED_PRE struct PACKED_POST
6727{
Kumar Anandea78e792013-10-10 23:47:01 -07006728 tScanEventType event;
6729 tANI_U32 channel;
6730 tANI_U32 scanId;
6731} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07006732
Kumar Anandea78e792013-10-10 23:47:01 -07006733/*---------------------------------------------------------------------------
6734 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
6735 *-------------------------------------------------------------------------*/
6736typedef PACKED_PRE struct PACKED_POST
6737{
6738 tHalMsgHeader header;
6739 tScanOffloadEventInfo scanOffloadInd;
6740} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006741
Kumar Anandea78e792013-10-10 23:47:01 -07006742typedef PACKED_PRE struct PACKED_POST {
6743 /** primary 20 MHz channel frequency in mhz */
6744 tANI_U32 mhz;
6745 /** Center frequency 1 in MHz*/
6746 tANI_U32 band_center_freq1;
6747 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
6748 tANI_U32 band_center_freq2;
6749 /* The first 26 bits are a bit mask to indicate any channel flags,
6750 (see WLAN_HAL_CHAN_FLAG*)
6751 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
6752 tANI_U32 channel_info;
6753 /** contains min power, max power, reg power and reg class id. */
6754 tANI_U32 reg_info_1;
6755 /** contains antennamax */
6756 tANI_U32 reg_info_2;
6757} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006758
Kumar Anandf53016f2013-09-04 15:15:53 -07006759
Kumar Anandea78e792013-10-10 23:47:01 -07006760typedef enum {
6761 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
6762 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
6763 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
6764 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
6765 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
6766 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
6767 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
6768 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
6769 WLAN_HAL_MODE_11AC_VHT20 = 8,
6770 WLAN_HAL_MODE_11AC_VHT40 = 9,
6771 WLAN_HAL_MODE_11AC_VHT80 = 10,
6772 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
6773 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
6774 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
6775 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07006776
Kumar Anandea78e792013-10-10 23:47:01 -07006777} tChannelPhyModeType;
6778
6779#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
6780#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
6781#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
6782#define WLAN_HAL_CHAN_AP_DISABLED 9
6783#define WLAN_HAL_CHAN_FLAG_DFS 10
6784#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
6785#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
6786
6787typedef PACKED_PRE struct PACKED_POST
6788{
6789 tANI_U8 numChan;
6790 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6791} tUpdateChannelReqType;
6792
6793/*---------------------------------------------------------------------------
6794 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
6795 *-------------------------------------------------------------------------*/
6796typedef PACKED_PRE struct PACKED_POST
6797{
6798 tHalMsgHeader header;
6799 tUpdateChannelReqType updateChannelParams;
6800} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
6801
6802/*---------------------------------------------------------------------------
6803 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
6804 *-------------------------------------------------------------------------*/
6805typedef PACKED_PRE struct PACKED_POST
6806{
6807 tHalMsgHeader header;
6808
6809 /*status of the request - just to indicate SO has acknowledged
6810 * * the request and will start scanning*/
6811 tANI_U32 status;
6812} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
6813
6814
6815/*---------------------------------------------------------------------------
6816* WLAN_HAL_TX_FAIL_IND
6817*--------------------------------------------------------------------------*/
6818// Northbound indication from FW to host on weak link detection
6819typedef PACKED_PRE struct PACKED_POST
6820{
6821 // Sequence number increases by 1 whenever the device driver
6822 // sends a notification event. This is cleared as 0 when the
6823 // JOIN IBSS commamd is issued
6824 tANI_U16 seqNo;
6825 tANI_U16 staId;
6826 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
6827} tHalTXFailIndParams, *tpHalTXFailIndParams;
6828
6829typedef PACKED_PRE struct PACKED_POST
6830{
6831 tHalMsgHeader header;
6832 tHalTXFailIndParams txFailIndParams;
6833} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
6834
6835/*---------------------------------------------------------------------------
6836* WLAN_HAL_TX_FAIL_MONITOR_IND
6837*--------------------------------------------------------------------------*/
6838// Southbound message from Host to monitor the Tx failures
6839typedef PACKED_PRE struct PACKED_POST
6840{
6841 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
6842 tANI_U8 tx_fail_count;
6843} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
6844
6845typedef PACKED_PRE struct PACKED_POST
6846{
6847 tHalMsgHeader header;
6848 tTXFailMonitorInfo txFailMonitor;
6849} tTXFailMonitorInd, *tpTXFailMonitorInd;
6850
6851/*---------------------------------------------------------------------------
6852* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
6853*--------------------------------------------------------------------------*/
6854typedef PACKED_PRE struct PACKED_POST
6855{
6856 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
6857 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
6858} tDestIpNextHopMacPair;
6859
6860typedef PACKED_PRE struct PACKED_POST
6861{
6862 tANI_U8 numEntries;
6863 tDestIpNextHopMacPair destIpMacPair[1];
6864} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006865
6866typedef PACKED_PRE struct PACKED_POST
6867{
6868 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006869 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
6870} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07006871
Kumar Anandf53016f2013-09-04 15:15:53 -07006872/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07006873 WLAN_HAL_RATE_UPDATE_IND
6874 *-------------------------------------------------------------------------*/
6875
6876typedef PACKED_PRE struct PACKED_POST
6877{
6878 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
6879 tANI_S32 ucastDataRate; //unit Mbpsx10
6880
6881 /* TX flag to differentiate between HT20, HT40 etc */
6882 tTxRateInfoFlags ucastDataRateTxFlag;
6883
6884 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
6885 tSirMacAddr bssid;
6886
6887 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
6888 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
6889
6890 /* TX flag to differentiate between HT20, HT40 etc */
6891 tTxRateInfoFlags reliableMcastDataRateTxFlag;
6892
6893 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
6894 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
6895
6896 /* TX flag to differentiate between HT20, HT40 etc */
6897 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
6898
6899 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
6900 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
6901
6902 /* TX flag to differentiate between HT20, HT40 etc */
6903 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
6904
6905} tHalRateUpdateParams, *tpHalRateUpdateParams;
6906
6907typedef PACKED_PRE struct PACKED_POST
6908{
6909 tHalMsgHeader header;
6910 tHalRateUpdateParams halRateUpdateParams;
6911} tHalRateUpdateInd, * tpHalRateUpdateInd;
6912
6913/*---------------------------------------------------------------------------
AnjaneeDevi Kapparapu1fe854a2013-12-27 17:06:41 +05306914 * WLAN_HAL_AVOID_FREQ_RANGE_IND
6915 *-------------------------------------------------------------------------*/
6916
6917#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 4
6918
6919typedef PACKED_PRE struct PACKED_POST
6920{
6921 tANI_U32 startFreq;
6922 tANI_U32 endFreq;
6923} tHalFreqRange, *tpHalFreqRange;
6924
6925typedef PACKED_PRE struct PACKED_POST
6926{
6927 tANI_U32 avoidCnt;
6928 tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
6929} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
6930
6931typedef PACKED_PRE struct PACKED_POST
6932{
6933 tHalMsgHeader header;
6934 tHalAvoidFreqRangeIndParams freqRangeIndParams;
6935} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
6936
6937/*---------------------------------------------------------------------------
Kumar Anandf53016f2013-09-04 15:15:53 -07006938 *-------------------------------------------------------------------------*/
6939
Jeff Johnson295189b2012-06-20 16:38:30 -07006940#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6941#pragma pack(pop)
6942#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6943#else
6944#endif
6945
6946#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006947