blob: 18aef61570f62bcfcfe9c733c0f7cb2df725aa7d [file] [log] [blame]
Jeff Johnson295189b2012-06-20 16:38:30 -07001/*
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08002* Copyright (c) 2012 Qualcomm Atheros, Inc.
3* All Rights Reserved.
4* Qualcomm Atheros Confidential and Proprietary.
5*/
Jeff Johnson295189b2012-06-20 16:38:30 -07006
7/*==========================================================================
8 *
9 * @file: wlan_hal_msg.h
10 *
11 * @brief: Exports and types for messages sent to HAL from WDI
12 *
13 * @author: Kumar Anand
14 *
Jeff Johnson32d95a32012-09-10 13:15:23 -070015 * Copyright (C) 2010, Qualcomm, Inc.
Jeff Johnson295189b2012-06-20 16:38:30 -070016 * All rights reserved.
17 *
18 *=========================================================================*/
19
20#ifndef _WLAN_HAL_MSG_H_
21#define _WLAN_HAL_MSG_H_
22
23#include "halLegacyPalTypes.h"
24#include "halCompiler.h"
25#include "wlan_qct_dev_defs.h"
26#include "wlan_nv.h"
Jeff Johnson295189b2012-06-20 16:38:30 -070027/*---------------------------------------------------------------------------
28 API VERSIONING INFORMATION
29
30 The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
31 The MAJOR is incremented for major product/architecture changes
32 (and then MINOR/VERSION/REVISION are zeroed)
33 The MINOR is incremented for minor product/architecture changes
34 (and then VERSION/REVISION are zeroed)
35 The VERSION is incremented if a significant API change occurs
36 (and then REVISION is zeroed)
37 The REVISION is incremented if an insignificant API change occurs
38 or if a new API is added
39 All values are in the range 0..255 (ie they are 8-bit values)
40 ---------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -070041#define WLAN_HAL_VER_MAJOR 1
42#define WLAN_HAL_VER_MINOR 3
Jeff Johnson295189b2012-06-20 16:38:30 -070043#define WLAN_HAL_VER_VERSION 1
Viral Modie50b1d42012-12-10 13:04:52 -080044#define WLAN_HAL_VER_REVISION 2
Jeff Johnson295189b2012-06-20 16:38:30 -070045
46/*---------------------------------------------------------------------------
47 Commom Type definitons
48 ---------------------------------------------------------------------------*/
49
50//This is to force compiler to use the maximum of an int ( 4 bytes )
51#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
Jeff Johnsone7245742012-09-05 17:12:55 -070052#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
Jeff Johnson295189b2012-06-20 16:38:30 -070053
54//Max no. of transmit categories
55#define STACFG_MAX_TC 8
56
57//The maximum value of access category
58#define WLAN_HAL_MAX_AC 4
59
60typedef tANI_U8 tSirMacAddr[6];
61typedef tANI_U8 tHalIpv4Addr[4];
62
63#define HAL_MAC_ADDR_LEN 6
64#define HAL_IPV4_ADDR_LEN 4
65
66#define WALN_HAL_STA_INVALID_IDX 0xFF
67#define WLAN_HAL_BSS_INVALID_IDX 0xFF
68
69//Default Beacon template size
Jeff Johnson32d95a32012-09-10 13:15:23 -070070#define BEACON_TEMPLATE_SIZE 0x180
Jeff Johnson295189b2012-06-20 16:38:30 -070071
Jeff Johnson32d95a32012-09-10 13:15:23 -070072//Param Change Bitmap sent to HAL
Jeff Johnson295189b2012-06-20 16:38:30 -070073#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
74#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
75#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
76#define PARAM_llACOEXIST_CHANGED (1 << 3)
77#define PARAM_llBCOEXIST_CHANGED (1 << 4)
78#define PARAM_llGCOEXIST_CHANGED (1 << 5)
79#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
80#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
81#define PARAM_RIFS_MODE_CHANGED (1<<8)
82#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
83#define PARAM_OBSS_MODE_CHANGED (1<<10)
84#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
85 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)
86
87/*Dump command response Buffer size*/
88#define DUMPCMD_RSP_BUFFER 100
89
90/*Version string max length (including NUL) */
91#define WLAN_HAL_VERSION_LENGTH 64
92
Jeff Johnson295189b2012-06-20 16:38:30 -070093/* Message types for messages exchanged between WDI and HAL */
Jeff Johnson32d95a32012-09-10 13:15:23 -070094typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -070095{
96 //Init/De-Init
97 WLAN_HAL_START_REQ = 0,
98 WLAN_HAL_START_RSP = 1,
99 WLAN_HAL_STOP_REQ = 2,
100 WLAN_HAL_STOP_RSP = 3,
101
102 //Scan
103 WLAN_HAL_INIT_SCAN_REQ = 4,
104 WLAN_HAL_INIT_SCAN_RSP = 5,
105 WLAN_HAL_START_SCAN_REQ = 6,
106 WLAN_HAL_START_SCAN_RSP = 7 ,
107 WLAN_HAL_END_SCAN_REQ = 8,
108 WLAN_HAL_END_SCAN_RSP = 9,
109 WLAN_HAL_FINISH_SCAN_REQ = 10,
110 WLAN_HAL_FINISH_SCAN_RSP = 11,
111
112 // HW STA configuration/deconfiguration
113 WLAN_HAL_CONFIG_STA_REQ = 12,
114 WLAN_HAL_CONFIG_STA_RSP = 13,
115 WLAN_HAL_DELETE_STA_REQ = 14,
116 WLAN_HAL_DELETE_STA_RSP = 15,
117 WLAN_HAL_CONFIG_BSS_REQ = 16,
118 WLAN_HAL_CONFIG_BSS_RSP = 17,
119 WLAN_HAL_DELETE_BSS_REQ = 18,
120 WLAN_HAL_DELETE_BSS_RSP = 19,
121
122 //Infra STA asscoiation
123 WLAN_HAL_JOIN_REQ = 20,
124 WLAN_HAL_JOIN_RSP = 21,
125 WLAN_HAL_POST_ASSOC_REQ = 22,
126 WLAN_HAL_POST_ASSOC_RSP = 23,
127
128 //Security
129 WLAN_HAL_SET_BSSKEY_REQ = 24,
130 WLAN_HAL_SET_BSSKEY_RSP = 25,
131 WLAN_HAL_SET_STAKEY_REQ = 26,
132 WLAN_HAL_SET_STAKEY_RSP = 27,
133 WLAN_HAL_RMV_BSSKEY_REQ = 28,
134 WLAN_HAL_RMV_BSSKEY_RSP = 29,
135 WLAN_HAL_RMV_STAKEY_REQ = 30,
136 WLAN_HAL_RMV_STAKEY_RSP = 31,
137
138 //Qos Related
139 WLAN_HAL_ADD_TS_REQ = 32,
140 WLAN_HAL_ADD_TS_RSP = 33,
141 WLAN_HAL_DEL_TS_REQ = 34,
142 WLAN_HAL_DEL_TS_RSP = 35,
143 WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
144 WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
145 WLAN_HAL_ADD_BA_REQ = 38,
146 WLAN_HAL_ADD_BA_RSP = 39,
147 WLAN_HAL_DEL_BA_REQ = 40,
148 WLAN_HAL_DEL_BA_RSP = 41,
149
150 WLAN_HAL_CH_SWITCH_REQ = 42,
151 WLAN_HAL_CH_SWITCH_RSP = 43,
152 WLAN_HAL_SET_LINK_ST_REQ = 44,
153 WLAN_HAL_SET_LINK_ST_RSP = 45,
154 WLAN_HAL_GET_STATS_REQ = 46,
155 WLAN_HAL_GET_STATS_RSP = 47,
156 WLAN_HAL_UPDATE_CFG_REQ = 48,
157 WLAN_HAL_UPDATE_CFG_RSP = 49,
158
159 WLAN_HAL_MISSED_BEACON_IND = 50,
160 WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
161 WLAN_HAL_MIC_FAILURE_IND = 52,
162 WLAN_HAL_FATAL_ERROR_IND = 53,
163 WLAN_HAL_SET_KEYDONE_MSG = 54,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700164
Jeff Johnson295189b2012-06-20 16:38:30 -0700165 //NV Interface
166 WLAN_HAL_DOWNLOAD_NV_REQ = 55,
167 WLAN_HAL_DOWNLOAD_NV_RSP = 56,
168
169 WLAN_HAL_ADD_BA_SESSION_REQ = 57,
170 WLAN_HAL_ADD_BA_SESSION_RSP = 58,
171 WLAN_HAL_TRIGGER_BA_REQ = 59,
172 WLAN_HAL_TRIGGER_BA_RSP = 60,
173 WLAN_HAL_UPDATE_BEACON_REQ = 61,
174 WLAN_HAL_UPDATE_BEACON_RSP = 62,
175 WLAN_HAL_SEND_BEACON_REQ = 63,
176 WLAN_HAL_SEND_BEACON_RSP = 64,
177
178 WLAN_HAL_SET_BCASTKEY_REQ = 65,
179 WLAN_HAL_SET_BCASTKEY_RSP = 66,
180 WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
181 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
182 WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700183
Jeff Johnson295189b2012-06-20 16:38:30 -0700184 // PTT interface support
185 WLAN_HAL_PROCESS_PTT_REQ = 70,
186 WLAN_HAL_PROCESS_PTT_RSP = 71,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700187
Jeff Johnson295189b2012-06-20 16:38:30 -0700188 // BTAMP related events
189 WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
190 WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
191 WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
192 WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
193
194 WLAN_HAL_ENTER_IMPS_REQ = 76,
195 WLAN_HAL_EXIT_IMPS_REQ = 77,
196 WLAN_HAL_ENTER_BMPS_REQ = 78,
197 WLAN_HAL_EXIT_BMPS_REQ = 79,
198 WLAN_HAL_ENTER_UAPSD_REQ = 80,
199 WLAN_HAL_EXIT_UAPSD_REQ = 81,
200 WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
201 WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
202 WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
203 WLAN_HAL_REM_BCN_FILTER_REQ = 85,
204 WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
205 WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
206 WLAN_HAL_ENTER_WOWL_REQ = 88,
207 WLAN_HAL_EXIT_WOWL_REQ = 89,
208 WLAN_HAL_HOST_OFFLOAD_REQ = 90,
209 WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
210 WLAN_HAL_GET_RSSI_REQ = 92,
211 WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
212 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
213
214 WLAN_HAL_ENTER_IMPS_RSP = 95,
215 WLAN_HAL_EXIT_IMPS_RSP = 96,
216 WLAN_HAL_ENTER_BMPS_RSP = 97,
217 WLAN_HAL_EXIT_BMPS_RSP = 98,
218 WLAN_HAL_ENTER_UAPSD_RSP = 99,
219 WLAN_HAL_EXIT_UAPSD_RSP = 100,
220 WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
221 WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
222 WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
223 WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
224 WLAN_HAL_REM_BCN_FILTER_RSP = 105,
225 WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
226 WLAN_HAL_HOST_OFFLOAD_RSP = 107,
227 WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
228 WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
229 WLAN_HAL_ENTER_WOWL_RSP = 110,
230 WLAN_HAL_EXIT_WOWL_RSP = 111,
231 WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
232 WLAN_HAL_GET_RSSI_RSP = 113,
233 WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
234
235 //11k related events
236 WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
237 WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
238
239 //11R related msgs
240 WLAN_HAL_AGGR_ADD_TS_REQ = 117,
241 WLAN_HAL_AGGR_ADD_TS_RSP = 118,
242
243 //P2P WLAN_FEATURE_P2P
244 WLAN_HAL_SET_P2P_GONOA_REQ = 119,
245 WLAN_HAL_SET_P2P_GONOA_RSP = 120,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700246
Jeff Johnson295189b2012-06-20 16:38:30 -0700247 //WLAN Dump commands
248 WLAN_HAL_DUMP_COMMAND_REQ = 121,
249 WLAN_HAL_DUMP_COMMAND_RSP = 122,
250
Jeff Johnsone7245742012-09-05 17:12:55 -0700251 //OEM_DATA FEATURE SUPPORT
252 WLAN_HAL_START_OEM_DATA_REQ = 123,
253 WLAN_HAL_START_OEM_DATA_RSP = 124,
Jeff Johnson295189b2012-06-20 16:38:30 -0700254
255 //ADD SELF STA REQ and RSP
256 WLAN_HAL_ADD_STA_SELF_REQ = 125,
257 WLAN_HAL_ADD_STA_SELF_RSP = 126,
258
259 //DEL SELF STA SUPPORT
260 WLAN_HAL_DEL_STA_SELF_REQ = 127,
261 WLAN_HAL_DEL_STA_SELF_RSP = 128,
262
263 // Coex Indication
264 WLAN_HAL_COEX_IND = 129,
265
Jeff Johnson32d95a32012-09-10 13:15:23 -0700266 // Tx Complete Indication
Jeff Johnson295189b2012-06-20 16:38:30 -0700267 WLAN_HAL_OTA_TX_COMPL_IND = 130,
268
269 //Host Suspend/resume messages
270 WLAN_HAL_HOST_SUSPEND_IND = 131,
271 WLAN_HAL_HOST_RESUME_REQ = 132,
272 WLAN_HAL_HOST_RESUME_RSP = 133,
273
274 WLAN_HAL_SET_TX_POWER_REQ = 134,
275 WLAN_HAL_SET_TX_POWER_RSP = 135,
276 WLAN_HAL_GET_TX_POWER_REQ = 136,
277 WLAN_HAL_GET_TX_POWER_RSP = 137,
278
279 WLAN_HAL_P2P_NOA_ATTR_IND = 138,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700280
Jeff Johnson295189b2012-06-20 16:38:30 -0700281 WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
282 WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
283 WLAN_HAL_GET_TPC_REPORT_REQ = 141,
284 WLAN_HAL_GET_TPC_REPORT_RSP = 142,
285 WLAN_HAL_RADAR_DETECT_IND = 143,
286 WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
287 WLAN_HAL_KEEP_ALIVE_REQ = 145,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700288 WLAN_HAL_KEEP_ALIVE_RSP = 146,
Jeff Johnson295189b2012-06-20 16:38:30 -0700289
290 /*PNO messages*/
291 WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
292 WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
293 WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
294 WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
295 WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
296 WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700297 WLAN_HAL_PREF_NETW_FOUND_IND = 153,
Jeff Johnson295189b2012-06-20 16:38:30 -0700298
299 WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
300 WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
301 WLAN_HAL_TX_PER_HIT_IND = 156,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700302
Jeff Johnson295189b2012-06-20 16:38:30 -0700303 WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700304 WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
Jeff Johnson295189b2012-06-20 16:38:30 -0700305
306 WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700307 WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
Jeff Johnson295189b2012-06-20 16:38:30 -0700308 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700309 WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
Jeff Johnson295189b2012-06-20 16:38:30 -0700310 WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700311 WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
312 /*This is temp fix. Should be removed once
Jeff Johnson295189b2012-06-20 16:38:30 -0700313 * Host and Riva code is in sync*/
314 WLAN_HAL_INIT_SCAN_CON_REQ = 165,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700315
Jeff Johnson295189b2012-06-20 16:38:30 -0700316 WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
317 WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
318
319 WLAN_HAL_TSM_STATS_REQ = 168,
320 WLAN_HAL_TSM_STATS_RSP = 169,
321
322 // wake reason indication (WOW)
323 WLAN_HAL_WAKE_REASON_IND = 170,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700324 // GTK offload support
Jeff Johnson295189b2012-06-20 16:38:30 -0700325 WLAN_HAL_GTK_OFFLOAD_REQ = 171,
326 WLAN_HAL_GTK_OFFLOAD_RSP = 172,
327 WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
328 WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
329
330 WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
331 WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
332 WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
333
334 WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
335 WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
336
Viral Modie50b1d42012-12-10 13:04:52 -0800337 WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
338 WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
339
340 WLAN_HAL_P2P_NOA_START_IND = 184,
341
Jeff Johnsone7245742012-09-05 17:12:55 -0700342 WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
Jeff Johnson295189b2012-06-20 16:38:30 -0700343}tHalHostMsgType;
344
Jeff Johnsone7245742012-09-05 17:12:55 -0700345/* Enumeration for Version */
346typedef enum
347{
348 WLAN_HAL_MSG_VERSION0 = 0,
349 WLAN_HAL_MSG_VERSION1 = 1,
350 WLAN_HAL_MSG_VERSION_MAX_FIELD = 0x7FFF /*define as 2 bytes data*/
351}tHalHostMsgVersion;
352
Jeff Johnson295189b2012-06-20 16:38:30 -0700353/* Enumeration for Boolean - False/True, On/Off */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700354typedef enum tagAniBoolean
Jeff Johnson295189b2012-06-20 16:38:30 -0700355{
356 eANI_BOOLEAN_FALSE = 0,
357 eANI_BOOLEAN_TRUE,
358 eANI_BOOLEAN_OFF = 0,
359 eANI_BOOLEAN_ON = 1,
360 eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
361} eAniBoolean;
362
363typedef enum
364{
365 eDRIVER_TYPE_PRODUCTION = 0,
366 eDRIVER_TYPE_MFG = 1,
367 eDRIVER_TYPE_DVT = 2,
368 eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
369} tDriverType;
370
371typedef enum
372{
373 HAL_STOP_TYPE_SYS_RESET,
374 HAL_STOP_TYPE_SYS_DEEP_SLEEP,
375 HAL_STOP_TYPE_RF_KILL,
376 HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
377}tHalStopType;
378
379typedef enum
380{
381 eHAL_SYS_MODE_NORMAL,
382 eHAL_SYS_MODE_LEARN,
383 eHAL_SYS_MODE_SCAN,
384 eHAL_SYS_MODE_PROMISC,
385 eHAL_SYS_MODE_SUSPEND_LINK,
Madan Mohan Koyyalamudid9297112012-10-11 16:26:50 -0700386 eHAL_SYS_MODE_ROAM_SCAN,
387 eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
Jeff Johnson295189b2012-06-20 16:38:30 -0700388 eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
389} eHalSysMode;
390
391typedef enum
392{
393 PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
394 PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
395 PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
396 PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
Jeff Johnsone7245742012-09-05 17:12:55 -0700397#ifdef WLAN_FEATURE_11AC
398 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
399 PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
400 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
401 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
402 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
403 PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
404 PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
405#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700406 PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
407}ePhyChanBondState;
408
409// Spatial Multiplexing(SM) Power Save mode
410typedef enum eSirMacHTMIMOPowerSaveState
411{
412 eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
413 eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
414 eSIR_HT_MIMO_PS_NA = 2, // reserved
415 eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
416 eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
417} tSirMacHTMIMOPowerSaveState;
418
419/* each station added has a rate mode which specifies the sta attributes */
420typedef enum eStaRateMode {
421 eSTA_TAURUS = 0,
422 eSTA_TITAN,
423 eSTA_POLARIS,
424 eSTA_11b,
425 eSTA_11bg,
426 eSTA_11a,
427 eSTA_11n,
Jeff Johnsone7245742012-09-05 17:12:55 -0700428#ifdef WLAN_FEATURE_11AC
429 eSTA_11ac,
430#endif
Jeff Johnson295189b2012-06-20 16:38:30 -0700431 eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
432} tStaRateMode, *tpStaRateMode;
433
434#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
435#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
436#define SIR_NUM_POLARIS_RATES 3 //72,96,108
437
438#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
439
440
441typedef enum eSirBssType
442{
443 eSIR_INFRASTRUCTURE_MODE,
444 eSIR_INFRA_AP_MODE, //Added for softAP support
445 eSIR_IBSS_MODE,
446 eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
447 eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
448 eSIR_AUTO_MODE,
449 eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
450} tSirBssType;
451
452typedef enum eSirNwType
453{
454 eSIR_11A_NW_TYPE,
455 eSIR_11B_NW_TYPE,
456 eSIR_11G_NW_TYPE,
457 eSIR_11N_NW_TYPE,
458 eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
459} tSirNwType;
460
461typedef tANI_U16 tSirMacBeaconInterval;
462
463#define SIR_MAC_RATESET_EID_MAX 12
464
465typedef enum eSirMacHTOperatingMode
466{
467 eSIR_HT_OP_MODE_PURE, // No Protection
468 eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
469 eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
470 eSIR_HT_OP_MODE_MIXED, // Protection is required
471 eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
472} tSirMacHTOperatingMode;
473
Jeff Johnson295189b2012-06-20 16:38:30 -0700474/// Encryption type enum used with peer
475typedef enum eAniEdType
476{
477 eSIR_ED_NONE,
478 eSIR_ED_WEP40,
479 eSIR_ED_WEP104,
480 eSIR_ED_TKIP,
481 eSIR_ED_CCMP,
482 eSIR_ED_WPI,
483 eSIR_ED_AES_128_CMAC,
484 eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
485} tAniEdType;
486
487#define WLAN_MAX_KEY_RSC_LEN 16
488#define WLAN_WAPI_KEY_RSC_LEN 16
489
490/// MAX key length when ULA is used
491#define SIR_MAC_MAX_KEY_LENGTH 32
492#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
493
494/// Enum to specify whether key is used
495/// for TX only, RX only or both
496typedef enum eAniKeyDirection
497{
498 eSIR_TX_ONLY,
499 eSIR_RX_ONLY,
500 eSIR_TX_RX,
Jeff Johnson295189b2012-06-20 16:38:30 -0700501 eSIR_TX_DEFAULT,
Jeff Johnson295189b2012-06-20 16:38:30 -0700502 eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
503} tAniKeyDirection;
504
505typedef enum eAniWepType
506{
507 eSIR_WEP_STATIC,
508 eSIR_WEP_DYNAMIC,
509 eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
510} tAniWepType;
511
512typedef enum eSriLinkState {
513
514 eSIR_LINK_IDLE_STATE = 0,
515 eSIR_LINK_PREASSOC_STATE = 1,
516 eSIR_LINK_POSTASSOC_STATE = 2,
517 eSIR_LINK_AP_STATE = 3,
518 eSIR_LINK_IBSS_STATE = 4,
519
520 /* BT-AMP Case */
521 eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
522 eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
523 eSIR_LINK_BTAMP_AP_STATE = 7,
524 eSIR_LINK_BTAMP_STA_STATE = 8,
Jeff Johnson32d95a32012-09-10 13:15:23 -0700525
Jeff Johnson295189b2012-06-20 16:38:30 -0700526 /* Reserved for HAL Internal Use */
527 eSIR_LINK_LEARN_STATE = 9,
528 eSIR_LINK_SCAN_STATE = 10,
529 eSIR_LINK_FINISH_SCAN_STATE = 11,
530 eSIR_LINK_INIT_CAL_STATE = 12,
531 eSIR_LINK_FINISH_CAL_STATE = 13,
532#ifdef WLAN_FEATURE_P2P
533 eSIR_LINK_LISTEN_STATE = 14,
534#endif
535 eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
536} tSirLinkState;
537
538typedef enum
539{
540 HAL_SUMMARY_STATS_INFO = 0x00000001,
541 HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
542 HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
543 HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
544 HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
545 HAL_PER_STA_STATS_INFO = 0x00000020
546}eHalStatsMask;
547
548/* BT-AMP events type */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700549typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -0700550{
551 BTAMP_EVENT_CONNECTION_START,
552 BTAMP_EVENT_CONNECTION_STOP,
553 BTAMP_EVENT_CONNECTION_TERMINATED,
554 BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
555} tBtAmpEventType;
556
557//***************************************************************
558
559
560/*******************PE Statistics*************************/
561typedef enum
562{
563 PE_SUMMARY_STATS_INFO = 0x00000001,
564 PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
565 PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
566 PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
567 PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
568 PE_PER_STA_STATS_INFO = 0x00000020,
569 PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
570}ePEStatsMask;
571
572/*---------------------------------------------------------------------------
573 Message definitons - All the messages below need to be packed
574 ---------------------------------------------------------------------------*/
575
576#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
577#pragma pack(push, 1)
578#elif defined(__ANI_COMPILER_PRAGMA_PACK)
579#pragma pack(1)
580#else
581#endif
582
583/// Definition for HAL API Version.
584typedef PACKED_PRE struct PACKED_POST
585{
586 tANI_U8 revision;
587 tANI_U8 version;
588 tANI_U8 minor;
589 tANI_U8 major;
590} tWcnssWlanVersion, *tpWcnssWlanVersion;
591
592/// Definition for Encryption Keys
593typedef PACKED_PRE struct PACKED_POST
594{
595 tANI_U8 keyId;
596 tANI_U8 unicast; // 0 for multicast
597 tAniKeyDirection keyDirection;
598 tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
599 tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
600 tANI_U16 keyLength;
601 tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
602} tSirKeys, *tpSirKeys;
603
604
605//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
606typedef PACKED_PRE struct PACKED_POST
607{
608 /*STA Index*/
609 tANI_U16 staIdx;
610
611 /*Encryption Type used with peer*/
612 tAniEdType encType;
613
614 /*STATIC/DYNAMIC - valid only for WEP*/
Jeff Johnson32d95a32012-09-10 13:15:23 -0700615 tAniWepType wepType;
Jeff Johnson295189b2012-06-20 16:38:30 -0700616
617 /*Default WEP key, valid only for static WEP, must between 0 and 3.*/
618 tANI_U8 defWEPIdx;
619
Jeff Johnson295189b2012-06-20 16:38:30 -0700620 /* valid only for non-static WEP encyrptions */
Jeff Johnson32d95a32012-09-10 13:15:23 -0700621 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
622
Jeff Johnson295189b2012-06-20 16:38:30 -0700623 /*Control for Replay Count, 1= Single TID based replay count on Tx
624 0 = Per TID based replay count on TX */
625 tANI_U8 singleTidRc;
626
627} tSetStaKeyParams, *tpSetStaKeyParams;
628
629
630
631/* 4-byte control message header used by HAL*/
632typedef PACKED_PRE struct PACKED_POST
633{
Jeff Johnsone7245742012-09-05 17:12:55 -0700634 tHalHostMsgType msgType:16;
635 tHalHostMsgVersion msgVersion:16;
Jeff Johnson295189b2012-06-20 16:38:30 -0700636 tANI_U32 msgLen;
637} tHalMsgHeader, *tpHalMsgHeader;
638
639/* Config format required by HAL for each CFG item*/
640typedef PACKED_PRE struct PACKED_POST
641{
642 /* Cfg Id. The Id required by HAL is exported by HAL
643 * in shared header file between UMAC and HAL.*/
644 tANI_U16 uCfgId;
645
Jeff Johnson32d95a32012-09-10 13:15:23 -0700646 /* Length of the Cfg. This parameter is used to go to next cfg
Jeff Johnson295189b2012-06-20 16:38:30 -0700647 * in the TLV format.*/
648 tANI_U16 uCfgLen;
649
650 /* Padding bytes for unaligned address's */
651 tANI_U16 uCfgPadBytes;
652
653 /* Reserve bytes for making cfgVal to align address */
654 tANI_U16 uCfgReserve;
655
656 /* Following the uCfgLen field there should be a 'uCfgLen' bytes
657 * containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
658} tHalCfg, *tpHalCfg;
659
660/*---------------------------------------------------------------------------
661 WLAN_HAL_START_REQ
662---------------------------------------------------------------------------*/
663
664typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
665{
666 /* Drive Type - Production or FTM etc */
667 tDriverType driverType;
668
669 /*Length of the config buffer*/
670 tANI_U32 uConfigBufferLen;
671
Jeff Johnson32d95a32012-09-10 13:15:23 -0700672 /* Following this there is a TLV formatted buffer of length
673 * "uConfigBufferLen" bytes containing all config values.
Jeff Johnson295189b2012-06-20 16:38:30 -0700674 * The TLV is expected to be formatted like this:
675 * 0 15 31 31+CFG_LEN-1 length-1
676 * | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
677 */
678} tHalMacStartParameters, *tpHalMacStartParameters;
679
680typedef PACKED_PRE struct PACKED_POST
681{
682 /* Note: The length specified in tHalMacStartReqMsg messages should be
683 * header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
684 tHalMsgHeader header;
685 tHalMacStartParameters startReqParams;
686} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
687
688/*---------------------------------------------------------------------------
689 WLAN_HAL_START_RSP
690---------------------------------------------------------------------------*/
691
692typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
693{
694 /*success or failure */
695 tANI_U16 status;
696
697 /*Max number of STA supported by the device*/
698 tANI_U8 ucMaxStations;
699
700 /*Max number of BSS supported by the device*/
701 tANI_U8 ucMaxBssids;
702
703 /*API Version */
704 tWcnssWlanVersion wcnssWlanVersion;
705
706 /*CRM build information */
707 tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
708
709 /*hardware/chipset/misc version information */
710 tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
711
712} tHalMacStartRspParams, *tpHalMacStartRspParams;
713
714typedef PACKED_PRE struct PACKED_POST
715{
716 tHalMsgHeader header;
717 tHalMacStartRspParams startRspParams;
718} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
719
720/*---------------------------------------------------------------------------
721 WLAN_HAL_STOP_REQ
722---------------------------------------------------------------------------*/
723
724typedef PACKED_PRE struct PACKED_POST
725{
726 /*The reason for which the device is being stopped*/
727 tHalStopType reason;
728
729}tHalMacStopReqParams, *tpHalMacStopReqParams;
730
731typedef PACKED_PRE struct PACKED_POST
732{
733 tHalMsgHeader header;
734 tHalMacStopReqParams stopReqParams;
735} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
736
737/*---------------------------------------------------------------------------
738 WLAN_HAL_STOP_RSP
739---------------------------------------------------------------------------*/
740
741typedef PACKED_PRE struct PACKED_POST
742{
743 /*success or failure */
744 tANI_U32 status;
745
746}tHalMacStopRspParams, *tpHalMacStopRspParams;
747
748typedef PACKED_PRE struct PACKED_POST
749{
750 tHalMsgHeader header;
751 tHalMacStopRspParams stopRspParams;
752} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
753
754/*---------------------------------------------------------------------------
755 WLAN_HAL_UPDATE_CFG_REQ
756---------------------------------------------------------------------------*/
757
758typedef PACKED_PRE struct PACKED_POST
759{
760 /* Length of the config buffer. Allows UMAC to update multiple CFGs */
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} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
770
771typedef PACKED_PRE struct PACKED_POST
772{
773 /* Note: The length specified in tHalUpdateCfgReqMsg messages should be
774 * header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
775 tHalMsgHeader header;
776 tHalUpdateCfgReqParams updateCfgReqParams;
777} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
778
779/*---------------------------------------------------------------------------
780 WLAN_HAL_UPDATE_CFG_RSP
781---------------------------------------------------------------------------*/
782
783typedef PACKED_PRE struct PACKED_POST
784{
785 /* success or failure */
786 tANI_U32 status;
787
788}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
789
790typedef PACKED_PRE struct PACKED_POST
791{
792 tHalMsgHeader header;
793 tHalUpdateCfgRspParams updateCfgRspParams;
794} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
795
796/*---------------------------------------------------------------------------
797 WLAN_HAL_INIT_SCAN_REQ
798---------------------------------------------------------------------------*/
799
800/// Frame control field format (2 bytes)
801typedef __ani_attr_pre_packed struct sSirMacFrameCtl
802{
803
804#ifndef ANI_LITTLE_BIT_ENDIAN
805
806 tANI_U8 subType :4;
807 tANI_U8 type :2;
808 tANI_U8 protVer :2;
809
810 tANI_U8 order :1;
811 tANI_U8 wep :1;
812 tANI_U8 moreData :1;
813 tANI_U8 powerMgmt :1;
814 tANI_U8 retry :1;
815 tANI_U8 moreFrag :1;
816 tANI_U8 fromDS :1;
817 tANI_U8 toDS :1;
818
819#else
820
821 tANI_U8 protVer :2;
822 tANI_U8 type :2;
823 tANI_U8 subType :4;
824
825 tANI_U8 toDS :1;
826 tANI_U8 fromDS :1;
827 tANI_U8 moreFrag :1;
828 tANI_U8 retry :1;
829 tANI_U8 powerMgmt :1;
830 tANI_U8 moreData :1;
831 tANI_U8 wep :1;
832 tANI_U8 order :1;
833
834#endif
835
836} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
837
838/// Sequence control field
839typedef __ani_attr_pre_packed struct sSirMacSeqCtl
840{
841 tANI_U8 fragNum : 4;
842 tANI_U8 seqNumLo : 4;
843 tANI_U8 seqNumHi : 8;
844} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
845
846/// Management header format
847typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
848{
849 tSirMacFrameCtl fc;
850 tANI_U8 durationLo;
851 tANI_U8 durationHi;
852 tANI_U8 da[6];
853 tANI_U8 sa[6];
854 tANI_U8 bssId[6];
855 tSirMacSeqCtl seqControl;
856} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
857
858/// Scan Entry to hold active BSS idx's
859typedef __ani_attr_pre_packed struct sSirScanEntry
860{
861 tANI_U8 bssIdx[HAL_NUM_BSSID];
862 tANI_U8 activeBSScnt;
863}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
864
865typedef PACKED_PRE struct PACKED_POST {
866
867 /*LEARN - AP Role
868 SCAN - STA Role*/
869 eHalSysMode scanMode;
870
871 /*BSSID of the BSS*/
872 tSirMacAddr bssid;
873
874 /*Whether BSS needs to be notified*/
875 tANI_U8 notifyBss;
876
877 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
878 CTS to Self). Must always be a valid frame type.*/
879 tANI_U8 frameType;
880
881 /*UMAC has the option of passing the MAC frame to be used for notifying
882 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
883 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
884 frameType.*/
885 tANI_U8 frameLength;
886
Jeff Johnson32d95a32012-09-10 13:15:23 -0700887 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700888 is non-zero. */
889 tSirMacMgmtHdr macMgmtHdr;
890
891 /*Entry to hold number of active BSS idx's*/
892 tSirScanEntry scanEntry;
893
894} tInitScanParams, * tpInitScanParams;
895
896typedef PACKED_PRE struct PACKED_POST
897{
898 tHalMsgHeader header;
899 tInitScanParams initScanParams;
900} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
901
902typedef PACKED_PRE struct PACKED_POST {
903
904 /*LEARN - AP Role
905 SCAN - STA Role*/
906 eHalSysMode scanMode;
907
908 /*BSSID of the BSS*/
909 tSirMacAddr bssid;
910
911 /*Whether BSS needs to be notified*/
912 tANI_U8 notifyBss;
913
914 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
915 CTS to Self). Must always be a valid frame type.*/
916 tANI_U8 frameType;
917
918 /*UMAC has the option of passing the MAC frame to be used for notifying
919 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
920 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
921 frameType.*/
922 tANI_U8 frameLength;
923
Jeff Johnson32d95a32012-09-10 13:15:23 -0700924 /* Following the framelength there is a MAC frame buffer if frameLength
Jeff Johnson295189b2012-06-20 16:38:30 -0700925 is non-zero. */
926 tSirMacMgmtHdr macMgmtHdr;
927
928 /*Entry to hold number of active BSS idx's*/
929 tSirScanEntry scanEntry;
930
931 /* Single NoA usage in Scanning */
932 tANI_U8 useNoA;
933
934 /* Indicates the scan duration (in ms) */
935 tANI_U16 scanDuration;
936
937} tInitScanConParams, * tpInitScanConParams;
938
939typedef PACKED_PRE struct PACKED_POST
940{
941 tHalMsgHeader header;
942 tInitScanConParams initScanParams;
943} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
944
945
946/*---------------------------------------------------------------------------
947 WLAN_HAL_INIT_SCAN_RSP
948---------------------------------------------------------------------------*/
949
950typedef PACKED_PRE struct PACKED_POST
951{
952 /*success or failure */
953 tANI_U32 status;
954
955}tHalInitScanRspParams, *tpHalInitScanRspParams;
956
957typedef PACKED_PRE struct PACKED_POST
958{
959 tHalMsgHeader header;
960 tHalInitScanRspParams initScanRspParams;
961} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
962
963/*---------------------------------------------------------------------------
964 WLAN_HAL_START_SCAN_REQ
965---------------------------------------------------------------------------*/
966
Jeff Johnson32d95a32012-09-10 13:15:23 -0700967typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -0700968{
969 /*Indicates the channel to scan*/
970 tANI_U8 scanChannel;
971
972 } tStartScanParams, * tpStartScanParams;
973
974typedef PACKED_PRE struct PACKED_POST
975{
976 tHalMsgHeader header;
977 tStartScanParams startScanParams;
978} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
979
980/*---------------------------------------------------------------------------
981 WLAN_HAL_START_SCAN_RSP
982---------------------------------------------------------------------------*/
983
984typedef PACKED_PRE struct PACKED_POST
985{
986 /*success or failure */
987 tANI_U32 status;
988
989 tANI_U32 startTSF[2];
990 tPowerdBm txMgmtPower;
991
992}tHalStartScanRspParams, *tpHalStartScanRspParams;
993
994typedef PACKED_PRE struct PACKED_POST
995{
996 tHalMsgHeader header;
997 tHalStartScanRspParams startScanRspParams;
998} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
999
1000/*---------------------------------------------------------------------------
1001 WLAN_HAL_END_SCAN_REQ
1002---------------------------------------------------------------------------*/
1003
1004typedef PACKED_PRE struct PACKED_POST
1005{
1006 /*Indicates the channel to stop scanning. Not used really. But retained
1007 for symmetry with "start Scan" message. It can also help in error
1008 check if needed.*/
1009 tANI_U8 scanChannel;
1010
1011} tEndScanParams, *tpEndScanParams;
1012
1013typedef PACKED_PRE struct PACKED_POST
1014{
1015 tHalMsgHeader header;
1016 tEndScanParams endScanParams;
1017} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
1018
1019/*---------------------------------------------------------------------------
1020 WLAN_HAL_END_SCAN_RSP
1021---------------------------------------------------------------------------*/
1022
1023typedef PACKED_PRE struct PACKED_POST
1024{
1025 /*success or failure */
1026 tANI_U32 status;
1027
1028}tHalEndScanRspParams, *tpHalEndScanRspParams;
1029
1030typedef PACKED_PRE struct PACKED_POST
1031{
1032 tHalMsgHeader header;
1033 tHalEndScanRspParams endScanRspParams;
1034} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
1035
1036/*---------------------------------------------------------------------------
1037 WLAN_HAL_FINISH_SCAN_REQ
1038---------------------------------------------------------------------------*/
1039
1040typedef PACKED_PRE struct PACKED_POST
1041{
1042 /* Identifies the operational state of the AP/STA
1043 * LEARN - AP Role SCAN - STA Role */
1044 eHalSysMode scanMode;
1045
1046 /*Operating channel to tune to.*/
1047 tANI_U8 currentOperChannel;
1048
1049 /*Channel Bonding state If 20/40 MHz is operational, this will indicate the
1050 40 MHz extension channel in combination with the control channel*/
1051 ePhyChanBondState cbState;
1052
1053 /*BSSID of the BSS*/
1054 tSirMacAddr bssid;
1055
1056 /*Whether BSS needs to be notified*/
1057 tANI_U8 notifyBss;
1058
1059 /*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
1060 CTS to Self). Must always be a valid frame type.*/
1061 tANI_U8 frameType;
1062
1063 /*UMAC has the option of passing the MAC frame to be used for notifying
1064 the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
1065 macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
1066 frameType.*/
1067 tANI_U8 frameLength;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001068
1069 /*Following the framelength there is a MAC frame buffer if frameLength
1070 is non-zero.*/
Jeff Johnson295189b2012-06-20 16:38:30 -07001071 tSirMacMgmtHdr macMgmtHdr;
1072
1073 /*Entry to hold number of active BSS idx's*/
1074 tSirScanEntry scanEntry;
1075
1076} tFinishScanParams, *tpFinishScanParams;
1077
1078typedef PACKED_PRE struct PACKED_POST
1079{
1080 tHalMsgHeader header;
1081 tFinishScanParams finishScanParams;
1082} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
1083
1084/*---------------------------------------------------------------------------
1085 WLAN_HAL_FINISH_SCAN_RSP
1086---------------------------------------------------------------------------*/
1087
1088typedef PACKED_PRE struct PACKED_POST
1089{
1090 /*success or failure */
1091 tANI_U32 status;
1092
1093}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
1094
1095typedef PACKED_PRE struct PACKED_POST
1096{
1097 tHalMsgHeader header;
1098 tHalFinishScanRspParams finishScanRspParams;
1099} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
1100
1101/*---------------------------------------------------------------------------
1102 WLAN_HAL_CONFIG_STA_REQ
1103---------------------------------------------------------------------------*/
1104
1105typedef PACKED_PRE struct PACKED_POST {
1106 /*
1107 * For Self STA Entry: this represents Self Mode.
1108 * For Peer Stations, this represents the mode of the peer.
1109 * On Station:
1110 * --this mode is updated when PE adds the Self Entry.
1111 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1112 * ON AP:
1113 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1114 * to indicate the self mode of the AP.
1115 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1116 */
1117
1118 tStaRateMode opRateMode;
1119 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1120 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1121 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1122 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1123 tANI_U16 reserved;
1124
1125 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1126 //First 26 bits are reserved for those Titan rates and
1127 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1128 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1129
1130 /*
1131 * 0-76 bits used, remaining reserved
1132 * bits 0-15 and 32 should be set.
1133 */
1134 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1135
1136 /*
1137 * RX Highest Supported Data Rate defines the highest data
1138 * rate that the STA is able to receive, in unites of 1Mbps.
1139 * This value is derived from "Supported MCS Set field" inside
1140 * the HT capability element.
1141 */
1142 tANI_U16 rxHighestDataRate;
1143
1144} tSirSupportedRates, *tpSirSupportedRates;
1145
1146typedef PACKED_PRE struct PACKED_POST
1147{
1148 /*BSSID of STA*/
1149 tSirMacAddr bssId;
1150
1151 /*ASSOC ID, as assigned by UMAC*/
1152 tANI_U16 assocId;
1153
1154 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1155 tANI_U8 staType;
1156
1157 /*Short Preamble Supported.*/
1158 tANI_U8 shortPreambleSupported;
1159
1160 /*MAC Address of STA*/
1161 tSirMacAddr staMac;
1162
1163 /*Listen interval of the STA*/
1164 tANI_U16 listenInterval;
1165
1166 /*Support for 11e/WMM*/
1167 tANI_U8 wmmEnabled;
1168
1169 /*11n HT capable STA*/
1170 tANI_U8 htCapable;
1171
1172 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1173 tANI_U8 txChannelWidthSet;
1174
1175 /*RIFS mode 0 - NA, 1 - Allowed */
1176 tANI_U8 rifsMode;
1177
Jeff Johnson32d95a32012-09-10 13:15:23 -07001178 /*L-SIG TXOP Protection mechanism
Jeff Johnson295189b2012-06-20 16:38:30 -07001179 0 - No Support, 1 - Supported
1180 SG - there is global field */
1181 tANI_U8 lsigTxopProtection;
1182
1183 /*Max Ampdu Size supported by STA. TPE programming.
1184 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1185 tANI_U8 maxAmpduSize;
1186
1187 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1188 tANI_U8 maxAmpduDensity;
1189
1190 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1191 tANI_U8 maxAmsduSize;
1192
1193 /*Short GI support for 40Mhz packets*/
1194 tANI_U8 fShortGI40Mhz;
1195
1196 /*Short GI support for 20Mhz packets*/
1197 tANI_U8 fShortGI20Mhz;
1198
Jeff Johnson295189b2012-06-20 16:38:30 -07001199 /*Robust Management Frame (RMF) enabled/disabled*/
1200 tANI_U8 rmfEnabled;
1201
1202 /* The unicast encryption type in the association */
1203 tANI_U32 encryptType;
Jeff Johnsone7245742012-09-05 17:12:55 -07001204
1205 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnson295189b2012-06-20 16:38:30 -07001206 will set this flag in case of RE-ASSOC, where we want to reuse the old
1207 STA ID. 0 = Add, 1 = Update*/
1208 tANI_U8 action;
1209
1210 /*U-APSD Flags: 1b per AC. Encoded as follows:
1211 b7 b6 b5 b4 b3 b2 b1 b0 =
1212 X X X X BE BK VI VO */
1213 tANI_U8 uAPSD;
1214
1215 /*Max SP Length*/
1216 tANI_U8 maxSPLen;
1217
1218 /*11n Green Field preamble support
1219 0 - Not supported, 1 - Supported */
1220 tANI_U8 greenFieldCapable;
1221
1222 /*MIMO Power Save mode*/
1223 tSirMacHTMIMOPowerSaveState mimoPS;
1224
1225 /*Delayed BA Support*/
1226 tANI_U8 delayedBASupport;
Jeff Johnsone7245742012-09-05 17:12:55 -07001227
Jeff Johnson295189b2012-06-20 16:38:30 -07001228 /*Max AMPDU duration in 32us*/
1229 tANI_U8 us32MaxAmpduDuration;
Jeff Johnsone7245742012-09-05 17:12:55 -07001230
Jeff Johnson295189b2012-06-20 16:38:30 -07001231 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1232 it to 0 if AP does not support it. This indication is sent to HAL and
1233 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1234 tANI_U8 fDsssCckMode40Mhz;
1235
1236 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1237 Retained for backward compalibity with existing HAL code*/
1238 tANI_U8 staIdx;
1239
1240 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1241 Retained for backward compalibity with existing HAL code*/
1242 tANI_U8 bssIdx;
1243
1244 tANI_U8 p2pCapableSta;
1245
Jeff Johnsone7245742012-09-05 17:12:55 -07001246 /*Reserved to align next field on a dword boundary*/
1247 tANI_U8 reserved;
1248
1249 /*These rates are the intersection of peer and self capabilities.*/
1250 tSirSupportedRates supportedRates;
1251
Jeff Johnson295189b2012-06-20 16:38:30 -07001252} tConfigStaParams, *tpConfigStaParams;
1253
Jeff Johnsone7245742012-09-05 17:12:55 -07001254/*------------------------------------------------------------------------
1255 * WLAN_HAL_CONFIG_STA_REQ
1256 * ----------------------------------------------------------------------*/
1257
1258typedef PACKED_PRE struct PACKED_POST {
1259 /*
1260 * For Self STA Entry: this represents Self Mode.
1261 * For Peer Stations, this represents the mode of the peer.
1262 * On Station:
1263 * --this mode is updated when PE adds the Self Entry.
1264 * -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
1265 * ON AP:
1266 * -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
1267 * to indicate the self mode of the AP.
1268 * -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
1269 */
1270
1271 tStaRateMode opRateMode;
1272 // 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
1273 tANI_U16 llbRates[SIR_NUM_11B_RATES];
1274 tANI_U16 llaRates[SIR_NUM_11A_RATES];
1275 tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
1276 tANI_U16 reserved;
1277
1278 //Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
1279 //First 26 bits are reserved for those Titan rates and
1280 //the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
1281 tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
1282
1283 /*
1284 * 0-76 bits used, remaining reserved
1285 * bits 0-15 and 32 should be set.
1286 */
1287 tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
1288
1289 /*
1290 * RX Highest Supported Data Rate defines the highest data
1291 * rate that the STA is able to receive, in unites of 1Mbps.
1292 * This value is derived from "Supported MCS Set field" inside
1293 * the HT capability element.
1294 */
1295 tANI_U16 rxHighestDataRate;
1296
1297 /* Indicates the Maximum MCS that can be received for each number
1298 * of spacial streams */
1299 tANI_U16 vhtRxMCSMap;
1300
1301 /*Indicate the highest VHT data rate that the STA is able to receive*/
1302 tANI_U16 vhtRxHighestDataRate;
1303
1304 /* Indicates the Maximum MCS that can be transmitted for each number
1305 * of spacial streams */
1306 tANI_U16 vhtTxMCSMap;
1307
1308 /*Indicate the highest VHT data rate that the STA is able to transmit*/
1309 tANI_U16 vhtTxHighestDataRate;
1310
1311} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
1312
1313typedef PACKED_PRE struct PACKED_POST
1314{
1315 /*BSSID of STA*/
1316 tSirMacAddr bssId;
1317
1318 /*ASSOC ID, as assigned by UMAC*/
1319 tANI_U16 assocId;
1320
1321 /* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
1322 tANI_U8 staType;
1323
1324 /*Short Preamble Supported.*/
1325 tANI_U8 shortPreambleSupported;
1326
1327 /*MAC Address of STA*/
1328 tSirMacAddr staMac;
1329
1330 /*Listen interval of the STA*/
1331 tANI_U16 listenInterval;
1332
1333 /*Support for 11e/WMM*/
1334 tANI_U8 wmmEnabled;
1335
1336 /*11n HT capable STA*/
1337 tANI_U8 htCapable;
1338
1339 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1340 tANI_U8 txChannelWidthSet;
1341
1342 /*RIFS mode 0 - NA, 1 - Allowed */
1343 tANI_U8 rifsMode;
1344
1345 /*L-SIG TXOP Protection mechanism
1346 0 - No Support, 1 - Supported
1347 SG - there is global field */
1348 tANI_U8 lsigTxopProtection;
1349
1350 /*Max Ampdu Size supported by STA. TPE programming.
1351 0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
1352 tANI_U8 maxAmpduSize;
1353
1354 /*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
1355 tANI_U8 maxAmpduDensity;
1356
1357 /*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
1358 tANI_U8 maxAmsduSize;
1359
1360 /*Short GI support for 40Mhz packets*/
1361 tANI_U8 fShortGI40Mhz;
1362
1363 /*Short GI support for 20Mhz packets*/
1364 tANI_U8 fShortGI20Mhz;
1365
1366 /*Robust Management Frame (RMF) enabled/disabled*/
1367 tANI_U8 rmfEnabled;
1368
1369 /* The unicast encryption type in the association */
1370 tANI_U32 encryptType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001371
1372 /*HAL should update the existing STA entry, if this flag is set. UMAC
Jeff Johnsone7245742012-09-05 17:12:55 -07001373 will set this flag in case of RE-ASSOC, where we want to reuse the old
1374 STA ID. 0 = Add, 1 = Update*/
1375 tANI_U8 action;
1376
1377 /*U-APSD Flags: 1b per AC. Encoded as follows:
1378 b7 b6 b5 b4 b3 b2 b1 b0 =
1379 X X X X BE BK VI VO */
1380 tANI_U8 uAPSD;
1381
1382 /*Max SP Length*/
1383 tANI_U8 maxSPLen;
1384
1385 /*11n Green Field preamble support
1386 0 - Not supported, 1 - Supported */
1387 tANI_U8 greenFieldCapable;
1388
1389 /*MIMO Power Save mode*/
1390 tSirMacHTMIMOPowerSaveState mimoPS;
1391
1392 /*Delayed BA Support*/
1393 tANI_U8 delayedBASupport;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001394
Jeff Johnsone7245742012-09-05 17:12:55 -07001395 /*Max AMPDU duration in 32us*/
1396 tANI_U8 us32MaxAmpduDuration;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001397
Jeff Johnsone7245742012-09-05 17:12:55 -07001398 /*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
1399 it to 0 if AP does not support it. This indication is sent to HAL and
1400 HAL uses this flag to pickup up appropriate 40Mhz rates.*/
1401 tANI_U8 fDsssCckMode40Mhz;
1402
1403 /* Valid STA Idx when action=Update. Set to 0xFF when invalid!
1404 Retained for backward compalibity with existing HAL code*/
1405 tANI_U8 staIdx;
1406
1407 /* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
1408 Retained for backward compalibity with existing HAL code*/
1409 tANI_U8 bssIdx;
1410
1411 tANI_U8 p2pCapableSta;
1412
1413 /*Reserved to align next field on a dword boundary*/
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001414 tANI_U8 htLdpcEnabled:1;
1415 tANI_U8 vhtLdpcEnabled:1;
1416 tANI_U8 reserved:6;
1417
1418 /*These rates are the intersection of peer and self capabilities.*/
Jeff Johnsone7245742012-09-05 17:12:55 -07001419 tSirSupportedRates_V1 supportedRates;
1420
1421 tANI_U8 vhtCapable;
1422 tANI_U8 vhtTxChannelWidthSet;
Gopichand Nakkalab2d2c312013-01-04 11:41:02 -08001423
Jeff Johnsone7245742012-09-05 17:12:55 -07001424} tConfigStaParams_V1, *tpConfigStaParams_V1;
1425
Jeff Johnson295189b2012-06-20 16:38:30 -07001426typedef PACKED_PRE struct PACKED_POST
1427{
1428 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001429 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001430 tConfigStaParams configStaParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001431 tConfigStaParams_V1 configStaParams_V1;
1432 } uStaParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001433} tConfigStaReqMsg, *tpConfigStaReqMsg;
1434
1435/*---------------------------------------------------------------------------
1436 WLAN_HAL_CONFIG_STA_RSP
1437---------------------------------------------------------------------------*/
1438
1439typedef PACKED_PRE struct PACKED_POST
1440{
1441 /*success or failure */
1442 tANI_U32 status;
1443
1444 /* Station index; valid only when 'status' field value SUCCESS */
1445 tANI_U8 staIdx;
1446
1447 /* BSSID Index of BSS to which the station is associated */
1448 tANI_U8 bssIdx;
1449
1450 /* DPU Index for PTK */
1451 tANI_U8 dpuIndex;
1452
Jeff Johnson32d95a32012-09-10 13:15:23 -07001453 /* DPU Index for GTK */
Jeff Johnson295189b2012-06-20 16:38:30 -07001454 tANI_U8 bcastDpuIndex;
1455
1456 /*DPU Index for IGTK */
1457 tANI_U8 bcastMgmtDpuIdx;
1458
1459 /*PTK DPU signature*/
1460 tANI_U8 ucUcastSig;
1461
1462 /*GTK DPU isignature*/
1463 tANI_U8 ucBcastSig;
1464
1465 /* IGTK DPU signature*/
1466 tANI_U8 ucMgmtSig;
1467
1468 tANI_U8 p2pCapableSta;
1469
1470}tConfigStaRspParams, *tpConfigStaRspParams;
1471
1472typedef PACKED_PRE struct PACKED_POST
1473{
1474 tHalMsgHeader header;
1475 tConfigStaRspParams configStaRspParams;
1476}tConfigStaRspMsg, *tpConfigStaRspMsg;
1477
1478/*---------------------------------------------------------------------------
1479 WLAN_HAL_DELETE_STA_REQ
1480---------------------------------------------------------------------------*/
1481
1482/* Delete STA Request params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001483typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001484{
1485 /* Index of STA to delete */
1486 tANI_U8 staIdx;
1487} tDeleteStaParams, *tpDeleteStaParams;
1488
1489/* Delete STA Request message*/
1490typedef PACKED_PRE struct PACKED_POST
1491{
1492 tHalMsgHeader header;
1493 tDeleteStaParams delStaParams;
1494} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
1495
1496/*---------------------------------------------------------------------------
1497 WLAN_HAL_DELETE_STA_RSP
1498---------------------------------------------------------------------------*/
1499
1500/* Delete STA Response Params */
Jeff Johnson32d95a32012-09-10 13:15:23 -07001501typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07001502{
1503 /*success or failure */
1504 tANI_U32 status;
1505
1506 /* Index of STA deleted */
1507 tANI_U8 staId;
1508} tDeleteStaRspParams, *tpDeleteStaRspParams;
1509
1510/* Delete STA Response message*/
1511typedef PACKED_PRE struct PACKED_POST
1512{
1513 tHalMsgHeader header;
1514 tDeleteStaRspParams delStaRspParams;
1515} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
1516
1517/*---------------------------------------------------------------------------
1518 WLAN_HAL_CONFIG_BSS_REQ
1519---------------------------------------------------------------------------*/
1520
1521//12 Bytes long because this structure can be used to represent rate
1522//and extended rate set IEs. The parser assume this to be at least 12
1523typedef __ani_attr_pre_packed struct sSirMacRateSet
1524{
1525 tANI_U8 numRates;
1526 tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
1527} __ani_attr_packed tSirMacRateSet;
1528
1529// access category record
1530typedef __ani_attr_pre_packed struct sSirMacAciAifsn
1531{
1532#ifndef ANI_LITTLE_BIT_ENDIAN
1533 tANI_U8 rsvd : 1;
1534 tANI_U8 aci : 2;
1535 tANI_U8 acm : 1;
1536 tANI_U8 aifsn : 4;
1537#else
1538 tANI_U8 aifsn : 4;
1539 tANI_U8 acm : 1;
1540 tANI_U8 aci : 2;
1541 tANI_U8 rsvd : 1;
1542#endif
1543} __ani_attr_packed tSirMacAciAifsn;
1544
1545// contention window size
1546typedef __ani_attr_pre_packed struct sSirMacCW
1547{
1548#ifndef ANI_LITTLE_BIT_ENDIAN
1549 tANI_U8 max : 4;
1550 tANI_U8 min : 4;
1551#else
1552 tANI_U8 min : 4;
1553 tANI_U8 max : 4;
1554#endif
1555} __ani_attr_packed tSirMacCW;
1556
1557typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
1558{
1559 tSirMacAciAifsn aci;
1560 tSirMacCW cw;
1561 tANI_U16 txoplimit;
1562} __ani_attr_packed tSirMacEdcaParamRecord;
1563
1564typedef __ani_attr_pre_packed struct sSirMacSSid
1565{
1566 tANI_U8 length;
1567 tANI_U8 ssId[32];
1568} __ani_attr_packed tSirMacSSid;
1569
1570// Concurrency role. These are generic IDs that identify the various roles
1571// in the software system.
1572typedef enum {
Jeff Johnson32d95a32012-09-10 13:15:23 -07001573 HAL_STA_MODE=0,
1574 HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
Jeff Johnson295189b2012-06-20 16:38:30 -07001575 HAL_P2P_CLIENT_MODE,
1576 HAL_P2P_GO_MODE,
1577 HAL_MONITOR_MODE,
1578} tHalConMode;
1579
1580//This is a bit pattern to be set for each mode
1581//bit 0 - sta mode
1582//bit 1 - ap mode
1583//bit 2 - p2p client mode
1584//bit 3 - p2p go mode
1585typedef enum
1586{
Jeff Johnson32d95a32012-09-10 13:15:23 -07001587 HAL_STA=1,
Jeff Johnson295189b2012-06-20 16:38:30 -07001588 HAL_SAP=2,
1589 HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
1590 HAL_P2P_CLIENT=4,
1591 HAL_P2P_GO=8,
1592 HAL_MAX_CONCURRENCY_PERSONA=4
1593} tHalConcurrencyMode;
1594
1595typedef PACKED_PRE struct PACKED_POST
1596{
1597 /* BSSID */
1598 tSirMacAddr bssId;
1599
Jeff Johnson295189b2012-06-20 16:38:30 -07001600 /* Self Mac Address */
1601 tSirMacAddr selfMacAddr;
Jeff Johnson295189b2012-06-20 16:38:30 -07001602
1603 /* BSS type */
1604 tSirBssType bssType;
1605
1606 /*Operational Mode: AP =0, STA = 1*/
1607 tANI_U8 operMode;
1608
1609 /*Network Type*/
1610 tSirNwType nwType;
1611
1612 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1613 tANI_U8 shortSlotTimeSupported;
1614
1615 /*Co-exist with 11a STA*/
1616 tANI_U8 llaCoexist;
1617
1618 /*Co-exist with 11b STA*/
1619 tANI_U8 llbCoexist;
1620
1621 /*Co-exist with 11g STA*/
1622 tANI_U8 llgCoexist;
1623
1624 /*Coexistence with 11n STA*/
1625 tANI_U8 ht20Coexist;
1626
1627 /*Non GF coexist flag*/
1628 tANI_U8 llnNonGFCoexist;
1629
1630 /*TXOP protection support*/
1631 tANI_U8 fLsigTXOPProtectionFullSupport;
1632
1633 /*RIFS mode*/
1634 tANI_U8 fRIFSMode;
1635
1636 /*Beacon Interval in TU*/
1637 tSirMacBeaconInterval beaconInterval;
1638
1639 /*DTIM period*/
1640 tANI_U8 dtimPeriod;
1641
1642 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1643 tANI_U8 txChannelWidthSet;
1644
1645 /*Operating channel*/
1646 tANI_U8 currentOperChannel;
1647
1648 /*Extension channel for channel bonding*/
1649 tANI_U8 currentExtChannel;
1650
1651 /*Reserved to align next field on a dword boundary*/
1652 tANI_U8 reserved;
1653
Jeff Johnsone7245742012-09-05 17:12:55 -07001654 /*SSID of the BSS*/
1655 tSirMacSSid ssId;
1656
1657 /*HAL should update the existing BSS entry, if this flag is set.
1658 UMAC will set this flag in case of reassoc, where we want to resue the
1659 the old BSSID and still return success 0 = Add, 1 = Update*/
1660 tANI_U8 action;
1661
1662 /* MAC Rate Set */
1663 tSirMacRateSet rateSet;
1664
1665 /*Enable/Disable HT capabilities of the BSS*/
1666 tANI_U8 htCapable;
1667
1668 // Enable/Disable OBSS protection
1669 tANI_U8 obssProtEnabled;
1670
1671 /*RMF enabled/disabled*/
1672 tANI_U8 rmfEnabled;
1673
1674 /*HT Operating Mode operating mode of the 802.11n STA*/
1675 tSirMacHTOperatingMode htOperMode;
1676
1677 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1678 tANI_U8 dualCTSProtection;
1679
1680 /* Probe Response Max retries */
1681 tANI_U8 ucMaxProbeRespRetryLimit;
1682
1683 /* To Enable Hidden ssid */
1684 tANI_U8 bHiddenSSIDEn;
1685
1686 /* To Enable Disable FW Proxy Probe Resp */
1687 tANI_U8 bProxyProbeRespEn;
1688
1689 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1690 EDCA params or might not desire to apply EDCA params during config BSS.
1691 0 implies Not Valid ; Non-Zero implies valid*/
1692 tANI_U8 edcaParamsValid;
1693
1694 /*EDCA Parameters for Best Effort Access Category*/
1695 tSirMacEdcaParamRecord acbe;
1696
1697 /*EDCA Parameters forBackground Access Category*/
1698 tSirMacEdcaParamRecord acbk;
1699
1700 /*EDCA Parameters for Video Access Category*/
1701 tSirMacEdcaParamRecord acvi;
1702
1703 /*EDCA Parameters for Voice Access Category*/
1704 tSirMacEdcaParamRecord acvo;
1705
1706#ifdef WLAN_FEATURE_VOWIFI_11R
1707 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1708 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1709#endif
1710
1711 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
1712 tANI_U8 halPersona;
1713
1714 tANI_U8 bSpectrumMgtEnable;
1715
1716 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1717 tANI_S8 txMgmtPower;
1718 /*maxTxPower has max power to be used after applying the power constraint if any */
1719 tANI_S8 maxTxPower;
Jeff Johnson295189b2012-06-20 16:38:30 -07001720 /*Context of the station being added in HW
1721 Add a STA entry for "itself" -
1722 On AP - Add the AP itself in an "STA context"
1723 On STA - Add the AP to which this STA is joining in an "STA context" */
1724 tConfigStaParams staContext;
Jeff Johnsone7245742012-09-05 17:12:55 -07001725} tConfigBssParams, * tpConfigBssParams;
1726
1727
1728/*--------------------------------------------------------------------------
1729 * WLAN_HAL_CONFIG_BSS_REQ
1730 *--------------------------------------------------------------------------*/
1731typedef PACKED_PRE struct PACKED_POST
1732{
1733 /* BSSID */
1734 tSirMacAddr bssId;
1735
Jeff Johnsone7245742012-09-05 17:12:55 -07001736 /* Self Mac Address */
1737 tSirMacAddr selfMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07001738
1739 /* BSS type */
1740 tSirBssType bssType;
1741
1742 /*Operational Mode: AP =0, STA = 1*/
1743 tANI_U8 operMode;
1744
1745 /*Network Type*/
1746 tSirNwType nwType;
1747
1748 /*Used to classify PURE_11G/11G_MIXED to program MTU*/
1749 tANI_U8 shortSlotTimeSupported;
1750
1751 /*Co-exist with 11a STA*/
1752 tANI_U8 llaCoexist;
1753
1754 /*Co-exist with 11b STA*/
1755 tANI_U8 llbCoexist;
1756
1757 /*Co-exist with 11g STA*/
1758 tANI_U8 llgCoexist;
1759
1760 /*Coexistence with 11n STA*/
1761 tANI_U8 ht20Coexist;
1762
1763 /*Non GF coexist flag*/
1764 tANI_U8 llnNonGFCoexist;
1765
1766 /*TXOP protection support*/
1767 tANI_U8 fLsigTXOPProtectionFullSupport;
1768 /*RIFS mode*/
1769 tANI_U8 fRIFSMode;
1770
1771 /*Beacon Interval in TU*/
1772 tSirMacBeaconInterval beaconInterval;
1773
1774 /*DTIM period*/
1775 tANI_U8 dtimPeriod;
1776
1777 /*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
1778 tANI_U8 txChannelWidthSet;
1779
1780 /*Operating channel*/
1781 tANI_U8 currentOperChannel;
1782
1783 /*Extension channel for channel bonding*/
1784 tANI_U8 currentExtChannel;
1785
1786 /*Reserved to align next field on a dword boundary*/
1787 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07001788
1789 /*SSID of the BSS*/
1790 tSirMacSSid ssId;
1791
1792 /*HAL should update the existing BSS entry, if this flag is set.
1793 UMAC will set this flag in case of reassoc, where we want to resue the
1794 the old BSSID and still return success 0 = Add, 1 = Update*/
1795 tANI_U8 action;
1796
1797 /* MAC Rate Set */
1798 tSirMacRateSet rateSet;
1799
1800 /*Enable/Disable HT capabilities of the BSS*/
1801 tANI_U8 htCapable;
1802
1803 // Enable/Disable OBSS protection
1804 tANI_U8 obssProtEnabled;
1805
1806 /*RMF enabled/disabled*/
1807 tANI_U8 rmfEnabled;
1808
1809 /*HT Operating Mode operating mode of the 802.11n STA*/
1810 tSirMacHTOperatingMode htOperMode;
1811
1812 /*Dual CTS Protection: 0 - Unused, 1 - Used*/
1813 tANI_U8 dualCTSProtection;
1814
1815 /* Probe Response Max retries */
1816 tANI_U8 ucMaxProbeRespRetryLimit;
1817
1818 /* To Enable Hidden ssid */
1819 tANI_U8 bHiddenSSIDEn;
1820
1821 /* To Enable Disable FW Proxy Probe Resp */
1822 tANI_U8 bProxyProbeRespEn;
1823
Jeff Johnson32d95a32012-09-10 13:15:23 -07001824 /* Boolean to indicate if EDCA params are valid. UMAC might not have valid
1825 EDCA params or might not desire to apply EDCA params during config BSS.
Jeff Johnson295189b2012-06-20 16:38:30 -07001826 0 implies Not Valid ; Non-Zero implies valid*/
1827 tANI_U8 edcaParamsValid;
1828
1829 /*EDCA Parameters for Best Effort Access Category*/
1830 tSirMacEdcaParamRecord acbe;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001831
Jeff Johnson295189b2012-06-20 16:38:30 -07001832 /*EDCA Parameters forBackground Access Category*/
1833 tSirMacEdcaParamRecord acbk;
1834
1835 /*EDCA Parameters for Video Access Category*/
1836 tSirMacEdcaParamRecord acvi;
1837
1838 /*EDCA Parameters for Voice Access Category*/
1839 tSirMacEdcaParamRecord acvo;
1840
1841#ifdef WLAN_FEATURE_VOWIFI_11R
1842 tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
1843 tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
1844#endif
1845
Jeff Johnson32d95a32012-09-10 13:15:23 -07001846 /* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
Jeff Johnson295189b2012-06-20 16:38:30 -07001847 tANI_U8 halPersona;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001848
Jeff Johnson295189b2012-06-20 16:38:30 -07001849 tANI_U8 bSpectrumMgtEnable;
1850
1851 /*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
1852 tANI_S8 txMgmtPower;
1853 /*maxTxPower has max power to be used after applying the power constraint if any */
1854 tANI_S8 maxTxPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07001855 /*Context of the station being added in HW
1856 Add a STA entry for "itself" -
1857 On AP - Add the AP itself in an "STA context"
1858 On STA - Add the AP to which this STA is joining in an "STA context" */
1859 tConfigStaParams_V1 staContext;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001860
Jeff Johnsone7245742012-09-05 17:12:55 -07001861 tANI_U8 vhtCapable;
1862 tANI_U8 vhtTxChannelWidthSet;
1863} tConfigBssParams_V1, * tpConfigBssParams_V1;
Jeff Johnson295189b2012-06-20 16:38:30 -07001864
1865typedef PACKED_PRE struct PACKED_POST
1866{
1867 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07001868 PACKED_PRE union PACKED_POST {
Jeff Johnson295189b2012-06-20 16:38:30 -07001869 tConfigBssParams configBssParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07001870 tConfigBssParams_V1 configBssParams_V1;
1871 }uBssParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07001872} tConfigBssReqMsg, *tpConfigBssReqMsg;
1873
1874/*---------------------------------------------------------------------------
1875 WLAN_HAL_CONFIG_BSS_RSP
1876---------------------------------------------------------------------------*/
1877
1878typedef PACKED_PRE struct PACKED_POST
1879{
1880 /* Success or Failure */
1881 tANI_U32 status;
1882
1883 /* BSS index allocated by HAL */
1884 tANI_U8 bssIdx;
1885
1886 /* DPU descriptor index for PTK */
1887 tANI_U8 dpuDescIndx;
1888
1889 /* PTK DPU signature */
1890 tANI_U8 ucastDpuSignature;
1891
1892 /* DPU descriptor index for GTK*/
1893 tANI_U8 bcastDpuDescIndx;
1894
1895 /* GTK DPU signature */
1896 tANI_U8 bcastDpuSignature;
1897
1898 /*DPU descriptor for IGTK*/
1899 tANI_U8 mgmtDpuDescIndx;
1900
1901 /* IGTK DPU signature */
1902 tANI_U8 mgmtDpuSignature;
1903
1904 /* Station Index for BSS entry*/
1905 tANI_U8 bssStaIdx;
1906
1907 /* Self station index for this BSS */
1908 tANI_U8 bssSelfStaIdx;
1909
1910 /* Bcast station for buffering bcast frames in AP role */
1911 tANI_U8 bssBcastStaIdx;
1912
1913 /*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
1914 tSirMacAddr staMac;
1915
1916 /*HAL fills in the tx power used for mgmt frames in this field. */
1917 tANI_S8 txMgmtPower;
1918
1919} tConfigBssRspParams, * tpConfigBssRspParams;
1920
1921typedef PACKED_PRE struct PACKED_POST
1922{
1923 tHalMsgHeader header;
1924 tConfigBssRspParams configBssRspParams;
1925} tConfigBssRspMsg, *tpConfigBssRspMsg;
1926
1927/*---------------------------------------------------------------------------
1928 WLAN_HAL_DELETE_BSS_REQ
1929---------------------------------------------------------------------------*/
1930
1931typedef PACKED_PRE struct PACKED_POST
1932{
1933 /* BSS index to be deleted */
1934 tANI_U8 bssIdx;
1935
1936} tDeleteBssParams, *tpDeleteBssParams;
1937
1938typedef PACKED_PRE struct PACKED_POST
1939{
1940 tHalMsgHeader header;
1941 tDeleteBssParams deleteBssParams;
1942} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
1943
1944/*---------------------------------------------------------------------------
1945 WLAN_HAL_DELETE_BSS_RSP
1946---------------------------------------------------------------------------*/
1947
1948typedef PACKED_PRE struct PACKED_POST
1949{
1950 /* Success or Failure */
1951 tANI_U32 status;
1952
1953 /* BSS index that has been deleted */
1954 tANI_U8 bssIdx;
1955
1956} tDeleteBssRspParams, *tpDeleteBssRspParams;
1957
1958typedef PACKED_PRE struct PACKED_POST
1959{
1960 tHalMsgHeader header;
1961 tDeleteBssRspParams deleteBssRspParams;
1962} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
1963
1964/*---------------------------------------------------------------------------
1965 WLAN_HAL_JOIN_REQ
1966---------------------------------------------------------------------------*/
1967
1968typedef PACKED_PRE struct PACKED_POST
1969{
1970 /*Indicates the BSSID to which STA is going to associate*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07001971 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07001972
1973 /*Indicates the channel to switch to.*/
1974 tANI_U8 ucChannel;
1975
1976 /* Self STA MAC */
1977 tSirMacAddr selfStaMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07001978
Jeff Johnson295189b2012-06-20 16:38:30 -07001979 /*Local power constraint*/
1980 tANI_U8 ucLocalPowerConstraint;
1981
1982 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07001983 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07001984
1985 /*link State*/
1986 tSirLinkState linkState;
1987
1988 /* Max TX power */
1989 tANI_S8 maxTxPower;
1990
1991} tHalJoinReqParams, *tpHalJoinReqParams;
1992
1993typedef PACKED_PRE struct PACKED_POST
1994{
1995 tHalMsgHeader header;
1996 tHalJoinReqParams joinReqParams;
1997} tHalJoinReqMsg, *tpHalJoinReqMsg;
1998
1999/*---------------------------------------------------------------------------
2000 WLAN_HAL_JOIN_RSP
2001---------------------------------------------------------------------------*/
2002
2003typedef PACKED_PRE struct PACKED_POST
2004{
2005 /*success or failure */
2006 tANI_U32 status;
2007
2008 /* HAL fills in the tx power used for mgmt frames in this field */
2009 tPowerdBm txMgmtPower;
2010
2011}tHalJoinRspParams, *tpHalJoinRspParams;
2012
2013typedef PACKED_PRE struct PACKED_POST
2014{
2015 tHalMsgHeader header;
2016 tHalJoinRspParams joinRspParams;
2017}tHalJoinRspMsg, *tpHalJoinRspMsg;
2018
2019/*---------------------------------------------------------------------------
2020 WLAN_HAL_POST_ASSOC_REQ
2021---------------------------------------------------------------------------*/
2022
2023typedef PACKED_PRE struct PACKED_POST
2024{
2025 tConfigStaParams configStaParams;
2026 tConfigBssParams configBssParams;
2027} tPostAssocReqParams, *tpPostAssocReqParams;
2028
2029typedef PACKED_PRE struct PACKED_POST
2030{
2031 tHalMsgHeader header;
2032 tPostAssocReqParams postAssocReqParams;
2033} tPostAssocReqMsg, *tpPostAssocReqMsg;
2034
2035/*---------------------------------------------------------------------------
2036 WLAN_HAL_POST_ASSOC_RSP
2037---------------------------------------------------------------------------*/
2038
2039typedef PACKED_PRE struct PACKED_POST
2040{
2041 tConfigStaRspParams configStaRspParams;
2042 tConfigBssRspParams configBssRspParams;
2043} tPostAssocRspParams, *tpPostAssocRspParams;
2044
2045typedef PACKED_PRE struct PACKED_POST
2046{
2047 tHalMsgHeader header;
2048 tPostAssocRspParams postAssocRspParams;
2049} tPostAssocRspMsg, *tpPostAssocRspMsg;
2050
2051/*---------------------------------------------------------------------------
2052 WLAN_HAL_SET_BSSKEY_REQ
2053---------------------------------------------------------------------------*/
2054
2055/*
2056 * This is used by PE to create a set of WEP keys for a given BSS.
2057 */
2058typedef PACKED_PRE struct PACKED_POST
2059{
2060 /*BSS Index of the BSS*/
2061 tANI_U8 bssIdx;
2062
2063 /*Encryption Type used with peer*/
2064 tAniEdType encType;
2065
2066 /*Number of keys*/
2067 tANI_U8 numKeys;
2068
2069 /*Array of keys.*/
2070 tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
Jeff Johnson32d95a32012-09-10 13:15:23 -07002071
Jeff Johnson295189b2012-06-20 16:38:30 -07002072 /*Control for Replay Count, 1= Single TID based replay count on Tx
2073 0 = Per TID based replay count on TX */
2074 tANI_U8 singleTidRc;
2075} tSetBssKeyParams, *tpSetBssKeyParams;
2076
2077typedef PACKED_PRE struct PACKED_POST
2078{
2079 tHalMsgHeader header;
2080 tSetBssKeyParams setBssKeyParams;
2081} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
2082
2083/*---------------------------------------------------------------------------
2084 WLAN_HAL_SET_BSSKEY_RSP
2085---------------------------------------------------------------------------*/
2086typedef PACKED_PRE struct PACKED_POST
2087{
2088 /*success or failure */
2089 tANI_U32 status;
2090
2091} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
2092
2093typedef PACKED_PRE struct PACKED_POST
2094{
2095 tHalMsgHeader header;
2096 tSetBssKeyRspParams setBssKeyRspParams;
2097} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
2098
2099/*---------------------------------------------------------------------------
2100 WLAN_HAL_SET_STAKEY_REQ,
2101---------------------------------------------------------------------------*/
2102
2103/*
2104 * This is used by PE to configure the key information on a given station.
2105 * When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
2106 * a preconfigured key from a BSS the station assoicated with; otherwise
2107 * a new key descriptor is created based on the key field.
2108 */
2109
2110typedef PACKED_PRE struct PACKED_POST
2111{
2112 tHalMsgHeader header;
2113 tSetStaKeyParams setStaKeyParams;
2114} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
2115
2116/*---------------------------------------------------------------------------
2117 WLAN_HAL_SET_STAKEY_RSP,
2118---------------------------------------------------------------------------*/
2119typedef PACKED_PRE struct PACKED_POST
2120{
2121 /*success or failure */
2122 tANI_U32 status;
2123
2124} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
2125
2126typedef PACKED_PRE struct PACKED_POST
2127{
2128 tHalMsgHeader header;
2129 tSetStaKeyRspParams setStaKeyRspParams;
2130} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
2131
2132/*---------------------------------------------------------------------------
2133 WLAN_HAL_RMV_BSSKEY_REQ,
2134---------------------------------------------------------------------------*/
2135/*
2136 * This is used by PE to remove keys for a given BSS.
2137 */
2138typedef PACKED_PRE struct PACKED_POST
2139
2140{
2141 /*BSS Index of the BSS*/
2142 tANI_U8 bssIdx;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002143
Jeff Johnson295189b2012-06-20 16:38:30 -07002144 /*Encryption Type used with peer*/
2145 tAniEdType encType;
2146
2147 /*Key Id*/
2148 tANI_U8 keyId;
2149
2150 /*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
2151 tAniWepType wepType;
2152
2153} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
2154
2155typedef PACKED_PRE struct PACKED_POST
2156{
2157 tHalMsgHeader header;
2158 tRemoveBssKeyParams removeBssKeyParams;
2159} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
2160
2161/*---------------------------------------------------------------------------
2162 WLAN_HAL_RMV_BSSKEY_RSP,
2163---------------------------------------------------------------------------*/
2164typedef PACKED_PRE struct PACKED_POST
2165{
2166 /*success or failure */
2167 tANI_U32 status;
2168
2169} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
2170
2171typedef PACKED_PRE struct PACKED_POST
2172{
2173 tHalMsgHeader header;
2174 tRemoveBssKeyRspParams removeBssKeyRspParams;
2175} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
2176
2177/*---------------------------------------------------------------------------
2178 WLAN_HAL_RMV_STAKEY_REQ,
2179---------------------------------------------------------------------------*/
2180/*
2181 * This is used by PE to Remove the key information on a given station.
2182 */
2183typedef PACKED_PRE struct PACKED_POST
2184{
2185 /*STA Index*/
2186 tANI_U16 staIdx;
2187
2188 /*Encryption Type used with peer*/
2189 tAniEdType encType;
2190
2191 /*Key Id*/
2192 tANI_U8 keyId;
2193
2194 /*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
2195 the same key is used for both broadcast and unicast.*/
2196 tANI_BOOLEAN unicast;
2197
2198} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
2199
2200typedef PACKED_PRE struct PACKED_POST
2201{
2202 tHalMsgHeader header;
2203 tRemoveStaKeyParams removeStaKeyParams;
2204} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
2205
2206/*---------------------------------------------------------------------------
2207 WLAN_HAL_RMV_STAKEY_RSP,
2208---------------------------------------------------------------------------*/
2209typedef PACKED_PRE struct PACKED_POST
2210{
2211 /*success or failure */
2212 tANI_U32 status;
2213} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
2214
2215typedef PACKED_PRE struct PACKED_POST
2216{
2217 tHalMsgHeader header;
2218 tRemoveStaKeyRspParams removeStaKeyRspParams;
2219} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
2220
Jeff Johnsone7245742012-09-05 17:12:55 -07002221#ifdef FEATURE_OEM_DATA_SUPPORT
Jeff Johnson295189b2012-06-20 16:38:30 -07002222
Jeff Johnsone7245742012-09-05 17:12:55 -07002223#ifndef OEM_DATA_REQ_SIZE
Madan Mohan Koyyalamudi2a1b1e12012-12-05 15:58:49 -08002224#define OEM_DATA_REQ_SIZE 70
Jeff Johnsone7245742012-09-05 17:12:55 -07002225#endif
2226
2227#ifndef OEM_DATA_RSP_SIZE
Madan Mohan Koyyalamudi2a1b1e12012-12-05 15:58:49 -08002228#define OEM_DATA_RSP_SIZE 968
Jeff Johnsone7245742012-09-05 17:12:55 -07002229#endif
2230
2231/*-------------------------------------------------------------------------
2232WLAN_HAL_START_OEM_DATA_REQ
2233--------------------------------------------------------------------------*/
2234typedef PACKED_PRE struct PACKED_POST
2235{
2236 tANI_U32 status;
2237 tSirMacAddr selfMacAddr;
2238 tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
2239} tStartOemDataReqParams, *tpStartOemDataReqParams;
2240
2241typedef PACKED_PRE struct PACKED_POST
2242{
2243 tHalMsgHeader header;
2244 tStartOemDataReqParams startOemDataReqParams;
2245} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
2246
2247/*-------------------------------------------------------------------------
2248WLAN_HAL_START_OEM_DATA_RSP
2249--------------------------------------------------------------------------*/
2250
2251typedef PACKED_PRE struct PACKED_POST
2252{
2253 tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
2254} tStartOemDataRspParams, *tpStartOemDataRspParams;
2255
2256typedef PACKED_PRE struct PACKED_POST
2257{
2258 tHalMsgHeader header;
2259 tStartOemDataRspParams startOemDataRspParams;
2260} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
2261
2262#endif
Jeff Johnson295189b2012-06-20 16:38:30 -07002263
2264
2265
2266/*---------------------------------------------------------------------------
2267WLAN_HAL_CH_SWITCH_REQ
2268---------------------------------------------------------------------------*/
2269
2270typedef PACKED_PRE struct PACKED_POST
2271{
2272 /* Channel number */
2273 tANI_U8 channelNumber;
2274
2275 /* Local power constraint */
2276 tANI_U8 localPowerConstraint;
2277
2278 /*Secondary channel offset */
Jeff Johnsone7245742012-09-05 17:12:55 -07002279 ePhyChanBondState secondaryChannelOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07002280
2281 //HAL fills in the tx power used for mgmt frames in this field.
2282 tPowerdBm txMgmtPower;
2283
2284 /* Max TX power */
2285 tPowerdBm maxTxPower;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002286
Jeff Johnson295189b2012-06-20 16:38:30 -07002287 /* Self STA MAC */
2288 tSirMacAddr selfStaMacAddr;
2289
2290 /*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
2291 this should be applied only to that session*/
2292 /* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
2293 * bssid needs to be out of the VOWifi feature flag */
2294 /* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
2295 * by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
2296 */
2297 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002298
Jeff Johnson295189b2012-06-20 16:38:30 -07002299}tSwitchChannelParams, *tpSwitchChannelParams;
2300
2301typedef PACKED_PRE struct PACKED_POST
2302{
2303 tHalMsgHeader header;
2304 tSwitchChannelParams switchChannelParams;
2305} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
2306
2307/*---------------------------------------------------------------------------
2308WLAN_HAL_CH_SWITCH_RSP
2309---------------------------------------------------------------------------*/
2310
2311typedef PACKED_PRE struct PACKED_POST
2312{
2313 /* Status */
2314 tANI_U32 status;
2315
2316 /* Channel number - same as in request*/
2317 tANI_U8 channelNumber;
2318
2319 /* HAL fills in the tx power used for mgmt frames in this field */
2320 tPowerdBm txMgmtPower;
2321
2322 /* BSSID needed to identify session - same as in request*/
2323 tSirMacAddr bssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002324
Jeff Johnson295189b2012-06-20 16:38:30 -07002325}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
2326
2327typedef PACKED_PRE struct PACKED_POST
2328{
2329 tHalMsgHeader header;
2330 tSwitchChannelRspParams switchChannelRspParams;
2331} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
2332
2333/*---------------------------------------------------------------------------
2334WLAN_HAL_UPD_EDCA_PARAMS_REQ
2335---------------------------------------------------------------------------*/
2336
2337typedef PACKED_PRE struct PACKED_POST
2338{
2339 /*BSS Index*/
2340 tANI_U16 bssIdx;
2341
2342 /* Best Effort */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002343 tSirMacEdcaParamRecord acbe;
Jeff Johnson295189b2012-06-20 16:38:30 -07002344
2345 /* Background */
2346 tSirMacEdcaParamRecord acbk;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002347
Jeff Johnson295189b2012-06-20 16:38:30 -07002348 /* Video */
2349 tSirMacEdcaParamRecord acvi;
2350
2351 /* Voice */
2352 tSirMacEdcaParamRecord acvo;
2353
2354} tEdcaParams, *tpEdcaParams;
2355
2356typedef PACKED_PRE struct PACKED_POST
2357{
2358 tHalMsgHeader header;
2359 tEdcaParams edcaParams;
2360} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
2361
2362/*---------------------------------------------------------------------------
2363WLAN_HAL_UPD_EDCA_PARAMS_RSP
2364---------------------------------------------------------------------------*/
2365typedef PACKED_PRE struct PACKED_POST
2366{
2367 /*success or failure */
2368 tANI_U32 status;
2369} tEdcaRspParams, *tpEdcaRspParams;
2370
2371typedef PACKED_PRE struct PACKED_POST
2372{
2373 tHalMsgHeader header;
2374 tEdcaRspParams edcaRspParams;
2375} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
2376
2377
2378
2379/*---------------------------------------------------------------------------
2380 * WLAN_HAL_GET_STATS_REQ
2381 *--------------------------------------------------------------------------*/
2382typedef PACKED_PRE struct PACKED_POST
2383
2384{
2385 /* Index of STA to which the statistics */
2386 tANI_U16 staIdx;
2387
2388 /* Encryption mode */
2389 tANI_U8 encMode;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002390
Jeff Johnson295189b2012-06-20 16:38:30 -07002391 /* status */
2392 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002393
Jeff Johnson295189b2012-06-20 16:38:30 -07002394 /* Statistics */
2395 tANI_U32 sendBlocks;
2396 tANI_U32 recvBlocks;
2397 tANI_U32 replays;
2398 tANI_U8 micErrorCnt;
2399 tANI_U32 protExclCnt;
2400 tANI_U16 formatErrCnt;
2401 tANI_U16 unDecryptableCnt;
2402 tANI_U32 decryptErrCnt;
2403 tANI_U32 decryptOkCnt;
2404} tDpuStatsParams, * tpDpuStatsParams;
2405
2406typedef PACKED_PRE struct PACKED_POST
2407{
2408 /* Valid STA Idx for per STA stats request */
2409 tANI_U32 staId;
2410
2411 /* Categories of stats requested as specified in eHalStatsMask*/
2412 tANI_U32 statsMask;
2413}tHalStatsReqParams, *tpHalStatsReqParams;
2414
2415typedef PACKED_PRE struct PACKED_POST
2416{
2417 tHalMsgHeader header;
2418 tHalStatsReqParams statsReqParams;
2419} tHalStatsReqMsg, *tpHalStatsReqMsg;
2420
2421/*---------------------------------------------------------------------------
2422 * WLAN_HAL_GET_STATS_RSP
2423 *--------------------------------------------------------------------------*/
2424
2425typedef PACKED_PRE struct PACKED_POST
2426{
2427 tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
2428 tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
2429 // station successfully transmitted after more than one retransmission attempt
2430
Jeff Johnson32d95a32012-09-10 13:15:23 -07002431 tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
2432 //(with and without retries, including multi-cast, broadcast)
2433 tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
2434 //(after appropriate filter rules including multi-cast, broadcast)
Jeff Johnson295189b2012-06-20 16:38:30 -07002435 tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
2436 tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
2437 tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
2438 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 -07002439 tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
2440 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 -07002441 //HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
2442 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 -07002443 tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
2444 //and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
Jeff Johnson295189b2012-06-20 16:38:30 -07002445 //to provide this.
2446}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
2447
2448
2449// defines tx_rate_flags
2450typedef enum eTxRateInfo
2451{
2452 eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
2453 eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
2454 eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
2455 eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
2456 eHAL_TX_RATE_LGI = 0x10 /* Rate with Long guard interval */
2457} tTxrateinfoflags;
2458
2459
2460typedef PACKED_PRE struct PACKED_POST
2461{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002462 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 -07002463 //or MMPDU frames
Jeff Johnson32d95a32012-09-10 13:15:23 -07002464 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 -07002465 //or MMPDU frames when a promiscuous packet filter was enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002466 tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
2467 //of 1024 bytes at the antenna connector. Each element of the array shall correspond
Jeff Johnson295189b2012-06-20 16:38:30 -07002468 //to a supported rate and the order shall be the same as the supporteRates parameter.
Jeff Johnson32d95a32012-09-10 13:15:23 -07002469 tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
2470 //for eg: if it is 10.5dBm, the value would be 105
2471 tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
2472 //after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
Jeff Johnson295189b2012-06-20 16:38:30 -07002473
Jeff Johnson32d95a32012-09-10 13:15:23 -07002474 tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
2475 //recently transmitted frame
Jeff Johnson295189b2012-06-20 16:38:30 -07002476 tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
Jeff Johnson32d95a32012-09-10 13:15:23 -07002477 tANI_U32 tx_rate_flags; //to differentiate between HT20 and
2478 //HT40 rates; short and long guard interval
Jeff Johnson295189b2012-06-20 16:38:30 -07002479}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
2480
2481typedef PACKED_PRE struct PACKED_POST
2482{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002483 tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
2484 //the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
Jeff Johnson295189b2012-06-20 16:38:30 -07002485 //is enabled
Jeff Johnson32d95a32012-09-10 13:15:23 -07002486 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 -07002487 //because of MIC failures
Jeff Johnson32d95a32012-09-10 13:15:23 -07002488 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 -07002489 //because of a TKIP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002490 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 -07002491 //invalid AES-CCMP format
Jeff Johnson32d95a32012-09-10 13:15:23 -07002492 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 -07002493 //the AES-CCMP replay protection procedure
Jeff Johnson32d95a32012-09-10 13:15:23 -07002494 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 -07002495 //errors detected by the AES-CCMP decryption algorithm
Jeff Johnson32d95a32012-09-10 13:15:23 -07002496 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 -07002497 //not available on the 802.11 station
Jeff Johnson32d95a32012-09-10 13:15:23 -07002498 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 -07002499 //because of a WEP ICV error
Jeff Johnson32d95a32012-09-10 13:15:23 -07002500 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 -07002501 //decrypted
2502 tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
2503
2504}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002505
Jeff Johnson295189b2012-06-20 16:38:30 -07002506typedef PACKED_PRE struct PACKED_POST
2507{
2508 tAniGlobalSecurityStats ucStats;
2509 tAniGlobalSecurityStats mcbcStats;
2510}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
2511
2512typedef PACKED_PRE struct PACKED_POST
2513{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002514 tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
2515 //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 -07002516 //address 1 field
2517 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 -07002518 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 -07002519 //primary channel
2520 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 -07002521 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 -07002522 //when an A-MPDU is received
Jeff Johnson32d95a32012-09-10 13:15:23 -07002523 tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
2524 //is the first CRC error in the received AMPDU or when the previous delimiter has been
Jeff Johnson295189b2012-06-20 16:38:30 -07002525 //decoded correctly
2526}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
2527
2528typedef PACKED_PRE struct PACKED_POST
2529{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002530 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 -07002531 //through a received 802.11 ACK frame
Jeff Johnson32d95a32012-09-10 13:15:23 -07002532 tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
2533 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 -07002534 //is transmitted
2535}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
2536
2537typedef PACKED_PRE struct PACKED_POST
2538{
2539 /* Success or Failure */
2540 tANI_U32 status;
2541
2542 /* STA Idx */
2543 tANI_U32 staId;
2544
2545 /* Categories of STATS being returned as per eHalStatsMask*/
2546 tANI_U32 statsMask;
2547
2548 /* message type is same as the request type */
2549 tANI_U16 msgType;
2550
2551 /* length of the entire request, includes the pStatsBuf length too */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002552 tANI_U16 msgLen;
Jeff Johnson295189b2012-06-20 16:38:30 -07002553
2554} tHalStatsRspParams, *tpHalStatsRspParams;
2555
2556
2557
2558typedef PACKED_PRE struct PACKED_POST
2559{
2560 tHalMsgHeader header;
2561 tHalStatsRspParams statsRspParams;
2562} tHalStatsRspMsg, *tpHalStatsRspMsg;
2563
2564/*---------------------------------------------------------------------------
2565 * WLAN_HAL_SET_LINK_ST_REQ
2566 *--------------------------------------------------------------------------*/
2567typedef PACKED_PRE struct PACKED_POST
2568{
2569 tSirMacAddr bssid;
2570 tSirLinkState state;
2571 tSirMacAddr selfMacAddr;
2572} tLinkStateParams, *tpLinkStateParams;
2573
2574typedef PACKED_PRE struct PACKED_POST
2575{
2576 tHalMsgHeader header;
2577 tLinkStateParams linkStateParams;
2578} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
2579
2580/*---------------------------------------------------------------------------
2581 * WLAN_HAL_SET_LINK_ST_RSP
2582 *--------------------------------------------------------------------------*/
2583
2584typedef PACKED_PRE struct PACKED_POST
2585{
2586 /*success or failure */
2587 tANI_U32 status;
2588} tLinkStateRspParams, *tpLinkStateRspParams;
2589
2590typedef PACKED_PRE struct PACKED_POST
2591{
2592 tHalMsgHeader header;
2593 tLinkStateRspParams linkStateRspParams;
2594} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
2595
2596/*---------------------------------------------------------------------------
2597 * WLAN_HAL_ADD_TS_REQ
2598 *--------------------------------------------------------------------------*/
2599
2600/* TSPEC Params */
2601typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
2602{
2603#ifndef ANI_LITTLE_BIT_ENDIAN
2604 tANI_U16 ackPolicy : 2;
2605 tANI_U16 userPrio : 3;
2606 tANI_U16 psb : 1;
2607 tANI_U16 aggregation : 1;
2608 tANI_U16 accessPolicy : 2;
2609 tANI_U16 direction : 2;
2610 tANI_U16 tsid : 4;
2611 tANI_U16 trafficType : 1;
2612#else
2613 tANI_U16 trafficType : 1;
2614 tANI_U16 tsid : 4;
2615 tANI_U16 direction : 2;
2616 tANI_U16 accessPolicy : 2;
2617 tANI_U16 aggregation : 1;
2618 tANI_U16 psb : 1;
2619 tANI_U16 userPrio : 3;
2620 tANI_U16 ackPolicy : 2;
2621#endif
2622} __ani_attr_packed tSirMacTSInfoTfc;
2623
2624/* Flag to schedule the traffic type */
2625typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
2626{
2627#ifndef ANI_LITTLE_BIT_ENDIAN
2628 tANI_U8 rsvd : 7;
2629 tANI_U8 schedule : 1;
2630#else
2631 tANI_U8 schedule : 1;
2632 tANI_U8 rsvd : 7;
2633#endif
2634} __ani_attr_packed tSirMacTSInfoSch;
2635
2636/* Traffic and scheduling info */
2637typedef __ani_attr_pre_packed struct sSirMacTSInfo
2638{
2639 tSirMacTSInfoTfc traffic;
2640 tSirMacTSInfoSch schedule;
2641} __ani_attr_packed tSirMacTSInfo;
2642
2643/* Information elements */
2644typedef __ani_attr_pre_packed struct sSirMacTspecIE
2645{
2646 tANI_U8 type;
2647 tANI_U8 length;
2648 tSirMacTSInfo tsinfo;
2649 tANI_U16 nomMsduSz;
2650 tANI_U16 maxMsduSz;
2651 tANI_U32 minSvcInterval;
2652 tANI_U32 maxSvcInterval;
2653 tANI_U32 inactInterval;
2654 tANI_U32 suspendInterval;
2655 tANI_U32 svcStartTime;
2656 tANI_U32 minDataRate;
2657 tANI_U32 meanDataRate;
2658 tANI_U32 peakDataRate;
2659 tANI_U32 maxBurstSz;
2660 tANI_U32 delayBound;
2661 tANI_U32 minPhyRate;
2662 tANI_U16 surplusBw;
2663 tANI_U16 mediumTime;
2664}__ani_attr_packed tSirMacTspecIE;
2665
2666typedef PACKED_PRE struct PACKED_POST
2667{
2668 /* Station Index */
2669 tANI_U16 staIdx;
2670
2671 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
2672 tANI_U16 tspecIdx;
2673
2674 /* To program TPE with required parameters */
2675 tSirMacTspecIE tspec;
2676
2677 /* U-APSD Flags: 1b per AC. Encoded as follows:
2678 b7 b6 b5 b4 b3 b2 b1 b0 =
2679 X X X X BE BK VI VO */
2680 tANI_U8 uAPSD;
2681
2682 /* These parameters are for all the access categories */
2683 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
2684 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
2685 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
Jeff Johnson32d95a32012-09-10 13:15:23 -07002686
Jeff Johnson295189b2012-06-20 16:38:30 -07002687} tAddTsParams, *tpAddTsParams;
2688
2689typedef PACKED_PRE struct PACKED_POST
2690{
2691 tHalMsgHeader header;
2692 tAddTsParams addTsParams;
2693} tAddTsReqMsg, *tpAddTsReqMsg;
2694
2695/*---------------------------------------------------------------------------
2696 * WLAN_HAL_ADD_TS_RSP
2697 *--------------------------------------------------------------------------*/
2698
2699typedef PACKED_PRE struct PACKED_POST
2700{
2701 /*success or failure */
2702 tANI_U32 status;
2703} tAddTsRspParams, *tpAddTsRspParams;
2704
2705typedef PACKED_PRE struct PACKED_POST
2706{
2707 tHalMsgHeader header;
2708 tAddTsRspParams addTsRspParams;
2709} tAddTsRspMsg, *tpAddTsRspMsg;
2710
2711
2712/*---------------------------------------------------------------------------
2713 * WLAN_HAL_DEL_TS_REQ
2714 *--------------------------------------------------------------------------*/
2715
2716typedef PACKED_PRE struct PACKED_POST
2717{
2718 /* Station Index */
2719 tANI_U16 staIdx;
2720
2721 /* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
2722 tANI_U16 tspecIdx;
2723
2724 /* To lookup station id using the mac address */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002725 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002726
2727} tDelTsParams, *tpDelTsParams;
2728
2729typedef PACKED_PRE struct PACKED_POST
2730{
2731 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002732 tDelTsParams delTsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002733} tDelTsReqMsg, *tpDelTsReqMsg;
2734
2735/*---------------------------------------------------------------------------
2736 * WLAN_HAL_DEL_TS_RSP
2737 *--------------------------------------------------------------------------*/
2738
2739typedef PACKED_PRE struct PACKED_POST
2740{
2741 /*success or failure */
2742 tANI_U32 status;
2743} tDelTsRspParams, *tpDelTsRspParams;
2744
2745typedef PACKED_PRE struct PACKED_POST
2746{
2747 tHalMsgHeader header;
2748 tDelTsRspParams delTsRspParams;
2749} tDelTsRspMsg, *tpDelTsRspMsg;
2750
2751/* End of TSpec Parameters */
2752
2753/* Start of BLOCK ACK related Parameters */
2754
2755/*---------------------------------------------------------------------------
2756 * WLAN_HAL_ADD_BA_SESSION_REQ
2757 *--------------------------------------------------------------------------*/
2758
2759typedef PACKED_PRE struct PACKED_POST
2760{
2761 /* Station Index */
2762 tANI_U16 staIdx;
2763
2764 /* Peer MAC Address */
2765 tSirMacAddr peerMacAddr;
2766
2767 /* ADDBA Action Frame dialog token
2768 HAL will not interpret this object */
2769 tANI_U8 baDialogToken;
2770
2771 /* TID for which the BA is being setup
2772 This identifies the TC or TS of interest */
2773 tANI_U8 baTID;
2774
2775 /* 0 - Delayed BA (Not supported)
2776 1 - Immediate BA */
2777 tANI_U8 baPolicy;
2778
2779 /* Indicates the number of buffers for this TID (baTID)
2780 NOTE - This is the requested buffer size. When this
2781 is processed by HAL and subsequently by HDD, it is
2782 possible that HDD may change this buffer size. Any
2783 change in the buffer size should be noted by PE and
2784 advertized appropriately in the ADDBA response */
2785 tANI_U16 baBufferSize;
2786
2787 /* BA timeout in TU's 0 means no timeout will occur */
2788 tANI_U16 baTimeout;
2789
2790 /* b0..b3 - Fragment Number - Always set to 0
2791 b4..b15 - Starting Sequence Number of first MSDU
2792 for which this BA is setup */
2793 tANI_U16 baSSN;
2794
2795 /* ADDBA direction
2796 1 - Originator
2797 0 - Recipient */
2798 tANI_U8 baDirection;
2799} tAddBASessionParams, *tpAddBASessionParams;
2800
2801typedef PACKED_PRE struct PACKED_POST
2802{
2803 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002804 tAddBASessionParams addBASessionParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002805}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
2806
2807/*---------------------------------------------------------------------------
2808 * WLAN_HAL_ADD_BA_SESSION_RSP
2809 *--------------------------------------------------------------------------*/
2810
2811typedef PACKED_PRE struct PACKED_POST
2812{
2813 /*success or failure */
2814 tANI_U32 status;
2815
2816 /* Dialog token */
2817 tANI_U8 baDialogToken;
2818
2819 /* TID for which the BA session has been setup */
2820 tANI_U8 baTID;
2821
2822 /* BA Buffer Size allocated for the current BA session */
2823 tANI_U8 baBufferSize;
2824
2825 tANI_U8 baSessionID;
2826
2827 /* Reordering Window buffer */
2828 tANI_U8 winSize;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002829
Jeff Johnson295189b2012-06-20 16:38:30 -07002830 /*Station Index to id the sta */
2831 tANI_U8 STAID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002832
Jeff Johnson295189b2012-06-20 16:38:30 -07002833 /* Starting Sequence Number */
2834 tANI_U16 SSN;
2835} tAddBASessionRspParams, *tpAddBASessionRspParams;
2836
2837typedef PACKED_PRE struct PACKED_POST
2838{
2839 tHalMsgHeader header;
2840 tAddBASessionRspParams addBASessionRspParams;
2841} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
2842
2843/*---------------------------------------------------------------------------
2844 * WLAN_HAL_ADD_BA_REQ
2845 *--------------------------------------------------------------------------*/
2846
2847typedef PACKED_PRE struct PACKED_POST
2848{
2849 /* Session Id */
2850 tANI_U8 baSessionID;
2851
2852 /* Reorder Window Size */
2853 tANI_U8 winSize;
2854
2855#ifdef FEATURE_ON_CHIP_REORDERING
2856 tANI_BOOLEAN isReorderingDoneOnChip;
2857#endif
2858} tAddBAParams, *tpAddBAParams;
2859
2860typedef PACKED_PRE struct PACKED_POST
2861{
2862 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002863 tAddBAParams addBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002864} tAddBAReqMsg, *tpAddBAReqMsg;
2865
2866
2867/*---------------------------------------------------------------------------
2868 * WLAN_HAL_ADD_BA_RSP
2869 *--------------------------------------------------------------------------*/
2870
2871typedef PACKED_PRE struct PACKED_POST
2872{
2873 /*success or failure */
2874 tANI_U32 status;
2875
2876 /* Dialog token */
2877 tANI_U8 baDialogToken;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002878
Jeff Johnson295189b2012-06-20 16:38:30 -07002879} tAddBARspParams, *tpAddBARspParams;
2880
2881typedef PACKED_PRE struct PACKED_POST
2882{
2883 tHalMsgHeader header;
2884 tAddBARspParams addBARspParams;
2885} tAddBARspMsg, *tpAddBARspMsg;
2886
2887
2888/*---------------------------------------------------------------------------
2889 * WLAN_HAL_TRIGGER_BA_REQ
2890 *--------------------------------------------------------------------------*/
2891
2892
2893typedef struct sAddBaInfo
2894{
2895 tANI_U16 fBaEnable : 1;
2896 tANI_U16 startingSeqNum: 12;
2897 tANI_U16 reserved : 3;
2898}tAddBaInfo, *tpAddBaInfo;
2899
2900typedef struct sTriggerBaRspCandidate
2901{
2902 tSirMacAddr staAddr;
2903 tAddBaInfo baInfo[STACFG_MAX_TC];
2904}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
2905
2906typedef struct sTriggerBaCandidate
2907{
2908 tANI_U8 staIdx;
2909 tANI_U8 tidBitmap;
2910}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
2911
2912typedef PACKED_PRE struct PACKED_POST
2913{
2914 /* Session Id */
2915 tANI_U8 baSessionID;
2916
Jeff Johnson32d95a32012-09-10 13:15:23 -07002917 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002918 * Candidate List(tTriggerBaCandidate)
2919 */
2920 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002921
Jeff Johnson295189b2012-06-20 16:38:30 -07002922} tTriggerBAParams, *tpTriggerBAParams;
2923
2924typedef PACKED_PRE struct PACKED_POST
2925{
2926 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002927 tTriggerBAParams triggerBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002928} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
2929
2930
2931/*---------------------------------------------------------------------------
2932 * WLAN_HAL_TRIGGER_BA_RSP
2933 *--------------------------------------------------------------------------*/
2934
2935typedef PACKED_PRE struct PACKED_POST
2936{
Jeff Johnson32d95a32012-09-10 13:15:23 -07002937
Jeff Johnson295189b2012-06-20 16:38:30 -07002938 /* TO SUPPORT BT-AMP */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002939 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07002940
2941 /* success or failure */
2942 tANI_U32 status;
2943
Jeff Johnson32d95a32012-09-10 13:15:23 -07002944 /* baCandidateCnt is followed by trigger BA
Jeff Johnson295189b2012-06-20 16:38:30 -07002945 * Rsp Candidate List(tTriggerRspBaCandidate)
2946 */
2947 tANI_U16 baCandidateCnt;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002948
Jeff Johnson295189b2012-06-20 16:38:30 -07002949
2950} tTriggerBARspParams, *tpTriggerBARspParams;
2951
2952typedef PACKED_PRE struct PACKED_POST
2953{
2954 tHalMsgHeader header;
2955 tTriggerBARspParams triggerBARspParams;
2956} tTriggerBARspMsg, *tpTriggerBARspMsg;
2957
2958/*---------------------------------------------------------------------------
2959 * WLAN_HAL_DEL_BA_REQ
2960 *--------------------------------------------------------------------------*/
2961
2962typedef PACKED_PRE struct PACKED_POST
2963{
2964 /* Station Index */
2965 tANI_U16 staIdx;
2966
2967 /* TID for which the BA session is being deleted */
2968 tANI_U8 baTID;
2969
2970 /* DELBA direction
2971 1 - Originator
2972 0 - Recipient */
Jeff Johnson32d95a32012-09-10 13:15:23 -07002973 tANI_U8 baDirection;
Jeff Johnson295189b2012-06-20 16:38:30 -07002974} tDelBAParams, *tpDelBAParams;
2975
2976typedef PACKED_PRE struct PACKED_POST
2977{
2978 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07002979 tDelBAParams delBAParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07002980} tDelBAReqMsg, *tpDelBAReqMsg;
2981
2982/*---------------------------------------------------------------------------
2983 * WLAN_HAL_DEL_BA_RSP
2984 *--------------------------------------------------------------------------*/
2985
2986typedef PACKED_PRE struct PACKED_POST
2987{
2988 /* success or failure */
2989 tANI_U32 status;
2990} tDelBARspParams, *tpDelBARspParams;
2991
2992typedef PACKED_PRE struct PACKED_POST
2993{
2994 tHalMsgHeader header;
2995 tDelBARspParams delBARspParams;
2996} tDelBARspMsg, *tpDelBARspMsg;
2997
2998
2999#ifdef FEATURE_WLAN_CCX
3000
3001/*---------------------------------------------------------------------------
3002 * WLAN_HAL_TSM_STATS_REQ
3003 *--------------------------------------------------------------------------*/
3004typedef PACKED_PRE struct PACKED_POST
3005{
3006 /* Traffic Id */
3007 tANI_U8 tsmTID;
3008
3009 tSirMacAddr bssId;
3010} tTsmStatsParams, *tpTsmStatsParams;
3011
3012typedef PACKED_PRE struct PACKED_POST
3013{
3014 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003015 tTsmStatsParams tsmStatsParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003016} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
3017
3018
3019/*---------------------------------------------------------------------------
3020 * WLAN_HAL_TSM_STATS_RSP
3021 *--------------------------------------------------------------------------*/
3022typedef PACKED_PRE struct PACKED_POST
3023{
3024 /*success or failure */
3025 tANI_U32 status;
3026
Jeff Johnson32d95a32012-09-10 13:15:23 -07003027 /* Uplink Packet Queue delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003028 tANI_U16 UplinkPktQueueDly;
3029
Jeff Johnson32d95a32012-09-10 13:15:23 -07003030 /* Uplink Packet Queue delay histogram */
Jeff Johnson295189b2012-06-20 16:38:30 -07003031 tANI_U16 UplinkPktQueueDlyHist[4];
3032
Jeff Johnson32d95a32012-09-10 13:15:23 -07003033 /* Uplink Packet Transmit delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003034 tANI_U32 UplinkPktTxDly;
3035
Jeff Johnson32d95a32012-09-10 13:15:23 -07003036 /* Uplink Packet loss */
Jeff Johnson295189b2012-06-20 16:38:30 -07003037 tANI_U16 UplinkPktLoss;
3038
Jeff Johnson32d95a32012-09-10 13:15:23 -07003039 /* Uplink Packet count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003040 tANI_U16 UplinkPktCount;
3041
Jeff Johnson32d95a32012-09-10 13:15:23 -07003042 /* Roaming count */
Jeff Johnson295189b2012-06-20 16:38:30 -07003043 tANI_U8 RoamingCount;
3044
Jeff Johnson32d95a32012-09-10 13:15:23 -07003045 /* Roaming Delay */
Jeff Johnson295189b2012-06-20 16:38:30 -07003046 tANI_U16 RoamingDly;
3047} tTsmStatsRspParams, *tpTsmStatsRspParams;
3048
3049typedef PACKED_PRE struct PACKED_POST
3050{
3051 tHalMsgHeader header;
3052 tTsmStatsRspParams tsmStatsRspParams;
3053} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
3054
3055
3056#endif
3057
3058/*---------------------------------------------------------------------------
3059 * WLAN_HAL_SET_KEYDONE_MSG
3060 *--------------------------------------------------------------------------*/
3061
3062typedef PACKED_PRE struct PACKED_POST
3063{
3064 /*bssid of the keys */
3065 tANI_U8 bssidx;
3066 tANI_U8 encType;
3067} tSetKeyDoneParams, *tpSetKeyDoneParams;
3068
3069typedef PACKED_PRE struct PACKED_POST
3070{
3071 tHalMsgHeader header;
3072 tSetKeyDoneParams setKeyDoneParams;
3073} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
3074
3075/*---------------------------------------------------------------------------
3076 * WLAN_HAL_DOWNLOAD_NV_REQ
3077 *--------------------------------------------------------------------------*/
3078typedef PACKED_PRE struct PACKED_POST
3079{
3080 /* Fragment sequence number of the NV Image. Note that NV Image might not
3081 * fit into one message due to size limitation of the SMD channel FIFO. UMAC
Jeff Johnson32d95a32012-09-10 13:15:23 -07003082 * can hence choose to chop the NV blob into multiple fragments starting with
3083 * seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
Jeff Johnson295189b2012-06-20 16:38:30 -07003084 * marking the isLastFragment field to 1. Note that all the NV blobs would be
3085 * concatenated together by HAL without any padding bytes in between.*/
3086 tANI_U16 fragNumber;
3087
3088 /* Is this the last fragment? When set to 1 it indicates that no more fragments
Jeff Johnson32d95a32012-09-10 13:15:23 -07003089 * will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
Jeff Johnson295189b2012-06-20 16:38:30 -07003090 * with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
3091 * WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
3092 tANI_U16 isLastFragment;
3093
3094 /* NV Image size (number of bytes) */
3095 tANI_U32 nvImgBufferSize;
3096
3097 /* Following the 'nvImageBufferSize', there should be nvImageBufferSize
3098 * bytes of NV Image i.e. uint8[nvImageBufferSize] */
3099} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
3100
3101typedef PACKED_PRE struct PACKED_POST
3102{
3103 /* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
3104 * header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
3105 tHalMsgHeader header;
3106 tHalNvImgDownloadReqParams nvImageReqParams;
3107} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
3108
3109/*---------------------------------------------------------------------------
3110 * WLAN_HAL_DOWNLOAD_NV_RSP
3111 *--------------------------------------------------------------------------*/
3112typedef PACKED_PRE struct PACKED_POST
3113{
3114 /* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
3115 * after each fragment */
3116 tANI_U32 status;
3117} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
3118
3119typedef PACKED_PRE struct PACKED_POST
3120{
3121 tHalMsgHeader header;
3122 tHalNvImgDownloadRspParams nvImageRspParams;
3123} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
3124
3125/*---------------------------------------------------------------------------
3126 * WLAN_HAL_STORE_NV_IND
3127 *--------------------------------------------------------------------------*/
3128typedef PACKED_PRE struct PACKED_POST
3129{
3130 /* NV Item */
3131 eNvTable tableID;
3132
3133 /* Size of NV Blob */
3134 tANI_U32 nvBlobSize;
3135
Jeff Johnson32d95a32012-09-10 13:15:23 -07003136 /* Following the 'nvBlobSize', there should be nvBlobSize bytes of
Jeff Johnson295189b2012-06-20 16:38:30 -07003137 * NV blob i.e. uint8[nvBlobSize] */
3138} tHalNvStoreParams, *tpHalNvStoreParams;
3139
3140typedef PACKED_PRE struct PACKED_POST
3141{
3142 /* Note: The length specified in tHalNvStoreInd messages should be
3143 * header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
3144 tHalMsgHeader header;
3145 tHalNvStoreParams nvStoreParams;
3146} tHalNvStoreInd, *tpHalNvStoreInd;
3147
3148/* End of Block Ack Related Parameters */
3149
3150/*---------------------------------------------------------------------------
3151 * WLAN_HAL_MIC_FAILURE_IND
3152 *--------------------------------------------------------------------------*/
3153
3154#define SIR_CIPHER_SEQ_CTR_SIZE 6
3155
3156typedef PACKED_PRE struct PACKED_POST
3157{
Jeff Johnson32d95a32012-09-10 13:15:23 -07003158 tSirMacAddr srcMacAddr; //address used to compute MIC
Jeff Johnson295189b2012-06-20 16:38:30 -07003159 tSirMacAddr taMacAddr; //transmitter address
3160 tSirMacAddr dstMacAddr;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003161 tANI_U8 multicast;
Jeff Johnson295189b2012-06-20 16:38:30 -07003162 tANI_U8 IV1; // first byte of IV
3163 tANI_U8 keyId; // second byte of IV
3164 tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
3165 tSirMacAddr rxMacAddr; // receive address
3166} tSirMicFailureInfo, *tpSirMicFailureInfo;
3167
3168/* Definition for MIC failure indication
3169 MAC reports this each time a MIC failure occures on Rx TKIP packet
3170 */
3171typedef PACKED_PRE struct PACKED_POST
3172{
3173 tSirMacAddr bssId; // BSSID
3174 tSirMicFailureInfo info;
3175} tSirMicFailureInd, *tpSirMicFailureInd;
3176
3177typedef PACKED_PRE struct PACKED_POST
3178{
3179 tHalMsgHeader header;
3180 tSirMicFailureInd micFailureInd;
3181} tMicFailureIndMsg, *tpMicFailureIndMsg;
3182
Mohit Khanna4a70d262012-09-11 16:30:12 -07003183typedef PACKED_PRE struct PACKED_POST
3184{
3185 tANI_U16 opMode;
3186 tANI_U16 staId;
3187}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
3188
3189typedef PACKED_PRE struct PACKED_POST
3190{
3191 tHalMsgHeader header;
3192 tUpdateVHTOpMode updateVhtOpMode;
3193} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
3194
3195typedef PACKED_PRE struct PACKED_POST
3196{
3197 tANI_U32 status;
3198} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
3199
3200typedef PACKED_PRE struct PACKED_POST
3201{
3202 tHalMsgHeader header;
3203 tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
3204} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
3205
Jeff Johnson295189b2012-06-20 16:38:30 -07003206/*---------------------------------------------------------------------------
3207 * WLAN_HAL_UPDATE_BEACON_REQ
3208 *--------------------------------------------------------------------------*/
3209typedef PACKED_PRE struct PACKED_POST
3210{
3211
3212 tANI_U8 bssIdx;
3213
3214 //shortPreamble mode. HAL should update all the STA rates when it
3215 //receives this message
3216 tANI_U8 fShortPreamble;
3217 //short Slot time.
3218 tANI_U8 fShortSlotTime;
3219 //Beacon Interval
3220 tANI_U16 beaconInterval;
3221 //Protection related
3222 tANI_U8 llaCoexist;
3223 tANI_U8 llbCoexist;
3224 tANI_U8 llgCoexist;
3225 tANI_U8 ht20MhzCoexist;
3226 tANI_U8 llnNonGFCoexist;
3227 tANI_U8 fLsigTXOPProtectionFullSupport;
3228 tANI_U8 fRIFSMode;
3229
3230 tANI_U16 paramChangeBitmap;
3231}tUpdateBeaconParams, *tpUpdateBeaconParams;
3232
3233
3234typedef PACKED_PRE struct PACKED_POST
3235{
3236 tHalMsgHeader header;
3237 tUpdateBeaconParams updateBeaconParam;
3238} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
3239
3240/*---------------------------------------------------------------------------
3241 * WLAN_HAL_UPDATE_BEACON_RSP
3242 *--------------------------------------------------------------------------*/
3243typedef PACKED_PRE struct PACKED_POST
3244{
3245 tANI_U32 status;
3246} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
3247
3248typedef PACKED_PRE struct PACKED_POST
3249{
3250 tHalMsgHeader header;
3251 tUpdateBeaconRspParams updateBeaconRspParam;
3252} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
3253
3254/*---------------------------------------------------------------------------
3255 * WLAN_HAL_SEND_BEACON_REQ
3256 *--------------------------------------------------------------------------*/
3257typedef PACKED_PRE struct PACKED_POST
3258{
3259 tANI_U32 beaconLength; //length of the template.
3260 tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
3261 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07003262 tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
Jeff Johnson295189b2012-06-20 16:38:30 -07003263 tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
3264}tSendBeaconParams, *tpSendBeaconParams;
3265
3266
3267typedef PACKED_PRE struct PACKED_POST
3268{
3269 tHalMsgHeader header;
3270 tSendBeaconParams sendBeaconParam;
3271}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
3272
3273/*---------------------------------------------------------------------------
3274 * WLAN_HAL_SEND_BEACON_RSP
3275 *--------------------------------------------------------------------------*/
3276typedef PACKED_PRE struct PACKED_POST
3277{
3278 tANI_U32 status;
3279} tSendBeaconRspParams, *tpSendBeaconRspParams;
3280
3281typedef PACKED_PRE struct PACKED_POST
3282{
3283 tHalMsgHeader header;
3284 tSendBeaconRspParams sendBeaconRspParam;
3285} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
3286
3287#ifdef FEATURE_5GHZ_BAND
3288
3289/*---------------------------------------------------------------------------
3290 * WLAN_HAL_ENABLE_RADAR_DETECT_REQ
3291 *--------------------------------------------------------------------------*/
3292typedef PACKED_PRE struct PACKED_POST
3293{
3294 tSirMacAddr BSSID;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003295 tANI_U8 channel;
Jeff Johnson295189b2012-06-20 16:38:30 -07003296}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
3297
3298
3299typedef PACKED_PRE struct PACKED_POST
3300{
3301 /* Link Parameters */
3302 tSirEnableRadarInfoType EnableRadarInfo;
3303}tEnableRadarReqParams, *tpEnableRadarReqParams;
3304
3305typedef PACKED_PRE struct PACKED_POST
3306{
3307 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003308 tEnableRadarReqParams enableRadarReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003309}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
3310
3311/*---------------------------------------------------------------------------
3312 * WLAN_HAL_ENABLE_RADAR_DETECT_RSP
3313 *--------------------------------------------------------------------------*/
3314
3315typedef PACKED_PRE struct PACKED_POST
3316{
3317 /* Link Parameters */
3318 tSirMacAddr BSSID;
3319 /* success or failure */
3320 tANI_U32 status;
3321}tEnableRadarRspParams, *tpEnableRadarRspParams;
3322
3323typedef PACKED_PRE struct PACKED_POST
3324{
3325 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003326 tEnableRadarRspParams enableRadarRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003327}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
3328
3329/*---------------------------------------------------------------------------
3330 *WLAN_HAL_RADAR_DETECT_INTR_IND
3331 *--------------------------------------------------------------------------*/
3332
3333typedef PACKED_PRE struct PACKED_POST
3334{
3335 tANI_U8 radarDetChannel;
3336}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
3337
3338typedef PACKED_PRE struct PACKED_POST
3339{
3340 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003341 tRadarDetectIntrIndParams radarDetectIntrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003342}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
3343
3344/*---------------------------------------------------------------------------
3345 *WLAN_HAL_RADAR_DETECT_IND
3346 *-------------------------------------------------------------------------*/
3347typedef PACKED_PRE struct PACKED_POST
3348{
3349 /*channel number in which the RADAR detected*/
3350 tANI_U8 channelNumber;
3351
3352 /*RADAR pulse width*/
3353 tANI_U16 radarPulseWidth; // in usecond
3354
3355 /*Number of RADAR pulses */
3356 tANI_U16 numRadarPulse;
3357}tRadarDetectIndParams,*tpRadarDetectIndParams;
3358
3359typedef PACKED_PRE struct PACKED_POST
3360{
3361 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003362 tRadarDetectIndParams radarDetectIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003363}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
3364
3365
3366/*---------------------------------------------------------------------------
3367 *WLAN_HAL_GET_TPC_REPORT_REQ
3368 *-------------------------------------------------------------------------*/
3369typedef PACKED_PRE struct PACKED_POST
3370{
3371 tSirMacAddr sta;
3372 tANI_U8 dialogToken;
3373 tANI_U8 txpower;
3374}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
3375
3376
3377typedef PACKED_PRE struct PACKED_POST
3378{
3379 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003380 tSirGetTpcReportReqParams getTpcReportReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003381}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
3382
3383/*---------------------------------------------------------------------------
3384 * WLAN_HAL_GET_TPC_REPORT_RSP
3385 *--------------------------------------------------------------------------*/
3386
3387typedef PACKED_PRE struct PACKED_POST
3388{
3389 /* success or failure */
3390 tANI_U32 status;
3391}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
3392
3393typedef PACKED_PRE struct PACKED_POST
3394{
3395 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003396 tSirGetTpcReportRspParams getTpcReportRspParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003397}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
3398
3399#endif
3400
Jeff Johnson295189b2012-06-20 16:38:30 -07003401/*---------------------------------------------------------------------------
3402 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
3403 *-------------------------------------------------------------------------*/
3404typedef PACKED_PRE struct PACKED_POST
3405{
3406 tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
3407 tANI_U32 probeRespTemplateLen;
3408 tANI_U32 ucProxyProbeReqValidIEBmap[8];
3409 tSirMacAddr bssId;
3410
3411}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
3412
3413typedef PACKED_PRE struct PACKED_POST
3414{
3415 tHalMsgHeader header;
3416 tSendProbeRespReqParams sendProbeRespReqParams ;
3417}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
3418
3419/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003420 *WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
Jeff Johnson295189b2012-06-20 16:38:30 -07003421 *--------------------------------------------------------------------------*/
3422
3423typedef PACKED_PRE struct PACKED_POST
3424{
3425 /* success or failure */
3426 tANI_U32 status;
3427}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
3428
3429typedef PACKED_PRE struct PACKED_POST
3430{
3431 tHalMsgHeader header;
3432 tSendProbeRespRspParams sendProbeRespRspParams;
3433}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
3434
3435
3436/*---------------------------------------------------------------------------
Jeff Johnson32d95a32012-09-10 13:15:23 -07003437 *WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
Jeff Johnson295189b2012-06-20 16:38:30 -07003438 *--------------------------------------------------------------------------*/
3439
3440typedef PACKED_PRE struct PACKED_POST
3441{
3442 /* success or failure */
3443 tANI_U32 status;
3444}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
3445
3446typedef PACKED_PRE struct PACKED_POST
3447{
3448 tHalMsgHeader header;
3449 tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
3450}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
3451
3452/*---------------------------------------------------------------------------
3453 *WLAN_HAL_DELETE_STA_CONTEXT_IND
3454 *--------------------------------------------------------------------------*/
3455
3456typedef PACKED_PRE struct PACKED_POST
3457{
3458 tANI_U16 assocId;
3459 tANI_U16 staId;
3460 tSirMacAddr bssId; // TO SUPPORT BT-AMP
3461 // HAL copies bssid from the sta table.
Jeff Johnson295189b2012-06-20 16:38:30 -07003462 tSirMacAddr addr2; //
Jeff Johnson32d95a32012-09-10 13:15:23 -07003463 tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
Jeff Johnson295189b2012-06-20 16:38:30 -07003464
3465}tDeleteStaContextParams, *tpDeleteStaContextParams;
3466
3467
3468typedef PACKED_PRE struct PACKED_POST
3469{
3470 tHalMsgHeader header;
3471 tDeleteStaContextParams deleteStaContextParams;
3472}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
3473
Jeff Johnson295189b2012-06-20 16:38:30 -07003474
3475/*---------------------------------------------------------------------------
3476 *WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
3477 *--------------------------------------------------------------------------*/
3478
3479typedef PACKED_PRE struct PACKED_POST
3480{
3481 tBtAmpEventType btAmpEventType;
3482
3483}tBtAmpEventParams, *tpBtAmpEventParams;
3484
3485
3486
3487typedef PACKED_PRE struct PACKED_POST
3488{
3489 tHalMsgHeader header;
3490 tBtAmpEventParams btAmpEventParams;
3491}tBtAmpEventMsg, *tpBtAmpEventMsg;
3492
3493/*---------------------------------------------------------------------------
3494*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
3495*--------------------------------------------------------------------------*/
3496
3497typedef PACKED_PRE struct PACKED_POST
3498{
3499 /* success or failure */
3500 tANI_U32 status;
3501}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
3502
3503typedef PACKED_PRE struct PACKED_POST
3504{
3505 tHalMsgHeader header;
3506 tBtAmpEventRspParams btAmpEventRspParams;
3507}tBtAmpEventRsp, *tpBtAmpEventRsp;
3508
3509
3510/*---------------------------------------------------------------------------
3511 *WLAN_HAL_TL_HAL_FLUSH_AC_REQ
3512 *--------------------------------------------------------------------------*/
3513
3514typedef PACKED_PRE struct PACKED_POST
3515{
3516 // Station Index. originates from HAL
3517 tANI_U8 ucSTAId;
3518
3519 // TID for which the transmit queue is being flushed
3520 tANI_U8 ucTid;
3521
3522}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
3523
3524
3525typedef PACKED_PRE struct PACKED_POST
3526{
3527 tHalMsgHeader header;
3528 tTlHalFlushAcParams tlHalFlushAcParam;
3529}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
3530
3531/*---------------------------------------------------------------------------
3532*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
3533*--------------------------------------------------------------------------*/
3534
3535typedef PACKED_PRE struct PACKED_POST
3536{
3537 // Station Index. originates from HAL
3538 tANI_U8 ucSTAId;
3539
3540 // TID for which the transmit queue is being flushed
3541 tANI_U8 ucTid;
3542
3543 /* success or failure */
3544 tANI_U32 status;
3545}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
3546
3547typedef PACKED_PRE struct PACKED_POST
3548{
3549 tHalMsgHeader header;
3550 tTlHalFlushAcRspParams tlHalFlushAcRspParam;
3551}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
3552
3553/*---------------------------------------------------------------------------
3554 * WLAN_HAL_ENTER_IMPS_REQ
3555 *--------------------------------------------------------------------------*/
3556typedef PACKED_PRE struct PACKED_POST
3557{
3558 tHalMsgHeader header;
3559} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
3560
3561/*---------------------------------------------------------------------------
3562 * WLAN_HAL_EXIT_IMPS_REQ
3563 *--------------------------------------------------------------------------*/
3564typedef PACKED_PRE struct PACKED_POST
3565{
3566 tHalMsgHeader header;
3567} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
3568
3569/*---------------------------------------------------------------------------
3570 * WLAN_HAL_ENTER_BMPS_REQ
3571 *--------------------------------------------------------------------------*/
3572
3573typedef PACKED_PRE struct PACKED_POST
3574{
3575 tANI_U8 bssIdx;
3576 //TBTT value derived from the last beacon
3577#ifndef BUILD_QWPTTSTATIC
3578 tANI_U64 tbtt;
3579#endif
3580 tANI_U8 dtimCount;
3581 //DTIM period given to HAL during association may not be valid,
3582 //if association is based on ProbeRsp instead of beacon.
3583 tANI_U8 dtimPeriod;
3584
3585 // For CCX and 11R Roaming
3586 tANI_U32 rssiFilterPeriod;
3587 tANI_U32 numBeaconPerRssiAverage;
3588 tANI_U8 bRssiFilterEnable;
3589
3590} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
3591
3592
3593typedef PACKED_PRE struct PACKED_POST
3594{
3595 tHalMsgHeader header;
3596 tHalEnterBmpsReqParams enterBmpsReq;
3597} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
3598
3599/*---------------------------------------------------------------------------
3600 * WLAN_HAL_EXIT_BMPS_REQ
3601 *--------------------------------------------------------------------------*/
3602typedef PACKED_PRE struct PACKED_POST
3603{
3604 tANI_U8 sendDataNull;
Jeff Johnsone7245742012-09-05 17:12:55 -07003605 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003606} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
3607
3608typedef PACKED_PRE struct PACKED_POST
3609{
3610 tHalMsgHeader header;
3611 tHalExitBmpsReqParams exitBmpsReqParams;
3612} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
3613
3614/*---------------------------------------------------------------------------
3615 * WLAN_HAL_ADD_BCN_FILTER_REQ
3616 *--------------------------------------------------------------------------*/
3617/* Beacon Filtering data structures */
3618typedef PACKED_PRE struct PACKED_POST
3619{
3620 tANI_U8 offset;
3621 tANI_U8 value;
3622 tANI_U8 bitMask;
3623 tANI_U8 ref;
3624} tEidByteInfo, *tpEidByteInfo;
3625
Jeff Johnson32d95a32012-09-10 13:15:23 -07003626typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003627{
3628 tANI_U16 capabilityInfo;
3629 tANI_U16 capabilityMask;
3630 tANI_U16 beaconInterval;
3631 tANI_U16 ieNum;
Madan Mohan Koyyalamudida62ada2012-10-11 17:04:03 -07003632 tANI_U8 bssIdx;
3633 tANI_U8 reserved;
Jeff Johnson295189b2012-06-20 16:38:30 -07003634} tBeaconFilterMsg, *tpBeaconFilterMsg;
3635
3636/* The above structure would be followed by multiple of below mentioned structure */
3637typedef PACKED_PRE struct PACKED_POST
3638{
3639 tANI_U8 elementId;
3640 tANI_U8 checkIePresence;
3641 tEidByteInfo byte;
3642} tBeaconFilterIe, *tpBeaconFilterIe;
3643
3644typedef PACKED_PRE struct PACKED_POST
3645{
3646 tHalMsgHeader header;
3647 tBeaconFilterMsg addBcnFilterParams;
3648} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
3649
3650/*---------------------------------------------------------------------------
3651 * WLAN_HAL_REM_BCN_FILTER_REQ
3652 *--------------------------------------------------------------------------*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07003653typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07003654{
3655 tANI_U8 ucIeCount;
3656 tANI_U8 ucRemIeId[1];
3657} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
3658
3659typedef PACKED_PRE struct PACKED_POST
3660{
3661 tHalMsgHeader header;
3662 tRemBeaconFilterMsg remBcnFilterParams;
3663} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
3664
3665/*---------------------------------------------------------------------------
3666 * WLAN_HAL_HOST_OFFLOAD_REQ
3667 *--------------------------------------------------------------------------*/
3668#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
3669#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
3670#define HAL_IPV6_NS_OFFLOAD 2
3671#define HAL_IPV6_ADDR_LEN 16
3672#define HAL_MAC_ADDR_LEN 6
3673#define HAL_OFFLOAD_DISABLE 0
3674#define HAL_OFFLOAD_ENABLE 1
3675#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
3676#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
3677
3678typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
3679{
3680 tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
3681 tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
3682 //Only support 2 possible Network Advertisement IPv6 address
3683 tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
3684 tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
3685 tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
3686 tANI_U8 srcIPv6AddrValid : 1;
3687 tANI_U8 targetIPv6Addr1Valid : 1;
3688 tANI_U8 targetIPv6Addr2Valid : 1;
3689 tANI_U8 reserved1 : 5;
3690 tANI_U8 reserved2; //make it DWORD aligned
Jeff Johnsone7245742012-09-05 17:12:55 -07003691 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003692} tHalNSOffloadParams;
3693
3694typedef PACKED_PRE struct PACKED_POST
3695{
3696 tANI_U8 offloadType;
3697 tANI_U8 enableOrDisable;
3698 PACKED_PRE union PACKED_POST
3699 {
3700 tANI_U8 hostIpv4Addr [4];
3701 tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
3702 } params;
3703} tHalHostOffloadReq, *tpHalHostOffloadReq;
3704
3705typedef PACKED_PRE struct PACKED_POST
3706{
3707 tHalMsgHeader header;
3708 tHalHostOffloadReq hostOffloadParams;
3709 tHalNSOffloadParams nsOffloadParams;
3710} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
3711
3712/*---------------------------------------------------------------------------
3713 * WLAN_HAL_KEEP_ALIVE_REQ
3714 *--------------------------------------------------------------------------*/
3715/* Packet Types. */
3716#define HAL_KEEP_ALIVE_NULL_PKT 1
3717#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
3718
3719/* Enable or disable keep alive */
3720#define HAL_KEEP_ALIVE_DISABLE 0
3721#define HAL_KEEP_ALIVE_ENABLE 1
3722
3723/* Keep Alive request. */
3724typedef PACKED_PRE struct PACKED_POST
3725{
3726 tANI_U8 packetType;
3727 tANI_U32 timePeriod;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003728 tHalIpv4Addr hostIpv4Addr;
Jeff Johnson295189b2012-06-20 16:38:30 -07003729 tHalIpv4Addr destIpv4Addr;
3730 tSirMacAddr destMacAddr;
Jeff Johnsone7245742012-09-05 17:12:55 -07003731 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003732} tHalKeepAliveReq, *tpHalKeepAliveReq;
3733
3734typedef PACKED_PRE struct PACKED_POST
3735{
3736 tHalMsgHeader header;
3737 tHalKeepAliveReq KeepAliveParams;
3738} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
3739
3740/*---------------------------------------------------------------------------
3741 * WLAN_HAL_SET_RSSI_THRESH_REQ
3742 *--------------------------------------------------------------------------*/
3743typedef PACKED_PRE struct PACKED_POST
3744{
3745 tANI_S8 ucRssiThreshold1 : 8;
3746 tANI_S8 ucRssiThreshold2 : 8;
3747 tANI_S8 ucRssiThreshold3 : 8;
3748 tANI_U8 bRssiThres1PosNotify : 1;
3749 tANI_U8 bRssiThres1NegNotify : 1;
3750 tANI_U8 bRssiThres2PosNotify : 1;
3751 tANI_U8 bRssiThres2NegNotify : 1;
3752 tANI_U8 bRssiThres3PosNotify : 1;
3753 tANI_U8 bRssiThres3NegNotify : 1;
3754 tANI_U8 bReserved10 : 2;
3755} tHalRSSIThresholds, *tpHalRSSIThresholds;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003756
Jeff Johnson295189b2012-06-20 16:38:30 -07003757typedef PACKED_PRE struct PACKED_POST
3758{
3759 tHalMsgHeader header;
3760 tHalRSSIThresholds rssiThreshParams;
3761} tHalRSSIThresholdsReqMsg, *tpHalRSSIThresholdReqMsg;
3762
3763/*---------------------------------------------------------------------------
3764 * WLAN_HAL_ENTER_UAPSD_REQ
3765 *--------------------------------------------------------------------------*/
3766typedef PACKED_PRE struct PACKED_POST
3767{
3768 tANI_U8 bkDeliveryEnabled:1;
3769 tANI_U8 beDeliveryEnabled:1;
3770 tANI_U8 viDeliveryEnabled:1;
3771 tANI_U8 voDeliveryEnabled:1;
3772 tANI_U8 bkTriggerEnabled:1;
3773 tANI_U8 beTriggerEnabled:1;
3774 tANI_U8 viTriggerEnabled:1;
3775 tANI_U8 voTriggerEnabled:1;
Jeff Johnsone7245742012-09-05 17:12:55 -07003776 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003777} tUapsdReqParams, *tpUapsdReqParams;
3778
3779typedef PACKED_PRE struct PACKED_POST
3780{
3781 tHalMsgHeader header;
3782 tUapsdReqParams enterUapsdParams;
3783} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
3784
3785/*---------------------------------------------------------------------------
3786 * WLAN_HAL_EXIT_UAPSD_REQ
3787 *--------------------------------------------------------------------------*/
3788typedef PACKED_PRE struct PACKED_POST
3789{
3790 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07003791 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003792} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
3793
3794/*---------------------------------------------------------------------------
3795 * WLAN_HAL_ADD_WOWL_BCAST_PTRN
3796 *--------------------------------------------------------------------------*/
3797#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
3798#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
3799
3800typedef PACKED_PRE struct PACKED_POST
3801{
3802 tANI_U8 ucPatternId; // Pattern ID
3803 // Pattern byte offset from beginning of the 802.11 packet to start of the
3804 // wake-up pattern
Jeff Johnson32d95a32012-09-10 13:15:23 -07003805 tANI_U8 ucPatternByteOffset;
Jeff Johnson295189b2012-06-20 16:38:30 -07003806 tANI_U8 ucPatternSize; // Non-Zero Pattern size
3807 tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
3808 tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
3809 tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
3810 tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
3811 tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
Jeff Johnsone7245742012-09-05 17:12:55 -07003812 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003813} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
3814
3815typedef PACKED_PRE struct PACKED_POST
3816{
3817 tHalMsgHeader header;
3818 tHalWowlAddBcastPtrn ptrnParams;
3819} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003820
Jeff Johnsone7245742012-09-05 17:12:55 -07003821
3822
Jeff Johnson295189b2012-06-20 16:38:30 -07003823/*---------------------------------------------------------------------------
3824 * WLAN_HAL_DEL_WOWL_BCAST_PTRN
3825 *--------------------------------------------------------------------------*/
3826typedef PACKED_PRE struct PACKED_POST
3827{
3828 /* Pattern ID of the wakeup pattern to be deleted */
3829 tANI_U8 ucPatternId;
Jeff Johnsone7245742012-09-05 17:12:55 -07003830 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07003831} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
3832
3833typedef PACKED_PRE struct PACKED_POST
3834{
3835 tHalMsgHeader header;
3836 tHalWowlDelBcastPtrn ptrnParams;
3837} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
3838
3839/*---------------------------------------------------------------------------
3840 * WLAN_HAL_ENTER_WOWL_REQ
3841 *--------------------------------------------------------------------------*/
3842typedef PACKED_PRE struct PACKED_POST
3843{
3844 /* Enables/disables magic packet filtering */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003845 tANI_U8 ucMagicPktEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003846
3847 /* Magic pattern */
3848 tSirMacAddr magicPtrn;
3849
Jeff Johnson32d95a32012-09-10 13:15:23 -07003850 /* Enables/disables packet pattern filtering in firmware.
3851 Enabling this flag enables broadcast pattern matching
3852 in Firmware. If unicast pattern matching is also desired,
3853 ucUcastPatternFilteringEnable flag must be set tot true
3854 as well
Jeff Johnson295189b2012-06-20 16:38:30 -07003855 */
3856 tANI_U8 ucPatternFilteringEnable;
3857
Jeff Johnson32d95a32012-09-10 13:15:23 -07003858 /* Enables/disables unicast packet pattern filtering.
3859 This flag specifies whether we want to do pattern match
3860 on unicast packets as well and not just broadcast packets.
3861 This flag has no effect if the ucPatternFilteringEnable
Jeff Johnson295189b2012-06-20 16:38:30 -07003862 (main controlling flag) is set to false
3863 */
Jeff Johnson32d95a32012-09-10 13:15:23 -07003864 tANI_U8 ucUcastPatternFilteringEnable;
Jeff Johnson295189b2012-06-20 16:38:30 -07003865
Jeff Johnson32d95a32012-09-10 13:15:23 -07003866 /* This configuration is valid only when magicPktEnable=1.
3867 * It requests hardware to wake up when it receives the
Jeff Johnson295189b2012-06-20 16:38:30 -07003868 * Channel Switch Action Frame.
3869 */
3870 tANI_U8 ucWowChnlSwitchRcv;
3871
Jeff Johnson32d95a32012-09-10 13:15:23 -07003872 /* This configuration is valid only when magicPktEnable=1.
3873 * It requests hardware to wake up when it receives the
3874 * Deauthentication Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003875 */
3876 tANI_U8 ucWowDeauthRcv;
3877
Jeff Johnson32d95a32012-09-10 13:15:23 -07003878 /* This configuration is valid only when magicPktEnable=1.
3879 * It requests hardware to wake up when it receives the
3880 * Disassociation Frame.
Jeff Johnson295189b2012-06-20 16:38:30 -07003881 */
3882 tANI_U8 ucWowDisassocRcv;
3883
Jeff Johnson32d95a32012-09-10 13:15:23 -07003884 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003885 * It requests hardware to wake up when it has missed
3886 * consecutive beacons. This is a hardware register
Jeff Johnson32d95a32012-09-10 13:15:23 -07003887 * configuration (NOT a firmware configuration).
Jeff Johnson295189b2012-06-20 16:38:30 -07003888 */
3889 tANI_U8 ucWowMaxMissedBeacons;
3890
Jeff Johnson32d95a32012-09-10 13:15:23 -07003891 /* This configuration is valid only when magicPktEnable=1.
Jeff Johnson295189b2012-06-20 16:38:30 -07003892 * This is a timeout value in units of microsec. It requests
3893 * hardware to unconditionally wake up after it has stayed
Jeff Johnson32d95a32012-09-10 13:15:23 -07003894 * in WoWLAN mode for some time. Set 0 to disable this feature.
Jeff Johnson295189b2012-06-20 16:38:30 -07003895 */
3896 tANI_U8 ucWowMaxSleepUsec;
Jeff Johnson32d95a32012-09-10 13:15:23 -07003897
Jeff Johnson295189b2012-06-20 16:38:30 -07003898 /* This configuration directs the WoW packet filtering to look for EAP-ID
3899 * requests embedded in EAPOL frames and use this as a wake source.
3900 */
3901 tANI_U8 ucWoWEAPIDRequestEnable;
3902
3903 /* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
3904 * requests and use this as a wake source.
3905 */
3906 tANI_U8 ucWoWEAPOL4WayEnable;
3907
3908 /* This configuration allows a host wakeup on an network scan offload match.
3909 */
3910 tANI_U8 ucWowNetScanOffloadMatch;
3911
3912 /* This configuration allows a host wakeup on any GTK rekeying error.
3913 */
3914 tANI_U8 ucWowGTKRekeyError;
3915
3916 /* This configuration allows a host wakeup on BSS connection loss.
3917 */
3918 tANI_U8 ucWoWBSSConnLoss;
3919
Jeff Johnsone7245742012-09-05 17:12:55 -07003920 tANI_U8 bssIdx;
3921
Jeff Johnson295189b2012-06-20 16:38:30 -07003922} tHalWowlEnterParams, *tpHalWowlEnterParams;
3923
3924typedef PACKED_PRE struct PACKED_POST
3925{
3926 tHalMsgHeader header;
3927 tHalWowlEnterParams enterWowlParams;
3928} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
3929
3930/*---------------------------------------------------------------------------
3931 * WLAN_HAL_EXIT_WOWL_REQ
3932 *--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07003933
Jeff Johnson295189b2012-06-20 16:38:30 -07003934typedef PACKED_PRE struct PACKED_POST
3935{
Jeff Johnsone7245742012-09-05 17:12:55 -07003936 tANI_U8 bssIdx;
3937
3938} tHalWowlExitParams, *tpHalWowlExitParams;
3939
3940typedef PACKED_PRE struct PACKED_POST
3941{
3942 tHalMsgHeader header;
3943 tHalWowlExitParams exitWowlParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07003944} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
3945
3946/*---------------------------------------------------------------------------
3947 * WLAN_HAL_GET_RSSI_REQ
3948 *--------------------------------------------------------------------------*/
3949typedef PACKED_PRE struct PACKED_POST
3950{
3951 tHalMsgHeader header;
3952} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
3953
3954/*---------------------------------------------------------------------------
3955 * WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
3956 *--------------------------------------------------------------------------*/
3957typedef PACKED_PRE struct PACKED_POST {
3958 tANI_U8 staidx; // STA index
3959 tANI_U8 ac; // Access Category
3960 tANI_U8 up; // User Priority
3961 tANI_U32 srvInterval; // Service Interval
3962 tANI_U32 susInterval; // Suspend Interval
3963 tANI_U32 delayInterval; // Delay Interval
3964} tUapsdInfo, tpUapsdInfo;
3965
3966typedef PACKED_PRE struct PACKED_POST
3967{
3968 tHalMsgHeader header;
3969 tUapsdInfo enableUapsdAcParams;
3970} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
3971
3972/*---------------------------------------------------------------------------
3973 * WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
3974 *--------------------------------------------------------------------------*/
3975typedef PACKED_PRE struct PACKED_POST {
3976 tANI_U8 setMcstBcstFilterSetting;
3977 tANI_U8 setMcstBcstFilter;
3978} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
3979
3980typedef PACKED_PRE struct PACKED_POST
3981{
3982 tHalMsgHeader header;
3983 tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
3984} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
3985
3986/*---------------------------------------------------------------------------
3987 * WLAN_HAL_ENTER_IMPS_RSP
3988 *--------------------------------------------------------------------------*/
3989typedef PACKED_PRE struct PACKED_POST
3990{
3991 /* success or failure */
3992 tANI_U32 status;
3993} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
3994
3995typedef PACKED_PRE struct PACKED_POST
3996{
3997 tHalMsgHeader header;
3998 tHalEnterImpsRspParams enterImpsRspParams;
3999} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
4000
4001/*---------------------------------------------------------------------------
4002 * WLAN_HAL_EXIT_IMPS_RSP
4003 *--------------------------------------------------------------------------*/
4004typedef PACKED_PRE struct PACKED_POST
4005{
4006 /* success or failure */
4007 tANI_U32 status;
4008} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
4009
4010typedef PACKED_PRE struct PACKED_POST
4011{
4012 tHalMsgHeader header;
4013 tHalExitImpsRspParams exitImpsRspParams;
4014} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
4015
4016/*---------------------------------------------------------------------------
4017 * WLAN_HAL_ENTER_BMPS_RSP
4018 *--------------------------------------------------------------------------*/
4019typedef PACKED_PRE struct PACKED_POST
4020{
4021 /* success or failure */
4022 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004023 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004024} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
4025
4026typedef PACKED_PRE struct PACKED_POST
4027{
4028 tHalMsgHeader header;
4029 tHalEnterBmpsRspParams enterBmpsRspParams;
4030} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
4031
4032/*---------------------------------------------------------------------------
4033 * WLAN_HAL_EXIT_BMPS_RSP
4034 *--------------------------------------------------------------------------*/
4035typedef PACKED_PRE struct PACKED_POST
4036{
4037 /* success or failure */
4038 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004039 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004040} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
4041
4042typedef PACKED_PRE struct PACKED_POST
4043{
4044 tHalMsgHeader header;
4045 tHalExitBmpsRspParams exitBmpsRspParams;
4046} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
4047
4048/*---------------------------------------------------------------------------
4049 * WLAN_HAL_ENTER_UAPSD_RSP
4050 *--------------------------------------------------------------------------*/
4051typedef PACKED_PRE struct PACKED_POST
4052{
4053 /* success or failure */
4054 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004055 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004056}tUapsdRspParams, *tpUapsdRspParams;
4057
4058typedef PACKED_PRE struct PACKED_POST
4059{
4060 tHalMsgHeader header;
4061 tUapsdRspParams enterUapsdRspParams;
4062} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
4063
4064/*---------------------------------------------------------------------------
4065 * WLAN_HAL_EXIT_UAPSD_RSP
4066 *--------------------------------------------------------------------------*/
4067typedef PACKED_PRE struct PACKED_POST
4068{
4069 /* success or failure */
4070 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07004071 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004072} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
4073
4074typedef PACKED_PRE struct PACKED_POST
4075{
4076 tHalMsgHeader header;
4077 tHalExitUapsdRspParams exitUapsdRspParams;
4078} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
4079
4080/*---------------------------------------------------------------------------
4081 * WLAN_HAL_RSSI_NOTIFICATION_IND
4082 *--------------------------------------------------------------------------*/
4083typedef PACKED_PRE struct PACKED_POST
4084{
4085 tANI_U32 bRssiThres1PosCross : 1;
4086 tANI_U32 bRssiThres1NegCross : 1;
4087 tANI_U32 bRssiThres2PosCross : 1;
4088 tANI_U32 bRssiThres2NegCross : 1;
4089 tANI_U32 bRssiThres3PosCross : 1;
4090 tANI_U32 bRssiThres3NegCross : 1;
Srinivasd359cf92012-12-12 15:12:42 -08004091 tANI_U32 avgRssi : 8;
4092 tANI_U32 bReserved : 18;
Jeff Johnson295189b2012-06-20 16:38:30 -07004093} tHalRSSINotification, *tpHalRSSINotification;
4094
4095typedef PACKED_PRE struct PACKED_POST
4096{
4097 tHalMsgHeader header;
4098 tHalRSSINotification rssiNotificationParams;
4099} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
4100
4101/*---------------------------------------------------------------------------
4102 * WLAN_HAL_GET_RSSI_RSP
4103 *--------------------------------------------------------------------------*/
4104typedef PACKED_PRE struct PACKED_POST
4105{
4106 /* success or failure */
4107 tANI_U32 status;
4108 tANI_S8 rssi;
4109} tHalGetRssiParams, *tpHalGetRspParams;
4110
4111typedef PACKED_PRE struct PACKED_POST
4112{
4113 tHalMsgHeader header;
4114 tHalGetRssiParams rssiRspParams;
4115} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
4116
4117/*---------------------------------------------------------------------------
4118 * WLAN_HAL_ENTER_WOWL_RSP
4119 *--------------------------------------------------------------------------*/
4120typedef PACKED_PRE struct PACKED_POST
4121{
4122 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004123 tANI_U32 status;
4124 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004125} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
4126
4127typedef PACKED_PRE struct PACKED_POST
4128{
4129 tHalMsgHeader header;
4130 tHalEnterWowlRspParams enterWowlRspParams;
4131} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
4132
4133/*---------------------------------------------------------------------------
4134 * WLAN_HAL_EXIT_WOWL_RSP
4135 *--------------------------------------------------------------------------*/
4136typedef PACKED_PRE struct PACKED_POST
4137{
4138 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004139 tANI_U32 status;
4140 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004141} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
4142
4143typedef PACKED_PRE struct PACKED_POST
4144{
4145 tHalMsgHeader header;
4146 tHalExitWowlRspParams exitWowlRspParams;
4147} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
4148
4149/*---------------------------------------------------------------------------
4150 * WLAN_HAL_ADD_BCN_FILTER_RSP
4151 *--------------------------------------------------------------------------*/
4152typedef PACKED_PRE struct PACKED_POST
4153{
4154 /* success or failure */
4155 tANI_U32 status;
4156} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
4157
4158typedef PACKED_PRE struct PACKED_POST
4159{
4160 tHalMsgHeader header;
4161 tHalAddBcnFilterRspParams addBcnFilterRspParams;
4162} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
4163
4164/*---------------------------------------------------------------------------
4165 * WLAN_HAL_REM_BCN_FILTER_RSP
4166 *--------------------------------------------------------------------------*/
4167typedef PACKED_PRE struct PACKED_POST
4168{
4169 /* success or failure */
4170 tANI_U32 status;
4171} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
4172
4173typedef PACKED_PRE struct PACKED_POST
4174{
4175 tHalMsgHeader header;
4176 tHalRemBcnFilterRspParams remBcnFilterRspParams;
4177} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
4178
4179/*---------------------------------------------------------------------------
4180 * WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
4181 *--------------------------------------------------------------------------*/
4182typedef PACKED_PRE struct PACKED_POST
4183{
4184 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004185 tANI_U32 status;
4186 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004187} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
4188
4189typedef PACKED_PRE struct PACKED_POST
4190{
4191 tHalMsgHeader header;
4192 tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
4193} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
4194
4195/*---------------------------------------------------------------------------
4196 * WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
4197 *--------------------------------------------------------------------------*/
4198typedef PACKED_PRE struct PACKED_POST
4199{
4200 /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07004201 tANI_U32 status;
4202 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004203} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
4204
4205typedef PACKED_PRE struct PACKED_POST
4206{
4207 tHalMsgHeader header;
4208 tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
4209} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
4210
4211/*---------------------------------------------------------------------------
4212 * WLAN_HAL_HOST_OFFLOAD_RSP
4213 *--------------------------------------------------------------------------*/
4214typedef PACKED_PRE struct PACKED_POST
4215{
4216 /* success or failure */
4217 tANI_U32 status;
4218} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
4219
4220typedef PACKED_PRE struct PACKED_POST
4221{
4222 tHalMsgHeader header;
4223 tHalHostOffloadRspParams hostOffloadRspParams;
4224} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
4225
4226/*---------------------------------------------------------------------------
4227 * WLAN_HAL_KEEP_ALIVE_RSP
4228 *--------------------------------------------------------------------------*/
4229typedef PACKED_PRE struct PACKED_POST
4230{
4231 /* success or failure */
4232 tANI_U32 status;
4233} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
4234
4235typedef PACKED_PRE struct PACKED_POST
4236{
4237 tHalMsgHeader header;
4238 tHalKeepAliveRspParams keepAliveRspParams;
4239} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
4240
4241/*---------------------------------------------------------------------------
4242 * WLAN_HAL_SET_RSSI_THRESH_RSP
4243 *--------------------------------------------------------------------------*/
4244typedef PACKED_PRE struct PACKED_POST
4245{
4246 /* success or failure */
4247 tANI_U32 status;
4248} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
4249
4250typedef PACKED_PRE struct PACKED_POST
4251{
4252 tHalMsgHeader header;
4253 tHalSetRssiThreshRspParams setRssiThreshRspParams;
4254} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
4255
4256/*---------------------------------------------------------------------------
4257 * WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
4258 *--------------------------------------------------------------------------*/
4259typedef PACKED_PRE struct PACKED_POST
4260{
4261 /* success or failure */
4262 tANI_U32 status;
4263} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
4264
4265typedef PACKED_PRE struct PACKED_POST
4266{
4267 tHalMsgHeader header;
4268 tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
4269} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
4270
4271/*---------------------------------------------------------------------------
4272 * WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
4273 *--------------------------------------------------------------------------*/
4274typedef PACKED_PRE struct PACKED_POST
4275{
4276 /* success or failure */
4277 tANI_U32 status;
4278} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
4279
4280typedef PACKED_PRE struct PACKED_POST
4281{
4282 tHalMsgHeader header;
4283 tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
4284} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
4285
4286/*---------------------------------------------------------------------------
4287 *WLAN_HAL_SET_MAX_TX_POWER_REQ
4288 *--------------------------------------------------------------------------*/
4289
4290typedef PACKED_PRE struct PACKED_POST
4291{
4292 tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
4293 //the request has power constraints, this should be applied only to that session
4294 tSirMacAddr selfStaMacAddr;
4295 //In request,
4296 //power == MaxTx power to be used.
4297 tPowerdBm power;
4298
4299}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
4300
4301
4302typedef PACKED_PRE struct PACKED_POST
4303{
4304 tHalMsgHeader header;
4305 tSetMaxTxPwrParams setMaxTxPwrParams;
4306}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
4307
4308/*---------------------------------------------------------------------------
4309*WLAN_HAL_SET_MAX_TX_POWER_RSP
4310*--------------------------------------------------------------------------*/
4311
4312typedef PACKED_PRE struct PACKED_POST
4313{
4314 //power == tx power used for management frames.
4315 tPowerdBm power;
4316
4317 /* success or failure */
4318 tANI_U32 status;
4319}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
4320
4321typedef PACKED_PRE struct PACKED_POST
4322{
4323 tHalMsgHeader header;
4324 tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
4325}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
4326
4327/*---------------------------------------------------------------------------
4328 *WLAN_HAL_SET_TX_POWER_REQ
4329 *--------------------------------------------------------------------------*/
4330
4331typedef PACKED_PRE struct PACKED_POST
4332{
4333 /* TX Power in milli watts */
4334 tANI_U32 txPower;
Jeff Johnsone7245742012-09-05 17:12:55 -07004335 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07004336}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
4337
4338
4339typedef PACKED_PRE struct PACKED_POST
4340{
4341 tHalMsgHeader header;
4342 tSetTxPwrReqParams setTxPwrReqParams;
4343}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
4344
4345/*---------------------------------------------------------------------------
4346*WLAN_HAL_SET_TX_POWER_RSP
4347*--------------------------------------------------------------------------*/
4348
4349typedef PACKED_PRE struct PACKED_POST
4350{
4351 /* success or failure */
4352 tANI_U32 status;
4353}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
4354
4355typedef PACKED_PRE struct PACKED_POST
4356{
4357 tHalMsgHeader header;
4358 tSetTxPwrRspParams setTxPwrRspParams;
4359}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
4360
4361/*---------------------------------------------------------------------------
4362 *WLAN_HAL_GET_TX_POWER_REQ
4363 *--------------------------------------------------------------------------*/
4364
4365typedef PACKED_PRE struct PACKED_POST
4366{
4367 tANI_U8 staId;
4368}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
4369
4370typedef PACKED_PRE struct PACKED_POST
4371{
4372 tHalMsgHeader header;
4373 tGetTxPwrReqParams getTxPwrReqParams;
4374}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
4375
4376/*---------------------------------------------------------------------------
4377*WLAN_HAL_GET_TX_POWER_RSP
4378*--------------------------------------------------------------------------*/
4379
4380typedef PACKED_PRE struct PACKED_POST
4381{
4382 /* success or failure */
4383 tANI_U32 status;
4384
4385 /* TX Power in milli watts */
4386 tANI_U32 txPower;
4387}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
4388
4389typedef PACKED_PRE struct PACKED_POST
4390{
4391 tHalMsgHeader header;
4392 tGetTxPwrRspParams getTxPwrRspParams;
4393}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
4394
4395#ifdef WLAN_FEATURE_P2P
4396/*---------------------------------------------------------------------------
4397 *WLAN_HAL_SET_P2P_GONOA_REQ
4398 *--------------------------------------------------------------------------*/
4399
4400typedef PACKED_PRE struct PACKED_POST
4401{
4402 tANI_U8 opp_ps;
4403 tANI_U32 ctWindow;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004404 tANI_U8 count;
Jeff Johnson295189b2012-06-20 16:38:30 -07004405 tANI_U32 duration;
4406 tANI_U32 interval;
4407 tANI_U32 single_noa_duration;
4408 tANI_U8 psSelection;
4409}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
4410
4411
4412typedef PACKED_PRE struct PACKED_POST
4413{
4414 tHalMsgHeader header;
4415 tSetP2PGONOAParams setP2PGONOAParams;
4416}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
4417
4418/*---------------------------------------------------------------------------
4419*WLAN_HAL_SET_P2P_GONOA_RSP
4420*--------------------------------------------------------------------------*/
4421
4422typedef PACKED_PRE struct PACKED_POST
4423{
4424 /* success or failure */
4425 tANI_U32 status;
4426}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
4427
4428typedef PACKED_PRE struct PACKED_POST
4429{
4430 tHalMsgHeader header;
4431 tSetP2PGONOARspParams setP2PGONOARspParams;
4432}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
4433#endif
4434
4435/*---------------------------------------------------------------------------
4436 *WLAN_HAL_ADD_SELF_STA_REQ
4437 *--------------------------------------------------------------------------*/
4438
4439typedef PACKED_PRE struct PACKED_POST
4440{
4441 tSirMacAddr selfMacAddr;
4442 tANI_U32 status;
4443}tAddStaSelfParams, *tpAddStaSelfParams;
4444
4445
4446typedef PACKED_PRE struct PACKED_POST
4447{
4448 tHalMsgHeader header;
4449 tAddStaSelfParams addStaSelfParams;
4450}tAddStaSelfReq, *tpAddStaSelfReq;
4451
4452/*---------------------------------------------------------------------------
4453*WLAN_HAL_ADD_SELF_STA_RSP
4454*--------------------------------------------------------------------------*/
4455
4456typedef PACKED_PRE struct PACKED_POST
4457{
4458 /* success or failure */
4459 tANI_U32 status;
4460
4461 /*Self STA Index */
4462 tANI_U8 selfStaIdx;
4463
4464 /* DPU Index (IGTK, PTK, GTK all same) */
4465 tANI_U8 dpuIdx;
4466
4467 /* DPU Signature */
4468 tANI_U8 dpuSignature;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004469
Jeff Johnson295189b2012-06-20 16:38:30 -07004470}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
4471
4472typedef PACKED_PRE struct PACKED_POST
4473{
4474 tHalMsgHeader header;
4475 tAddStaSelfRspParams addStaSelfRspParams;
4476}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
4477
4478
4479/*---------------------------------------------------------------------------
4480 WLAN_HAL_DEL_STA_SELF_REQ
4481---------------------------------------------------------------------------*/
4482
4483typedef PACKED_PRE struct PACKED_POST
4484{
4485 tSirMacAddr selfMacAddr;
4486
4487}tDelStaSelfParams, *tpDelStaSelfParams;
4488
4489typedef PACKED_PRE struct PACKED_POST
4490{
4491 tHalMsgHeader header;
4492 tDelStaSelfParams delStaSelfParams;
4493} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
4494
4495
4496/*---------------------------------------------------------------------------
4497 WLAN_HAL_DEL_STA_SELF_RSP
4498---------------------------------------------------------------------------*/
4499
4500typedef PACKED_PRE struct PACKED_POST
4501{
4502 /*success or failure */
4503 tANI_U32 status;
4504
4505 tSirMacAddr selfMacAddr;
4506}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
4507
4508typedef PACKED_PRE struct PACKED_POST
4509{
4510 tHalMsgHeader header;
4511 tDelStaSelfRspParams delStaSelfRspParams;
4512} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
4513
4514
4515#ifdef WLAN_FEATURE_VOWIFI_11R
4516
4517/*---------------------------------------------------------------------------
4518 *WLAN_HAL_AGGR_ADD_TS_REQ
4519 *--------------------------------------------------------------------------*/
4520
4521typedef PACKED_PRE struct PACKED_POST
4522{
4523 /* Station Index */
4524 tANI_U16 staIdx;
4525
4526 /* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
4527 /* This will carry the bitmap with the bit positions representing different AC.s*/
4528 tANI_U16 tspecIdx;
4529
4530 /* Tspec info per AC To program TPE with required parameters */
4531 tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
4532
4533 /* U-APSD Flags: 1b per AC. Encoded as follows:
4534 b7 b6 b5 b4 b3 b2 b1 b0 =
4535 X X X X BE BK VI VO */
4536 tANI_U8 uAPSD;
4537
4538 /* These parameters are for all the access categories */
4539 tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
4540 tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
4541 tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
4542
4543}tAggrAddTsParams, *tpAggrAddTsParams;
4544
4545
4546typedef PACKED_PRE struct PACKED_POST
4547{
4548 tHalMsgHeader header;
4549 tAggrAddTsParams aggrAddTsParam;
4550}tAggrAddTsReq, *tpAggrAddTsReq;
4551
4552/*---------------------------------------------------------------------------
4553*WLAN_HAL_AGGR_ADD_TS_RSP
4554*--------------------------------------------------------------------------*/
4555
4556typedef PACKED_PRE struct PACKED_POST
4557{
4558 /* success or failure */
4559 tANI_U32 status0;
4560 /* FIXME PRIMA for future use for 11R */
4561 tANI_U32 status1;
4562}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
4563
4564typedef PACKED_PRE struct PACKED_POST
4565{
4566 tHalMsgHeader header;
4567 tAggrAddTsRspParams aggrAddTsRspParam;
4568}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
4569
4570#endif
4571
4572/*---------------------------------------------------------------------------
4573 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
4574 *--------------------------------------------------------------------------*/
4575typedef PACKED_PRE struct PACKED_POST
4576{
4577 tANI_U8 isAppsCpuAwake;
4578} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
4579
4580typedef PACKED_PRE struct PACKED_POST
4581{
4582 tHalMsgHeader header;
4583 tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
4584} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
4585
4586/*---------------------------------------------------------------------------
4587 * WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
4588 *--------------------------------------------------------------------------*/
4589typedef PACKED_PRE struct PACKED_POST
4590{
4591 /* success or failure */
4592 tANI_U32 status;
4593} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
4594
4595typedef PACKED_PRE struct PACKED_POST
4596{
4597 tHalMsgHeader header;
4598 tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
4599} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
4600/*---------------------------------------------------------------------------
4601 * WLAN_HAL_DUMP_COMMAND_REQ
4602 *--------------------------------------------------------------------------*/
4603
4604typedef PACKED_PRE struct PACKED_POST
4605{
4606 tANI_U32 argument1;
4607 tANI_U32 argument2;
4608 tANI_U32 argument3;
4609 tANI_U32 argument4;
4610 tANI_U32 argument5;
4611
4612}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
4613
4614typedef PACKED_PRE struct PACKED_POST
4615{
4616 tHalMsgHeader header;
4617 tHalDumpCmdReqParams dumpCmdReqParams;
4618} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
4619
4620/*---------------------------------------------------------------------------
4621 * WLAN_HAL_DUMP_COMMAND_RSP
4622 *--------------------------------------------------------------------------*/
4623
4624typedef PACKED_PRE struct PACKED_POST
4625{
4626 /* success or failure */
4627 tANI_U32 status;
4628 /*Length of the responce message*/
4629 tANI_U32 rspLength;
4630 /*FiXME: Currently considering the the responce will be less than 100bytes */
4631 tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
Jeff Johnson32d95a32012-09-10 13:15:23 -07004632
Jeff Johnson295189b2012-06-20 16:38:30 -07004633} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
4634
4635typedef PACKED_PRE struct PACKED_POST
4636{
4637 tHalMsgHeader header;
4638 tHalDumpCmdRspParams dumpCmdRspParams;
4639} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
4640
4641/*---------------------------------------------------------------------------
4642 *WLAN_HAL_COEX_IND
4643 *-------------------------------------------------------------------------*/
4644#define WLAN_COEX_IND_DATA_SIZE (4)
4645#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
4646#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
4647
4648typedef PACKED_PRE struct PACKED_POST
4649{
4650 /*Coex Indication Type*/
4651 tANI_U32 coexIndType;
4652
4653 /*Coex Indication Data*/
4654 tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
4655}tCoexIndParams,*tpCoexIndParams;
4656
4657typedef PACKED_PRE struct PACKED_POST
4658{
4659 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004660 tCoexIndParams coexIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004661}tCoexIndMsg, *tpCoexIndMsg;
4662
4663/*---------------------------------------------------------------------------
4664 *WLAN_HAL_OTA_TX_COMPL_IND
4665 *-------------------------------------------------------------------------*/
4666
4667typedef PACKED_PRE struct PACKED_POST
4668{
4669 /*Tx Complete Indication Success or Failure*/
4670 tANI_U32 status;
4671}tTxComplParams,*tpTxComplParams;
4672
4673typedef PACKED_PRE struct PACKED_POST
4674{
4675 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004676 tTxComplParams txComplParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004677}tTxComplIndMsg, *tpTxComplIndMsg;
4678
4679/*---------------------------------------------------------------------------
4680 * WLAN_HAL_HOST_SUSPEND_IND
4681 *-------------------------------------------------------------------------*/
4682
4683typedef PACKED_PRE struct PACKED_POST
4684{
4685 tANI_U32 configuredMcstBcstFilterSetting;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004686 tANI_U32 activeSessionCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004687}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
4688
4689typedef PACKED_PRE struct PACKED_POST
4690{
4691 tHalMsgHeader header;
4692 tHalWlanHostSuspendIndParam suspendIndParams;
4693}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
4694
4695/*---------------------------------------------------------------------------
4696 * WLAN_HAL_EXCLUDE_UNENCRYTED_IND
4697 *-------------------------------------------------------------------------*/
4698
4699typedef PACKED_PRE struct PACKED_POST
4700{
4701 tANI_BOOLEAN bDot11ExcludeUnencrypted;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004702 tSirMacAddr bssId;
Jeff Johnson295189b2012-06-20 16:38:30 -07004703}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
4704
4705typedef PACKED_PRE struct PACKED_POST
4706{
4707 tHalMsgHeader header;
4708 tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
4709}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
4710
4711#ifdef WLAN_FEATURE_P2P
4712/*---------------------------------------------------------------------------
4713 *WLAN_HAL_NOA_ATTR_IND
4714 *-------------------------------------------------------------------------*/
4715
4716typedef PACKED_PRE struct PACKED_POST
4717{
4718 tANI_U8 index ;
4719 tANI_U8 oppPsFlag ;
4720 tANI_U16 ctWin ;
4721
4722 tANI_U16 uNoa1IntervalCnt;
4723 tANI_U16 rsvd1 ;
4724 tANI_U32 uNoa1Duration;
4725 tANI_U32 uNoa1Interval;
4726 tANI_U32 uNoa1StartTime;
4727
4728 tANI_U16 uNoa2IntervalCnt;
4729 tANI_U16 rsvd2;
4730 tANI_U32 uNoa2Duration;
4731 tANI_U32 uNoa2Interval;
4732 tANI_U32 uNoa2StartTime;
4733
4734 tANI_U32 status;
4735}tNoaAttrIndParams, *tpNoaAttrIndParams;
4736
4737typedef PACKED_PRE struct PACKED_POST
4738{
4739 tHalMsgHeader header;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004740 tNoaAttrIndParams noaAttrIndParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07004741}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
Viral Modie50b1d42012-12-10 13:04:52 -08004742
4743/*---------------------------------------------------------------------------
4744 *WLAN_HAL_NOA_START_IND
4745 *-------------------------------------------------------------------------*/
4746
4747typedef PACKED_PRE struct PACKED_POST
4748{
4749 tANI_U32 status;
4750 tANI_U32 bssIdx;
4751}tNoaStartIndParams, *tpNoaStartIndParams;
4752
4753typedef PACKED_PRE struct PACKED_POST
4754{
4755 tHalMsgHeader header;
4756 tNoaStartIndParams noaStartIndParams;
4757}tNoaStartIndMsg, tpNoaStartIndMsg;
Jeff Johnson295189b2012-06-20 16:38:30 -07004758#endif
4759
4760/*---------------------------------------------------------------------------
4761 * WLAN_HAL_HOST_RESUME_REQ
4762 *-------------------------------------------------------------------------*/
4763
4764typedef PACKED_PRE struct PACKED_POST
4765{
4766 tANI_U8 configuredMcstBcstFilterSetting;
4767}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
4768
4769typedef PACKED_PRE struct PACKED_POST
4770{
4771 tHalMsgHeader header;
4772 tHalWlanHostResumeReqParam resumeReqParams;
4773}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
4774
4775/*---------------------------------------------------------------------------
4776 * WLAN_HAL_HOST_RESUME_RSP
4777 *--------------------------------------------------------------------------*/
4778typedef PACKED_PRE struct PACKED_POST
4779{
4780 /* success or failure */
4781 tANI_U32 status;
4782} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
4783
4784typedef PACKED_PRE struct PACKED_POST
4785{
4786 tHalMsgHeader header;
4787 tHalHostResumeRspParams hostResumeRspParams;
4788} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
4789
4790/*---------------------------------------------------------------------------
4791 *PNO Messages
4792 *-------------------------------------------------------------------------*/
4793/*Max number of channels that a network can be found on*/
4794#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 26
4795
Pratik Bhalgatd4404592012-11-22 17:49:14 +05304796/*Max number of channels that a network can be found on*/
4797#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
4798
Jeff Johnson295189b2012-06-20 16:38:30 -07004799/*Maximum numbers of networks supported by PNO*/
4800#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
4801
4802/*The number of scan time intervals that can be programmed into PNO*/
4803#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
4804
4805/*Maximum size of the probe template*/
4806#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
4807
Jeff Johnson32d95a32012-09-10 13:15:23 -07004808/*Type of PNO enabling
Jeff Johnson295189b2012-06-20 16:38:30 -07004809 Immediate - scanning will start immediately and PNO procedure will
4810 be repeated based on timer
4811 Suspend - scanning will start at suspend
4812 Resume - scanning will start on system resume*/
4813typedef enum
4814{
4815 ePNO_MODE_IMMEDIATE,
4816 ePNO_MODE_ON_SUSPEND,
4817 ePNO_MODE_ON_RESUME,
4818 ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4819} ePNOMode;
4820
4821/*Authentication type*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004822typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07004823{
Jeff Johnson32d95a32012-09-10 13:15:23 -07004824 eAUTH_TYPE_ANY = 0,
Jeff Johnson295189b2012-06-20 16:38:30 -07004825 eAUTH_TYPE_OPEN_SYSTEM = 1,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004826
Jeff Johnson295189b2012-06-20 16:38:30 -07004827 // Upper layer authentication types
4828 eAUTH_TYPE_WPA = 2,
4829 eAUTH_TYPE_WPA_PSK = 3,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004830
Jeff Johnson295189b2012-06-20 16:38:30 -07004831 eAUTH_TYPE_RSN = 4,
4832 eAUTH_TYPE_RSN_PSK = 5,
4833 eAUTH_TYPE_FT_RSN = 6,
4834 eAUTH_TYPE_FT_RSN_PSK = 7,
4835 eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
4836 eAUTH_TYPE_WAPI_WAI_PSK = 9,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004837
Jeff Johnson295189b2012-06-20 16:38:30 -07004838 eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4839
4840}tAuthType;
4841
4842/* Encryption type */
4843typedef enum eEdType
4844{
4845 eED_ANY = 0,
4846 eED_NONE = 1,
4847 eED_WEP = 2,
4848 eED_TKIP = 3,
4849 eED_CCMP = 4,
4850 eED_WPI = 5,
Jeff Johnson32d95a32012-09-10 13:15:23 -07004851
Jeff Johnson295189b2012-06-20 16:38:30 -07004852 eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4853} tEdType;
4854
4855/* SSID broadcast type */
4856typedef enum eSSIDBcastType
4857{
4858 eBCAST_UNKNOWN = 0,
4859 eBCAST_NORMAL = 1,
4860 eBCAST_HIDDEN = 2,
4861
4862 eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
4863} tSSIDBcastType;
4864
Jeff Johnson32d95a32012-09-10 13:15:23 -07004865/*
Jeff Johnson295189b2012-06-20 16:38:30 -07004866 The network description for which PNO will have to look for
4867*/
4868typedef PACKED_PRE struct PACKED_POST
4869{
4870 /*SSID of the BSS*/
4871 tSirMacSSid ssId;
4872
4873 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004874 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07004875
4876 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004877 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07004878
Jeff Johnson32d95a32012-09-10 13:15:23 -07004879 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07004880 0 - if all channels */
4881 tANI_U8 ucChannelCount;
4882 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
4883
4884 /*Indicates the RSSI threshold for the network to be considered*/
4885 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004886}tNetworkType;
Jeff Johnson295189b2012-06-20 16:38:30 -07004887
4888typedef PACKED_PRE struct PACKED_POST
4889{
4890 /*How much it should wait */
Jeff Johnson32d95a32012-09-10 13:15:23 -07004891 tANI_U32 uTimerValue;
Jeff Johnson295189b2012-06-20 16:38:30 -07004892
Jeff Johnson32d95a32012-09-10 13:15:23 -07004893 /*How many times it should repeat that wait value
Jeff Johnson295189b2012-06-20 16:38:30 -07004894 0 - keep using this timer until PNO is disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004895 tANI_U32 uTimerRepeat;
Jeff Johnson295189b2012-06-20 16:38:30 -07004896
Jeff Johnson32d95a32012-09-10 13:15:23 -07004897 /*e.g: 2 3
4898 4 0
Jeff Johnson295189b2012-06-20 16:38:30 -07004899 - it will wait 2s between consecutive scans for 3 times
4900 - after that it will wait 4s between consecutive scans until disabled*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004901}tScanTimer;
Jeff Johnson295189b2012-06-20 16:38:30 -07004902
Jeff Johnson32d95a32012-09-10 13:15:23 -07004903/*
Jeff Johnson295189b2012-06-20 16:38:30 -07004904 The network parameters to be sent to the PNO algorithm
4905*/
4906typedef PACKED_PRE struct PACKED_POST
4907{
4908 /*set to 0 if you wish for PNO to use its default telescopic timer*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004909 tANI_U8 ucScanTimersCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004910
Jeff Johnson32d95a32012-09-10 13:15:23 -07004911 /*A set value represents the amount of time that PNO will wait between
Jeff Johnson295189b2012-06-20 16:38:30 -07004912 two consecutive scan procedures
4913 If the desired is for a uniform timer that fires always at the exact same
4914 interval - one single value is to be set
4915 If there is a desire for a more complex - telescopic like timer multiple
4916 values can be set - once PNO reaches the end of the array it will
4917 continue scanning at intervals presented by the last value*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004918 tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
Jeff Johnson295189b2012-06-20 16:38:30 -07004919
4920}tScanTimersType;
4921
4922typedef PACKED_PRE struct PACKED_POST {
4923
4924 /*Enable PNO*/
4925 tANI_U32 enable;
4926
4927 /*Immediate, On Suspend, On Resume*/
4928 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004929
Jeff Johnson295189b2012-06-20 16:38:30 -07004930 /*Number of networks sent for PNO*/
4931 tANI_U32 ucNetworksCount;
4932
4933 /*The networks that PNO needs to look for*/
4934 tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
4935
4936 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004937 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07004938
4939 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004940 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07004941 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
4942
4943 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004944 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07004945 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
4946
4947} tPrefNetwListParams, * tpPrefNetwListParams;
4948
4949/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07004950 Preferred network list request
Jeff Johnson295189b2012-06-20 16:38:30 -07004951*/
4952typedef PACKED_PRE struct PACKED_POST
4953{
4954 tHalMsgHeader header;
4955 tPrefNetwListParams prefNetwListParams;
4956} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
4957
4958
Jeff Johnson32d95a32012-09-10 13:15:23 -07004959/*
Jeff Johnson295189b2012-06-20 16:38:30 -07004960 The network description for which PNO will have to look for
4961*/
4962typedef PACKED_PRE struct PACKED_POST
4963{
4964 /*SSID of the BSS*/
4965 tSirMacSSid ssId;
4966
4967 /*Authentication type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004968 tAuthType authentication;
Jeff Johnson295189b2012-06-20 16:38:30 -07004969
4970 /*Encryption type for the network*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004971 tEdType encryption;
Jeff Johnson295189b2012-06-20 16:38:30 -07004972
4973 /*SSID broadcast type, normal, hidden or unknown*/
4974 tSSIDBcastType bcastNetworkType;
4975
Jeff Johnson32d95a32012-09-10 13:15:23 -07004976 /*Indicate the channel on which the Network can be found
Jeff Johnson295189b2012-06-20 16:38:30 -07004977 0 - if all channels */
4978 tANI_U8 ucChannelCount;
4979 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
4980
4981 /*Indicates the RSSI threshold for the network to be considered*/
4982 tANI_U8 rssiThreshold;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004983}tNetworkTypeNew;
Jeff Johnson295189b2012-06-20 16:38:30 -07004984
4985typedef PACKED_PRE struct PACKED_POST {
4986
4987 /*Enable PNO*/
4988 tANI_U32 enable;
4989
4990 /*Immediate, On Suspend, On Resume*/
4991 ePNOMode modePNO;
Jeff Johnson32d95a32012-09-10 13:15:23 -07004992
Jeff Johnson295189b2012-06-20 16:38:30 -07004993 /*Number of networks sent for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07004994 tANI_U32 ucNetworksCount;
Jeff Johnson295189b2012-06-20 16:38:30 -07004995
4996 /*The networks that PNO needs to look for*/
4997 tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
4998
4999 /*The scan timers required for PNO*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005000 tScanTimersType scanTimers;
Jeff Johnson295189b2012-06-20 16:38:30 -07005001
5002 /*Probe template for 2.4GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005003 tANI_U16 us24GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005004 tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5005
5006 /*Probe template for 5GHz band*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005007 tANI_U16 us5GProbeSize;
Jeff Johnson295189b2012-06-20 16:38:30 -07005008 tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
5009
5010} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
5011
5012/*
5013 Preferred network list request new
5014*/
5015typedef PACKED_PRE struct PACKED_POST
5016{
5017 tHalMsgHeader header;
5018 tPrefNetwListParamsNew prefNetwListParams;
5019} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
5020
5021/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005022 Preferred network list response
Jeff Johnson295189b2012-06-20 16:38:30 -07005023*/
5024typedef PACKED_PRE struct PACKED_POST
5025{
5026 tHalMsgHeader header;
5027
Jeff Johnson32d95a32012-09-10 13:15:23 -07005028 /*status of the request - just to indicate that PNO has acknowledged
Jeff Johnson295189b2012-06-20 16:38:30 -07005029 the request and will start scanning*/
5030 tANI_U32 status;
5031} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
5032
5033/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005034 Preferred network indication parameters
Jeff Johnson295189b2012-06-20 16:38:30 -07005035*/
5036typedef PACKED_PRE struct PACKED_POST {
5037
5038 /*Network that was found with the highest RSSI*/
5039 tSirMacSSid ssId;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005040
Jeff Johnson295189b2012-06-20 16:38:30 -07005041 /*Indicates the RSSI */
5042 tANI_U8 rssi;
5043
5044} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
5045
5046/*
5047 Preferred network found indication
5048*/
5049typedef PACKED_PRE struct PACKED_POST {
5050
5051 tHalMsgHeader header;
5052 tPrefNetwFoundParams prefNetwFoundParams;
5053} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
5054
5055
5056typedef PACKED_PRE struct PACKED_POST {
5057
5058 /*RSSI Threshold*/
5059 tANI_U8 ucRssiThreshold;
5060
5061} tRssiFilterParams, * tpRssiFilterParams;
5062
5063/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005064 RSSI Filter request
Jeff Johnson295189b2012-06-20 16:38:30 -07005065*/
5066typedef PACKED_PRE struct PACKED_POST
5067{
5068 tHalMsgHeader header;
5069 tRssiFilterParams prefRSSIFilterParams;
5070} tSetRssiFilterReq, *tpSetRssiFilterReq;
5071
5072/*
5073 Set RSSI filter resp
5074*/
5075typedef PACKED_PRE struct PACKED_POST{
5076 tHalMsgHeader header;
5077 /*status of the request */
5078 tANI_U32 status;
5079} tSetRssiFilterResp, *tpSetRssiFilterResp;
5080/*
Jeff Johnson32d95a32012-09-10 13:15:23 -07005081 Update scan params
Jeff Johnson295189b2012-06-20 16:38:30 -07005082*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005083typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005084{
5085
5086 /*Host setting for 11d*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005087 tANI_U8 b11dEnabled;
Jeff Johnson295189b2012-06-20 16:38:30 -07005088
5089 /*Lets PNO know that host has determined the regulatory domain*/
5090 tANI_U8 b11dResolved;
5091
5092 /*Channels on which PNO is allowed to scan*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005093 tANI_U8 ucChannelCount;
5094 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
Jeff Johnson295189b2012-06-20 16:38:30 -07005095
5096 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005097 tANI_U16 usActiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005098
5099 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005100 tANI_U16 usActiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005101
5102 /*Minimum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005103 tANI_U16 usPassiveMinChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005104
5105 /*Maximum channel time*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005106 tANI_U16 usPassiveMaxChTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005107
5108 /*Cb State*/
5109 ePhyChanBondState cbState;
5110
5111} tUpdateScanParams, * tpUpdateScanParams;
5112
5113/*
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305114 Update scan params
5115*/
5116typedef PACKED_PRE struct PACKED_POST
5117{
5118
5119 /*Host setting for 11d*/
5120 tANI_U8 b11dEnabled;
5121
5122 /*Lets PNO know that host has determined the regulatory domain*/
5123 tANI_U8 b11dResolved;
5124
5125 /*Channels on which PNO is allowed to scan*/
5126 tANI_U8 ucChannelCount;
5127 tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
5128
5129 /*Minimum channel time*/
5130 tANI_U16 usActiveMinChTime;
5131
5132 /*Maximum channel time*/
5133 tANI_U16 usActiveMaxChTime;
5134
5135 /*Minimum channel time*/
5136 tANI_U16 usPassiveMinChTime;
5137
5138 /*Maximum channel time*/
5139 tANI_U16 usPassiveMaxChTime;
5140
5141 /*Cb State*/
5142 ePhyChanBondState cbState;
5143
5144} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
5145
5146/*
Jeff Johnson295189b2012-06-20 16:38:30 -07005147 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005148 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005149*/
5150typedef PACKED_PRE struct PACKED_POST{
5151
5152 tHalMsgHeader header;
5153 tUpdateScanParams scanParams;
5154} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
5155
5156/*
5157 Update scan params - sent from host to PNO
Jeff Johnson32d95a32012-09-10 13:15:23 -07005158 to be used during PNO scanning
Jeff Johnson295189b2012-06-20 16:38:30 -07005159*/
5160typedef PACKED_PRE struct PACKED_POST{
5161
5162 tHalMsgHeader header;
Pratik Bhalgatd4404592012-11-22 17:49:14 +05305163 tUpdateScanParamsEx scanParams;
5164} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
5165
5166/*
5167 Update scan params - sent from host to PNO
5168 to be used during PNO scanning
5169*/
5170typedef PACKED_PRE struct PACKED_POST{
5171
5172 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005173
5174 /*status of the request */
5175 tANI_U32 status;
5176
5177} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
5178
5179/*---------------------------------------------------------------------------
5180 * WLAN_HAL_SET_TX_PER_TRACKING_REQ
5181 *--------------------------------------------------------------------------*/
5182typedef PACKED_PRE struct PACKED_POST
5183{
5184 tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
5185 tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
5186 tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
5187 tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
5188} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
5189
5190typedef PACKED_PRE struct PACKED_POST
5191{
5192 tHalMsgHeader header;
5193 tHalTxPerTrackingReqParam txPerTrackingParams;
5194} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
5195
5196/*---------------------------------------------------------------------------
5197 * WLAN_HAL_SET_TX_PER_TRACKING_RSP
5198 *--------------------------------------------------------------------------*/
5199typedef PACKED_PRE struct PACKED_POST
5200{
5201 /* success or failure */
5202 tANI_U32 status;
5203} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
5204
5205typedef PACKED_PRE struct PACKED_POST
5206{
5207 tHalMsgHeader header;
5208 tHalTxPerTrackingRspParams txPerTrackingRspParams;
5209} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
5210
5211/*---------------------------------------------------------------------------
5212 * WLAN_HAL_TX_PER_HIT_IND
5213 *--------------------------------------------------------------------------*/
5214typedef PACKED_PRE struct PACKED_POST
5215{
5216 tHalMsgHeader header;
5217}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
5218
5219/*---------------------------------------------------------------------------
5220 *******************Packet Filtering Definitions Begin*******************
5221 *--------------------------------------------------------------------------*/
5222#define HAL_PROTOCOL_DATA_LEN 8
5223#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
5224#define HAL_MAX_NUM_FILTERS 20
5225#define HAL_MAX_CMP_PER_FILTER 10
5226
5227typedef enum
5228{
5229 HAL_RCV_FILTER_TYPE_INVALID,
5230 HAL_RCV_FILTER_TYPE_FILTER_PKT,
5231 HAL_RCV_FILTER_TYPE_BUFFER_PKT,
5232 HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
5233}tHalReceivePacketFilterType;
5234
Jeff Johnson32d95a32012-09-10 13:15:23 -07005235typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005236{
5237 HAL_FILTER_PROTO_TYPE_INVALID,
5238 HAL_FILTER_PROTO_TYPE_MAC,
5239 HAL_FILTER_PROTO_TYPE_ARP,
5240 HAL_FILTER_PROTO_TYPE_IPV4,
5241 HAL_FILTER_PROTO_TYPE_IPV6,
5242 HAL_FILTER_PROTO_TYPE_UDP,
5243 HAL_FILTER_PROTO_TYPE_MAX
5244}tHalRcvPktFltProtocolType;
5245
Jeff Johnson32d95a32012-09-10 13:15:23 -07005246typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005247{
5248 HAL_FILTER_CMP_TYPE_INVALID,
5249 HAL_FILTER_CMP_TYPE_EQUAL,
5250 HAL_FILTER_CMP_TYPE_MASK_EQUAL,
5251 HAL_FILTER_CMP_TYPE_NOT_EQUAL,
5252 HAL_FILTER_CMP_TYPE_MAX
5253}tHalRcvPktFltCmpFlagType;
5254
Jeff Johnson32d95a32012-09-10 13:15:23 -07005255typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005256{
5257 tANI_U8 protocolLayer;
5258 tANI_U8 cmpFlag;
5259 tANI_U16 dataLength; /* Length of the data to compare */
5260 tANI_U8 dataOffset; /* from start of the respective frame header */
5261 tANI_U8 reserved; /* Reserved field */
5262 tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
5263 tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
5264}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
5265
5266typedef PACKED_PRE struct PACKED_POST
5267{
5268 tANI_U8 filterId;
5269 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005270 tANI_U8 numParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005271 tANI_U32 coalesceTime;
Jeff Johnson295189b2012-06-20 16:38:30 -07005272 tHalRcvPktFilterParams paramsData[1];
5273}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
5274
5275typedef PACKED_PRE struct PACKED_POST
5276{
Jeff Johnsone7245742012-09-05 17:12:55 -07005277 tANI_U8 filterId;
5278 tANI_U8 filterType;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005279 tANI_U8 numParams;
5280 tANI_U32 coleasceTime;
Jeff Johnsone7245742012-09-05 17:12:55 -07005281 tANI_U8 bssIdx;
5282 tHalRcvPktFilterParams paramsData[1];
5283}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
5284
5285typedef PACKED_PRE struct PACKED_POST
5286{
Jeff Johnson295189b2012-06-20 16:38:30 -07005287 tHalMsgHeader header;
5288 tHalRcvPktFilterCfgType pktFilterCfg;
5289} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
5290
Jeff Johnsone7245742012-09-05 17:12:55 -07005291typedef PACKED_PRE struct PACKED_POST
Jeff Johnson295189b2012-06-20 16:38:30 -07005292{
5293 tANI_U8 dataOffset; /* from start of the respective frame header */
5294 tANI_U32 cMulticastAddr;
5295 tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005296 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005297} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
5298
5299typedef PACKED_PRE struct PACKED_POST
5300{
5301 /* success or failure */
5302 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005303 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005304} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
5305
5306typedef PACKED_PRE struct PACKED_POST
5307{
5308 tHalMsgHeader header;
5309 tHalSetPktFilterRspParams pktFilterRspParams;
5310} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
5311
Jeff Johnsone7245742012-09-05 17:12:55 -07005312typedef PACKED_PRE struct PACKED_POST
5313{
5314 tANI_U8 bssIdx;
5315} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005316
5317typedef PACKED_PRE struct PACKED_POST
5318{
5319 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005320 tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005321} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
5322
Jeff Johnsone7245742012-09-05 17:12:55 -07005323
Jeff Johnson295189b2012-06-20 16:38:30 -07005324typedef PACKED_PRE struct PACKED_POST
5325{
5326 tANI_U8 filterId;
5327 tANI_U32 matchCnt;
5328} tHalRcvFltPktMatchCnt;
5329typedef PACKED_PRE struct PACKED_POST
5330{
5331 /* Success or Failure */
5332 tANI_U32 status;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005333 tANI_U32 matchCnt;
5334 tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
Jeff Johnsone7245742012-09-05 17:12:55 -07005335 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005336} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
5337
5338typedef PACKED_PRE struct PACKED_POST
5339{
5340 tHalMsgHeader header;
5341 tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
5342} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
5343
5344typedef PACKED_PRE struct PACKED_POST
5345{
5346 tANI_U32 status; /* only valid for response message */
5347 tANI_U8 filterId;
Jeff Johnsone7245742012-09-05 17:12:55 -07005348 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005349}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
5350
5351typedef PACKED_PRE struct PACKED_POST
5352{
5353 tHalMsgHeader header;
5354 tHalRcvFltPktClearParam filterClearParam;
5355} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
5356
5357typedef PACKED_PRE struct PACKED_POST
5358{
5359 tHalMsgHeader header;
5360 tHalRcvFltPktClearParam filterClearParam;
5361} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
5362
5363typedef PACKED_PRE struct PACKED_POST
5364{
Jeff Johnson32d95a32012-09-10 13:15:23 -07005365 tANI_U32 status;
Jeff Johnsone7245742012-09-05 17:12:55 -07005366 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005367}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
5368
5369typedef PACKED_PRE struct PACKED_POST
5370{
5371 tHalMsgHeader header;
5372 tHalRcvFltMcAddrListType mcAddrList;
5373} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
5374
5375typedef PACKED_PRE struct PACKED_POST
5376{
5377 tHalMsgHeader header;
5378 tHalRcvFltPktSetMcListRspType rspParam;
5379} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
5380
5381
5382/*---------------------------------------------------------------------------
5383 *******************Packet Filtering Definitions End*******************
5384 *--------------------------------------------------------------------------*/
5385
5386typedef PACKED_PRE struct PACKED_POST
5387{
5388 /* Ignore DTIM */
5389 tANI_U32 uIgnoreDTIM;
5390
5391 /*DTIM Period*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005392 tANI_U32 uDTIMPeriod;
Jeff Johnson295189b2012-06-20 16:38:30 -07005393
5394 /* Listen Interval */
5395 tANI_U32 uListenInterval;
5396
5397 /* Broadcast Multicast Filter */
5398 tANI_U32 uBcastMcastFilter;
5399
5400 /* Beacon Early Termination */
5401 tANI_U32 uEnableBET;
5402
5403 /* Beacon Early Termination Interval */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005404 tANI_U32 uBETInterval;
Jeff Johnson295189b2012-06-20 16:38:30 -07005405}tSetPowerParamsType, *tpSetPowerParamsType;
5406
5407typedef PACKED_PRE struct PACKED_POST
5408{
5409 tHalMsgHeader header;
5410 tSetPowerParamsType powerParams;
5411} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
5412
5413typedef PACKED_PRE struct PACKED_POST{
5414
5415 tHalMsgHeader header;
5416
5417 /*status of the request */
5418 tANI_U32 status;
5419
5420} tSetPowerParamsResp, *tpSetPowerParamsResp;
5421
5422/*---------------------------------------------------------------------------
5423 ****************Capability bitmap exchange definitions and macros starts*************
5424 *--------------------------------------------------------------------------*/
5425
5426typedef PACKED_PRE struct PACKED_POST{
5427
5428 tANI_U32 featCaps[4];
5429
5430} tWlanFeatCaps, *tpWlanFeatCaps;
5431
5432typedef PACKED_PRE struct PACKED_POST{
5433
Jeff Johnson32d95a32012-09-10 13:15:23 -07005434 tHalMsgHeader header;
Jeff Johnson295189b2012-06-20 16:38:30 -07005435 tWlanFeatCaps wlanFeatCaps;
5436
5437} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
5438
5439
5440typedef enum {
5441 MCC = 0,
5442 P2P = 1,
Jeff Johnsone7245742012-09-05 17:12:55 -07005443 DOT11AC = 2,
5444 SLM_SESSIONIZATION = 3,
Viral Modie50b1d42012-12-10 13:04:52 -08005445 DOT11AC_OPMODE = 4,
5446 SAP32STA = 5,
5447 TDLS = 6,
5448 P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
Yathish9f22e662012-12-10 14:21:35 -08005449 WLANACTIVE_OFFLOAD = 8,
Jeff Johnson295189b2012-06-20 16:38:30 -07005450 MAX_FEATURE_SUPPORTED = 128,
5451} placeHolderInCapBitmap;
5452
Jeff Johnsone7245742012-09-05 17:12:55 -07005453
5454#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
5455#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
Viral Modie50b1d42012-12-10 13:04:52 -08005456#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
Jeff Johnsone7245742012-09-05 17:12:55 -07005457
5458tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
5459
Jeff Johnson295189b2012-06-20 16:38:30 -07005460#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005461 if ((b)<=127) { \
5462 arr_index = (b)/32; \
5463 bit_index = (b)%32; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005464 (a)->featCaps[arr_index] |= (1<<bit_index); \
5465 } \
5466 }
5467#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005468 if ((b)<=127) { \
5469 arr_index = (b)/32; \
5470 bit_index = (b)%32; \
5471 (c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
Jeff Johnson295189b2012-06-20 16:38:30 -07005472 } \
5473 }
5474#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
Mohit Khanna3d4e4102012-09-11 17:12:11 -07005475 if ((b)<=127) { \
5476 arr_index = (b)/32; \
5477 bit_index = (b)%32; \
Jeff Johnsone7245742012-09-05 17:12:55 -07005478 (a)->featCaps[arr_index] &= ~(1<<bit_index); \
Jeff Johnson295189b2012-06-20 16:38:30 -07005479 } \
5480 }
5481
5482/*---------------------------------------------------------------------------
5483 * WLAN_HAL_WAKE_REASON_IND
5484 *--------------------------------------------------------------------------*/
5485
5486/* status codes to help debug rekey failures */
5487typedef enum
5488{
5489 WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
5490 WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
5491 WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
5492 WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
5493 WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
5494 WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
5495 WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
5496 WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
5497 WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
5498 WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
5499
5500 WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
5501} tGTKRekeyStatus;
5502
5503/* wake reason types */
5504typedef enum
5505{
5506 WLAN_HAL_WAKE_REASON_NONE = 0,
5507 WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
5508 WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
5509 WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
5510 WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
5511 WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
5512 WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
5513 WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
5514} tWakeReasonType;
5515
5516/*
5517 Wake Packet which is saved at tWakeReasonParams.DataStart
5518 This data is sent for any wake reasons that involve a packet-based wakeup :
5519
5520 WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
5521 WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
5522 WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
5523 WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
5524 WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
5525
5526 The information is provided to the host for auditing and debug purposes
5527
5528*/
5529
5530/*
5531 Wake reason indication parameters
5532*/
5533typedef PACKED_PRE struct PACKED_POST
5534{
5535 uint32 ulReason; /* see tWakeReasonType */
5536 uint32 ulReasonArg; /* argument specific to the reason type */
5537 uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
5538 HAL truncates the data (i.e. data packets) this length
5539 will be less than the actual length */
5540 uint32 ulActualDataLen; /* actual length of data */
5541 uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
5542 see specific wake type */
5543} tWakeReasonParams, *tpWakeReasonParams;
5544
5545/*
5546 Wake reason indication
5547*/
5548typedef PACKED_PRE struct PACKED_POST
5549{
5550 tHalMsgHeader header;
5551 tWakeReasonParams wakeReasonParams;
Jeff Johnsone7245742012-09-05 17:12:55 -07005552 tANI_U32 uBssIdx : 8;
5553 tANI_U32 bReserved : 24;
Jeff Johnson295189b2012-06-20 16:38:30 -07005554} tHalWakeReasonInd, *tpHalWakeReasonInd;
5555
5556/*---------------------------------------------------------------------------
5557* WLAN_HAL_GTK_OFFLOAD_REQ
5558*--------------------------------------------------------------------------*/
5559
5560#define HAL_GTK_KEK_BYTES 16
5561#define HAL_GTK_KCK_BYTES 16
5562
5563#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
5564
5565typedef PACKED_PRE struct PACKED_POST
5566{
5567 tANI_U32 ulFlags; /* optional flags */
Jeff Johnson32d95a32012-09-10 13:15:23 -07005568 tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
Jeff Johnson295189b2012-06-20 16:38:30 -07005569 tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
5570 tANI_U64 ullKeyReplayCounter; /* replay counter */
Jeff Johnsone7245742012-09-05 17:12:55 -07005571 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005572} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
5573
5574typedef PACKED_PRE struct PACKED_POST
5575{
5576 tHalMsgHeader header;
5577 tHalGtkOffloadReqParams gtkOffloadReqParams;
5578} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
5579
5580/*---------------------------------------------------------------------------
5581* WLAN_HAL_GTK_OFFLOAD_RSP
5582*--------------------------------------------------------------------------*/
5583typedef PACKED_PRE struct PACKED_POST
5584{
5585 tANI_U32 ulStatus; /* success or failure */
Jeff Johnsone7245742012-09-05 17:12:55 -07005586 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005587} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
5588
5589typedef PACKED_PRE struct PACKED_POST
5590{
5591 tHalMsgHeader header;
5592 tHalGtkOffloadRspParams gtkOffloadRspParams;
5593} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
5594
5595
5596/*---------------------------------------------------------------------------
5597* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
5598*--------------------------------------------------------------------------*/
Jeff Johnsone7245742012-09-05 17:12:55 -07005599typedef PACKED_PRE struct PACKED_POST
5600{
5601 tANI_U8 bssIdx;
5602
5603} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005604
5605typedef PACKED_PRE struct PACKED_POST
5606{
5607 tHalMsgHeader header;
Jeff Johnsone7245742012-09-05 17:12:55 -07005608 tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
Jeff Johnson295189b2012-06-20 16:38:30 -07005609} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
5610
5611/*---------------------------------------------------------------------------
5612* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
5613*--------------------------------------------------------------------------*/
5614typedef PACKED_PRE struct PACKED_POST
5615{
5616 tANI_U32 ulStatus; /* success or failure */
5617 tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
5618 tANI_U64 ullKeyReplayCounter; /* current replay counter value */
5619 tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
5620 tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
5621 tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
Jeff Johnsone7245742012-09-05 17:12:55 -07005622 tANI_U8 bssIdx;
Jeff Johnson295189b2012-06-20 16:38:30 -07005623} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
5624
5625typedef PACKED_PRE struct PACKED_POST
5626{
5627 tHalMsgHeader header;
5628 tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
5629} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
5630
5631/*
5632 Thermal Mitigation mode of operation.
5633 HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
5634 HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
5635 reducing transmit power
5636 HAL_THERMAL_MITIGATION_MODE_2 - Not supported
5637*/
5638typedef enum
5639{
5640 HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
5641 HAL_THERMAL_MITIGATION_MODE_0,
5642 HAL_THERMAL_MITIGATION_MODE_1,
5643 HAL_THERMAL_MITIGATION_MODE_2,
5644 HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5645}tHalThermalMitigationModeType;
5646//typedef tANI_S16 tHalThermalMitigationModeType;
5647
5648/*
5649 Thermal Mitigation level.
5650 Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
5651 HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
5652
5653 HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
5654 level indicates normal mode of operation
5655 HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
5656 HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
5657 HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
5658 HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
5659*/
Jeff Johnson32d95a32012-09-10 13:15:23 -07005660typedef enum
Jeff Johnson295189b2012-06-20 16:38:30 -07005661{
5662 HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
5663 HAL_THERMAL_MITIGATION_LEVEL_0,
5664 HAL_THERMAL_MITIGATION_LEVEL_1,
5665 HAL_THERMAL_MITIGATION_LEVEL_2,
5666 HAL_THERMAL_MITIGATION_LEVEL_3,
5667 HAL_THERMAL_MITIGATION_LEVEL_4,
5668 HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
5669}tHalThermalMitigationLevelType;
5670//typedef tANI_S16 tHalThermalMitigationLevelType;
5671
5672typedef PACKED_PRE struct PACKED_POST
5673{
5674 /* Thermal Mitigation Operation Mode */
5675 tHalThermalMitigationModeType thermalMitMode;
5676
5677 /* Thermal Mitigation Level */
5678 tHalThermalMitigationLevelType thermalMitLevel;
Jeff Johnson32d95a32012-09-10 13:15:23 -07005679
Jeff Johnson295189b2012-06-20 16:38:30 -07005680}tSetThermalMitgationType, *tpSetThermalMitgationType;
5681
5682/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
5683typedef PACKED_PRE struct PACKED_POST
5684{
5685 tHalMsgHeader header;
5686 tSetThermalMitgationType thermalMitParams;
5687} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
5688
5689typedef PACKED_PRE struct PACKED_POST{
5690
5691 tHalMsgHeader header;
5692
5693 /*status of the request */
5694 tANI_U32 status;
5695
5696} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
5697
5698#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
5699#pragma pack(pop)
5700#elif defined(__ANI_COMPILER_PRAGMA_PACK)
5701#else
5702#endif
5703
5704#endif /* _WLAN_HAL_MSG_H_ */
Jeff Johnsond13512a2012-07-17 11:42:19 -07005705