blob: 72f387cb8a50191734cfdfb47b2e172a0f896f2d [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Anand Kumar012623a2013-01-11 17:00:00 -08002 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved.
3 *
4 * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
5 *
6 *
7 * Permission to use, copy, modify, and/or distribute this software for
8 * any purpose with or without fee is hereby granted, provided that the
9 * above copyright notice and this permission notice appear in all
10 * copies.
11 *
12 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
13 * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
14 * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
15 * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
16 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
17 * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
18 * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
19 * PERFORMANCE OF THIS SOFTWARE.
20 */
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
Sameer Thalappil71c78202013-11-05 14:22:09 -0800117#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 57
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
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800430 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700431}tHalHostMsgType;
432
Jeff Johnsone7245742012-09-05 17:12:55 -0700433/* Enumeration for Version */
434typedef enum
435{
436 WLAN_HAL_MSG_VERSION0 = 0,
437 WLAN_HAL_MSG_VERSION1 = 1,
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -0800438 WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
439 WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
Jeff Johnsone7245742012-09-05 17:12:55 -0700440}tHalHostMsgVersion;
441
Jeff Johnson295189b2012-06-20 16:38:30 -0700442/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700443typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700444{
445 eANI_BOOLEAN_FALSE = 0,
446 eANI_BOOLEAN_TRUE,
447 eANI_BOOLEAN_OFF = 0,
448 eANI_BOOLEAN_ON = 1,
449 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
450} eAniBoolean;
451
452typedef enum
453{
454 eDRIVER_TYPE_PRODUCTION = 0,
455 eDRIVER_TYPE_MFG = 1,
456 eDRIVER_TYPE_DVT = 2,
457 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
458} tDriverType;
459
460typedef enum
461{
462 HAL_STOP_TYPE_SYS_RESET,
463 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
464 HAL_STOP_TYPE_RF_KILL,
465 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
466}tHalStopType;
467
468typedef enum
469{
470 eHAL_SYS_MODE_NORMAL,
471 eHAL_SYS_MODE_LEARN,
472 eHAL_SYS_MODE_SCAN,
473 eHAL_SYS_MODE_PROMISC,
474 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700475 eHAL_SYS_MODE_ROAM_SCAN,
476 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
bernal5e039212013-06-24 10:29:20 -0700477 eHAL_SYS_MODE_OEM_DATA,
Jeff Johnson295189b2012-06-20 16:38:30 -0700478 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
479} eHalSysMode;
480
481typedef enum
482{
483 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
484 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
485 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
486 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700487#ifdef WLAN_FEATURE_11AC
488 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
489 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
490 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
491 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
492 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
493 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
494 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
495#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700496 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
497}ePhyChanBondState;
498
499// Spatial Multiplexing(SM) Power Save mode
500typedef enum eSirMacHTMIMOPowerSaveState
501{
502 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
503 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
504 eSIR_HT_MIMO_PS_NA = 2, // reserved
505 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
506 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
507} tSirMacHTMIMOPowerSaveState;
508
509/* each station added has a rate mode which specifies the sta attributes */
510typedef enum eStaRateMode {
511 eSTA_TAURUS = 0,
512 eSTA_TITAN,
513 eSTA_POLARIS,
514 eSTA_11b,
515 eSTA_11bg,
516 eSTA_11a,
517 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700518#ifdef WLAN_FEATURE_11AC
519 eSTA_11ac,
520#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700521 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
522} tStaRateMode, *tpStaRateMode;
523
524#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
525#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
526#define SIR_NUM_POLARIS_RATES 3 //72,96,108
527
528#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
529
530
531typedef enum eSirBssType
532{
533 eSIR_INFRASTRUCTURE_MODE,
534 eSIR_INFRA_AP_MODE, //Added for softAP support
535 eSIR_IBSS_MODE,
536 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
537 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
538 eSIR_AUTO_MODE,
539 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
540} tSirBssType;
541
542typedef enum eSirNwType
543{
544 eSIR_11A_NW_TYPE,
545 eSIR_11B_NW_TYPE,
546 eSIR_11G_NW_TYPE,
547 eSIR_11N_NW_TYPE,
548 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
549} tSirNwType;
550
551typedef tANI_U16 tSirMacBeaconInterval;
552
553#define SIR_MAC_RATESET_EID_MAX 12
554
555typedef enum eSirMacHTOperatingMode
556{
557 eSIR_HT_OP_MODE_PURE, // No Protection
558 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
559 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
560 eSIR_HT_OP_MODE_MIXED, // Protection is required
561 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
562} tSirMacHTOperatingMode;
563
Jeff Johnson295189b2012-06-20 16:38:30 -0700564/// Encryption type enum used with peer
565typedef enum eAniEdType
566{
567 eSIR_ED_NONE,
568 eSIR_ED_WEP40,
569 eSIR_ED_WEP104,
570 eSIR_ED_TKIP,
571 eSIR_ED_CCMP,
572 eSIR_ED_WPI,
573 eSIR_ED_AES_128_CMAC,
574 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
575} tAniEdType;
576
577#define WLAN_MAX_KEY_RSC_LEN 16
578#define WLAN_WAPI_KEY_RSC_LEN 16
579
580/// MAX key length when ULA is used
581#define SIR_MAC_MAX_KEY_LENGTH 32
582#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
583
584/// Enum to specify whether key is used
585/// for TX only, RX only or both
586typedef enum eAniKeyDirection
587{
588 eSIR_TX_ONLY,
589 eSIR_RX_ONLY,
590 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700591 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700592 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
593} tAniKeyDirection;
594
595typedef enum eAniWepType
596{
597 eSIR_WEP_STATIC,
598 eSIR_WEP_DYNAMIC,
599 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
600} tAniWepType;
601
602typedef enum eSriLinkState {
603
604 eSIR_LINK_IDLE_STATE = 0,
605 eSIR_LINK_PREASSOC_STATE = 1,
606 eSIR_LINK_POSTASSOC_STATE = 2,
607 eSIR_LINK_AP_STATE = 3,
608 eSIR_LINK_IBSS_STATE = 4,
609
610 /* BT-AMP Case */
611 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
612 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
613 eSIR_LINK_BTAMP_AP_STATE = 7,
614 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700615
Jeff Johnson295189b2012-06-20 16:38:30 -0700616 /* Reserved for HAL Internal Use */
617 eSIR_LINK_LEARN_STATE = 9,
618 eSIR_LINK_SCAN_STATE = 10,
619 eSIR_LINK_FINISH_SCAN_STATE = 11,
620 eSIR_LINK_INIT_CAL_STATE = 12,
621 eSIR_LINK_FINISH_CAL_STATE = 13,
622#ifdef WLAN_FEATURE_P2P
623 eSIR_LINK_LISTEN_STATE = 14,
Gopichand Nakkala180b1102013-05-29 13:12:44 +0530624 eSIR_LINK_SEND_ACTION_STATE = 15,
Jeff Johnson295189b2012-06-20 16:38:30 -0700625#endif
626 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
627} tSirLinkState;
628
629typedef enum
630{
631 HAL_SUMMARY_STATS_INFO = 0x00000001,
632 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
633 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
634 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
635 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
636 HAL_PER_STA_STATS_INFO = 0x00000020
637}eHalStatsMask;
638
639/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700640typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700641{
642 BTAMP_EVENT_CONNECTION_START,
643 BTAMP_EVENT_CONNECTION_STOP,
644 BTAMP_EVENT_CONNECTION_TERMINATED,
645 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
646} tBtAmpEventType;
647
648//***************************************************************
649
650
651/*******************PE Statistics*************************/
652typedef enum
653{
654 PE_SUMMARY_STATS_INFO = 0x00000001,
655 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
656 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
657 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
658 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
659 PE_PER_STA_STATS_INFO = 0x00000020,
660 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
661}ePEStatsMask;
662
663/*---------------------------------------------------------------------------
664 Message definitons - All the messages below need to be packed
665 ---------------------------------------------------------------------------*/
666
667#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
668#pragma pack(push, 1)
669#elif defined(__ANI_COMPILER_PRAGMA_PACK)
670#pragma pack(1)
671#else
672#endif
673
674/// Definition for HAL API Version.
675typedef PACKED_PRE struct PACKED_POST
676{
677 tANI_U8 revision;
678 tANI_U8 version;
679 tANI_U8 minor;
680 tANI_U8 major;
681} tWcnssWlanVersion, *tpWcnssWlanVersion;
682
683/// Definition for Encryption Keys
684typedef PACKED_PRE struct PACKED_POST
685{
686 tANI_U8 keyId;
687 tANI_U8 unicast; // 0 for multicast
688 tAniKeyDirection keyDirection;
689 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
690 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
691 tANI_U16 keyLength;
692 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
693} tSirKeys, *tpSirKeys;
694
695
696//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
697typedef PACKED_PRE struct PACKED_POST
698{
699 /*STA Index*/
700 tANI_U16 staIdx;
701
702 /*Encryption Type used with peer*/
703 tAniEdType encType;
704
705 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700706 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700707
708 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
709 tANI_U8 defWEPIdx;
710
Jeff Johnson295189b2012-06-20 16:38:30 -0700711 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700712 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
713
Jeff Johnson295189b2012-06-20 16:38:30 -0700714 /*Control for Replay Count, 1= Single TID based replay count on Tx
715 0 = Per TID based replay count on TX */
716 tANI_U8 singleTidRc;
717
718} tSetStaKeyParams, *tpSetStaKeyParams;
719
720
721
722/* 4-byte control message header used by HAL*/
723typedef PACKED_PRE struct PACKED_POST
724{
Jeff Johnsone7245742012-09-05 17:12:55 -0700725 tHalHostMsgType msgType:16;
726 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700727 tANI_U32 msgLen;
728} tHalMsgHeader, *tpHalMsgHeader;
729
730/* Config format required by HAL for each CFG item*/
731typedef PACKED_PRE struct PACKED_POST
732{
733 /* Cfg Id. The Id required by HAL is exported by HAL
734 * in shared header file between UMAC and HAL.*/
735 tANI_U16 uCfgId;
736
Jeff Johnson32d95a32012-09-10 13:15:23 -0700737 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700738 * in the TLV format.*/
739 tANI_U16 uCfgLen;
740
741 /* Padding bytes for unaligned address's */
742 tANI_U16 uCfgPadBytes;
743
744 /* Reserve bytes for making cfgVal to align address */
745 tANI_U16 uCfgReserve;
746
747 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
748 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
749} tHalCfg, *tpHalCfg;
750
751/*---------------------------------------------------------------------------
752 WLAN_HAL_START_REQ
753---------------------------------------------------------------------------*/
754
755typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
756{
757 /* Drive Type - Production or FTM etc */
758 tDriverType driverType;
759
760 /*Length of the config buffer*/
761 tANI_U32 uConfigBufferLen;
762
Jeff Johnson32d95a32012-09-10 13:15:23 -0700763 /* Following this there is a TLV formatted buffer of length
764 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700765 * The TLV is expected to be formatted like this:
766 * 0 15 31 31+CFG_LEN-1 length-1
767 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
768 */
769} tHalMacStartParameters, *tpHalMacStartParameters;
770
771typedef PACKED_PRE struct PACKED_POST
772{
773 /* Note: The length specified in tHalMacStartReqMsg messages should be
774 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
775 tHalMsgHeader header;
776 tHalMacStartParameters startReqParams;
777} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
778
779/*---------------------------------------------------------------------------
780 WLAN_HAL_START_RSP
781---------------------------------------------------------------------------*/
782
783typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
784{
785 /*success or failure */
786 tANI_U16 status;
787
788 /*Max number of STA supported by the device*/
789 tANI_U8 ucMaxStations;
790
791 /*Max number of BSS supported by the device*/
792 tANI_U8 ucMaxBssids;
793
794 /*API Version */
795 tWcnssWlanVersion wcnssWlanVersion;
796
797 /*CRM build information */
798 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
799
800 /*hardware/chipset/misc version information */
801 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
802
803} tHalMacStartRspParams, *tpHalMacStartRspParams;
804
805typedef PACKED_PRE struct PACKED_POST
806{
807 tHalMsgHeader header;
808 tHalMacStartRspParams startRspParams;
809} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
810
811/*---------------------------------------------------------------------------
812 WLAN_HAL_STOP_REQ
813---------------------------------------------------------------------------*/
814
815typedef PACKED_PRE struct PACKED_POST
816{
817 /*The reason for which the device is being stopped*/
818 tHalStopType reason;
819
820}tHalMacStopReqParams, *tpHalMacStopReqParams;
821
822typedef PACKED_PRE struct PACKED_POST
823{
824 tHalMsgHeader header;
825 tHalMacStopReqParams stopReqParams;
826} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
827
828/*---------------------------------------------------------------------------
829 WLAN_HAL_STOP_RSP
830---------------------------------------------------------------------------*/
831
832typedef PACKED_PRE struct PACKED_POST
833{
834 /*success or failure */
835 tANI_U32 status;
836
837}tHalMacStopRspParams, *tpHalMacStopRspParams;
838
839typedef PACKED_PRE struct PACKED_POST
840{
841 tHalMsgHeader header;
842 tHalMacStopRspParams stopRspParams;
843} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
844
845/*---------------------------------------------------------------------------
846 WLAN_HAL_UPDATE_CFG_REQ
847---------------------------------------------------------------------------*/
848
849typedef PACKED_PRE struct PACKED_POST
850{
851 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
852 tANI_U32 uConfigBufferLen;
853
Jeff Johnson32d95a32012-09-10 13:15:23 -0700854 /* Following this there is a TLV formatted buffer of length
855 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700856 * The TLV is expected to be formatted like this:
857 * 0 15 31 31+CFG_LEN-1 length-1
858 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
859 */
860} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
861
862typedef PACKED_PRE struct PACKED_POST
863{
864 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
865 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
866 tHalMsgHeader header;
867 tHalUpdateCfgReqParams updateCfgReqParams;
868} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
869
870/*---------------------------------------------------------------------------
871 WLAN_HAL_UPDATE_CFG_RSP
872---------------------------------------------------------------------------*/
873
874typedef PACKED_PRE struct PACKED_POST
875{
876 /* success or failure */
877 tANI_U32 status;
878
879}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
880
881typedef PACKED_PRE struct PACKED_POST
882{
883 tHalMsgHeader header;
884 tHalUpdateCfgRspParams updateCfgRspParams;
885} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
886
887/*---------------------------------------------------------------------------
888 WLAN_HAL_INIT_SCAN_REQ
889---------------------------------------------------------------------------*/
890
891/// Frame control field format (2 bytes)
892typedef __ani_attr_pre_packed struct sSirMacFrameCtl
893{
894
895#ifndef ANI_LITTLE_BIT_ENDIAN
896
897 tANI_U8 subType :4;
898 tANI_U8 type :2;
899 tANI_U8 protVer :2;
900
901 tANI_U8 order :1;
902 tANI_U8 wep :1;
903 tANI_U8 moreData :1;
904 tANI_U8 powerMgmt :1;
905 tANI_U8 retry :1;
906 tANI_U8 moreFrag :1;
907 tANI_U8 fromDS :1;
908 tANI_U8 toDS :1;
909
910#else
911
912 tANI_U8 protVer :2;
913 tANI_U8 type :2;
914 tANI_U8 subType :4;
915
916 tANI_U8 toDS :1;
917 tANI_U8 fromDS :1;
918 tANI_U8 moreFrag :1;
919 tANI_U8 retry :1;
920 tANI_U8 powerMgmt :1;
921 tANI_U8 moreData :1;
922 tANI_U8 wep :1;
923 tANI_U8 order :1;
924
925#endif
926
927} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
928
929/// Sequence control field
930typedef __ani_attr_pre_packed struct sSirMacSeqCtl
931{
932 tANI_U8 fragNum : 4;
933 tANI_U8 seqNumLo : 4;
934 tANI_U8 seqNumHi : 8;
935} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
936
937/// Management header format
938typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
939{
940 tSirMacFrameCtl fc;
941 tANI_U8 durationLo;
942 tANI_U8 durationHi;
943 tANI_U8 da[6];
944 tANI_U8 sa[6];
945 tANI_U8 bssId[6];
946 tSirMacSeqCtl seqControl;
947} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
948
949/// Scan Entry to hold active BSS idx's
950typedef __ani_attr_pre_packed struct sSirScanEntry
951{
952 tANI_U8 bssIdx[HAL_NUM_BSSID];
953 tANI_U8 activeBSScnt;
954}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
955
956typedef PACKED_PRE struct PACKED_POST {
957
958 /*LEARN - AP Role
959 SCAN - STA Role*/
960 eHalSysMode scanMode;
961
962 /*BSSID of the BSS*/
963 tSirMacAddr bssid;
964
965 /*Whether BSS needs to be notified*/
966 tANI_U8 notifyBss;
967
968 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
969 CTS to Self). Must always be a valid frame type.*/
970 tANI_U8 frameType;
971
972 /*UMAC has the option of passing the MAC frame to be used for notifying
973 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
974 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
975 frameType.*/
976 tANI_U8 frameLength;
977
Jeff Johnson32d95a32012-09-10 13:15:23 -0700978 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700979 is non-zero. */
980 tSirMacMgmtHdr macMgmtHdr;
981
982 /*Entry to hold number of active BSS idx's*/
983 tSirScanEntry scanEntry;
984
985} tInitScanParams, * tpInitScanParams;
986
987typedef PACKED_PRE struct PACKED_POST
988{
989 tHalMsgHeader header;
990 tInitScanParams initScanParams;
991} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
992
993typedef PACKED_PRE struct PACKED_POST {
994
995 /*LEARN - AP Role
996 SCAN - STA Role*/
997 eHalSysMode scanMode;
998
999 /*BSSID of the BSS*/
1000 tSirMacAddr bssid;
1001
1002 /*Whether BSS needs to be notified*/
1003 tANI_U8 notifyBss;
1004
1005 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1006 CTS to Self). Must always be a valid frame type.*/
1007 tANI_U8 frameType;
1008
1009 /*UMAC has the option of passing the MAC frame to be used for notifying
1010 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1011 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1012 frameType.*/
1013 tANI_U8 frameLength;
1014
Jeff Johnson32d95a32012-09-10 13:15:23 -07001015 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -07001016 is non-zero. */
1017 tSirMacMgmtHdr macMgmtHdr;
1018
1019 /*Entry to hold number of active BSS idx's*/
1020 tSirScanEntry scanEntry;
1021
1022 /* Single NoA usage in Scanning */
1023 tANI_U8 useNoA;
1024
1025 /* Indicates the scan duration (in ms) */
1026 tANI_U16 scanDuration;
1027
1028} tInitScanConParams, * tpInitScanConParams;
1029
1030typedef PACKED_PRE struct PACKED_POST
1031{
1032 tHalMsgHeader header;
1033 tInitScanConParams initScanParams;
1034} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
1035
1036
1037/*---------------------------------------------------------------------------
1038 WLAN_HAL_INIT_SCAN_RSP
1039---------------------------------------------------------------------------*/
1040
1041typedef PACKED_PRE struct PACKED_POST
1042{
1043 /*success or failure */
1044 tANI_U32 status;
1045
1046}tHalInitScanRspParams, *tpHalInitScanRspParams;
1047
1048typedef PACKED_PRE struct PACKED_POST
1049{
1050 tHalMsgHeader header;
1051 tHalInitScanRspParams initScanRspParams;
1052} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
1053
1054/*---------------------------------------------------------------------------
1055 WLAN_HAL_START_SCAN_REQ
1056---------------------------------------------------------------------------*/
1057
Jeff Johnson32d95a32012-09-10 13:15:23 -07001058typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001059{
1060 /*Indicates the channel to scan*/
1061 tANI_U8 scanChannel;
1062
1063 } tStartScanParams, * tpStartScanParams;
1064
1065typedef PACKED_PRE struct PACKED_POST
1066{
1067 tHalMsgHeader header;
1068 tStartScanParams startScanParams;
1069} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
1070
1071/*---------------------------------------------------------------------------
1072 WLAN_HAL_START_SCAN_RSP
1073---------------------------------------------------------------------------*/
1074
1075typedef PACKED_PRE struct PACKED_POST
1076{
1077 /*success or failure */
1078 tANI_U32 status;
1079
1080 tANI_U32 startTSF[2];
1081 tPowerdBm txMgmtPower;
1082
1083}tHalStartScanRspParams, *tpHalStartScanRspParams;
1084
1085typedef PACKED_PRE struct PACKED_POST
1086{
1087 tHalMsgHeader header;
1088 tHalStartScanRspParams startScanRspParams;
1089} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
1090
1091/*---------------------------------------------------------------------------
1092 WLAN_HAL_END_SCAN_REQ
1093---------------------------------------------------------------------------*/
1094
1095typedef PACKED_PRE struct PACKED_POST
1096{
1097 /*Indicates the channel to stop scanning. Not used really. But retained
1098 for symmetry with "start Scan" message. It can also help in error
1099 check if needed.*/
1100 tANI_U8 scanChannel;
1101
1102} tEndScanParams, *tpEndScanParams;
1103
1104typedef PACKED_PRE struct PACKED_POST
1105{
1106 tHalMsgHeader header;
1107 tEndScanParams endScanParams;
1108} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1109
1110/*---------------------------------------------------------------------------
1111 WLAN_HAL_END_SCAN_RSP
1112---------------------------------------------------------------------------*/
1113
1114typedef PACKED_PRE struct PACKED_POST
1115{
1116 /*success or failure */
1117 tANI_U32 status;
1118
1119}tHalEndScanRspParams, *tpHalEndScanRspParams;
1120
1121typedef PACKED_PRE struct PACKED_POST
1122{
1123 tHalMsgHeader header;
1124 tHalEndScanRspParams endScanRspParams;
1125} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1126
1127/*---------------------------------------------------------------------------
1128 WLAN_HAL_FINISH_SCAN_REQ
1129---------------------------------------------------------------------------*/
1130
1131typedef PACKED_PRE struct PACKED_POST
1132{
1133 /* Identifies the operational state of the AP/STA
1134 * LEARN - AP Role SCAN - STA Role */
1135 eHalSysMode scanMode;
1136
1137 /*Operating channel to tune to.*/
1138 tANI_U8 currentOperChannel;
1139
1140 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1141 40 MHz extension channel in combination with the control channel*/
1142 ePhyChanBondState cbState;
1143
1144 /*BSSID of the BSS*/
1145 tSirMacAddr bssid;
1146
1147 /*Whether BSS needs to be notified*/
1148 tANI_U8 notifyBss;
1149
1150 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1151 CTS to Self). Must always be a valid frame type.*/
1152 tANI_U8 frameType;
1153
1154 /*UMAC has the option of passing the MAC frame to be used for notifying
1155 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1156 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1157 frameType.*/
1158 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001159
1160 /*Following the framelength there is a MAC frame buffer if frameLength
1161 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001162 tSirMacMgmtHdr macMgmtHdr;
1163
1164 /*Entry to hold number of active BSS idx's*/
1165 tSirScanEntry scanEntry;
1166
1167} tFinishScanParams, *tpFinishScanParams;
1168
1169typedef PACKED_PRE struct PACKED_POST
1170{
1171 tHalMsgHeader header;
1172 tFinishScanParams finishScanParams;
1173} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1174
1175/*---------------------------------------------------------------------------
1176 WLAN_HAL_FINISH_SCAN_RSP
1177---------------------------------------------------------------------------*/
1178
1179typedef PACKED_PRE struct PACKED_POST
1180{
1181 /*success or failure */
1182 tANI_U32 status;
1183
1184}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1185
1186typedef PACKED_PRE struct PACKED_POST
1187{
1188 tHalMsgHeader header;
1189 tHalFinishScanRspParams finishScanRspParams;
1190} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1191
1192/*---------------------------------------------------------------------------
1193 WLAN_HAL_CONFIG_STA_REQ
1194---------------------------------------------------------------------------*/
1195
1196typedef PACKED_PRE struct PACKED_POST {
1197 /*
1198 * For Self STA Entry: this represents Self Mode.
1199 * For Peer Stations, this represents the mode of the peer.
1200 * On Station:
1201 * --this mode is updated when PE adds the Self Entry.
1202 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1203 * ON AP:
1204 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1205 * to indicate the self mode of the AP.
1206 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1207 */
1208
1209 tStaRateMode opRateMode;
1210 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1211 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1212 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1213 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1214 tANI_U16 reserved;
1215
1216 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1217 //First 26 bits are reserved for those Titan rates and
1218 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1219 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1220
1221 /*
1222 * 0-76 bits used, remaining reserved
1223 * bits 0-15 and 32 should be set.
1224 */
1225 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1226
1227 /*
1228 * RX Highest Supported Data Rate defines the highest data
1229 * rate that the STA is able to receive, in unites of 1Mbps.
1230 * This value is derived from "Supported MCS Set field" inside
1231 * the HT capability element.
1232 */
1233 tANI_U16 rxHighestDataRate;
1234
1235} tSirSupportedRates, *tpSirSupportedRates;
1236
1237typedef PACKED_PRE struct PACKED_POST
1238{
1239 /*BSSID of STA*/
1240 tSirMacAddr bssId;
1241
1242 /*ASSOC ID, as assigned by UMAC*/
1243 tANI_U16 assocId;
1244
1245 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1246 tANI_U8 staType;
1247
1248 /*Short Preamble Supported.*/
1249 tANI_U8 shortPreambleSupported;
1250
1251 /*MAC Address of STA*/
1252 tSirMacAddr staMac;
1253
1254 /*Listen interval of the STA*/
1255 tANI_U16 listenInterval;
1256
1257 /*Support for 11e/WMM*/
1258 tANI_U8 wmmEnabled;
1259
1260 /*11n HT capable STA*/
1261 tANI_U8 htCapable;
1262
1263 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1264 tANI_U8 txChannelWidthSet;
1265
1266 /*RIFS mode 0 - NA, 1 - Allowed */
1267 tANI_U8 rifsMode;
1268
Jeff Johnson32d95a32012-09-10 13:15:23 -07001269 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001270 0 - No Support, 1 - Supported
1271 SG - there is global field */
1272 tANI_U8 lsigTxopProtection;
1273
1274 /*Max Ampdu Size supported by STA. TPE programming.
1275 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1276 tANI_U8 maxAmpduSize;
1277
1278 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1279 tANI_U8 maxAmpduDensity;
1280
1281 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1282 tANI_U8 maxAmsduSize;
1283
1284 /*Short GI support for 40Mhz packets*/
1285 tANI_U8 fShortGI40Mhz;
1286
1287 /*Short GI support for 20Mhz packets*/
1288 tANI_U8 fShortGI20Mhz;
1289
Jeff Johnson295189b2012-06-20 16:38:30 -07001290 /*Robust Management Frame (RMF) enabled/disabled*/
1291 tANI_U8 rmfEnabled;
1292
1293 /* The unicast encryption type in the association */
1294 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001295
1296 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001297 will set this flag in case of RE-ASSOC, where we want to reuse the old
1298 STA ID. 0 = Add, 1 = Update*/
1299 tANI_U8 action;
1300
1301 /*U-APSD Flags: 1b per AC. Encoded as follows:
1302 b7 b6 b5 b4 b3 b2 b1 b0 =
1303 X X X X BE BK VI VO */
1304 tANI_U8 uAPSD;
1305
1306 /*Max SP Length*/
1307 tANI_U8 maxSPLen;
1308
1309 /*11n Green Field preamble support
1310 0 - Not supported, 1 - Supported */
1311 tANI_U8 greenFieldCapable;
1312
1313 /*MIMO Power Save mode*/
1314 tSirMacHTMIMOPowerSaveState mimoPS;
1315
1316 /*Delayed BA Support*/
1317 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001318
Jeff Johnson295189b2012-06-20 16:38:30 -07001319 /*Max AMPDU duration in 32us*/
1320 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001321
Jeff Johnson295189b2012-06-20 16:38:30 -07001322 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1323 it to 0 if AP does not support it. This indication is sent to HAL and
1324 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1325 tANI_U8 fDsssCckMode40Mhz;
1326
1327 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1328 Retained for backward compalibity with existing HAL code*/
1329 tANI_U8 staIdx;
1330
1331 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1332 Retained for backward compalibity with existing HAL code*/
1333 tANI_U8 bssIdx;
1334
1335 tANI_U8 p2pCapableSta;
1336
Jeff Johnsone7245742012-09-05 17:12:55 -07001337 /*Reserved to align next field on a dword boundary*/
1338 tANI_U8 reserved;
1339
1340 /*These rates are the intersection of peer and self capabilities.*/
1341 tSirSupportedRates supportedRates;
1342
Jeff Johnson295189b2012-06-20 16:38:30 -07001343} tConfigStaParams, *tpConfigStaParams;
1344
Jeff Johnsone7245742012-09-05 17:12:55 -07001345/*------------------------------------------------------------------------
1346 * WLAN_HAL_CONFIG_STA_REQ
1347 * ----------------------------------------------------------------------*/
1348
1349typedef PACKED_PRE struct PACKED_POST {
1350 /*
1351 * For Self STA Entry: this represents Self Mode.
1352 * For Peer Stations, this represents the mode of the peer.
1353 * On Station:
1354 * --this mode is updated when PE adds the Self Entry.
1355 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1356 * ON AP:
1357 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1358 * to indicate the self mode of the AP.
1359 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1360 */
1361
1362 tStaRateMode opRateMode;
1363 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1364 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1365 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1366 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1367 tANI_U16 reserved;
1368
1369 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1370 //First 26 bits are reserved for those Titan rates and
1371 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1372 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1373
1374 /*
1375 * 0-76 bits used, remaining reserved
1376 * bits 0-15 and 32 should be set.
1377 */
1378 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1379
1380 /*
1381 * RX Highest Supported Data Rate defines the highest data
1382 * rate that the STA is able to receive, in unites of 1Mbps.
1383 * This value is derived from "Supported MCS Set field" inside
1384 * the HT capability element.
1385 */
1386 tANI_U16 rxHighestDataRate;
1387
1388 /* Indicates the Maximum MCS that can be received for each number
1389 * of spacial streams */
1390 tANI_U16 vhtRxMCSMap;
1391
1392 /*Indicate the highest VHT data rate that the STA is able to receive*/
1393 tANI_U16 vhtRxHighestDataRate;
1394
1395 /* Indicates the Maximum MCS that can be transmitted for each number
1396 * of spacial streams */
1397 tANI_U16 vhtTxMCSMap;
1398
1399 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1400 tANI_U16 vhtTxHighestDataRate;
1401
1402} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1403
1404typedef PACKED_PRE struct PACKED_POST
1405{
1406 /*BSSID of STA*/
1407 tSirMacAddr bssId;
1408
1409 /*ASSOC ID, as assigned by UMAC*/
1410 tANI_U16 assocId;
1411
1412 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1413 tANI_U8 staType;
1414
1415 /*Short Preamble Supported.*/
1416 tANI_U8 shortPreambleSupported;
1417
1418 /*MAC Address of STA*/
1419 tSirMacAddr staMac;
1420
1421 /*Listen interval of the STA*/
1422 tANI_U16 listenInterval;
1423
1424 /*Support for 11e/WMM*/
1425 tANI_U8 wmmEnabled;
1426
1427 /*11n HT capable STA*/
1428 tANI_U8 htCapable;
1429
1430 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1431 tANI_U8 txChannelWidthSet;
1432
1433 /*RIFS mode 0 - NA, 1 - Allowed */
1434 tANI_U8 rifsMode;
1435
1436 /*L-SIG TXOP Protection mechanism
1437 0 - No Support, 1 - Supported
1438 SG - there is global field */
1439 tANI_U8 lsigTxopProtection;
1440
1441 /*Max Ampdu Size supported by STA. TPE programming.
1442 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1443 tANI_U8 maxAmpduSize;
1444
1445 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1446 tANI_U8 maxAmpduDensity;
1447
1448 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1449 tANI_U8 maxAmsduSize;
1450
1451 /*Short GI support for 40Mhz packets*/
1452 tANI_U8 fShortGI40Mhz;
1453
1454 /*Short GI support for 20Mhz packets*/
1455 tANI_U8 fShortGI20Mhz;
1456
1457 /*Robust Management Frame (RMF) enabled/disabled*/
1458 tANI_U8 rmfEnabled;
1459
1460 /* The unicast encryption type in the association */
1461 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001462
1463 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001464 will set this flag in case of RE-ASSOC, where we want to reuse the old
1465 STA ID. 0 = Add, 1 = Update*/
1466 tANI_U8 action;
1467
1468 /*U-APSD Flags: 1b per AC. Encoded as follows:
1469 b7 b6 b5 b4 b3 b2 b1 b0 =
1470 X X X X BE BK VI VO */
1471 tANI_U8 uAPSD;
1472
1473 /*Max SP Length*/
1474 tANI_U8 maxSPLen;
1475
1476 /*11n Green Field preamble support
1477 0 - Not supported, 1 - Supported */
1478 tANI_U8 greenFieldCapable;
1479
1480 /*MIMO Power Save mode*/
1481 tSirMacHTMIMOPowerSaveState mimoPS;
1482
1483 /*Delayed BA Support*/
1484 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001485
Jeff Johnsone7245742012-09-05 17:12:55 -07001486 /*Max AMPDU duration in 32us*/
1487 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001488
Jeff Johnsone7245742012-09-05 17:12:55 -07001489 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1490 it to 0 if AP does not support it. This indication is sent to HAL and
1491 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1492 tANI_U8 fDsssCckMode40Mhz;
1493
1494 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1495 Retained for backward compalibity with existing HAL code*/
1496 tANI_U8 staIdx;
1497
1498 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1499 Retained for backward compalibity with existing HAL code*/
1500 tANI_U8 bssIdx;
1501
1502 tANI_U8 p2pCapableSta;
1503
1504 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001505 tANI_U8 htLdpcEnabled:1;
1506 tANI_U8 vhtLdpcEnabled:1;
Gopichand Nakkalaf1c2c782013-01-21 15:42:29 -08001507 tANI_U8 vhtTxBFEnabled:1;
1508 tANI_U8 reserved:5;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001509
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001510 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001511 tSirSupportedRates_V1 supportedRates;
1512
1513 tANI_U8 vhtCapable;
1514 tANI_U8 vhtTxChannelWidthSet;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08001515
Jeff Johnsone7245742012-09-05 17:12:55 -07001516} tConfigStaParams_V1, *tpConfigStaParams_V1;
1517
Jeff Johnson295189b2012-06-20 16:38:30 -07001518typedef PACKED_PRE struct PACKED_POST
1519{
1520 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001521 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001522 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001523 tConfigStaParams_V1 configStaParams_V1;
1524 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001525} tConfigStaReqMsg, *tpConfigStaReqMsg;
1526
1527/*---------------------------------------------------------------------------
1528 WLAN_HAL_CONFIG_STA_RSP
1529---------------------------------------------------------------------------*/
1530
1531typedef PACKED_PRE struct PACKED_POST
1532{
1533 /*success or failure */
1534 tANI_U32 status;
1535
1536 /* Station index; valid only when 'status' field value SUCCESS */
1537 tANI_U8 staIdx;
1538
1539 /* BSSID Index of BSS to which the station is associated */
1540 tANI_U8 bssIdx;
1541
1542 /* DPU Index for PTK */
1543 tANI_U8 dpuIndex;
1544
Jeff Johnson32d95a32012-09-10 13:15:23 -07001545 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001546 tANI_U8 bcastDpuIndex;
1547
1548 /*DPU Index for IGTK */
1549 tANI_U8 bcastMgmtDpuIdx;
1550
1551 /*PTK DPU signature*/
1552 tANI_U8 ucUcastSig;
1553
1554 /*GTK DPU isignature*/
1555 tANI_U8 ucBcastSig;
1556
1557 /* IGTK DPU signature*/
1558 tANI_U8 ucMgmtSig;
1559
1560 tANI_U8 p2pCapableSta;
1561
1562}tConfigStaRspParams, *tpConfigStaRspParams;
1563
1564typedef PACKED_PRE struct PACKED_POST
1565{
1566 tHalMsgHeader header;
1567 tConfigStaRspParams configStaRspParams;
1568}tConfigStaRspMsg, *tpConfigStaRspMsg;
1569
1570/*---------------------------------------------------------------------------
1571 WLAN_HAL_DELETE_STA_REQ
1572---------------------------------------------------------------------------*/
1573
1574/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001575typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001576{
1577 /* Index of STA to delete */
1578 tANI_U8 staIdx;
1579} tDeleteStaParams, *tpDeleteStaParams;
1580
1581/* Delete STA Request message*/
1582typedef PACKED_PRE struct PACKED_POST
1583{
1584 tHalMsgHeader header;
1585 tDeleteStaParams delStaParams;
1586} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1587
1588/*---------------------------------------------------------------------------
1589 WLAN_HAL_DELETE_STA_RSP
1590---------------------------------------------------------------------------*/
1591
1592/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001593typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001594{
1595 /*success or failure */
1596 tANI_U32 status;
1597
1598 /* Index of STA deleted */
1599 tANI_U8 staId;
1600} tDeleteStaRspParams, *tpDeleteStaRspParams;
1601
1602/* Delete STA Response message*/
1603typedef PACKED_PRE struct PACKED_POST
1604{
1605 tHalMsgHeader header;
1606 tDeleteStaRspParams delStaRspParams;
1607} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1608
1609/*---------------------------------------------------------------------------
1610 WLAN_HAL_CONFIG_BSS_REQ
1611---------------------------------------------------------------------------*/
1612
1613//12 Bytes long because this structure can be used to represent rate
1614//and extended rate set IEs. The parser assume this to be at least 12
1615typedef __ani_attr_pre_packed struct sSirMacRateSet
1616{
1617 tANI_U8 numRates;
1618 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1619} __ani_attr_packed tSirMacRateSet;
1620
1621// access category record
1622typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1623{
1624#ifndef ANI_LITTLE_BIT_ENDIAN
1625 tANI_U8 rsvd : 1;
1626 tANI_U8 aci : 2;
1627 tANI_U8 acm : 1;
1628 tANI_U8 aifsn : 4;
1629#else
1630 tANI_U8 aifsn : 4;
1631 tANI_U8 acm : 1;
1632 tANI_U8 aci : 2;
1633 tANI_U8 rsvd : 1;
1634#endif
1635} __ani_attr_packed tSirMacAciAifsn;
1636
1637// contention window size
1638typedef __ani_attr_pre_packed struct sSirMacCW
1639{
1640#ifndef ANI_LITTLE_BIT_ENDIAN
1641 tANI_U8 max : 4;
1642 tANI_U8 min : 4;
1643#else
1644 tANI_U8 min : 4;
1645 tANI_U8 max : 4;
1646#endif
1647} __ani_attr_packed tSirMacCW;
1648
1649typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1650{
1651 tSirMacAciAifsn aci;
1652 tSirMacCW cw;
1653 tANI_U16 txoplimit;
1654} __ani_attr_packed tSirMacEdcaParamRecord;
1655
1656typedef __ani_attr_pre_packed struct sSirMacSSid
1657{
1658 tANI_U8 length;
1659 tANI_U8 ssId[32];
1660} __ani_attr_packed tSirMacSSid;
1661
1662// Concurrency role. These are generic IDs that identify the various roles
1663// in the software system.
1664typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001665 HAL_STA_MODE=0,
1666 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001667 HAL_P2P_CLIENT_MODE,
1668 HAL_P2P_GO_MODE,
1669 HAL_MONITOR_MODE,
1670} tHalConMode;
1671
1672//This is a bit pattern to be set for each mode
1673//bit 0 - sta mode
1674//bit 1 - ap mode
1675//bit 2 - p2p client mode
1676//bit 3 - p2p go mode
1677typedef enum
1678{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001679 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001680 HAL_SAP=2,
1681 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1682 HAL_P2P_CLIENT=4,
1683 HAL_P2P_GO=8,
1684 HAL_MAX_CONCURRENCY_PERSONA=4
1685} tHalConcurrencyMode;
1686
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07001687// IFACE PERSONA for different Operating modes
1688typedef enum
1689{
1690 HAL_IFACE_UNKNOWN,
1691 HAL_IFACE_STA_MODE,
1692 HAL_IFACE_P2P_MODE,
1693 HAL_IFACE_MAX
1694} tHalIfacePersona;
1695
Jeff Johnson295189b2012-06-20 16:38:30 -07001696typedef PACKED_PRE struct PACKED_POST
1697{
1698 /* BSSID */
1699 tSirMacAddr bssId;
1700
Jeff Johnson295189b2012-06-20 16:38:30 -07001701 /* Self Mac Address */
1702 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001703
1704 /* BSS type */
1705 tSirBssType bssType;
1706
1707 /*Operational Mode: AP =0, STA = 1*/
1708 tANI_U8 operMode;
1709
1710 /*Network Type*/
1711 tSirNwType nwType;
1712
1713 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1714 tANI_U8 shortSlotTimeSupported;
1715
1716 /*Co-exist with 11a STA*/
1717 tANI_U8 llaCoexist;
1718
1719 /*Co-exist with 11b STA*/
1720 tANI_U8 llbCoexist;
1721
1722 /*Co-exist with 11g STA*/
1723 tANI_U8 llgCoexist;
1724
1725 /*Coexistence with 11n STA*/
1726 tANI_U8 ht20Coexist;
1727
1728 /*Non GF coexist flag*/
1729 tANI_U8 llnNonGFCoexist;
1730
1731 /*TXOP protection support*/
1732 tANI_U8 fLsigTXOPProtectionFullSupport;
1733
1734 /*RIFS mode*/
1735 tANI_U8 fRIFSMode;
1736
1737 /*Beacon Interval in TU*/
1738 tSirMacBeaconInterval beaconInterval;
1739
1740 /*DTIM period*/
1741 tANI_U8 dtimPeriod;
1742
1743 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1744 tANI_U8 txChannelWidthSet;
1745
1746 /*Operating channel*/
1747 tANI_U8 currentOperChannel;
1748
1749 /*Extension channel for channel bonding*/
1750 tANI_U8 currentExtChannel;
1751
1752 /*Reserved to align next field on a dword boundary*/
1753 tANI_U8 reserved;
1754
Jeff Johnsone7245742012-09-05 17:12:55 -07001755 /*SSID of the BSS*/
1756 tSirMacSSid ssId;
1757
1758 /*HAL should update the existing BSS entry, if this flag is set.
1759 UMAC will set this flag in case of reassoc, where we want to resue the
1760 the old BSSID and still return success 0 = Add, 1 = Update*/
1761 tANI_U8 action;
1762
1763 /* MAC Rate Set */
1764 tSirMacRateSet rateSet;
1765
1766 /*Enable/Disable HT capabilities of the BSS*/
1767 tANI_U8 htCapable;
1768
1769 // Enable/Disable OBSS protection
1770 tANI_U8 obssProtEnabled;
1771
1772 /*RMF enabled/disabled*/
1773 tANI_U8 rmfEnabled;
1774
1775 /*HT Operating Mode operating mode of the 802.11n STA*/
1776 tSirMacHTOperatingMode htOperMode;
1777
1778 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1779 tANI_U8 dualCTSProtection;
1780
1781 /* Probe Response Max retries */
1782 tANI_U8 ucMaxProbeRespRetryLimit;
1783
1784 /* To Enable Hidden ssid */
1785 tANI_U8 bHiddenSSIDEn;
1786
1787 /* To Enable Disable FW Proxy Probe Resp */
1788 tANI_U8 bProxyProbeRespEn;
1789
1790 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1791 EDCA params or might not desire to apply EDCA params during config BSS.
1792 0 implies Not Valid ; Non-Zero implies valid*/
1793 tANI_U8 edcaParamsValid;
1794
1795 /*EDCA Parameters for Best Effort Access Category*/
1796 tSirMacEdcaParamRecord acbe;
1797
1798 /*EDCA Parameters forBackground Access Category*/
1799 tSirMacEdcaParamRecord acbk;
1800
1801 /*EDCA Parameters for Video Access Category*/
1802 tSirMacEdcaParamRecord acvi;
1803
1804 /*EDCA Parameters for Voice Access Category*/
1805 tSirMacEdcaParamRecord acvo;
1806
1807#ifdef WLAN_FEATURE_VOWIFI_11R
1808 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1809 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1810#endif
1811
1812 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1813 tANI_U8 halPersona;
1814
1815 tANI_U8 bSpectrumMgtEnable;
1816
1817 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1818 tANI_S8 txMgmtPower;
1819 /*maxTxPower has max power to be used after applying the power constraint if any */
1820 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001821 /*Context of the station being added in HW
1822 Add a STA entry for "itself" -
1823 On AP - Add the AP itself in an "STA context"
1824 On STA - Add the AP to which this STA is joining in an "STA context" */
1825 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001826} tConfigBssParams, * tpConfigBssParams;
1827
1828
1829/*--------------------------------------------------------------------------
1830 * WLAN_HAL_CONFIG_BSS_REQ
1831 *--------------------------------------------------------------------------*/
1832typedef PACKED_PRE struct PACKED_POST
1833{
1834 /* BSSID */
1835 tSirMacAddr bssId;
1836
Jeff Johnsone7245742012-09-05 17:12:55 -07001837 /* Self Mac Address */
1838 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001839
1840 /* BSS type */
1841 tSirBssType bssType;
1842
1843 /*Operational Mode: AP =0, STA = 1*/
1844 tANI_U8 operMode;
1845
1846 /*Network Type*/
1847 tSirNwType nwType;
1848
1849 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1850 tANI_U8 shortSlotTimeSupported;
1851
1852 /*Co-exist with 11a STA*/
1853 tANI_U8 llaCoexist;
1854
1855 /*Co-exist with 11b STA*/
1856 tANI_U8 llbCoexist;
1857
1858 /*Co-exist with 11g STA*/
1859 tANI_U8 llgCoexist;
1860
1861 /*Coexistence with 11n STA*/
1862 tANI_U8 ht20Coexist;
1863
1864 /*Non GF coexist flag*/
1865 tANI_U8 llnNonGFCoexist;
1866
1867 /*TXOP protection support*/
1868 tANI_U8 fLsigTXOPProtectionFullSupport;
1869 /*RIFS mode*/
1870 tANI_U8 fRIFSMode;
1871
1872 /*Beacon Interval in TU*/
1873 tSirMacBeaconInterval beaconInterval;
1874
1875 /*DTIM period*/
1876 tANI_U8 dtimPeriod;
1877
1878 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1879 tANI_U8 txChannelWidthSet;
1880
1881 /*Operating channel*/
1882 tANI_U8 currentOperChannel;
1883
1884 /*Extension channel for channel bonding*/
1885 tANI_U8 currentExtChannel;
1886
1887 /*Reserved to align next field on a dword boundary*/
1888 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001889
1890 /*SSID of the BSS*/
1891 tSirMacSSid ssId;
1892
1893 /*HAL should update the existing BSS entry, if this flag is set.
1894 UMAC will set this flag in case of reassoc, where we want to resue the
1895 the old BSSID and still return success 0 = Add, 1 = Update*/
1896 tANI_U8 action;
1897
1898 /* MAC Rate Set */
1899 tSirMacRateSet rateSet;
1900
1901 /*Enable/Disable HT capabilities of the BSS*/
1902 tANI_U8 htCapable;
1903
1904 // Enable/Disable OBSS protection
1905 tANI_U8 obssProtEnabled;
1906
1907 /*RMF enabled/disabled*/
1908 tANI_U8 rmfEnabled;
1909
1910 /*HT Operating Mode operating mode of the 802.11n STA*/
1911 tSirMacHTOperatingMode htOperMode;
1912
1913 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1914 tANI_U8 dualCTSProtection;
1915
1916 /* Probe Response Max retries */
1917 tANI_U8 ucMaxProbeRespRetryLimit;
1918
1919 /* To Enable Hidden ssid */
1920 tANI_U8 bHiddenSSIDEn;
1921
1922 /* To Enable Disable FW Proxy Probe Resp */
1923 tANI_U8 bProxyProbeRespEn;
1924
Jeff Johnson32d95a32012-09-10 13:15:23 -07001925 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1926 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001927 0 implies Not Valid ; Non-Zero implies valid*/
1928 tANI_U8 edcaParamsValid;
1929
1930 /*EDCA Parameters for Best Effort Access Category*/
1931 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001932
Jeff Johnson295189b2012-06-20 16:38:30 -07001933 /*EDCA Parameters forBackground Access Category*/
1934 tSirMacEdcaParamRecord acbk;
1935
1936 /*EDCA Parameters for Video Access Category*/
1937 tSirMacEdcaParamRecord acvi;
1938
1939 /*EDCA Parameters for Voice Access Category*/
1940 tSirMacEdcaParamRecord acvo;
1941
1942#ifdef WLAN_FEATURE_VOWIFI_11R
1943 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1944 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1945#endif
1946
Jeff Johnson32d95a32012-09-10 13:15:23 -07001947 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001948 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001949
Jeff Johnson295189b2012-06-20 16:38:30 -07001950 tANI_U8 bSpectrumMgtEnable;
1951
1952 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1953 tANI_S8 txMgmtPower;
1954 /*maxTxPower has max power to be used after applying the power constraint if any */
1955 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001956 /*Context of the station being added in HW
1957 Add a STA entry for "itself" -
1958 On AP - Add the AP itself in an "STA context"
1959 On STA - Add the AP to which this STA is joining in an "STA context" */
1960 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001961
Jeff Johnsone7245742012-09-05 17:12:55 -07001962 tANI_U8 vhtCapable;
1963 tANI_U8 vhtTxChannelWidthSet;
1964} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001965
1966typedef PACKED_PRE struct PACKED_POST
1967{
1968 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001969 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001970 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001971 tConfigBssParams_V1 configBssParams_V1;
1972 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001973} tConfigBssReqMsg, *tpConfigBssReqMsg;
1974
1975/*---------------------------------------------------------------------------
1976 WLAN_HAL_CONFIG_BSS_RSP
1977---------------------------------------------------------------------------*/
1978
1979typedef PACKED_PRE struct PACKED_POST
1980{
1981 /* Success or Failure */
1982 tANI_U32 status;
1983
1984 /* BSS index allocated by HAL */
1985 tANI_U8 bssIdx;
1986
1987 /* DPU descriptor index for PTK */
1988 tANI_U8 dpuDescIndx;
1989
1990 /* PTK DPU signature */
1991 tANI_U8 ucastDpuSignature;
1992
1993 /* DPU descriptor index for GTK*/
1994 tANI_U8 bcastDpuDescIndx;
1995
1996 /* GTK DPU signature */
1997 tANI_U8 bcastDpuSignature;
1998
1999 /*DPU descriptor for IGTK*/
2000 tANI_U8 mgmtDpuDescIndx;
2001
2002 /* IGTK DPU signature */
2003 tANI_U8 mgmtDpuSignature;
2004
2005 /* Station Index for BSS entry*/
2006 tANI_U8 bssStaIdx;
2007
2008 /* Self station index for this BSS */
2009 tANI_U8 bssSelfStaIdx;
2010
2011 /* Bcast station for buffering bcast frames in AP role */
2012 tANI_U8 bssBcastStaIdx;
2013
2014 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
2015 tSirMacAddr staMac;
2016
2017 /*HAL fills in the tx power used for mgmt frames in this field. */
2018 tANI_S8 txMgmtPower;
2019
2020} tConfigBssRspParams, * tpConfigBssRspParams;
2021
2022typedef PACKED_PRE struct PACKED_POST
2023{
2024 tHalMsgHeader header;
2025 tConfigBssRspParams configBssRspParams;
2026} tConfigBssRspMsg, *tpConfigBssRspMsg;
2027
2028/*---------------------------------------------------------------------------
2029 WLAN_HAL_DELETE_BSS_REQ
2030---------------------------------------------------------------------------*/
2031
2032typedef PACKED_PRE struct PACKED_POST
2033{
2034 /* BSS index to be deleted */
2035 tANI_U8 bssIdx;
2036
2037} tDeleteBssParams, *tpDeleteBssParams;
2038
2039typedef PACKED_PRE struct PACKED_POST
2040{
2041 tHalMsgHeader header;
2042 tDeleteBssParams deleteBssParams;
2043} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
2044
2045/*---------------------------------------------------------------------------
2046 WLAN_HAL_DELETE_BSS_RSP
2047---------------------------------------------------------------------------*/
2048
2049typedef PACKED_PRE struct PACKED_POST
2050{
2051 /* Success or Failure */
2052 tANI_U32 status;
2053
2054 /* BSS index that has been deleted */
2055 tANI_U8 bssIdx;
2056
2057} tDeleteBssRspParams, *tpDeleteBssRspParams;
2058
2059typedef PACKED_PRE struct PACKED_POST
2060{
2061 tHalMsgHeader header;
2062 tDeleteBssRspParams deleteBssRspParams;
2063} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
2064
2065/*---------------------------------------------------------------------------
2066 WLAN_HAL_JOIN_REQ
2067---------------------------------------------------------------------------*/
2068
2069typedef PACKED_PRE struct PACKED_POST
2070{
2071 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07002072 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002073
2074 /*Indicates the channel to switch to.*/
2075 tANI_U8 ucChannel;
2076
2077 /* Self STA MAC */
2078 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002079
Jeff Johnson295189b2012-06-20 16:38:30 -07002080 /*Local power constraint*/
2081 tANI_U8 ucLocalPowerConstraint;
2082
2083 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002084 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002085
2086 /*link State*/
2087 tSirLinkState linkState;
2088
2089 /* Max TX power */
2090 tANI_S8 maxTxPower;
2091
2092} tHalJoinReqParams, *tpHalJoinReqParams;
2093
2094typedef PACKED_PRE struct PACKED_POST
2095{
2096 tHalMsgHeader header;
2097 tHalJoinReqParams joinReqParams;
2098} tHalJoinReqMsg, *tpHalJoinReqMsg;
2099
2100/*---------------------------------------------------------------------------
2101 WLAN_HAL_JOIN_RSP
2102---------------------------------------------------------------------------*/
2103
2104typedef PACKED_PRE struct PACKED_POST
2105{
2106 /*success or failure */
2107 tANI_U32 status;
2108
2109 /* HAL fills in the tx power used for mgmt frames in this field */
2110 tPowerdBm txMgmtPower;
2111
2112}tHalJoinRspParams, *tpHalJoinRspParams;
2113
2114typedef PACKED_PRE struct PACKED_POST
2115{
2116 tHalMsgHeader header;
2117 tHalJoinRspParams joinRspParams;
2118}tHalJoinRspMsg, *tpHalJoinRspMsg;
2119
2120/*---------------------------------------------------------------------------
2121 WLAN_HAL_POST_ASSOC_REQ
2122---------------------------------------------------------------------------*/
2123
2124typedef PACKED_PRE struct PACKED_POST
2125{
2126 tConfigStaParams configStaParams;
2127 tConfigBssParams configBssParams;
2128} tPostAssocReqParams, *tpPostAssocReqParams;
2129
2130typedef PACKED_PRE struct PACKED_POST
2131{
2132 tHalMsgHeader header;
2133 tPostAssocReqParams postAssocReqParams;
2134} tPostAssocReqMsg, *tpPostAssocReqMsg;
2135
2136/*---------------------------------------------------------------------------
2137 WLAN_HAL_POST_ASSOC_RSP
2138---------------------------------------------------------------------------*/
2139
2140typedef PACKED_PRE struct PACKED_POST
2141{
2142 tConfigStaRspParams configStaRspParams;
2143 tConfigBssRspParams configBssRspParams;
2144} tPostAssocRspParams, *tpPostAssocRspParams;
2145
2146typedef PACKED_PRE struct PACKED_POST
2147{
2148 tHalMsgHeader header;
2149 tPostAssocRspParams postAssocRspParams;
2150} tPostAssocRspMsg, *tpPostAssocRspMsg;
2151
2152/*---------------------------------------------------------------------------
2153 WLAN_HAL_SET_BSSKEY_REQ
2154---------------------------------------------------------------------------*/
2155
2156/*
2157 * This is used by PE to create a set of WEP keys for a given BSS.
2158 */
2159typedef PACKED_PRE struct PACKED_POST
2160{
2161 /*BSS Index of the BSS*/
2162 tANI_U8 bssIdx;
2163
2164 /*Encryption Type used with peer*/
2165 tAniEdType encType;
2166
2167 /*Number of keys*/
2168 tANI_U8 numKeys;
2169
2170 /*Array of keys.*/
2171 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002172
Jeff Johnson295189b2012-06-20 16:38:30 -07002173 /*Control for Replay Count, 1= Single TID based replay count on Tx
2174 0 = Per TID based replay count on TX */
2175 tANI_U8 singleTidRc;
2176} tSetBssKeyParams, *tpSetBssKeyParams;
2177
2178typedef PACKED_PRE struct PACKED_POST
2179{
2180 tHalMsgHeader header;
2181 tSetBssKeyParams setBssKeyParams;
2182} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2183
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08002184/* tagged version of set bss key */
2185typedef PACKED_PRE struct PACKED_POST
2186{
2187 tSetBssKeyReqMsg Msg;
2188 uint32 Tag;
2189} tSetBssKeyReqMsgTagged;
2190
Jeff Johnson295189b2012-06-20 16:38:30 -07002191/*---------------------------------------------------------------------------
2192 WLAN_HAL_SET_BSSKEY_RSP
2193---------------------------------------------------------------------------*/
2194typedef PACKED_PRE struct PACKED_POST
2195{
2196 /*success or failure */
2197 tANI_U32 status;
2198
2199} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2200
2201typedef PACKED_PRE struct PACKED_POST
2202{
2203 tHalMsgHeader header;
2204 tSetBssKeyRspParams setBssKeyRspParams;
2205} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2206
2207/*---------------------------------------------------------------------------
2208 WLAN_HAL_SET_STAKEY_REQ,
2209---------------------------------------------------------------------------*/
2210
2211/*
2212 * This is used by PE to configure the key information on a given station.
2213 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2214 * a preconfigured key from a BSS the station assoicated with; otherwise
2215 * a new key descriptor is created based on the key field.
2216 */
2217
2218typedef PACKED_PRE struct PACKED_POST
2219{
2220 tHalMsgHeader header;
2221 tSetStaKeyParams setStaKeyParams;
2222} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2223
2224/*---------------------------------------------------------------------------
2225 WLAN_HAL_SET_STAKEY_RSP,
2226---------------------------------------------------------------------------*/
2227typedef PACKED_PRE struct PACKED_POST
2228{
2229 /*success or failure */
2230 tANI_U32 status;
2231
2232} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2233
2234typedef PACKED_PRE struct PACKED_POST
2235{
2236 tHalMsgHeader header;
2237 tSetStaKeyRspParams setStaKeyRspParams;
2238} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2239
2240/*---------------------------------------------------------------------------
2241 WLAN_HAL_RMV_BSSKEY_REQ,
2242---------------------------------------------------------------------------*/
2243/*
2244 * This is used by PE to remove keys for a given BSS.
2245 */
2246typedef PACKED_PRE struct PACKED_POST
2247
2248{
2249 /*BSS Index of the BSS*/
2250 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002251
Jeff Johnson295189b2012-06-20 16:38:30 -07002252 /*Encryption Type used with peer*/
2253 tAniEdType encType;
2254
2255 /*Key Id*/
2256 tANI_U8 keyId;
2257
2258 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2259 tAniWepType wepType;
2260
2261} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2262
2263typedef PACKED_PRE struct PACKED_POST
2264{
2265 tHalMsgHeader header;
2266 tRemoveBssKeyParams removeBssKeyParams;
2267} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2268
2269/*---------------------------------------------------------------------------
2270 WLAN_HAL_RMV_BSSKEY_RSP,
2271---------------------------------------------------------------------------*/
2272typedef PACKED_PRE struct PACKED_POST
2273{
2274 /*success or failure */
2275 tANI_U32 status;
2276
2277} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2278
2279typedef PACKED_PRE struct PACKED_POST
2280{
2281 tHalMsgHeader header;
2282 tRemoveBssKeyRspParams removeBssKeyRspParams;
2283} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2284
2285/*---------------------------------------------------------------------------
2286 WLAN_HAL_RMV_STAKEY_REQ,
2287---------------------------------------------------------------------------*/
2288/*
2289 * This is used by PE to Remove the key information on a given station.
2290 */
2291typedef PACKED_PRE struct PACKED_POST
2292{
2293 /*STA Index*/
2294 tANI_U16 staIdx;
2295
2296 /*Encryption Type used with peer*/
2297 tAniEdType encType;
2298
2299 /*Key Id*/
2300 tANI_U8 keyId;
2301
2302 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2303 the same key is used for both broadcast and unicast.*/
2304 tANI_BOOLEAN unicast;
2305
2306} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2307
2308typedef PACKED_PRE struct PACKED_POST
2309{
2310 tHalMsgHeader header;
2311 tRemoveStaKeyParams removeStaKeyParams;
2312} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2313
2314/*---------------------------------------------------------------------------
2315 WLAN_HAL_RMV_STAKEY_RSP,
2316---------------------------------------------------------------------------*/
2317typedef PACKED_PRE struct PACKED_POST
2318{
2319 /*success or failure */
2320 tANI_U32 status;
2321} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2322
2323typedef PACKED_PRE struct PACKED_POST
2324{
2325 tHalMsgHeader header;
2326 tRemoveStaKeyRspParams removeStaKeyRspParams;
2327} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2328
Jeff Johnsone7245742012-09-05 17:12:55 -07002329#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002330
Jeff Johnsone7245742012-09-05 17:12:55 -07002331#ifndef OEM_DATA_REQ_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002332#define OEM_DATA_REQ_SIZE 134
Jeff Johnsone7245742012-09-05 17:12:55 -07002333#endif
2334
2335#ifndef OEM_DATA_RSP_SIZE
Anand Kumar012623a2013-01-11 17:00:00 -08002336#define OEM_DATA_RSP_SIZE 1968
Jeff Johnsone7245742012-09-05 17:12:55 -07002337#endif
2338
2339/*-------------------------------------------------------------------------
2340WLAN_HAL_START_OEM_DATA_REQ
2341--------------------------------------------------------------------------*/
2342typedef PACKED_PRE struct PACKED_POST
2343{
2344 tANI_U32 status;
2345 tSirMacAddr selfMacAddr;
2346 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2347} tStartOemDataReqParams, *tpStartOemDataReqParams;
2348
2349typedef PACKED_PRE struct PACKED_POST
2350{
2351 tHalMsgHeader header;
2352 tStartOemDataReqParams startOemDataReqParams;
2353} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2354
2355/*-------------------------------------------------------------------------
2356WLAN_HAL_START_OEM_DATA_RSP
2357--------------------------------------------------------------------------*/
2358
2359typedef PACKED_PRE struct PACKED_POST
2360{
2361 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2362} tStartOemDataRspParams, *tpStartOemDataRspParams;
2363
2364typedef PACKED_PRE struct PACKED_POST
2365{
2366 tHalMsgHeader header;
2367 tStartOemDataRspParams startOemDataRspParams;
2368} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2369
2370#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002371
2372
2373
2374/*---------------------------------------------------------------------------
2375WLAN_HAL_CH_SWITCH_REQ
2376---------------------------------------------------------------------------*/
2377
2378typedef PACKED_PRE struct PACKED_POST
2379{
2380 /* Channel number */
2381 tANI_U8 channelNumber;
2382
2383 /* Local power constraint */
2384 tANI_U8 localPowerConstraint;
2385
2386 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002387 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002388
2389 //HAL fills in the tx power used for mgmt frames in this field.
2390 tPowerdBm txMgmtPower;
2391
2392 /* Max TX power */
2393 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002394
Jeff Johnson295189b2012-06-20 16:38:30 -07002395 /* Self STA MAC */
2396 tSirMacAddr selfStaMacAddr;
2397
2398 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2399 this should be applied only to that session*/
2400 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2401 * bssid needs to be out of the VOWifi feature flag */
2402 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2403 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2404 */
2405 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002406
Jeff Johnson295189b2012-06-20 16:38:30 -07002407}tSwitchChannelParams, *tpSwitchChannelParams;
2408
2409typedef PACKED_PRE struct PACKED_POST
2410{
2411 tHalMsgHeader header;
2412 tSwitchChannelParams switchChannelParams;
2413} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2414
2415/*---------------------------------------------------------------------------
2416WLAN_HAL_CH_SWITCH_RSP
2417---------------------------------------------------------------------------*/
2418
2419typedef PACKED_PRE struct PACKED_POST
2420{
2421 /* Status */
2422 tANI_U32 status;
2423
2424 /* Channel number - same as in request*/
2425 tANI_U8 channelNumber;
2426
2427 /* HAL fills in the tx power used for mgmt frames in this field */
2428 tPowerdBm txMgmtPower;
2429
2430 /* BSSID needed to identify session - same as in request*/
2431 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002432
Jeff Johnson295189b2012-06-20 16:38:30 -07002433}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2434
2435typedef PACKED_PRE struct PACKED_POST
2436{
2437 tHalMsgHeader header;
2438 tSwitchChannelRspParams switchChannelRspParams;
2439} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2440
2441/*---------------------------------------------------------------------------
2442WLAN_HAL_UPD_EDCA_PARAMS_REQ
2443---------------------------------------------------------------------------*/
2444
2445typedef PACKED_PRE struct PACKED_POST
2446{
2447 /*BSS Index*/
2448 tANI_U16 bssIdx;
2449
2450 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002451 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002452
2453 /* Background */
2454 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002455
Jeff Johnson295189b2012-06-20 16:38:30 -07002456 /* Video */
2457 tSirMacEdcaParamRecord acvi;
2458
2459 /* Voice */
2460 tSirMacEdcaParamRecord acvo;
2461
2462} tEdcaParams, *tpEdcaParams;
2463
2464typedef PACKED_PRE struct PACKED_POST
2465{
2466 tHalMsgHeader header;
2467 tEdcaParams edcaParams;
2468} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2469
2470/*---------------------------------------------------------------------------
2471WLAN_HAL_UPD_EDCA_PARAMS_RSP
2472---------------------------------------------------------------------------*/
2473typedef PACKED_PRE struct PACKED_POST
2474{
2475 /*success or failure */
2476 tANI_U32 status;
2477} tEdcaRspParams, *tpEdcaRspParams;
2478
2479typedef PACKED_PRE struct PACKED_POST
2480{
2481 tHalMsgHeader header;
2482 tEdcaRspParams edcaRspParams;
2483} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2484
2485
2486
2487/*---------------------------------------------------------------------------
2488 * WLAN_HAL_GET_STATS_REQ
2489 *--------------------------------------------------------------------------*/
2490typedef PACKED_PRE struct PACKED_POST
2491
2492{
2493 /* Index of STA to which the statistics */
2494 tANI_U16 staIdx;
2495
2496 /* Encryption mode */
2497 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002498
Jeff Johnson295189b2012-06-20 16:38:30 -07002499 /* status */
2500 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002501
Jeff Johnson295189b2012-06-20 16:38:30 -07002502 /* Statistics */
2503 tANI_U32 sendBlocks;
2504 tANI_U32 recvBlocks;
2505 tANI_U32 replays;
2506 tANI_U8 micErrorCnt;
2507 tANI_U32 protExclCnt;
2508 tANI_U16 formatErrCnt;
2509 tANI_U16 unDecryptableCnt;
2510 tANI_U32 decryptErrCnt;
2511 tANI_U32 decryptOkCnt;
2512} tDpuStatsParams, * tpDpuStatsParams;
2513
2514typedef PACKED_PRE struct PACKED_POST
2515{
2516 /* Valid STA Idx for per STA stats request */
2517 tANI_U32 staId;
2518
2519 /* Categories of stats requested as specified in eHalStatsMask*/
2520 tANI_U32 statsMask;
2521}tHalStatsReqParams, *tpHalStatsReqParams;
2522
2523typedef PACKED_PRE struct PACKED_POST
2524{
2525 tHalMsgHeader header;
2526 tHalStatsReqParams statsReqParams;
2527} tHalStatsReqMsg, *tpHalStatsReqMsg;
2528
2529/*---------------------------------------------------------------------------
2530 * WLAN_HAL_GET_STATS_RSP
2531 *--------------------------------------------------------------------------*/
2532
2533typedef PACKED_PRE struct PACKED_POST
2534{
2535 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2536 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2537 // station successfully transmitted after more than one retransmission attempt
2538
Jeff Johnson32d95a32012-09-10 13:15:23 -07002539 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2540 //(with and without retries, including multi-cast, broadcast)
2541 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2542 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002543 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2544 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2545 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2546 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 -07002547 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2548 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 -07002549 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2550 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 -07002551 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2552 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002553 //to provide this.
2554}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2555
2556
2557// defines tx_rate_flags
2558typedef enum eTxRateInfo
2559{
2560 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2561 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2562 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2563 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
Chittajit Mitraf5413a42013-10-18 14:20:08 -07002564 eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
2565 eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
2566 eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
2567 eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
2568 eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
2569 eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
2570} tTxrateinfoflags, tTxRateInfoFlags;
Jeff Johnson295189b2012-06-20 16:38:30 -07002571
2572
2573typedef PACKED_PRE struct PACKED_POST
2574{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002575 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 -07002576 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002577 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 -07002578 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002579 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2580 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002581 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002582 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2583 //for eg: if it is 10.5dBm, the value would be 105
2584 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2585 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002586
Jeff Johnson32d95a32012-09-10 13:15:23 -07002587 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2588 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002589 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002590 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2591 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002592}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2593
2594typedef PACKED_PRE struct PACKED_POST
2595{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002596 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2597 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002598 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002599 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 -07002600 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002601 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 -07002602 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002603 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 -07002604 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002605 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 -07002606 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002607 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 -07002608 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002609 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 -07002610 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002611 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 -07002612 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002613 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 -07002614 //decrypted
2615 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2616
2617}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002618
Jeff Johnson295189b2012-06-20 16:38:30 -07002619typedef PACKED_PRE struct PACKED_POST
2620{
2621 tAniGlobalSecurityStats ucStats;
2622 tAniGlobalSecurityStats mcbcStats;
2623}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2624
2625typedef PACKED_PRE struct PACKED_POST
2626{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002627 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2628 //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 -07002629 //address 1 field
2630 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 -07002631 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 -07002632 //primary channel
2633 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 -07002634 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 -07002635 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002636 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2637 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002638 //decoded correctly
2639}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2640
2641typedef PACKED_PRE struct PACKED_POST
2642{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002643 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 -07002644 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002645 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2646 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 -07002647 //is transmitted
2648}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2649
2650typedef PACKED_PRE struct PACKED_POST
2651{
2652 /* Success or Failure */
2653 tANI_U32 status;
2654
2655 /* STA Idx */
2656 tANI_U32 staId;
2657
2658 /* Categories of STATS being returned as per eHalStatsMask*/
2659 tANI_U32 statsMask;
2660
2661 /* message type is same as the request type */
2662 tANI_U16 msgType;
2663
2664 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002665 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002666
2667} tHalStatsRspParams, *tpHalStatsRspParams;
2668
2669
2670
2671typedef PACKED_PRE struct PACKED_POST
2672{
2673 tHalMsgHeader header;
2674 tHalStatsRspParams statsRspParams;
2675} tHalStatsRspMsg, *tpHalStatsRspMsg;
2676
2677/*---------------------------------------------------------------------------
2678 * WLAN_HAL_SET_LINK_ST_REQ
2679 *--------------------------------------------------------------------------*/
2680typedef PACKED_PRE struct PACKED_POST
2681{
2682 tSirMacAddr bssid;
2683 tSirLinkState state;
2684 tSirMacAddr selfMacAddr;
2685} tLinkStateParams, *tpLinkStateParams;
2686
2687typedef PACKED_PRE struct PACKED_POST
2688{
2689 tHalMsgHeader header;
2690 tLinkStateParams linkStateParams;
2691} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2692
2693/*---------------------------------------------------------------------------
2694 * WLAN_HAL_SET_LINK_ST_RSP
2695 *--------------------------------------------------------------------------*/
2696
2697typedef PACKED_PRE struct PACKED_POST
2698{
2699 /*success or failure */
2700 tANI_U32 status;
2701} tLinkStateRspParams, *tpLinkStateRspParams;
2702
2703typedef PACKED_PRE struct PACKED_POST
2704{
2705 tHalMsgHeader header;
2706 tLinkStateRspParams linkStateRspParams;
2707} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2708
2709/*---------------------------------------------------------------------------
2710 * WLAN_HAL_ADD_TS_REQ
2711 *--------------------------------------------------------------------------*/
2712
2713/* TSPEC Params */
2714typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2715{
Jeff Johnson295189b2012-06-20 16:38:30 -07002716 tANI_U16 trafficType : 1;
2717 tANI_U16 tsid : 4;
2718 tANI_U16 direction : 2;
2719 tANI_U16 accessPolicy : 2;
2720 tANI_U16 aggregation : 1;
2721 tANI_U16 psb : 1;
2722 tANI_U16 userPrio : 3;
2723 tANI_U16 ackPolicy : 2;
Jeff Johnson295189b2012-06-20 16:38:30 -07002724} __ani_attr_packed tSirMacTSInfoTfc;
2725
2726/* Flag to schedule the traffic type */
2727typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2728{
Jeff Johnson295189b2012-06-20 16:38:30 -07002729 tANI_U8 schedule : 1;
2730 tANI_U8 rsvd : 7;
Jeff Johnson295189b2012-06-20 16:38:30 -07002731} __ani_attr_packed tSirMacTSInfoSch;
2732
2733/* Traffic and scheduling info */
2734typedef __ani_attr_pre_packed struct sSirMacTSInfo
2735{
2736 tSirMacTSInfoTfc traffic;
2737 tSirMacTSInfoSch schedule;
2738} __ani_attr_packed tSirMacTSInfo;
2739
2740/* Information elements */
2741typedef __ani_attr_pre_packed struct sSirMacTspecIE
2742{
2743 tANI_U8 type;
2744 tANI_U8 length;
2745 tSirMacTSInfo tsinfo;
2746 tANI_U16 nomMsduSz;
2747 tANI_U16 maxMsduSz;
2748 tANI_U32 minSvcInterval;
2749 tANI_U32 maxSvcInterval;
2750 tANI_U32 inactInterval;
2751 tANI_U32 suspendInterval;
2752 tANI_U32 svcStartTime;
2753 tANI_U32 minDataRate;
2754 tANI_U32 meanDataRate;
2755 tANI_U32 peakDataRate;
2756 tANI_U32 maxBurstSz;
2757 tANI_U32 delayBound;
2758 tANI_U32 minPhyRate;
2759 tANI_U16 surplusBw;
2760 tANI_U16 mediumTime;
2761}__ani_attr_packed tSirMacTspecIE;
2762
2763typedef PACKED_PRE struct PACKED_POST
2764{
2765 /* Station Index */
2766 tANI_U16 staIdx;
2767
2768 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2769 tANI_U16 tspecIdx;
2770
2771 /* To program TPE with required parameters */
2772 tSirMacTspecIE tspec;
2773
2774 /* U-APSD Flags: 1b per AC. Encoded as follows:
2775 b7 b6 b5 b4 b3 b2 b1 b0 =
2776 X X X X BE BK VI VO */
2777 tANI_U8 uAPSD;
2778
2779 /* These parameters are for all the access categories */
2780 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2781 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2782 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002783
Jeff Johnson295189b2012-06-20 16:38:30 -07002784} tAddTsParams, *tpAddTsParams;
2785
2786typedef PACKED_PRE struct PACKED_POST
2787{
2788 tHalMsgHeader header;
2789 tAddTsParams addTsParams;
2790} tAddTsReqMsg, *tpAddTsReqMsg;
2791
2792/*---------------------------------------------------------------------------
2793 * WLAN_HAL_ADD_TS_RSP
2794 *--------------------------------------------------------------------------*/
2795
2796typedef PACKED_PRE struct PACKED_POST
2797{
2798 /*success or failure */
2799 tANI_U32 status;
2800} tAddTsRspParams, *tpAddTsRspParams;
2801
2802typedef PACKED_PRE struct PACKED_POST
2803{
2804 tHalMsgHeader header;
2805 tAddTsRspParams addTsRspParams;
2806} tAddTsRspMsg, *tpAddTsRspMsg;
2807
2808
2809/*---------------------------------------------------------------------------
2810 * WLAN_HAL_DEL_TS_REQ
2811 *--------------------------------------------------------------------------*/
2812
2813typedef PACKED_PRE struct PACKED_POST
2814{
2815 /* Station Index */
2816 tANI_U16 staIdx;
2817
2818 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2819 tANI_U16 tspecIdx;
2820
2821 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002822 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002823
2824} tDelTsParams, *tpDelTsParams;
2825
2826typedef PACKED_PRE struct PACKED_POST
2827{
2828 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002829 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002830} tDelTsReqMsg, *tpDelTsReqMsg;
2831
2832/*---------------------------------------------------------------------------
2833 * WLAN_HAL_DEL_TS_RSP
2834 *--------------------------------------------------------------------------*/
2835
2836typedef PACKED_PRE struct PACKED_POST
2837{
2838 /*success or failure */
2839 tANI_U32 status;
2840} tDelTsRspParams, *tpDelTsRspParams;
2841
2842typedef PACKED_PRE struct PACKED_POST
2843{
2844 tHalMsgHeader header;
2845 tDelTsRspParams delTsRspParams;
2846} tDelTsRspMsg, *tpDelTsRspMsg;
2847
2848/* End of TSpec Parameters */
2849
2850/* Start of BLOCK ACK related Parameters */
2851
2852/*---------------------------------------------------------------------------
2853 * WLAN_HAL_ADD_BA_SESSION_REQ
2854 *--------------------------------------------------------------------------*/
2855
2856typedef PACKED_PRE struct PACKED_POST
2857{
2858 /* Station Index */
2859 tANI_U16 staIdx;
2860
2861 /* Peer MAC Address */
2862 tSirMacAddr peerMacAddr;
2863
2864 /* ADDBA Action Frame dialog token
2865 HAL will not interpret this object */
2866 tANI_U8 baDialogToken;
2867
2868 /* TID for which the BA is being setup
2869 This identifies the TC or TS of interest */
2870 tANI_U8 baTID;
2871
2872 /* 0 - Delayed BA (Not supported)
2873 1 - Immediate BA */
2874 tANI_U8 baPolicy;
2875
2876 /* Indicates the number of buffers for this TID (baTID)
2877 NOTE - This is the requested buffer size. When this
2878 is processed by HAL and subsequently by HDD, it is
2879 possible that HDD may change this buffer size. Any
2880 change in the buffer size should be noted by PE and
2881 advertized appropriately in the ADDBA response */
2882 tANI_U16 baBufferSize;
2883
2884 /* BA timeout in TU's 0 means no timeout will occur */
2885 tANI_U16 baTimeout;
2886
2887 /* b0..b3 - Fragment Number - Always set to 0
2888 b4..b15 - Starting Sequence Number of first MSDU
2889 for which this BA is setup */
2890 tANI_U16 baSSN;
2891
2892 /* ADDBA direction
2893 1 - Originator
2894 0 - Recipient */
2895 tANI_U8 baDirection;
2896} tAddBASessionParams, *tpAddBASessionParams;
2897
2898typedef PACKED_PRE struct PACKED_POST
2899{
2900 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002901 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002902}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2903
2904/*---------------------------------------------------------------------------
2905 * WLAN_HAL_ADD_BA_SESSION_RSP
2906 *--------------------------------------------------------------------------*/
2907
2908typedef PACKED_PRE struct PACKED_POST
2909{
2910 /*success or failure */
2911 tANI_U32 status;
2912
2913 /* Dialog token */
2914 tANI_U8 baDialogToken;
2915
2916 /* TID for which the BA session has been setup */
2917 tANI_U8 baTID;
2918
2919 /* BA Buffer Size allocated for the current BA session */
2920 tANI_U8 baBufferSize;
2921
2922 tANI_U8 baSessionID;
2923
2924 /* Reordering Window buffer */
2925 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002926
Jeff Johnson295189b2012-06-20 16:38:30 -07002927 /*Station Index to id the sta */
2928 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002929
Jeff Johnson295189b2012-06-20 16:38:30 -07002930 /* Starting Sequence Number */
2931 tANI_U16 SSN;
2932} tAddBASessionRspParams, *tpAddBASessionRspParams;
2933
2934typedef PACKED_PRE struct PACKED_POST
2935{
2936 tHalMsgHeader header;
2937 tAddBASessionRspParams addBASessionRspParams;
2938} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2939
2940/*---------------------------------------------------------------------------
2941 * WLAN_HAL_ADD_BA_REQ
2942 *--------------------------------------------------------------------------*/
2943
2944typedef PACKED_PRE struct PACKED_POST
2945{
2946 /* Session Id */
2947 tANI_U8 baSessionID;
2948
2949 /* Reorder Window Size */
2950 tANI_U8 winSize;
2951
2952#ifdef FEATURE_ON_CHIP_REORDERING
2953 tANI_BOOLEAN isReorderingDoneOnChip;
2954#endif
2955} tAddBAParams, *tpAddBAParams;
2956
2957typedef PACKED_PRE struct PACKED_POST
2958{
2959 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002960 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002961} tAddBAReqMsg, *tpAddBAReqMsg;
2962
2963
2964/*---------------------------------------------------------------------------
2965 * WLAN_HAL_ADD_BA_RSP
2966 *--------------------------------------------------------------------------*/
2967
2968typedef PACKED_PRE struct PACKED_POST
2969{
2970 /*success or failure */
2971 tANI_U32 status;
2972
2973 /* Dialog token */
2974 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002975
Jeff Johnson295189b2012-06-20 16:38:30 -07002976} tAddBARspParams, *tpAddBARspParams;
2977
2978typedef PACKED_PRE struct PACKED_POST
2979{
2980 tHalMsgHeader header;
2981 tAddBARspParams addBARspParams;
2982} tAddBARspMsg, *tpAddBARspMsg;
2983
2984
2985/*---------------------------------------------------------------------------
2986 * WLAN_HAL_TRIGGER_BA_REQ
2987 *--------------------------------------------------------------------------*/
2988
2989
2990typedef struct sAddBaInfo
2991{
2992 tANI_U16 fBaEnable : 1;
2993 tANI_U16 startingSeqNum: 12;
2994 tANI_U16 reserved : 3;
2995}tAddBaInfo, *tpAddBaInfo;
2996
2997typedef struct sTriggerBaRspCandidate
2998{
2999 tSirMacAddr staAddr;
3000 tAddBaInfo baInfo[STACFG_MAX_TC];
3001}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
3002
3003typedef struct sTriggerBaCandidate
3004{
3005 tANI_U8 staIdx;
3006 tANI_U8 tidBitmap;
3007}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
3008
3009typedef PACKED_PRE struct PACKED_POST
3010{
3011 /* Session Id */
3012 tANI_U8 baSessionID;
3013
Jeff Johnson32d95a32012-09-10 13:15:23 -07003014 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003015 * Candidate List(tTriggerBaCandidate)
3016 */
3017 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003018
Jeff Johnson295189b2012-06-20 16:38:30 -07003019} tTriggerBAParams, *tpTriggerBAParams;
3020
3021typedef PACKED_PRE struct PACKED_POST
3022{
3023 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003024 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003025} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
3026
3027
3028/*---------------------------------------------------------------------------
3029 * WLAN_HAL_TRIGGER_BA_RSP
3030 *--------------------------------------------------------------------------*/
3031
3032typedef PACKED_PRE struct PACKED_POST
3033{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003034
Jeff Johnson295189b2012-06-20 16:38:30 -07003035 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003036 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003037
3038 /* success or failure */
3039 tANI_U32 status;
3040
Jeff Johnson32d95a32012-09-10 13:15:23 -07003041 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07003042 * Rsp Candidate List(tTriggerRspBaCandidate)
3043 */
3044 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003045
Jeff Johnson295189b2012-06-20 16:38:30 -07003046
3047} tTriggerBARspParams, *tpTriggerBARspParams;
3048
3049typedef PACKED_PRE struct PACKED_POST
3050{
3051 tHalMsgHeader header;
3052 tTriggerBARspParams triggerBARspParams;
3053} tTriggerBARspMsg, *tpTriggerBARspMsg;
3054
3055/*---------------------------------------------------------------------------
3056 * WLAN_HAL_DEL_BA_REQ
3057 *--------------------------------------------------------------------------*/
3058
3059typedef PACKED_PRE struct PACKED_POST
3060{
3061 /* Station Index */
3062 tANI_U16 staIdx;
3063
3064 /* TID for which the BA session is being deleted */
3065 tANI_U8 baTID;
3066
3067 /* DELBA direction
3068 1 - Originator
3069 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003070 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07003071} tDelBAParams, *tpDelBAParams;
3072
3073typedef PACKED_PRE struct PACKED_POST
3074{
3075 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003076 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003077} tDelBAReqMsg, *tpDelBAReqMsg;
3078
3079/*---------------------------------------------------------------------------
3080 * WLAN_HAL_DEL_BA_RSP
3081 *--------------------------------------------------------------------------*/
3082
3083typedef PACKED_PRE struct PACKED_POST
3084{
3085 /* success or failure */
3086 tANI_U32 status;
3087} tDelBARspParams, *tpDelBARspParams;
3088
3089typedef PACKED_PRE struct PACKED_POST
3090{
3091 tHalMsgHeader header;
3092 tDelBARspParams delBARspParams;
3093} tDelBARspMsg, *tpDelBARspMsg;
3094
3095
3096#ifdef FEATURE_WLAN_CCX
3097
3098/*---------------------------------------------------------------------------
3099 * WLAN_HAL_TSM_STATS_REQ
3100 *--------------------------------------------------------------------------*/
3101typedef PACKED_PRE struct PACKED_POST
3102{
3103 /* Traffic Id */
3104 tANI_U8 tsmTID;
3105
3106 tSirMacAddr bssId;
3107} tTsmStatsParams, *tpTsmStatsParams;
3108
3109typedef PACKED_PRE struct PACKED_POST
3110{
3111 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003112 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003113} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3114
3115
3116/*---------------------------------------------------------------------------
3117 * WLAN_HAL_TSM_STATS_RSP
3118 *--------------------------------------------------------------------------*/
3119typedef PACKED_PRE struct PACKED_POST
3120{
3121 /*success or failure */
3122 tANI_U32 status;
3123
Jeff Johnson32d95a32012-09-10 13:15:23 -07003124 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003125 tANI_U16 UplinkPktQueueDly;
3126
Jeff Johnson32d95a32012-09-10 13:15:23 -07003127 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003128 tANI_U16 UplinkPktQueueDlyHist[4];
3129
Jeff Johnson32d95a32012-09-10 13:15:23 -07003130 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003131 tANI_U32 UplinkPktTxDly;
3132
Jeff Johnson32d95a32012-09-10 13:15:23 -07003133 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003134 tANI_U16 UplinkPktLoss;
3135
Jeff Johnson32d95a32012-09-10 13:15:23 -07003136 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003137 tANI_U16 UplinkPktCount;
3138
Jeff Johnson32d95a32012-09-10 13:15:23 -07003139 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003140 tANI_U8 RoamingCount;
3141
Jeff Johnson32d95a32012-09-10 13:15:23 -07003142 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003143 tANI_U16 RoamingDly;
3144} tTsmStatsRspParams, *tpTsmStatsRspParams;
3145
3146typedef PACKED_PRE struct PACKED_POST
3147{
3148 tHalMsgHeader header;
3149 tTsmStatsRspParams tsmStatsRspParams;
3150} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3151
3152
3153#endif
3154
3155/*---------------------------------------------------------------------------
3156 * WLAN_HAL_SET_KEYDONE_MSG
3157 *--------------------------------------------------------------------------*/
3158
3159typedef PACKED_PRE struct PACKED_POST
3160{
3161 /*bssid of the keys */
3162 tANI_U8 bssidx;
3163 tANI_U8 encType;
3164} tSetKeyDoneParams, *tpSetKeyDoneParams;
3165
3166typedef PACKED_PRE struct PACKED_POST
3167{
3168 tHalMsgHeader header;
3169 tSetKeyDoneParams setKeyDoneParams;
3170} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3171
3172/*---------------------------------------------------------------------------
3173 * WLAN_HAL_DOWNLOAD_NV_REQ
3174 *--------------------------------------------------------------------------*/
3175typedef PACKED_PRE struct PACKED_POST
3176{
3177 /* Fragment sequence number of the NV Image. Note that NV Image might not
3178 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003179 * can hence choose to chop the NV blob into multiple fragments starting with
3180 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003181 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3182 * concatenated together by HAL without any padding bytes in between.*/
3183 tANI_U16 fragNumber;
3184
3185 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003186 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003187 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3188 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3189 tANI_U16 isLastFragment;
3190
3191 /* NV Image size (number of bytes) */
3192 tANI_U32 nvImgBufferSize;
3193
3194 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3195 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3196} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3197
3198typedef PACKED_PRE struct PACKED_POST
3199{
3200 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3201 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3202 tHalMsgHeader header;
3203 tHalNvImgDownloadReqParams nvImageReqParams;
3204} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3205
3206/*---------------------------------------------------------------------------
3207 * WLAN_HAL_DOWNLOAD_NV_RSP
3208 *--------------------------------------------------------------------------*/
3209typedef PACKED_PRE struct PACKED_POST
3210{
3211 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3212 * after each fragment */
3213 tANI_U32 status;
3214} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3215
3216typedef PACKED_PRE struct PACKED_POST
3217{
3218 tHalMsgHeader header;
3219 tHalNvImgDownloadRspParams nvImageRspParams;
3220} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3221
3222/*---------------------------------------------------------------------------
3223 * WLAN_HAL_STORE_NV_IND
3224 *--------------------------------------------------------------------------*/
3225typedef PACKED_PRE struct PACKED_POST
3226{
3227 /* NV Item */
3228 eNvTable tableID;
3229
3230 /* Size of NV Blob */
3231 tANI_U32 nvBlobSize;
3232
Jeff Johnson32d95a32012-09-10 13:15:23 -07003233 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003234 * NV blob i.e. uint8[nvBlobSize] */
3235} tHalNvStoreParams, *tpHalNvStoreParams;
3236
3237typedef PACKED_PRE struct PACKED_POST
3238{
3239 /* Note: The length specified in tHalNvStoreInd messages should be
3240 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3241 tHalMsgHeader header;
3242 tHalNvStoreParams nvStoreParams;
3243} tHalNvStoreInd, *tpHalNvStoreInd;
3244
3245/* End of Block Ack Related Parameters */
3246
3247/*---------------------------------------------------------------------------
3248 * WLAN_HAL_MIC_FAILURE_IND
3249 *--------------------------------------------------------------------------*/
3250
3251#define SIR_CIPHER_SEQ_CTR_SIZE 6
3252
3253typedef PACKED_PRE struct PACKED_POST
3254{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003255 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003256 tSirMacAddr taMacAddr; //transmitter address
3257 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003258 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003259 tANI_U8 IV1; // first byte of IV
3260 tANI_U8 keyId; // second byte of IV
3261 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3262 tSirMacAddr rxMacAddr; // receive address
3263} tSirMicFailureInfo, *tpSirMicFailureInfo;
3264
3265/* Definition for MIC failure indication
3266 MAC reports this each time a MIC failure occures on Rx TKIP packet
3267 */
3268typedef PACKED_PRE struct PACKED_POST
3269{
3270 tSirMacAddr bssId; // BSSID
3271 tSirMicFailureInfo info;
3272} tSirMicFailureInd, *tpSirMicFailureInd;
3273
3274typedef PACKED_PRE struct PACKED_POST
3275{
3276 tHalMsgHeader header;
3277 tSirMicFailureInd micFailureInd;
3278} tMicFailureIndMsg, *tpMicFailureIndMsg;
3279
Mohit Khanna4a70d262012-09-11 16:30:12 -07003280typedef PACKED_PRE struct PACKED_POST
3281{
3282 tANI_U16 opMode;
3283 tANI_U16 staId;
3284}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3285
3286typedef PACKED_PRE struct PACKED_POST
3287{
3288 tHalMsgHeader header;
3289 tUpdateVHTOpMode updateVhtOpMode;
3290} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3291
3292typedef PACKED_PRE struct PACKED_POST
3293{
3294 tANI_U32 status;
3295} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3296
3297typedef PACKED_PRE struct PACKED_POST
3298{
3299 tHalMsgHeader header;
3300 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3301} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3302
Jeff Johnson295189b2012-06-20 16:38:30 -07003303/*---------------------------------------------------------------------------
3304 * WLAN_HAL_UPDATE_BEACON_REQ
3305 *--------------------------------------------------------------------------*/
3306typedef PACKED_PRE struct PACKED_POST
3307{
3308
3309 tANI_U8 bssIdx;
3310
3311 //shortPreamble mode. HAL should update all the STA rates when it
3312 //receives this message
3313 tANI_U8 fShortPreamble;
3314 //short Slot time.
3315 tANI_U8 fShortSlotTime;
3316 //Beacon Interval
3317 tANI_U16 beaconInterval;
3318 //Protection related
3319 tANI_U8 llaCoexist;
3320 tANI_U8 llbCoexist;
3321 tANI_U8 llgCoexist;
3322 tANI_U8 ht20MhzCoexist;
3323 tANI_U8 llnNonGFCoexist;
3324 tANI_U8 fLsigTXOPProtectionFullSupport;
3325 tANI_U8 fRIFSMode;
3326
3327 tANI_U16 paramChangeBitmap;
3328}tUpdateBeaconParams, *tpUpdateBeaconParams;
3329
3330
3331typedef PACKED_PRE struct PACKED_POST
3332{
3333 tHalMsgHeader header;
3334 tUpdateBeaconParams updateBeaconParam;
3335} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3336
3337/*---------------------------------------------------------------------------
3338 * WLAN_HAL_UPDATE_BEACON_RSP
3339 *--------------------------------------------------------------------------*/
3340typedef PACKED_PRE struct PACKED_POST
3341{
3342 tANI_U32 status;
3343} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3344
3345typedef PACKED_PRE struct PACKED_POST
3346{
3347 tHalMsgHeader header;
3348 tUpdateBeaconRspParams updateBeaconRspParam;
3349} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3350
3351/*---------------------------------------------------------------------------
3352 * WLAN_HAL_SEND_BEACON_REQ
3353 *--------------------------------------------------------------------------*/
3354typedef PACKED_PRE struct PACKED_POST
3355{
3356 tANI_U32 beaconLength; //length of the template.
3357 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3358 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003359 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003360 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3361}tSendBeaconParams, *tpSendBeaconParams;
3362
3363
3364typedef PACKED_PRE struct PACKED_POST
3365{
3366 tHalMsgHeader header;
3367 tSendBeaconParams sendBeaconParam;
3368}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3369
3370/*---------------------------------------------------------------------------
3371 * WLAN_HAL_SEND_BEACON_RSP
3372 *--------------------------------------------------------------------------*/
3373typedef PACKED_PRE struct PACKED_POST
3374{
3375 tANI_U32 status;
3376} tSendBeaconRspParams, *tpSendBeaconRspParams;
3377
3378typedef PACKED_PRE struct PACKED_POST
3379{
3380 tHalMsgHeader header;
3381 tSendBeaconRspParams sendBeaconRspParam;
3382} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3383
3384#ifdef FEATURE_5GHZ_BAND
3385
3386/*---------------------------------------------------------------------------
3387 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3388 *--------------------------------------------------------------------------*/
3389typedef PACKED_PRE struct PACKED_POST
3390{
3391 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003392 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003393}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3394
3395
3396typedef PACKED_PRE struct PACKED_POST
3397{
3398 /* Link Parameters */
3399 tSirEnableRadarInfoType EnableRadarInfo;
3400}tEnableRadarReqParams, *tpEnableRadarReqParams;
3401
3402typedef PACKED_PRE struct PACKED_POST
3403{
3404 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003405 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003406}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3407
3408/*---------------------------------------------------------------------------
3409 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3410 *--------------------------------------------------------------------------*/
3411
3412typedef PACKED_PRE struct PACKED_POST
3413{
3414 /* Link Parameters */
3415 tSirMacAddr BSSID;
3416 /* success or failure */
3417 tANI_U32 status;
3418}tEnableRadarRspParams, *tpEnableRadarRspParams;
3419
3420typedef PACKED_PRE struct PACKED_POST
3421{
3422 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003423 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003424}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3425
3426/*---------------------------------------------------------------------------
3427 *WLAN_HAL_RADAR_DETECT_INTR_IND
3428 *--------------------------------------------------------------------------*/
3429
3430typedef PACKED_PRE struct PACKED_POST
3431{
3432 tANI_U8 radarDetChannel;
3433}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3434
3435typedef PACKED_PRE struct PACKED_POST
3436{
3437 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003438 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003439}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3440
3441/*---------------------------------------------------------------------------
3442 *WLAN_HAL_RADAR_DETECT_IND
3443 *-------------------------------------------------------------------------*/
3444typedef PACKED_PRE struct PACKED_POST
3445{
3446 /*channel number in which the RADAR detected*/
3447 tANI_U8 channelNumber;
3448
3449 /*RADAR pulse width*/
3450 tANI_U16 radarPulseWidth; // in usecond
3451
3452 /*Number of RADAR pulses */
3453 tANI_U16 numRadarPulse;
3454}tRadarDetectIndParams,*tpRadarDetectIndParams;
3455
3456typedef PACKED_PRE struct PACKED_POST
3457{
3458 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003459 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003460}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3461
3462
3463/*---------------------------------------------------------------------------
3464 *WLAN_HAL_GET_TPC_REPORT_REQ
3465 *-------------------------------------------------------------------------*/
3466typedef PACKED_PRE struct PACKED_POST
3467{
3468 tSirMacAddr sta;
3469 tANI_U8 dialogToken;
3470 tANI_U8 txpower;
3471}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3472
3473
3474typedef PACKED_PRE struct PACKED_POST
3475{
3476 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003477 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003478}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3479
3480/*---------------------------------------------------------------------------
3481 * WLAN_HAL_GET_TPC_REPORT_RSP
3482 *--------------------------------------------------------------------------*/
3483
3484typedef PACKED_PRE struct PACKED_POST
3485{
3486 /* success or failure */
3487 tANI_U32 status;
3488}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3489
3490typedef PACKED_PRE struct PACKED_POST
3491{
3492 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003493 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003494}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3495
3496#endif
3497
Jeff Johnson295189b2012-06-20 16:38:30 -07003498/*---------------------------------------------------------------------------
3499 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3500 *-------------------------------------------------------------------------*/
3501typedef PACKED_PRE struct PACKED_POST
3502{
3503 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3504 tANI_U32 probeRespTemplateLen;
3505 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3506 tSirMacAddr bssId;
3507
3508}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3509
3510typedef PACKED_PRE struct PACKED_POST
3511{
3512 tHalMsgHeader header;
3513 tSendProbeRespReqParams sendProbeRespReqParams ;
3514}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3515
3516/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003517 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003518 *--------------------------------------------------------------------------*/
3519
3520typedef PACKED_PRE struct PACKED_POST
3521{
3522 /* success or failure */
3523 tANI_U32 status;
3524}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3525
3526typedef PACKED_PRE struct PACKED_POST
3527{
3528 tHalMsgHeader header;
3529 tSendProbeRespRspParams sendProbeRespRspParams;
3530}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3531
3532
3533/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003534 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003535 *--------------------------------------------------------------------------*/
3536
3537typedef PACKED_PRE struct PACKED_POST
3538{
3539 /* success or failure */
3540 tANI_U32 status;
3541}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3542
3543typedef PACKED_PRE struct PACKED_POST
3544{
3545 tHalMsgHeader header;
3546 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3547}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3548
3549/*---------------------------------------------------------------------------
3550 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3551 *--------------------------------------------------------------------------*/
3552
3553typedef PACKED_PRE struct PACKED_POST
3554{
3555 tANI_U16 assocId;
3556 tANI_U16 staId;
3557 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3558 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003559 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003560 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003561
3562}tDeleteStaContextParams, *tpDeleteStaContextParams;
3563
3564
3565typedef PACKED_PRE struct PACKED_POST
3566{
3567 tHalMsgHeader header;
3568 tDeleteStaContextParams deleteStaContextParams;
3569}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3570
Anand Kumar012623a2013-01-11 17:00:00 -08003571typedef PACKED_PRE struct PACKED_POST
3572{
3573 tHalMsgHeader header;
3574 tANI_U8 assocId;
3575 tANI_U8 staIdx;
3576 tANI_U8 bssIdx;
3577 tANI_U8 uReasonCode;
3578 tANI_U32 uStatus;
3579} tIndicateDelSta, *tpIndicateDelSta;
Jeff Johnson295189b2012-06-20 16:38:30 -07003580
3581/*---------------------------------------------------------------------------
3582 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3583 *--------------------------------------------------------------------------*/
3584
3585typedef PACKED_PRE struct PACKED_POST
3586{
3587 tBtAmpEventType btAmpEventType;
3588
3589}tBtAmpEventParams, *tpBtAmpEventParams;
3590
3591
3592
3593typedef PACKED_PRE struct PACKED_POST
3594{
3595 tHalMsgHeader header;
3596 tBtAmpEventParams btAmpEventParams;
3597}tBtAmpEventMsg, *tpBtAmpEventMsg;
3598
3599/*---------------------------------------------------------------------------
3600*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3601*--------------------------------------------------------------------------*/
3602
3603typedef PACKED_PRE struct PACKED_POST
3604{
3605 /* success or failure */
3606 tANI_U32 status;
3607}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3608
3609typedef PACKED_PRE struct PACKED_POST
3610{
3611 tHalMsgHeader header;
3612 tBtAmpEventRspParams btAmpEventRspParams;
3613}tBtAmpEventRsp, *tpBtAmpEventRsp;
3614
3615
3616/*---------------------------------------------------------------------------
3617 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3618 *--------------------------------------------------------------------------*/
3619
3620typedef PACKED_PRE struct PACKED_POST
3621{
3622 // Station Index. originates from HAL
3623 tANI_U8 ucSTAId;
3624
3625 // TID for which the transmit queue is being flushed
3626 tANI_U8 ucTid;
3627
3628}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3629
3630
3631typedef PACKED_PRE struct PACKED_POST
3632{
3633 tHalMsgHeader header;
3634 tTlHalFlushAcParams tlHalFlushAcParam;
3635}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3636
3637/*---------------------------------------------------------------------------
3638*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3639*--------------------------------------------------------------------------*/
3640
3641typedef PACKED_PRE struct PACKED_POST
3642{
3643 // Station Index. originates from HAL
3644 tANI_U8 ucSTAId;
3645
3646 // TID for which the transmit queue is being flushed
3647 tANI_U8 ucTid;
3648
3649 /* success or failure */
3650 tANI_U32 status;
3651}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3652
3653typedef PACKED_PRE struct PACKED_POST
3654{
3655 tHalMsgHeader header;
3656 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3657}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3658
3659/*---------------------------------------------------------------------------
3660 * WLAN_HAL_ENTER_IMPS_REQ
3661 *--------------------------------------------------------------------------*/
3662typedef PACKED_PRE struct PACKED_POST
3663{
3664 tHalMsgHeader header;
3665} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3666
3667/*---------------------------------------------------------------------------
3668 * WLAN_HAL_EXIT_IMPS_REQ
3669 *--------------------------------------------------------------------------*/
3670typedef PACKED_PRE struct PACKED_POST
3671{
3672 tHalMsgHeader header;
3673} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3674
3675/*---------------------------------------------------------------------------
3676 * WLAN_HAL_ENTER_BMPS_REQ
3677 *--------------------------------------------------------------------------*/
3678
3679typedef PACKED_PRE struct PACKED_POST
3680{
3681 tANI_U8 bssIdx;
3682 //TBTT value derived from the last beacon
3683#ifndef BUILD_QWPTTSTATIC
3684 tANI_U64 tbtt;
3685#endif
3686 tANI_U8 dtimCount;
3687 //DTIM period given to HAL during association may not be valid,
3688 //if association is based on ProbeRsp instead of beacon.
3689 tANI_U8 dtimPeriod;
3690
3691 // For CCX and 11R Roaming
3692 tANI_U32 rssiFilterPeriod;
3693 tANI_U32 numBeaconPerRssiAverage;
3694 tANI_U8 bRssiFilterEnable;
3695
3696} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3697
3698
3699typedef PACKED_PRE struct PACKED_POST
3700{
3701 tHalMsgHeader header;
3702 tHalEnterBmpsReqParams enterBmpsReq;
3703} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3704
3705/*---------------------------------------------------------------------------
3706 * WLAN_HAL_EXIT_BMPS_REQ
3707 *--------------------------------------------------------------------------*/
3708typedef PACKED_PRE struct PACKED_POST
3709{
3710 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003711 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003712} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3713
3714typedef PACKED_PRE struct PACKED_POST
3715{
3716 tHalMsgHeader header;
3717 tHalExitBmpsReqParams exitBmpsReqParams;
3718} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3719
3720/*---------------------------------------------------------------------------
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08003721 * WLAN_HAL_MISSED_BEACON_IND
3722 *--------------------------------------------------------------------------*/
3723typedef PACKED_PRE struct PACKED_POST
3724{
3725 tANI_U8 bssIdx;
3726} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
3727
3728typedef PACKED_PRE struct PACKED_POST
3729{
3730 tHalMsgHeader header;
3731 tHalMissedBeaconIndParams missedBeaconIndParams;
3732} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
3733
3734/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07003735 * WLAN_HAL_ADD_BCN_FILTER_REQ
3736 *--------------------------------------------------------------------------*/
3737/* Beacon Filtering data structures */
3738typedef PACKED_PRE struct PACKED_POST
3739{
3740 tANI_U8 offset;
3741 tANI_U8 value;
3742 tANI_U8 bitMask;
3743 tANI_U8 ref;
3744} tEidByteInfo, *tpEidByteInfo;
3745
Jeff Johnson32d95a32012-09-10 13:15:23 -07003746typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003747{
3748 tANI_U16 capabilityInfo;
3749 tANI_U16 capabilityMask;
3750 tANI_U16 beaconInterval;
3751 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003752 tANI_U8 bssIdx;
3753 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003754} tBeaconFilterMsg, *tpBeaconFilterMsg;
3755
3756/* The above structure would be followed by multiple of below mentioned structure */
3757typedef PACKED_PRE struct PACKED_POST
3758{
3759 tANI_U8 elementId;
3760 tANI_U8 checkIePresence;
3761 tEidByteInfo byte;
3762} tBeaconFilterIe, *tpBeaconFilterIe;
3763
3764typedef PACKED_PRE struct PACKED_POST
3765{
3766 tHalMsgHeader header;
3767 tBeaconFilterMsg addBcnFilterParams;
3768} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3769
3770/*---------------------------------------------------------------------------
3771 * WLAN_HAL_REM_BCN_FILTER_REQ
3772 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003773typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003774{
3775 tANI_U8 ucIeCount;
3776 tANI_U8 ucRemIeId[1];
3777} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3778
3779typedef PACKED_PRE struct PACKED_POST
3780{
3781 tHalMsgHeader header;
3782 tRemBeaconFilterMsg remBcnFilterParams;
3783} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3784
3785/*---------------------------------------------------------------------------
3786 * WLAN_HAL_HOST_OFFLOAD_REQ
3787 *--------------------------------------------------------------------------*/
3788#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3789#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3790#define HAL_IPV6_NS_OFFLOAD 2
3791#define HAL_IPV6_ADDR_LEN 16
3792#define HAL_MAC_ADDR_LEN 6
3793#define HAL_OFFLOAD_DISABLE 0
3794#define HAL_OFFLOAD_ENABLE 1
3795#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003796#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
Jeff Johnson295189b2012-06-20 16:38:30 -07003797#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003798#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
Jeff Johnson295189b2012-06-20 16:38:30 -07003799
3800typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3801{
3802 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3803 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3804 //Only support 2 possible Network Advertisement IPv6 address
3805 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3806 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3807 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3808 tANI_U8 srcIPv6AddrValid : 1;
3809 tANI_U8 targetIPv6Addr1Valid : 1;
3810 tANI_U8 targetIPv6Addr2Valid : 1;
3811 tANI_U8 reserved1 : 5;
3812 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003813 tANI_U8 bssIdx;
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07003814 tANI_U32 slotIndex; // slot index for this offload
Jeff Johnson295189b2012-06-20 16:38:30 -07003815} tHalNSOffloadParams;
3816
3817typedef PACKED_PRE struct PACKED_POST
3818{
3819 tANI_U8 offloadType;
3820 tANI_U8 enableOrDisable;
3821 PACKED_PRE union PACKED_POST
3822 {
3823 tANI_U8 hostIpv4Addr [4];
3824 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3825 } params;
3826} tHalHostOffloadReq, *tpHalHostOffloadReq;
3827
3828typedef PACKED_PRE struct PACKED_POST
3829{
3830 tHalMsgHeader header;
3831 tHalHostOffloadReq hostOffloadParams;
3832 tHalNSOffloadParams nsOffloadParams;
3833} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3834
Leo Chang397deb72013-08-22 11:33:16 -07003835
3836#ifdef FEATURE_WLAN_LPHB
3837typedef enum
3838{
3839 WIFI_HB_SET_ENABLE = 0x0001,
3840 WIFI_HB_SET_TCP_PARAMS = 0x0002,
3841 WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
3842 WIFI_HB_SET_UDP_PARAMS = 0x0004,
3843 WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
3844 WIFI_HB_SET_NETWORK_INFO = 0x0006,
3845}tLowPowerHeartBeatCmdType ;
3846
3847#define MAX_FLITER_SIZE 64
3848/*---------------------------------------------------------------------------
3849 *FEATURE_WLAN_LPHB REQ
3850 *--------------------------------------------------------------------------*/
3851typedef PACKED_PRE struct PACKED_POST
3852{
3853 uint32 hostIpv4Addr;
3854 uint32 destIpv4Addr;
3855 uint16 hostPort;
3856 uint16 destPort;
3857 uint16 timeOutSec; // in seconds
3858 tSirMacAddr gatewayMacAddr;
Leo Changd9df8aa2013-09-26 13:32:26 -07003859 uint16 timePeriodSec; // in seconds
3860 uint32 tcpSn;
Leo Chang397deb72013-08-22 11:33:16 -07003861} tlowPowerHeartBeatParamsTcpStruct;
3862
3863typedef PACKED_PRE struct PACKED_POST
3864{
3865 uint32 hostIpv4Addr;
3866 uint32 destIpv4Addr;
3867 uint16 hostPort;
3868 uint16 destPort;
3869 uint16 timePeriodSec;// in seconds
3870 uint16 timeOutSec; // in seconds
3871 tSirMacAddr gatewayMacAddr;
3872} tlowPowerHeartBeatParamsUdpStruct;
3873
3874typedef PACKED_PRE struct PACKED_POST
3875{
3876 uint32 offset;
3877 uint32 filterLength;
3878 uint8 filter[MAX_FLITER_SIZE];
3879} tlowPowerHeartBeatFilterStruct;
3880
3881typedef PACKED_PRE struct PACKED_POST
3882{
3883 uint8 heartBeatEnable;
3884 uint8 heartBeatType; //TCP or UDP
3885} tlowPowerHeartBeatEnableStruct;
3886
3887typedef PACKED_PRE struct PACKED_POST
3888{
3889 uint8 dummy;
3890} tlowPowerHeartBeatNetworkInfoStruct;
3891
3892
3893typedef PACKED_PRE struct PACKED_POST
3894{
3895 uint8 sessionIdx;
3896 uint16 lowPowerHeartBeatCmdType;
3897 PACKED_PRE union PACKED_PRO
3898 {
3899 tlowPowerHeartBeatEnableStruct control;
3900 tlowPowerHeartBeatFilterStruct tcpUdpFilter;
3901 tlowPowerHeartBeatParamsTcpStruct tcpParams;
3902 tlowPowerHeartBeatParamsUdpStruct udpParams;
3903 tlowPowerHeartBeatNetworkInfoStruct info;
3904 }options;
3905} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
3906
3907
3908typedef PACKED_PRE struct PACKED_POST
3909{
3910 tHalMsgHeader header;
3911 tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
3912} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
3913
3914/*---------------------------------------------------------------------------
3915 * FEATURE_WLAN_LPHB RSP
3916 *--------------------------------------------------------------------------*/
3917
3918typedef PACKED_PRE struct PACKED_POST
3919{
3920 /* success or failure */
3921 uint8 sessionIdx;
3922 uint32 status;
3923 uint16 lowPowerHeartBeatCmdType;
3924}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
3925
3926typedef PACKED_PRE struct PACKED_POST
3927{
3928 tHalMsgHeader header;
3929 tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
3930}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
3931
3932
3933/*---------------------------------------------------------------------------
3934 * FEATURE_WLAN_LPHB IND
3935 *--------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07003936#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
3937#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
3938
3939#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
3940#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
Leo Changd9df8aa2013-09-26 13:32:26 -07003941#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
Leo Chang397deb72013-08-22 11:33:16 -07003942
Kumar Anandea78e792013-10-10 23:47:01 -07003943
3944#define WIFI_LPHB_PROTO_UDP 0x01
3945#define WIFI_LPHB_PROTO_TCP 0x02
3946
Leo Chang397deb72013-08-22 11:33:16 -07003947typedef PACKED_PRE struct PACKED_POST
3948{
3949 uint8 bssIdx;
3950 uint8 sessionIdx;
3951 uint8 protocolType; /*TCP or UDP*/
3952 uint8 eventReason;
3953
3954}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
3955
3956typedef PACKED_PRE struct PACKED_POST
3957{
3958 tHalMsgHeader header;
3959 tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
3960}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
3961
3962#endif
krunal soni2a4728d2013-09-20 21:56:50 -07003963
3964#ifdef FEATURE_WLAN_BATCH_SCAN
3965
3966/*---------------------------------------------------------------------------
3967 * WLAN_HAL_BATCHSCAN_SET_REQ
3968 *--------------------------------------------------------------------------*/
3969typedef PACKED_PRE struct PACKED_POST
3970{
3971 /* Scan Frerquency - default to 30Sec*/
3972 tANI_U32 scanInterval;
3973 tANI_U32 numScan2Batch;
3974 tANI_U32 bestNetworks;
3975 tANI_U8 rfBand;
3976 tANI_U8 rtt;
3977} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
3978
3979typedef PACKED_PRE struct PACKED_POST
3980{
3981 tHalMsgHeader header;
3982 tHalBatchScanSetParams batchScanParams;
3983} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
3984
3985/*---------------------------------------------------------------------------
3986 * WLAN_HAL_BATCHSCAN_SET_RSP
3987 *--------------------------------------------------------------------------*/
3988typedef PACKED_PRE struct PACKED_POST
3989{
3990 tANI_U32 supportedMscan;
3991} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
3992
3993typedef PACKED_PRE struct PACKED_POST
3994{
3995 tHalMsgHeader header;
3996 tHalBatchScanSetRspParam setBatchScanRspParam;
3997} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
3998
3999/*---------------------------------------------------------------------------
4000* WLAN_HAL_BATCHSCAN_STOP_IND
4001*--------------------------------------------------------------------------*/
4002typedef PACKED_PRE struct PACKED_POST
4003{
4004 tANI_U32 param;
4005} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
4006
4007typedef PACKED_PRE struct PACKED_POST
4008{
4009 tHalMsgHeader header;
4010 tHalBatchScanStopIndParam param;
4011} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
4012
4013/*---------------------------------------------------------------------------
4014* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
4015*--------------------------------------------------------------------------*/
4016typedef PACKED_PRE struct PACKED_POST
4017{
4018 tANI_U32 param;
4019} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
4020
4021typedef PACKED_PRE struct PACKED_POST
4022{
4023 tHalMsgHeader header;
4024 tHalBatchScanTriggerResultParam param;
4025} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
4026
4027/*---------------------------------------------------------------------------
4028 * WLAN_HAL_BATCHSCAN_GET_RSP
4029 *--------------------------------------------------------------------------*/
4030typedef PACKED_PRE struct PACKED_POST
4031{
4032 tANI_U8 bssid[6]; /* BSSID */
4033 tANI_U8 ssid[32]; /* SSID */
4034 tANI_U8 ch; /* Channel */
4035 tANI_U8 rssi; /* RSSI or Level */
4036 /* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
4037 tANI_U32 timestamp;
4038} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
4039
4040typedef PACKED_PRE struct PACKED_POST
4041{
4042 tANI_U32 scanId; /* Scan List ID. */
4043 /* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
4044 tANI_U32 numNetworksInScanList;
4045 /* Variable data ptr: Number of AP in Scan List */
4046 /* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
4047 * of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
4048 tANI_U8 scanList[1];
4049} tHalBatchScanList, *tpHalBatchScanList;
4050
4051typedef PACKED_PRE struct PACKED_POST
4052{
4053 tANI_U32 timestamp;
4054 tANI_U32 numScanLists;
4055 boolean isLastResult;
4056 /* Variable Data ptr: Number of Scan Lists*/
4057 /* following isLastResult is data of type tHalBatchScanList
4058 * of sizeof(tHalBatchScanList) * numScanLists*/
4059 tANI_U8 scanResults[1];
4060} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
4061
4062typedef PACKED_PRE struct PACKED_POST
4063{
4064 tHalMsgHeader header;
4065 tHalBatchScanResultIndParam resultIndMsgParam;
4066} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
4067
4068#endif
4069
Jeff Johnson295189b2012-06-20 16:38:30 -07004070/*---------------------------------------------------------------------------
4071 * WLAN_HAL_KEEP_ALIVE_REQ
4072 *--------------------------------------------------------------------------*/
4073/* Packet Types. */
4074#define HAL_KEEP_ALIVE_NULL_PKT 1
4075#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
4076
4077/* Enable or disable keep alive */
4078#define HAL_KEEP_ALIVE_DISABLE 0
4079#define HAL_KEEP_ALIVE_ENABLE 1
4080
4081/* Keep Alive request. */
4082typedef PACKED_PRE struct PACKED_POST
4083{
4084 tANI_U8 packetType;
4085 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004086 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07004087 tHalIpv4Addr destIpv4Addr;
4088 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07004089 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004090} tHalKeepAliveReq, *tpHalKeepAliveReq;
4091
4092typedef PACKED_PRE struct PACKED_POST
4093{
4094 tHalMsgHeader header;
4095 tHalKeepAliveReq KeepAliveParams;
4096} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
4097
4098/*---------------------------------------------------------------------------
4099 * WLAN_HAL_SET_RSSI_THRESH_REQ
4100 *--------------------------------------------------------------------------*/
4101typedef PACKED_PRE struct PACKED_POST
4102{
4103 tANI_S8 ucRssiThreshold1 : 8;
4104 tANI_S8 ucRssiThreshold2 : 8;
4105 tANI_S8 ucRssiThreshold3 : 8;
4106 tANI_U8 bRssiThres1PosNotify : 1;
4107 tANI_U8 bRssiThres1NegNotify : 1;
4108 tANI_U8 bRssiThres2PosNotify : 1;
4109 tANI_U8 bRssiThres2NegNotify : 1;
4110 tANI_U8 bRssiThres3PosNotify : 1;
4111 tANI_U8 bRssiThres3NegNotify : 1;
4112 tANI_U8 bReserved10 : 2;
4113} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004114
Jeff Johnson295189b2012-06-20 16:38:30 -07004115typedef PACKED_PRE struct PACKED_POST
4116{
4117 tHalMsgHeader header;
4118 tHalRSSIThresholds rssiThreshParams;
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08004119} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004120
4121/*---------------------------------------------------------------------------
4122 * WLAN_HAL_ENTER_UAPSD_REQ
4123 *--------------------------------------------------------------------------*/
4124typedef PACKED_PRE struct PACKED_POST
4125{
4126 tANI_U8 bkDeliveryEnabled:1;
4127 tANI_U8 beDeliveryEnabled:1;
4128 tANI_U8 viDeliveryEnabled:1;
4129 tANI_U8 voDeliveryEnabled:1;
4130 tANI_U8 bkTriggerEnabled:1;
4131 tANI_U8 beTriggerEnabled:1;
4132 tANI_U8 viTriggerEnabled:1;
4133 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07004134 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004135} tUapsdReqParams, *tpUapsdReqParams;
4136
4137typedef PACKED_PRE struct PACKED_POST
4138{
4139 tHalMsgHeader header;
4140 tUapsdReqParams enterUapsdParams;
4141} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
4142
4143/*---------------------------------------------------------------------------
4144 * WLAN_HAL_EXIT_UAPSD_REQ
4145 *--------------------------------------------------------------------------*/
4146typedef PACKED_PRE struct PACKED_POST
4147{
4148 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07004149 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004150} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
4151
Kumar Anandea78e792013-10-10 23:47:01 -07004152#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
4153#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
Jeff Johnson295189b2012-06-20 16:38:30 -07004154/*---------------------------------------------------------------------------
Yue Maab3ccfc2013-08-14 17:19:08 -07004155 * WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
4156 *--------------------------------------------------------------------------*/
4157typedef PACKED_PRE struct PACKED_POST
4158{
4159 tANI_U32 selfStaIdx:8;
4160 tANI_U32 ucPtrnId:8; // Pattern ID
4161 tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
4162 tANI_U32 uPtrnIntervalMs; // In msec
4163 tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
4164} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
4165
4166typedef PACKED_PRE struct PACKED_POST
4167{
4168 tHalMsgHeader header;
4169 tHalAddPeriodicTxPtrn ptrnParams;
4170} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
4171
4172/*---------------------------------------------------------------------------
4173 * WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
4174 *--------------------------------------------------------------------------*/
4175typedef PACKED_PRE struct PACKED_POST
4176{
4177 tANI_U32 selfStaIdx:8;
4178 tANI_U32 rsvd:24;
4179 /* Bitmap of pattern IDs that needs to be deleted */
4180 tANI_U32 uPatternIdBitmap;
4181} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
4182
4183typedef PACKED_PRE struct PACKED_POST
4184{
4185 tHalMsgHeader header;
4186 tHalDelPeriodicTxPtrn ptrnParams;
4187} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
4188
4189/*---------------------------------------------------------------------------
4190 * WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
4191 *--------------------------------------------------------------------------*/
4192typedef PACKED_PRE struct PACKED_POST
4193{
4194 /* Type of Failure indication */
4195 tANI_U32 bssIdx:8;
4196 tANI_U32 selfStaIdx:8;
4197 tANI_U32 rsvd:16;
4198 tANI_U32 status;
4199 tANI_U32 patternIdBitmap;
4200} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
4201
4202typedef PACKED_PRE struct PACKED_POST
4203{
4204 tHalMsgHeader header;
4205 tHalPeriodicTxPtrnFwInd fwIndParams;
4206} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
4207
4208/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004209 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
4210 *--------------------------------------------------------------------------*/
4211#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
4212#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
4213
4214typedef PACKED_PRE struct PACKED_POST
4215{
4216 tANI_U8 ucPatternId; // Pattern ID
4217 // Pattern byte offset from beginning of the 802.11 packet to start of the
4218 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07004219 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07004220 tANI_U8 ucPatternSize; // Non-Zero Pattern size
4221 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
4222 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
4223 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
4224 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
4225 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07004226 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004227} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
4228
4229typedef PACKED_PRE struct PACKED_POST
4230{
4231 tHalMsgHeader header;
4232 tHalWowlAddBcastPtrn ptrnParams;
4233} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004234
Jeff Johnsone7245742012-09-05 17:12:55 -07004235
4236
Jeff Johnson295189b2012-06-20 16:38:30 -07004237/*---------------------------------------------------------------------------
4238 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
4239 *--------------------------------------------------------------------------*/
4240typedef PACKED_PRE struct PACKED_POST
4241{
4242 /* Pattern ID of the wakeup pattern to be deleted */
4243 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07004244 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004245} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
4246
4247typedef PACKED_PRE struct PACKED_POST
4248{
4249 tHalMsgHeader header;
4250 tHalWowlDelBcastPtrn ptrnParams;
4251} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
4252
4253/*---------------------------------------------------------------------------
4254 * WLAN_HAL_ENTER_WOWL_REQ
4255 *--------------------------------------------------------------------------*/
4256typedef PACKED_PRE struct PACKED_POST
4257{
4258 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004259 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004260
4261 /* Magic pattern */
4262 tSirMacAddr magicPtrn;
4263
Jeff Johnson32d95a32012-09-10 13:15:23 -07004264 /* Enables/disables packet pattern filtering in firmware.
4265 Enabling this flag enables broadcast pattern matching
4266 in Firmware. If unicast pattern matching is also desired,
4267 ucUcastPatternFilteringEnable flag must be set tot true
4268 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07004269 */
4270 tANI_U8 ucPatternFilteringEnable;
4271
Jeff Johnson32d95a32012-09-10 13:15:23 -07004272 /* Enables/disables unicast packet pattern filtering.
4273 This flag specifies whether we want to do pattern match
4274 on unicast packets as well and not just broadcast packets.
4275 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07004276 (main controlling flag) is set to false
4277 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004278 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07004279
Jeff Johnson32d95a32012-09-10 13:15:23 -07004280 /* This configuration is valid only when magicPktEnable=1.
4281 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07004282 * Channel Switch Action Frame.
4283 */
4284 tANI_U8 ucWowChnlSwitchRcv;
4285
Jeff Johnson32d95a32012-09-10 13:15:23 -07004286 /* This configuration is valid only when magicPktEnable=1.
4287 * It requests hardware to wake up when it receives the
4288 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004289 */
4290 tANI_U8 ucWowDeauthRcv;
4291
Jeff Johnson32d95a32012-09-10 13:15:23 -07004292 /* This configuration is valid only when magicPktEnable=1.
4293 * It requests hardware to wake up when it receives the
4294 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07004295 */
4296 tANI_U8 ucWowDisassocRcv;
4297
Jeff Johnson32d95a32012-09-10 13:15:23 -07004298 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004299 * It requests hardware to wake up when it has missed
4300 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07004301 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07004302 */
4303 tANI_U8 ucWowMaxMissedBeacons;
4304
Jeff Johnson32d95a32012-09-10 13:15:23 -07004305 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07004306 * This is a timeout value in units of microsec. It requests
4307 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07004308 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07004309 */
4310 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004311
Jeff Johnson295189b2012-06-20 16:38:30 -07004312 /* This configuration directs the WoW packet filtering to look for EAP-ID
4313 * requests embedded in EAPOL frames and use this as a wake source.
4314 */
4315 tANI_U8 ucWoWEAPIDRequestEnable;
4316
4317 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
4318 * requests and use this as a wake source.
4319 */
4320 tANI_U8 ucWoWEAPOL4WayEnable;
4321
4322 /* This configuration allows a host wakeup on an network scan offload match.
4323 */
4324 tANI_U8 ucWowNetScanOffloadMatch;
4325
4326 /* This configuration allows a host wakeup on any GTK rekeying error.
4327 */
4328 tANI_U8 ucWowGTKRekeyError;
4329
4330 /* This configuration allows a host wakeup on BSS connection loss.
4331 */
4332 tANI_U8 ucWoWBSSConnLoss;
4333
Jeff Johnsone7245742012-09-05 17:12:55 -07004334 tANI_U8 bssIdx;
4335
Jeff Johnson295189b2012-06-20 16:38:30 -07004336} tHalWowlEnterParams, *tpHalWowlEnterParams;
4337
4338typedef PACKED_PRE struct PACKED_POST
4339{
4340 tHalMsgHeader header;
4341 tHalWowlEnterParams enterWowlParams;
4342} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
4343
4344/*---------------------------------------------------------------------------
4345 * WLAN_HAL_EXIT_WOWL_REQ
4346 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07004347
Jeff Johnson295189b2012-06-20 16:38:30 -07004348typedef PACKED_PRE struct PACKED_POST
4349{
Jeff Johnsone7245742012-09-05 17:12:55 -07004350 tANI_U8 bssIdx;
4351
4352} tHalWowlExitParams, *tpHalWowlExitParams;
4353
4354typedef PACKED_PRE struct PACKED_POST
4355{
4356 tHalMsgHeader header;
4357 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004358} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
4359
4360/*---------------------------------------------------------------------------
4361 * WLAN_HAL_GET_RSSI_REQ
4362 *--------------------------------------------------------------------------*/
4363typedef PACKED_PRE struct PACKED_POST
4364{
4365 tHalMsgHeader header;
4366} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
4367
Anand Kumar012623a2013-01-11 17:00:00 -08004368typedef PACKED_PRE struct PACKED_POST
4369{
4370 /* Valid STA Idx for per STA stats request */
4371 tANI_U32 staId;
4372
4373}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
4374
4375
4376/*---------------------------------------------------------------------------
4377 * WLAN_HAL_GET_ROAM_RSSI_REQ
4378 *--------------------------------------------------------------------------*/
4379typedef PACKED_PRE struct PACKED_POST
4380{
4381 tHalMsgHeader header;
4382 tHalRoamRssiReqParams roamRssiReqParams;
4383} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
4384
4385
Jeff Johnson295189b2012-06-20 16:38:30 -07004386/*---------------------------------------------------------------------------
4387 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
4388 *--------------------------------------------------------------------------*/
4389typedef PACKED_PRE struct PACKED_POST {
4390 tANI_U8 staidx; // STA index
4391 tANI_U8 ac; // Access Category
4392 tANI_U8 up; // User Priority
4393 tANI_U32 srvInterval; // Service Interval
4394 tANI_U32 susInterval; // Suspend Interval
4395 tANI_U32 delayInterval; // Delay Interval
4396} tUapsdInfo, tpUapsdInfo;
4397
4398typedef PACKED_PRE struct PACKED_POST
4399{
4400 tHalMsgHeader header;
4401 tUapsdInfo enableUapsdAcParams;
4402} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
4403
4404/*---------------------------------------------------------------------------
4405 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
4406 *--------------------------------------------------------------------------*/
4407typedef PACKED_PRE struct PACKED_POST {
4408 tANI_U8 setMcstBcstFilterSetting;
4409 tANI_U8 setMcstBcstFilter;
4410} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
4411
4412typedef PACKED_PRE struct PACKED_POST
4413{
4414 tHalMsgHeader header;
4415 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
4416} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
4417
4418/*---------------------------------------------------------------------------
4419 * WLAN_HAL_ENTER_IMPS_RSP
4420 *--------------------------------------------------------------------------*/
4421typedef PACKED_PRE struct PACKED_POST
4422{
4423 /* success or failure */
4424 tANI_U32 status;
4425} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
4426
4427typedef PACKED_PRE struct PACKED_POST
4428{
4429 tHalMsgHeader header;
4430 tHalEnterImpsRspParams enterImpsRspParams;
4431} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4432
4433/*---------------------------------------------------------------------------
4434 * WLAN_HAL_EXIT_IMPS_RSP
4435 *--------------------------------------------------------------------------*/
4436typedef PACKED_PRE struct PACKED_POST
4437{
4438 /* success or failure */
4439 tANI_U32 status;
4440} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4441
4442typedef PACKED_PRE struct PACKED_POST
4443{
4444 tHalMsgHeader header;
4445 tHalExitImpsRspParams exitImpsRspParams;
4446} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4447
4448/*---------------------------------------------------------------------------
4449 * WLAN_HAL_ENTER_BMPS_RSP
4450 *--------------------------------------------------------------------------*/
4451typedef PACKED_PRE struct PACKED_POST
4452{
4453 /* success or failure */
4454 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004455 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004456} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4457
4458typedef PACKED_PRE struct PACKED_POST
4459{
4460 tHalMsgHeader header;
4461 tHalEnterBmpsRspParams enterBmpsRspParams;
4462} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4463
4464/*---------------------------------------------------------------------------
4465 * WLAN_HAL_EXIT_BMPS_RSP
4466 *--------------------------------------------------------------------------*/
4467typedef PACKED_PRE struct PACKED_POST
4468{
4469 /* success or failure */
4470 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004471 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004472} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4473
4474typedef PACKED_PRE struct PACKED_POST
4475{
4476 tHalMsgHeader header;
4477 tHalExitBmpsRspParams exitBmpsRspParams;
4478} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4479
4480/*---------------------------------------------------------------------------
4481 * WLAN_HAL_ENTER_UAPSD_RSP
4482 *--------------------------------------------------------------------------*/
4483typedef PACKED_PRE struct PACKED_POST
4484{
4485 /* success or failure */
4486 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004487 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004488}tUapsdRspParams, *tpUapsdRspParams;
4489
4490typedef PACKED_PRE struct PACKED_POST
4491{
4492 tHalMsgHeader header;
4493 tUapsdRspParams enterUapsdRspParams;
4494} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4495
4496/*---------------------------------------------------------------------------
4497 * WLAN_HAL_EXIT_UAPSD_RSP
4498 *--------------------------------------------------------------------------*/
4499typedef PACKED_PRE struct PACKED_POST
4500{
4501 /* success or failure */
4502 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004503 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004504} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4505
4506typedef PACKED_PRE struct PACKED_POST
4507{
4508 tHalMsgHeader header;
4509 tHalExitUapsdRspParams exitUapsdRspParams;
4510} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4511
4512/*---------------------------------------------------------------------------
4513 * WLAN_HAL_RSSI_NOTIFICATION_IND
4514 *--------------------------------------------------------------------------*/
4515typedef PACKED_PRE struct PACKED_POST
4516{
4517 tANI_U32 bRssiThres1PosCross : 1;
4518 tANI_U32 bRssiThres1NegCross : 1;
4519 tANI_U32 bRssiThres2PosCross : 1;
4520 tANI_U32 bRssiThres2NegCross : 1;
4521 tANI_U32 bRssiThres3PosCross : 1;
4522 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004523 tANI_U32 avgRssi : 8;
Srinivas Girigowda91f24ae2013-07-17 12:54:05 -07004524 tANI_U32 uBssIdx : 8;
Kumar Anandea78e792013-10-10 23:47:01 -07004525 tANI_U32 isBTCoexCompromise : 1;
4526 tANI_U32 bReserved : 9;
Jeff Johnson295189b2012-06-20 16:38:30 -07004527} tHalRSSINotification, *tpHalRSSINotification;
4528
4529typedef PACKED_PRE struct PACKED_POST
4530{
4531 tHalMsgHeader header;
4532 tHalRSSINotification rssiNotificationParams;
4533} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4534
4535/*---------------------------------------------------------------------------
4536 * WLAN_HAL_GET_RSSI_RSP
4537 *--------------------------------------------------------------------------*/
4538typedef PACKED_PRE struct PACKED_POST
4539{
4540 /* success or failure */
4541 tANI_U32 status;
4542 tANI_S8 rssi;
4543} tHalGetRssiParams, *tpHalGetRspParams;
4544
4545typedef PACKED_PRE struct PACKED_POST
4546{
4547 tHalMsgHeader header;
4548 tHalGetRssiParams rssiRspParams;
4549} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4550
4551/*---------------------------------------------------------------------------
Anand Kumar012623a2013-01-11 17:00:00 -08004552 * WLAN_HAL_GET_ROAM_RSSI_RSP
4553 *--------------------------------------------------------------------------*/
4554typedef PACKED_PRE struct PACKED_POST
4555{
4556 /* success or failure */
4557 tANI_U32 status;
4558
4559 tANI_U8 staId;
4560 tANI_S8 rssi;
4561} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
4562
4563typedef PACKED_PRE struct PACKED_POST
4564{
4565 tHalMsgHeader header;
4566 tHalGetRoamRssiParams roamRssiRspParams;
4567} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
4568
4569/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004570 * WLAN_HAL_ENTER_WOWL_RSP
4571 *--------------------------------------------------------------------------*/
4572typedef PACKED_PRE struct PACKED_POST
4573{
4574 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004575 tANI_U32 status;
4576 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004577} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4578
4579typedef PACKED_PRE struct PACKED_POST
4580{
4581 tHalMsgHeader header;
4582 tHalEnterWowlRspParams enterWowlRspParams;
4583} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4584
4585/*---------------------------------------------------------------------------
4586 * WLAN_HAL_EXIT_WOWL_RSP
4587 *--------------------------------------------------------------------------*/
4588typedef PACKED_PRE struct PACKED_POST
4589{
4590 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004591 tANI_U32 status;
4592 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004593} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4594
4595typedef PACKED_PRE struct PACKED_POST
4596{
4597 tHalMsgHeader header;
4598 tHalExitWowlRspParams exitWowlRspParams;
4599} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4600
4601/*---------------------------------------------------------------------------
4602 * WLAN_HAL_ADD_BCN_FILTER_RSP
4603 *--------------------------------------------------------------------------*/
4604typedef PACKED_PRE struct PACKED_POST
4605{
4606 /* success or failure */
4607 tANI_U32 status;
4608} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4609
4610typedef PACKED_PRE struct PACKED_POST
4611{
4612 tHalMsgHeader header;
4613 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4614} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4615
4616/*---------------------------------------------------------------------------
4617 * WLAN_HAL_REM_BCN_FILTER_RSP
4618 *--------------------------------------------------------------------------*/
4619typedef PACKED_PRE struct PACKED_POST
4620{
4621 /* success or failure */
4622 tANI_U32 status;
4623} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4624
4625typedef PACKED_PRE struct PACKED_POST
4626{
4627 tHalMsgHeader header;
4628 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4629} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4630
4631/*---------------------------------------------------------------------------
4632 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4633 *--------------------------------------------------------------------------*/
4634typedef PACKED_PRE struct PACKED_POST
4635{
4636 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004637 tANI_U32 status;
4638 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004639} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4640
4641typedef PACKED_PRE struct PACKED_POST
4642{
4643 tHalMsgHeader header;
4644 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4645} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4646
4647/*---------------------------------------------------------------------------
4648 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4649 *--------------------------------------------------------------------------*/
4650typedef PACKED_PRE struct PACKED_POST
4651{
4652 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004653 tANI_U32 status;
4654 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004655} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4656
4657typedef PACKED_PRE struct PACKED_POST
4658{
4659 tHalMsgHeader header;
4660 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4661} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4662
4663/*---------------------------------------------------------------------------
4664 * WLAN_HAL_HOST_OFFLOAD_RSP
4665 *--------------------------------------------------------------------------*/
4666typedef PACKED_PRE struct PACKED_POST
4667{
4668 /* success or failure */
4669 tANI_U32 status;
4670} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4671
4672typedef PACKED_PRE struct PACKED_POST
4673{
4674 tHalMsgHeader header;
4675 tHalHostOffloadRspParams hostOffloadRspParams;
4676} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4677
4678/*---------------------------------------------------------------------------
4679 * WLAN_HAL_KEEP_ALIVE_RSP
4680 *--------------------------------------------------------------------------*/
4681typedef PACKED_PRE struct PACKED_POST
4682{
4683 /* success or failure */
4684 tANI_U32 status;
4685} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4686
4687typedef PACKED_PRE struct PACKED_POST
4688{
4689 tHalMsgHeader header;
4690 tHalKeepAliveRspParams keepAliveRspParams;
4691} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4692
4693/*---------------------------------------------------------------------------
4694 * WLAN_HAL_SET_RSSI_THRESH_RSP
4695 *--------------------------------------------------------------------------*/
4696typedef PACKED_PRE struct PACKED_POST
4697{
4698 /* success or failure */
4699 tANI_U32 status;
4700} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4701
4702typedef PACKED_PRE struct PACKED_POST
4703{
4704 tHalMsgHeader header;
4705 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4706} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4707
4708/*---------------------------------------------------------------------------
4709 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4710 *--------------------------------------------------------------------------*/
4711typedef PACKED_PRE struct PACKED_POST
4712{
4713 /* success or failure */
4714 tANI_U32 status;
4715} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4716
4717typedef PACKED_PRE struct PACKED_POST
4718{
4719 tHalMsgHeader header;
4720 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4721} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4722
4723/*---------------------------------------------------------------------------
4724 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4725 *--------------------------------------------------------------------------*/
4726typedef PACKED_PRE struct PACKED_POST
4727{
4728 /* success or failure */
4729 tANI_U32 status;
4730} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4731
4732typedef PACKED_PRE struct PACKED_POST
4733{
4734 tHalMsgHeader header;
4735 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4736} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4737
4738/*---------------------------------------------------------------------------
4739 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4740 *--------------------------------------------------------------------------*/
4741
4742typedef PACKED_PRE struct PACKED_POST
4743{
4744 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4745 //the request has power constraints, this should be applied only to that session
4746 tSirMacAddr selfStaMacAddr;
4747 //In request,
4748 //power == MaxTx power to be used.
4749 tPowerdBm power;
4750
4751}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4752
4753
4754typedef PACKED_PRE struct PACKED_POST
4755{
4756 tHalMsgHeader header;
4757 tSetMaxTxPwrParams setMaxTxPwrParams;
4758}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4759
4760/*---------------------------------------------------------------------------
4761*WLAN_HAL_SET_MAX_TX_POWER_RSP
4762*--------------------------------------------------------------------------*/
4763
4764typedef PACKED_PRE struct PACKED_POST
4765{
4766 //power == tx power used for management frames.
4767 tPowerdBm power;
4768
4769 /* success or failure */
4770 tANI_U32 status;
4771}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4772
4773typedef PACKED_PRE struct PACKED_POST
4774{
4775 tHalMsgHeader header;
4776 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4777}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4778
Kumar Anandea78e792013-10-10 23:47:01 -07004779
Jeff Johnson295189b2012-06-20 16:38:30 -07004780/*---------------------------------------------------------------------------
Arif Hussain36fda162013-08-30 14:46:57 -07004781 *WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
4782 *--------------------------------------------------------------------------*/
4783
4784/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
4785typedef enum
4786{
4787 WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
4788 // For 2.4GHz or 5GHz bands
4789 WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
4790 WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
4791 // End of valid enums
4792 WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
4793}tHalSetMaxTxPwrBandInfo;
4794
4795typedef PACKED_PRE struct PACKED_POST
4796{
4797 tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
Kumar Anandea78e792013-10-10 23:47:01 -07004798 tPowerdBm power; // In request, power == MaxTx power to be used.
Arif Hussain36fda162013-08-30 14:46:57 -07004799}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
4800
Kumar Anandea78e792013-10-10 23:47:01 -07004801
Arif Hussain36fda162013-08-30 14:46:57 -07004802typedef PACKED_PRE struct PACKED_POST
4803{
4804 tHalMsgHeader header;
4805 tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
4806}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
4807
4808/*---------------------------------------------------------------------------
4809*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
4810*--------------------------------------------------------------------------*/
4811
4812typedef PACKED_PRE struct PACKED_POST
4813{
4814 //power == tx power used for management frames.
4815 tPowerdBm power;
4816
4817 /* success or failure */
4818 tANI_U32 status;
4819}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
4820
4821typedef PACKED_PRE struct PACKED_POST
4822{
4823 tHalMsgHeader header;
4824 tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
4825}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
4826
4827/*---------------------------------------------------------------------------
Jeff Johnson295189b2012-06-20 16:38:30 -07004828 *WLAN_HAL_SET_TX_POWER_REQ
4829 *--------------------------------------------------------------------------*/
4830
4831typedef PACKED_PRE struct PACKED_POST
4832{
4833 /* TX Power in milli watts */
4834 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004835 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004836}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4837
4838
4839typedef PACKED_PRE struct PACKED_POST
4840{
4841 tHalMsgHeader header;
4842 tSetTxPwrReqParams setTxPwrReqParams;
4843}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4844
4845/*---------------------------------------------------------------------------
4846*WLAN_HAL_SET_TX_POWER_RSP
4847*--------------------------------------------------------------------------*/
4848
4849typedef PACKED_PRE struct PACKED_POST
4850{
4851 /* success or failure */
4852 tANI_U32 status;
4853}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4854
4855typedef PACKED_PRE struct PACKED_POST
4856{
4857 tHalMsgHeader header;
4858 tSetTxPwrRspParams setTxPwrRspParams;
4859}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4860
4861/*---------------------------------------------------------------------------
4862 *WLAN_HAL_GET_TX_POWER_REQ
4863 *--------------------------------------------------------------------------*/
4864
4865typedef PACKED_PRE struct PACKED_POST
4866{
4867 tANI_U8 staId;
4868}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4869
4870typedef PACKED_PRE struct PACKED_POST
4871{
4872 tHalMsgHeader header;
4873 tGetTxPwrReqParams getTxPwrReqParams;
4874}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4875
4876/*---------------------------------------------------------------------------
4877*WLAN_HAL_GET_TX_POWER_RSP
4878*--------------------------------------------------------------------------*/
4879
4880typedef PACKED_PRE struct PACKED_POST
4881{
4882 /* success or failure */
4883 tANI_U32 status;
4884
4885 /* TX Power in milli watts */
4886 tANI_U32 txPower;
4887}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4888
4889typedef PACKED_PRE struct PACKED_POST
4890{
4891 tHalMsgHeader header;
4892 tGetTxPwrRspParams getTxPwrRspParams;
4893}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4894
4895#ifdef WLAN_FEATURE_P2P
4896/*---------------------------------------------------------------------------
4897 *WLAN_HAL_SET_P2P_GONOA_REQ
4898 *--------------------------------------------------------------------------*/
4899
4900typedef PACKED_PRE struct PACKED_POST
4901{
4902 tANI_U8 opp_ps;
4903 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004904 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004905 tANI_U32 duration;
4906 tANI_U32 interval;
4907 tANI_U32 single_noa_duration;
4908 tANI_U8 psSelection;
4909}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4910
4911
4912typedef PACKED_PRE struct PACKED_POST
4913{
4914 tHalMsgHeader header;
4915 tSetP2PGONOAParams setP2PGONOAParams;
4916}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4917
4918/*---------------------------------------------------------------------------
4919*WLAN_HAL_SET_P2P_GONOA_RSP
4920*--------------------------------------------------------------------------*/
4921
4922typedef PACKED_PRE struct PACKED_POST
4923{
4924 /* success or failure */
4925 tANI_U32 status;
4926}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4927
4928typedef PACKED_PRE struct PACKED_POST
4929{
4930 tHalMsgHeader header;
4931 tSetP2PGONOARspParams setP2PGONOARspParams;
4932}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4933#endif
4934
4935/*---------------------------------------------------------------------------
4936 *WLAN_HAL_ADD_SELF_STA_REQ
4937 *--------------------------------------------------------------------------*/
4938
4939typedef PACKED_PRE struct PACKED_POST
4940{
4941 tSirMacAddr selfMacAddr;
4942 tANI_U32 status;
4943}tAddStaSelfParams, *tpAddStaSelfParams;
4944
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004945typedef PACKED_PRE struct PACKED_POST
4946{
4947 tSirMacAddr selfMacAddr;
4948 tANI_U32 status;
4949 tHalIfacePersona iface_persona;
4950}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07004951
4952typedef PACKED_PRE struct PACKED_POST
4953{
4954 tHalMsgHeader header;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004955 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07004956 tAddStaSelfParams addStaSelfParams;
Kiran Kumar Lokere0ad5cd32013-06-25 11:26:22 -07004957 tAddStaSelfParams_V1 addStaSelfParams_V1;
4958 }uAddStaSelfParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004959}tAddStaSelfReq, *tpAddStaSelfReq;
4960
4961/*---------------------------------------------------------------------------
4962*WLAN_HAL_ADD_SELF_STA_RSP
4963*--------------------------------------------------------------------------*/
4964
4965typedef PACKED_PRE struct PACKED_POST
4966{
4967 /* success or failure */
4968 tANI_U32 status;
4969
4970 /*Self STA Index */
4971 tANI_U8 selfStaIdx;
4972
4973 /* DPU Index (IGTK, PTK, GTK all same) */
4974 tANI_U8 dpuIdx;
4975
4976 /* DPU Signature */
4977 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004978
Jeff Johnson295189b2012-06-20 16:38:30 -07004979}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4980
4981typedef PACKED_PRE struct PACKED_POST
4982{
4983 tHalMsgHeader header;
4984 tAddStaSelfRspParams addStaSelfRspParams;
4985}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4986
4987
4988/*---------------------------------------------------------------------------
4989 WLAN_HAL_DEL_STA_SELF_REQ
4990---------------------------------------------------------------------------*/
4991
4992typedef PACKED_PRE struct PACKED_POST
4993{
4994 tSirMacAddr selfMacAddr;
4995
4996}tDelStaSelfParams, *tpDelStaSelfParams;
4997
4998typedef PACKED_PRE struct PACKED_POST
4999{
5000 tHalMsgHeader header;
5001 tDelStaSelfParams delStaSelfParams;
5002} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
5003
5004
5005/*---------------------------------------------------------------------------
5006 WLAN_HAL_DEL_STA_SELF_RSP
5007---------------------------------------------------------------------------*/
5008
5009typedef PACKED_PRE struct PACKED_POST
5010{
5011 /*success or failure */
5012 tANI_U32 status;
5013
5014 tSirMacAddr selfMacAddr;
5015}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
5016
5017typedef PACKED_PRE struct PACKED_POST
5018{
5019 tHalMsgHeader header;
5020 tDelStaSelfRspParams delStaSelfRspParams;
5021} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
5022
5023
5024#ifdef WLAN_FEATURE_VOWIFI_11R
5025
5026/*---------------------------------------------------------------------------
5027 *WLAN_HAL_AGGR_ADD_TS_REQ
5028 *--------------------------------------------------------------------------*/
5029
5030typedef PACKED_PRE struct PACKED_POST
5031{
5032 /* Station Index */
5033 tANI_U16 staIdx;
5034
5035 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
5036 /* This will carry the bitmap with the bit positions representing different AC.s*/
5037 tANI_U16 tspecIdx;
5038
5039 /* Tspec info per AC To program TPE with required parameters */
5040 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
5041
5042 /* U-APSD Flags: 1b per AC. Encoded as follows:
5043 b7 b6 b5 b4 b3 b2 b1 b0 =
5044 X X X X BE BK VI VO */
5045 tANI_U8 uAPSD;
5046
5047 /* These parameters are for all the access categories */
5048 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
5049 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
5050 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
5051
5052}tAggrAddTsParams, *tpAggrAddTsParams;
5053
5054
5055typedef PACKED_PRE struct PACKED_POST
5056{
5057 tHalMsgHeader header;
5058 tAggrAddTsParams aggrAddTsParam;
5059}tAggrAddTsReq, *tpAggrAddTsReq;
5060
5061/*---------------------------------------------------------------------------
5062*WLAN_HAL_AGGR_ADD_TS_RSP
5063*--------------------------------------------------------------------------*/
5064
5065typedef PACKED_PRE struct PACKED_POST
5066{
5067 /* success or failure */
5068 tANI_U32 status0;
5069 /* FIXME PRIMA for future use for 11R */
5070 tANI_U32 status1;
5071}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
5072
5073typedef PACKED_PRE struct PACKED_POST
5074{
5075 tHalMsgHeader header;
5076 tAggrAddTsRspParams aggrAddTsRspParam;
5077}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
5078
5079#endif
5080
5081/*---------------------------------------------------------------------------
5082 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
5083 *--------------------------------------------------------------------------*/
5084typedef PACKED_PRE struct PACKED_POST
5085{
5086 tANI_U8 isAppsCpuAwake;
5087} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
5088
5089typedef PACKED_PRE struct PACKED_POST
5090{
5091 tHalMsgHeader header;
5092 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
5093} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
5094
5095/*---------------------------------------------------------------------------
5096 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
5097 *--------------------------------------------------------------------------*/
5098typedef PACKED_PRE struct PACKED_POST
5099{
5100 /* success or failure */
5101 tANI_U32 status;
5102} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
5103
5104typedef PACKED_PRE struct PACKED_POST
5105{
5106 tHalMsgHeader header;
5107 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
5108} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
5109/*---------------------------------------------------------------------------
5110 * WLAN_HAL_DUMP_COMMAND_REQ
5111 *--------------------------------------------------------------------------*/
5112
5113typedef PACKED_PRE struct PACKED_POST
5114{
5115 tANI_U32 argument1;
5116 tANI_U32 argument2;
5117 tANI_U32 argument3;
5118 tANI_U32 argument4;
5119 tANI_U32 argument5;
5120
5121}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
5122
5123typedef PACKED_PRE struct PACKED_POST
5124{
5125 tHalMsgHeader header;
5126 tHalDumpCmdReqParams dumpCmdReqParams;
5127} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
5128
5129/*---------------------------------------------------------------------------
5130 * WLAN_HAL_DUMP_COMMAND_RSP
5131 *--------------------------------------------------------------------------*/
5132
5133typedef PACKED_PRE struct PACKED_POST
5134{
5135 /* success or failure */
5136 tANI_U32 status;
5137 /*Length of the responce message*/
5138 tANI_U32 rspLength;
5139 /*FiXME: Currently considering the the responce will be less than 100bytes */
5140 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07005141
Jeff Johnson295189b2012-06-20 16:38:30 -07005142} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
5143
5144typedef PACKED_PRE struct PACKED_POST
5145{
5146 tHalMsgHeader header;
5147 tHalDumpCmdRspParams dumpCmdRspParams;
5148} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
5149
5150/*---------------------------------------------------------------------------
5151 *WLAN_HAL_COEX_IND
5152 *-------------------------------------------------------------------------*/
5153#define WLAN_COEX_IND_DATA_SIZE (4)
5154#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
5155#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
Madan Mohan Koyyalamudi5a244b22013-03-21 16:12:18 -07005156#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
5157#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005158#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
5159#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
Jeff Johnson295189b2012-06-20 16:38:30 -07005160
5161typedef PACKED_PRE struct PACKED_POST
5162{
5163 /*Coex Indication Type*/
5164 tANI_U32 coexIndType;
5165
5166 /*Coex Indication Data*/
5167 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
5168}tCoexIndParams,*tpCoexIndParams;
5169
5170typedef PACKED_PRE struct PACKED_POST
5171{
5172 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005173 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005174}tCoexIndMsg, *tpCoexIndMsg;
5175
5176/*---------------------------------------------------------------------------
5177 *WLAN_HAL_OTA_TX_COMPL_IND
5178 *-------------------------------------------------------------------------*/
5179
5180typedef PACKED_PRE struct PACKED_POST
5181{
5182 /*Tx Complete Indication Success or Failure*/
5183 tANI_U32 status;
5184}tTxComplParams,*tpTxComplParams;
5185
5186typedef PACKED_PRE struct PACKED_POST
5187{
5188 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005189 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005190}tTxComplIndMsg, *tpTxComplIndMsg;
5191
5192/*---------------------------------------------------------------------------
5193 * WLAN_HAL_HOST_SUSPEND_IND
5194 *-------------------------------------------------------------------------*/
5195
5196typedef PACKED_PRE struct PACKED_POST
5197{
5198 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005199 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005200}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
5201
5202typedef PACKED_PRE struct PACKED_POST
5203{
5204 tHalMsgHeader header;
5205 tHalWlanHostSuspendIndParam suspendIndParams;
5206}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
5207
5208/*---------------------------------------------------------------------------
5209 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
5210 *-------------------------------------------------------------------------*/
5211
5212typedef PACKED_PRE struct PACKED_POST
5213{
5214 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005215 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07005216}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
5217
5218typedef PACKED_PRE struct PACKED_POST
5219{
5220 tHalMsgHeader header;
5221 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
5222}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
5223
5224#ifdef WLAN_FEATURE_P2P
5225/*---------------------------------------------------------------------------
5226 *WLAN_HAL_NOA_ATTR_IND
5227 *-------------------------------------------------------------------------*/
5228
5229typedef PACKED_PRE struct PACKED_POST
5230{
5231 tANI_U8 index ;
5232 tANI_U8 oppPsFlag ;
5233 tANI_U16 ctWin ;
5234
5235 tANI_U16 uNoa1IntervalCnt;
Anand Kumar012623a2013-01-11 17:00:00 -08005236 tANI_U16 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005237 tANI_U32 uNoa1Duration;
5238 tANI_U32 uNoa1Interval;
5239 tANI_U32 uNoa1StartTime;
5240
5241 tANI_U16 uNoa2IntervalCnt;
5242 tANI_U16 rsvd2;
5243 tANI_U32 uNoa2Duration;
5244 tANI_U32 uNoa2Interval;
5245 tANI_U32 uNoa2StartTime;
5246
5247 tANI_U32 status;
5248}tNoaAttrIndParams, *tpNoaAttrIndParams;
5249
5250typedef PACKED_PRE struct PACKED_POST
5251{
5252 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005253 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005254}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08005255
5256/*---------------------------------------------------------------------------
5257 *WLAN_HAL_NOA_START_IND
5258 *-------------------------------------------------------------------------*/
5259
5260typedef PACKED_PRE struct PACKED_POST
5261{
5262 tANI_U32 status;
5263 tANI_U32 bssIdx;
5264}tNoaStartIndParams, *tpNoaStartIndParams;
5265
5266typedef PACKED_PRE struct PACKED_POST
5267{
5268 tHalMsgHeader header;
5269 tNoaStartIndParams noaStartIndParams;
5270}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07005271#endif
5272
5273/*---------------------------------------------------------------------------
5274 * WLAN_HAL_HOST_RESUME_REQ
5275 *-------------------------------------------------------------------------*/
5276
5277typedef PACKED_PRE struct PACKED_POST
5278{
5279 tANI_U8 configuredMcstBcstFilterSetting;
5280}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
5281
5282typedef PACKED_PRE struct PACKED_POST
5283{
5284 tHalMsgHeader header;
5285 tHalWlanHostResumeReqParam resumeReqParams;
5286}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
5287
5288/*---------------------------------------------------------------------------
5289 * WLAN_HAL_HOST_RESUME_RSP
5290 *--------------------------------------------------------------------------*/
5291typedef PACKED_PRE struct PACKED_POST
5292{
5293 /* success or failure */
5294 tANI_U32 status;
5295} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
5296
5297typedef PACKED_PRE struct PACKED_POST
5298{
5299 tHalMsgHeader header;
5300 tHalHostResumeRspParams hostResumeRspParams;
5301} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
5302
Anand Kumar012623a2013-01-11 17:00:00 -08005303typedef PACKED_PRE struct PACKED_POST
5304{
5305 tANI_U16 staIdx;
5306 // Peer MAC Address, whose BA session has timed out
5307 tSirMacAddr peerMacAddr;
5308 // TID for which a BA session timeout is being triggered
5309 tANI_U8 baTID;
5310 // DELBA direction
5311 // 1 - Originator
5312 // 0 - Recipient
5313 tANI_U8 baDirection;
5314 tANI_U32 reasonCode;
5315 tSirMacAddr bssId; // TO SUPPORT BT-AMP
5316} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
5317
5318typedef PACKED_PRE struct PACKED_POST
5319{
5320 tHalMsgHeader header;
5321 tHalWlanDelBaIndMsg hostdelBaParam;
5322} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
5323
Jeff Johnson295189b2012-06-20 16:38:30 -07005324/*---------------------------------------------------------------------------
5325 *PNO Messages
5326 *-------------------------------------------------------------------------*/
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005327/* Max number of channels that a network can be found on*/
5328/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
5329 * be changed at same time
5330 */
Kiran Kumar Lokere08894242013-04-23 14:50:54 -07005331#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
Jeff Johnson295189b2012-06-20 16:38:30 -07005332
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305333/*Max number of channels that a network can be found on*/
5334#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
5335
Jeff Johnson295189b2012-06-20 16:38:30 -07005336/*Maximum numbers of networks supported by PNO*/
5337#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
5338
5339/*The number of scan time intervals that can be programmed into PNO*/
5340#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
5341
5342/*Maximum size of the probe template*/
5343#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
5344
Jeff Johnson32d95a32012-09-10 13:15:23 -07005345/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07005346 Immediate - scanning will start immediately and PNO procedure will
5347 be repeated based on timer
5348 Suspend - scanning will start at suspend
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005349 Resume - scanning will start on system resume
5350 Delay - start the scan timer to trigger PNO scan
5351 */
Jeff Johnson295189b2012-06-20 16:38:30 -07005352typedef enum
5353{
5354 ePNO_MODE_IMMEDIATE,
5355 ePNO_MODE_ON_SUSPEND,
5356 ePNO_MODE_ON_RESUME,
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05305357 ePNO_MODE_DELAY,
5358 ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
Jeff Johnson295189b2012-06-20 16:38:30 -07005359 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5360} ePNOMode;
5361
5362/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005363typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005364{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005365 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07005366 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005367
Jeff Johnson295189b2012-06-20 16:38:30 -07005368 // Upper layer authentication types
5369 eAUTH_TYPE_WPA = 2,
5370 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005371
Jeff Johnson295189b2012-06-20 16:38:30 -07005372 eAUTH_TYPE_RSN = 4,
5373 eAUTH_TYPE_RSN_PSK = 5,
5374 eAUTH_TYPE_FT_RSN = 6,
5375 eAUTH_TYPE_FT_RSN_PSK = 7,
5376 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
5377 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005378 eAUTH_TYPE_CCKM_WPA = 10,
5379 eAUTH_TYPE_CCKM_RSN = 11,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005380
Jeff Johnson295189b2012-06-20 16:38:30 -07005381 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5382
5383}tAuthType;
5384
5385/* Encryption type */
5386typedef enum eEdType
5387{
5388 eED_ANY = 0,
5389 eED_NONE = 1,
5390 eED_WEP = 2,
5391 eED_TKIP = 3,
5392 eED_CCMP = 4,
5393 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07005394
Jeff Johnson295189b2012-06-20 16:38:30 -07005395 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5396} tEdType;
5397
5398/* SSID broadcast type */
5399typedef enum eSSIDBcastType
5400{
5401 eBCAST_UNKNOWN = 0,
5402 eBCAST_NORMAL = 1,
5403 eBCAST_HIDDEN = 2,
5404
5405 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
5406} tSSIDBcastType;
5407
Jeff Johnson32d95a32012-09-10 13:15:23 -07005408/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005409 The network description for which PNO will have to look for
5410*/
5411typedef PACKED_PRE struct PACKED_POST
5412{
5413 /*SSID of the BSS*/
5414 tSirMacSSid ssId;
5415
5416 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005417 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005418
5419 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005420 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005421
Jeff Johnson32d95a32012-09-10 13:15:23 -07005422 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005423 0 - if all channels */
5424 tANI_U8 ucChannelCount;
5425 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5426
5427 /*Indicates the RSSI threshold for the network to be considered*/
5428 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005429}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005430
5431typedef PACKED_PRE struct PACKED_POST
5432{
5433 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005434 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07005435
Jeff Johnson32d95a32012-09-10 13:15:23 -07005436 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07005437 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005438 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07005439
Jeff Johnson32d95a32012-09-10 13:15:23 -07005440 /*e.g: 2 3
5441 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07005442 - it will wait 2s between consecutive scans for 3 times
5443 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005444}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07005445
Jeff Johnson32d95a32012-09-10 13:15:23 -07005446/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005447 The network parameters to be sent to the PNO algorithm
5448*/
5449typedef PACKED_PRE struct PACKED_POST
5450{
5451 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005452 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005453
Jeff Johnson32d95a32012-09-10 13:15:23 -07005454 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07005455 two consecutive scan procedures
5456 If the desired is for a uniform timer that fires always at the exact same
5457 interval - one single value is to be set
5458 If there is a desire for a more complex - telescopic like timer multiple
5459 values can be set - once PNO reaches the end of the array it will
5460 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005461 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005462
5463}tScanTimersType;
5464
5465typedef PACKED_PRE struct PACKED_POST {
5466
5467 /*Enable PNO*/
5468 tANI_U32 enable;
5469
5470 /*Immediate, On Suspend, On Resume*/
5471 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005472
Jeff Johnson295189b2012-06-20 16:38:30 -07005473 /*Number of networks sent for PNO*/
5474 tANI_U32 ucNetworksCount;
5475
5476 /*The networks that PNO needs to look for*/
5477 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5478
5479 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005480 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005481
5482 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005483 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005484 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5485
5486 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005487 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005488 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5489
5490} tPrefNetwListParams, * tpPrefNetwListParams;
5491
5492/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005493 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07005494*/
5495typedef PACKED_PRE struct PACKED_POST
5496{
5497 tHalMsgHeader header;
5498 tPrefNetwListParams prefNetwListParams;
5499} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
5500
5501
Jeff Johnson32d95a32012-09-10 13:15:23 -07005502/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005503 The network description for which PNO will have to look for
5504*/
5505typedef PACKED_PRE struct PACKED_POST
5506{
5507 /*SSID of the BSS*/
5508 tSirMacSSid ssId;
5509
5510 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005511 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07005512
5513 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005514 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07005515
5516 /*SSID broadcast type, normal, hidden or unknown*/
5517 tSSIDBcastType bcastNetworkType;
5518
Jeff Johnson32d95a32012-09-10 13:15:23 -07005519 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07005520 0 - if all channels */
5521 tANI_U8 ucChannelCount;
5522 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
5523
5524 /*Indicates the RSSI threshold for the network to be considered*/
5525 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005526}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07005527
5528typedef PACKED_PRE struct PACKED_POST {
5529
5530 /*Enable PNO*/
5531 tANI_U32 enable;
5532
5533 /*Immediate, On Suspend, On Resume*/
5534 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005535
Jeff Johnson295189b2012-06-20 16:38:30 -07005536 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005537 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07005538
5539 /*The networks that PNO needs to look for*/
5540 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
5541
5542 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005543 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005544
5545 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005546 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005547 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5548
5549 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005550 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005551 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5552
5553} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5554
5555/*
5556 Preferred network list request new
5557*/
5558typedef PACKED_PRE struct PACKED_POST
5559{
5560 tHalMsgHeader header;
5561 tPrefNetwListParamsNew prefNetwListParams;
5562} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5563
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005564#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
5565typedef PACKED_PRE struct PACKED_POST
5566{
5567 tSirMacSSid ssId;
5568 tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
5569 tANI_U32 authentication;
5570 tEdType encryption;
5571 tEdType mcencryption;
5572 tANI_U8 ChannelCount;
5573 tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5574}tRoamNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07005575
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005576typedef PACKED_PRE struct PACKED_POST
5577{
5578 tANI_U8 mdiePresent;
5579 tANI_U16 mobilityDomain;
5580}tMobilityDomainInfo;
5581
5582typedef PACKED_PRE struct PACKED_POST {
5583 eAniBoolean RoamScanOffloadEnabled;
5584 tANI_S8 LookupThreshold;
5585 tANI_U8 RoamRssiDiff;
5586 tANI_U8 ChannelCacheType;
5587 tANI_U8 Command;
5588 tANI_U8 StartScanReason;
5589 tANI_U16 NeighborScanTimerPeriod;
5590 tANI_U16 NeighborRoamScanRefreshPeriod;
5591 tANI_U16 NeighborScanChannelMinTime;
5592 tANI_U16 NeighborScanChannelMaxTime;
5593 tANI_U16 EmptyRefreshScanPeriod;
5594 tANI_U8 ValidChannelCount;
5595 tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
5596 eAniBoolean IsCCXEnabled;
5597
5598 tANI_U16 us24GProbeSize;
5599 tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5600 tANI_U16 us5GProbeSize;
5601 tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
5602 /* Add Reserved bytes */
Varun Reddy Yeturu4a231fb2013-05-22 13:11:28 -07005603 tANI_U8 nProbes;
5604 tANI_U16 HomeAwayTime;
Sameer Thalappil71c78202013-11-05 14:22:09 -08005605 eAniBoolean MAWCEnabled;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005606 tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
5607 tRoamNetworkType ConnectedNetwork;
5608 tMobilityDomainInfo MDID;
5609} tRoamCandidateListParams, * tpRoamCandidateListParams;
5610
5611typedef PACKED_PRE struct PACKED_POST
5612{
Kumar Anandea78e792013-10-10 23:47:01 -07005613 tHalMsgHeader header;
5614 tRoamCandidateListParams RoamScanOffloadNetwListParams;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005615} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
5616
5617typedef PACKED_PRE struct PACKED_POST
5618{
Kumar Anandea78e792013-10-10 23:47:01 -07005619 tHalMsgHeader header;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005620
Kumar Anandea78e792013-10-10 23:47:01 -07005621 /* status of the request - just to indicate that PNO has acknowledged
5622 * the request and will start scanning */
5623 tANI_U32 status;
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07005624} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
5625#endif
Kumar Anandea78e792013-10-10 23:47:01 -07005626
5627/*
5628 Preferred network list response
5629*/
5630typedef PACKED_PRE struct PACKED_POST
5631{
5632 tHalMsgHeader header;
5633
5634 /* status of the request - just to indicate that PNO has acknowledged
5635 * the request and will start scanning*/
5636 tANI_U32 status;
5637} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5638
5639/*
5640 Preferred network indication parameters
5641*/
5642typedef PACKED_PRE struct PACKED_POST {
5643
5644 /*Network that was found with the highest RSSI*/
5645 tSirMacSSid ssId;
5646
5647 /*Indicates the RSSI */
5648 tANI_U8 rssi;
5649
5650 //The MPDU frame length of a beacon or probe rsp. data is the start of the frame
5651 tANI_U16 frameLength;
5652
5653} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5654
5655/*
5656 Preferred network found indication
5657*/
5658typedef PACKED_PRE struct PACKED_POST {
5659
5660 tHalMsgHeader header;
5661 tPrefNetwFoundParams prefNetwFoundParams;
5662} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5663
5664
5665typedef PACKED_PRE struct PACKED_POST {
5666
5667 /*RSSI Threshold*/
5668 tANI_U8 ucRssiThreshold;
5669
5670} tRssiFilterParams, * tpRssiFilterParams;
5671
Jeff Johnson295189b2012-06-20 16:38:30 -07005672/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005673 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005674*/
5675typedef PACKED_PRE struct PACKED_POST
5676{
5677 tHalMsgHeader header;
5678 tRssiFilterParams prefRSSIFilterParams;
5679} tSetRssiFilterReq, *tpSetRssiFilterReq;
5680
5681/*
5682 Set RSSI filter resp
5683*/
5684typedef PACKED_PRE struct PACKED_POST{
5685 tHalMsgHeader header;
5686 /*status of the request */
5687 tANI_U32 status;
5688} tSetRssiFilterResp, *tpSetRssiFilterResp;
5689/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005690 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005691*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005692typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005693{
5694
5695 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005696 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005697
5698 /*Lets PNO know that host has determined the regulatory domain*/
5699 tANI_U8 b11dResolved;
5700
5701 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005702 tANI_U8 ucChannelCount;
5703 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005704
5705 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005706 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005707
5708 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005709 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005710
5711 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005712 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005713
5714 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005715 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005716
5717 /*Cb State*/
5718 ePhyChanBondState cbState;
5719
5720} tUpdateScanParams, * tpUpdateScanParams;
5721
5722/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305723 Update scan params
5724*/
5725typedef PACKED_PRE struct PACKED_POST
5726{
5727
5728 /*Host setting for 11d*/
5729 tANI_U8 b11dEnabled;
5730
5731 /*Lets PNO know that host has determined the regulatory domain*/
5732 tANI_U8 b11dResolved;
5733
5734 /*Channels on which PNO is allowed to scan*/
5735 tANI_U8 ucChannelCount;
5736 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5737
5738 /*Minimum channel time*/
5739 tANI_U16 usActiveMinChTime;
5740
5741 /*Maximum channel time*/
5742 tANI_U16 usActiveMaxChTime;
5743
5744 /*Minimum channel time*/
5745 tANI_U16 usPassiveMinChTime;
5746
5747 /*Maximum channel time*/
5748 tANI_U16 usPassiveMaxChTime;
5749
5750 /*Cb State*/
5751 ePhyChanBondState cbState;
5752
5753} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5754
5755/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005756 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005757 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005758*/
5759typedef PACKED_PRE struct PACKED_POST{
5760
5761 tHalMsgHeader header;
5762 tUpdateScanParams scanParams;
5763} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5764
5765/*
5766 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005767 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005768*/
5769typedef PACKED_PRE struct PACKED_POST{
5770
5771 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305772 tUpdateScanParamsEx scanParams;
5773} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5774
5775/*
5776 Update scan params - sent from host to PNO
5777 to be used during PNO scanning
5778*/
5779typedef PACKED_PRE struct PACKED_POST{
5780
5781 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005782
5783 /*status of the request */
5784 tANI_U32 status;
5785
5786} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5787
5788/*---------------------------------------------------------------------------
5789 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5790 *--------------------------------------------------------------------------*/
5791typedef PACKED_PRE struct PACKED_POST
5792{
5793 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5794 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5795 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5796 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5797} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5798
5799typedef PACKED_PRE struct PACKED_POST
5800{
5801 tHalMsgHeader header;
5802 tHalTxPerTrackingReqParam txPerTrackingParams;
5803} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5804
5805/*---------------------------------------------------------------------------
5806 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5807 *--------------------------------------------------------------------------*/
5808typedef PACKED_PRE struct PACKED_POST
5809{
5810 /* success or failure */
5811 tANI_U32 status;
5812} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5813
5814typedef PACKED_PRE struct PACKED_POST
5815{
5816 tHalMsgHeader header;
5817 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5818} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5819
5820/*---------------------------------------------------------------------------
5821 * WLAN_HAL_TX_PER_HIT_IND
5822 *--------------------------------------------------------------------------*/
5823typedef PACKED_PRE struct PACKED_POST
5824{
5825 tHalMsgHeader header;
5826}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5827
5828/*---------------------------------------------------------------------------
5829 *******************Packet Filtering Definitions Begin*******************
5830 *--------------------------------------------------------------------------*/
5831#define HAL_PROTOCOL_DATA_LEN 8
5832#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5833#define HAL_MAX_NUM_FILTERS 20
5834#define HAL_MAX_CMP_PER_FILTER 10
5835
5836typedef enum
5837{
5838 HAL_RCV_FILTER_TYPE_INVALID,
5839 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5840 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5841 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5842}tHalReceivePacketFilterType;
5843
Jeff Johnson32d95a32012-09-10 13:15:23 -07005844typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005845{
5846 HAL_FILTER_PROTO_TYPE_INVALID,
5847 HAL_FILTER_PROTO_TYPE_MAC,
5848 HAL_FILTER_PROTO_TYPE_ARP,
5849 HAL_FILTER_PROTO_TYPE_IPV4,
5850 HAL_FILTER_PROTO_TYPE_IPV6,
5851 HAL_FILTER_PROTO_TYPE_UDP,
5852 HAL_FILTER_PROTO_TYPE_MAX
5853}tHalRcvPktFltProtocolType;
5854
Jeff Johnson32d95a32012-09-10 13:15:23 -07005855typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005856{
5857 HAL_FILTER_CMP_TYPE_INVALID,
5858 HAL_FILTER_CMP_TYPE_EQUAL,
5859 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5860 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5861 HAL_FILTER_CMP_TYPE_MAX
5862}tHalRcvPktFltCmpFlagType;
5863
Jeff Johnson32d95a32012-09-10 13:15:23 -07005864typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005865{
5866 tANI_U8 protocolLayer;
5867 tANI_U8 cmpFlag;
5868 tANI_U16 dataLength; /* Length of the data to compare */
5869 tANI_U8 dataOffset; /* from start of the respective frame header */
5870 tANI_U8 reserved; /* Reserved field */
5871 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5872 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5873}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5874
5875typedef PACKED_PRE struct PACKED_POST
5876{
5877 tANI_U8 filterId;
5878 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005879 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005880 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005881 tHalRcvPktFilterParams paramsData[1];
5882}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5883
5884typedef PACKED_PRE struct PACKED_POST
5885{
Jeff Johnsone7245742012-09-05 17:12:55 -07005886 tANI_U8 filterId;
5887 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005888 tANI_U8 numParams;
5889 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005890 tANI_U8 bssIdx;
5891 tHalRcvPktFilterParams paramsData[1];
5892}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5893
5894typedef PACKED_PRE struct PACKED_POST
5895{
Jeff Johnson295189b2012-06-20 16:38:30 -07005896 tHalMsgHeader header;
5897 tHalRcvPktFilterCfgType pktFilterCfg;
5898} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5899
Jeff Johnsone7245742012-09-05 17:12:55 -07005900typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005901{
5902 tANI_U8 dataOffset; /* from start of the respective frame header */
5903 tANI_U32 cMulticastAddr;
5904 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005905 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005906} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5907
5908typedef PACKED_PRE struct PACKED_POST
5909{
5910 /* success or failure */
5911 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005912 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005913} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5914
5915typedef PACKED_PRE struct PACKED_POST
5916{
5917 tHalMsgHeader header;
5918 tHalSetPktFilterRspParams pktFilterRspParams;
5919} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5920
Jeff Johnsone7245742012-09-05 17:12:55 -07005921typedef PACKED_PRE struct PACKED_POST
5922{
5923 tANI_U8 bssIdx;
5924} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005925
5926typedef PACKED_PRE struct PACKED_POST
5927{
5928 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005929 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005930} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5931
Jeff Johnsone7245742012-09-05 17:12:55 -07005932
Jeff Johnson295189b2012-06-20 16:38:30 -07005933typedef PACKED_PRE struct PACKED_POST
5934{
5935 tANI_U8 filterId;
5936 tANI_U32 matchCnt;
5937} tHalRcvFltPktMatchCnt;
5938typedef PACKED_PRE struct PACKED_POST
5939{
5940 /* Success or Failure */
5941 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005942 tANI_U32 matchCnt;
5943 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005944 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005945} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5946
5947typedef PACKED_PRE struct PACKED_POST
5948{
5949 tHalMsgHeader header;
5950 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5951} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5952
5953typedef PACKED_PRE struct PACKED_POST
5954{
5955 tANI_U32 status; /* only valid for response message */
5956 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005957 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005958}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5959
5960typedef PACKED_PRE struct PACKED_POST
5961{
5962 tHalMsgHeader header;
5963 tHalRcvFltPktClearParam filterClearParam;
5964} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5965
5966typedef PACKED_PRE struct PACKED_POST
5967{
5968 tHalMsgHeader header;
5969 tHalRcvFltPktClearParam filterClearParam;
5970} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5971
5972typedef PACKED_PRE struct PACKED_POST
5973{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005974 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005975 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005976}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5977
5978typedef PACKED_PRE struct PACKED_POST
5979{
5980 tHalMsgHeader header;
5981 tHalRcvFltMcAddrListType mcAddrList;
5982} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5983
5984typedef PACKED_PRE struct PACKED_POST
5985{
5986 tHalMsgHeader header;
5987 tHalRcvFltPktSetMcListRspType rspParam;
5988} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5989
5990
5991/*---------------------------------------------------------------------------
5992 *******************Packet Filtering Definitions End*******************
5993 *--------------------------------------------------------------------------*/
5994
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07005995/*
5996 * There are two versions of this message
5997 * Version 1 : Base version
5998 * Current version : Base version + Max LI modulated DTIM
5999 */
6000typedef PACKED_PRE struct PACKED_POST
6001{
6002 /* Ignore DTIM */
6003 tANI_U32 uIgnoreDTIM;
6004
6005 /*DTIM Period*/
6006 tANI_U32 uDTIMPeriod;
6007
6008 /* Listen Interval */
6009 tANI_U32 uListenInterval;
6010
6011 /* Broadcast Multicast Filter */
6012 tANI_U32 uBcastMcastFilter;
6013
6014 /* Beacon Early Termination */
6015 tANI_U32 uEnableBET;
6016
6017 /* Beacon Early Termination Interval */
6018 tANI_U32 uBETInterval;
6019}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
6020
6021typedef PACKED_PRE struct PACKED_POST
6022{
6023 tHalMsgHeader header;
6024 tSetPowerParamsVer1Type powerParams;
6025} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
6026
Jeff Johnson295189b2012-06-20 16:38:30 -07006027typedef PACKED_PRE struct PACKED_POST
6028{
6029 /* Ignore DTIM */
6030 tANI_U32 uIgnoreDTIM;
6031
6032 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006033 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07006034
6035 /* Listen Interval */
6036 tANI_U32 uListenInterval;
6037
6038 /* Broadcast Multicast Filter */
6039 tANI_U32 uBcastMcastFilter;
6040
6041 /* Beacon Early Termination */
6042 tANI_U32 uEnableBET;
6043
6044 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006045 tANI_U32 uBETInterval;
Yue Mae5ec19c2013-05-15 13:52:40 -07006046
6047 /* MAX LI for modulated DTIM */
6048 tANI_U32 uMaxLIModulatedDTIM;
Jeff Johnson295189b2012-06-20 16:38:30 -07006049}tSetPowerParamsType, *tpSetPowerParamsType;
6050
6051typedef PACKED_PRE struct PACKED_POST
6052{
6053 tHalMsgHeader header;
6054 tSetPowerParamsType powerParams;
6055} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
6056
6057typedef PACKED_PRE struct PACKED_POST{
6058
6059 tHalMsgHeader header;
6060
6061 /*status of the request */
6062 tANI_U32 status;
6063
6064} tSetPowerParamsResp, *tpSetPowerParamsResp;
6065
6066/*---------------------------------------------------------------------------
6067 ****************Capability bitmap exchange definitions and macros starts*************
6068 *--------------------------------------------------------------------------*/
6069
Anand Kumar012623a2013-01-11 17:00:00 -08006070typedef enum {
Kumar Anandea78e792013-10-10 23:47:01 -07006071 MCC = 0,
6072 P2P = 1,
6073 DOT11AC = 2,
6074 SLM_SESSIONIZATION = 3,
6075 DOT11AC_OPMODE = 4,
6076 SAP32STA = 5,
6077 TDLS = 6,
Anand Kumar012623a2013-01-11 17:00:00 -08006078 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Kumar Anandea78e792013-10-10 23:47:01 -07006079 WLANACTIVE_OFFLOAD = 8,
6080 BEACON_OFFLOAD = 9,
6081 SCAN_OFFLOAD = 10,
6082 ROAM_OFFLOAD = 11,
6083 BCN_MISS_OFFLOAD = 12,
6084 STA_POWERSAVE = 13,
6085 STA_ADVANCED_PWRSAVE = 14,
6086 AP_UAPSD = 15,
6087 AP_DFS = 16,
6088 BLOCKACK = 17,
6089 PHY_ERR = 18,
6090 BCN_FILTER = 19,
6091 RTT = 20,
6092 RATECTRL = 21,
6093 WOW = 22,
Varun Reddy Yeturud0a3f252013-04-15 21:58:13 -07006094 WLAN_ROAM_SCAN_OFFLOAD = 23,
Kumar Anandea78e792013-10-10 23:47:01 -07006095 SPECULATIVE_PS_POLL = 24,
6096 SCAN_SCH = 25,
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006097 IBSS_HEARTBEAT_OFFLOAD = 26,
Kumar Anandea78e792013-10-10 23:47:01 -07006098 WLAN_SCAN_OFFLOAD = 27,
6099 WLAN_PERIODIC_TX_PTRN = 28,
6100 ADVANCE_TDLS = 29,
6101 BATCH_SCAN = 30,
6102 MAX_FEATURE_SUPPORTED = 128,
Anand Kumar012623a2013-01-11 17:00:00 -08006103} placeHolderInCapBitmap;
6104
Jeff Johnson295189b2012-06-20 16:38:30 -07006105typedef PACKED_PRE struct PACKED_POST{
6106
6107 tANI_U32 featCaps[4];
Jeff Johnson295189b2012-06-20 16:38:30 -07006108} tWlanFeatCaps, *tpWlanFeatCaps;
6109
6110typedef PACKED_PRE struct PACKED_POST{
6111
Jeff Johnson32d95a32012-09-10 13:15:23 -07006112 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07006113 tWlanFeatCaps wlanFeatCaps;
6114
6115} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
6116
Jeff Johnsone7245742012-09-05 17:12:55 -07006117#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
6118#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08006119#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006120#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006121#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006122#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
Kumar Anandea78e792013-10-10 23:47:01 -07006123#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006124
Jeff Johnsone7245742012-09-05 17:12:55 -07006125tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
6126
Jeff Johnson295189b2012-06-20 16:38:30 -07006127#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006128 if ((b)<=127) { \
6129 arr_index = (b)/32; \
6130 bit_index = (b)%32; \
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006131 if(arr_index < 4) \
Jeff Johnson295189b2012-06-20 16:38:30 -07006132 (a)->featCaps[arr_index] |= (1<<bit_index); \
6133 } \
6134 }
6135#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006136 if ((b)<=127) { \
6137 arr_index = (b)/32; \
6138 bit_index = (b)%32; \
6139 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07006140 } \
6141 }
6142#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07006143 if ((b)<=127) { \
6144 arr_index = (b)/32; \
6145 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07006146 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07006147 } \
6148 }
6149
6150/*---------------------------------------------------------------------------
6151 * WLAN_HAL_WAKE_REASON_IND
6152 *--------------------------------------------------------------------------*/
6153
6154/* status codes to help debug rekey failures */
6155typedef enum
6156{
6157 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
6158 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
6159 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
6160 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
6161 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
6162 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
6163 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
6164 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
6165 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
6166 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
6167
6168 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
6169} tGTKRekeyStatus;
6170
6171/* wake reason types */
6172typedef enum
6173{
6174 WLAN_HAL_WAKE_REASON_NONE = 0,
6175 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
6176 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
6177 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
6178 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
6179 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
6180 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
6181 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
6182} tWakeReasonType;
6183
6184/*
6185 Wake Packet which is saved at tWakeReasonParams.DataStart
6186 This data is sent for any wake reasons that involve a packet-based wakeup :
6187
6188 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
6189 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
6190 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
6191 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
6192 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
6193
6194 The information is provided to the host for auditing and debug purposes
6195
6196*/
6197
6198/*
6199 Wake reason indication parameters
6200*/
6201typedef PACKED_PRE struct PACKED_POST
6202{
6203 uint32 ulReason; /* see tWakeReasonType */
6204 uint32 ulReasonArg; /* argument specific to the reason type */
6205 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
6206 HAL truncates the data (i.e. data packets) this length
6207 will be less than the actual length */
6208 uint32 ulActualDataLen; /* actual length of data */
6209 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
6210 see specific wake type */
6211} tWakeReasonParams, *tpWakeReasonParams;
6212
6213/*
6214 Wake reason indication
6215*/
6216typedef PACKED_PRE struct PACKED_POST
6217{
6218 tHalMsgHeader header;
6219 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07006220 tANI_U32 uBssIdx : 8;
6221 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07006222} tHalWakeReasonInd, *tpHalWakeReasonInd;
6223
6224/*---------------------------------------------------------------------------
6225* WLAN_HAL_GTK_OFFLOAD_REQ
6226*--------------------------------------------------------------------------*/
6227
6228#define HAL_GTK_KEK_BYTES 16
6229#define HAL_GTK_KCK_BYTES 16
6230
6231#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
6232
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006233#define GTK_SET_BSS_KEY_TAG 0x1234AA55
6234
Jeff Johnson295189b2012-06-20 16:38:30 -07006235typedef PACKED_PRE struct PACKED_POST
6236{
6237 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07006238 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07006239 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
6240 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07006241 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006242} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
6243
6244typedef PACKED_PRE struct PACKED_POST
6245{
6246 tHalMsgHeader header;
6247 tHalGtkOffloadReqParams gtkOffloadReqParams;
6248} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
6249
6250/*---------------------------------------------------------------------------
6251* WLAN_HAL_GTK_OFFLOAD_RSP
6252*--------------------------------------------------------------------------*/
6253typedef PACKED_PRE struct PACKED_POST
6254{
6255 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07006256 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006257} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
6258
6259typedef PACKED_PRE struct PACKED_POST
6260{
6261 tHalMsgHeader header;
6262 tHalGtkOffloadRspParams gtkOffloadRspParams;
6263} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
6264
6265
6266/*---------------------------------------------------------------------------
6267* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
6268*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07006269typedef PACKED_PRE struct PACKED_POST
6270{
6271 tANI_U8 bssIdx;
6272
6273} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006274
6275typedef PACKED_PRE struct PACKED_POST
6276{
6277 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07006278 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07006279} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
6280
6281/*---------------------------------------------------------------------------
6282* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
6283*--------------------------------------------------------------------------*/
6284typedef PACKED_PRE struct PACKED_POST
6285{
6286 tANI_U32 ulStatus; /* success or failure */
6287 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
6288 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
6289 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
6290 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
6291 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07006292 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07006293} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
6294
6295typedef PACKED_PRE struct PACKED_POST
6296{
6297 tHalMsgHeader header;
6298 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
6299} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
6300
Madan Mohan Koyyalamudie0c135d2013-03-05 16:59:44 -08006301/*---------------------------------------------------------------------------
6302* WLAN_HAL_DHCP_IND
6303*--------------------------------------------------------------------------*/
6304typedef PACKED_PRE struct PACKED_POST
6305{
6306 /*Indicates the device mode which indicates about the DHCP activity */
6307 tANI_U8 device_mode;
6308 tSirMacAddr macAddr;
6309} tDHCPInfo, *tpDHCPInfo;
6310
6311typedef PACKED_PRE struct PACKED_POST
6312{
6313 tHalMsgHeader header;
6314 tANI_U32 status; /* success or failure */
6315} tDHCPIndStatus, *tpDHCPIndstatus;
6316
Jeff Johnson295189b2012-06-20 16:38:30 -07006317/*
6318 Thermal Mitigation mode of operation.
6319 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
6320 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
6321 reducing transmit power
6322 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
6323*/
6324typedef enum
6325{
6326 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
6327 HAL_THERMAL_MITIGATION_MODE_0,
6328 HAL_THERMAL_MITIGATION_MODE_1,
6329 HAL_THERMAL_MITIGATION_MODE_2,
6330 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6331}tHalThermalMitigationModeType;
6332//typedef tANI_S16 tHalThermalMitigationModeType;
6333
6334/*
6335 Thermal Mitigation level.
6336 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
6337 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
6338
6339 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
6340 level indicates normal mode of operation
6341 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
6342 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
6343 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
6344 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
6345*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07006346typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07006347{
6348 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
6349 HAL_THERMAL_MITIGATION_LEVEL_0,
6350 HAL_THERMAL_MITIGATION_LEVEL_1,
6351 HAL_THERMAL_MITIGATION_LEVEL_2,
6352 HAL_THERMAL_MITIGATION_LEVEL_3,
6353 HAL_THERMAL_MITIGATION_LEVEL_4,
6354 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
6355}tHalThermalMitigationLevelType;
6356//typedef tANI_S16 tHalThermalMitigationLevelType;
6357
6358typedef PACKED_PRE struct PACKED_POST
6359{
6360 /* Thermal Mitigation Operation Mode */
6361 tHalThermalMitigationModeType thermalMitMode;
6362
6363 /* Thermal Mitigation Level */
6364 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07006365
Jeff Johnson295189b2012-06-20 16:38:30 -07006366}tSetThermalMitgationType, *tpSetThermalMitgationType;
6367
6368/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
6369typedef PACKED_PRE struct PACKED_POST
6370{
6371 tHalMsgHeader header;
6372 tSetThermalMitgationType thermalMitParams;
6373} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
6374
6375typedef PACKED_PRE struct PACKED_POST{
6376
6377 tHalMsgHeader header;
6378
6379 /*status of the request */
6380 tANI_U32 status;
6381
6382} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
6383
Madan Mohan Koyyalamudi01cba042013-01-10 21:56:05 -08006384/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
6385provided to FW from Host via periodic messages */
6386typedef PACKED_PRE struct PACKED_POST {
6387 /* TX stats */
6388 uint32 txBytesPushed;
6389 uint32 txPacketsPushed;
6390
6391 /* RX stats */
6392 uint32 rxBytesRcvd;
6393 uint32 rxPacketsRcvd;
6394 uint32 rxTimeTotal;
6395} tStaStatsClassB, *tpStaStatsClassB;
6396
6397typedef PACKED_PRE struct PACKED_POST {
6398
6399 /* Duration over which this stats was collected */
6400 tANI_U32 duration;
6401
6402 /* Per STA Stats */
6403 tStaStatsClassB staStatsClassB[HAL_NUM_STA];
6404} tStatsClassBIndParams, *tpStatsClassBIndParams;
6405
6406typedef PACKED_PRE struct PACKED_POST {
6407
6408 tHalMsgHeader header;
6409
6410 /* Class B Stats */
6411 tStatsClassBIndParams statsClassBIndParams;
6412} tStatsClassBInd, *tpStatsClassBInd;
6413
Gopichand Nakkala175de4b2013-05-06 12:02:17 +05306414/*Wifi Proximity paramters in AP mode*/
6415#ifdef FEATURE_WIFI_PROXIMITY
6416
6417typedef PACKED_PRE struct PACKED_POST{
6418
6419 tANI_U8 wifiProximityChannel;
6420 tANI_U32 wifiProximityDuration;
6421 tANI_U32 wifiProximityInterval;
6422 tANI_U32 wifiProximityMode;
6423 tANI_U32 wifiProximityStatus;
6424 tSirMacAddr bssId;
6425 tSirMacSSid ssId;
6426
6427} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
6428
6429typedef PACKED_PRE struct PACKED_POST
6430{
6431 tHalMsgHeader header;
6432
6433 tSetWifiProximityReqParam wifiProximityReqParams;
6434
6435}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
6436
6437/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
6438typedef PACKED_PRE struct PACKED_POST{
6439
6440 tHalMsgHeader header;
6441
6442 /*status of the request */
6443 tANI_U32 status;
6444
6445} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
6446
6447#endif
Shailender Karmuchi07f514b2013-06-25 01:14:09 -07006448
6449#ifdef FEATURE_SPECULATIVE_PS_POLL
6450/*---------------------------------------------------------------------------
6451 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
6452 *--------------------------------------------------------------------------*/
6453typedef PACKED_PRE struct PACKED_POST
6454{
6455 tANI_U8 bssIdx;
6456 tANI_U16 serviceInterval;
6457 tANI_U16 suspendInterval;
6458 tANI_U8 acMask;
6459} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
6460
6461typedef PACKED_PRE struct PACKED_POST
6462{
6463 tHalMsgHeader header;
6464 tHalStartSpecPsPollReqParams specPsPollReq;
6465} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
6466
6467/*---------------------------------------------------------------------------
6468 * WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
6469 *--------------------------------------------------------------------------*/
6470typedef PACKED_PRE struct PACKED_POST
6471{
6472 /* success or failure */
6473 tANI_U32 status;
6474 tANI_U8 bssIdx;
6475} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
6476
6477typedef PACKED_PRE struct PACKED_POST
6478{
6479 tHalMsgHeader header;
6480 tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
6481} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
6482
6483/*---------------------------------------------------------------------------
6484 * WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
6485 *--------------------------------------------------------------------------*/
6486typedef PACKED_PRE struct PACKED_POST
6487{
6488 tHalMsgHeader header;
6489 tANI_U8 bssIdx;
6490} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
6491#endif
6492
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306493#ifdef FEATURE_WLAN_TDLS
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306494#define HAL_MAX_SUPP_CHANNELS 128
6495#define HAL_MAX_SUPP_OPER_CLASSES 32
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306496/*---------------------------------------------------------------------------
6497 * WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
6498 *-------------------------------------------------------------------------*/
6499typedef PACKED_PRE struct PACKED_POST
6500{
6501 /*STA Index*/
6502 tANI_U16 staIdx;
6503
6504 /* if this is 1, self is initiator and peer is reponder */
6505 tANI_U8 bIsResponder;
6506
6507 /* QoS Info */
6508 tANI_U8 acVOUAPSDFlag:1;
6509 tANI_U8 acVIUAPSDFlag:1;
6510 tANI_U8 acBKUAPSDFlag:1;
6511 tANI_U8 acBEUAPSDFlag:1;
6512 tANI_U8 aAck:1;
6513 tANI_U8 maxServicePeriodLength:2;
6514 tANI_U8 moreDataAck:1;
6515
6516 /*TDLS Peer U-APSD Buffer STA Support*/
6517 tANI_U8 TPUBufferStaSupport;
Kumar Anandea78e792013-10-10 23:47:01 -07006518
6519 /*TDLS off channel related params */
6520 tANI_U8 tdlsOffChannelSupport;
Madan Mohan Koyyalamudi85aa8db2013-08-28 12:24:38 +05306521 tANI_U8 peerCurrOperClass;
6522 tANI_U8 selfCurrOperClass;
6523 tANI_U8 validChannelsLen;
6524 tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
6525 tANI_U8 validOperClassesLen;
6526 tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
Gopichand Nakkala79ff85d2013-05-27 17:05:29 +05306527}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
6528
6529typedef PACKED_PRE struct PACKED_POST
6530{
6531 tHalMsgHeader header;
6532 tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
6533} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
6534
6535/*---------------------------------------------------------------------------
6536 * WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
6537 *-------------------------------------------------------------------------*/
6538
6539typedef PACKED_PRE struct PACKED_POST
6540{
6541 tANI_U32 status;
6542
6543 /*STA Index*/
6544 tANI_U16 staIdx;
6545} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
6546
6547typedef PACKED_PRE struct PACKED_POST
6548{
6549 tHalMsgHeader header;
6550 tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
6551} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
6552
6553/*---------------------------------------------------------------------------
6554 * WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
6555 *-------------------------------------------------------------------------*/
6556typedef PACKED_PRE struct PACKED_POST
6557{
6558 /*STA Index*/
6559 tANI_U16 staIdx;
6560}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
6561
6562typedef PACKED_PRE struct PACKED_POST
6563{
6564 tHalMsgHeader header;
6565 tTDLSLinkTeardownType tdlsLinkTeardownParams;
6566} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
6567
6568/*---------------------------------------------------------------------------
6569 * WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
6570 *-------------------------------------------------------------------------*/
6571
6572typedef PACKED_PRE struct PACKED_POST
6573{
6574 tANI_U32 status;
6575
6576 /*STA Index*/
6577 tANI_U16 staIdx;
6578} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
6579
6580typedef PACKED_PRE struct PACKED_POST
6581{
6582 tHalMsgHeader header;
6583 tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
6584} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
6585
6586/*---------------------------------------------------------------------------
6587 *WLAN_HAL_TDLS_IND
6588 *--------------------------------------------------------------------------*/
6589
6590typedef PACKED_PRE struct PACKED_POST
6591{
6592 tANI_U16 assocId;
6593 tANI_U16 staIdx;
6594 tANI_U16 status;
6595 tANI_U16 reasonCode;
6596}tTdlsIndParams, *tpTdlsIndParams;
6597
6598
6599typedef PACKED_PRE struct PACKED_POST
6600{
6601 tHalMsgHeader header;
6602 tTdlsIndParams tdlsIndParams;
6603}tTdlsIndMsg, *tpTdlsIndMsg;
6604
6605#endif
6606
Ravi Joshi9e8e7cd2013-07-31 14:54:08 -07006607/*---------------------------------------------------------------------------
6608 *WLAN_HAL_IBSS_PEER_INACTIVITY_IND
6609 *--------------------------------------------------------------------------*/
6610
6611typedef PACKED_PRE struct PACKED_POST
6612{
6613 tANI_U8 bssIdx;
6614 tANI_U8 staIdx;
6615 tSirMacAddr staAddr;
6616}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
6617
6618
6619typedef PACKED_PRE struct PACKED_POST
6620{
6621 tHalMsgHeader header;
6622 tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
6623}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
6624
6625
Kumar Anandea78e792013-10-10 23:47:01 -07006626/*********** Scan Offload Related Structures *************/
6627#define HAL_NUM_SCAN_SSID 10
6628#define HAL_NUM_SCAN_BSSID 4
Kumar Anandf53016f2013-09-04 15:15:53 -07006629
Kumar Anandea78e792013-10-10 23:47:01 -07006630/*
6631 * Enumetation to indicate scan type (active/passive)
6632 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006633typedef enum
6634{
Kumar Anandea78e792013-10-10 23:47:01 -07006635 eSIR_PASSIVE_SCAN,
6636 eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
6637} tSirScanType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006638
6639typedef PACKED_PRE struct PACKED_POST
6640{
Kumar Anandea78e792013-10-10 23:47:01 -07006641 tANI_U8 numBssid;
6642 tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
6643 tANI_U8 numSsid;
6644 tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
6645 tANI_BOOLEAN hiddenSsid;
6646 tSirMacAddr selfMacAddr;
6647 tSirBssType bssType;
6648 tSirScanType scanType;
6649 tANI_U32 minChannelTime;
6650 tANI_U32 maxChannelTime;
6651 tANI_BOOLEAN p2pSearch;
6652 tANI_U8 channelCount;
6653 tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6654 tANI_U16 ieFieldLen;
6655 tANI_U8 ieField[1];
6656}tScanOffloadReqType, *tpScanOffloadReqType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006657
6658/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006659 * WLAN_HAL_START_SCAN_OFFLOAD_REQ
Kumar Anandf53016f2013-09-04 15:15:53 -07006660 *-------------------------------------------------------------------------*/
6661typedef PACKED_PRE struct PACKED_POST
6662{
Kumar Anandf53016f2013-09-04 15:15:53 -07006663 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006664 tScanOffloadReqType scanOffloadParams;
6665} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006666
6667/*---------------------------------------------------------------------------
Kumar Anandea78e792013-10-10 23:47:01 -07006668 * WLAN_HAL_START_SCAN_OFFLOAD_RSP
Kumar Anandf53016f2013-09-04 15:15:53 -07006669 *-------------------------------------------------------------------------*/
Kumar Anandea78e792013-10-10 23:47:01 -07006670typedef PACKED_PRE struct PACKED_POST
6671{
6672 tHalMsgHeader header;
6673
6674 /*status of the request - just to indicate SO has acknowledged
6675 * * the request and will start scanning*/
6676 tANI_U32 status;
6677} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
6678
6679/*---------------------------------------------------------------------------
6680 * WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
6681 *-------------------------------------------------------------------------*/
6682typedef PACKED_PRE struct PACKED_POST
6683{
6684 tHalMsgHeader header;
6685} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
6686
6687/*---------------------------------------------------------------------------
6688 * WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
6689 *-------------------------------------------------------------------------*/
6690typedef PACKED_PRE struct PACKED_POST
6691{
6692 tHalMsgHeader header;
6693
6694 /*status of the request - just to indicate SO has acknowledged
6695 the request and will start scanning*/
6696 tANI_U32 status;
6697} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
6698
6699/*
6700 * Enumetation of scan events indicated by firmware to the host
6701 */
Kumar Anandf53016f2013-09-04 15:15:53 -07006702typedef enum
6703{
Kumar Anandea78e792013-10-10 23:47:01 -07006704 WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
6705 WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
6706 WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
6707 WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
6708 WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
6709 WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
6710 WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
6711 WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
6712 WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
6713} tScanEventType;
Kumar Anandf53016f2013-09-04 15:15:53 -07006714
6715typedef PACKED_PRE struct PACKED_POST
6716{
Kumar Anandea78e792013-10-10 23:47:01 -07006717 tScanEventType event;
6718 tANI_U32 channel;
6719 tANI_U32 scanId;
6720} tScanOffloadEventInfo;
Kumar Anandf53016f2013-09-04 15:15:53 -07006721
Kumar Anandea78e792013-10-10 23:47:01 -07006722/*---------------------------------------------------------------------------
6723 * WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
6724 *-------------------------------------------------------------------------*/
6725typedef PACKED_PRE struct PACKED_POST
6726{
6727 tHalMsgHeader header;
6728 tScanOffloadEventInfo scanOffloadInd;
6729} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
Kumar Anandf53016f2013-09-04 15:15:53 -07006730
Kumar Anandea78e792013-10-10 23:47:01 -07006731typedef PACKED_PRE struct PACKED_POST {
6732 /** primary 20 MHz channel frequency in mhz */
6733 tANI_U32 mhz;
6734 /** Center frequency 1 in MHz*/
6735 tANI_U32 band_center_freq1;
6736 /** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
6737 tANI_U32 band_center_freq2;
6738 /* The first 26 bits are a bit mask to indicate any channel flags,
6739 (see WLAN_HAL_CHAN_FLAG*)
6740 The last 6 bits indicate the mode (see tChannelPhyModeType)*/
6741 tANI_U32 channel_info;
6742 /** contains min power, max power, reg power and reg class id. */
6743 tANI_U32 reg_info_1;
6744 /** contains antennamax */
6745 tANI_U32 reg_info_2;
6746} tUpdateChannelParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006747
Kumar Anandf53016f2013-09-04 15:15:53 -07006748
Kumar Anandea78e792013-10-10 23:47:01 -07006749typedef enum {
6750 WLAN_HAL_MODE_11A = 0, /* 11a Mode */
6751 WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
6752 WLAN_HAL_MODE_11B = 2, /* 11b Mode */
6753 WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
6754 WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
6755 WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
6756 WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
6757 WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
6758 WLAN_HAL_MODE_11AC_VHT20 = 8,
6759 WLAN_HAL_MODE_11AC_VHT40 = 9,
6760 WLAN_HAL_MODE_11AC_VHT80 = 10,
6761 WLAN_HAL_MODE_11AC_VHT20_2G = 11,
6762 WLAN_HAL_MODE_11AC_VHT40_2G = 12,
6763 WLAN_HAL_MODE_11AC_VHT80_2G = 13,
6764 WLAN_HAL_MODE_UNKNOWN = 14,
Kumar Anandf53016f2013-09-04 15:15:53 -07006765
Kumar Anandea78e792013-10-10 23:47:01 -07006766} tChannelPhyModeType;
6767
6768#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
6769#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
6770#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
6771#define WLAN_HAL_CHAN_AP_DISABLED 9
6772#define WLAN_HAL_CHAN_FLAG_DFS 10
6773#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
6774#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
6775
6776typedef PACKED_PRE struct PACKED_POST
6777{
6778 tANI_U8 numChan;
6779 tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
6780} tUpdateChannelReqType;
6781
6782/*---------------------------------------------------------------------------
6783 * WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
6784 *-------------------------------------------------------------------------*/
6785typedef PACKED_PRE struct PACKED_POST
6786{
6787 tHalMsgHeader header;
6788 tUpdateChannelReqType updateChannelParams;
6789} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
6790
6791/*---------------------------------------------------------------------------
6792 * WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
6793 *-------------------------------------------------------------------------*/
6794typedef PACKED_PRE struct PACKED_POST
6795{
6796 tHalMsgHeader header;
6797
6798 /*status of the request - just to indicate SO has acknowledged
6799 * * the request and will start scanning*/
6800 tANI_U32 status;
6801} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
6802
6803
6804/*---------------------------------------------------------------------------
6805* WLAN_HAL_TX_FAIL_IND
6806*--------------------------------------------------------------------------*/
6807// Northbound indication from FW to host on weak link detection
6808typedef PACKED_PRE struct PACKED_POST
6809{
6810 // Sequence number increases by 1 whenever the device driver
6811 // sends a notification event. This is cleared as 0 when the
6812 // JOIN IBSS commamd is issued
6813 tANI_U16 seqNo;
6814 tANI_U16 staId;
6815 tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
6816} tHalTXFailIndParams, *tpHalTXFailIndParams;
6817
6818typedef PACKED_PRE struct PACKED_POST
6819{
6820 tHalMsgHeader header;
6821 tHalTXFailIndParams txFailIndParams;
6822} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
6823
6824/*---------------------------------------------------------------------------
6825* WLAN_HAL_TX_FAIL_MONITOR_IND
6826*--------------------------------------------------------------------------*/
6827// Southbound message from Host to monitor the Tx failures
6828typedef PACKED_PRE struct PACKED_POST
6829{
6830 // tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
6831 tANI_U8 tx_fail_count;
6832} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
6833
6834typedef PACKED_PRE struct PACKED_POST
6835{
6836 tHalMsgHeader header;
6837 tTXFailMonitorInfo txFailMonitor;
6838} tTXFailMonitorInd, *tpTXFailMonitorInd;
6839
6840/*---------------------------------------------------------------------------
6841* WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND
6842*--------------------------------------------------------------------------*/
6843typedef PACKED_PRE struct PACKED_POST
6844{
6845 tANI_U8 destIpv4Addr[HAL_IPV4_ADDR_LEN];
6846 tANI_U8 nextHopMacAddr[HAL_MAC_ADDR_LEN];
6847} tDestIpNextHopMacPair;
6848
6849typedef PACKED_PRE struct PACKED_POST
6850{
6851 tANI_U8 numEntries;
6852 tDestIpNextHopMacPair destIpMacPair[1];
6853} tWlanIpForwardTableUpdateIndParam;
Kumar Anandf53016f2013-09-04 15:15:53 -07006854
6855typedef PACKED_PRE struct PACKED_POST
6856{
6857 tHalMsgHeader header;
Kumar Anandea78e792013-10-10 23:47:01 -07006858 tWlanIpForwardTableUpdateIndParam ipForwardTableParams;
6859} tWlanIpForwardTableUpdateInd;
krunal soni2a4728d2013-09-20 21:56:50 -07006860
Kumar Anandf53016f2013-09-04 15:15:53 -07006861/*---------------------------------------------------------------------------
Chittajit Mitraf5413a42013-10-18 14:20:08 -07006862 WLAN_HAL_RATE_UPDATE_IND
6863 *-------------------------------------------------------------------------*/
6864
6865typedef PACKED_PRE struct PACKED_POST
6866{
6867 /* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
6868 tANI_S32 ucastDataRate; //unit Mbpsx10
6869
6870 /* TX flag to differentiate between HT20, HT40 etc */
6871 tTxRateInfoFlags ucastDataRateTxFlag;
6872
6873 /* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
6874 tSirMacAddr bssid;
6875
6876 /* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
6877 tANI_S32 reliableMcastDataRate; //unit Mbpsx10
6878
6879 /* TX flag to differentiate between HT20, HT40 etc */
6880 tTxRateInfoFlags reliableMcastDataRateTxFlag;
6881
6882 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
6883 tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
6884
6885 /* TX flag to differentiate between HT20, HT40 etc */
6886 tTxRateInfoFlags mcastDataRate24GHzTxFlag;
6887
6888 /* Default (non-reliable) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
6889 tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
6890
6891 /* TX flag to differentiate between HT20, HT40 etc */
6892 tTxRateInfoFlags mcastDataRate5GHzTxFlag;
6893
6894} tHalRateUpdateParams, *tpHalRateUpdateParams;
6895
6896typedef PACKED_PRE struct PACKED_POST
6897{
6898 tHalMsgHeader header;
6899 tHalRateUpdateParams halRateUpdateParams;
6900} tHalRateUpdateInd, * tpHalRateUpdateInd;
6901
6902/*---------------------------------------------------------------------------
Kumar Anandf53016f2013-09-04 15:15:53 -07006903 *-------------------------------------------------------------------------*/
6904
Jeff Johnson295189b2012-06-20 16:38:30 -07006905#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
6906#pragma pack(pop)
6907#elif defined(__ANI_COMPILER_PRAGMA_PACK)
6908#else
6909#endif
6910
6911#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07006912