blob: f859c9db859d79a7d16abd42566cb89a9888f927 [file] [log] [blame]
/*
* Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
*
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
* above copyright notice and this permission notice appear in all
* copies.
*
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
* PERFORMANCE OF THIS SOFTWARE.
*/
/*
* This file was originally distributed by Qualcomm Atheros, Inc.
* under proprietary terms before Copyright ownership was assigned
* to the Linux Foundation.
*/
/*==========================================================================
*
* @file: wlan_hal_msg.h
*
* @brief: Exports and types for messages sent to HAL from WDI
*
* @author: Kumar Anand
*
*
*=========================================================================*/
#ifndef _WLAN_HAL_MSG_H_
#define _WLAN_HAL_MSG_H_
#include "halLegacyPalTypes.h"
#include "halCompiler.h"
#include "wlan_qct_dev_defs.h"
#include "wlan_nv.h"
/*---------------------------------------------------------------------------
API VERSIONING INFORMATION
The RIVA API is versioned as MAJOR.MINOR.VERSION.REVISION
The MAJOR is incremented for major product/architecture changes
(and then MINOR/VERSION/REVISION are zeroed)
The MINOR is incremented for minor product/architecture changes
(and then VERSION/REVISION are zeroed)
The VERSION is incremented if a significant API change occurs
(and then REVISION is zeroed)
The REVISION is incremented if an insignificant API change occurs
or if a new API is added
All values are in the range 0..255 (ie they are 8-bit values)
---------------------------------------------------------------------------*/
#define WLAN_HAL_VER_MAJOR 1
#define WLAN_HAL_VER_MINOR 5
#define WLAN_HAL_VER_VERSION 1
#define WLAN_HAL_VER_REVISION 2
/*---------------------------------------------------------------------------
Commom Type definitons
---------------------------------------------------------------------------*/
#define DISA_MAX_PAYLOAD_SIZE 1600
//This is to force compiler to use the maximum of an int ( 4 bytes )
#define WLAN_HAL_MAX_ENUM_SIZE 0x7FFFFFFF
#define WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE 0x7FFF
//Max no. of transmit categories
#define STACFG_MAX_TC 8
//The maximum value of access category
#define WLAN_HAL_MAX_AC 4
typedef tANI_U8 tSirMacAddr[6];
typedef tANI_U8 tHalIpv4Addr[4];
#define HAL_MAC_ADDR_LEN 6
#define HAL_IPV4_ADDR_LEN 4
#define WLAN_HAL_STA_INVALID_IDX 0xFF
#define WLAN_HAL_BSS_INVALID_IDX 0xFF
//Default Beacon template size
#define BEACON_TEMPLATE_SIZE 0x180
//Max Tx Data Rate samples
#define MAX_TX_RATE_SAMPLES 10
//Max Beacon Rssi samples
#define MAX_BCN_RSSI_SAMPLES 10
//Param Change Bitmap sent to HAL
#define PARAM_BCN_INTERVAL_CHANGED (1 << 0)
#define PARAM_SHORT_PREAMBLE_CHANGED (1 << 1)
#define PARAM_SHORT_SLOT_TIME_CHANGED (1 << 2)
#define PARAM_llACOEXIST_CHANGED (1 << 3)
#define PARAM_llBCOEXIST_CHANGED (1 << 4)
#define PARAM_llGCOEXIST_CHANGED (1 << 5)
#define PARAM_HT20MHZCOEXIST_CHANGED (1<<6)
#define PARAM_NON_GF_DEVICES_PRESENT_CHANGED (1<<7)
#define PARAM_RIFS_MODE_CHANGED (1<<8)
#define PARAM_LSIG_TXOP_FULL_SUPPORT_CHANGED (1<<9)
#define PARAM_OBSS_MODE_CHANGED (1<<10)
#define PARAM_BEACON_UPDATE_MASK (PARAM_BCN_INTERVAL_CHANGED|PARAM_SHORT_PREAMBLE_CHANGED|PARAM_SHORT_SLOT_TIME_CHANGED|PARAM_llACOEXIST_CHANGED |PARAM_llBCOEXIST_CHANGED|\
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)
/*Dump command response Buffer size*/
#define DUMPCMD_RSP_BUFFER 500
/*Version string max length (including NUL) */
#define WLAN_HAL_VERSION_LENGTH 64
#define WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE 450
/* 80 is actually NUM_RF_CHANNELS_V2, but beyond V2, this number will be ignored by FW */
#define WLAN_HAL_ROAM_SCAN_MAX_CHANNELS 80
#define WLAN_HAL_ROAM_SACN_PMK_SIZE 32
#define WLAN_HAL_ROAM_SCAN_RESERVED_BYTES 19
#define WLAN_HAL_EXT_SCAN_MAX_CHANNELS 16
#define WLAN_HAL_EXT_SCAN_MAX_BUCKETS 16
#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS 128
#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
#define WLAN_HAL_EXT_SCAN_MAX_RSSI_SAMPLE_SIZE 8
/* For Logging enhancement feature currently max 2 address will be passed */
/* In future we may pass 3 address and length in suspend mode corner case */
#define MAX_NUM_OF_BUFFER 3
/* Log types */
typedef enum
{
MGMT_FRAME_LOGS = 0,
QXDM_LOGGING = 1,
FW_MEMORY_DUMP = 2,
FATAL_EVENT = 3
}tHalFrameLoggingType;
/* Log size */
typedef enum
{
LOG_SIZE_4K = 0,
LOG_SIZE_8K = 1,
LOG_SIZE_12K = 2,
LOG_SIZE_16K = 3,
LOG_SIZE_32K = 4,
LOG_SIZE_64K = 5,
LOG_SIZE_96K = 6
}tHalLogBuffSize;
/* Message types for messages exchanged between WDI and HAL */
typedef enum
{
//Init/De-Init
WLAN_HAL_START_REQ = 0,
WLAN_HAL_START_RSP = 1,
WLAN_HAL_STOP_REQ = 2,
WLAN_HAL_STOP_RSP = 3,
//Scan
WLAN_HAL_INIT_SCAN_REQ = 4,
WLAN_HAL_INIT_SCAN_RSP = 5,
WLAN_HAL_START_SCAN_REQ = 6,
WLAN_HAL_START_SCAN_RSP = 7 ,
WLAN_HAL_END_SCAN_REQ = 8,
WLAN_HAL_END_SCAN_RSP = 9,
WLAN_HAL_FINISH_SCAN_REQ = 10,
WLAN_HAL_FINISH_SCAN_RSP = 11,
// HW STA configuration/deconfiguration
WLAN_HAL_CONFIG_STA_REQ = 12,
WLAN_HAL_CONFIG_STA_RSP = 13,
WLAN_HAL_DELETE_STA_REQ = 14,
WLAN_HAL_DELETE_STA_RSP = 15,
WLAN_HAL_CONFIG_BSS_REQ = 16,
WLAN_HAL_CONFIG_BSS_RSP = 17,
WLAN_HAL_DELETE_BSS_REQ = 18,
WLAN_HAL_DELETE_BSS_RSP = 19,
//Infra STA asscoiation
WLAN_HAL_JOIN_REQ = 20,
WLAN_HAL_JOIN_RSP = 21,
WLAN_HAL_POST_ASSOC_REQ = 22,
WLAN_HAL_POST_ASSOC_RSP = 23,
//Security
WLAN_HAL_SET_BSSKEY_REQ = 24,
WLAN_HAL_SET_BSSKEY_RSP = 25,
WLAN_HAL_SET_STAKEY_REQ = 26,
WLAN_HAL_SET_STAKEY_RSP = 27,
WLAN_HAL_RMV_BSSKEY_REQ = 28,
WLAN_HAL_RMV_BSSKEY_RSP = 29,
WLAN_HAL_RMV_STAKEY_REQ = 30,
WLAN_HAL_RMV_STAKEY_RSP = 31,
//Qos Related
WLAN_HAL_ADD_TS_REQ = 32,
WLAN_HAL_ADD_TS_RSP = 33,
WLAN_HAL_DEL_TS_REQ = 34,
WLAN_HAL_DEL_TS_RSP = 35,
WLAN_HAL_UPD_EDCA_PARAMS_REQ = 36,
WLAN_HAL_UPD_EDCA_PARAMS_RSP = 37,
WLAN_HAL_ADD_BA_REQ = 38,
WLAN_HAL_ADD_BA_RSP = 39,
WLAN_HAL_DEL_BA_REQ = 40,
WLAN_HAL_DEL_BA_RSP = 41,
WLAN_HAL_CH_SWITCH_REQ = 42,
WLAN_HAL_CH_SWITCH_RSP = 43,
WLAN_HAL_SET_LINK_ST_REQ = 44,
WLAN_HAL_SET_LINK_ST_RSP = 45,
WLAN_HAL_GET_STATS_REQ = 46,
WLAN_HAL_GET_STATS_RSP = 47,
WLAN_HAL_UPDATE_CFG_REQ = 48,
WLAN_HAL_UPDATE_CFG_RSP = 49,
WLAN_HAL_MISSED_BEACON_IND = 50,
WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND = 51,
WLAN_HAL_MIC_FAILURE_IND = 52,
WLAN_HAL_FATAL_ERROR_IND = 53,
WLAN_HAL_SET_KEYDONE_MSG = 54,
//NV Interface
WLAN_HAL_DOWNLOAD_NV_REQ = 55,
WLAN_HAL_DOWNLOAD_NV_RSP = 56,
WLAN_HAL_ADD_BA_SESSION_REQ = 57,
WLAN_HAL_ADD_BA_SESSION_RSP = 58,
WLAN_HAL_TRIGGER_BA_REQ = 59,
WLAN_HAL_TRIGGER_BA_RSP = 60,
WLAN_HAL_UPDATE_BEACON_REQ = 61,
WLAN_HAL_UPDATE_BEACON_RSP = 62,
WLAN_HAL_SEND_BEACON_REQ = 63,
WLAN_HAL_SEND_BEACON_RSP = 64,
WLAN_HAL_SET_BCASTKEY_REQ = 65,
WLAN_HAL_SET_BCASTKEY_RSP = 66,
WLAN_HAL_DELETE_STA_CONTEXT_IND = 67,
WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ = 68,
WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP = 69,
// PTT interface support
WLAN_HAL_PROCESS_PTT_REQ = 70,
WLAN_HAL_PROCESS_PTT_RSP = 71,
// BTAMP related events
WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ = 72,
WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP = 73,
WLAN_HAL_TL_HAL_FLUSH_AC_REQ = 74,
WLAN_HAL_TL_HAL_FLUSH_AC_RSP = 75,
WLAN_HAL_ENTER_IMPS_REQ = 76,
WLAN_HAL_EXIT_IMPS_REQ = 77,
WLAN_HAL_ENTER_BMPS_REQ = 78,
WLAN_HAL_EXIT_BMPS_REQ = 79,
WLAN_HAL_ENTER_UAPSD_REQ = 80,
WLAN_HAL_EXIT_UAPSD_REQ = 81,
WLAN_HAL_UPDATE_UAPSD_PARAM_REQ = 82,
WLAN_HAL_CONFIGURE_RXP_FILTER_REQ = 83,
WLAN_HAL_ADD_BCN_FILTER_REQ = 84,
WLAN_HAL_REM_BCN_FILTER_REQ = 85,
WLAN_HAL_ADD_WOWL_BCAST_PTRN = 86,
WLAN_HAL_DEL_WOWL_BCAST_PTRN = 87,
WLAN_HAL_ENTER_WOWL_REQ = 88,
WLAN_HAL_EXIT_WOWL_REQ = 89,
WLAN_HAL_HOST_OFFLOAD_REQ = 90,
WLAN_HAL_SET_RSSI_THRESH_REQ = 91,
WLAN_HAL_GET_RSSI_REQ = 92,
WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ = 93,
WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ = 94,
WLAN_HAL_ENTER_IMPS_RSP = 95,
WLAN_HAL_EXIT_IMPS_RSP = 96,
WLAN_HAL_ENTER_BMPS_RSP = 97,
WLAN_HAL_EXIT_BMPS_RSP = 98,
WLAN_HAL_ENTER_UAPSD_RSP = 99,
WLAN_HAL_EXIT_UAPSD_RSP = 100,
WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP = 101,
WLAN_HAL_UPDATE_UAPSD_PARAM_RSP = 102,
WLAN_HAL_CONFIGURE_RXP_FILTER_RSP = 103,
WLAN_HAL_ADD_BCN_FILTER_RSP = 104,
WLAN_HAL_REM_BCN_FILTER_RSP = 105,
WLAN_HAL_SET_RSSI_THRESH_RSP = 106,
WLAN_HAL_HOST_OFFLOAD_RSP = 107,
WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP = 108,
WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP = 109,
WLAN_HAL_ENTER_WOWL_RSP = 110,
WLAN_HAL_EXIT_WOWL_RSP = 111,
WLAN_HAL_RSSI_NOTIFICATION_IND = 112,
WLAN_HAL_GET_RSSI_RSP = 113,
WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP = 114,
//11k related events
WLAN_HAL_SET_MAX_TX_POWER_REQ = 115,
WLAN_HAL_SET_MAX_TX_POWER_RSP = 116,
//11R related msgs
WLAN_HAL_AGGR_ADD_TS_REQ = 117,
WLAN_HAL_AGGR_ADD_TS_RSP = 118,
//P2P WLAN_FEATURE_P2P
WLAN_HAL_SET_P2P_GONOA_REQ = 119,
WLAN_HAL_SET_P2P_GONOA_RSP = 120,
//WLAN Dump commands
WLAN_HAL_DUMP_COMMAND_REQ = 121,
WLAN_HAL_DUMP_COMMAND_RSP = 122,
//OEM_DATA FEATURE SUPPORT
WLAN_HAL_START_OEM_DATA_REQ = 123,
WLAN_HAL_START_OEM_DATA_RSP = 124,
//ADD SELF STA REQ and RSP
WLAN_HAL_ADD_STA_SELF_REQ = 125,
WLAN_HAL_ADD_STA_SELF_RSP = 126,
//DEL SELF STA SUPPORT
WLAN_HAL_DEL_STA_SELF_REQ = 127,
WLAN_HAL_DEL_STA_SELF_RSP = 128,
// Coex Indication
WLAN_HAL_COEX_IND = 129,
// Tx Complete Indication
WLAN_HAL_OTA_TX_COMPL_IND = 130,
//Host Suspend/resume messages
WLAN_HAL_HOST_SUSPEND_IND = 131,
WLAN_HAL_HOST_RESUME_REQ = 132,
WLAN_HAL_HOST_RESUME_RSP = 133,
WLAN_HAL_SET_TX_POWER_REQ = 134,
WLAN_HAL_SET_TX_POWER_RSP = 135,
WLAN_HAL_GET_TX_POWER_REQ = 136,
WLAN_HAL_GET_TX_POWER_RSP = 137,
WLAN_HAL_P2P_NOA_ATTR_IND = 138,
WLAN_HAL_ENABLE_RADAR_DETECT_REQ = 139,
WLAN_HAL_ENABLE_RADAR_DETECT_RSP = 140,
WLAN_HAL_GET_TPC_REPORT_REQ = 141,
WLAN_HAL_GET_TPC_REPORT_RSP = 142,
WLAN_HAL_RADAR_DETECT_IND = 143,
WLAN_HAL_RADAR_DETECT_INTR_IND = 144,
WLAN_HAL_KEEP_ALIVE_REQ = 145,
WLAN_HAL_KEEP_ALIVE_RSP = 146,
/*PNO messages*/
WLAN_HAL_SET_PREF_NETWORK_REQ = 147,
WLAN_HAL_SET_PREF_NETWORK_RSP = 148,
WLAN_HAL_SET_RSSI_FILTER_REQ = 149,
WLAN_HAL_SET_RSSI_FILTER_RSP = 150,
WLAN_HAL_UPDATE_SCAN_PARAM_REQ = 151,
WLAN_HAL_UPDATE_SCAN_PARAM_RSP = 152,
WLAN_HAL_PREF_NETW_FOUND_IND = 153,
WLAN_HAL_SET_TX_PER_TRACKING_REQ = 154,
WLAN_HAL_SET_TX_PER_TRACKING_RSP = 155,
WLAN_HAL_TX_PER_HIT_IND = 156,
WLAN_HAL_8023_MULTICAST_LIST_REQ = 157,
WLAN_HAL_8023_MULTICAST_LIST_RSP = 158,
WLAN_HAL_SET_PACKET_FILTER_REQ = 159,
WLAN_HAL_SET_PACKET_FILTER_RSP = 160,
WLAN_HAL_PACKET_FILTER_MATCH_COUNT_REQ = 161,
WLAN_HAL_PACKET_FILTER_MATCH_COUNT_RSP = 162,
WLAN_HAL_CLEAR_PACKET_FILTER_REQ = 163,
WLAN_HAL_CLEAR_PACKET_FILTER_RSP = 164,
/*This is temp fix. Should be removed once
* Host and Riva code is in sync*/
WLAN_HAL_INIT_SCAN_CON_REQ = 165,
WLAN_HAL_SET_POWER_PARAMS_REQ = 166,
WLAN_HAL_SET_POWER_PARAMS_RSP = 167,
WLAN_HAL_TSM_STATS_REQ = 168,
WLAN_HAL_TSM_STATS_RSP = 169,
// wake reason indication (WOW)
WLAN_HAL_WAKE_REASON_IND = 170,
// GTK offload support
WLAN_HAL_GTK_OFFLOAD_REQ = 171,
WLAN_HAL_GTK_OFFLOAD_RSP = 172,
WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ = 173,
WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP = 174,
WLAN_HAL_FEATURE_CAPS_EXCHANGE_REQ = 175,
WLAN_HAL_FEATURE_CAPS_EXCHANGE_RSP = 176,
WLAN_HAL_EXCLUDE_UNENCRYPTED_IND = 177,
WLAN_HAL_SET_THERMAL_MITIGATION_REQ = 178,
WLAN_HAL_SET_THERMAL_MITIGATION_RSP = 179,
WLAN_HAL_UPDATE_VHT_OP_MODE_REQ = 182,
WLAN_HAL_UPDATE_VHT_OP_MODE_RSP = 183,
WLAN_HAL_P2P_NOA_START_IND = 184,
WLAN_HAL_GET_ROAM_RSSI_REQ = 185,
WLAN_HAL_GET_ROAM_RSSI_RSP = 186,
WLAN_HAL_CLASS_B_STATS_IND = 187,
WLAN_HAL_DEL_BA_IND = 188,
WLAN_HAL_DHCP_START_IND = 189,
WLAN_HAL_DHCP_STOP_IND = 190,
WLAN_ROAM_SCAN_OFFLOAD_REQ = 191,
WLAN_ROAM_SCAN_OFFLOAD_RSP = 192,
WLAN_HAL_WIFI_PROXIMITY_REQ = 193,
WLAN_HAL_WIFI_PROXIMITY_RSP = 194,
WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ = 195,
WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP = 196,
WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND = 197,
WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ = 198,
WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP = 199,
WLAN_HAL_TDLS_LINK_TEARDOWN_REQ = 200,
WLAN_HAL_TDLS_LINK_TEARDOWN_RSP = 201,
WLAN_HAL_TDLS_IND = 202,
WLAN_HAL_IBSS_PEER_INACTIVITY_IND = 203,
/* Scan Offload APIs */
WLAN_HAL_START_SCAN_OFFLOAD_REQ = 204,
WLAN_HAL_START_SCAN_OFFLOAD_RSP = 205,
WLAN_HAL_STOP_SCAN_OFFLOAD_REQ = 206,
WLAN_HAL_STOP_SCAN_OFFLOAD_RSP = 207,
WLAN_HAL_UPDATE_CHANNEL_LIST_REQ = 208,
WLAN_HAL_UPDATE_CHANNEL_LIST_RSP = 209,
WLAN_HAL_OFFLOAD_SCAN_EVENT_IND = 210,
/* APIs to offload TCP/UDP Heartbeat handshakes */
WLAN_HAL_LPHB_CFG_REQ = 211,
WLAN_HAL_LPHB_CFG_RSP = 212,
WLAN_HAL_LPHB_IND = 213,
WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND = 214,
WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND = 215,
WLAN_HAL_PERIODIC_TX_PTRN_FW_IND = 216,
// Events to set Per-Band Tx Power Limit
WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ = 217,
WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP = 218,
WLAN_HAL_RMC_RULER_REQ = 219,
WLAN_HAL_RMC_RULER_RSP = 220,
WLAN_HAL_RMC_UPDATE_IND = 221,
/* Batchscan */
WLAN_HAL_BATCHSCAN_SET_REQ = 222,
WLAN_HAL_BATCHSCAN_SET_RSP = 223,
WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND = 224,
WLAN_HAL_BATCHSCAN_RESULT_IND = 225,
WLAN_HAL_BATCHSCAN_STOP_IND = 226,
WLAN_HAL_GET_IBSS_PEER_INFO_REQ = 227,
WLAN_HAL_GET_IBSS_PEER_INFO_RSP = 228,
WLAN_HAL_RATE_UPDATE_IND = 229,
/* Tx Fail for weak link notification */
WLAN_HAL_TX_FAIL_MONITOR_IND = 230,
WLAN_HAL_TX_FAIL_IND = 231,
/* Multi-hop IP routing offload */
WLAN_HAL_IP_FORWARD_TABLE_UPDATE_IND = 232,
/* Channel avoidance for LTE Coex */
WLAN_HAL_AVOID_FREQ_RANGE_IND = 233,
/* Fast Roam Offload Synchup request protocol */
/* TODO_LFR3 : change this value accordingly before final check-in */
WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND = 234,
WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF = 235,
WLAN_HAL_MOTION_START_EVENT_REQ = 250,
WLAN_HAL_MOTION_STOP_EVENT_REQ = 251,
/* Channel Switch Request version 1 */
WLAN_HAL_CH_SWITCH_V1_REQ = 252,
WLAN_HAL_CH_SWITCH_V1_RSP = 253,
/* 2G4 HT40 OBSS scan */
WLAN_HAL_START_HT40_OBSS_SCAN_IND = 254,
WLAN_HAL_STOP_HT40_OBSS_SCAN_IND = 255,/* next free entry in tHalHostMsgType. */
/* WLAN NAN Messages */
WLAN_HAL_NAN_FIRST = 256,
WLAN_HAL_NAN_REQ = WLAN_HAL_NAN_FIRST,
WLAN_HAL_NAN_RSP = 257,
WLAN_HAL_NAN_EVT = 258,
WLAN_HAL_NAN_LAST = WLAN_HAL_NAN_EVT,
WLAN_HAL_PRINT_REG_INFO_IND = 259,
WLAN_HAL_GET_BCN_MISS_RATE_REQ = 260,
WLAN_HAL_GET_BCN_MISS_RATE_RSP = 261,
/* WLAN LINK LAYER STATS Messages */
WLAN_HAL_LL_SET_STATS_REQ = 262,
WLAN_HAL_LL_SET_STATS_RSP = 263,
WLAN_HAL_LL_GET_STATS_REQ = 264,
WLAN_HAL_LL_GET_STATS_RSP = 265,
WLAN_HAL_LL_CLEAR_STATS_REQ = 266,
WLAN_HAL_LL_CLEAR_STATS_RSP = 267,
WLAN_HAL_LL_NOTIFY_STATS = 268,
WLAN_HAL_LL_LAST = WLAN_HAL_LL_NOTIFY_STATS,
/* WLAN EXT_SCAN Messages */
WLAN_HAL_EXT_SCAN_START_REQ = 269,
WLAN_HAL_EXT_SCAN_START_RSP = 270,
WLAN_HAL_EXT_SCAN_GET_CAP_REQ = 271,
WLAN_HAL_EXT_SCAN_GET_CAP_RSP = 272,
WLAN_HAL_EXT_SCAN_STOP_REQ = 273,
WLAN_HAL_EXT_SCAN_STOP_RSP = 274,
WLAN_HAL_EXT_SCAN_GET_SCAN_REQ = 275,
WLAN_HAL_EXT_SCAN_GET_SCAN_RSP = 276,
WLAN_HAL_BSSID_HOTLIST_SET_REQ = 277,
WLAN_HAL_BSSID_HOTLIST_SET_RSP = 278,
WLAN_HAL_BSSID_HOTLIST_RESET_REQ = 279,
WLAN_HAL_BSSID_HOTLIST_RESET_RSP = 280,
WLAN_HAL_SIG_RSSI_SET_REQ = 281,
WLAN_HAL_SIG_RSSI_SET_RSP = 282,
WLAN_HAL_SIG_RSSI_RESET_REQ = 283,
WLAN_HAL_SIG_RSSI_RESET_RSP = 284,
WLAN_HAL_EXT_SCAN_RESULT_IND = 285,
WLAN_HAL_BSSID_HOTLIST_RESULT_IND = 286,
WLAN_HAL_SIG_RSSI_RESULT_IND = 287,
WLAN_HAL_EXT_SCAN_PROGRESS_IND = 288,
WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND = 289,
WLAN_HAL_TDLS_CHAN_SWITCH_REQ = 290,
WLAN_HAL_TDLS_CHAN_SWITCH_RSP = 291,
WLAN_HAL_MAC_SPOOFED_SCAN_REQ = 292,
WLAN_HAL_MAC_SPOOFED_SCAN_RSP = 293,
/* LGE DISA encrypt-decrypt Messages */
WLAN_HAL_ENCRYPT_DATA_REQ = 294,
WLAN_HAL_ENCRYPT_DATA_RSP = 295,
WLAN_HAL_FW_STATS_REQ = 296,
WLAN_HAL_FW_STATS_RSP = 297,
WLAN_HAL_FW_LOGGING_INIT_REQ = 298,
WLAN_HAL_FW_LOGGING_INIT_RSP = 299,
WLAN_HAL_GET_FRAME_LOG_REQ = 300,
WLAN_HAL_GET_FRAME_LOG_RSP = 301,
/* Monitor Mode */
WLAN_HAL_ENABLE_MONITOR_MODE_REQ = 302,
WLAN_HAL_ENABLE_MONITOR_MODE_RSP = 303,
WLAN_HAL_DISABLE_MONITOR_MODE_REQ = 304,
WLAN_HAL_DISABLE_MONITOR_MODE_RSP = 305,
WLAN_HAL_SET_RTS_CTS_HTVHT_IND = 306,
// FW Logging
WLAN_HAL_FATAL_EVENT_LOGGING_REQ = 307,
WLAN_HAL_FATAL_EVENT_LOGGING_RSP = 308,
WLAN_HAL_FW_MEMORY_DUMP_REQ = 309,
WLAN_HAL_FW_MEMORY_DUMP_RSP = 310,
WLAN_HAL_FW_LOGGING_DXE_DONE_IND = 311,
WLAN_HAL_LOST_LINK_PARAMETERS_IND = 312,
WLAN_HAL_SEND_FREQ_RANGE_CONTROL_IND = 313,
WLAN_HAL_SSID_HOTLIST_SET_REQ = 314,
WLAN_HAL_SSID_HOTLIST_SET_RSP = 315,
WLAN_HAL_SSID_HOTLIST_RESET_REQ = 316,
WLAN_HAL_SSID_HOTLIST_RESET_RSP = 317,
WLAN_HAL_SSID_HOTLIST_RESULT_IND = 318,
/* WFD Session Information to start/stop Scan */
WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ = 319,
WLAN_HAL_START_RSSI_MONITORING_REQ = 321,
WLAN_HAL_START_RSSI_MONITORING_RSP = 322,
WLAN_HAL_RSSI_MONITORING_IND = 323,
WLAN_HAL_STOP_RSSI_MONITORING_REQ = 324,
WLAN_HAL_STOP_RSSI_MONITORING_RSP = 325,
//RTT3 SUPPORT
WLAN_HAL_START_OEM_DATA_REQ_IND_NEW = 326,
WLAN_HAL_START_OEM_DATA_RSP_IND_NEW = 327,
WLAN_HAL_WIFI_CONFIG_SET_PARAMS_REQ = 328,
WLAN_HAL_WIFI_CONFIG_SET_PARAMS_RSP = 329,
WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ = 330,
WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP = 331,
WLAN_HAL_MODIFY_ROAM_PARAMS_IND = 332,
WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND = 333,
/* PER based roaming support */
WLAN_HAL_SET_PER_ROAM_CONFIG_REQ = 334,
WLAN_HAL_SET_PER_ROAM_CONFIG_RSP = 335,
WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ = 336,
WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP = 337,
WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ = 339,
WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP = 340,
WLAN_HAL_SAP_AUTH_OFFLOAD_IND = 341,
WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ = 342,
WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP = 343,
WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ = 344,
WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP = 345,
WLAN_HAL_MDNS_RESP_OFFLOAD_REQ = 346,
WLAN_HAL_MDNS_RESP_OFFLOAD_RSP = 347,
WLAN_HAL_MDNS_STATS_OFFLOAD_REQ = 348,
WLAN_HAL_MDNS_STATS_OFFLOAD_RSP = 349,
/* QRF Support */
WLAN_HAL_QRF_AP_FIND_COMMAND = 350,
WLAN_HAL_QRF_PREF_NETW_FOUND_IND = 351,
WLAN_HAL_CAPTURE_GET_TSF_TSTAMP = 352,
WLAN_HAL_CAPTURE_GET_TSF_TSTAMP_RSP = 353,
/* ARP DEBUG stats*/
WLAN_HAL_FW_SET_CLEAR_ARP_STATS_REQ = 354,
WLAN_HAL_FW_SET_CLEAR_ARP_STATS_RSP = 355,
WLAN_HAL_FW_GET_ARP_STATS_REQ = 356,
WLAN_HAL_FW_GET_ARP_STATS_RSP = 357,
WLAN_HAL_POWER_CONTROL_MODE_CHANGE_REQ = 358,
WLAN_HAL_POWER_CONTROL_MODE_CHANGE_RSP = 359,
WLAN_HAL_VOWIFI_IND = 360,
WLAN_HAL_QPOWER_ENABLE_BY_HOST_IND = 361,
WLAN_HAL_MSG_MAX = WLAN_HAL_MSG_TYPE_MAX_ENUM_SIZE
}tHalHostMsgType;
/* Enumeration for Version */
typedef enum
{
WLAN_HAL_MSG_VERSION0 = 0,
WLAN_HAL_MSG_VERSION1 = 1,
WLAN_HAL_MSG_WCNSS_CTRL_VERSION = 0x7FFF, /*define as 2 bytes data*/
WLAN_HAL_MSG_VERSION_MAX_FIELD = WLAN_HAL_MSG_WCNSS_CTRL_VERSION
}tHalHostMsgVersion;
/* Enumeration for Boolean - False/True, On/Off */
typedef enum tagAniBoolean
{
eANI_BOOLEAN_FALSE = 0,
eANI_BOOLEAN_TRUE,
eANI_BOOLEAN_OFF = 0,
eANI_BOOLEAN_ON = 1,
eANI_BOOLEAN_MAX_FIELD = 0x7FFFFFFF /* define as 4 bytes data */
} eAniBoolean;
typedef enum
{
eDRIVER_TYPE_PRODUCTION = 0,
eDRIVER_TYPE_MFG = 1,
eDRIVER_TYPE_DVT = 2,
eDRIVER_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tDriverType;
typedef enum
{
HAL_STOP_TYPE_SYS_RESET,
HAL_STOP_TYPE_SYS_DEEP_SLEEP,
HAL_STOP_TYPE_RF_KILL,
HAL_STOP_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
}tHalStopType;
typedef enum
{
eHAL_SYS_MODE_NORMAL,
eHAL_SYS_MODE_LEARN,
eHAL_SYS_MODE_SCAN,
eHAL_SYS_MODE_PROMISC,
eHAL_SYS_MODE_SUSPEND_LINK,
eHAL_SYS_MODE_ROAM_SCAN,
eHAL_SYS_MODE_ROAM_SUSPEND_LINK,
eHAL_SYS_MODE_OEM_DATA,
eHAL_SYS_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
} eHalSysMode;
typedef enum
{
eHAL_CHANNEL_SWITCH_SOURCE_SCAN,
eHAL_CHANNEL_SWITCH_SOURCE_LISTEN,
eHAL_CHANNEL_SWITCH_SOURCE_MCC,
eHAL_CHANNEL_SWITCH_SOURCE_CSA,
eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_BSS,
eHAL_CHANNEL_SWITCH_SOURCE_CONFIG_STA,
eHAL_CHANNEL_SWITCH_SOURCE_JOIN_REQ,
eHAL_CHANNEL_SWITCH_SOURCE_INNAV,
eHAL_CHANNEL_SWITCH_SOURCE_WCA,
eHAL_CHANNEL_SWITCH_SOURCE_MLME,
eHAL_CHANNEL_SWITCH_SOURCE_MAX = WLAN_HAL_MAX_ENUM_SIZE
} eHalChanSwitchSource;
typedef enum
{
PHY_SINGLE_CHANNEL_CENTERED = 0, // 20MHz IF bandwidth centered on IF carrier
PHY_DOUBLE_CHANNEL_LOW_PRIMARY = 1, // 40MHz IF bandwidth with lower 20MHz supporting the primary channel
PHY_DOUBLE_CHANNEL_CENTERED = 2, // 40MHz IF bandwidth centered on IF carrier
PHY_DOUBLE_CHANNEL_HIGH_PRIMARY = 3, // 40MHz IF bandwidth with higher 20MHz supporting the primary channel
#ifdef WLAN_FEATURE_11AC
PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_CENTERED = 4, //20/40MHZ offset LOW 40/80MHZ offset CENTERED
PHY_QUADRUPLE_CHANNEL_20MHZ_CENTERED_40MHZ_CENTERED = 5, //20/40MHZ offset CENTERED 40/80MHZ offset CENTERED
PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_CENTERED = 6, //20/40MHZ offset HIGH 40/80MHZ offset CENTERED
PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_LOW = 7,//20/40MHZ offset LOW 40/80MHZ offset LOW
PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_LOW = 8, //20/40MHZ offset HIGH 40/80MHZ offset LOW
PHY_QUADRUPLE_CHANNEL_20MHZ_LOW_40MHZ_HIGH = 9, //20/40MHZ offset LOW 40/80MHZ offset HIGH
PHY_QUADRUPLE_CHANNEL_20MHZ_HIGH_40MHZ_HIGH = 10,//20/40MHZ offset-HIGH 40/80MHZ offset HIGH
#endif
PHY_CHANNEL_BONDING_STATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
}ePhyChanBondState;
// Spatial Multiplexing(SM) Power Save mode
typedef enum eSirMacHTMIMOPowerSaveState
{
eSIR_HT_MIMO_PS_STATIC = 0, // Static SM Power Save mode
eSIR_HT_MIMO_PS_DYNAMIC = 1, // Dynamic SM Power Save mode
eSIR_HT_MIMO_PS_NA = 2, // reserved
eSIR_HT_MIMO_PS_NO_LIMIT = 3, // SM Power Save disabled
eSIR_HT_MIMO_PS_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tSirMacHTMIMOPowerSaveState;
/* each station added has a rate mode which specifies the sta attributes */
typedef enum eStaRateMode {
eSTA_TAURUS = 0,
eSTA_TITAN,
eSTA_POLARIS,
eSTA_11b,
eSTA_11bg,
eSTA_11a,
eSTA_11n,
#ifdef WLAN_FEATURE_11AC
eSTA_11ac,
#endif
eSTA_INVALID_RATE_MODE = WLAN_HAL_MAX_ENUM_SIZE
} tStaRateMode, *tpStaRateMode;
#define SIR_NUM_11B_RATES 4 //1,2,5.5,11
#define SIR_NUM_11A_RATES 8 //6,9,12,18,24,36,48,54
#define SIR_NUM_POLARIS_RATES 3 //72,96,108
#define SIR_MAC_MAX_SUPPORTED_MCS_SET 16
typedef enum eSirBssType
{
eSIR_INFRASTRUCTURE_MODE,
eSIR_INFRA_AP_MODE, //Added for softAP support
eSIR_IBSS_MODE,
eSIR_BTAMP_STA_MODE, //Added for BT-AMP support
eSIR_BTAMP_AP_MODE, //Added for BT-AMP support
eSIR_AUTO_MODE,
eSIR_DONOT_USE_BSS_TYPE = WLAN_HAL_MAX_ENUM_SIZE
} tSirBssType;
typedef enum eSirNwType
{
eSIR_11A_NW_TYPE,
eSIR_11B_NW_TYPE,
eSIR_11G_NW_TYPE,
eSIR_11N_NW_TYPE,
eSIR_DONOT_USE_NW_TYPE = WLAN_HAL_MAX_ENUM_SIZE
} tSirNwType;
typedef tANI_U16 tSirMacBeaconInterval;
#define SIR_MAC_RATESET_EID_MAX 12
typedef enum eSirMacHTOperatingMode
{
eSIR_HT_OP_MODE_PURE, // No Protection
eSIR_HT_OP_MODE_OVERLAP_LEGACY, // Overlap Legacy device present, protection is optional
eSIR_HT_OP_MODE_NO_LEGACY_20MHZ_HT, // No legacy device, but 20 MHz HT present
eSIR_HT_OP_MODE_MIXED, // Protection is required
eSIR_HT_OP_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tSirMacHTOperatingMode;
/// Encryption type enum used with peer
typedef enum eAniEdType
{
eSIR_ED_NONE,
eSIR_ED_WEP40,
eSIR_ED_WEP104,
eSIR_ED_TKIP,
eSIR_ED_CCMP,
eSIR_ED_WPI,
eSIR_ED_AES_128_CMAC,
eSIR_ED_NOT_IMPLEMENTED = WLAN_HAL_MAX_ENUM_SIZE
} tAniEdType;
#define WLAN_MAX_KEY_RSC_LEN 16
#define WLAN_WAPI_KEY_RSC_LEN 16
/// MAX key length when ULA is used
#define SIR_MAC_MAX_KEY_LENGTH 32
#define SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS 4
/// Enum to specify whether key is used
/// for TX only, RX only or both
typedef enum eAniKeyDirection
{
eSIR_TX_ONLY,
eSIR_RX_ONLY,
eSIR_TX_RX,
eSIR_TX_DEFAULT,
eSIR_DONOT_USE_KEY_DIRECTION = WLAN_HAL_MAX_ENUM_SIZE
} tAniKeyDirection;
typedef enum eAniWepType
{
eSIR_WEP_STATIC,
eSIR_WEP_DYNAMIC,
eSIR_WEP_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tAniWepType;
typedef enum eSriLinkState {
eSIR_LINK_IDLE_STATE = 0,
eSIR_LINK_PREASSOC_STATE = 1,
eSIR_LINK_POSTASSOC_STATE = 2,
eSIR_LINK_AP_STATE = 3,
eSIR_LINK_IBSS_STATE = 4,
/* BT-AMP Case */
eSIR_LINK_BTAMP_PREASSOC_STATE = 5,
eSIR_LINK_BTAMP_POSTASSOC_STATE = 6,
eSIR_LINK_BTAMP_AP_STATE = 7,
eSIR_LINK_BTAMP_STA_STATE = 8,
/* Reserved for HAL Internal Use */
eSIR_LINK_LEARN_STATE = 9,
eSIR_LINK_SCAN_STATE = 10,
eSIR_LINK_FINISH_SCAN_STATE = 11,
eSIR_LINK_INIT_CAL_STATE = 12,
eSIR_LINK_FINISH_CAL_STATE = 13,
#ifdef WLAN_FEATURE_P2P
eSIR_LINK_LISTEN_STATE = 14,
eSIR_LINK_SEND_ACTION_STATE = 15,
#endif
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
eSIR_LINK_FT_PREASSOC_STATE = 16,
#endif
#ifdef WLAN_FEATURE_LFR_MBB
eSIR_LINK_PRE_AUTH_REASSOC_STATE = 17,
#endif
eSIR_LINK_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tSirLinkState;
typedef enum
{
HAL_SUMMARY_STATS_INFO = 0x00000001,
HAL_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
HAL_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
HAL_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
HAL_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
HAL_PER_STA_STATS_INFO = 0x00000020,
HAL_PER_TX_PKT_STATS_INFO = 0x00000040
}eHalStatsMask;
/* BT-AMP events type */
typedef enum
{
BTAMP_EVENT_CONNECTION_START,
BTAMP_EVENT_CONNECTION_STOP,
BTAMP_EVENT_CONNECTION_TERMINATED,
BTAMP_EVENT_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE, //This and beyond are invalid values
} tBtAmpEventType;
//***************************************************************
/*******************PE Statistics*************************/
typedef enum
{
PE_SUMMARY_STATS_INFO = 0x00000001,
PE_GLOBAL_CLASS_A_STATS_INFO = 0x00000002,
PE_GLOBAL_CLASS_B_STATS_INFO = 0x00000004,
PE_GLOBAL_CLASS_C_STATS_INFO = 0x00000008,
PE_GLOBAL_CLASS_D_STATS_INFO = 0x00000010,
PE_PER_STA_STATS_INFO = 0x00000020,
PE_PER_TX_PKT_STATS_INFO = 0x00000040,
PE_STATS_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE //This and beyond are invalid values
}ePEStatsMask;
/******************************LINK LAYER Statitics**********************/
typedef int wifi_radio;
typedef int wifi_channel;
typedef int wifi_tx_rate;
/* channel operating width */
typedef enum {
WIFI_CHAN_WIDTH_20 = 0,
WIFI_CHAN_WIDTH_40 = 1,
WIFI_CHAN_WIDTH_80 = 2,
WIFI_CHAN_WIDTH_160 = 3,
WIFI_CHAN_WIDTH_80P80 = 4,
WIFI_CHAN_WIDTH_5 = 5,
WIFI_CHAN_WIDTH_10 = 6,
} wifi_channel_width;
typedef enum {
WIFI_DISCONNECTED = 0,
WIFI_AUTHENTICATING = 1,
WIFI_ASSOCIATING = 2,
WIFI_ASSOCIATED = 3,
WIFI_EAPOL_STARTED = 4, // if done by firmware/driver
WIFI_EAPOL_COMPLETED = 5, // if done by firmware/driver
} wifi_connection_state;
typedef enum {
WIFI_ROAMING_IDLE = 0,
WIFI_ROAMING_ACTIVE = 1,
} wifi_roam_state;
typedef enum {
WIFI_INTERFACE_STA = 0,
WIFI_INTERFACE_SOFTAP = 1,
WIFI_INTERFACE_IBSS = 2,
WIFI_INTERFACE_P2P_CLIENT = 3,
WIFI_INTERFACE_P2P_GO = 4,
WIFI_INTERFACE_NAN = 5,
WIFI_INTERFACE_MESH = 6,
} wifi_interface_mode;
#define WIFI_CAPABILITY_QOS 0x00000001 // set for QOS association
#define WIFI_CAPABILITY_PROTECTED 0x00000002 // set for protected association (802.11 beacon frame control protected bit set)
#define WIFI_CAPABILITY_INTERWORKING 0x00000004 // set if 802.11 Extended Capabilities element interworking bit is set
#define WIFI_CAPABILITY_HS20 0x00000008 // set for HS20 association
#define WIFI_CAPABILITY_SSID_UTF8 0x00000010 // set is 802.11 Extended Capabilities element UTF-8 SSID bit is set
#define WIFI_CAPABILITY_COUNTRY 0x00000020 // set is 802.11 Country Element is present
typedef PACKED_PRE struct PACKED_POST
{
wifi_interface_mode mode; // interface mode
tANI_U8 mac_addr[6]; // interface mac address (self)
wifi_connection_state state; // connection state (valid for STA, CLI only)
wifi_roam_state roaming; // roaming state
tANI_U32 capabilities; // WIFI_CAPABILITY_XXX (self)
tANI_U8 ssid[33]; // null terminated SSID
tANI_U8 bssid[6]; // bssid
tANI_U8 ap_country_str[3]; // country string advertised by AP
tANI_U8 country_str[3]; // country string for this association
} wifi_interface_info;
/* channel information */
typedef PACKED_PRE struct PACKED_POST
{
wifi_channel_width width; // channel width (20, 40, 80, 80+80, 160)
wifi_channel center_freq; // primary 20 MHz channel
wifi_channel center_freq0; // center frequency (MHz) first segment
wifi_channel center_freq1; // center frequency (MHz) second segment
} wifi_channel_info;
/* wifi rate info */
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 preamble :3; // 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved
tANI_U32 nss :2; // 0:1x1, 1:2x2, 3:3x3, 4:4x4
tANI_U32 bw :3; // 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz
tANI_U32 rateMcsIdx :8; // OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
// HT/VHT it would be mcs index
tANI_U32 reserved :16; // reserved
tANI_U32 bitrate; // units of 100 Kbps
} wifi_rate;
/* channel statistics */
typedef PACKED_PRE struct PACKED_POST
{
wifi_channel_info channel; // channel
tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
tANI_U32 cca_busy_time; // msecs the CCA register is busy (32 bits number accruing over time)
} wifi_channel_stats;
/* radio statistics */
typedef PACKED_PRE struct PACKED_POST
{
wifi_radio radio; // wifi radio (if multiple radio supported)
tANI_U32 on_time; // msecs the radio is awake (32 bits number accruing over time)
tANI_U32 tx_time; // msecs the radio is transmitting (32 bits number accruing over time)
tANI_U32 rx_time; // msecs the radio is in active receive (32 bits number accruing over time)
tANI_U32 on_time_scan; // msecs the radio is awake due to all scan (32 bits number accruing over time)
tANI_U32 on_time_nbd; // msecs the radio is awake due to NAN (32 bits number accruing over time)
tANI_U32 on_time_gscan; // msecs the radio is awake due to G?scan (32 bits number accruing over time)
tANI_U32 on_time_roam_scan; // msecs the radio is awake due to roam?scan (32 bits number accruing over time)
tANI_U32 on_time_pno_scan; // msecs the radio is awake due to PNO scan (32 bits number accruing over time)
tANI_U32 on_time_hs20; // msecs the radio is awake due to HS2.0 scans and GAS exchange (32 bits number accruing over time)
tANI_U32 num_channels; // number of channels
wifi_channel_stats channels[1]; // channel statistics
} wifi_radio_stat;
/* per rate statistics */
typedef PACKED_PRE struct PACKED_POST
{
wifi_rate rate; // rate information *
tANI_U32 tx_mpdu; // number of successfully transmitted data pkts (ACK rcvd) *
tANI_U32 rx_mpdu; // number of received data pkts
tANI_U32 mpdu_lost; // number of data packet losses (no ACK)
tANI_U32 retries; // total number of data pkt retries *
tANI_U32 retries_short; // number of short data pkt retries
tANI_U32 retries_long; // number of long data pkt retries
} wifi_rate_stat;
/* access categories */
typedef enum {
WIFI_AC_VO = 0,
WIFI_AC_VI = 1,
WIFI_AC_BE = 2,
WIFI_AC_BK = 3,
WIFI_AC_MAX = 4,
} wifi_traffic_ac;
/* wifi peer type */
typedef enum
{
WIFI_PEER_STA,
WIFI_PEER_AP,
WIFI_PEER_P2P_GO,
WIFI_PEER_P2P_CLIENT,
WIFI_PEER_NAN,
WIFI_PEER_TDLS,
WIFI_PEER_INVALID,
} wifi_peer_type;
/* per peer statistics */
typedef PACKED_PRE struct PACKED_POST
{
wifi_peer_type type; // peer type (AP, TDLS, GO etc.)
tANI_U8 peer_mac_address[6]; // mac address
tANI_U32 capabilities; // peer WIFI_CAPABILITY_XXX
tANI_U32 num_rate; // number of rates
wifi_rate_stat rate_stats[1]; // per rate statistics, number of entries = num_rate
} wifi_peer_info;
/* per access category statistics */
typedef PACKED_PRE struct PACKED_POST
{
wifi_traffic_ac ac; // access category (VI, VO, BE, BK)
tANI_U32 tx_mpdu; // number of successfully transmitted unicast data pkts (ACK rcvd)
tANI_U32 rx_mpdu; // number of received unicast mpdus
tANI_U32 tx_mcast; // number of succesfully transmitted multicast data packets
// STA case: implies ACK received from AP for the unicast packet in which mcast pkt was sent
tANI_U32 rx_mcast; // number of received multicast data packets
tANI_U32 rx_ampdu; // number of received unicast a-mpdus
tANI_U32 tx_ampdu; // number of transmitted unicast a-mpdus
tANI_U32 mpdu_lost; // number of data pkt losses (no ACK)
tANI_U32 retries; // total number of data pkt retries
tANI_U32 retries_short; // number of short data pkt retries
tANI_U32 retries_long; // number of long data pkt retries
tANI_U32 contention_time_min; // data pkt min contention time (usecs)
tANI_U32 contention_time_max; // data pkt max contention time (usecs)
tANI_U32 contention_time_avg; // data pkt avg contention time (usecs)
tANI_U32 contention_num_samples; // num of data pkts used for contention statistics
} wifi_wmm_ac_stat;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U64 average_tsf_offset;
tANI_U32 leaky_ap_avg_num_frames_leaked;
tANI_U32 leaky_ap_guard_time;
tANI_U32 leaky_ap_detected;
} wifi_iface_leaky_ap_info;
/* Interface statistics - corresponding to 2nd most LSB in wifi statistics bitmap for getting statistics */
typedef PACKED_PRE struct PACKED_POST
{
wifi_interface_info info; // current state of the interface
tANI_U32 beacon_rx; // access point beacon received count from connected AP
tANI_U32 mgmt_rx; // access point mgmt frames received count from connected AP (including Beacon)
tANI_U32 mgmt_action_rx; // action frames received count
tANI_U32 mgmt_action_tx; // action frames transmit count
tANI_U32 rssi_mgmt; // access Point Beacon and Management frames RSSI (averaged)
tANI_U32 rssi_data; // access Point Data Frames RSSI (averaged) from connected AP
tANI_U32 rssi_ack; // access Point ACK RSSI (averaged) from connected AP
wifi_wmm_ac_stat AccessclassStats[WIFI_AC_MAX]; // per ac data packet statistics
wifi_iface_leaky_ap_info leakyApInfo;
} wifi_iface_stat;
/* Peer statistics - corresponding to 3rd most LSB in wifi statistics bitmap for getting statistics */
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 num_peers; // number of peers
wifi_peer_info peer_info[1]; // per peer statistics
} wifi_peer_stat;
/* wifi statistics bitmap for getting statistics */
#define WMI_LINK_STATS_RADIO 0x00000001
#define WMI_LINK_STATS_IFACE 0x00000002
#define WMI_LINK_STATS_ALL_PEER 0x00000004
#define WMI_LINK_STATS_PER_PEER 0x00000008
/* wifi statistics bitmap for clearing statistics */
#define WIFI_STATS_RADIO 0x00000001 // all radio statistics
#define WIFI_STATS_RADIO_CCA 0x00000002 // cca_busy_time (within radio statistics)
#define WIFI_STATS_RADIO_CHANNELS 0x00000004 // all channel statistics (within radio statistics)
#define WIFI_STATS_RADIO_SCAN 0x00000008 // all scan statistics (within radio statistics)
#define WIFI_STATS_IFACE 0x00000010 // all interface statistics
#define WIFI_STATS_IFACE_TXRATE 0x00000020 // all tx rate statistics (within interface statistics)
#define WIFI_STATS_IFACE_AC 0x00000040 // all ac statistics (within interface statistics)
#define WIFI_STATS_IFACE_CONTENTION 0x00000080 // all contention (min, max, avg) statistics (within ac statisctics)
/*---------------------------------------------------------------------------
Message definitons - All the messages below need to be packed
---------------------------------------------------------------------------*/
#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
#pragma pack(push, 1)
#elif defined(__ANI_COMPILER_PRAGMA_PACK)
#pragma pack(1)
#else
#endif
/// Definition for HAL API Version.
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 revision;
tANI_U8 version;
tANI_U8 minor;
tANI_U8 major;
} tWcnssWlanVersion, *tpWcnssWlanVersion;
/// Definition for Encryption Keys
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 keyId;
tANI_U8 unicast; // 0 for multicast
tAniKeyDirection keyDirection;
tANI_U8 keyRsc[WLAN_MAX_KEY_RSC_LEN]; // Usage is unknown
tANI_U8 paeRole; // =1 for authenticator,=0 for supplicant
tANI_U16 keyLength;
tANI_U8 key[SIR_MAC_MAX_KEY_LENGTH];
} tSirKeys, *tpSirKeys;
//SetStaKeyParams Moving here since it is shared by configbss/setstakey msgs
typedef PACKED_PRE struct PACKED_POST
{
/*STA Index*/
tANI_U16 staIdx;
/*Encryption Type used with peer*/
tAniEdType encType;
/*STATIC/DYNAMIC - valid only for WEP*/
tAniWepType wepType;
/*Default WEP key, valid only for static WEP, must between 0 and 3.*/
tANI_U8 defWEPIdx;
/* valid only for non-static WEP encyrptions */
tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
/*Control for Replay Count, 1= Single TID based replay count on Tx
0 = Per TID based replay count on TX */
tANI_U8 singleTidRc;
} tSetStaKeyParams, *tpSetStaKeyParams;
/* 4-byte control message header used by HAL*/
typedef PACKED_PRE struct PACKED_POST
{
tHalHostMsgType msgType:16;
tHalHostMsgVersion msgVersion:16;
tANI_U32 msgLen;
} tHalMsgHeader, *tpHalMsgHeader;
/* Config format required by HAL for each CFG item*/
typedef PACKED_PRE struct PACKED_POST
{
/* Cfg Id. The Id required by HAL is exported by HAL
* in shared header file between UMAC and HAL.*/
tANI_U16 uCfgId;
/* Length of the Cfg. This parameter is used to go to next cfg
* in the TLV format.*/
tANI_U16 uCfgLen;
/* Padding bytes for unaligned address's */
tANI_U16 uCfgPadBytes;
/* Reserve bytes for making cfgVal to align address */
tANI_U16 uCfgReserve;
/* Following the uCfgLen field there should be a 'uCfgLen' bytes
* containing the uCfgValue ; tANI_U8 uCfgValue[uCfgLen] */
} tHalCfg, *tpHalCfg;
/*---------------------------------------------------------------------------
WLAN_HAL_START_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST sHalMacStartParameters
{
/* Drive Type - Production or FTM etc */
tDriverType driverType;
/*Length of the config buffer*/
tANI_U32 uConfigBufferLen;
/* Following this there is a TLV formatted buffer of length
* "uConfigBufferLen" bytes containing all config values.
* The TLV is expected to be formatted like this:
* 0 15 31 31+CFG_LEN-1 length-1
* | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
*/
} tHalMacStartParameters, *tpHalMacStartParameters;
typedef PACKED_PRE struct PACKED_POST
{
/* Note: The length specified in tHalMacStartReqMsg messages should be
* header.msgLen = sizeof(tHalMacStartReqMsg) + uConfigBufferLen */
tHalMsgHeader header;
tHalMacStartParameters startReqParams;
} tHalMacStartReqMsg, *tpHalMacStartReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_START_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST sHalMacStartRspParameters
{
/*success or failure */
tANI_U16 status;
/*Max number of STA supported by the device*/
tANI_U8 ucMaxStations;
/*Max number of BSS supported by the device*/
tANI_U8 ucMaxBssids;
/*API Version */
tWcnssWlanVersion wcnssWlanVersion;
/*CRM build information */
tANI_U8 wcnssCrmVersionString[WLAN_HAL_VERSION_LENGTH];
/*hardware/chipset/misc version information */
tANI_U8 wcnssWlanVersionString[WLAN_HAL_VERSION_LENGTH];
} tHalMacStartRspParams, *tpHalMacStartRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalMacStartRspParams startRspParams;
} tHalMacStartRspMsg, *tpHalMacStartRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_STOP_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*The reason for which the device is being stopped*/
tHalStopType reason;
}tHalMacStopReqParams, *tpHalMacStopReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalMacStopReqParams stopReqParams;
} tHalMacStopReqMsg, *tpHalMacStopReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_STOP_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
}tHalMacStopRspParams, *tpHalMacStopRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalMacStopRspParams stopRspParams;
} tHalMacStopRspMsg, *tpHalMacStopRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_UPDATE_CFG_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Length of the config buffer. Allows UMAC to update multiple CFGs */
tANI_U32 uConfigBufferLen;
/* Following this there is a TLV formatted buffer of length
* "uConfigBufferLen" bytes containing all config values.
* The TLV is expected to be formatted like this:
* 0 15 31 31+CFG_LEN-1 length-1
* | CFG_ID | CFG_LEN | CFG_BODY | CFG_ID |......|
*/
} tHalUpdateCfgReqParams, *tpHalUpdateCfgReqParams;
typedef PACKED_PRE struct PACKED_POST
{
/* Note: The length specified in tHalUpdateCfgReqMsg messages should be
* header.msgLen = sizeof(tHalUpdateCfgReqMsg) + uConfigBufferLen */
tHalMsgHeader header;
tHalUpdateCfgReqParams updateCfgReqParams;
} tHalUpdateCfgReqMsg, *tpHalUpdateCfgReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_UPDATE_CFG_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
}tHalUpdateCfgRspParams, *tpHalUpdateCfgRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalUpdateCfgRspParams updateCfgRspParams;
} tHalUpdateCfgRspMsg, *tpHalUpdateCfgRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_INIT_SCAN_REQ
---------------------------------------------------------------------------*/
/// Frame control field format (2 bytes)
typedef __ani_attr_pre_packed struct sSirMacFrameCtl
{
#ifndef ANI_LITTLE_BIT_ENDIAN
tANI_U8 subType :4;
tANI_U8 type :2;
tANI_U8 protVer :2;
tANI_U8 order :1;
tANI_U8 wep :1;
tANI_U8 moreData :1;
tANI_U8 powerMgmt :1;
tANI_U8 retry :1;
tANI_U8 moreFrag :1;
tANI_U8 fromDS :1;
tANI_U8 toDS :1;
#else
tANI_U8 protVer :2;
tANI_U8 type :2;
tANI_U8 subType :4;
tANI_U8 toDS :1;
tANI_U8 fromDS :1;
tANI_U8 moreFrag :1;
tANI_U8 retry :1;
tANI_U8 powerMgmt :1;
tANI_U8 moreData :1;
tANI_U8 wep :1;
tANI_U8 order :1;
#endif
} __ani_attr_packed tSirMacFrameCtl, *tpSirMacFrameCtl;
/// Sequence control field
typedef __ani_attr_pre_packed struct sSirMacSeqCtl
{
tANI_U8 fragNum : 4;
tANI_U8 seqNumLo : 4;
tANI_U8 seqNumHi : 8;
} __ani_attr_packed tSirMacSeqCtl, *tpSirMacSeqCtl;
/// Management header format
typedef __ani_attr_pre_packed struct sSirMacMgmtHdr
{
tSirMacFrameCtl fc;
tANI_U8 durationLo;
tANI_U8 durationHi;
tANI_U8 da[6];
tANI_U8 sa[6];
tANI_U8 bssId[6];
tSirMacSeqCtl seqControl;
} __ani_attr_packed tSirMacMgmtHdr, *tpSirMacMgmtHdr;
/// Scan Entry to hold active BSS idx's
typedef __ani_attr_pre_packed struct sSirScanEntry
{
tANI_U8 bssIdx[HAL_NUM_BSSID];
tANI_U8 activeBSScnt;
}__ani_attr_packed tSirScanEntry, *ptSirScanEntry;
typedef PACKED_PRE struct PACKED_POST {
/*LEARN - AP Role
SCAN - STA Role*/
eHalSysMode scanMode;
/*BSSID of the BSS*/
tSirMacAddr bssid;
/*Whether BSS needs to be notified*/
tANI_U8 notifyBss;
/*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
CTS to Self). Must always be a valid frame type.*/
tANI_U8 frameType;
/*UMAC has the option of passing the MAC frame to be used for notifying
the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
frameType.*/
tANI_U8 frameLength;
/* Following the framelength there is a MAC frame buffer if frameLength
is non-zero. */
tSirMacMgmtHdr macMgmtHdr;
/*Entry to hold number of active BSS idx's*/
tSirScanEntry scanEntry;
} tInitScanParams, * tpInitScanParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tInitScanParams initScanParams;
} tHalInitScanReqMsg, *tpHalInitScanReqMsg;
typedef PACKED_PRE struct PACKED_POST {
/*LEARN - AP Role
SCAN - STA Role*/
eHalSysMode scanMode;
/*BSSID of the BSS*/
tSirMacAddr bssid;
/*Whether BSS needs to be notified*/
tANI_U8 notifyBss;
/*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
CTS to Self). Must always be a valid frame type.*/
tANI_U8 frameType;
/*UMAC has the option of passing the MAC frame to be used for notifying
the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
frameType.*/
tANI_U8 frameLength;
/* Following the framelength there is a MAC frame buffer if frameLength
is non-zero. */
tSirMacMgmtHdr macMgmtHdr;
/*Entry to hold number of active BSS idx's*/
tSirScanEntry scanEntry;
/* Single NoA usage in Scanning */
tANI_U8 useNoA;
/* Indicates the scan duration (in ms) */
tANI_U16 scanDuration;
} tInitScanConParams, * tpInitScanConParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tInitScanConParams initScanParams;
} tHalInitScanConReqMsg, *tpHalInitScanConReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_INIT_SCAN_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
}tHalInitScanRspParams, *tpHalInitScanRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalInitScanRspParams initScanRspParams;
} tHalInitScanRspMsg, *tpHalInitScanRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_START_SCAN_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*Indicates the channel to scan*/
tANI_U8 scanChannel;
} tStartScanParams, * tpStartScanParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tStartScanParams startScanParams;
} tHalStartScanReqMsg, *tpHalStartScanReqMsg;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
} tHalMotionEventReqMsg, *tpHalMotionEventReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_START_SCAN_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
tANI_U32 startTSF[2];
tPowerdBm txMgmtPower;
}tHalStartScanRspParams, *tpHalStartScanRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStartScanRspParams startScanRspParams;
} tHalStartScanRspMsg, *tpHalStartScanRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_END_SCAN_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*Indicates the channel to stop scanning. Not used really. But retained
for symmetry with "start Scan" message. It can also help in error
check if needed.*/
tANI_U8 scanChannel;
} tEndScanParams, *tpEndScanParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tEndScanParams endScanParams;
} tHalEndScanReqMsg, *tpHalEndScanReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_END_SCAN_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
}tHalEndScanRspParams, *tpHalEndScanRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalEndScanRspParams endScanRspParams;
} tHalEndScanRspMsg, *tpHalEndScanRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_FINISH_SCAN_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Identifies the operational state of the AP/STA
* LEARN - AP Role SCAN - STA Role */
eHalSysMode scanMode;
/*Operating channel to tune to.*/
tANI_U8 currentOperChannel;
/*Channel Bonding state If 20/40 MHz is operational, this will indicate the
40 MHz extension channel in combination with the control channel*/
ePhyChanBondState cbState;
/*BSSID of the BSS*/
tSirMacAddr bssid;
/*Whether BSS needs to be notified*/
tANI_U8 notifyBss;
/*Kind of frame to be used for notifying the BSS (Data Null, QoS Null, or
CTS to Self). Must always be a valid frame type.*/
tANI_U8 frameType;
/*UMAC has the option of passing the MAC frame to be used for notifying
the BSS. If non-zero, HAL will use the MAC frame buffer pointed to by
macMgmtHdr. If zero, HAL will generate the appropriate MAC frame based on
frameType.*/
tANI_U8 frameLength;
/*Following the framelength there is a MAC frame buffer if frameLength
is non-zero.*/
tSirMacMgmtHdr macMgmtHdr;
/*Entry to hold number of active BSS idx's*/
tSirScanEntry scanEntry;
} tFinishScanParams, *tpFinishScanParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tFinishScanParams finishScanParams;
} tHalFinishScanReqMsg, *tpHalFinishScanReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_FINISH_SCAN_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
}tHalFinishScanRspParams, *tpHalFinishScanRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalFinishScanRspParams finishScanRspParams;
} tHalFinishScanRspMsg, *tpHalFinishScanRspMsg;
typedef PACKED_PRE struct PACKED_POST
{
tSetStaKeyParams keyParams;
uint8 pn[6];
} tHalEncConfigParams;
typedef PACKED_PRE struct PACKED_POST
{
uint16 length;
uint8 data[DISA_MAX_PAYLOAD_SIZE];
} tHalDisaPayload;
typedef PACKED_PRE struct PACKED_POST
{
#ifdef BYTE_ORDER_BIG_ENDIAN
uint8 reserved1 : 1;
uint8 ackpolicy : 2;
uint8 eosp : 1;
uint8 tid : 4;
uint8 appsbufferstate : 8;
#else
uint8 appsbufferstate : 8;
uint8 tid : 4;
uint8 eosp : 1;
uint8 ackpolicy : 2;
uint8 reserved1 : 1;
#endif
} tHalQosCtrlFieldType;
typedef PACKED_PRE struct PACKED_POST
{
#ifdef BYTE_ORDER_BIG_ENDIAN
uint16 subtype : 4;
uint16 type : 2;
uint16 protocol : 2;
uint16 order : 1;
uint16 wep : 1;
uint16 moredata : 1;
uint16 pm : 1;
uint16 retry : 1;
uint16 morefrag : 1;
uint16 fromds : 1;
uint16 tods : 1;
#else
uint16 tods : 1;
uint16 fromds : 1;
uint16 morefrag : 1;
uint16 retry : 1;
uint16 pm : 1;
uint16 moredata : 1;
uint16 wep : 1;
uint16 order : 1;
uint16 protocol : 2;
uint16 type : 2;
uint16 subtype : 4;
#endif
} tHalFrmCtrlType;
typedef PACKED_PRE struct PACKED_POST
{
/* Frame control field */
tHalFrmCtrlType fc;
/* Duration ID */
uint16 usDurationId;
/* Address 1 field */
uint8 vA1[HAL_MAC_ADDR_LEN];
/* Address 2 field */
uint8 vA2[HAL_MAC_ADDR_LEN];
/* Address 3 field */
uint8 vA3[HAL_MAC_ADDR_LEN];
/* Sequence control field */
uint16 seqNum;
/* Optional A4 address */
uint8 optvA4[HAL_MAC_ADDR_LEN];
/* Optional QOS control field */
tHalQosCtrlFieldType usQosCtrl;
} tHal80211Header;
typedef PACKED_PRE struct PACKED_POST
{
tHal80211Header macHeader;
tHalEncConfigParams encParams;
tHalDisaPayload data;
} tSetEncryptedDataParams, *tpSetEncryptedDataParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetEncryptedDataParams encryptedDataParams;
} tSetEncryptedDataReqMsg, *tpSetEncryptedDataReqMsg;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
tHalDisaPayload encryptedPayload;
} tSetEncryptedDataRspParams, *tpSetEncryptedDataRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetEncryptedDataRspParams encryptedDataRspParams;
} tSetEncryptedDataRspMsg, *tpSetEncryptedDataRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_CONFIG_STA_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST {
/*
* For Self STA Entry: this represents Self Mode.
* For Peer Stations, this represents the mode of the peer.
* On Station:
* --this mode is updated when PE adds the Self Entry.
* -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
* ON AP:
* -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
* to indicate the self mode of the AP.
* -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
*/
tStaRateMode opRateMode;
// 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
tANI_U16 llbRates[SIR_NUM_11B_RATES];
tANI_U16 llaRates[SIR_NUM_11A_RATES];
tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
tANI_U16 reserved;
//Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
//First 26 bits are reserved for those Titan rates and
//the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
/*
* 0-76 bits used, remaining reserved
* bits 0-15 and 32 should be set.
*/
tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
/*
* RX Highest Supported Data Rate defines the highest data
* rate that the STA is able to receive, in unites of 1Mbps.
* This value is derived from "Supported MCS Set field" inside
* the HT capability element.
*/
tANI_U16 rxHighestDataRate;
} tSirSupportedRates, *tpSirSupportedRates;
typedef PACKED_PRE struct PACKED_POST
{
/*BSSID of STA*/
tSirMacAddr bssId;
/*ASSOC ID, as assigned by UMAC*/
tANI_U16 assocId;
/* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
tANI_U8 staType;
/*Short Preamble Supported.*/
tANI_U8 shortPreambleSupported;
/*MAC Address of STA*/
tSirMacAddr staMac;
/*Listen interval of the STA*/
tANI_U16 listenInterval;
/*Support for 11e/WMM*/
tANI_U8 wmmEnabled;
/*11n HT capable STA*/
tANI_U8 htCapable;
/*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
tANI_U8 txChannelWidthSet;
/*RIFS mode 0 - NA, 1 - Allowed */
tANI_U8 rifsMode;
/*L-SIG TXOP Protection mechanism
0 - No Support, 1 - Supported
SG - there is global field */
tANI_U8 lsigTxopProtection;
/*Max Ampdu Size supported by STA. TPE programming.
0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
tANI_U8 maxAmpduSize;
/*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
tANI_U8 maxAmpduDensity;
/*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
tANI_U8 maxAmsduSize;
/*Short GI support for 40Mhz packets*/
tANI_U8 fShortGI40Mhz;
/*Short GI support for 20Mhz packets*/
tANI_U8 fShortGI20Mhz;
/*Robust Management Frame (RMF) enabled/disabled*/
tANI_U8 rmfEnabled;
/* The unicast encryption type in the association */
tANI_U32 encryptType;
/*HAL should update the existing STA entry, if this flag is set. UMAC
will set this flag in case of RE-ASSOC, where we want to reuse the old
STA ID. 0 = Add, 1 = Update*/
tANI_U8 action;
/*U-APSD Flags: 1b per AC. Encoded as follows:
b7 b6 b5 b4 b3 b2 b1 b0 =
X X X X BE BK VI VO */
tANI_U8 uAPSD;
/*Max SP Length*/
tANI_U8 maxSPLen;
/*11n Green Field preamble support
0 - Not supported, 1 - Supported */
tANI_U8 greenFieldCapable;
/*MIMO Power Save mode*/
tSirMacHTMIMOPowerSaveState mimoPS;
/*Delayed BA Support*/
tANI_U8 delayedBASupport;
/*Max AMPDU duration in 32us*/
tANI_U8 us32MaxAmpduDuration;
/*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
it to 0 if AP does not support it. This indication is sent to HAL and
HAL uses this flag to pickup up appropriate 40Mhz rates.*/
tANI_U8 fDsssCckMode40Mhz;
/* Valid STA Idx when action=Update. Set to 0xFF when invalid!
Retained for backward compalibity with existing HAL code*/
tANI_U8 staIdx;
/* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
Retained for backward compalibity with existing HAL code*/
tANI_U8 bssIdx;
tANI_U8 p2pCapableSta;
/*Reserved to align next field on a dword boundary*/
tANI_U8 reserved;
/*These rates are the intersection of peer and self capabilities.*/
tSirSupportedRates supportedRates;
} tConfigStaParams, *tpConfigStaParams;
/*------------------------------------------------------------------------
* WLAN_HAL_CONFIG_STA_REQ
* ----------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST {
/*
* For Self STA Entry: this represents Self Mode.
* For Peer Stations, this represents the mode of the peer.
* On Station:
* --this mode is updated when PE adds the Self Entry.
* -- OR when PE sends 'ADD_BSS' message and station context in BSS is used to indicate the mode of the AP.
* ON AP:
* -- this mode is updated when PE sends 'ADD_BSS' and Sta entry for that BSS is used
* to indicate the self mode of the AP.
* -- OR when a station is associated, PE sends 'ADD_STA' message with this mode updated.
*/
tStaRateMode opRateMode;
// 11b, 11a and aniLegacyRates are IE rates which gives rate in unit of 500Kbps
tANI_U16 llbRates[SIR_NUM_11B_RATES];
tANI_U16 llaRates[SIR_NUM_11A_RATES];
tANI_U16 aniLegacyRates[SIR_NUM_POLARIS_RATES];
tANI_U16 reserved;
//Taurus only supports 26 Titan Rates(no ESF/concat Rates will be supported)
//First 26 bits are reserved for those Titan rates and
//the last 4 bits(bit28-31) for Taurus, 2(bit26-27) bits are reserved.
tANI_U32 aniEnhancedRateBitmap; //Titan and Taurus Rates
/*
* 0-76 bits used, remaining reserved
* bits 0-15 and 32 should be set.
*/
tANI_U8 supportedMCSSet[SIR_MAC_MAX_SUPPORTED_MCS_SET];
/*
* RX Highest Supported Data Rate defines the highest data
* rate that the STA is able to receive, in unites of 1Mbps.
* This value is derived from "Supported MCS Set field" inside
* the HT capability element.
*/
tANI_U16 rxHighestDataRate;
/* Indicates the Maximum MCS that can be received for each number
* of spacial streams */
tANI_U16 vhtRxMCSMap;
/*Indicate the highest VHT data rate that the STA is able to receive*/
tANI_U16 vhtRxHighestDataRate;
/* Indicates the Maximum MCS that can be transmitted for each number
* of spacial streams */
tANI_U16 vhtTxMCSMap;
/*Indicate the highest VHT data rate that the STA is able to transmit*/
tANI_U16 vhtTxHighestDataRate;
} tSirSupportedRates_V1, *tpSirSupportedRates_V1;
typedef PACKED_PRE struct PACKED_POST
{
/*BSSID of STA*/
tSirMacAddr bssId;
/*ASSOC ID, as assigned by UMAC*/
tANI_U16 assocId;
/* STA entry Type: 0 - Self, 1 - Other/Peer, 2 - BSSID, 3 - BCAST */
tANI_U8 staType;
/*Short Preamble Supported.*/
tANI_U8 shortPreambleSupported;
/*MAC Address of STA*/
tSirMacAddr staMac;
/*Listen interval of the STA*/
tANI_U16 listenInterval;
/*Support for 11e/WMM*/
tANI_U8 wmmEnabled;
/*11n HT capable STA*/
tANI_U8 htCapable;
/*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
tANI_U8 txChannelWidthSet;
/*RIFS mode 0 - NA, 1 - Allowed */
tANI_U8 rifsMode;
/*L-SIG TXOP Protection mechanism
0 - No Support, 1 - Supported
SG - there is global field */
tANI_U8 lsigTxopProtection;
/*Max Ampdu Size supported by STA. TPE programming.
0 : 8k , 1 : 16k, 2 : 32k, 3 : 64k */
tANI_U8 maxAmpduSize;
/*Max Ampdu density. Used by RA. 3 : 0~7 : 2^(11nAMPDUdensity -4)*/
tANI_U8 maxAmpduDensity;
/*Max AMSDU size 1 : 3839 bytes, 0 : 7935 bytes*/
tANI_U8 maxAmsduSize;
/*Short GI support for 40Mhz packets*/
tANI_U8 fShortGI40Mhz;
/*Short GI support for 20Mhz packets*/
tANI_U8 fShortGI20Mhz;
/*Robust Management Frame (RMF) enabled/disabled*/
tANI_U8 rmfEnabled;
/* The unicast encryption type in the association */
tANI_U32 encryptType;
/*HAL should update the existing STA entry, if this flag is set. UMAC
will set this flag in case of RE-ASSOC, where we want to reuse the old
STA ID. 0 = Add, 1 = Update*/
tANI_U8 action;
/*U-APSD Flags: 1b per AC. Encoded as follows:
b7 b6 b5 b4 b3 b2 b1 b0 =
X X X X BE BK VI VO */
tANI_U8 uAPSD;
/*Max SP Length*/
tANI_U8 maxSPLen;
/*11n Green Field preamble support
0 - Not supported, 1 - Supported */
tANI_U8 greenFieldCapable;
/*MIMO Power Save mode*/
tSirMacHTMIMOPowerSaveState mimoPS;
/*Delayed BA Support*/
tANI_U8 delayedBASupport;
/*Max AMPDU duration in 32us*/
tANI_U8 us32MaxAmpduDuration;
/*HT STA should set it to 1 if it is enabled in BSS. HT STA should set
it to 0 if AP does not support it. This indication is sent to HAL and
HAL uses this flag to pickup up appropriate 40Mhz rates.*/
tANI_U8 fDsssCckMode40Mhz;
/* Valid STA Idx when action=Update. Set to 0xFF when invalid!
Retained for backward compalibity with existing HAL code*/
tANI_U8 staIdx;
/* BSSID of BSS to which station is associated. Set to 0xFF when invalid.
Retained for backward compalibity with existing HAL code*/
tANI_U8 bssIdx;
tANI_U8 p2pCapableSta;
/*Reserved to align next field on a dword boundary*/
tANI_U8 htLdpcEnabled:1;
tANI_U8 vhtLdpcEnabled:1;
tANI_U8 vhtTxBFEnabled:1;
tANI_U8 vhtTxMUBformeeCapable:1;
tANI_U8 reserved:4;
/*These rates are the intersection of peer and self capabilities.*/
tSirSupportedRates_V1 supportedRates;
tANI_U8 vhtCapable;
tANI_U8 vhtTxChannelWidthSet;
} tConfigStaParams_V1, *tpConfigStaParams_V1;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
PACKED_PRE union PACKED_POST {
tConfigStaParams configStaParams;
tConfigStaParams_V1 configStaParams_V1;
} uStaParams;
} tConfigStaReqMsg, *tpConfigStaReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_CONFIG_STA_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
/* Station index; valid only when 'status' field value SUCCESS */
tANI_U8 staIdx;
/* BSSID Index of BSS to which the station is associated */
tANI_U8 bssIdx;
/* DPU Index for PTK */
tANI_U8 dpuIndex;
/* DPU Index for GTK */
tANI_U8 bcastDpuIndex;
/*DPU Index for IGTK */
tANI_U8 bcastMgmtDpuIdx;
/*PTK DPU signature*/
tANI_U8 ucUcastSig;
/*GTK DPU isignature*/
tANI_U8 ucBcastSig;
/* IGTK DPU signature*/
tANI_U8 ucMgmtSig;
tANI_U8 p2pCapableSta;
}tConfigStaRspParams, *tpConfigStaRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tConfigStaRspParams configStaRspParams;
}tConfigStaRspMsg, *tpConfigStaRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_DELETE_STA_REQ
---------------------------------------------------------------------------*/
/* Delete STA Request params */
typedef PACKED_PRE struct PACKED_POST
{
/* Index of STA to delete */
tANI_U8 staIdx;
} tDeleteStaParams, *tpDeleteStaParams;
/* Delete STA Request message*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDeleteStaParams delStaParams;
} tDeleteStaReqMsg, *tpDeleteStaReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_DELETE_STA_RSP
---------------------------------------------------------------------------*/
/* Delete STA Response Params */
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
/* Index of STA deleted */
tANI_U8 staId;
} tDeleteStaRspParams, *tpDeleteStaRspParams;
/* Delete STA Response message*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDeleteStaRspParams delStaRspParams;
} tDeleteStaRspMsg, *tpDeleteStaRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_CONFIG_BSS_REQ
---------------------------------------------------------------------------*/
//12 Bytes long because this structure can be used to represent rate
//and extended rate set IEs. The parser assume this to be at least 12
typedef __ani_attr_pre_packed struct sSirMacRateSet
{
tANI_U8 numRates;
tANI_U8 rate[SIR_MAC_RATESET_EID_MAX];
} __ani_attr_packed tSirMacRateSet;
// access category record
typedef __ani_attr_pre_packed struct sSirMacAciAifsn
{
#ifndef ANI_LITTLE_BIT_ENDIAN
tANI_U8 rsvd : 1;
tANI_U8 aci : 2;
tANI_U8 acm : 1;
tANI_U8 aifsn : 4;
#else
tANI_U8 aifsn : 4;
tANI_U8 acm : 1;
tANI_U8 aci : 2;
tANI_U8 rsvd : 1;
#endif
} __ani_attr_packed tSirMacAciAifsn;
// contention window size
typedef __ani_attr_pre_packed struct sSirMacCW
{
#ifndef ANI_LITTLE_BIT_ENDIAN
tANI_U8 max : 4;
tANI_U8 min : 4;
#else
tANI_U8 min : 4;
tANI_U8 max : 4;
#endif
} __ani_attr_packed tSirMacCW;
typedef __ani_attr_pre_packed struct sSirMacEdcaParamRecord
{
tSirMacAciAifsn aci;
tSirMacCW cw;
tANI_U16 txoplimit;
} __ani_attr_packed tSirMacEdcaParamRecord;
typedef __ani_attr_pre_packed struct sSirMacSSid
{
tANI_U8 length;
tANI_U8 ssId[32];
} __ani_attr_packed tSirMacSSid;
// Concurrency role. These are generic IDs that identify the various roles
// in the software system.
typedef enum {
HAL_STA_MODE=0,
HAL_STA_SAP_MODE=1, // to support softAp mode . This is misleading. It means AP MODE only.
HAL_P2P_CLIENT_MODE,
HAL_P2P_GO_MODE,
HAL_MONITOR_MODE,
} tHalConMode;
//This is a bit pattern to be set for each mode
//bit 0 - sta mode
//bit 1 - ap mode
//bit 2 - p2p client mode
//bit 3 - p2p go mode
typedef enum
{
HAL_STA=1,
HAL_SAP=2,
HAL_STA_SAP=3, //to support sta, softAp mode . This means STA+AP mode
HAL_P2P_CLIENT=4,
HAL_P2P_GO=8,
HAL_MAX_CONCURRENCY_PERSONA=4
} tHalConcurrencyMode;
// IFACE PERSONA for different Operating modes
typedef enum
{
HAL_IFACE_UNKNOWN=0,
HAL_IFACE_STA_MODE=1,
HAL_IFACE_P2P_MODE=2,
HAL_IFACE_MAX=0x7FFFFFFF,
} tHalIfacePersona;
typedef PACKED_PRE struct PACKED_POST
{
/* BSSID */
tSirMacAddr bssId;
/* Self Mac Address */
tSirMacAddr selfMacAddr;
/* BSS type */
tSirBssType bssType;
/*Operational Mode: AP =0, STA = 1*/
tANI_U8 operMode;
/*Network Type*/
tSirNwType nwType;
/*Used to classify PURE_11G/11G_MIXED to program MTU*/
tANI_U8 shortSlotTimeSupported;
/*Co-exist with 11a STA*/
tANI_U8 llaCoexist;
/*Co-exist with 11b STA*/
tANI_U8 llbCoexist;
/*Co-exist with 11g STA*/
tANI_U8 llgCoexist;
/*Coexistence with 11n STA*/
tANI_U8 ht20Coexist;
/*Non GF coexist flag*/
tANI_U8 llnNonGFCoexist;
/*TXOP protection support*/
tANI_U8 fLsigTXOPProtectionFullSupport;
/*RIFS mode*/
tANI_U8 fRIFSMode;
/*Beacon Interval in TU*/
tSirMacBeaconInterval beaconInterval;
/*DTIM period*/
tANI_U8 dtimPeriod;
/*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
tANI_U8 txChannelWidthSet;
/*Operating channel*/
tANI_U8 currentOperChannel;
/*Extension channel for channel bonding*/
tANI_U8 currentExtChannel;
/*Reserved to align next field on a dword boundary*/
tANI_U8 reserved;
/*SSID of the BSS*/
tSirMacSSid ssId;
/*HAL should update the existing BSS entry, if this flag is set.
UMAC will set this flag in case of reassoc, where we want to resue the
the old BSSID and still return success 0 = Add, 1 = Update*/
tANI_U8 action;
/* MAC Rate Set */
tSirMacRateSet rateSet;
/*Enable/Disable HT capabilities of the BSS*/
tANI_U8 htCapable;
// Enable/Disable OBSS protection
tANI_U8 obssProtEnabled;
/*RMF enabled/disabled*/
tANI_U8 rmfEnabled;
/*HT Operating Mode operating mode of the 802.11n STA*/
tSirMacHTOperatingMode htOperMode;
/*Dual CTS Protection: 0 - Unused, 1 - Used*/
tANI_U8 dualCTSProtection;
/* Probe Response Max retries */
tANI_U8 ucMaxProbeRespRetryLimit;
/* To Enable Hidden ssid */
tANI_U8 bHiddenSSIDEn;
/* To Enable Disable FW Proxy Probe Resp */
tANI_U8 bProxyProbeRespEn;
/* Boolean to indicate if EDCA params are valid. UMAC might not have valid
EDCA params or might not desire to apply EDCA params during config BSS.
0 implies Not Valid ; Non-Zero implies valid*/
tANI_U8 edcaParamsValid;
/*EDCA Parameters for Best Effort Access Category*/
tSirMacEdcaParamRecord acbe;
/*EDCA Parameters forBackground Access Category*/
tSirMacEdcaParamRecord acbk;
/*EDCA Parameters for Video Access Category*/
tSirMacEdcaParamRecord acvi;
/*EDCA Parameters for Voice Access Category*/
tSirMacEdcaParamRecord acvo;
#ifdef WLAN_FEATURE_VOWIFI_11R
tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
#endif
/* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
tANI_U8 halPersona;
tANI_U8 bSpectrumMgtEnable;
/*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
tANI_S8 txMgmtPower;
/*maxTxPower has max power to be used after applying the power constraint if any */
tANI_S8 maxTxPower;
/*Context of the station being added in HW
Add a STA entry for "itself" -
On AP - Add the AP itself in an "STA context"
On STA - Add the AP to which this STA is joining in an "STA context" */
tConfigStaParams staContext;
} tConfigBssParams, * tpConfigBssParams;
/*--------------------------------------------------------------------------
* WLAN_HAL_CONFIG_BSS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* BSSID */
tSirMacAddr bssId;
/* Self Mac Address */
tSirMacAddr selfMacAddr;
/* BSS type */
tSirBssType bssType;
/*Operational Mode: AP =0, STA = 1*/
tANI_U8 operMode;
/*Network Type*/
tSirNwType nwType;
/*Used to classify PURE_11G/11G_MIXED to program MTU*/
tANI_U8 shortSlotTimeSupported;
/*Co-exist with 11a STA*/
tANI_U8 llaCoexist;
/*Co-exist with 11b STA*/
tANI_U8 llbCoexist;
/*Co-exist with 11g STA*/
tANI_U8 llgCoexist;
/*Coexistence with 11n STA*/
tANI_U8 ht20Coexist;
/*Non GF coexist flag*/
tANI_U8 llnNonGFCoexist;
/*TXOP protection support*/
tANI_U8 fLsigTXOPProtectionFullSupport;
/*RIFS mode*/
tANI_U8 fRIFSMode;
/*Beacon Interval in TU*/
tSirMacBeaconInterval beaconInterval;
/*DTIM period*/
tANI_U8 dtimPeriod;
/*TX Width Set: 0 - 20 MHz only, 1 - 20/40 MHz*/
tANI_U8 txChannelWidthSet;
/*Operating channel*/
tANI_U8 currentOperChannel;
/*Extension channel for channel bonding*/
tANI_U8 currentExtChannel;
/*Reserved to align next field on a dword boundary*/
tANI_U8 reserved;
/*SSID of the BSS*/
tSirMacSSid ssId;
/*HAL should update the existing BSS entry, if this flag is set.
UMAC will set this flag in case of reassoc, where we want to resue the
the old BSSID and still return success 0 = Add, 1 = Update*/
tANI_U8 action;
/* MAC Rate Set */
tSirMacRateSet rateSet;
/*Enable/Disable HT capabilities of the BSS*/
tANI_U8 htCapable;
// Enable/Disable OBSS protection
tANI_U8 obssProtEnabled;
/*RMF enabled/disabled*/
tANI_U8 rmfEnabled;
/*HT Operating Mode operating mode of the 802.11n STA*/
tSirMacHTOperatingMode htOperMode;
/*Dual CTS Protection: 0 - Unused, 1 - Used*/
tANI_U8 dualCTSProtection;
/* Probe Response Max retries */
tANI_U8 ucMaxProbeRespRetryLimit;
/* To Enable Hidden ssid */
tANI_U8 bHiddenSSIDEn;
/* To Enable Disable FW Proxy Probe Resp */
tANI_U8 bProxyProbeRespEn;
/* Boolean to indicate if EDCA params are valid. UMAC might not have valid
EDCA params or might not desire to apply EDCA params during config BSS.
0 implies Not Valid ; Non-Zero implies valid*/
tANI_U8 edcaParamsValid;
/*EDCA Parameters for Best Effort Access Category*/
tSirMacEdcaParamRecord acbe;
/*EDCA Parameters forBackground Access Category*/
tSirMacEdcaParamRecord acbk;
/*EDCA Parameters for Video Access Category*/
tSirMacEdcaParamRecord acvi;
/*EDCA Parameters for Voice Access Category*/
tSirMacEdcaParamRecord acvo;
#ifdef WLAN_FEATURE_VOWIFI_11R
tANI_U8 extSetStaKeyParamValid; //Ext Bss Config Msg if set
tSetStaKeyParams extSetStaKeyParam; //SetStaKeyParams for ext bss msg
#endif
/* Persona for the BSS can be STA,AP,GO,CLIENT value same as tHalConMode */
tANI_U8 halPersona;
tANI_U8 bSpectrumMgtEnable;
/*HAL fills in the tx power used for mgmt frames in txMgmtPower*/
tANI_S8 txMgmtPower;
/*maxTxPower has max power to be used after applying the power constraint if any */
tANI_S8 maxTxPower;
/*Context of the station being added in HW
Add a STA entry for "itself" -
On AP - Add the AP itself in an "STA context"
On STA - Add the AP to which this STA is joining in an "STA context" */
tConfigStaParams_V1 staContext;
tANI_U8 vhtCapable;
tANI_U8 vhtTxChannelWidthSet;
} tConfigBssParams_V1, * tpConfigBssParams_V1;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
PACKED_PRE union PACKED_POST {
tConfigBssParams configBssParams;
tConfigBssParams_V1 configBssParams_V1;
}uBssParams;
} tConfigBssReqMsg, *tpConfigBssReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_CONFIG_BSS_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Success or Failure */
tANI_U32 status;
/* BSS index allocated by HAL */
tANI_U8 bssIdx;
/* DPU descriptor index for PTK */
tANI_U8 dpuDescIndx;
/* PTK DPU signature */
tANI_U8 ucastDpuSignature;
/* DPU descriptor index for GTK*/
tANI_U8 bcastDpuDescIndx;
/* GTK DPU signature */
tANI_U8 bcastDpuSignature;
/*DPU descriptor for IGTK*/
tANI_U8 mgmtDpuDescIndx;
/* IGTK DPU signature */
tANI_U8 mgmtDpuSignature;
/* Station Index for BSS entry*/
tANI_U8 bssStaIdx;
/* Self station index for this BSS */
tANI_U8 bssSelfStaIdx;
/* Bcast station for buffering bcast frames in AP role */
tANI_U8 bssBcastStaIdx;
/*MAC Address of STA(PEER/SELF) in staContext of configBSSReq*/
tSirMacAddr staMac;
/*HAL fills in the tx power used for mgmt frames in this field. */
tANI_S8 txMgmtPower;
} tConfigBssRspParams, * tpConfigBssRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tConfigBssRspParams configBssRspParams;
} tConfigBssRspMsg, *tpConfigBssRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_DELETE_BSS_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* BSS index to be deleted */
tANI_U8 bssIdx;
} tDeleteBssParams, *tpDeleteBssParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDeleteBssParams deleteBssParams;
} tDeleteBssReqMsg, *tpDeleteBssReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_DELETE_BSS_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Success or Failure */
tANI_U32 status;
/* BSS index that has been deleted */
tANI_U8 bssIdx;
} tDeleteBssRspParams, *tpDeleteBssRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDeleteBssRspParams deleteBssRspParams;
} tDeleteBssRspMsg, *tpDeleteBssRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_JOIN_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*Indicates the BSSID to which STA is going to associate*/
tSirMacAddr bssId;
/*Indicates the channel to switch to.*/
tANI_U8 ucChannel;
/* Self STA MAC */
tSirMacAddr selfStaMacAddr;
/*Local power constraint*/
tANI_U8 ucLocalPowerConstraint;
/*Secondary channel offset */
ePhyChanBondState secondaryChannelOffset;
/*link State*/
tSirLinkState linkState;
/* Max TX power */
tANI_S8 maxTxPower;
} tHalJoinReqParams, *tpHalJoinReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalJoinReqParams joinReqParams;
} tHalJoinReqMsg, *tpHalJoinReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_JOIN_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
/* HAL fills in the tx power used for mgmt frames in this field */
tPowerdBm txMgmtPower;
}tHalJoinRspParams, *tpHalJoinRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalJoinRspParams joinRspParams;
}tHalJoinRspMsg, *tpHalJoinRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_POST_ASSOC_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tConfigStaParams configStaParams;
tConfigBssParams configBssParams;
} tPostAssocReqParams, *tpPostAssocReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tPostAssocReqParams postAssocReqParams;
} tPostAssocReqMsg, *tpPostAssocReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_POST_ASSOC_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tConfigStaRspParams configStaRspParams;
tConfigBssRspParams configBssRspParams;
} tPostAssocRspParams, *tpPostAssocRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tPostAssocRspParams postAssocRspParams;
} tPostAssocRspMsg, *tpPostAssocRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_SET_BSSKEY_REQ
---------------------------------------------------------------------------*/
/*
* This is used by PE to create a set of WEP keys for a given BSS.
*/
typedef PACKED_PRE struct PACKED_POST
{
/*BSS Index of the BSS*/
tANI_U8 bssIdx;
/*Encryption Type used with peer*/
tAniEdType encType;
/*Number of keys*/
tANI_U8 numKeys;
/*Array of keys.*/
tSirKeys key[SIR_MAC_MAX_NUM_OF_DEFAULT_KEYS];
/*Control for Replay Count, 1= Single TID based replay count on Tx
0 = Per TID based replay count on TX */
tANI_U8 singleTidRc;
} tSetBssKeyParams, *tpSetBssKeyParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetBssKeyParams setBssKeyParams;
} tSetBssKeyReqMsg, *tpSetBssKeyReqMsg;
/* tagged version of set bss key */
typedef PACKED_PRE struct PACKED_POST
{
tSetBssKeyReqMsg Msg;
uint32 Tag;
} tSetBssKeyReqMsgTagged;
/*---------------------------------------------------------------------------
WLAN_HAL_SET_BSSKEY_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
} tSetBssKeyRspParams, *tpSetBssKeyRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetBssKeyRspParams setBssKeyRspParams;
} tSetBssKeyRspMsg, *tpSetBssKeyRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_SET_STAKEY_REQ,
---------------------------------------------------------------------------*/
/*
* This is used by PE to configure the key information on a given station.
* When the secType is WEP40 or WEP104, the defWEPIdx is used to locate
* a preconfigured key from a BSS the station assoicated with; otherwise
* a new key descriptor is created based on the key field.
*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetStaKeyParams setStaKeyParams;
} tSetStaKeyReqMsg, *tpSetStaKeyReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_SET_STAKEY_RSP,
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
} tSetStaKeyRspParams, *tpSetStaKeyRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetStaKeyRspParams setStaKeyRspParams;
} tSetStaKeyRspMsg, *tpSetStaKeyRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_RMV_BSSKEY_REQ,
---------------------------------------------------------------------------*/
/*
* This is used by PE to remove keys for a given BSS.
*/
typedef PACKED_PRE struct PACKED_POST
{
/*BSS Index of the BSS*/
tANI_U8 bssIdx;
/*Encryption Type used with peer*/
tAniEdType encType;
/*Key Id*/
tANI_U8 keyId;
/*STATIC/DYNAMIC. Used in Nullifying in Key Descriptors for Static/Dynamic keys*/
tAniWepType wepType;
} tRemoveBssKeyParams, *tpRemoveBssKeyParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tRemoveBssKeyParams removeBssKeyParams;
} tRemoveBssKeyReqMsg, *tpRemoveBssKeyReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_RMV_BSSKEY_RSP,
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
} tRemoveBssKeyRspParams, *tpRemoveBssKeyRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tRemoveBssKeyRspParams removeBssKeyRspParams;
} tRemoveBssKeyRspMsg, *tpRemoveBssKeyRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_RMV_STAKEY_REQ,
---------------------------------------------------------------------------*/
/*
* This is used by PE to Remove the key information on a given station.
*/
typedef PACKED_PRE struct PACKED_POST
{
/*STA Index*/
tANI_U16 staIdx;
/*Encryption Type used with peer*/
tAniEdType encType;
/*Key Id*/
tANI_U8 keyId;
/*Whether to invalidate the Broadcast key or Unicast key. In case of WEP,
the same key is used for both broadcast and unicast.*/
tANI_BOOLEAN unicast;
} tRemoveStaKeyParams, *tpRemoveStaKeyParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tRemoveStaKeyParams removeStaKeyParams;
} tRemoveStaKeyReqMsg, *tpRemoveStaKeyReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_RMV_STAKEY_RSP,
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
} tRemoveStaKeyRspParams, *tpRemoveStaKeyRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tRemoveStaKeyRspParams removeStaKeyRspParams;
} tRemoveStaKeyRspMsg, *tpRemoveStaKeyRspMsg;
#ifdef FEATURE_OEM_DATA_SUPPORT
#ifndef OEM_DATA_REQ_SIZE
#define OEM_DATA_REQ_SIZE 134
#endif
#ifndef OEM_DATA_RSP_SIZE
#define OEM_DATA_RSP_SIZE 1968
#endif
/*-------------------------------------------------------------------------
WLAN_HAL_START_OEM_DATA_REQ
--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
tSirMacAddr selfMacAddr;
tANI_U8 oemDataReq[OEM_DATA_REQ_SIZE];
} tStartOemDataReqParams, *tpStartOemDataReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tStartOemDataReqParams startOemDataReqParams;
} tStartOemDataReqMsg, *tpStartOemDataReqMsg;
/*-------------------------------------------------------------------------
WLAN_HAL_START_OEM_DATA_RSP
--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 oemDataRsp[OEM_DATA_RSP_SIZE];
} tStartOemDataRspParams, *tpStartOemDataRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tStartOemDataRspParams startOemDataRspParams;
} tStartOemDataRspMsg, *tpStartOemDataRspMsg;
#ifndef NEW_OEM_DATA_REQ_SIZE
#define NEW_OEM_DATA_REQ_SIZE 292
#endif
#ifndef NEW_OEM_DATA_RSP_SIZE
#define NEW_OEM_DATA_RSP_SIZE 2100
#endif
/*-------------------------------------------------------------------------
WLAN_HAL_START_OEM_DATA_REQ_IND_NEW------------------------------------
--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr selfMacAddr;
tANI_U8 reserved[2];
tANI_U8 oemDataReq[NEW_OEM_DATA_REQ_SIZE];
} tStartOemDataReqParamsNew, *tpStartOemDataReqParamsNew;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tStartOemDataReqParamsNew startOemDataReqParams;
} tStartOemDataReqMsgNew, *tpStartOemDataReqMsgNew;
/*-------------------------------------------------------------------------
WLAN_HAL_START_OEM_DATA_RSP_IND_NEW------------------------------------
--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 oemDataRsp[NEW_OEM_DATA_RSP_SIZE];
} tStartOemDataRspParamsNew, *tpStartOemDataRspParamsNew;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tStartOemDataRspParamsNew startOemDataReqParams;
} tStartOemDataRspMsgNew, *tpStartOemDataRspMsgNew;
#endif
/*---------------------------------------------------------------------------
WLAN_HAL_CH_SWITCH_V1_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Channel number */
tANI_U8 channelNumber;
/* Local power constraint */
tANI_U8 localPowerConstraint;
/*Secondary channel offset */
ePhyChanBondState secondaryChannelOffset;
//HAL fills in the tx power used for mgmt frames in this field.
tPowerdBm txMgmtPower;
/* Max TX power */
tPowerdBm maxTxPower;
/* Self STA MAC */
tSirMacAddr selfStaMacAddr;
/*VO WIFI comment: BSSID needed to identify session. As the request has
* power constraints, this should be applied only to that session
* Since MTU timing and EDCA are sessionized, this struct needs to be
* sessionized and bssid needs to be out of the VOWifi feature flag
* V IMP: Keep bssId field at the end of this msg. It is used to
* mantain backward compatbility
* by way of ignoring if using new host/old FW or old host/new FW since
* it is at the end of this struct
*/
tSirMacAddr bssId;
/* Source of Channel Switch */
eHalChanSwitchSource channelSwitchSrc;
} tSwitchChannelParams_V1, *tpSwitchChannelParams_V1;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSwitchChannelParams_V1 switchChannelParams_V1;
} tSwitchChannelReqMsg_V1, *tpSwitchChannelReqMsg_V1;
/*---------------------------------------------------------------------------
WLAN_HAL_CH_SWITCH_V1_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Status */
tANI_U32 status;
/* Channel number - same as in request*/
tANI_U8 channelNumber;
/* HAL fills in the tx power used for mgmt frames in this field */
tPowerdBm txMgmtPower;
/* BSSID needed to identify session - same as in request*/
tSirMacAddr bssId;
/* Source of Channel Switch */
eHalChanSwitchSource channelSwitchSrc;
} tSwitchChannelRspParams_V1, *tpSwitchChannelRspParams_V1;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSwitchChannelRspParams_V1 channelSwitchRspParams_V1;
} tSwitchChannelRspMsg_V1, *tpSwitchChannelRspMsg_V1;
/*---------------------------------------------------------------------------
WLAN_HAL_CH_SWITCH_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Channel number */
tANI_U8 channelNumber;
/* Local power constraint */
tANI_U8 localPowerConstraint;
/*Secondary channel offset */
ePhyChanBondState secondaryChannelOffset;
//HAL fills in the tx power used for mgmt frames in this field.
tPowerdBm txMgmtPower;
/* Max TX power */
tPowerdBm maxTxPower;
/* Self STA MAC */
tSirMacAddr selfStaMacAddr;
/*VO WIFI comment: BSSID needed to identify session. As the request has power constraints,
this should be applied only to that session*/
/* Since MTU timing and EDCA are sessionized, this struct needs to be sessionized and
* bssid needs to be out of the VOWifi feature flag */
/* V IMP: Keep bssId field at the end of this msg. It is used to mantain backward compatbility
* by way of ignoring if using new host/old FW or old host/new FW since it is at the end of this struct
*/
tSirMacAddr bssId;
}tSwitchChannelParams, *tpSwitchChannelParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSwitchChannelParams switchChannelParams;
} tSwitchChannelReqMsg, *tpSwitchChannelReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_CH_SWITCH_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Status */
tANI_U32 status;
/* Channel number - same as in request*/
tANI_U8 channelNumber;
/* HAL fills in the tx power used for mgmt frames in this field */
tPowerdBm txMgmtPower;
/* BSSID needed to identify session - same as in request*/
tSirMacAddr bssId;
}tSwitchChannelRspParams, *tpSwitchChannelRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSwitchChannelRspParams switchChannelRspParams;
} tSwitchChannelRspMsg, *tpSwitchChannelRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_UPD_EDCA_PARAMS_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*BSS Index*/
tANI_U16 bssIdx;
/* Best Effort */
tSirMacEdcaParamRecord acbe;
/* Background */
tSirMacEdcaParamRecord acbk;
/* Video */
tSirMacEdcaParamRecord acvi;
/* Voice */
tSirMacEdcaParamRecord acvo;
} tEdcaParams, *tpEdcaParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tEdcaParams edcaParams;
} tUpdateEdcaParamsReqMsg, *tpUpdateEdcaParamsReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_UPD_EDCA_PARAMS_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
} tEdcaRspParams, *tpEdcaRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tEdcaRspParams edcaRspParams;
} tUpdateEdcaParamsRspMsg, *tpUpdateEdcaParamsRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GET_STATS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Index of STA to which the statistics */
tANI_U16 staIdx;
/* Encryption mode */
tANI_U8 encMode;
/* status */
tANI_U32 status;
/* Statistics */
tANI_U32 sendBlocks;
tANI_U32 recvBlocks;
tANI_U32 replays;
tANI_U8 micErrorCnt;
tANI_U32 protExclCnt;
tANI_U16 formatErrCnt;
tANI_U16 unDecryptableCnt;
tANI_U32 decryptErrCnt;
tANI_U32 decryptOkCnt;
} tDpuStatsParams, * tpDpuStatsParams;
typedef PACKED_PRE struct PACKED_POST
{
/* Valid STA Idx for per STA stats request */
tANI_U32 staId;
/* Categories of stats requested as specified in eHalStatsMask*/
tANI_U32 statsMask;
}tHalStatsReqParams, *tpHalStatsReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStatsReqParams statsReqParams;
} tHalStatsReqMsg, *tpHalStatsReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GET_STATS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 retry_cnt[4]; //Total number of packets(per AC) that were successfully transmitted with retries
tANI_U32 multiple_retry_cnt[4]; //The number of MSDU packets and MMPDU frames per AC that the 802.11
// station successfully transmitted after more than one retransmission attempt
tANI_U32 tx_frm_cnt[4]; //Total number of packets(per AC) that were successfully transmitted
//(with and without retries, including multi-cast, broadcast)
tANI_U32 rx_frm_cnt; //Total number of packets that were successfully received
//(after appropriate filter rules including multi-cast, broadcast)
tANI_U32 frm_dup_cnt; //Total number of duplicate frames received successfully
tANI_U32 fail_cnt[4]; //Total number packets(per AC) failed to transmit
tANI_U32 rts_fail_cnt; //Total number of RTS/CTS sequence failures for transmission of a packet
tANI_U32 ack_fail_cnt; //Total number packets failed transmit because of no ACK from the remote entity
tANI_U32 rts_succ_cnt; //Total number of RTS/CTS sequence success for transmission of a packet
tANI_U32 rx_discard_cnt; //The sum of the receive error count and dropped-receive-buffer error count.
//HAL will provide this as a sum of (FCS error) + (Fail get BD/PDU in HW)
tANI_U32 rx_error_cnt; //The receive error count. HAL will provide the RxP FCS error global counter.
tANI_U32 tx_byte_cnt; //The sum of the transmit-directed byte count, transmit-multicast byte count
//and transmit-broadcast byte count. HAL will sum TPE UC/MC/BCAST global counters
//to provide this.
}tAniSummaryStatsInfo, *tpAniSummaryStatsInfo;
// defines tx_rate_flags
typedef enum eTxRateInfo
{
eHAL_TX_RATE_LEGACY = 0x1, /* Legacy rates */
eHAL_TX_RATE_HT20 = 0x2, /* HT20 rates */
eHAL_TX_RATE_HT40 = 0x4, /* HT40 rates */
eHAL_TX_RATE_SGI = 0x8, /* Rate with Short guard interval */
eHAL_TX_RATE_LGI = 0x10, /* Rate with Long guard interval */
eHAL_TX_RATE_VHT20 = 0x20, /* VHT 20 rates */
eHAL_TX_RATE_VHT40 = 0x40, /* VHT 20 rates */
eHAL_TX_RATE_VHT80 = 0x80, /* VHT 20 rates */
eHAL_TX_RATE_VIRT = 0x100, /* Virtual Rate */
eHAL_TX_RATE_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tTxrateinfoflags, tTxRateInfoFlags;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
//or MMPDU frames
tANI_U32 promiscuous_rx_frag_cnt; //The number of MPDU frames received by the 802.11 station for MSDU packets
//or MMPDU frames when a promiscuous packet filter was enabled
tANI_U32 rx_input_sensitivity; //The receiver input sensitivity referenced to a FER of 8% at an MPDU length
//of 1024 bytes at the antenna connector. Each element of the array shall correspond
//to a supported rate and the order shall be the same as the supporteRates parameter.
tANI_U32 max_pwr; //The maximum transmit power in dBm upto one decimal.
//for eg: if it is 10.5dBm, the value would be 105
tANI_U32 sync_fail_cnt; //Number of times the receiver failed to synchronize with the incoming signal
//after detecting the sync in the preamble of the transmitted PLCP protocol data unit.
tANI_U32 tx_rate; //Legacy transmit rate, in units of 500 kbit/sec, for the most
//recently transmitted frame
tANI_U32 mcs_index; //mcs index for HT20 and HT40 rates
tANI_U32 tx_rate_flags; //to differentiate between HT20 and
//HT40 rates; short and long guard interval
}tAniGlobalClassAStatsInfo, *tpAniGlobalClassAStatsInfo;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 rx_wep_unencrypted_frm_cnt; //The number of unencrypted received MPDU frames that the MAC layer discarded when
//the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object
//is enabled
tANI_U32 rx_mic_fail_cnt; //The number of received MSDU packets that that the 802.11 station discarded
//because of MIC failures
tANI_U32 tkip_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
//because of a TKIP ICV error
tANI_U32 aes_ccmp_format_err; //The number of received MPDU frames that the 802.11 discarded because of an
//invalid AES-CCMP format
tANI_U32 aes_ccmp_replay_cnt; //The number of received MPDU frames that the 802.11 station discarded because of
//the AES-CCMP replay protection procedure
tANI_U32 aes_ccmp_decrpt_err; //The number of received MPDU frames that the 802.11 station discarded because of
//errors detected by the AES-CCMP decryption algorithm
tANI_U32 wep_undecryptable_cnt; //The number of encrypted MPDU frames received for which a WEP decryption key was
//not available on the 802.11 station
tANI_U32 wep_icv_err; //The number of encrypted MPDU frames that the 802.11 station failed to decrypt
//because of a WEP ICV error
tANI_U32 rx_decrypt_succ_cnt; //The number of received encrypted packets that the 802.11 station successfully
//decrypted
tANI_U32 rx_decrypt_fail_cnt; //The number of encrypted packets that the 802.11 station failed to decrypt
}tAniGlobalSecurityStats, *tpAniGlobalSecurityStats;
typedef PACKED_PRE struct PACKED_POST
{
tAniGlobalSecurityStats ucStats;
tAniGlobalSecurityStats mcbcStats;
}tAniGlobalClassBStatsInfo, *tpAniGlobalClassBStatsInfo;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 rx_amsdu_cnt; //This counter shall be incremented for a received A-MSDU frame with the stations
//MAC address in the address 1 field or an A-MSDU frame with a group address in the
//address 1 field
tANI_U32 rx_ampdu_cnt; //This counter shall be incremented when the MAC receives an AMPDU from the PHY
tANI_U32 tx_20_frm_cnt; //This counter shall be incremented when a Frame is transmitted only on the
//primary channel
tANI_U32 rx_20_frm_cnt; //This counter shall be incremented when a Frame is received only on the primary channel
tANI_U32 rx_mpdu_in_ampdu_cnt; //This counter shall be incremented by the number of MPDUs received in the A-MPDU
//when an A-MPDU is received
tANI_U32 ampdu_delimiter_crc_err; //This counter shall be incremented when an MPDU delimiter has a CRC error when this
//is the first CRC error in the received AMPDU or when the previous delimiter has been
//decoded correctly
}tAniGlobalClassCStatsInfo, *tpAniGlobalClassCStatsInfo;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 tx_frag_cnt[4]; //The number of MPDU frames that the 802.11 station transmitted and acknowledged
//through a received 802.11 ACK frame
tANI_U32 tx_ampdu_cnt; //This counter shall be incremented when an A-MPDU is transmitted
tANI_U32 tx_mpdu_in_ampdu_cnt; //This counter shall increment by the number of MPDUs in the AMPDU when an A-MPDU
//is transmitted
}tAniPerStaStatsInfo, *tpAniPerStaStatsInfo;
// The following stats are averaged over the time between two consecutive GET_STATS_REQ messages.
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 lastTxRate; // 802.11 data rate at which the last data frame is transmitted.
tANI_U32 txAvgRetry; // Average number of retries per 10 packets.
tANI_U32 reserved;
tANI_U32 reserved1;
}tAniPerTxPktStatsInfo, *tpAniPerTxPktStatsInfo;
typedef PACKED_PRE struct PACKED_POST
{
/* Success or Failure */
tANI_U32 status;
/* STA Idx */
tANI_U32 staId;
/* Categories of STATS being returned as per eHalStatsMask*/
tANI_U32 statsMask;
/* message type is same as the request type */
tANI_U16 msgType;
/* length of the entire request, includes the pStatsBuf length too */
tANI_U16 msgLen;
} tHalStatsRspParams, *tpHalStatsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStatsRspParams statsRspParams;
} tHalStatsRspMsg, *tpHalStatsRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_RTS_CTS_HTVHT_IND
*---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 rtsCtsValue;
}tHalRtsCtsHtvhtIndParams, *tpHalRtsCtsHtvhtIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRtsCtsHtvhtIndParams rtsCtsHtvhtIndParams;
} tHalRtsCtsHtvhtIndMsg, *tpHalRtsCtsHtvhtIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_FW_STATS_REQ
*---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 type;
}tHalfwStatsReqParams, *tpHalfwStatsReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalfwStatsReqParams fwstatsReqParams;
} tHalfwStatsReqMsg, *tpHalfwStatsReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_FW_STATS_RSP
*---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 type;
tANI_U32 length;
tANI_U8 data[1];
}tHalfwStatsRspParams, *tpHalfwStatsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalfwStatsRspParams fwstatsRspParams;
} tHalfwStatsRspMsg, *tpHalfwStatsRspMsg;
typedef enum
{
FW_UBSP_STATS = 1,
} fwstatstype;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_LINK_ST_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr bssid;
tSirLinkState state;
tSirMacAddr selfMacAddr;
} tLinkStateParams, *tpLinkStateParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tLinkStateParams linkStateParams;
} tSetLinkStateReqMsg, *tpSetLinkStateReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_LINK_ST_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
} tLinkStateRspParams, *tpLinkStateRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tLinkStateRspParams linkStateRspParams;
} tSetLinkStateRspMsg, *tpSetLinkStateRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_TS_REQ
*--------------------------------------------------------------------------*/
/* TSPEC Params */
typedef __ani_attr_pre_packed struct sSirMacTSInfoTfc
{
tANI_U16 trafficType : 1;
tANI_U16 tsid : 4;
tANI_U16 direction : 2;
tANI_U16 accessPolicy : 2;
tANI_U16 aggregation : 1;
tANI_U16 psb : 1;
tANI_U16 userPrio : 3;
tANI_U16 ackPolicy : 2;
} __ani_attr_packed tSirMacTSInfoTfc;
/* Flag to schedule the traffic type */
typedef __ani_attr_pre_packed struct sSirMacTSInfoSch
{
tANI_U8 schedule : 1;
tANI_U8 rsvd : 7;
} __ani_attr_packed tSirMacTSInfoSch;
/* Traffic and scheduling info */
typedef __ani_attr_pre_packed struct sSirMacTSInfo
{
tSirMacTSInfoTfc traffic;
tSirMacTSInfoSch schedule;
} __ani_attr_packed tSirMacTSInfo;
/* Information elements */
typedef __ani_attr_pre_packed struct sSirMacTspecIE
{
tANI_U8 type;
tANI_U8 length;
tSirMacTSInfo tsinfo;
tANI_U16 nomMsduSz;
tANI_U16 maxMsduSz;
tANI_U32 minSvcInterval;
tANI_U32 maxSvcInterval;
tANI_U32 inactInterval;
tANI_U32 suspendInterval;
tANI_U32 svcStartTime;
tANI_U32 minDataRate;
tANI_U32 meanDataRate;
tANI_U32 peakDataRate;
tANI_U32 maxBurstSz;
tANI_U32 delayBound;
tANI_U32 minPhyRate;
tANI_U16 surplusBw;
tANI_U16 mediumTime;
}__ani_attr_packed tSirMacTspecIE;
typedef PACKED_PRE struct PACKED_POST
{
/* Station Index */
tANI_U16 staIdx;
/* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
tANI_U16 tspecIdx;
/* To program TPE with required parameters */
tSirMacTspecIE tspec;
/* U-APSD Flags: 1b per AC. Encoded as follows:
b7 b6 b5 b4 b3 b2 b1 b0 =
X X X X BE BK VI VO */
tANI_U8 uAPSD;
/* These parameters are for all the access categories */
tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
} tAddTsParams, *tpAddTsParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAddTsParams addTsParams;
} tAddTsReqMsg, *tpAddTsReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_TS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
} tAddTsRspParams, *tpAddTsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAddTsRspParams addTsRspParams;
} tAddTsRspMsg, *tpAddTsRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DEL_TS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Station Index */
tANI_U16 staIdx;
/* TSPEC identifier uniquely identifying a TSPEC for a STA in a BSS */
tANI_U16 tspecIdx;
/* To lookup station id using the mac address */
tSirMacAddr bssId;
} tDelTsParams, *tpDelTsParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDelTsParams delTsParams;
} tDelTsReqMsg, *tpDelTsReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DEL_TS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
} tDelTsRspParams, *tpDelTsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDelTsRspParams delTsRspParams;
} tDelTsRspMsg, *tpDelTsRspMsg;
/* End of TSpec Parameters */
/* Start of BLOCK ACK related Parameters */
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_BA_SESSION_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Station Index */
tANI_U16 staIdx;
/* Peer MAC Address */
tSirMacAddr peerMacAddr;
/* ADDBA Action Frame dialog token
HAL will not interpret this object */
tANI_U8 baDialogToken;
/* TID for which the BA is being setup
This identifies the TC or TS of interest */
tANI_U8 baTID;
/* 0 - Delayed BA (Not supported)
1 - Immediate BA */
tANI_U8 baPolicy;
/* Indicates the number of buffers for this TID (baTID)
NOTE - This is the requested buffer size. When this
is processed by HAL and subsequently by HDD, it is
possible that HDD may change this buffer size. Any
change in the buffer size should be noted by PE and
advertized appropriately in the ADDBA response */
tANI_U16 baBufferSize;
/* BA timeout in TU's 0 means no timeout will occur */
tANI_U16 baTimeout;
/* b0..b3 - Fragment Number - Always set to 0
b4..b15 - Starting Sequence Number of first MSDU
for which this BA is setup */
tANI_U16 baSSN;
/* ADDBA direction
1 - Originator
0 - Recipient */
tANI_U8 baDirection;
} tAddBASessionParams, *tpAddBASessionParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAddBASessionParams addBASessionParams;
}tAddBASessionReqMsg, *tpAddBASessionReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_BA_SESSION_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
/* Dialog token */
tANI_U8 baDialogToken;
/* TID for which the BA session has been setup */
tANI_U8 baTID;
/* BA Buffer Size allocated for the current BA session */
tANI_U8 baBufferSize;
tANI_U8 baSessionID;
/* Reordering Window buffer */
tANI_U8 winSize;
/*Station Index to id the sta */
tANI_U8 STAID;
/* Starting Sequence Number */
tANI_U16 SSN;
} tAddBASessionRspParams, *tpAddBASessionRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAddBASessionRspParams addBASessionRspParams;
} tAddBASessionRspMsg, *tpAddBASessionRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_BA_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Session Id */
tANI_U8 baSessionID;
/* Reorder Window Size */
tANI_U8 winSize;
#ifdef FEATURE_ON_CHIP_REORDERING
tANI_BOOLEAN isReorderingDoneOnChip;
#endif
} tAddBAParams, *tpAddBAParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAddBAParams addBAParams;
} tAddBAReqMsg, *tpAddBAReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_BA_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
/* Dialog token */
tANI_U8 baDialogToken;
} tAddBARspParams, *tpAddBARspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAddBARspParams addBARspParams;
} tAddBARspMsg, *tpAddBARspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_TRIGGER_BA_REQ
*--------------------------------------------------------------------------*/
typedef struct sAddBaInfo
{
tANI_U16 fBaEnable : 1;
tANI_U16 startingSeqNum: 12;
tANI_U16 reserved : 3;
}tAddBaInfo, *tpAddBaInfo;
typedef struct sTriggerBaRspCandidate
{
tSirMacAddr staAddr;
tAddBaInfo baInfo[STACFG_MAX_TC];
}tTriggerBaRspCandidate, *tpTriggerBaRspCandidate;
typedef struct sTriggerBaCandidate
{
tANI_U8 staIdx;
tANI_U8 tidBitmap;
}tTriggerBaReqCandidate, *tptTriggerBaReqCandidate;
typedef PACKED_PRE struct PACKED_POST
{
/* Session Id */
tANI_U8 baSessionID;
/* baCandidateCnt is followed by trigger BA
* Candidate List(tTriggerBaCandidate)
*/
tANI_U16 baCandidateCnt;
} tTriggerBAParams, *tpTriggerBAParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTriggerBAParams triggerBAParams;
} tTriggerBAReqMsg, *tpTriggerBAReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_TRIGGER_BA_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* TO SUPPORT BT-AMP */
tSirMacAddr bssId;
/* success or failure */
tANI_U32 status;
/* baCandidateCnt is followed by trigger BA
* Rsp Candidate List(tTriggerRspBaCandidate)
*/
tANI_U16 baCandidateCnt;
} tTriggerBARspParams, *tpTriggerBARspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTriggerBARspParams triggerBARspParams;
} tTriggerBARspMsg, *tpTriggerBARspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DEL_BA_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Station Index */
tANI_U16 staIdx;
/* TID for which the BA session is being deleted */
tANI_U8 baTID;
/* DELBA direction
1 - Originator
0 - Recipient */
tANI_U8 baDirection;
} tDelBAParams, *tpDelBAParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDelBAParams delBAParams;
} tDelBAReqMsg, *tpDelBAReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DEL_BA_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tDelBARspParams, *tpDelBARspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDelBARspParams delBARspParams;
} tDelBARspMsg, *tpDelBARspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_TSM_STATS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Traffic Id */
tANI_U8 tsmTID;
tSirMacAddr bssId;
} tTsmStatsParams, *tpTsmStatsParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTsmStatsParams tsmStatsParams;
} tTsmStatsReqMsg, *tpTsmStatsReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_TSM_STATS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
/* Uplink Packet Queue delay */
tANI_U16 UplinkPktQueueDly;
/* Uplink Packet Queue delay histogram */
tANI_U16 UplinkPktQueueDlyHist[4];
/* Uplink Packet Transmit delay */
tANI_U32 UplinkPktTxDly;
/* Uplink Packet loss */
tANI_U16 UplinkPktLoss;
/* Uplink Packet count */
tANI_U16 UplinkPktCount;
/* Roaming count */
tANI_U8 RoamingCount;
/* Roaming Delay */
tANI_U16 RoamingDly;
} tTsmStatsRspParams, *tpTsmStatsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTsmStatsRspParams tsmStatsRspParams;
} tTsmStatsRspMsg, *tpTsmStatsRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_KEYDONE_MSG
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*bssid of the keys */
tANI_U8 bssidx;
tANI_U8 encType;
} tSetKeyDoneParams, *tpSetKeyDoneParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetKeyDoneParams setKeyDoneParams;
} tSetKeyDoneMsg, *tpSetKeyDoneMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DOWNLOAD_NV_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Fragment sequence number of the NV Image. Note that NV Image might not
* fit into one message due to size limitation of the SMD channel FIFO. UMAC
* can hence choose to chop the NV blob into multiple fragments starting with
* seqeunce number 0, 1, 2 etc. The last fragment MUST be indicated by
* marking the isLastFragment field to 1. Note that all the NV blobs would be
* concatenated together by HAL without any padding bytes in between.*/
tANI_U16 fragNumber;
/* Is this the last fragment? When set to 1 it indicates that no more fragments
* will be sent by UMAC and HAL can concatenate all the NV blobs rcvd & proceed
* with the parsing. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP to the
* WLAN_HAL_DOWNLOAD_NV_REQ after it receives each fragment */
tANI_U16 isLastFragment;
/* NV Image size (number of bytes) */
tANI_U32 nvImgBufferSize;
/* Following the 'nvImageBufferSize', there should be nvImageBufferSize
* bytes of NV Image i.e. uint8[nvImageBufferSize] */
} tHalNvImgDownloadReqParams, *tpHalNvImgDownloadReqParams;
typedef PACKED_PRE struct PACKED_POST
{
/* Note: The length specified in tHalNvImgDownloadReqMsg messages should be
* header.msgLen = sizeof(tHalNvImgDownloadReqMsg) + nvImgBufferSize */
tHalMsgHeader header;
tHalNvImgDownloadReqParams nvImageReqParams;
} tHalNvImgDownloadReqMsg, *tpHalNvImgDownloadReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DOWNLOAD_NV_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Success or Failure. HAL would generate a WLAN_HAL_DOWNLOAD_NV_RSP
* after each fragment */
tANI_U32 status;
} tHalNvImgDownloadRspParams, *tpHalNvImgDownloadRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalNvImgDownloadRspParams nvImageRspParams;
} tHalNvImgDownloadRspMsg, *tpHalNvImgDownloadRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_STORE_NV_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* NV Item */
eNvTable tableID;
/* Size of NV Blob */
tANI_U32 nvBlobSize;
/* Following the 'nvBlobSize', there should be nvBlobSize bytes of
* NV blob i.e. uint8[nvBlobSize] */
} tHalNvStoreParams, *tpHalNvStoreParams;
typedef PACKED_PRE struct PACKED_POST
{
/* Note: The length specified in tHalNvStoreInd messages should be
* header.msgLen = sizeof(tHalNvStoreInd) + nvBlobSize */
tHalMsgHeader header;
tHalNvStoreParams nvStoreParams;
} tHalNvStoreInd, *tpHalNvStoreInd;
/* End of Block Ack Related Parameters */
/*---------------------------------------------------------------------------
* WLAN_HAL_MIC_FAILURE_IND
*--------------------------------------------------------------------------*/
#define SIR_CIPHER_SEQ_CTR_SIZE 6
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr srcMacAddr; //address used to compute MIC
tSirMacAddr taMacAddr; //transmitter address
tSirMacAddr dstMacAddr;
tANI_U8 multicast;
tANI_U8 IV1; // first byte of IV
tANI_U8 keyId; // second byte of IV
tANI_U8 TSC[SIR_CIPHER_SEQ_CTR_SIZE]; // sequence number
tSirMacAddr rxMacAddr; // receive address
} tSirMicFailureInfo, *tpSirMicFailureInfo;
/* Definition for MIC failure indication
MAC reports this each time a MIC failure occures on Rx TKIP packet
*/
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr bssId; // BSSID
tSirMicFailureInfo info;
} tSirMicFailureInd, *tpSirMicFailureInd;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSirMicFailureInd micFailureInd;
} tMicFailureIndMsg, *tpMicFailureIndMsg;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U16 opMode;
tANI_U16 staId;
}tUpdateVHTOpMode, *tpUpdateVHTOpMode;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tUpdateVHTOpMode updateVhtOpMode;
} tUpdateVhtOpModeReqMsg, *tpUpdateVhtOpModeReqMsg;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
} tUpdateVhtOpModeParamsRsp, *tpUpdateVhtOpModeParamsRsp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tUpdateVhtOpModeParamsRsp updateVhtOpModeRspParam;
} tUpdateVhtOpModeParamsRspMsg, *tpUpdateVhtOpModeParamsRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_UPDATE_BEACON_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssIdx;
//shortPreamble mode. HAL should update all the STA rates when it
//receives this message
tANI_U8 fShortPreamble;
//short Slot time.
tANI_U8 fShortSlotTime;
//Beacon Interval
tANI_U16 beaconInterval;
//Protection related
tANI_U8 llaCoexist;
tANI_U8 llbCoexist;
tANI_U8 llgCoexist;
tANI_U8 ht20MhzCoexist;
tANI_U8 llnNonGFCoexist;
tANI_U8 fLsigTXOPProtectionFullSupport;
tANI_U8 fRIFSMode;
tANI_U16 paramChangeBitmap;
}tUpdateBeaconParams, *tpUpdateBeaconParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tUpdateBeaconParams updateBeaconParam;
} tUpdateBeaconReqMsg, *tpUpdateBeaconReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_UPDATE_BEACON_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
} tUpdateBeaconRspParams, *tpUpdateBeaconRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tUpdateBeaconRspParams updateBeaconRspParam;
} tUpdateBeaconRspMsg, *tpUpdateBeaconRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SEND_BEACON_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 beaconLength; //length of the template.
tANI_U8 beacon[BEACON_TEMPLATE_SIZE]; // Beacon data.
tSirMacAddr bssId;
tANI_U32 timIeOffset; //TIM IE offset from the beginning of the template.
tANI_U16 p2pIeOffset; //P2P IE offset from the begining of the template
}tSendBeaconParams, *tpSendBeaconParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSendBeaconParams sendBeaconParam;
}tSendBeaconReqMsg, *tpSendBeaconReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SEND_BEACON_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
} tSendBeaconRspParams, *tpSendBeaconRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSendBeaconRspParams sendBeaconRspParam;
} tSendBeaconRspMsg, *tpSendBeaconRspMsg;
#ifdef FEATURE_5GHZ_BAND
/*---------------------------------------------------------------------------
* WLAN_HAL_ENABLE_RADAR_DETECT_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr BSSID;
tANI_U8 channel;
}tSirEnableRadarInfoType, *tptSirEnableRadarInfoType;
typedef PACKED_PRE struct PACKED_POST
{
/* Link Parameters */
tSirEnableRadarInfoType EnableRadarInfo;
}tEnableRadarReqParams, *tpEnableRadarReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tEnableRadarReqParams enableRadarReqParams;
}tEnableRadarReqMsg, *tpEnableRadarReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENABLE_RADAR_DETECT_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Link Parameters */
tSirMacAddr BSSID;
/* success or failure */
tANI_U32 status;
}tEnableRadarRspParams, *tpEnableRadarRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tEnableRadarRspParams enableRadarRspParams;
}tEnableRadarRspMsg, *tpEnableRadarRspMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_RADAR_DETECT_INTR_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 radarDetChannel;
}tRadarDetectIntrIndParams, *tpRadarDetectIntrIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tRadarDetectIntrIndParams radarDetectIntrIndParams;
}tRadarDetectIntrIndMsg, *tptRadarDetectIntrIndMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_RADAR_DETECT_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*channel number in which the RADAR detected*/
tANI_U8 channelNumber;
/*RADAR pulse width*/
tANI_U16 radarPulseWidth; // in usecond
/*Number of RADAR pulses */
tANI_U16 numRadarPulse;
}tRadarDetectIndParams,*tpRadarDetectIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tRadarDetectIndParams radarDetectIndParams;
}tRadarDetectIndMsg, *tptRadarDetectIndMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_GET_TPC_REPORT_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr sta;
tANI_U8 dialogToken;
tANI_U8 txpower;
}tSirGetTpcReportReqParams, *tpSirGetTpcReportReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSirGetTpcReportReqParams getTpcReportReqParams;
}tSirGetTpcReportReqMsg, *tpSirGetTpcReportReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GET_TPC_REPORT_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
}tSirGetTpcReportRspParams, *tpSirGetTpcReportRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSirGetTpcReportRspParams getTpcReportRspParams;
}tSirGetTpcReportRspMsg, *tpSirGetTpcReportRspMsg;
#endif
/*---------------------------------------------------------------------------
*WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 pProbeRespTemplate[BEACON_TEMPLATE_SIZE];
tANI_U32 probeRespTemplateLen;
tANI_U32 ucProxyProbeReqValidIEBmap[8];
tSirMacAddr bssId;
}tSendProbeRespReqParams, *tpSendProbeRespReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSendProbeRespReqParams sendProbeRespReqParams ;
}tSendProbeRespReqMsg, *tpSendProbeRespReqMsg;
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr bssId;
tANI_U32 probeRespTemplateLen;
tANI_U32 ucProxyProbeReqValidIEBmap[8];
tANI_U8 pProbeRespTemplate[1]; //Variable length array
}tSendProbeRespReqParams_V1, *tpSendProbeRespReqParams_V1;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSendProbeRespReqParams_V1 sendProbeRespReqParams_v1;
}tSendProbeRespReqMsg_V1, *tpSendProbeRespReqMsg_V1;
/*---------------------------------------------------------------------------
*WLAN_HAL_UPDATE_PROBE_RSP_TEMPLATE_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
}tSendProbeRespRspParams, *tpSendProbeRespRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSendProbeRespRspParams sendProbeRespRspParams;
}tSendProbeRespRspMsg, *tpSendProbeRespRspMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_UNKNOWN_ADDR2_FRAME_RX_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
}tSendUnkownFrameRxIndParams, *tpSendUnkownFrameRxIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSendUnkownFrameRxIndParams sendUnkownFrameRxIndParams;
}tSendUnkownFrameRxIndMsg, *tpSendUnkownFrameRxIndMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_DELETE_STA_CONTEXT_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U16 assocId;
tANI_U16 staId;
tSirMacAddr bssId; // TO SUPPORT BT-AMP
// HAL copies bssid from the sta table.
tSirMacAddr addr2; //
tANI_U16 reasonCode; // To unify the keepalive / unknown A2 / tim-based disa
}tDeleteStaContextParams, *tpDeleteStaContextParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDeleteStaContextParams deleteStaContextParams;
}tDeleteStaContextIndMsg, *tpDeleteStaContextIndMsg;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tANI_U8 assocId;
tANI_U8 staIdx;
tANI_U8 bssIdx;
tANI_U8 uReasonCode;
tANI_U32 uStatus;
#ifdef WLAN_FEATURE_ROAM_OFFLOAD
tANI_U8 staAddr[6];
tANI_U8 bssId[6];
#endif
} tIndicateDelSta, *tpIndicateDelSta;
/*---------------------------------------------------------------------------
*WLAN_HAL_SIGNAL_BTAMP_EVENT_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tBtAmpEventType btAmpEventType;
}tBtAmpEventParams, *tpBtAmpEventParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tBtAmpEventParams btAmpEventParams;
}tBtAmpEventMsg, *tpBtAmpEventMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_SIGNAL_BTAMP_EVENT_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
}tBtAmpEventRspParams, *tpBtAmpEventRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tBtAmpEventRspParams btAmpEventRspParams;
}tBtAmpEventRsp, *tpBtAmpEventRsp;
/*---------------------------------------------------------------------------
*WLAN_HAL_TL_HAL_FLUSH_AC_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
// Station Index. originates from HAL
tANI_U8 ucSTAId;
// TID for which the transmit queue is being flushed
tANI_U8 ucTid;
}tTlHalFlushAcParams, *tpTlHalFlushAcParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTlHalFlushAcParams tlHalFlushAcParam;
}tTlHalFlushAcReq, *tpTlHalFlushAcReq;
/*---------------------------------------------------------------------------
*WLAN_HAL_TL_HAL_FLUSH_AC_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
// Station Index. originates from HAL
tANI_U8 ucSTAId;
// TID for which the transmit queue is being flushed
tANI_U8 ucTid;
/* success or failure */
tANI_U32 status;
}tTlHalFlushAcRspParams, *tpTlHalFlushAcRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTlHalFlushAcRspParams tlHalFlushAcRspParam;
}tTlHalFlushAcRspMsg, *tpTlHalFlushAcRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENTER_IMPS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
} tHalEnterImpsReqMsg, *tpHalEnterImpsReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXIT_IMPS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
} tHalExitImpsReqMsg, *tpHalExitImpsReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENTER_BMPS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssIdx;
//TBTT value derived from the last beacon
#ifndef BUILD_QWPTTSTATIC
tANI_U64 tbtt;
#endif
tANI_U8 dtimCount;
//DTIM period given to HAL during association may not be valid,
//if association is based on ProbeRsp instead of beacon.
tANI_U8 dtimPeriod;
// For ESE and 11R Roaming
tANI_U32 rssiFilterPeriod;
tANI_U32 numBeaconPerRssiAverage;
tANI_U8 bRssiFilterEnable;
} tHalEnterBmpsReqParams, *tpHalEnterBmpsReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalEnterBmpsReqParams enterBmpsReq;
} tHalEnterBmpsReqMsg, *tpHalEnterBmpsReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_PRINT_REG_INFO_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
uint32 regAddr;
uint32 regValue;
} tHalRegDebugInfo, *tpRegDebugInfo;
typedef PACKED_PRE struct PACKED_POST
{
uint32 regCount;
uint32 scenario;
uint32 reasonCode;
} tHalRegDebugInfoParams, *tpRegDebugInfoParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRegDebugInfoParams regParams;
} tHalRegDebugInfoMsg, *tpRegDebugInfoMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXIT_BMPS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 sendDataNull;
tANI_U8 bssIdx;
} tHalExitBmpsReqParams, *tpHalExitBmpsReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExitBmpsReqParams exitBmpsReqParams;
} tHalExitBmpsReqMsg, *tpHalExitBmpsReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_MISSED_BEACON_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssIdx;
} tHalMissedBeaconIndParams, *tpHalMissedBeaconIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalMissedBeaconIndParams missedBeaconIndParams;
} tHalMissedBeaconIndMsg, *tpHalMissedBeaconIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_BCN_FILTER_REQ
*--------------------------------------------------------------------------*/
/* Beacon Filtering data structures */
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 offset;
tANI_U8 value;
tANI_U8 bitMask;
tANI_U8 ref;
} tEidByteInfo, *tpEidByteInfo;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U16 capabilityInfo;
tANI_U16 capabilityMask;
tANI_U16 beaconInterval;
tANI_U16 ieNum;
tANI_U8 bssIdx;
tANI_U8 reserved;
} tBeaconFilterMsg, *tpBeaconFilterMsg;
/* The above structure would be followed by multiple of below mentioned structure */
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 elementId;
tANI_U8 checkIePresence;
tEidByteInfo byte;
} tBeaconFilterIe, *tpBeaconFilterIe;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tBeaconFilterMsg addBcnFilterParams;
} tHalAddBcnFilterReqMsg, *tpHalAddBcnFilterReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_REM_BCN_FILTER_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 ucIeCount;
tANI_U8 ucRemIeId[1];
} tRemBeaconFilterMsg, *tpRemBeaconFilterMsg;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tRemBeaconFilterMsg remBcnFilterParams;
} tHalRemBcnFilterReqMsg, *tpHalRemBcnFilterReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_HOST_OFFLOAD_REQ
*--------------------------------------------------------------------------*/
#define HAL_IPV4_ARP_REPLY_OFFLOAD 0
#define HAL_IPV6_NEIGHBOR_DISCOVERY_OFFLOAD 1
#define HAL_IPV6_NS_OFFLOAD 2
#define HAL_IPV6_ADDR_LEN 16
#define HAL_MAC_ADDR_LEN 6
#define HAL_OFFLOAD_DISABLE 0
#define HAL_OFFLOAD_ENABLE 1
#define HAL_OFFLOAD_BCAST_FILTER_ENABLE 0x2
#define HAL_OFFLOAD_MCAST_FILTER_ENABLE 0x4
#define HAL_OFFLOAD_ARP_AND_BCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_BCAST_FILTER_ENABLE)
#define HAL_OFFLOAD_IPV6NS_AND_MCAST_FILTER_ENABLE (HAL_OFFLOAD_ENABLE|HAL_OFFLOAD_MCAST_FILTER_ENABLE)
typedef PACKED_PRE struct PACKED_POST _tHalNSOffloadParams
{
tANI_U8 srcIPv6Addr[HAL_IPV6_ADDR_LEN];
tANI_U8 selfIPv6Addr[HAL_IPV6_ADDR_LEN];
//Only support 2 possible Network Advertisement IPv6 address
tANI_U8 targetIPv6Addr1[HAL_IPV6_ADDR_LEN];
tANI_U8 targetIPv6Addr2[HAL_IPV6_ADDR_LEN];
tANI_U8 selfMacAddr[HAL_MAC_ADDR_LEN];
tANI_U8 srcIPv6AddrValid : 1;
tANI_U8 targetIPv6Addr1Valid : 1;
tANI_U8 targetIPv6Addr2Valid : 1;
tANI_U8 reserved1 : 5;
tANI_U8 reserved2; //make it DWORD aligned
tANI_U8 bssIdx;
tANI_U32 slotIndex; // slot index for this offload
} tHalNSOffloadParams;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 offloadType;
tANI_U8 enableOrDisable;
PACKED_PRE union PACKED_POST
{
tANI_U8 hostIpv4Addr [4];
tANI_U8 hostIpv6Addr [HAL_IPV6_ADDR_LEN];
} params;
} tHalHostOffloadReq, *tpHalHostOffloadReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalHostOffloadReq hostOffloadParams;
tHalNSOffloadParams nsOffloadParams;
} tHalHostOffloadReqMsg, *tpHalHostOffloadReqMsg;
#ifdef FEATURE_WLAN_LPHB
typedef enum
{
WIFI_HB_SET_ENABLE = 0x0001,
WIFI_HB_SET_TCP_PARAMS = 0x0002,
WIFI_HB_SET_TCP_PKT_FILTER = 0x0003,
WIFI_HB_SET_UDP_PARAMS = 0x0004,
WIFI_HB_SET_UDP_PKT_FILTER = 0x0005,
WIFI_HB_SET_NETWORK_INFO = 0x0006,
}tLowPowerHeartBeatCmdType ;
#define MAX_FLITER_SIZE 64
/*---------------------------------------------------------------------------
*FEATURE_WLAN_LPHB REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
uint32 hostIpv4Addr;
uint32 destIpv4Addr;
uint16 hostPort;
uint16 destPort;
uint16 timeOutSec; // in seconds
tSirMacAddr gatewayMacAddr;
uint16 timePeriodSec; // in seconds
uint32 tcpSn;
} tlowPowerHeartBeatParamsTcpStruct;
typedef PACKED_PRE struct PACKED_POST
{
uint32 hostIpv4Addr;
uint32 destIpv4Addr;
uint16 hostPort;
uint16 destPort;
uint16 timePeriodSec;// in seconds
uint16 timeOutSec; // in seconds
tSirMacAddr gatewayMacAddr;
} tlowPowerHeartBeatParamsUdpStruct;
typedef PACKED_PRE struct PACKED_POST
{
uint32 offset;
uint32 filterLength;
uint8 filter[MAX_FLITER_SIZE];
} tlowPowerHeartBeatFilterStruct;
typedef PACKED_PRE struct PACKED_POST
{
uint8 heartBeatEnable;
uint8 heartBeatType; //TCP or UDP
} tlowPowerHeartBeatEnableStruct;
typedef PACKED_PRE struct PACKED_POST
{
uint8 dummy;
} tlowPowerHeartBeatNetworkInfoStruct;
typedef PACKED_PRE struct PACKED_POST
{
uint8 sessionIdx;
uint16 lowPowerHeartBeatCmdType;
PACKED_PRE union PACKED_PRO
{
tlowPowerHeartBeatEnableStruct control;
tlowPowerHeartBeatFilterStruct tcpUdpFilter;
tlowPowerHeartBeatParamsTcpStruct tcpParams;
tlowPowerHeartBeatParamsUdpStruct udpParams;
tlowPowerHeartBeatNetworkInfoStruct info;
}options;
} tHalLowPowerHeartBeatReq, *tpHalLowPowerHeartBeatReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalLowPowerHeartBeatReq lowPowerHeartBeatParams;
} tHalLowPowerHeartBeatReqMsg, *tpHalLowPowerHeartBeatReqMsg;
/*---------------------------------------------------------------------------
* FEATURE_WLAN_LPHB RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
uint8 sessionIdx;
uint32 status;
uint16 lowPowerHeartBeatCmdType;
}tHalLowPowerHeartBeatRspParams, *tpHalLowPowerHeartBeatRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalLowPowerHeartBeatRspParams lowPowerHeartBeatRspParams;
}tHalLowPowerHeartBeatRspMsg, *tpHalLowPowerHeartBeatRspMsg;
/*---------------------------------------------------------------------------
* FEATURE_WLAN_LPHB IND
*--------------------------------------------------------------------------*/
#define WIFI_HB_EVENT_TCP_RX_TIMEOUT 0x0001
#define WIFI_HB_EVENT_UDP_RX_TIMEOUT 0x0002
#define WIFI_LPHB_EVENT_REASON_TIMEOUT 0x01
#define WIFI_LPHB_EVENT_REASON_FW_ON_MONITOR 0x02
#define WIFI_LPHB_EVENT_REASON_FW_OFF_MONITOR 0x03
#define WIFI_LPHB_PROTO_UDP 0x01
#define WIFI_LPHB_PROTO_TCP 0x02
typedef PACKED_PRE struct PACKED_POST
{
uint8 bssIdx;
uint8 sessionIdx;
uint8 protocolType; /*TCP or UDP*/
uint8 eventReason;
}tHalLowPowerHeartBeatIndParam,*tpHalLowPowerHeartBeatIndParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalLowPowerHeartBeatIndParam lowPowerHeartBeatIndParams;
}tHalLowPowerHeartBeatIndMsg, *tpHalLowPowerHeartBeatIndMsg;
#endif
#ifdef FEATURE_WLAN_BATCH_SCAN
/*---------------------------------------------------------------------------
* WLAN_HAL_BATCHSCAN_SET_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Scan Frerquency - default to 30Sec*/
tANI_U32 scanInterval;
tANI_U32 numScan2Batch;
tANI_U32 bestNetworks;
tANI_U8 rfBand;
tANI_U8 rtt;
} tHalBatchScanSetParams, *tpHalBatchScanSetParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalBatchScanSetParams batchScanParams;
} tHalBatchScanSetReqMsg, *tpHalBatchScanSetReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_BATCHSCAN_SET_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 supportedMscan;
} tHalBatchScanSetRspParam, *tpHalBatchScanSetRspParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalBatchScanSetRspParam setBatchScanRspParam;
} tHalBatchScanSetRspMsg, *tpHalBatchScanSetRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_BATCHSCAN_STOP_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 param;
} tHalBatchScanStopIndParam, *tpHalBatchScanStopIndParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalBatchScanStopIndParam param;
} tHalBatchScanStopIndMsg, *tpHalBatchScanStopIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_BATCHSCAN_TRIGGER_RESULT_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 param;
} tHalBatchScanTriggerResultParam, *tpHalBatchScanTriggerResultParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalBatchScanTriggerResultParam param;
} tHalBatchScanTriggerResultIndMsg, *tpHalBatchScanTriggerResultIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_BATCHSCAN_GET_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssid[6]; /* BSSID */
tANI_U8 ssid[33]; /* SSID */
tANI_U8 ch; /* Channel */
tANI_S8 rssi; /* RSSI or Level */
/* Timestamp when Network was found. Used to calculate age based on timestamp in GET_RSP msg header */
tANI_U32 timestamp;
} tHalBatchScanNetworkInfo, *tpHalBatchScanNetworkInfo;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 scanId; /* Scan List ID. */
/* No of AP in a Scan Result. Should be same as bestNetwork in SET_REQ msg */
tANI_U32 numNetworksInScanList;
/* Variable data ptr: Number of AP in Scan List */
/* following numNetworkInScanList is data of type tHalBatchScanNetworkInfo
* of sizeof(tHalBatchScanNetworkInfo) * numNetworkInScanList */
tANI_U8 scanList[1];
} tHalBatchScanList, *tpHalBatchScanList;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 timestamp;
tANI_U32 numScanLists;
boolean isLastResult;
/* Variable Data ptr: Number of Scan Lists*/
/* following isLastResult is data of type tHalBatchScanList
* of sizeof(tHalBatchScanList) * numScanLists*/
tANI_U8 scanResults[1];
} tHalBatchScanResultIndParam, *tpHalBatchScanResultIndParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalBatchScanResultIndParam resultIndMsgParam;
} tHalBatchScanResultIndMsg, *tpHalBatchScanResultIndMsg;
#endif
/*---------------------------------------------------------------------------
* WLAN_HAL_KEEP_ALIVE_REQ
*--------------------------------------------------------------------------*/
/* Packet Types. */
#define HAL_KEEP_ALIVE_NULL_PKT 1
#define HAL_KEEP_ALIVE_UNSOLICIT_ARP_RSP 2
/* Enable or disable keep alive */
#define HAL_KEEP_ALIVE_DISABLE 0
#define HAL_KEEP_ALIVE_ENABLE 1
/* Keep Alive request. */
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 packetType;
tANI_U32 timePeriod;
tHalIpv4Addr hostIpv4Addr;
tHalIpv4Addr destIpv4Addr;
tSirMacAddr destMacAddr;
tANI_U8 bssIdx;
} tHalKeepAliveReq, *tpHalKeepAliveReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalKeepAliveReq KeepAliveParams;
} tHalKeepAliveReqMsg, *tpHalKeepAliveReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_RSSI_THRESH_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_S8 ucRssiThreshold1 : 8;
tANI_S8 ucRssiThreshold2 : 8;
tANI_S8 ucRssiThreshold3 : 8;
tANI_U8 bRssiThres1PosNotify : 1;
tANI_U8 bRssiThres1NegNotify : 1;
tANI_U8 bRssiThres2PosNotify : 1;
tANI_U8 bRssiThres2NegNotify : 1;
tANI_U8 bRssiThres3PosNotify : 1;
tANI_U8 bRssiThres3NegNotify : 1;
tANI_U8 bReserved10 : 2;
} tHalRSSIThresholds, *tpHalRSSIThresholds;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRSSIThresholds rssiThreshParams;
} tHalRSSIThresholdReqMsg, *tpHalRSSIThresholdReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENTER_UAPSD_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bkDeliveryEnabled:1;
tANI_U8 beDeliveryEnabled:1;
tANI_U8 viDeliveryEnabled:1;
tANI_U8 voDeliveryEnabled:1;
tANI_U8 bkTriggerEnabled:1;
tANI_U8 beTriggerEnabled:1;
tANI_U8 viTriggerEnabled:1;
tANI_U8 voTriggerEnabled:1;
tANI_U8 bssIdx;
} tUapsdReqParams, *tpUapsdReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tUapsdReqParams enterUapsdParams;
} tHalEnterUapsdReqMsg, *tpHalEnterUapsdReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXIT_UAPSD_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tANI_U8 bssIdx;
} tHalExitUapsdReqMsg, *tpHalExitUapsdReqMsg;
#define HAL_PERIODIC_TX_PTRN_MAX_SIZE 1536
#define HAL_MAXNUM_PERIODIC_TX_PTRNS 6
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_PERIODIC_TX_PTRN_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 selfStaIdx:8;
tANI_U32 ucPtrnId:8; // Pattern ID
tANI_U32 usPtrnSize:16; // Non-Zero Pattern size
tANI_U32 uPtrnIntervalMs; // In msec
tANI_U8 ucPattern[HAL_PERIODIC_TX_PTRN_MAX_SIZE]; // Pattern buffer
} tHalAddPeriodicTxPtrn, *tpHalAddPeriodicTxPtrn;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalAddPeriodicTxPtrn ptrnParams;
} tHalAddPeriodicTxPtrnIndMsg, *tpHalAddPeriodicTxPtrnIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DEL_PERIODIC_TX_PTRN_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 selfStaIdx:8;
tANI_U32 rsvd:24;
/* Bitmap of pattern IDs that needs to be deleted */
tANI_U32 uPatternIdBitmap;
} tHalDelPeriodicTxPtrn, *tpHalDelPeriodicTxPtrn;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalDelPeriodicTxPtrn ptrnParams;
} tHalDelPeriodicTxPtrnIndMsg, *tpHalDelPeriodicTxPtrnIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_PERIODIC_TX_PTRN_FW_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Type of Failure indication */
tANI_U32 bssIdx:8;
tANI_U32 selfStaIdx:8;
tANI_U32 rsvd:16;
tANI_U32 status;
tANI_U32 patternIdBitmap;
} tHalPeriodicTxPtrnFwInd, *tpHalPeriodicTxPtrnFwInd;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalPeriodicTxPtrnFwInd fwIndParams;
} tHalPeriodicTxPtrnFwIndMsg, *tpHalPeriodicTxPtrnFwIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_WOWL_BCAST_PTRN
*--------------------------------------------------------------------------*/
#define HAL_WOWL_BCAST_PATTERN_MAX_SIZE 128
#define HAL_WOWL_BCAST_MAX_NUM_PATTERNS 16
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 ucPatternId; // Pattern ID
// Pattern byte offset from beginning of the 802.11 packet to start of the
// wake-up pattern
tANI_U8 ucPatternByteOffset;
tANI_U8 ucPatternSize; // Non-Zero Pattern size
tANI_U8 ucPattern[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern
tANI_U8 ucPatternMaskSize; // Non-zero pattern mask size
tANI_U8 ucPatternMask[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Pattern mask
tANI_U8 ucPatternExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern
tANI_U8 ucPatternMaskExt[HAL_WOWL_BCAST_PATTERN_MAX_SIZE]; // Extra pattern mask
tANI_U8 bssIdx;
} tHalWowlAddBcastPtrn, *tpHalWowlAddBcastPtrn;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalWowlAddBcastPtrn ptrnParams;
} tHalWowlAddBcastPtrnReqMsg, *tpHalWowlAddBcastPtrnReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DEL_WOWL_BCAST_PTRN
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Pattern ID of the wakeup pattern to be deleted */
tANI_U8 ucPatternId;
tANI_U8 bssIdx;
} tHalWowlDelBcastPtrn, *tpHalWowlDelBcastPtrn;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalWowlDelBcastPtrn ptrnParams;
} tHalWowlDelBcastPtrnReqMsg, *tpHalWowlDelBcastPtrnReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENTER_WOWL_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Enables/disables magic packet filtering */
tANI_U8 ucMagicPktEnable;
/* Magic pattern */
tSirMacAddr magicPtrn;
/* Enables/disables packet pattern filtering in firmware.
Enabling this flag enables broadcast pattern matching
in Firmware. If unicast pattern matching is also desired,
ucUcastPatternFilteringEnable flag must be set tot true
as well
*/
tANI_U8 ucPatternFilteringEnable;
/* Enables/disables unicast packet pattern filtering.
This flag specifies whether we want to do pattern match
on unicast packets as well and not just broadcast packets.
This flag has no effect if the ucPatternFilteringEnable
(main controlling flag) is set to false
*/
tANI_U8 ucUcastPatternFilteringEnable;
/* This configuration is valid only when magicPktEnable=1.
* It requests hardware to wake up when it receives the
* Channel Switch Action Frame.
*/
tANI_U8 ucWowChnlSwitchRcv;
/* This configuration is valid only when magicPktEnable=1.
* It requests hardware to wake up when it receives the
* Deauthentication Frame.
*/
tANI_U8 ucWowDeauthRcv;
/* This configuration is valid only when magicPktEnable=1.
* It requests hardware to wake up when it receives the
* Disassociation Frame.
*/
tANI_U8 ucWowDisassocRcv;
/* This configuration is valid only when magicPktEnable=1.
* It requests hardware to wake up when it has missed
* consecutive beacons. This is a hardware register
* configuration (NOT a firmware configuration).
*/
tANI_U8 ucWowMaxMissedBeacons;
/* This configuration is valid only when magicPktEnable=1.
* This is a timeout value in units of microsec. It requests
* hardware to unconditionally wake up after it has stayed
* in WoWLAN mode for some time. Set 0 to disable this feature.
*/
tANI_U8 ucWowMaxSleepUsec;
/* This configuration directs the WoW packet filtering to look for EAP-ID
* requests embedded in EAPOL frames and use this as a wake source.
*/
tANI_U8 ucWoWEAPIDRequestEnable;
/* This configuration directs the WoW packet filtering to look for EAPOL-4WAY
* requests and use this as a wake source.
*/
tANI_U8 ucWoWEAPOL4WayEnable;
/* This configuration allows a host wakeup on an network scan offload match.
*/
tANI_U8 ucWowNetScanOffloadMatch;
/* This configuration allows a host wakeup on any GTK rekeying error.
*/
tANI_U8 ucWowGTKRekeyError;
/* This configuration allows a host wakeup on BSS connection loss.
*/
tANI_U8 ucWoWBSSConnLoss;
tANI_U8 bssIdx;
} tHalWowlEnterParams, *tpHalWowlEnterParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalWowlEnterParams enterWowlParams;
} tHalWowlEnterReqMsg, *tpHalWowlEnterReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXIT_WOWL_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssIdx;
} tHalWowlExitParams, *tpHalWowlExitParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalWowlExitParams exitWowlParams;
} tHalWowlExitReqMsg, *tpHalWowlExitReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GET_RSSI_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
} tHalGetRssiReqMsg, *tpHalGetRssiReqMsg;
typedef PACKED_PRE struct PACKED_POST
{
/* Valid STA Idx for per STA stats request */
tANI_U32 staId;
}tHalRoamRssiReqParams, *tpHalRoamRssiReqParams;
/*---------------------------------------------------------------------------
* WLAN_HAL_GET_ROAM_RSSI_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRoamRssiReqParams roamRssiReqParams;
} tHalGetRoamRssiReqMsg, *tpHalGetRoamRssiReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_UAPSD_AC_PARAMS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST {
tANI_U8 staidx; // STA index
tANI_U8 ac; // Access Category
tANI_U8 up; // User Priority
tANI_U32 srvInterval; // Service Interval
tANI_U32 susInterval; // Suspend Interval
tANI_U32 delayInterval; // Delay Interval
} tUapsdInfo, tpUapsdInfo;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tUapsdInfo enableUapsdAcParams;
} tHalSetUapsdAcParamsReqMsg, *tpHalSetUapsdAcParamsReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_CONFIGURE_RXP_FILTER_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST {
tANI_U8 setMcstBcstFilterSetting;
tANI_U8 setMcstBcstFilter;
} tHalConfigureRxpFilterReqParams, tpHalConfigureRxpFilterReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalConfigureRxpFilterReqParams configureRxpFilterReqParams;
} tHalConfigureRxpFilterReqMsg, *tpHalConfigureRxpFilterReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENTER_IMPS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalEnterImpsRspParams, *tpHalEnterImpsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalEnterImpsRspParams enterImpsRspParams;
} tHalEnterImpsRspMsg, *tpHalEnterImpsRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXIT_IMPS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalExitImpsRspParams, *tpHalExitImpsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExitImpsRspParams exitImpsRspParams;
} tHalExitImpsRspMsg, *tpHalExitImpsRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENTER_BMPS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 bssIdx;
} tHalEnterBmpsRspParams, *tpHalEnterBmpsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalEnterBmpsRspParams enterBmpsRspParams;
} tHalEnterBmpsRspMsg, *tpHalEnterBmpsRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXIT_BMPS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 bssIdx;
} tHalExitBmpsRspParams, *tpHalExitBmpsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExitBmpsRspParams exitBmpsRspParams;
} tHalExitBmpsRspMsg, *tpHalExitBmpsRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENTER_UAPSD_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 bssIdx;
}tUapsdRspParams, *tpUapsdRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tUapsdRspParams enterUapsdRspParams;
} tHalEnterUapsdRspMsg, *tpHalEnterUapsdRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXIT_UAPSD_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 bssIdx;
} tHalExitUapsdRspParams, *tpHalExitUapsdRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExitUapsdRspParams exitUapsdRspParams;
} tHalExitUapsdRspMsg, *tpHalExitUapsdRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_RSSI_NOTIFICATION_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 bRssiThres1PosCross : 1;
tANI_U32 bRssiThres1NegCross : 1;
tANI_U32 bRssiThres2PosCross : 1;
tANI_U32 bRssiThres2NegCross : 1;
tANI_U32 bRssiThres3PosCross : 1;
tANI_U32 bRssiThres3NegCross : 1;
tANI_U32 avgRssi : 8;
tANI_U32 uBssIdx : 8;
tANI_U32 isBTCoexCompromise : 1;
tANI_U32 bReserved : 9;
tANI_S8 refRssiThreshold1;
tANI_S8 refRssiThreshold2;
tANI_S8 refRssiThreshold3;
} tHalRSSINotification, *tpHalRSSINotification;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRSSINotification rssiNotificationParams;
} tHalRSSINotificationIndMsg, *tpHalRSSINotificationIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GET_RSSI_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_S8 rssi;
} tHalGetRssiParams, *tpHalGetRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalGetRssiParams rssiRspParams;
} tHalGetRssiRspMsg, *tpHalGetRssiRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GET_ROAM_RSSI_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 staId;
tANI_S8 rssi;
} tHalGetRoamRssiParams, *tpHalGetRoamRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalGetRoamRssiParams roamRssiRspParams;
} tHalGetRoamRssiRspMsg, *tpHalGetRoamRssiRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENTER_WOWL_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 bssIdx;
} tHalEnterWowlRspParams, *tpHalEnterWowlRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalEnterWowlRspParams enterWowlRspParams;
} tHalWowlEnterRspMsg, *tpHalWowlEnterRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXIT_WOWL_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 bssIdx;
} tHalExitWowlRspParams, *tpHalExitWowlRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExitWowlRspParams exitWowlRspParams;
} tHalWowlExitRspMsg, *tpHalWowlExitRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_BCN_FILTER_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalAddBcnFilterRspParams, *tpHalAddBcnFilterRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalAddBcnFilterRspParams addBcnFilterRspParams;
} tHalAddBcnFilterRspMsg, *tpHalAddBcnFilterRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_REM_BCN_FILTER_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalRemBcnFilterRspParams, *tpHalRemBcnFilterRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRemBcnFilterRspParams remBcnFilterRspParams;
} tHalRemBcnFilterRspMsg, *tpHalRemBcnFilterRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ADD_WOWL_BCAST_PTRN_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 bssIdx;
} tHalAddWowlBcastPtrnRspParams, *tpHalAddWowlBcastPtrnRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalAddWowlBcastPtrnRspParams addWowlBcastPtrnRspParams;
} tHalAddWowlBcastPtrnRspMsg, *tpHalAddWowlBcastPtrnRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DEL_WOWL_BCAST_PTRN_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 bssIdx;
} tHalDelWowlBcastPtrnRspParams, *tpHalDelWowlBcastPtrnRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalDelWowlBcastPtrnRspParams delWowlBcastRspParams;
} tHalDelWowlBcastPtrnRspMsg, *tpHalDelWowlBcastPtrnRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_HOST_OFFLOAD_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalHostOffloadRspParams, *tpHalHostOffloadRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalHostOffloadRspParams hostOffloadRspParams;
} tHalHostOffloadRspMsg, *tpHalHostOffloadRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_KEEP_ALIVE_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalKeepAliveRspParams, *tpHalKeepAliveRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalKeepAliveRspParams keepAliveRspParams;
} tHalKeepAliveRspMsg, *tpHalKeepAliveRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_RSSI_THRESH_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalSetRssiThreshRspParams, *tpHalSetRssiThreshRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalSetRssiThreshRspParams setRssiThreshRspParams;
} tHalSetRssiThreshRspMsg, *tpHalSetRssiThreshRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_UAPSD_AC_PARAMS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalSetUapsdAcParamsRspParams, *tpHalSetUapsdAcParamsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalSetUapsdAcParamsRspParams setUapsdAcParamsRspParams;
} tHalSetUapsdAcParamsRspMsg, *tpHalSetUapsdAcParamsRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_CONFIGURE_RXP_FILTER_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalConfigureRxpFilterRspParams, *tpHalConfigureRxpFilterRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalConfigureRxpFilterRspParams configureRxpFilterRspParams;
} tHalConfigureRxpFilterRspMsg, *tpHalConfigureRxpFilterRspMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_SET_MAX_TX_POWER_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr bssId; // BSSID is needed to identify which session issued this request. As
//the request has power constraints, this should be applied only to that session
tSirMacAddr selfStaMacAddr;
//In request,
//power == MaxTx power to be used.
tPowerdBm power;
}tSetMaxTxPwrParams, *tpSetMaxTxPwrParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetMaxTxPwrParams setMaxTxPwrParams;
}tSetMaxTxPwrReq, *tpSetMaxTxPwrReq;
/*---------------------------------------------------------------------------
*WLAN_HAL_SET_MAX_TX_POWER_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
//power == tx power used for management frames.
tPowerdBm power;
/* success or failure */
tANI_U32 status;
}tSetMaxTxPwrRspParams, *tpSetMaxTxPwrRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetMaxTxPwrRspParams setMaxTxPwrRspParams;
}tSetMaxTxPwrRspMsg, *tpSetMaxTxPwrRspMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ
*--------------------------------------------------------------------------*/
/* Band types for WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_REQ between WDI and HAL */
typedef enum
{
WLAN_HAL_SET_MAX_TX_POWER_BAND_ALL = 0,
// For 2.4GHz or 5GHz bands
WLAN_HAL_SET_MAX_TX_POWER_BAND_2_4_GHZ,
WLAN_HAL_SET_MAX_TX_POWER_BAND_5_0_GHZ,
// End of valid enums
WLAN_HAL_SET_MAX_TX_POWER_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE,
}tHalSetMaxTxPwrBandInfo;
typedef PACKED_PRE struct PACKED_POST
{
tHalSetMaxTxPwrBandInfo bandInfo; // 2_4_GHZ or 5_0_GHZ
tPowerdBm power; // In request, power == MaxTx power to be used.
}tSetMaxTxPwrPerBandParams, *tpSetMaxTxPwrPerBandParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetMaxTxPwrPerBandParams setMaxTxPwrPerBandParams;
}tSetMaxTxPwrPerBandReq, *tpSetMaxTxPwrPerBandReq;
/*---------------------------------------------------------------------------
*WLAN_HAL_SET_MAX_TX_POWER_PER_BAND_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
//power == tx power used for management frames.
tPowerdBm power;
/* success or failure */
tANI_U32 status;
}tSetMaxTxPwrPerBandRspParams, *tpSetMaxTxPwrPerBandRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetMaxTxPwrPerBandRspParams setMaxTxPwrPerBandRspParams;
}tSetMaxTxPwrPerBandRspMsg, *tpSetMaxTxPwrPerBandRspMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_SET_TX_POWER_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* TX Power in milli watts */
tANI_U32 txPower;
tANI_U8 bssIdx;
}tSetTxPwrReqParams, *tpSetTxPwrReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetTxPwrReqParams setTxPwrReqParams;
}tSetTxPwrReqMsg, *tpSetTxPwrReqMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_SET_TX_POWER_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
}tSetTxPwrRspParams, *tpSetTxPwrRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetTxPwrRspParams setTxPwrRspParams;
}tSetTxPwrRspMsg, *tpSetTxPwrRspMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_GET_TX_POWER_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 staId;
}tGetTxPwrReqParams, *tpGetTxPwrReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tGetTxPwrReqParams getTxPwrReqParams;
}tGetTxPwrReqMsg, *tpGetTxPwrReqMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_GET_TX_POWER_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
/* TX Power in milli watts */
tANI_U32 txPower;
}tGetTxPwrRspParams, *tpGetTxPwrRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tGetTxPwrRspParams getTxPwrRspParams;
}tGetTxPwrRspMsg, *tpGetTxPwrRspMsg;
#ifdef WLAN_FEATURE_P2P
/*---------------------------------------------------------------------------
*WLAN_HAL_SET_P2P_GONOA_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 opp_ps;
tANI_U32 ctWindow;
tANI_U8 count;
tANI_U32 duration;
tANI_U32 interval;
tANI_U32 single_noa_duration;
tANI_U8 psSelection;
}tSetP2PGONOAParams, *tpSetP2PGONOAParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetP2PGONOAParams setP2PGONOAParams;
}tSetP2PGONOAReq, *tpSetP2PGONOAReq;
/*---------------------------------------------------------------------------
*WLAN_HAL_SET_P2P_GONOA_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
}tSetP2PGONOARspParams, *tpSetP2PGONOARspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetP2PGONOARspParams setP2PGONOARspParams;
}tSetP2PGONOARspMsg, *tpSetP2PGONOARspMsg;
#endif
/*---------------------------------------------------------------------------
*WLAN_HAL_ADD_SELF_STA_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr selfMacAddr;
tANI_U32 status;
}tAddStaSelfParams, *tpAddStaSelfParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAddStaSelfParams addStaSelfParams;
}tAddStaSelfReq, *tpAddStaSelfReq;
/* This V1 structure carries additionally the IFACE PERSONA
of the interface as compared to the legacy control
message */
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr selfMacAddr;
tANI_U32 status;
tHalIfacePersona iface_persona;
}tAddStaSelfParams_V1, *tpAddStaSelfParams_V1;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAddStaSelfParams_V1 addStaSelfParams_V1;
}tAddStaSelfReq_V1, *tpAddStaSelfReq_V1;
/*---------------------------------------------------------------------------
*WLAN_HAL_ADD_SELF_STA_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
/*Self STA Index */
tANI_U8 selfStaIdx;
/* DPU Index (IGTK, PTK, GTK all same) */
tANI_U8 dpuIdx;
/* DPU Signature */
tANI_U8 dpuSignature;
}tAddStaSelfRspParams, *tpAddStaSelfRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAddStaSelfRspParams addStaSelfRspParams;
}tAddStaSelfRspMsg, *tpAddStaSelfRspMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_DEL_STA_SELF_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr selfMacAddr;
}tDelStaSelfParams, *tpDelStaSelfParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDelStaSelfParams delStaSelfParams;
} tDelStaSelfReqMsg, *tpDelStaSelfReqMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_DEL_STA_SELF_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*success or failure */
tANI_U32 status;
tSirMacAddr selfMacAddr;
}tDelStaSelfRspParams, *tpDelStaSelfRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tDelStaSelfRspParams delStaSelfRspParams;
} tDelStaSelfRspMsg, *tpDelStaSelfRspMsg;
#ifdef WLAN_FEATURE_VOWIFI_11R
/*---------------------------------------------------------------------------
*WLAN_HAL_AGGR_ADD_TS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Station Index */
tANI_U16 staIdx;
/* TSPEC handler uniquely identifying a TSPEC for a STA in a BSS */
/* This will carry the bitmap with the bit positions representing different AC.s*/
tANI_U16 tspecIdx;
/* Tspec info per AC To program TPE with required parameters */
tSirMacTspecIE tspec[WLAN_HAL_MAX_AC];
/* U-APSD Flags: 1b per AC. Encoded as follows:
b7 b6 b5 b4 b3 b2 b1 b0 =
X X X X BE BK VI VO */
tANI_U8 uAPSD;
/* These parameters are for all the access categories */
tANI_U32 srvInterval[WLAN_HAL_MAX_AC]; // Service Interval
tANI_U32 susInterval[WLAN_HAL_MAX_AC]; // Suspend Interval
tANI_U32 delayInterval[WLAN_HAL_MAX_AC]; // Delay Interval
}tAggrAddTsParams, *tpAggrAddTsParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAggrAddTsParams aggrAddTsParam;
}tAggrAddTsReq, *tpAggrAddTsReq;
/*---------------------------------------------------------------------------
*WLAN_HAL_AGGR_ADD_TS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status0;
/* FIXME PRIMA for future use for 11R */
tANI_U32 status1;
}tAggrAddTsRspParams, *tpAggrAddTsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tAggrAddTsRspParams aggrAddTsRspParam;
}tAggrAddTsRspMsg, *tpAggrAddTsRspMsg;
#endif
/*---------------------------------------------------------------------------
* WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 isAppsCpuAwake;
} tHalConfigureAppsCpuWakeupStateReqParams, *tpHalConfigureAppsCpuWakeupStatReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalConfigureAppsCpuWakeupStateReqParams appsStateReqParams;
} tHalConfigureAppsCpuWakeupStateReqMsg, *tpHalConfigureAppsCpuWakeupStateReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_CONFIGURE_APPS_CPU_WAKEUP_STATE_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalConfigureAppsCpuWakeupStateRspParams, *tpHalConfigureAppsCpuWakeupStateRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalConfigureAppsCpuWakeupStateRspParams appsStateRspParams;
} tHalConfigureAppsCpuWakeupStateRspMsg, *tpHalConfigureAppsCpuWakeupStateRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DUMP_COMMAND_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 argument1;
tANI_U32 argument2;
tANI_U32 argument3;
tANI_U32 argument4;
tANI_U32 argument5;
}tHalDumpCmdReqParams,*tpHalDumpCmdReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalDumpCmdReqParams dumpCmdReqParams;
} tHalDumpCmdReqMsg, *tpHalDumpCmdReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DUMP_COMMAND_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
/*Length of the responce message*/
tANI_U32 rspLength;
/*FiXME: Currently considering the the responce will be less than 100bytes */
tANI_U8 rspBuffer[DUMPCMD_RSP_BUFFER];
} tHalDumpCmdRspParams, *tpHalDumpCmdRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalDumpCmdRspParams dumpCmdRspParams;
} tHalDumpCmdRspMsg, *tpHalDumpCmdRspMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_COEX_IND
*-------------------------------------------------------------------------*/
#define WLAN_COEX_IND_DATA_SIZE (4)
#define WLAN_COEX_IND_TYPE_DISABLE_HB_MONITOR (0)
#define WLAN_COEX_IND_TYPE_ENABLE_HB_MONITOR (1)
#define WLAN_COEX_IND_TYPE_SCANS_ARE_COMPROMISED_BY_COEX (2)
#define WLAN_COEX_IND_TYPE_SCANS_ARE_NOT_COMPROMISED_BY_COEX (3)
#define WLAN_COEX_IND_TYPE_DISABLE_AGGREGATION_IN_2p4 (4)
#define WLAN_COEX_IND_TYPE_ENABLE_AGGREGATION_IN_2p4 (5)
#define WLAN_COEX_IND_TYPE_ENABLE_UAPSD (6)
#define WLAN_COEX_IND_TYPE_DISABLE_UAPSD (7)
#define WLAN_COEX_IND_TYPE_CXM_FEATURES_NOTIFICATION (8)
#define WLAN_COEX_IND_TYPE_HID_CONNECTED_WLAN_CONNECTED_IN_2p4 (9)
#define WLAN_COEX_IND_TYPE_HID_DISCONNECTED_WLAN_CONNECTED_IN_2p4 (10)
typedef PACKED_PRE struct PACKED_POST
{
/*Coex Indication Type*/
tANI_U32 coexIndType;
/*Coex Indication Data*/
tANI_U32 coexIndData[WLAN_COEX_IND_DATA_SIZE];
}tCoexIndParams,*tpCoexIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tCoexIndParams coexIndParams;
}tCoexIndMsg, *tpCoexIndMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_OTA_TX_COMPL_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*Tx Complete Indication Success or Failure*/
tANI_U32 status;
/* Dialog token */
tANI_U32 dialogToken;
}tTxComplParams,*tpTxComplParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTxComplParams txComplParams;
}tTxComplIndMsg, *tpTxComplIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_HOST_SUSPEND_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 configuredMcstBcstFilterSetting;
tANI_U32 activeSessionCount;
}tHalWlanHostSuspendIndParam,*tpHalWlanHostSuspendIndParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalWlanHostSuspendIndParam suspendIndParams;
}tHalWlanHostSuspendIndMsg, *tpHalWlanHostSuspendIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXCLUDE_UNENCRYTED_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_BOOLEAN bDot11ExcludeUnencrypted;
tSirMacAddr bssId;
}tHalWlanExcludeUnEncryptedIndParam,*tpHalWlanExcludeUnEncryptedIndParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalWlanExcludeUnEncryptedIndParam excludeUnEncryptedIndParams;
}tHalWlanExcludeUnEncrptedIndMsg, *tpHalWlanExcludeUnEncrptedIndMsg;
#ifdef WLAN_FEATURE_P2P
/*---------------------------------------------------------------------------
*WLAN_HAL_NOA_ATTR_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 index ;
tANI_U8 oppPsFlag ;
tANI_U16 ctWin ;
tANI_U16 uNoa1IntervalCnt;
tANI_U16 bssIdx;
tANI_U32 uNoa1Duration;
tANI_U32 uNoa1Interval;
tANI_U32 uNoa1StartTime;
tANI_U16 uNoa2IntervalCnt;
tANI_U16 rsvd2;
tANI_U32 uNoa2Duration;
tANI_U32 uNoa2Interval;
tANI_U32 uNoa2StartTime;
tANI_U32 status;
}tNoaAttrIndParams, *tpNoaAttrIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tNoaAttrIndParams noaAttrIndParams;
}tNoaAttrIndMsg, *tpNoaAttrIndMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_NOA_START_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
tANI_U32 bssIdx;
}tNoaStartIndParams, *tpNoaStartIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tNoaStartIndParams noaStartIndParams;
}tNoaStartIndMsg, tpNoaStartIndMsg;
#endif
/*---------------------------------------------------------------------------
* WLAN_HAL_HOST_RESUME_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 configuredMcstBcstFilterSetting;
}tHalWlanHostResumeReqParam,*tpHalWlanHostResumeReqParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalWlanHostResumeReqParam resumeReqParams;
}tHalWlanHostResumeReqMsg, *tpHalWlanHostResumeReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_HOST_RESUME_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalHostResumeRspParams, *tpHalHostResumeRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalHostResumeRspParams hostResumeRspParams;
} tHalHostResumeRspMsg, *tpHalHostResumeRspMsg;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U16 staIdx;
// Peer MAC Address, whose BA session has timed out
tSirMacAddr peerMacAddr;
// TID for which a BA session timeout is being triggered
tANI_U8 baTID;
// DELBA direction
// 1 - Originator
// 0 - Recipient
tANI_U8 baDirection;
tANI_U32 reasonCode;
tSirMacAddr bssId; // TO SUPPORT BT-AMP
} tHalWlanDelBaIndMsg, *tpHalWlanDelBaIndMsg;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalWlanDelBaIndMsg hostdelBaParam;
} tHalDelBAIndMsg, *tpHalDelBAIndMsg;
/*---------------------------------------------------------------------------
*PNO Messages
*-------------------------------------------------------------------------*/
/* Max number of channels that a network can be found on*/
/* WLAN_HAL_PNO_MAX_NETW_CHANNELS and WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX should
* be changed at same time
*/
#define WLAN_HAL_PNO_MAX_NETW_CHANNELS 60
/*Max number of channels that a network can be found on*/
#define WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX 60
/*Maximum numbers of networks supported by PNO*/
#define WLAN_HAL_PNO_MAX_SUPP_NETWORKS 16
/*The number of scan time intervals that can be programmed into PNO*/
#define WLAN_HAL_PNO_MAX_SCAN_TIMERS 10
/*Maximum size of the probe template*/
#define WLAN_HAL_PNO_MAX_PROBE_SIZE 450
/*Type of PNO enabling
Immediate - scanning will start immediately and PNO procedure will
be repeated based on timer
Suspend - scanning will start at suspend
Resume - scanning will start on system resume
Delay - start the scan timer to trigger PNO scan
*/
typedef enum
{
ePNO_MODE_IMMEDIATE,
ePNO_MODE_ON_SUSPEND,
ePNO_MODE_ON_RESUME,
ePNO_MODE_DELAY,
ePNO_MODE_PROXIMITY, // FEATURE_WIFI_PROXIMITY
ePNO_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE
} ePNOMode;
/*Authentication type*/
typedef enum
{
eAUTH_TYPE_ANY = 0,
eAUTH_TYPE_OPEN_SYSTEM = 1,
// Upper layer authentication types
eAUTH_TYPE_WPA = 2,
eAUTH_TYPE_WPA_PSK = 3,
eAUTH_TYPE_RSN = 4,
eAUTH_TYPE_RSN_PSK = 5,
eAUTH_TYPE_FT_RSN = 6,
eAUTH_TYPE_FT_RSN_PSK = 7,
eAUTH_TYPE_WAPI_WAI_CERTIFICATE = 8,
eAUTH_TYPE_WAPI_WAI_PSK = 9,
eAUTH_TYPE_CCKM_WPA = 10,
eAUTH_TYPE_CCKM_RSN = 11,
eAUTH_TYPE_RSN_PSK_SHA256 = 12,
eAUTH_TYPE_RSN_8021X_SHA256 = 13,
eAUTH_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
}tAuthType;
/* Encryption type */
typedef enum eEdType
{
eED_ANY = 0,
eED_NONE = 1,
eED_WEP = 2,
eED_TKIP = 3,
eED_CCMP = 4,
eED_WPI = 5,
eED_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tEdType;
/* SSID broadcast type */
typedef enum eSSIDBcastType
{
eBCAST_UNKNOWN = 0,
eBCAST_NORMAL = 1,
eBCAST_HIDDEN = 2,
eBCAST_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tSSIDBcastType;
/*
The network description for which PNO will have to look for
*/
typedef PACKED_PRE struct PACKED_POST
{
/*SSID of the BSS*/
tSirMacSSid ssId;
/*Authentication type for the network*/
tAuthType authentication;
/*Encryption type for the network*/
tEdType encryption;
/*Indicate the channel on which the Network can be found
0 - if all channels */
tANI_U8 ucChannelCount;
tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
/*Indicates the RSSI threshold for the network to be considered*/
tANI_U8 rssiThreshold;
}tNetworkType;
typedef PACKED_PRE struct PACKED_POST
{
/*How much it should wait */
tANI_U32 uTimerValue;
/*How many times it should repeat that wait value
0 - keep using this timer until PNO is disabled*/
tANI_U32 uTimerRepeat;
/*e.g: 2 3
4 0
- it will wait 2s between consecutive scans for 3 times
- after that it will wait 4s between consecutive scans until disabled*/
}tScanTimer;
/*
The network parameters to be sent to the PNO algorithm
*/
typedef PACKED_PRE struct PACKED_POST
{
/*set to 0 if you wish for PNO to use its default telescopic timer*/
tANI_U8 ucScanTimersCount;
/*A set value represents the amount of time that PNO will wait between
two consecutive scan procedures
If the desired is for a uniform timer that fires always at the exact same
interval - one single value is to be set
If there is a desire for a more complex - telescopic like timer multiple
values can be set - once PNO reaches the end of the array it will
continue scanning at intervals presented by the last value*/
tScanTimer aTimerValues[WLAN_HAL_PNO_MAX_SCAN_TIMERS];
}tScanTimersType;
typedef PACKED_PRE struct PACKED_POST {
/*Enable PNO*/
tANI_U32 enable;
/*Immediate, On Suspend, On Resume*/
ePNOMode modePNO;
/*Number of networks sent for PNO*/
tANI_U32 ucNetworksCount;
/*The networks that PNO needs to look for*/
tNetworkType aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
/*The scan timers required for PNO*/
tScanTimersType scanTimers;
/*Probe template for 2.4GHz band*/
tANI_U16 us24GProbeSize;
tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
/*Probe template for 5GHz band*/
tANI_U16 us5GProbeSize;
tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
} tPrefNetwListParams, * tpPrefNetwListParams;
/*
Preferred network list request
*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tPrefNetwListParams prefNetwListParams;
} tSetPrefNetwListReq, *tpSetPrefNetwListReq;
/*
The network description for which PNO will have to look for
*/
typedef PACKED_PRE struct PACKED_POST
{
/*SSID of the BSS*/
tSirMacSSid ssId;
/*Authentication type for the network*/
tAuthType authentication;
/*Encryption type for the network*/
tEdType encryption;
/*SSID broadcast type, normal, hidden or unknown*/
tSSIDBcastType bcastNetworkType;
/*Indicate the channel on which the Network can be found
0 - if all channels */
tANI_U8 ucChannelCount;
tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
/*Indicates the RSSI threshold for the network to be considered*/
tANI_U8 rssiThreshold;
}tNetworkTypeNew;
typedef PACKED_PRE struct PACKED_POST {
/*Enable PNO*/
tANI_U32 enable;
/*Immediate, On Suspend, On Resume*/
ePNOMode modePNO;
/*Number of networks sent for PNO*/
tANI_U32 ucNetworksCount;
/*The networks that PNO needs to look for*/
tNetworkTypeNew aNetworks[WLAN_HAL_PNO_MAX_SUPP_NETWORKS];
/*The scan timers required for PNO*/
tScanTimersType scanTimers;
/*Probe template for 2.4GHz band*/
tANI_U16 us24GProbeSize;
tANI_U8 a24GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
/*Probe template for 5GHz band*/
tANI_U16 us5GProbeSize;
tANI_U8 a5GProbeTemplate[WLAN_HAL_PNO_MAX_PROBE_SIZE];
} tPrefNetwListParamsNew, * tpPrefNetwListParamsNew;
/*
Preferred network list request new
*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tPrefNetwListParamsNew prefNetwListParams;
} tSetPrefNetwListReqNew, *tpSetPrefNetwListReqNew;
#ifdef WLAN_FEATURE_ROAM_SCAN_OFFLOAD
typedef PACKED_PRE struct PACKED_POST
{
tSirMacSSid ssId;
tANI_U8 currAPbssid[HAL_MAC_ADDR_LEN];
tANI_U32 authentication;
tEdType encryption;
tEdType mcencryption;
tANI_U8 ChannelCount;
tANI_U8 ChannelCache[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
}tRoamNetworkType;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 mdiePresent;
tANI_U16 mobilityDomain;
}tMobilityDomainInfo;
typedef PACKED_PRE struct PACKED_POST {
eAniBoolean RoamScanOffloadEnabled;
tANI_S8 LookupThreshold;
tANI_U8 RoamRssiDiff;
tANI_U8 ChannelCacheType;
tANI_U8 Command;
tANI_U8 StartScanReason;
tANI_U16 NeighborScanTimerPeriod;
tANI_U16 NeighborRoamScanRefreshPeriod;
tANI_U16 NeighborScanChannelMinTime;
tANI_U16 NeighborScanChannelMaxTime;
tANI_U16 EmptyRefreshScanPeriod;
tANI_U8 ValidChannelCount;
tANI_U8 ValidChannelList[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
eAniBoolean IsESEEnabled;
tANI_U16 us24GProbeSize;
tANI_U8 a24GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
tANI_U16 us5GProbeSize;
tANI_U8 a5GProbeTemplate[WLAN_HAL_ROAM_SCAN_MAX_PROBE_SIZE];
/* Add Reserved bytes */
tANI_U8 nProbes;
tANI_U16 HomeAwayTime;
eAniBoolean MAWCEnabled;
tANI_S8 RxSensitivityThreshold;
tANI_U8 RoamOffloadEnabled;
tANI_U8 PMK[WLAN_HAL_ROAM_SACN_PMK_SIZE];
tANI_U8 Prefer5GHz;
tANI_U8 RoamRssiCatGap;
tANI_U8 Select5GHzMargin;
tANI_U8 WeakZoneRssiThresholdForRoam;
tANI_U8 ReservedBytes[WLAN_HAL_ROAM_SCAN_RESERVED_BYTES];
tRoamNetworkType ConnectedNetwork;
tMobilityDomainInfo MDID;
} tRoamCandidateListParams, * tpRoamCandidateListParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tRoamCandidateListParams RoamScanOffloadNetwListParams;
} tSetRoamScanOffloadReq, *tpRoamScanOffloadReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
/* status of the request - just to indicate that PNO has acknowledged
* the request and will start scanning */
tANI_U32 status;
} tSetRoamOffloadScanResp, *tpSetRoamOffloadScanResp;
#endif
/*
Preferred network list response
*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
/* status of the request - just to indicate that PNO has acknowledged
* the request and will start scanning*/
tANI_U32 status;
} tSetPrefNetwListResp, *tpSetPrefNetwListResp;
/*
Preferred network indication parameters
*/
typedef PACKED_PRE struct PACKED_POST {
/*Network that was found with the highest RSSI*/
tSirMacSSid ssId;
/*Indicates the RSSI */
tANI_U8 rssi;
//The MPDU frame length of a beacon or probe rsp. data is the start of the frame
tANI_U16 frameLength;
} tPrefNetwFoundParams, * tpPrefNetwFoundParams;
/*
Preferred network found indication
*/
typedef PACKED_PRE struct PACKED_POST {
tHalMsgHeader header;
tPrefNetwFoundParams prefNetwFoundParams;
} tPrefNetwFoundInd, *tpPrefNetwFoundInd;
typedef PACKED_PRE struct PACKED_POST {
/*RSSI Threshold*/
tANI_U8 ucRssiThreshold;
} tRssiFilterParams, * tpRssiFilterParams;
/*
RSSI Filter request
*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tRssiFilterParams prefRSSIFilterParams;
} tSetRssiFilterReq, *tpSetRssiFilterReq;
/*
Set RSSI filter resp
*/
typedef PACKED_PRE struct PACKED_POST{
tHalMsgHeader header;
/*status of the request */
tANI_U32 status;
} tSetRssiFilterResp, *tpSetRssiFilterResp;
/*
Update scan params
*/
typedef PACKED_PRE struct PACKED_POST
{
/*Host setting for 11d*/
tANI_U8 b11dEnabled;
/*Lets PNO know that host has determined the regulatory domain*/
tANI_U8 b11dResolved;
/*Channels on which PNO is allowed to scan*/
tANI_U8 ucChannelCount;
tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS];
/*Minimum channel time*/
tANI_U16 usActiveMinChTime;
/*Maximum channel time*/
tANI_U16 usActiveMaxChTime;
/*Minimum channel time*/
tANI_U16 usPassiveMinChTime;
/*Maximum channel time*/
tANI_U16 usPassiveMaxChTime;
/*Cb State*/
ePhyChanBondState cbState;
} tUpdateScanParams, * tpUpdateScanParams;
/*
Update scan params
*/
typedef PACKED_PRE struct PACKED_POST
{
/*Host setting for 11d*/
tANI_U8 b11dEnabled;
/*Lets PNO know that host has determined the regulatory domain*/
tANI_U8 b11dResolved;
/*Channels on which PNO is allowed to scan*/
tANI_U8 ucChannelCount;
tANI_U8 aChannels[WLAN_HAL_PNO_MAX_NETW_CHANNELS_EX];
/*Minimum channel time*/
tANI_U16 usActiveMinChTime;
/*Maximum channel time*/
tANI_U16 usActiveMaxChTime;
/*Minimum channel time*/
tANI_U16 usPassiveMinChTime;
/*Maximum channel time*/
tANI_U16 usPassiveMaxChTime;
/*Cb State*/
ePhyChanBondState cbState;
} tUpdateScanParamsEx, * tpUpdateScanParamsEx;
/*
Update scan params - sent from host to PNO
to be used during PNO scanning
*/
typedef PACKED_PRE struct PACKED_POST{
tHalMsgHeader header;
tUpdateScanParams scanParams;
} tUpdateScanParamsReq, *tpUpdateScanParamsReq;
/*
Update scan params - sent from host to PNO
to be used during PNO scanning
*/
typedef PACKED_PRE struct PACKED_POST{
tHalMsgHeader header;
tUpdateScanParamsEx scanParams;
} tUpdateScanParamsReqEx, *tpUpdateScanParamsReqEx;
/*
Update scan params - sent from host to PNO
to be used during PNO scanning
*/
typedef PACKED_PRE struct PACKED_POST{
tHalMsgHeader header;
/*status of the request */
tANI_U32 status;
} tUpdateScanParamsResp, *tpUpdateScanParamsResp;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_TX_PER_TRACKING_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 ucTxPerTrackingEnable; /* 0: disable, 1:enable */
tANI_U8 ucTxPerTrackingPeriod; /* Check period, unit is sec. */
tANI_U8 ucTxPerTrackingRatio; /* (Fail TX packet)/(Total TX packet) ratio, the unit is 10%. */
tANI_U32 uTxPerTrackingWatermark; /* A watermark of check number, once the tx packet exceed this number, we do the check, default is 5 */
} tHalTxPerTrackingReqParam, *tpHalTxPerTrackingReqParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalTxPerTrackingReqParam txPerTrackingParams;
} tHalSetTxPerTrackingReqMsg, *tpHalSetTxPerTrackingReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_TX_PER_TRACKING_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
} tHalTxPerTrackingRspParams, *tpHalTxPerTrackingRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalTxPerTrackingRspParams txPerTrackingRspParams;
} tHalSetTxPerTrackingRspMsg, *tpHalSetTxPerTrackingRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_TX_PER_HIT_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
}tTxPerHitIndMsg, *tpTxPerHitIndMsg;
/*---------------------------------------------------------------------------
*******************Packet Filtering Definitions Begin*******************
*--------------------------------------------------------------------------*/
#define HAL_PROTOCOL_DATA_LEN 8
#define HAL_MAX_NUM_MULTICAST_ADDRESS 240
#define HAL_MAX_NUM_FILTERS 20
#define HAL_MAX_CMP_PER_FILTER 10
typedef enum
{
HAL_RCV_FILTER_TYPE_INVALID,
HAL_RCV_FILTER_TYPE_FILTER_PKT,
HAL_RCV_FILTER_TYPE_BUFFER_PKT,
HAL_RCV_FILTER_TYPE_MAX_ENUM_SIZE
}tHalReceivePacketFilterType;
typedef enum
{
HAL_FILTER_PROTO_TYPE_INVALID,
HAL_FILTER_PROTO_TYPE_MAC,
HAL_FILTER_PROTO_TYPE_ARP,
HAL_FILTER_PROTO_TYPE_IPV4,
HAL_FILTER_PROTO_TYPE_IPV6,
HAL_FILTER_PROTO_TYPE_UDP,
HAL_FILTER_PROTO_TYPE_MAX
}tHalRcvPktFltProtocolType;
typedef enum
{
HAL_FILTER_CMP_TYPE_INVALID,
HAL_FILTER_CMP_TYPE_EQUAL,
HAL_FILTER_CMP_TYPE_MASK_EQUAL,
HAL_FILTER_CMP_TYPE_NOT_EQUAL,
HAL_FILTER_CMP_TYPE_MAX
}tHalRcvPktFltCmpFlagType;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 protocolLayer;
tANI_U8 cmpFlag;
tANI_U16 dataLength; /* Length of the data to compare */
tANI_U8 dataOffset; /* from start of the respective frame header */
tANI_U8 reserved; /* Reserved field */
tANI_U8 compareData[HAL_PROTOCOL_DATA_LEN]; /* Data to compare */
tANI_U8 dataMask[HAL_PROTOCOL_DATA_LEN]; /* Mask to be applied on the received packet data before compare */
}tHalRcvPktFilterParams, *tpHalRcvPktFilterParams;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 filterId;
tANI_U8 filterType;
tANI_U8 numParams;
tANI_U32 coalesceTime;
tHalRcvPktFilterParams paramsData[1];
}tHalRcvPktFilterCfgType, *tpHalRcvPktFilterCfgType;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 filterId;
tANI_U8 filterType;
tANI_U8 numParams;
tANI_U32 coleasceTime;
tANI_U8 bssIdx;
tHalRcvPktFilterParams paramsData[1];
}tHalSessionizedRcvPktFilterCfgType, *tpHalSessionizedRcvPktFilterCfgType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRcvPktFilterCfgType pktFilterCfg;
} tHalSetRcvPktFilterReqMsg, *tpHalSetRcvPktFilterReqMsg;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 dataOffset; /* from start of the respective frame header */
tANI_U32 cMulticastAddr;
tSirMacAddr multicastAddr[HAL_MAX_NUM_MULTICAST_ADDRESS];
tANI_U8 bssIdx;
} tHalRcvFltMcAddrListType, *tpHalRcvFltMcAddrListType;
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 bssIdx;
} tHalSetPktFilterRspParams, *tpHalSetPktFilterRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalSetPktFilterRspParams pktFilterRspParams;
} tHalSetPktFilterRspMsg, *tpHalSetPktFilterRspMsg;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssIdx;
} tHalRcvFltPktMatchCntReqParams, *tpHalRcvFltPktMatchCntReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRcvFltPktMatchCntReqParams pktMatchCntReqParams;
} tHalRcvFltPktMatchCntReqMsg, *tpHalRcvFltPktMatchCntReqMsg;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 filterId;
tANI_U32 matchCnt;
} tHalRcvFltPktMatchCnt;
typedef PACKED_PRE struct PACKED_POST
{
/* Success or Failure */
tANI_U32 status;
tANI_U32 matchCnt;
tHalRcvFltPktMatchCnt filterMatchCnt[HAL_MAX_NUM_FILTERS];
tANI_U8 bssIdx;
} tHalRcvFltPktMatchRspParams, *tptHalRcvFltPktMatchRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRcvFltPktMatchRspParams fltPktMatchRspParams;
} tHalRcvFltPktMatchCntRspMsg, *tpHalRcvFltPktMatchCntRspMsg;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status; /* only valid for response message */
tANI_U8 filterId;
tANI_U8 bssIdx;
}tHalRcvFltPktClearParam, *tpHalRcvFltPktClearParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRcvFltPktClearParam filterClearParam;
} tHalRcvFltPktClearReqMsg, *tpHalRcvFltPktClearReqMsg;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRcvFltPktClearParam filterClearParam;
} tHalRcvFltPktClearRspMsg, *tpHalRcvFltPktClearRspMsg;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
tANI_U8 bssIdx;
}tHalRcvFltPktSetMcListRspType, *tpHalRcvFltPktSetMcListRspType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRcvFltMcAddrListType mcAddrList;
} tHalRcvFltPktSetMcListReqMsg, *tpHalRcvFltPktSetMcListReqMsg;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRcvFltPktSetMcListRspType rspParam;
} tHalRcvFltPktSetMcListRspMsg, *tpHalRcvFltPktSetMcListRspMsg;
/*---------------------------------------------------------------------------
*******************Packet Filtering Definitions End*******************
*--------------------------------------------------------------------------*/
/*
* There are two versions of this message
* Version 1 : Base version
* Current version : Base version + Max LI modulated DTIM
*/
typedef PACKED_PRE struct PACKED_POST
{
/* Ignore DTIM */
tANI_U32 uIgnoreDTIM;
/*DTIM Period*/
tANI_U32 uDTIMPeriod;
/* Listen Interval */
tANI_U32 uListenInterval;
/* Broadcast Multicast Filter */
tANI_U32 uBcastMcastFilter;
/* Beacon Early Termination */
tANI_U32 uEnableBET;
/* Beacon Early Termination Interval */
tANI_U32 uBETInterval;
}tSetPowerParamsVer1Type, *tpSetPowerParamsVer1Type;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetPowerParamsVer1Type powerParams;
} tSetPowerParamsVer1ReqMsg, *tpSetPowerParamsVer1ReqMsg;
typedef PACKED_PRE struct PACKED_POST
{
/* Ignore DTIM */
tANI_U32 uIgnoreDTIM;
/*DTIM Period*/
tANI_U32 uDTIMPeriod;
/* Listen Interval */
tANI_U32 uListenInterval;
/* Broadcast Multicast Filter */
tANI_U32 uBcastMcastFilter;
/* Beacon Early Termination */
tANI_U32 uEnableBET;
/* Beacon Early Termination Interval */
tANI_U32 uBETInterval;
/* MAX LI for modulated DTIM */
tANI_U32 uMaxLIModulatedDTIM;
}tSetPowerParamsType, *tpSetPowerParamsType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetPowerParamsType powerParams;
} tSetPowerParamsReqMsg, *tpSetPowerParamsReqMsg;
typedef PACKED_PRE struct PACKED_POST{
tHalMsgHeader header;
/*status of the request */
tANI_U32 status;
} tSetPowerParamsResp, *tpSetPowerParamsResp;
/*---------------------------------------------------------------------------
****************Capability bitmap exchange definitions and macros starts*************
*--------------------------------------------------------------------------*/
typedef enum {
MCC = 0,
P2P = 1,
DOT11AC = 2,
SLM_SESSIONIZATION = 3,
DOT11AC_OPMODE = 4,
SAP32STA = 5,
TDLS = 6,
P2P_GO_NOA_DECOUPLE_INIT_SCAN = 7,
WLANACTIVE_OFFLOAD = 8,
BEACON_OFFLOAD = 9,
SCAN_OFFLOAD = 10,
ROAM_OFFLOAD = 11,
BCN_MISS_OFFLOAD = 12,
STA_POWERSAVE = 13,
STA_ADVANCED_PWRSAVE = 14,
AP_UAPSD = 15,
AP_DFS = 16,
BLOCKACK = 17,
PHY_ERR = 18,
BCN_FILTER = 19,
RTT = 20,
RATECTRL = 21,
WOW = 22,
WLAN_ROAM_SCAN_OFFLOAD = 23,
SPECULATIVE_PS_POLL = 24,
SCAN_SCH = 25,
IBSS_HEARTBEAT_OFFLOAD = 26,
WLAN_SCAN_OFFLOAD = 27,
WLAN_PERIODIC_TX_PTRN = 28,
ADVANCE_TDLS = 29,
BATCH_SCAN = 30,
FW_IN_TX_PATH = 31,
EXTENDED_NSOFFLOAD_SLOT = 32,
CH_SWITCH_V1 = 33,
HT40_OBSS_SCAN = 34,
UPDATE_CHANNEL_LIST = 35,
WLAN_MCADDR_FLT = 36,
WLAN_CH144 = 37,
NAN = 38,
TDLS_SCAN_COEXISTENCE = 39,
LINK_LAYER_STATS_MEAS = 40,
MU_MIMO = 41,
EXTENDED_SCAN = 42,
DYNAMIC_WMM_PS = 43,
MAC_SPOOFED_SCAN = 44,
BMU_ERROR_GENERIC_RECOVERY = 45,
DISA = 46,
FW_STATS = 47,
WPS_PRBRSP_TMPL = 48,
BCN_IE_FLT_DELTA = 49,
TDLS_OFF_CHANNEL = 51,
RTT3 = 52,
MGMT_FRAME_LOGGING = 53,
ENHANCED_TXBD_COMPLETION = 54,
LOGGING_ENHANCEMENT = 55,
EXT_SCAN_ENHANCED = 56,
MEMORY_DUMP_SUPPORTED = 57,
PER_PKT_STATS_SUPPORTED = 58,
EXT_LL_STAT = 60,
WIFI_CONFIG = 61,
ANTENNA_DIVERSITY_SELECTION = 62,
PER_BASED_ROAMING = 63,
SAP_MODE_WOW = 64,
SAP_OFFLOADS = 65,
SAP_BUFF_ALLOC = 66,
MAKE_BEFORE_BREAK = 67,
NUD_DEBUG = 68,
/* 69 reserved for FATAL_EVENT_LOGGING */
/* 70 reserved for WIFI_DUAL_BAND_ENABLE */
PROBE_RSP_TEMPLATE_VER1 = 71,
STA_MONITOR_SCC = 72,
MAX_FEATURE_SUPPORTED = 128,
} placeHolderInCapBitmap;
typedef PACKED_PRE struct PACKED_POST{
tANI_U32 featCaps[4];
} tWlanFeatCaps, *tpWlanFeatCaps;
typedef PACKED_PRE struct PACKED_POST{
tHalMsgHeader header;
tWlanFeatCaps wlanFeatCaps;
} tWlanFeatCapsMsg, *tpWlanFeatCapsMsg;
#define IS_MCC_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(MCC)))
#define IS_SLM_SESSIONIZATION_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(SLM_SESSIONIZATION)))
#define IS_FEATURE_SUPPORTED_BY_HOST(featEnumValue) (!!halMsg_GetHostWlanFeatCaps(featEnumValue))
#define IS_WLANACTIVE_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLANACTIVE_OFFLOAD)))
#define IS_WLAN_ROAM_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_ROAM_SCAN_OFFLOAD)))
#define IS_IBSS_HEARTBEAT_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(IBSS_HEARTBEAT_OFFLOAD)))
#define IS_SCAN_OFFLOAD_SUPPORTED_BY_HOST (!!(halMsg_GetHostWlanFeatCaps(WLAN_SCAN_OFFLOAD)))
#define IS_CH_SWITCH_V1_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(CH_SWITCH_V1))))
#define IS_TDLS_SCAN_COEXISTENCE_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(TDLS_SCAN_COEXISTENCE))))
#define IS_DYNAMIC_WMM_PS_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(DYNAMIC_WMM_PS))))
#define IS_MAC_SPOOF_SCAN_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(MAC_SPOOFED_SCAN))))
#define IS_NEW_BMU_ERROR_RECOVERY_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(BMU_ERROR_GENERIC_RECOVERY))))
#define IS_ENHANCED_TXBD_COMPLETION_SUPPORTED_BY_HOST ((!!(halMsg_GetHostWlanFeatCaps(ENHANCED_TXBD_COMPLETION))))
tANI_U8 halMsg_GetHostWlanFeatCaps(tANI_U8 feat_enum_value);
#define setFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
if ((b)<=127) { \
arr_index = (b)/32; \
bit_index = (b)%32; \
if(arr_index < 4) \
(a)->featCaps[arr_index] |= (1<<bit_index); \
} \
}
#define getFeatCaps(a,b,c) { tANI_U32 arr_index, bit_index; \
if ((b)<=127) { \
arr_index = (b)/32; \
bit_index = (b)%32; \
(c) = ((a)->featCaps[arr_index] & (1<<bit_index))?1:0; \
} \
}
#define clearFeatCaps(a,b) { tANI_U32 arr_index, bit_index; \
if ((b)<=127) { \
arr_index = (b)/32; \
bit_index = (b)%32; \
(a)->featCaps[arr_index] &= ~(1<<bit_index); \
} \
}
/*---------------------------------------------------------------------------
* WLAN_HAL_WAKE_REASON_IND
*--------------------------------------------------------------------------*/
/* status codes to help debug rekey failures */
typedef enum
{
WLAN_HAL_GTK_REKEY_STATUS_SUCCESS = 0,
WLAN_HAL_GTK_REKEY_STATUS_NOT_HANDLED = 1, /* rekey detected, but not handled */
WLAN_HAL_GTK_REKEY_STATUS_MIC_ERROR = 2, /* MIC check error on M1 */
WLAN_HAL_GTK_REKEY_STATUS_DECRYPT_ERROR = 3, /* decryption error on M1 */
WLAN_HAL_GTK_REKEY_STATUS_REPLAY_ERROR = 4, /* M1 replay detected */
WLAN_HAL_GTK_REKEY_STATUS_MISSING_KDE = 5, /* missing GTK key descriptor in M1 */
WLAN_HAL_GTK_REKEY_STATUS_MISSING_IGTK_KDE = 6, /* missing iGTK key descriptor in M1 */
WLAN_HAL_GTK_REKEY_STATUS_INSTALL_ERROR = 7, /* key installation error */
WLAN_HAL_GTK_REKEY_STATUS_IGTK_INSTALL_ERROR = 8, /* iGTK key installation error */
WLAN_HAL_GTK_REKEY_STATUS_RESP_TX_ERROR = 9, /* GTK rekey M2 response TX error */
WLAN_HAL_GTK_REKEY_STATUS_GEN_ERROR = 255 /* non-specific general error */
} tGTKRekeyStatus;
/* wake reason types */
typedef enum
{
WLAN_HAL_WAKE_REASON_NONE = 0,
WLAN_HAL_WAKE_REASON_MAGIC_PACKET = 1, /* magic packet match */
WLAN_HAL_WAKE_REASON_PATTERN_MATCH = 2, /* host defined pattern match */
WLAN_HAL_WAKE_REASON_EAPID_PACKET = 3, /* EAP-ID frame detected */
WLAN_HAL_WAKE_REASON_EAPOL4WAY_PACKET = 4, /* start of EAPOL 4-way handshake detected */
WLAN_HAL_WAKE_REASON_NETSCAN_OFFL_MATCH = 5, /* network scan offload match */
WLAN_HAL_WAKE_REASON_GTK_REKEY_STATUS = 6, /* GTK rekey status wakeup (see status) */
WLAN_HAL_WAKE_REASON_BSS_CONN_LOST = 7, /* BSS connection lost */
} tWakeReasonType;
/*
Wake Packet which is saved at tWakeReasonParams.DataStart
This data is sent for any wake reasons that involve a packet-based wakeup :
WLAN_HAL_WAKE_REASON_TYPE_MAGIC_PACKET
WLAN_HAL_WAKE_REASON_TYPE_PATTERN_MATCH
WLAN_HAL_WAKE_REASON_TYPE_EAPID_PACKET
WLAN_HAL_WAKE_REASON_TYPE_EAPOL4WAY_PACKET
WLAN_HAL_WAKE_REASON_TYPE_GTK_REKEY_STATUS
The information is provided to the host for auditing and debug purposes
*/
/*
Wake reason indication parameters
*/
typedef PACKED_PRE struct PACKED_POST
{
uint32 ulReason; /* see tWakeReasonType */
uint32 ulReasonArg; /* argument specific to the reason type */
uint32 ulStoredDataLen; /* length of optional data stored in this message, in case
HAL truncates the data (i.e. data packets) this length
will be less than the actual length */
uint32 ulActualDataLen; /* actual length of data */
uint8 aDataStart[1]; /* variable length start of data (length == storedDataLen)
see specific wake type */
} tWakeReasonParams, *tpWakeReasonParams;
/*
Wake reason indication
*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tWakeReasonParams wakeReasonParams;
tANI_U32 uBssIdx : 8;
tANI_U32 bReserved : 24;
} tHalWakeReasonInd, *tpHalWakeReasonInd;
/*---------------------------------------------------------------------------
* WLAN_HAL_GTK_OFFLOAD_REQ
*--------------------------------------------------------------------------*/
#define HAL_GTK_KEK_BYTES 16
#define HAL_GTK_KCK_BYTES 16
#define WLAN_HAL_GTK_OFFLOAD_FLAGS_DISABLE (1 << 0)
#define GTK_SET_BSS_KEY_TAG 0x1234AA55
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 ulFlags; /* optional flags */
tANI_U8 aKCK[HAL_GTK_KCK_BYTES]; /* Key confirmation key */
tANI_U8 aKEK[HAL_GTK_KEK_BYTES]; /* key encryption key */
tANI_U64 ullKeyReplayCounter; /* replay counter */
tANI_U8 bssIdx;
} tHalGtkOffloadReqParams, *tpHalGtkOffloadReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalGtkOffloadReqParams gtkOffloadReqParams;
} tHalGtkOffloadReqMsg, *tpHalGtkOffloadReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GTK_OFFLOAD_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 ulStatus; /* success or failure */
tANI_U8 bssIdx;
} tHalGtkOffloadRspParams, *tpHalGtkOffloadRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalGtkOffloadRspParams gtkOffloadRspParams;
} tHalGtkOffloadRspMsg, *tpHalGtkOffloadRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GTK_OFFLOAD_GETINFO_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssIdx;
} tHalGtkOffloadGetInfoReqParams, *tptHalGtkOffloadGetInfoReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalGtkOffloadGetInfoReqParams gtkOffloadGetInfoReqParams;
} tHalGtkOffloadGetInfoReqMsg, *tpHalGtkOffloadGetInfoReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GTK_OFFLOAD_GETINFO_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 ulStatus; /* success or failure */
tANI_U32 ulLastRekeyStatus; /* last rekey status when the rekey was offloaded */
tANI_U64 ullKeyReplayCounter; /* current replay counter value */
tANI_U32 ulTotalRekeyCount; /* total rekey attempts */
tANI_U32 ulGTKRekeyCount; /* successful GTK rekeys */
tANI_U32 ulIGTKRekeyCount; /* successful iGTK rekeys */
tANI_U8 bssIdx;
} tHalGtkOffloadGetInfoRspParams, *tptHalGtkOffloadGetInfoRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalGtkOffloadGetInfoRspParams gtkOffloadGetInfoRspParams;
} tHalGtkOffloadGetInfoRspMsg, *tpHalGtkOffloadGetInfoRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DHCP_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*Indicates the device mode which indicates about the DHCP activity */
tANI_U8 device_mode;
tSirMacAddr macAddr;
} tDHCPInfo, *tpDHCPInfo;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tANI_U32 status; /* success or failure */
} tDHCPIndStatus, *tpDHCPIndstatus;
/*
Thermal Mitigation mode of operation.
HAL_THERMAL_MITIGATION_MODE_0 - Based on AMPDU disabling aggregation
HAL_THERMAL_MITIGATION_MODE_1 - Based on AMPDU disabling aggregation and
reducing transmit power
HAL_THERMAL_MITIGATION_MODE_2 - Not supported
*/
typedef enum
{
HAL_THERMAL_MITIGATION_MODE_INVALID = -1,
HAL_THERMAL_MITIGATION_MODE_0,
HAL_THERMAL_MITIGATION_MODE_1,
HAL_THERMAL_MITIGATION_MODE_2,
HAL_THERMAL_MITIGATION_MODE_MAX = WLAN_HAL_MAX_ENUM_SIZE,
}tHalThermalMitigationModeType;
//typedef tANI_S16 tHalThermalMitigationModeType;
/*
Thermal Mitigation level.
Note the levels are incremental i.e HAL_THERMAL_MITIGATION_LEVEL_2 =
HAL_THERMAL_MITIGATION_LEVEL_0 + HAL_THERMAL_MITIGATION_LEVEL_1
HAL_THERMAL_MITIGATION_LEVEL_0 - lowest level of thermal mitigation. This
level indicates normal mode of operation
HAL_THERMAL_MITIGATION_LEVEL_1 - 1st level of thermal mitigation
HAL_THERMAL_MITIGATION_LEVEL_2 - 2nd level of thermal mitigation
HAL_THERMAL_MITIGATION_LEVEL_3 - 3rd level of thermal mitigation
HAL_THERMAL_MITIGATION_LEVEL_4 - 4th level of thermal mitigation
*/
typedef enum
{
HAL_THERMAL_MITIGATION_LEVEL_INVALID = -1,
HAL_THERMAL_MITIGATION_LEVEL_0,
HAL_THERMAL_MITIGATION_LEVEL_1,
HAL_THERMAL_MITIGATION_LEVEL_2,
HAL_THERMAL_MITIGATION_LEVEL_3,
HAL_THERMAL_MITIGATION_LEVEL_4,
HAL_THERMAL_MITIGATION_LEVEL_MAX = WLAN_HAL_MAX_ENUM_SIZE,
}tHalThermalMitigationLevelType;
//typedef tANI_S16 tHalThermalMitigationLevelType;
typedef PACKED_PRE struct PACKED_POST
{
/* Thermal Mitigation Operation Mode */
tHalThermalMitigationModeType thermalMitMode;
/* Thermal Mitigation Level */
tHalThermalMitigationLevelType thermalMitLevel;
}tSetThermalMitgationType, *tpSetThermalMitgationType;
/* WLAN_HAL_SET_THERMAL_MITIGATION_REQ */
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetThermalMitgationType thermalMitParams;
} tSetThermalMitigationReqMsg, *tpSetThermalMitigationReqMsg;
typedef PACKED_PRE struct PACKED_POST{
tHalMsgHeader header;
/*status of the request */
tANI_U32 status;
} tSetThermalMitigationResp, *tpSetThermalMitigationResp;
/* Per STA Class B Statistics. Class B statistics are STA TX/RX stats
provided to FW from Host via periodic messages */
typedef PACKED_PRE struct PACKED_POST {
/* TX stats */
uint32 txBytesPushed;
uint32 txPacketsPushed;
/* RX stats */
uint32 rxBytesRcvd;
uint32 rxPacketsRcvd;
uint32 rxTimeTotal;
} tStaStatsClassB, *tpStaStatsClassB;
typedef PACKED_PRE struct PACKED_POST {
/* Duration over which this stats was collected */
tANI_U32 duration;
/* Per STA Stats */
tStaStatsClassB staStatsClassB[HAL_NUM_STA];
} tStatsClassBIndParams, *tpStatsClassBIndParams;
typedef PACKED_PRE struct PACKED_POST {
tHalMsgHeader header;
/* Class B Stats */
tStatsClassBIndParams statsClassBIndParams;
} tStatsClassBInd, *tpStatsClassBInd;
/*Wifi Proximity paramters in AP mode*/
#ifdef FEATURE_WIFI_PROXIMITY
typedef PACKED_PRE struct PACKED_POST{
tANI_U8 wifiProximityChannel;
tANI_U32 wifiProximityDuration;
tANI_U32 wifiProximityInterval;
tANI_U32 wifiProximityMode;
tANI_U32 wifiProximityStatus;
tSirMacAddr bssId;
tSirMacSSid ssId;
} tSetWifiProximityReqParam, *tpSetWifiProximityReqParam;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetWifiProximityReqParam wifiProximityReqParams;
}tSetWifiProximityReqMsg, *tpSetWifiProximityReqMsg;
/*WLAN_HAL_WIFI_PROXIMITY_RSP*/
typedef PACKED_PRE struct PACKED_POST{
tHalMsgHeader header;
/*status of the request */
tANI_U32 status;
} tSetWifiProximityRspMsg, *tpSetWifiProxmityRspMsg;
#endif
#ifdef FEATURE_SPECULATIVE_PS_POLL
/*---------------------------------------------------------------------------
* WLAN_HAL_START_SPECULATIVE_PS_POLLS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssIdx;
tANI_U16 serviceInterval;
tANI_U16 suspendInterval;
tANI_U8 acMask;
} tHalStartSpecPsPollReqParams, *tpHalStartSpecPsPollReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStartSpecPsPollReqParams specPsPollReq;
} tHalStartSpecPsPollReqMsg, *tpHalStartSpecPsPollReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_START_SPECULATIVE_PS_POLLS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
tANI_U8 bssIdx;
} tHalStartSpecPsPollRspParams, *tpHalStartSpecPsPollRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStartSpecPsPollRspParams startSpecPsPollRspParams;
} tHalStartSpecPsPollRspMsg, *tpHalStartSpecPsPollRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_STOP_SPECULATIVE_PS_POLLS_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tANI_U8 bssIdx;
} tHalStopSpecPsPollsIndMsg, *tpHalStopSpecPsPollsIndMsg;
#endif
#ifdef FEATURE_WLAN_TDLS
#define HAL_MAX_SUPP_CHANNELS 128
#define HAL_MAX_SUPP_OPER_CLASSES 32
/*---------------------------------------------------------------------------
* WLAN_HAL_TDLS_LINK_ESTABLISHED_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*STA Index*/
tANI_U16 staIdx;
/* if this is 1, self is initiator and peer is reponder */
tANI_U8 bIsResponder;
/* QoS Info */
tANI_U8 acVOUAPSDFlag:1;
tANI_U8 acVIUAPSDFlag:1;
tANI_U8 acBKUAPSDFlag:1;
tANI_U8 acBEUAPSDFlag:1;
tANI_U8 aAck:1;
tANI_U8 maxServicePeriodLength:2;
tANI_U8 moreDataAck:1;
/*TDLS Peer U-APSD Buffer STA Support*/
tANI_U8 TPUBufferStaSupport;
/*TDLS off channel related params */
tANI_U8 tdlsOffChannelSupport;
tANI_U8 peerCurrOperClass;
tANI_U8 selfCurrOperClass;
tANI_U8 validChannelsLen;
tANI_U8 validChannels[HAL_MAX_SUPP_CHANNELS];
tANI_U8 validOperClassesLen;
tANI_U8 validOperClasses[HAL_MAX_SUPP_OPER_CLASSES];
}tTDLSLinkEstablishedType, *tpTDLSLinkEstablishedType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTDLSLinkEstablishedType tdlsLinkEstablishedParams;
} tTDLSLinkEstablishedReqMsg, *tpTDLSLinkEstablishedReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_TDLS_LINK_ESTABLISHED_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
/*STA Index*/
tANI_U16 staIdx;
} tTDLSLinkEstablishedResp, *tpTDLSLinkEstablishedResp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTDLSLinkEstablishedResp TDLSLinkEstablishedRespParams;
} tTDLSLinkEstablishedRespMsg, *tpTDLSLinkEstablishedRespMsg;
/*---------------------------------------------------------------------------
+ * WLAN_HAL_TDLS_CHAN_SWITCH_REQ
+ *-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*STA Index*/
tANI_U16 staIdx;
/* if this is 1, self is initiator otherwise responder only*/
tANI_U8 isOffchannelInitiator;
/*TDLS off channel related params */
tANI_U8 targetOperClass;
tANI_U8 targetChannel;
tANI_U8 secondaryChannelOffset;
tANI_U8 reserved[32];
}tTDLSChanSwitchReqType, *tpTDLSChanSwitchReqType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTDLSChanSwitchReqType tdlsChanSwitchParams;
} tTDLSChanSwitchReqMsg, *tpTDLSChanSwitchReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_TDLS_CHAN_SWITCH_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
/*STA Index*/
tANI_U16 staIdx;
} tTDLSChanSwitchResp, *tpTDLSChanSwitchResp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTDLSChanSwitchResp tdlsChanSwitchRespParams;
} tTDLSChanSwitchRespMsg, *tpTDLSChanSwitchRespMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_TDLS_LINK_TEARDOWN_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/*STA Index*/
tANI_U16 staIdx;
}tTDLSLinkTeardownType, *tpTDLSLinkTeardownType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTDLSLinkTeardownType tdlsLinkTeardownParams;
} tTDLSLinkTeardownReqMsg, *tpTDLSLinkTeardownReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_TDLS_LINK_TEARDOWN_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
/*STA Index*/
tANI_U16 staIdx;
} tTDLSLinkTeardownResp, *tpTDLSLinkTeardownResp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTDLSLinkTeardownResp TDLSLinkTeardownRespParams;
} tTDLSLinkTeardownRespMsg, *tpTDLSLinkTeardownRespMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_TDLS_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U16 assocId;
tANI_U16 staIdx;
tANI_U16 status;
tANI_U16 reasonCode;
}tTdlsIndParams, *tpTdlsIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTdlsIndParams tdlsIndParams;
}tTdlsIndMsg, *tpTdlsIndMsg;
#endif
/*---------------------------------------------------------------------------
*WLAN_HAL_IBSS_PEER_INACTIVITY_IND
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssIdx;
tANI_U8 staIdx;
tSirMacAddr staAddr;
}tIbssPeerInactivityIndParams, *tpIbssPeerInactivityIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tIbssPeerInactivityIndParams ibssPeerInactivityIndParams;
}tIbssPeerInactivityIndMsg, *tpIbssPeerInactivityIndMsg;
/*********** Scan Offload Related Structures *************/
#define HAL_NUM_SCAN_SSID 10
#define HAL_NUM_SCAN_BSSID 4
/*
* Enumetation to indicate scan type (active/passive)
*/
typedef enum
{
eSIR_PASSIVE_SCAN,
eSIR_ACTIVE_SCAN = WLAN_HAL_MAX_ENUM_SIZE,
} tSirScanType;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 numBssid;
tSirMacAddr bssid[HAL_NUM_SCAN_BSSID];
tANI_U8 numSsid;
tSirMacSSid ssid[HAL_NUM_SCAN_SSID];
tANI_BOOLEAN hiddenSsid;
tSirMacAddr selfMacAddr;
tSirBssType bssType;
tSirScanType scanType;
tANI_U32 minChannelTime;
tANI_U32 maxChannelTime;
tANI_BOOLEAN p2pSearch;
tANI_U8 channelCount;
tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
tANI_U16 ieFieldLen;
tANI_U8 ieField[1];
}tScanOffloadReqType, *tpScanOffloadReqType;
/*---------------------------------------------------------------------------
* WLAN_HAL_START_SCAN_OFFLOAD_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tScanOffloadReqType scanOffloadParams;
} tHalStartScanOffloadReqMsg, *tpHalStartScanOffloadReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_START_SCAN_OFFLOAD_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
/*status of the request - just to indicate SO has acknowledged
* * the request and will start scanning*/
tANI_U32 status;
} tHalStartScanOffloadRspMsg, *tpHalStartScanOffloadRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_STOP_SCAN_OFFLOAD_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
} tHalStopScanOffloadReqMsg, *tpHalStopScanOffloadReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_STOP_SCAN_OFFLOAD_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
/*status of the request - just to indicate SO has acknowledged
the request and will start scanning*/
tANI_U32 status;
} tHalStopScanOffloadRspMsg, *tpHalStopScanOffloadRspMsg;
/*
* Enumetation of scan events indicated by firmware to the host
*/
typedef enum
{
WLAN_HAL_SCAN_EVENT_STARTED = 0x1, /* Scan command accepted by FW */
WLAN_HAL_SCAN_EVENT_COMPLETED = 0x2, /* Scan has been completed by FW */
WLAN_HAL_SCAN_EVENT_BSS_CHANNEL = 0x4, /* FW is going to move to HOME channel */
WLAN_HAL_SCAN_EVENT_FOREIGN_CHANNEL = 0x8,/* FW is going to move to FORIEGN channel */
WLAN_HAL_SCAN_EVENT_DEQUEUED = 0x10, /* scan request got dequeued */
WLAN_HAL_SCAN_EVENT_PREEMPTED = 0x20, /* preempted by other high priority scan */
WLAN_HAL_SCAN_EVENT_START_FAILED = 0x40, /* scan start failed */
WLAN_HAL_SCAN_EVENT_RESTARTED = 0x80, /*scan restarted*/
WLAN_HAL_SCAN_EVENT_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tScanEventType;
typedef PACKED_PRE struct PACKED_POST
{
tScanEventType event;
tANI_U32 channel;
tANI_U32 scanId;
} tScanOffloadEventInfo;
/*---------------------------------------------------------------------------
* WLAN_HAL_OFFLOAD_SCAN_EVENT_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tScanOffloadEventInfo scanOffloadInd;
} tHalScanOffloadIndMsg, *tpHalScanOffloadIndMsg;
typedef PACKED_PRE struct PACKED_POST {
/** primary 20 MHz channel frequency in mhz */
tANI_U32 mhz;
/** Center frequency 1 in MHz*/
tANI_U32 band_center_freq1;
/** Center frequency 2 in MHz - valid only for 11acvht 80plus80 mode*/
tANI_U32 band_center_freq2;
/* The first 26 bits are a bit mask to indicate any channel flags,
(see WLAN_HAL_CHAN_FLAG*)
The last 6 bits indicate the mode (see tChannelPhyModeType)*/
tANI_U32 channel_info;
/** contains min power, max power, reg power and reg class id. */
tANI_U32 reg_info_1;
/** contains antennamax */
tANI_U32 reg_info_2;
} tUpdateChannelParam;
typedef enum {
WLAN_HAL_MODE_11A = 0, /* 11a Mode */
WLAN_HAL_MODE_11G = 1, /* 11b/g Mode */
WLAN_HAL_MODE_11B = 2, /* 11b Mode */
WLAN_HAL_MODE_11GONLY = 3, /* 11g only Mode */
WLAN_HAL_MODE_11NA_HT20 = 4, /* 11a HT20 mode */
WLAN_HAL_MODE_11NG_HT20 = 5, /* 11g HT20 mode */
WLAN_HAL_MODE_11NA_HT40 = 6, /* 11a HT40 mode */
WLAN_HAL_MODE_11NG_HT40 = 7, /* 11g HT40 mode */
WLAN_HAL_MODE_11AC_VHT20 = 8,
WLAN_HAL_MODE_11AC_VHT40 = 9,
WLAN_HAL_MODE_11AC_VHT80 = 10,
WLAN_HAL_MODE_11AC_VHT20_2G = 11,
WLAN_HAL_MODE_11AC_VHT40_2G = 12,
WLAN_HAL_MODE_11AC_VHT80_2G = 13,
WLAN_HAL_MODE_UNKNOWN = 14,
} tChannelPhyModeType;
#define WLAN_HAL_CHAN_FLAG_HT40_PLUS 6
#define WLAN_HAL_CHAN_FLAG_PASSIVE 7
#define WLAN_HAL_CHAN_ADHOC_ALLOWED 8
#define WLAN_HAL_CHAN_AP_DISABLED 9
#define WLAN_HAL_CHAN_FLAG_DFS 10
#define WLAN_HAL_CHAN_FLAG_ALLOW_HT 11 /* HT is allowed on this channel */
#define WLAN_HAL_CHAN_FLAG_ALLOW_VHT 12 /* VHT is allowed on this channel */
#define WLAN_HAL_CHAN_CHANGE_CAUSE_CSA 13 /* Indicate reason for channel switch */
#define WLAN_HAL_SET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) do { \
(pwlan_hal_update_channel)->info |= (1 << flag); \
} while(0)
#define WLAN_HAL_GET_CHANNEL_FLAG(pwlan_hal_update_channel,flag) \
(((pwlan_hal_update_channel)->info & (1 << flag)) >> flag)
#define WLAN_HAL_SET_CHANNEL_MIN_POWER(pwlan_hal_update_channel,val) do { \
(pwlan_hal_update_channel)->reg_info_1 &= 0xffffff00; \
(pwlan_hal_update_channel)->reg_info_1 |= (val&0xff); \
} while(0)
#define WLAN_HAL_GET_CHANNEL_MIN_POWER(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_1 & 0xff )
#define WLAN_HAL_SET_CHANNEL_MAX_POWER(pwlan_hal_update_channel,val) do { \
(pwlan_hal_update_channel)->reg_info_1 &= 0xffff00ff; \
(pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 8); \
} while(0)
#define WLAN_HAL_GET_CHANNEL_MAX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 8) & 0xff )
#define WLAN_HAL_SET_CHANNEL_REG_POWER(pwlan_hal_update_channel,val) do { \
(pwlan_hal_update_channel)->reg_info_1 &= 0xff00ffff; \
(pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 16); \
} while(0)
#define WLAN_HAL_GET_CHANNEL_REG_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 16) & 0xff )
#define WLAN_HAL_SET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel,val) do { \
(pwlan_hal_update_channel)->reg_info_1 &= 0x00ffffff; \
(pwlan_hal_update_channel)->reg_info_1 |= ((val&0xff) << 24); \
} while(0)
#define WLAN_HAL_GET_CHANNEL_REG_CLASSID(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_1) >> 24) & 0xff )
#define WLAN_HAL_SET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel,val) do { \
(pwlan_hal_update_channel)->reg_info_2 &= 0xffffff00; \
(pwlan_hal_update_channel)->reg_info_2 |= (val&0xff); \
} while(0)
#define WLAN_HAL_GET_CHANNEL_ANTENNA_MAX(pwlan_hal_update_channel) ((pwlan_hal_update_channel)->reg_info_2 & 0xff )
#define WLAN_HAL_SET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel,val) do { \
(pwlan_hal_update_channel)->reg_info_2 &= 0xffff00ff; \
(pwlan_hal_update_channel)->reg_info_2 |= ((val&0xff)<<8); \
} while(0)
#define WLAN_HAL_GET_CHANNEL_MAX_TX_POWER(pwlan_hal_update_channel) ( (((pwlan_hal_update_channel)->reg_info_2)>>8) & 0xff )
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 numChan;
tUpdateChannelParam chanParam[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
} tUpdateChannelReqType;
/*---------------------------------------------------------------------------
* WLAN_HAL_UPDATE_CHANNEL_LIST_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tUpdateChannelReqType updateChannelParams;
} tHalUpdateChannelReqMsg, *tpHalUpdateChannelReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_UPDATE_CHANNEL_LIST_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
/*status of the request - just to indicate SO has acknowledged
* * the request and will start scanning*/
tANI_U32 status;
} tHalUpdateChannelRspMsg, *tpHalUpdateChannelRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_RMC_RULER_REQ
*-------------------------------------------------------------------------*/
#define HAL_MAX_RMC_SESSIONS 2
#define HAL_NUM_MAX_RULERS 8
typedef enum
{
WLAN_HAL_SUGGEST_RULER,
WLAN_HAL_BECOME_RULER,
WLAN_HAL_RULER_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
}tRulerReqCmdType, tRulerRspCmdType;
typedef PACKED_PRE struct PACKED_POST
{
tRulerReqCmdType cmd;
/* MAC address of MCAST Transmitter (source) */
tSirMacAddr mcastTransmitter;
/* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
tSirMacAddr mcastGroup;
/* Optional black list for cmd = WLAN_HAL_SUGGEST_RULER */
tSirMacAddr blacklist[HAL_NUM_MAX_RULERS];
} tHalRmcRulerReqParams, *tpHalRmcRulerReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRmcRulerReqParams rulerReqParams;
} tHalRmcRulerReqMsg, *tpHalRmcRulerReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_RMC_RULER_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* success or failure */
tANI_U32 status;
/* Command Type */
tRulerRspCmdType cmd;
/* MAC address of MCAST Transmitter (source) */
tSirMacAddr mcastTransmitter;
/* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
tSirMacAddr mcastGroup;
/* List of candidates for cmd = WLAN_HAL_SUGGEST_RULER*/
tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
} tHalRmcRulerRspParams, *tpHalRmcRulerRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRmcRulerRspParams rulerRspParams;
} tHalRmcRulerRspMsg, *tpHalRmcRulerRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_RMC_UPDATE_IND
*-------------------------------------------------------------------------*/
typedef enum
{
WLAN_HAL_RULER_ACCEPTED, //Host-->FW
WLAN_HAL_RULER_CANCELED, //Host-->FW
WLAN_HAL_RULER_PICK_NEW, //FW-->Host
WLAN_HAL_RULER_IND_MAX = WLAN_HAL_MAX_ENUM_SIZE
}tRmcUpdateIndType;
typedef enum
{
WLAN_HAL_RMC_RULER_ROLE,
WLAN_HAL_RMC_TRANSMITTER_ROLE,
WLAN_HAL_RMC_ROLE_MAX = WLAN_HAL_MAX_ENUM_SIZE
}tRmcRoleType;
typedef PACKED_PRE struct PACKED_POST
{
tRmcUpdateIndType indication;
/* Role of the entity generating this indication */
tRmcRoleType role;
/* MAC address of MCAST Transmitter (source) */
tSirMacAddr mcastTransmitter;
/* MAC Address of Multicast Group (01-00-5E-xx-xx-xx) */
tSirMacAddr mcastGroup;
tSirMacAddr mcastRuler;
/* Candidate list for indication = WLAN_HAL_RULER_PICK_NEW */
tSirMacAddr ruler[HAL_NUM_MAX_RULERS];
} tHalRmcUpdateIndParams, *tpHalRmcUpdateIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRmcUpdateIndParams rulerIndParams;
} tHalRmcUpdateInd, *tpHalRmcUpdateInd;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 staIdx; // Station Idx;
tANI_U32 txRate; // Legacy transmit rate, in units of 500 kbit/sec,
// for the most recently transmitted frame
tANI_U32 mcsIndex; // mcs index for HT20 and HT40 rates
tANI_U32 txRateFlags; // to differentiate between HT20 and
// HT40 rates; short and long guard interval
tANI_S8 rssi; // RSSI of the last received beacon
}tHalIbssPeerParams, *tpHalIbssPeerParams;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status; // success or failure
tANI_U8 numOfPeers; // Number of Peers for
// which stats are being reported
tHalIbssPeerParams ibssPeerParams[1]; // Stats of peer in IBSS
}tHalIbssPeerInfoRspParams, *tpHalIbssPeerInfoRspParams;
// WLAN_HAL_GET_IBSS_PEER_INFO_RSP
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalIbssPeerInfoRspParams ibssPeerInfoRspParams;
}tHalIbssPeerInfoRsp, *tpHalIbssPeerInfoRsp;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssIdx; // Bss Index
tANI_BOOLEAN allPeerInfoReqd; // If set, all IBSS peers stats are reported
tANI_U8 staIdx; // If allPeerInfoReqd is not set,
// only stats of peer with
// staIdx is reported
}tHalIbssPeerInfoReqParams, *tpHalIbssPeerInfoReqParams;
// WLAN_HAL_GET_IBSS_PEER_INFO_REQ
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalIbssPeerInfoReqParams ibssPeerInfoReqParams;
}tHalIbssPeerInfoReq, *tpHalIbssPeerInfoReq;
/*---------------------------------------------------------------------------
* WLAN_HAL_ROAM_OFFLOAD_SYNCH_IND
*-------------------------------------------------------------------------*/
typedef enum
{
/* reassociation is done, but couldn't finish security handshake */
WLAN_HAL_ROAM_AUTH_STATUS_CONNECTED = 1,
/* roam has successfully completed by firmware */
WLAN_HAL_ROAM_AUTH_STATUS_AUTHENTICATED = 2,
/* UNKONW error */
WLAN_HAL_ROAM_AUTH_STATUS_UNKONWN = WLAN_HAL_MAX_ENUM_SIZE
}tHalRoamOffloadRoamAuthStatus;
typedef enum
{
WLAN_HAL_ROAM_TYPE_WPA_PSK,
WLAN_HAL_ROAM_TYPE_WPA2_PSK,
WLAN_HAL_ROAM_TYPE_OKC,
WLAN_HAL_ROAM_TYPE_CCKM,
WLAN_HAL_ROAM_TYPE_FT,
WLAN_HAL_ROAM_TYPE_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tHalRoamOffloadType;
typedef PACKED_PRE struct PACKED_POST
{
/* Offset of beacon / probe resp in this structure. Offset from the starting of the message */
tANI_U16 beaconProbeRespOffset;
/* Length of beaon / probe resp. */
tANI_U16 beaconProbeRespLength;
/* Offset of reassoc resp in this structure. Offset from the starting of the message */
tANI_U16 reassocRespOffset;
/* Length of reassoc resp. */
tANI_U16 reassocRespLength;
/* 0 for probe response frame, 1 for beacon frame, */
tANI_U8 isBeacon;
/* staIdx of old AP */
tANI_U8 oldStaIdx;
/* note : from bssIdx field to txMgmtPower are exactly mapped to
tConfigBssRspParams */
/* bssIdx of new roamed AP */
tANI_U8 bssIdx;
/* DPU descriptor index for PTK */
tANI_U8 dpuDescIndx;
/* PTK DPU signature */
tANI_U8 ucastDpuSignature;
/* DPU descriptor index for GTK*/
tANI_U8 bcastDpuDescIndx;
/* GTK DPU signature */
tANI_U8 bcastDpuSignature;
/*DPU descriptor for IGTK*/
tANI_U8 mgmtDpuDescIndx;
/* IGTK DPU signature */
tANI_U8 mgmtDpuSignature;
/* Station Index for BSS entry*/
tANI_U8 staIdx;
/* Self station index for this BSS */
tANI_U8 selfStaIdx;
/* Bcast station for buffering bcast frames in AP role */
tANI_U8 bcastStaIdx;
/* MAC address of roamed AP */
tSirMacAddr bssid;
/*HAL fills in the tx power used for mgmt frames in this field. */
tANI_S8 txMgmtPower;
/* success or failure */
tHalRoamOffloadRoamAuthStatus authStatus;
/* TODO : add more info as needed */
/* beaconProbeRespOffset points to starting of beacon/probe resp frame */
/* Beacon or probe resp from new AP. This is in 802.11
frame format starting with MAC header. */
/* Up to beaconProbeRespLength */
/* reassocRespOffset points to starting of reassoc resp frame */
/* Reassoc resp from new AP. This is in 802.11
frame format starting with MAC header. */
/* Up to reassocRespLength */
} tHalRoamOffloadSynchIndParams, *tpHalRoamOffloadSynchIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRoamOffloadSynchIndParams params;
} tHalRoamOffloadSynchInd, *tpHalRoamOffloadSynchInd;
/*---------------------------------------------------------------------------
* WLAN_HAL_ROAM_OFFLOAD_SYNCH_CNF
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* MAC address of new AP indicated by FW in RoamOffloadSynchInd */
tSirMacAddr bssid;
} tHalRoamOffloadSynchCnfParams, *tpHalRoamOffloadSynchCnfParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRoamOffloadSynchCnfParams params;
} tHalRoamOffloadSynchCnfMsg, *tpHalRoamOffloadSynchCnfMsg;
/*---------------------------------------------------------------------------
WLAN_HAL_RATE_UPDATE_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* 0 implies UCAST RA, positive value implies fixed rate, -1 implies ignore this param */
tANI_S32 ucastDataRate; //unit Mbpsx10
/* TX flag to differentiate between HT20, HT40 etc */
tTxRateInfoFlags ucastDataRateTxFlag;
/* BSSID - Optional. 00-00-00-00-00-00 implies apply to all BCAST STAs */
tSirMacAddr bssid;
/* 0 implies MCAST RA, positive value implies fixed rate, -1 implies ignore */
tANI_S32 rmcDataRate; //unit Mbpsx10
/* TX flag to differentiate between HT20, HT40 etc */
tTxRateInfoFlags rmcDataRateTxFlag;
/* Default (non-RMC) MCAST(or BCAST) fixed rate in 2.4 GHz, 0 implies ignore */
tANI_U32 mcastDataRate24GHz; //unit Mbpsx10
/* TX flag to differentiate between HT20, HT40 etc */
tTxRateInfoFlags mcastDataRate24GHzTxFlag;
/* Default (non-RMC) MCAST(or BCAST) fixed rate in 5 GHz, 0 implies ignore */
tANI_U32 mcastDataRate5GHz; //unit Mbpsx10
/* TX flag to differentiate between HT20, HT40 etc */
tTxRateInfoFlags mcastDataRate5GHzTxFlag;
} tHalRateUpdateParams, *tpHalRateUpdateParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRateUpdateParams halRateUpdateParams;
} tHalRateUpdateInd, * tpHalRateUpdateInd;
/*---------------------------------------------------------------------------
* WLAN_HAL_TX_FAIL_IND
*--------------------------------------------------------------------------*/
// Northbound indication from FW to host on weak link detection
typedef PACKED_PRE struct PACKED_POST
{
// Sequence number increases by 1 whenever the device driver
// sends a notification event. This is cleared as 0 when the
// JOIN IBSS commamd is issued
tANI_U16 seqNo;
tANI_U16 staId;
tANI_U8 macAddr[HAL_MAC_ADDR_LEN];
} tHalTXFailIndParams, *tpHalTXFailIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalTXFailIndParams txFailIndParams;
} tHalTXFailIndMsg, *tpHalTXFailIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_TX_FAIL_MONITOR_IND
*--------------------------------------------------------------------------*/
// Southbound message from Host to monitor the Tx failures
typedef PACKED_PRE struct PACKED_POST
{
// tx_fail_count = 0 should disable the TX Fail monitor, non-zero value should enable it.
tANI_U8 tx_fail_count;
} tTXFailMonitorInfo, *tpTXFailMonitorInfo;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tTXFailMonitorInfo txFailMonitor;
} tTXFailMonitorInd, *tpTXFailMonitorInd;
/*---------------------------------------------------------------------------
* WLAN_HAL_AVOID_FREQ_RANGE_IND
*-------------------------------------------------------------------------*/
#define WLAN_HAL_MAX_AVOID_FREQ_RANGE 15
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 startFreq;
tANI_U32 endFreq;
} tHalFreqRange, *tpHalFreqRange;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 avoidCnt;
tHalFreqRange avoidRange[WLAN_HAL_MAX_AVOID_FREQ_RANGE];
} tHalAvoidFreqRangeIndParams, *tpHalAvoidFreqRangeIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalAvoidFreqRangeIndParams freqRangeIndParams;
} tHalAvoidFreqRangeInd, *tpHalAvoidFreqRangeInd;
/*---------------------------------------------------------------------------
* WLAN_HAL_START_HT40_OBSS_SCAN_IND
*-------------------------------------------------------------------------*/
typedef enum
{
WLAN_HAL_HT40_OBSS_SCAN_PARAM_START,
WLAN_HAL_HT40_OBSS_SCAN_PARAM_UPDATE,
WLAN_HAL_HT40_OBSS_SCAN_CMD_MAX = WLAN_HAL_MAX_ENUM_SIZE
}tHT40OBssScanCmdType;
typedef PACKED_PRE struct PACKED_POST
{
tHT40OBssScanCmdType cmdType;
tSirScanType scanType;
tANI_U16 OBSSScanPassiveDwellTime; // In TUs
tANI_U16 OBSSScanActiveDwellTime; // In TUs
tANI_U16 BSSChannelWidthTriggerScanInterval; // In seconds
tANI_U16 OBSSScanPassiveTotalPerChannel; // In TUs
tANI_U16 OBSSScanActiveTotalPerChannel; // In TUs
tANI_U16 BSSWidthChannelTransitionDelayFactor;
tANI_U16 OBSSScanActivityThreshold;
tANI_U8 selfStaIdx;
tANI_U8 bssIdx;
tANI_U8 fortyMHZIntolerent;
tANI_U8 channelCount;
tANI_U8 channels[WLAN_HAL_ROAM_SCAN_MAX_CHANNELS];
tANI_U8 currentOperatingClass;
tANI_U16 ieFieldLen;
tANI_U8 ieField[WLAN_HAL_PNO_MAX_PROBE_SIZE];
}tHT40ObssScanIndType, *tpHT40ObssScanIndType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHT40ObssScanIndType scanHT40ObssScanParams;
} tHalStartHT40ObssScanIndMsg, *tpHalStartHT40ObssScanIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_STOP_HT40_OBSS_SCAN_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tANI_U8 bssIdx;
} tHalStopHT40OBSSScanIndMsg, *tpHalStopHT40OBSSScanIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GET_BCN_MISS_RATE_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Valid BSS Idx for beacon miss rate */
tANI_U8 bssIdx;
}tHalBcnMissRateReqParams, *tpHalBcnMissRateReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalBcnMissRateReqParams bcnMissRateReqParams;
} tHalBcnMissRateReqMsg, *tpHalBcnMissRateReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GET_BCN_MISS_RATE_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
tANI_U32 bcnMissCnt;
}tHalBcnMissRateRspParams, *tpHalBcnMissRateRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalBcnMissRateRspParams bcnMissRateRspParams;
}tHalBcnMissRateRspMsg, *tpHalBcnMissRateRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_ALLOWED_ACTION_FRAMES_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 actionFramesBitMask;
tANI_U32 reserved;
}tHalAllowedActionFrames, *tpHalAllowedActionFrames;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalAllowedActionFrames allowedActionFrames;
}tHalAllowedActionFramesReqInd, *tpHalAllowedActionFramesReqInd;
/*----------------------------------------------------------------
WLAN_HAL_VOWIFI_IND
-----------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* 0 implies VoWifi call ended, 1 implies VoWifi call started */
tANI_U8 enable;
} tHalVoWiFiIndParams, *tpHalVoWiFiIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalVoWiFiIndParams voWiFiIndParams;
} tHalVoWiFiInd, * tpHalVoWiFiInd;
/*----------------------------------------------------------------
WLAN_HAL_QPOWER
-----------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 enable;
} tHalQpowerParams, *tpHalQpowerParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalQpowerParams qpowerParams;
} tHalQpower, * tpHalQpower;
/*--------------------------------------------------------------------------
* WLAN_HAL_LL_SET_STATS_REQ
*---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 req_id;
tANI_U8 sta_id;
tANI_U32 mpdu_size_threshold; // threshold to classify the pkts as short or long
tANI_U32 aggressive_statistics_gathering; // set for field debug mode. Driver should collect all statistics regardless of performance impact.
} tHalMacLlSetStatsReqParams, *tpHalMacLlSetStatsReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalMacLlSetStatsReqParams LlSetStatsReqParams;
} tHalMacLlSetStatsReq, *tpHalMacLlSetStatsReq;
/*---------------------------------------------------------------------------
WLAN_HAL_LL_SET_STATS_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
tANI_U32 resp_id;
tANI_U8 iface_id;
} tHalMacLlSetStatsRspParams, *tpHalMacLlSetStatsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalMacLlSetStatsRspParams LlSetStatsRspParams;
} tHalMacLlSetStatsRsp, *tpHalMacLlSetStatsRsp;
/*---------------------------------------------------------------------------
WLAN_HAL_LL_GET_STATS_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 req_id;
tANI_U8 sta_id;
tANI_U32 param_id_mask;
} tHalMacLlGetStatsReqParams, *tpHalMacLlGetStatsReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalMacLlGetStatsReqParams LlGetStatsReqParams;
} tHalMacLlGetStatsReq, *tpHalMacLlGetStatsReq;
/*---------------------------------------------------------------------------
WLAN_HAL_LL_GET_STATS_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
tANI_U32 resp_id;
tANI_U8 iface_id;
} tHalMacLlGetStatsRspParams, *tpHalMacLlGetStatsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalMacLlGetStatsRspParams LlGetStatsRspParams;
} tHalMacLlGetStatsRsp, *tpHalMacLlGetStatsRsp;
/*---------------------------------------------------------------------------
WLAN_HAL_LL_CLEAR_STATS_REQ
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 req_id;
tANI_U8 sta_id;
tANI_U32 stats_clear_req_mask;
tANI_U8 stop_req;
} tHalMacLlClearStatsReqParams, *tpHalMacLlClearStatsReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalMacLlClearStatsReqParams LlClearStatsReqParams;
} tHalMacLlClearStatsReq, *tpHalMacLlClearStatsReq;
/*---------------------------------------------------------------------------
WLAN_HAL_LL_CLEAR_STATS_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
tANI_U8 sta_id;
tANI_U32 resp_id;
tANI_U32 stats_clear_rsp_mask;
tANI_U8 stop_req_status;
} tHalMacLlClearStatsRspParams, *tpHalMacLlClearStatsRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalMacLlClearStatsRspParams LlClearStatsRspParams;
} tHalMacLlClearStatsRsp, *tpHalMacLlClearStatsRsp;
/*---------------------------------------------------------------------------
WLAN_HAL_LL_NOTIFY_STATS
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tANI_U32 param_id;
tANI_U8 iface_id;
tANI_U32 resp_id;
tANI_U32 more_result_to_follow;
tANI_U8 result[1];
} tHalMacLlNotifyStats, *tpHalMacLlNotifyStats;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_START_REQ
*-------------------------------------------------------------------------*/
typedef enum
{
EXT_SCAN_CHANNEL_BAND_UNSPECIFIED = 0x0000,
EXT_SCAN_CHANNEL_BAND_BG = 0x0001, // 2.4 GHz
EXT_SCAN_CHANNEL_BAND_A = 0x0002, // 5 GHz without DFS
EXT_SCAN_CHANNEL_BAND_A_DFS = 0x0004, // 5 GHz DFS only
EXT_SCAN_CHANNEL_BAND_A_WITH_DFS = 0x0006, // 5 GHz with DFS
EXT_SCAN_CHANNEL_BAND_ABG = 0x0003, // 2.4 GHz + 5 GHz; no DFS
EXT_SCAN_CHANNEL_BAND_ABG_WITH_DFS = 0x0007, // 2.4 GHz + 5 GHz with DFS
EXT_SCAN_CHANNEL_BAND_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tExtScanChannelBandMask;
#define WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS 8
#define WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN 32
#define WLAN_HAL_EXT_SCAN_FLAG_INTERRUPTED 1
#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_BUFFER_FULL 0
#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_EACH_SCAN 1
#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_FULL_RESULTS 2
#define WLAN_HAL_EXT_SCAN_REPORT_EVENTS_NO_BATCH 4
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 channel; // frequency
tANI_U32 dwellTimeMs; // dwell time hint
tANI_U8 passive; // 0 => active,
// 1 => passive scan; ignored for DFS
}tExtScanChannelSpec, *tpExtScanChannelSpec;
typedef PACKED_PRE struct PACKED_POST
{
/* bucket index, 0 based */
tANI_U8 bucketId;
/* when equal to EXT_SCAN_CHANNEL_BAND_UNSPECIFIED, use channel list */
tExtScanChannelBandMask channelBand;
/* period (milliseconds) for each bucket defines the periodicity of bucket */
tANI_U32 period;
/* This is a bit field; which defines following bits -
* REPORT_EVENTS_BUFFER_FULL => report only when scan history
is % full
* REPORT_EVENTS_EACH_SCAN => report a scan completion event
after scan
* REPORT_EVENTS_FULL_RESULTS => forward scan results
(beacons/probe responses + IEs) in real time to HAL, in addition
to completion events
Note: To keep backward compatibility, fire completion events
regardless of REPORT_EVENTS_EACH_SCAN.
* REPORT_EVENTS_NO_BATCH => controls batching,
0 => batching, 1 => no batching
*/
tANI_U8 reportEvents;
/* number of channels */
tANI_U8 numChannels;
// new Exponential Scan params
tANI_U32 max_period;
tANI_U32 exponent;
tANI_U32 step_count;
/* if channels to scan. In the TLV channelList[] */
tExtScanChannelSpec channelList[WLAN_HAL_EXT_SCAN_MAX_CHANNELS];
}tExtScanBucketData, *tpExtScanBucketData;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U8 sessionId;
/* Base period (milliseconds) used by scan buckets to define periodicity
of the scans */
tANI_U32 basePeriod;
/* number of APs to store in each scan in the BSSID/RSSI history buffer
(keep the most significant, i.e. stronger RSSI) */
tANI_U32 maxApPerScan;
/* in %, when buffer is this much full, wake up host */
tANI_U32 reportThresholdPercent;
/* in number of scans, wake up AP after these many scans */
tANI_U32 reportThresholdNumScans;
/* This will be off channel minimum time */
tANI_U16 neighborScanChannelMinTime;
/* This will be out off channel max time */
tANI_U16 neighborScanChannelMaxTime;
/* This will be the home (BSS) channel time */
tANI_U16 homeAwayTime;
/* number of buckets (maximum 8) */
tANI_U8 numBuckets;
/* Buckets data */
tExtScanBucketData bucketData[WLAN_HAL_EXT_SCAN_MAX_BUCKETS];
} tHalExtScanStartReq, *tpHalExtScanStartReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExtScanStartReq extScanStartReq;
}tHalExtScanStartReqMsg, *tpHalExtScanStartReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_START_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U32 status;
}tHalExtScanStartRsp, *tpHalExtScanStartRsp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExtScanStartRsp extScanStartRsp;
}tHalExtScanStartRspMsg, *tpHalExtScanStartRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_GET_CAP_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U8 sessionId;
}tHalExtScanGetCapReq, *tpHalExtScanGetCapReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExtScanGetCapReq extScanGetCapReq;
}tHalExtScanGetCapReqMsg, *tpHalExtScanGetCapReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_GET_CAP_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U32 status;
tANI_U32 scanCacheSize;
tANI_U32 scanBuckets;
tANI_U32 maxApPerScan;
tANI_U32 maxRssiSampleSize;
tANI_U32 maxScanReportingThreshold;
tANI_U32 maxHotlistAPs;
tANI_U32 maxHotlistSSIDs;
tANI_U32 maxBssidHistoryEntries;
}tHalExtScanGetCapRsp, *tpHalExtScanGetCapRsp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExtScanGetCapRsp extScanGetCapRsp;
}tHalExtScanGetCapRspMsg, *tpHalExtScanGetCapRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_GET_SCAN_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U8 sessionId;
/*
* 1 return cached results and flush it
* 0 return cached results and do not flush
*/
tANI_BOOLEAN flush;
}tHalExtScanGetScanReq, *tpHalExtScanGetScanReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExtScanGetScanReq getScanReq;
}tHalExtScanGetScanReqMsg, *tpHalExtScanGetScanReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_GET_SCAN_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U32 status;
}tHalExtScanGetScanRsp, *tpHalExtScanGetScanRsp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExtScanGetScanRsp getScanRsp;
}tHalExtScanGetScanRspMsg, *tpHalExtScanGetScanRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_RESULT_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U64 ts; // time of discovery
tANI_U8 ssid[32+1]; // null terminated SSID
tSirMacAddr bssid; // BSSID
tANI_U32 channel; // channel frequency in MHz
tANI_S32 rssi; // RSSI in dBm
tANI_U32 rtt; // RTT in nanoseconds - not expected
tANI_U32 rttSd; // standard deviation in rtt - not expected
tANI_U16 beaconPeriod; // period advertised in the beacon
tANI_U16 capability; // capabilities advertised in the beacon
tANI_U16 ieLength; // size of the ie_data blob
tANI_U8 ieData[1]; // blob of all the information elements found in the beacon
} tHalExtScanResultParams, *tpHalExtScanResultParams;
/* Get the GSCAN cached scan results */
typedef struct {
tANI_U16 scan_id; // a unique identifier for the scan unit
tANI_U8 flags; // a bitmask with additional
// information about scan
tANI_U8 num_results; // number of bssids retrieved by the scan
tHalExtScanResultParams results[WLAN_HAL_EXT_SCAN_MAX_AP_CACHE_PER_SCAN];
// scan results - one for each bssid
} tHalExtScanCachedResultParams, *tpHalExtScanCachedResultParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tANI_U32 requestId;
tANI_U32 scanResultSize;
tANI_BOOLEAN moreData;
tANI_U8 extScanResult[1];
}tHalExtScanResultIndMsg, *tpHalExtScanResultIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_STOP_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U8 sessionId;
}tHalExtScanStopReq, *tpHalExtScanStopReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExtScanStopReq extScanStopReq;
}tHalExtScanStopReqMsg, *tpHalExtScanStopReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_STOP_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U32 status;
}tHalExtScanStopRsp, *tpHalExtScanStopRsp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExtScanStopRsp extScanStopRsp;
}tHalExtScanStopRspMsg, *tpHalExtScanStopRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_PROGRESS_IND
*-------------------------------------------------------------------------*/
typedef enum
{
WLAN_HAL_EXT_SCAN_BUFFER_FULL,
WLAN_HAL_EXT_SCAN_COMPLETE,
WLAN_HAL_EXT_SCAN_MAX = WLAN_HAL_MAX_ENUM_SIZE
} tHalExtScanProgressEventType;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U32 status;
tHalExtScanProgressEventType extScanEventType;
}tHalExtScanProgressInd, *tpHalExtScanProgressInd;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExtScanProgressInd extScanProgressInd;
}tHalExtScanProgressIndMsg, *tpHalExtScanProgressIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_EXT_SCAN_RESULT_AVAILABLE_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U32 numOfScanResAvailable;
}tHalExtScanResAvailableInd, tpHalExtScanResAvailableInd;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalExtScanResAvailableInd extScanResAvailableInd;
}tHalExtScanResAvailableIndMsg, *tpHalExtScanResAvailableIndMsg;
typedef PACKED_PRE struct PACKED_POST
{
/* AP BSSID */
tSirMacAddr bssid;
/* low threshold - used in L for significant_change - not used in L for
hotlist*/
tANI_S32 lowRssiThreshold;
/* high threshold - used in L for significant rssi - used in L for hotlist */
tANI_S32 highRssiThreshold;
} tApThresholdParams, *tpApThresholdParams;
/*---------------------------------------------------------------------------
* WLAN_HAL_BSSID_HOTLIST_SET_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U8 sessionId;
tANI_U32 lostBssidSampleSize;
// number of hotlist APs
tANI_U32 numBssid;
// hotlist APs
tApThresholdParams ap[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_APS];
} tHalBssidHotlistSetReq, *tpHalBssidHotlistSetReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalBssidHotlistSetReq bssidHotlistSetReq;
}tHalHotlistSetReqMsg, *tpHalHotlistSetReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_BSSID_HOTLIST_SET_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U32 status;
}tHalHotlistSetRsp, *tpHalHotlistSetRsp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalHotlistSetRsp hotlistSetRsp;
}tHalHotlistSetRspMsg, *tpHalHotlistSetRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_BSSID_HOTLIST_RESET_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
}tHalHotlistResetReq, *tpHalHotlistResetReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalHotlistResetReq hotlistResetReq;
}tHalHotlistResetReqMsg, *tpHalHotlistResetReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_BSSID_HOTLIST_RESET_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U32 status;
}tHalHotlistResetRsp, *tpHalHotlistResetRsp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalHotlistResetRsp hotlistResetRsp;
}tHalHotlistResetRspMsg, *tpHalHotlistResetRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_BSSID_HOTLIST_RESULT_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tANI_U32 requestId;
tANI_U32 numHotlistBss;
tANI_BOOLEAN moreData;
tANI_U8 bssHotlist[1];
}tHalHotlistResultIndMsg, *tpHalHotlistResultIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SSID_HOTLIST_SET_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* SSID */
char ssid [32+1];
/* low threshold - used in L for significant_change - not used in L for
hotlist*/
tANI_S32 lowRssiThreshold;
/* high threshold - used in L for significant rssi - used in L for hotlist */
tANI_S32 highRssiThreshold;
/* band */
tANI_U32 band;
} tSsidThresholdParams, *tpSsidThresholdParams;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U8 sessionId;
tANI_U32 lostSsidSampleSize;
// number of hotlist SSIDs
tANI_U32 numSsid;
// hotlist SSIDs
tSsidThresholdParams ssid[WLAN_HAL_EXT_SCAN_MAX_HOTLIST_SSIDS];
} tHalSsidHotlistSetReq, *tpHalSsidHotlistSetReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalSsidHotlistSetReq ssidHotlistSetReq;
}tHalSsidHotlistSetReqMsg, *tpHalSsidHotlistSetReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SSID_HOTLIST_SET_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U32 status;
}tHalSsidHotlistSetRsp, *tpHalSsidHotlistSetRsp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalSsidHotlistSetRsp hotlistSetRsp;
}tHalSsidHotlistSetRspMsg, *tpHalSsidHotlistSetRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SSID_HOTLIST_RESET_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
}tHalSsidHotlistResetReq, *tpHalSsidHotlistResetReq;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalSsidHotlistResetReq hotlistResetReq;
}tHalSsidHotlistResetReqMsg, *tpHalSsidHotlistResetReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SSID_HOTLIST_RESET_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 requestId;
tANI_U32 status;
}tHalSsidHotlistResetRsp, *tpHalSsidHotlistResetRsp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalSsidHotlistResetRsp hotlistResetRsp;
}tHalSsidHotlistResetRspMsg, *tpHalSsidHotlistResetRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SSID_HOTLIST_RESULT_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tANI_U32 requestId;
tANI_BOOLEAN ssid_found;
tANI_U32 numHotlistSsid;
tANI_BOOLEAN moreData;
tANI_U8 ssidHotlist[1]; // pointer to list of type tHalExtScanResultParams
}tHalSsidHotlistResultIndMsg, *tpHalSsidHotlistResultIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_HIGH_PRIORITY_DATA_INFO_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_BOOLEAN pause; // 1 -> pause, 0 -> unpause
tANI_U32 reserved; //reserved for future use
}tHalHighPriorityDataInfoInd, *tpHalHighPriorityDataInfoInd;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalHighPriorityDataInfoInd highPriorityDataInfoInd;
}tHalHighPriorityDataInfoIndMsg, *tpHalHighPriorityDataInfoIndMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_MAC_SPOOFED_SCAN_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 macAddr[6];
tANI_U32 reserved1;
tANI_U32 reserved2;
}tMacSpoofedScanReqType, * tpMacSpoofedScanReqType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tMacSpoofedScanReqType tMacSpoofedScanReqParams;
} tMacSpoofedScanReqMsg, * tpMacSpoofedScanReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_MAC_SPOOFED_SCAN_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
tANI_U32 reserved1;
} tMacSpoofedScanResp, * tpMacSpoofedScanResp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tMacSpoofedScanResp tMacSpoofedScanRespParams;
} tMacSpoofedScanRespMsg, * tpMacSpoofedScanRespMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_GET_FRAME_LOG_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 flags;
}tGetFrameLogReqType, * tpGetFrameLogReqType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tGetFrameLogReqType tGetFrameLogReqParams;
} tGetFrameLogReqMsg, * tpGetFrameLogReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_GET_FRAME_LOG_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
} tGetFrameLogResp, * tpGetFrameLogResp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tGetFrameLogResp tGetFrameLogRespParams;
} tGetFrameLogRespMsg, * tpGetFrameLogRespMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_FATAL_EVENT_LOGGING_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 reasonCode;
}tHalFatalEventLoggingReqParams, *tpHalFatalEventLoggingReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalFatalEventLoggingReqParams tFatalEventLoggingReqParams;
}tHalFatalEventLoggingReqMsg, *tpHalFatalEventLoggingReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_FATAL_EVENT_LOGGING_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{ tANI_U32 status;
}tHalFatalEventLoggingRspParams, *tpHalFatalEventLoggingRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalFatalEventLoggingRspParams tFatalEventLoggingRspParams;
}tHalFatalEventLoggingRspMsg, *tpHalFatalEventLoggingRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_LOST_LINK_PARAMETERS_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bssIdx;
tANI_U8 rssi;
tSirMacAddr selfMacAddr;
tANI_U32 linkFlCnt;
tANI_U32 linkFlTx;
tANI_U32 lastDataRate;
tANI_U32 rsvd1;
tANI_U32 rsvd2;
}tHalLostLinkParametersIndParams, *tpHalLostLinkParametersIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalLostLinkParametersIndParams lostLinkParameters;
}tHalLostLinkParametersIndMsg, *tpHalLostLinkParametersIndMsg;
/*---------------------------------------------------------------------------
*WLAN_HAL_FW_LOGGING_INIT_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* BIT0 - enable frame logging
* BIT1 - enableBMUHWtracing
* BIT2 - enableQXDMlogging
* BIT3 - enableUElogDpuTxp
*/
tANI_U8 enableFlag;
tANI_U8 frameType;
tANI_U8 frameSize;
tANI_U8 bufferMode;
/* Host mem address to be used as logmailbox */
tANI_U64 logMailBoxAddr;
/* firmware will wakeup the host to send logs always */
tANI_U8 continuousFrameLogging;
/* Logging mail box version */
tANI_U8 logMailBoxVer;
/* Max ring size in firmware to log msgs when host is suspended state */
tANI_U8 maxLogBuffSize;
/* when firmware log reaches this threshold and
* if host is awake it will push the logs.
*/
tANI_U8 minLogBuffSize;
/* Reserved for future purpose */
tANI_U32 reserved0;
tANI_U32 reserved1;
tANI_U32 reserved2;
}tFWLoggingInitReqType, * tpFWLoggingInitReqType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tFWLoggingInitReqType tFWLoggingInitReqParams;
} tHalFWLoggingInitReqMsg, * tpHalFWLoggingInitReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_FW_LOGGING_INIT_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
/* FW mail box address */
tANI_U64 logMailBoxAddr;
/* Logging mail box version */
tANI_U8 logMailBoxVer;
/* Qshrink is enabled */
tANI_BOOLEAN logCompressEnabled;
/* fw_dump_max_size is used to tell fwr mem dump size */
tANI_U32 fw_dump_max_size;
/* Reserved for future purpose */
tANI_U32 reserved1;
tANI_U32 reserved2;
} tFWLoggingInitResp, * tpFWLoggingInitResp;
typedef PACKED_PRE struct PACKED_POST {
tANI_U32 request_id;
tSirMacAddr bssId;
tANI_S8 min_rssi;
tANI_S8 max_rssi;
} tHalStartRssiMonitoringReqParams, * tpHalStartRssiMonitoringReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStartRssiMonitoringReqParams startRssiMonitoringReqParams;
}tHalStartRssimonitoringReq, * tpHalStartRssimonitoringReq;
//Following structure will be used for WLAN_HAL_START_RSSI_MONITORING_RSP
typedef PACKED_PRE struct PACKED_POST {
tANI_U32 request_id;
tANI_U32 status;
} tHalStartRssimonitoringRspParams, * tpHalStartRssimonitoringRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStartRssimonitoringRspParams startRssimonitoringRspParams;
}tHalStartRssimonitoringRsp, * tpHalStartRssimonitoringRsp;
//Following structures will be used for WLAN_HAL_RSSI_MONITORING_IND
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 request_id;
tSirMacAddr bssId;
tANI_S8 rssi;
} tHalRssiMonitorIndParams, * tpHalRssiMonitorIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalRssiMonitorIndParams RssiMonitorIndParams;
}tHalRssiMonitorInd, * tpHalRssiMonitorInd;
//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_REQ
typedef PACKED_PRE struct PACKED_POST {
tANI_U32 request_id;
tSirMacAddr bssId;
} tHalStopRssiMonitoringParams, * tpHalStopRssiMonitoringParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStopRssiMonitoringParams stopRssiMonitoringParams;
}tHalStopRssimonitoringReq, * tpHalStopRssimonitoringReq;
//Following structures will be used for WLAN_HAL_STOP_RSSI_MONITORING_RSP
typedef PACKED_PRE struct PACKED_POST {
tANI_U32 request_id;
tANI_U32 status;
} tHalStopRssimonitoringRspParams, * tpHalStopRssimonitoringRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStopRssimonitoringRspParams stopRssimonitoringRspParams;
}tHalStopRssimonitoringRsp, * tpHalStopRssimonitoringRsp;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tFWLoggingInitResp tFWLoggingInitRespParams;
} tFWLoggingInitRespMsg, * tpFWLoggingInitRespMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_PER_ROAM_CONFIG_REQ
*---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST {
tANI_U32 request_id;
tANI_U32 isPERRoamCCAEnabled;
tANI_U32 rateUpThreshold;
tANI_U32 rateDownThreshold;
tANI_U32 waitPeriodForNextPERScan;
tANI_U32 PERtimerThreshold;
tANI_U32 PERroamTriggerPercent;
tANI_S16 PERRoamFullScanThreshold;
tANI_U16 reserved;
} tPerRoamConfigParams, * tpPerRoamConfigParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tPerRoamConfigParams perRoamConfigParams;
} tSetPerRoamConfigReq, * tpSetPerRoamConfigReq;
/*---------------------------------------------------------------------------
* WLAN_HAL_SET_PER_ROAM_CONFIG_RSP
*---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Success or Failure */
tANI_U32 status;
} tConfigPerRoamRspParams, * tpConfigPerRoamRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tConfigPerRoamRspParams configPerRoamRspParams;
} tSetPerRoamConfigRsp, * tpSetPerRoamConfigRsp;
/*---------------------------------------------------------------------------
* WLAN_HAL_PER_ROAM_SCAN_TRIGGER_REQ
*---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST {
bool roamScanReq;
} tStartRoamScanTriggerParams, * tpStartRoamScanTriggerParams;
typedef PACKED_PRE struct PACKED_POST {
tHalMsgHeader header;
tStartRoamScanTriggerParams startRoamScanTriggerParams;
} tStartRoamScanReq, *tpStartRoamScanReq;
/*---------------------------------------------------------------------------
* WLAN_HAL_PER_ROAM_SCAN_TRIGGER_RSP
*---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Success /Failure / Nil result */
tANI_U32 status;
} tConfigRoamScanRspParams, * tpConfigRoamScanRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tConfigRoamScanRspParams configRoamScanRspParams;
} tSetRoamScanConfigRsp, * tpSetRoamScanConfigRsp;
/*---------------------------------------------------------------------------
* WLAN_HAL_CAPTURE_GET_TSF_TSTAMP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
uint8 uBssIdx;
boolean capTSFget;
}tHalCapTSFget, *tptHalCapTSFget;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalCapTSFget capTSFget;
}tHalCapTSFgetReqInd, *tpHalCapTSFgetReqInd;
/*---------------------------------------------------------------------------
WLAN_HAL_CAPTURE_GET_TSF_TSTAMP_RSP
---------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
/* Success /Failure / Nil result */
tANI_U32 status;
tANI_U32 tsf_lo;
tANI_U32 tsf_hi;
} tConfigcapTSFgetRspParams, * tptConfigcapTSFgetRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tConfigcapTSFgetRspParams configcapTSFgetRspParams;
} tcapGetTSFConfigRsp, * tpcapGetTSFConfigRsp;
#define PER_ROAM_MAX_AP_CNT 30
#define PER_ROAM_MAX_CANDIDATE_CNT 15
/* Candidate Information to be shared in the Candidate Indication,
* similar to what is sent in legacy roaming with following additional info
*/
typedef PACKED_PRE struct PACKED_POST {
tANI_U8 channelNumber;
tANI_U8 channelCCA;
tANI_U8 otherApCount;
tANI_S8 otherApRssi[PER_ROAM_MAX_AP_CNT];
} tCandidateChannelInfo, * tpCandidateChannelInfo;
typedef PACKED_PRE struct PACKED_POST {
tANI_U32 candidateCount;
tCandidateChannelInfo channelInfo[PER_ROAM_MAX_CANDIDATE_CNT];
} tPerRoamScanResult, * tpPerRoamScanResult;
/*---------------------------------------------------------------------------
* WLAN_HAL_FW_LOGGING_DXE_DONE_IND
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U16 status;
tANI_U16 doneIndicationForSource;
tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
} tFWLoggingDxeDoneInd, * tpFWLoggingDxeDoneInd;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tFWLoggingDxeDoneInd tFWLoggingDxeDoneIndParams;
} tFWLoggingDxeDoneIndMsg, * tpFWLoggingDxeDoneIndMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_APFIND_CMDID
* ---------------------------------------------------------------------------*/
#define MAX_ARRAY_SIZE 1000
typedef PACKED_PRE struct PACKED_POST
{
tANI_U16 msg_version:4;
tANI_U16 msg_id:12;
tANI_U16 msg_len:16;
tANI_U16 handle;
tANI_U16 transaction_id;
} tApfindMsgHeader, *tpApfindMsgHeader;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U16 type;
tANI_U16 length;
tANI_U8* value;
} tApfindTlv, *tpApfindTlv;
typedef PACKED_PRE struct PACKED_POST
{
tApfindMsgHeader apFindHeader;
tANI_U8 ptlv[MAX_ARRAY_SIZE];
} tQRFPrefNetwListParams, *tpQRFPrefNetwListParams;
typedef enum
{
APFIND_MSG_ID_ERROR_RSP = 0,
APFIND_MSG_ID_ENABLE_REQ = 1,
APFIND_MSG_ID_SET_SSID = 2,
APFIND_MSG_ID_SET_MAC = 3,
APFIND_MSG_ID_SET_PARAMS = 4,
} tApfindMsgId;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tQRFPrefNetwListParams qRFprefNetwListParams;
} tQRFSetPrefNetwListReq, *tpQRFSetPrefNetwListReq;
#define QRF_MAX_SUPPORTED_NETWORKS 10
typedef PACKED_PRE struct PACKED_POST {
/*Network that was found with the highest RSSI*/
tSirMacSSid ssId;
/*Indicates the RSSI */
tANI_U8 rssi;
/* The MPDU frame length of a beacon or probe rsp.
* data is the start of the frame
*/
tANI_U16 frameLength;
} tQrfNetwFoundParam, *tpQrfNetwFoundParam;
typedef PACKED_PRE struct PACKED_POST {
uint8 netwCount;
tQrfNetwFoundParam qrfNetwParams[QRF_MAX_SUPPORTED_NETWORKS];
} tQrfPrefNetwFoundParams, * tpQrfPrefNetwFoundParams;
/*
* Preferred network found indication
*/
typedef PACKED_PRE struct PACKED_POST {
tHalMsgHeader header;
tQrfPrefNetwFoundParams qrfPrefNetwFoundParams;
} tQrfPrefNetwFoundInd, *tpQrfPrefNetwFoundInd;
/*---------------------------------------------------------------------------
* Logging mail box structure
*-------------------------------------------------------------------------*/
#define MAILBOX_VERSION_V1 0x1
typedef PACKED_PRE struct PACKED_POST
{
/* Logging mail box version */
tANI_U8 logMbVersion;
/* Current logging buffer address */
tANI_U64 logBuffAddress[MAX_NUM_OF_BUFFER];
/* Current logging buffer length */
tANI_U32 logBuffLength[MAX_NUM_OF_BUFFER];
/* Flush reason code 0: Host requested Non zero FW FATAL event*/
tANI_U16 reasonCode;
/* Log type i.e. Mgmt frame = 0, QXDM = 1, FW Mem dump = 2 */
tANI_U8 logType;
/* Indicate if Last segment of log is received*/
tANI_BOOLEAN done;
}tLoggingMailBox, *tpLoggingMailBox;
/*---------------------------------------------------------------------------
*WLAN_HAL_FW_MEMORY_DUMP_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 reserved;
}tHalFwMemoryDumpReqType, * tpHalFwMemoryDumpReqType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalFwMemoryDumpReqType tFwMemoryDumpReqParam;
} tHalFwMemoryDumpReqMsg, * tpHalFwMemoryDumpReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_FW_MEMORY_DUMP_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
} tHalFwMemoryDumpRespType, * tpHalFwMemoryDumpRespType;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalFwMemoryDumpRespType tFwMemoryDumpResp;
} tHalFwMemoryDumpRespMsg, * tpHalFwMemoryDumpRespMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENABLE_MONITOR_MODE_REQ
*-------------------------------------------------------------------------*/
/* only 1 filter is supported as of now */
#define NUM_FILTERS_SUPPORTED 1
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr macAddr;
tANI_U8 isA1filteringNeeded;
tANI_U8 isA2filteringNeeded;
tANI_U8 isA3filteringNeeded;
}tHalMacFilter, *tpHalMacFilter;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 channelNumber;
ePhyChanBondState cbState;
tANI_U32 maxAmpduLen;
tANI_U32 maxMpduInAmpduLen;
tANI_U8 crcCheckEnabled;
/* value is "1" for this FR. "0" means no filter, RECEIVE ALL PACKETS */
tANI_U8 numMacFilters;
tHalMacFilter macFilters[NUM_FILTERS_SUPPORTED];
/* Each bit position maps to IEEE convention of typeSubtype */
tANI_U64 typeSubtypeBitmap;
tANI_U64 reserved;
}tHalEnableMonitorModeReqParams, *tpHalEnableMonitorModeReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalEnableMonitorModeReqParams enableMonitorModeReqParams;
}tHalEnableMonitorModeReqMsg, *tpHalEnableMonitorModeReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ENABLE_MONITOR_MODE_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
}tHalEnableMonitorModeRspParams, *tpHalEnableMonitorModeRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalEnableMonitorModeRspParams enableMonitorModeRspParams;
}tHalEnableMonitorModeRspMsg, *tpHalEnableMonitorModeRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DISABLE_MONITOR_MODE_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tANI_U8 resetConfiguration;
}tHalDisableMonitorModeReqMsg, *tpHalDisableMonitorModeReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_DISABLE_MONITOR_MODE_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
}tHalDisableMonitorModeRspParams, *tpHalDisableMonitorModeRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalDisableMonitorModeRspParams disableMonitorModeRspParams;
}tHalDisableMonitorModeRspMsg, *tpHalDisableMonitorModeRspMsg;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 status;
}tHalAvoidFreqRangeCtrlParam, *tpHalAvoidFreqRangeCtrlParam;
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 paramType;
tANI_U32 paramValue;
tSirMacAddr bssid;
} tSetWifiConfigParams, *tpSetWifiConfigParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSetWifiConfigParams wifiConfigParams;
} tSetWifiConfigParamsReq, *tpSetWifiConfigParamsReq;
typedef PACKED_PRE struct PACKED_POST {
tANI_U32 status;
} tHalSetWifiConfigRspParams, * tpHalSetWifiConfigRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalSetWifiConfigRspParams setWifiConfigRspParams;
} tHalSetWifiConfigRsp, *tpHalSetWifiConfigRsp;
/*---------------------------------------------------------------------------
* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_REQ
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 reserved;
} tHalAntennaDiversitySelectionReqParams, *tpHalAntennaDiversitySelectionReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalAntennaDiversitySelectionReqParams AntDivSelReqParams;
}tHalAntennaDiversitySelectionReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_ANTENNA_DIVERSITY_SELECTION_RSP
*-------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U16 status;
tANI_U32 selectedAntennaId;
tANI_U32 reserved;
} tHalAntennaDiversitySelectionRspParams, *tpHalAntennaDiversitySelectionRspParams;
/* WDI_MODIFY_ROAM_PARAMS_IND */
typedef PACKED_PRE struct PACKED_POST {
tANI_U8 param;
tANI_U32 value;
} tHalModifyRoamParamsIndParams, *tpHalModifyRoamParamsIndParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalModifyRoamParamsIndParams modifyRoamParamsReqParams;
} tHalModifyRoamParamsInd, *tpHalModifyRoamParamsInd;
typedef PACKED_PRE struct PACKED_POST
{
tSirMacAddr selfMacAddr;
tANI_U32 enable;
tSirMacSSid ssId;
tANI_U32 rsn_authmode;
tANI_U32 rsn_ucastcipherset;
tANI_U32 rsn_mcastcipherset;
tANI_U32 rsn_mcastmgmtcipherset;
tANI_U32 channel;
tANI_U32 psk_len;
tANI_U8 psk[1];
} tSapOffloadEnableMsg, *tpSapOffloadEnableMsg;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tSapOffloadEnableMsg SapOffloadEnableMsg;
} tHalSapoffloadEnable, *tpHalSapoffloadEnable;
/*---------------------------------------------------------------------------
* WLAN_HAL_DHCP_SERVER_OFFLOAD_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bss_idx;
tANI_U32 enable;
tANI_U32 srv_ipv4; /* server IP */
tANI_U32 start_lsb; /* starting address assigned to client */
tANI_U32 num_client; /* number of clients we support */
} hal_dhcp_srv_offload_req_param_t, *hal_dhcp_srv_offload_req_params;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
hal_dhcp_srv_offload_req_param_t dhcp_srv_offload_req_params;
} hal_dhcp_srv_offload_req_msg_t;
/*---------------------------------------------------------------------------
* WLAN_HAL_DHCP_SERVER_OFFLOAD_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
} hal_dhcp_srv_offload_rsp_param_t, *hal_dhcp_srv_offload_rsp_params;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
hal_dhcp_srv_offload_rsp_param_t dhcp_srv_offload_rsp_params;
} hal_dhcp_srv_offload_rsp_msg_t, *hal_dhcp_srv_offload_rsp_msg;
/*---------------------------------------------------------------------------
* WLAN_HAL_MDNS_ENABLE_OFFLOAD_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bss_idx;
tANI_U32 enable;
} hal_mdns_enable_offload_req_param_t, *hal_mdns_enable_offload_req_params;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
hal_mdns_enable_offload_req_param_t mdns_enable_req_params;
} hal_mdns_enable_offload_req_msg_t;
/*---------------------------------------------------------------------------
* WLAN_HAL_MDNS_ENABLE_OFFLOAD_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
} hal_mdns_enable_offload_rsp_param_t, *hal_mdns_enable_offload_rsp_params;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
hal_mdns_enable_offload_rsp_param_t mdns_enable_rsp_params;
} hal_mdns_enable_offload_rsp_msg_t, *hal_mdns_enable_offload_rsp_msg;
/*---------------------------------------------------------------------------
* WLAN_HAL_MDNS_FQDN_OFFLOAD_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bss_idx;
tANI_U32 type;
tANI_U32 fqdn_len;
tANI_U8 fqdn_data[1];
} hal_mdns_fqdn_offload_req_param_t, *hal_mdns_fqdn_offload_req_params;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
hal_mdns_fqdn_offload_req_param_t mdns_fqdn_req_params;
} hal_mdns_fqdn_offload_req_msg_t;
/*---------------------------------------------------------------------------
* WLAN_HAL_MDNS_FQDN_OFFLOAD_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
} hal_mdns_fqdn_offload_rsp_param_t, *hal_mdns_fqdn_offload_rsp_params;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
hal_mdns_fqdn_offload_rsp_param_t mdns_fqdn_rsp_params;
} hal_mdns_fqdn_offload_rsp_msg_t, *hal_mdns_fqdn_offload_rsp_msg;
/*---------------------------------------------------------------------------
* WLAN_HAL_MDNS_RESP_OFFLOAD_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bss_idx;
tANI_U32 ar_count;
tANI_U32 resp_len;
tANI_U8 resp_data[1];
} hal_mdns_resp_offload_req_param_t, *hal_mdns_resp_offload_req_params;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
hal_mdns_resp_offload_req_param_t mdns_resp_req_params;
} hal_mdns_resp_offload_req_msg_t;
/*---------------------------------------------------------------------------
* WLAN_HAL_MDNS_RESP_OFFLOAD_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
} hal_mdns_resp_offload_rsp_param_t, *hal_mdns_resp_offload_rsp_params;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
hal_mdns_resp_offload_rsp_param_t mdns_rsp_params;
} hal_mdns_resp_offload_rsp_msg_t, *hal_mdns_resp_offload_rsp_msg;
/*---------------------------------------------------------------------------
* WLAN_HAL_MDNS_STATS_OFFLOAD_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bss_idx;
} hal_mdns_stats_offload_req_param_t, *hal_mdns_stats_offload_req_params;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
hal_mdns_stats_offload_req_param_t mdns_stats_req_params;
} hal_mdns_stats_offload_req_msg_t;
/*---------------------------------------------------------------------------
* WLAN_HAL_MDNS_STATS_OFFLOAD_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 bss_idx;
tANI_U32 current_ts;
tANI_U32 last_query_ts;
tANI_U32 last_rsp_ts;
tANI_U32 tot_queries;
tANI_U32 tot_matches;
tANI_U32 tot_rsp;
tANI_U32 status;
} hal_mdns_stats_offload_rsp_param_t, *hal_mdns_stats_offload_rsp_params;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
hal_mdns_stats_offload_rsp_param_t mdns_stats_rsp_params;
} hal_mdns_stats_offload_rsp_msg_t, *hal_mdns_stats_offload_rsp_msg;
/*---------------------------------------------------------------------------
* WLAN_HAL_FW_SET_CLEAR_ARP_STATS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 set_clr; /*1 set and 0 reset*/
tANI_U8 pkt_type; /* Default 1: ARP */
tANI_U32 ip_addr; /*GW ipv4 address */
} tHalStatsArpReqParams, *tpHalStatsArpReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStatsArpReqParams statsArpReqParams;
} tHalStatsArpReqMsg, *tpHalStatsArpReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_FW_SET_CLEAR_ARP_STATS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status; //success or failure
} tHalStatsArpRspParams, *tpHalStatsArpRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStatsArpRspParams statsArpRspParams;
} tHalStatsArpRspMsg, *tpHalStatsArpRspMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_FW_GET_ARP_STATS_REQ
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 pkt_type; /* Furture purpose */
} tHalStatsGetArpReqParams, *tpHalStatsGetArpReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalStatsGetArpReqParams statsGetArpReqParams;
} tHalStatsGetArpReqMsg, *tpHalStatsGetArpReqMsg;
/*---------------------------------------------------------------------------
* WLAN_HAL_FW_GET_ARP_STATS_RSP
*--------------------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
tANI_U16 dad;
tANI_U16 arpReqRcvdInFW;
tANI_U16 ackedArpReqCnt;
tANI_U16 arpRspCnt;
tANI_U8 data[1];
} tdbugArpStatsgetRspParams, *tpdbugArpStatsgetRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tdbugArpStatsgetRspParams fwArpstatsRspParams;
} tHalARPfwStatsRspMsg, *tpHalARPfwStatsRspMsg;
/*----------------------------------------------------------------
* WLAN_HAL_POWER_CONTROL_MODE_CHANGE_REQ
*-----------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U8 enable;
} tHalPowerControlModeChangeReqParams, *tpHalPowerControlModeChangeReqParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalPowerControlModeChangeReqParams pwrCtrlModeChangeReqParams;
} tHalPowerControlModeChangeReqMsg, *tpHalPowerControlModeChangeReqMsg;
/*----------------------------------------------------------------
* WLAN_HAL_POWER_CONTROL_MODE_CHANGE_RSP
*-----------------------------------------------------------------*/
typedef PACKED_PRE struct PACKED_POST
{
tANI_U32 status;
} tHalPowerControlModeChangeRspParams, *tpHalPowerControlModeChangeRspParams;
typedef PACKED_PRE struct PACKED_POST
{
tHalMsgHeader header;
tHalPowerControlModeChangeRspParams pwrCtrlModeChangeRspParams;
} tHalPowerControlModeChangeRspMsg, *tpHalPowerControlModeChangeRspMsg;
#if defined(__ANI_COMPILER_PRAGMA_PACK_STACK)
#pragma pack(pop)
#elif defined(__ANI_COMPILER_PRAGMA_PACK)
#else
#endif
#endif /* _WLAN_HAL_MSG_H_ */