mirror of
https://github.com/nxp-imx/mwifiex.git
synced 2024-10-31 21:15:22 +00:00
983c0739ec
Corresponding firmware version: SDIO-UART W8987 Firmware version 16.92.21.p99.2 PCIE-UART W8997 Firmware version 16.92.21.p84.4 SDIO-UART W8997 Firmware version 16.92.21.p84.4 SDIO-UART IW416 Firmware version 16.92.21.p84.128 SDIO_UART IW612 Firmware version 18.99.2.p66 SDIO-UART W8801 Firmware version 14.92.36.p186 SDIO-UART W9098 Firmware version 17.92.1.p136.131 PCIE-UART W9098 Firmware version 17.92.1.p136.131 Signed-off-by: Sherry Sun <sherry.sun@nxp.com>
8143 lines
248 KiB
C
8143 lines
248 KiB
C
/** @file mlan_fw.h
|
|
*
|
|
* @brief This file contains firmware specific defines.
|
|
* structures and declares global function prototypes used
|
|
* in MLAN module.
|
|
*
|
|
*
|
|
* Copyright 2008-2023 NXP
|
|
*
|
|
* This software file (the File) is distributed by NXP
|
|
* under the terms of the GNU General Public License Version 2, June 1991
|
|
* (the License). You may use, redistribute and/or modify the File in
|
|
* accordance with the terms and conditions of the License, a copy of which
|
|
* is available by writing to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the
|
|
* worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.
|
|
*
|
|
* THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE
|
|
* IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE
|
|
* ARE EXPRESSLY DISCLAIMED. The License provides additional details about
|
|
* this warranty disclaimer.
|
|
*
|
|
*/
|
|
|
|
/******************************************************
|
|
Change log:
|
|
10/27/2008: initial version
|
|
******************************************************/
|
|
|
|
#ifndef _MLAN_FW_H_
|
|
#define _MLAN_FW_H_
|
|
|
|
/** Interface header length */
|
|
#ifdef USB
|
|
#define USB_INTF_HEADER_LEN 0
|
|
#endif /* USB */
|
|
#ifdef SDIO
|
|
#define SDIO_INTF_HEADER_LEN 4
|
|
#endif /* SDIO */
|
|
#ifdef PCIE
|
|
#define PCIE_INTF_HEADER_LEN 4
|
|
#endif /* PCIE */
|
|
|
|
#ifdef PRAGMA_PACK
|
|
#pragma pack(push, 1)
|
|
#endif
|
|
|
|
#define WPA_GCMP_KEY_LEN 32
|
|
|
|
#define WPA_CCMP_256_KEY_LEN 32
|
|
|
|
/** Ethernet header */
|
|
typedef MLAN_PACK_START struct {
|
|
/** Ethernet header destination address */
|
|
t_u8 dest_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** Ethernet header source address */
|
|
t_u8 src_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** Ethernet header length */
|
|
t_u16 h803_len;
|
|
|
|
} MLAN_PACK_END Eth803Hdr_t;
|
|
|
|
/** RFC 1042 header */
|
|
typedef MLAN_PACK_START struct {
|
|
/** LLC DSAP */
|
|
t_u8 llc_dsap;
|
|
/** LLC SSAP */
|
|
t_u8 llc_ssap;
|
|
/** LLC CTRL */
|
|
t_u8 llc_ctrl;
|
|
/** SNAP OUI */
|
|
t_u8 snap_oui[3];
|
|
/** SNAP type */
|
|
t_u16 snap_type;
|
|
|
|
} MLAN_PACK_END Rfc1042Hdr_t;
|
|
|
|
/** Rx packet header */
|
|
typedef MLAN_PACK_START struct {
|
|
/** Etherner header */
|
|
Eth803Hdr_t eth803_hdr;
|
|
/** RFC 1042 header */
|
|
Rfc1042Hdr_t rfc1042_hdr;
|
|
|
|
} MLAN_PACK_END RxPacketHdr_t;
|
|
|
|
/** Rates supported in band B */
|
|
#define B_SUPPORTED_RATES 5
|
|
/** Rates supported in band G */
|
|
#define G_SUPPORTED_RATES 9
|
|
/** Rates supported in band BG */
|
|
#define BG_SUPPORTED_RATES 13
|
|
|
|
/** Setup the number of rates passed in the driver/firmware API */
|
|
#define A_SUPPORTED_RATES 9
|
|
|
|
/** IEEEtypes Data Frame Subtype of QoS pkt */
|
|
#define QOS_DATA 8
|
|
|
|
/** CapInfo Short Slot Time Disabled */
|
|
/* #define SHORT_SLOT_TIME_DISABLED(CapInfo)
|
|
* ((IEEEtypes_CapInfo_t)(CapInfo).short_slot_time = 0) */
|
|
#define SHORT_SLOT_TIME_DISABLED(CapInfo) (CapInfo &= ~MBIT(10))
|
|
/** CapInfo Short Slot Time Enabled */
|
|
#define SHORT_SLOT_TIME_ENABLED(CapInfo) (CapInfo |= MBIT(10))
|
|
/** CapInfo Spectrum Mgmt Disabled */
|
|
#define SPECTRUM_MGMT_DISABLED(CapInfo) (CapInfo &= ~MBIT(8))
|
|
/** CapInfo Spectrum Mgmt Enabled */
|
|
#define SPECTRUM_MGMT_ENABLED(CapInfo) (CapInfo |= MBIT(8))
|
|
/** CapInfo Radio Measurement Disabled */
|
|
#define RADIO_MEASUREMENT_DISABLED(CapInfo) (CapInfo &= ~MBIT(12))
|
|
/** CapInfo Radio Measurement Enabled */
|
|
#define RADIO_MEASUREMENT_ENABLED(CapInfo) (CapInfo |= MBIT(12))
|
|
|
|
/** Setup the number of rates passed in the driver/firmware API */
|
|
#define HOSTCMD_SUPPORTED_RATES 14
|
|
|
|
/** Rates supported in band N */
|
|
#define N_SUPPORTED_RATES 3
|
|
#ifdef STA_SUPPORT
|
|
/** All bands (B, G, N, AAC, GAC) */
|
|
#define ALL_802_11_BANDS \
|
|
(BAND_A | BAND_B | BAND_G | BAND_GN | BAND_AAC | BAND_GAC)
|
|
#else
|
|
/** All bands (B, G, A) */
|
|
#define ALL_802_11_BANDS (BAND_B | BAND_G | BAND_A)
|
|
#endif /* STA_SUPPORT */
|
|
|
|
#ifdef STA_SUPPORT
|
|
/** Firmware multiple bands support */
|
|
#define FW_MULTI_BANDS_SUPPORT \
|
|
(MBIT(8) | MBIT(9) | MBIT(10) | MBIT(11) | MBIT(12) | MBIT(13))
|
|
#else
|
|
/** Firmware multiple bands support */
|
|
#define FW_MULTI_BANDS_SUPPORT (MBIT(8) | MBIT(9) | MBIT(10))
|
|
#endif /* STA_SUPPORT */
|
|
/** Check if multiple bands support is enabled in firmware */
|
|
#define IS_SUPPORT_MULTI_BANDS(_adapter) \
|
|
(_adapter->fw_cap_info & FW_MULTI_BANDS_SUPPORT)
|
|
/** Get default bands of the firmware */
|
|
/* need to shift bit 12 and bit 13 in fw_cap_info from the firmware
|
|
* to bit 13 and 14 for 11ac so that bit 11 is for GN, bit 12 for AN,
|
|
* bit 13 for GAC, and bit 14 for AAC, in order to be compatible with
|
|
* the band capability defined in the driver after right shift of 8 bits */
|
|
#define GET_FW_DEFAULT_BANDS(_adapter) \
|
|
(((((_adapter->fw_cap_info & 0x3000) << 1) | \
|
|
(_adapter->fw_cap_info & ~0xF000)) >> \
|
|
8) & \
|
|
ALL_802_11_BANDS)
|
|
|
|
extern t_u8 SupportedRates_B[B_SUPPORTED_RATES];
|
|
extern t_u8 SupportedRates_G[G_SUPPORTED_RATES];
|
|
extern t_u8 SupportedRates_BG[BG_SUPPORTED_RATES];
|
|
extern t_u8 SupportedRates_A[A_SUPPORTED_RATES];
|
|
extern t_u8 SupportedRates_N[N_SUPPORTED_RATES];
|
|
extern t_u8 AdhocRates_G[G_SUPPORTED_RATES];
|
|
extern t_u8 AdhocRates_B[B_SUPPORTED_RATES];
|
|
extern t_u8 AdhocRates_BG[BG_SUPPORTED_RATES];
|
|
extern t_u8 AdhocRates_A[A_SUPPORTED_RATES];
|
|
|
|
/** Default auto deep sleep mode */
|
|
#define DEFAULT_AUTO_DS_MODE MTRUE
|
|
/** Default power save mode */
|
|
#define DEFAULT_PS_MODE Wlan802_11PowerModePSP
|
|
|
|
/** WEP Key index mask */
|
|
#define HostCmd_WEP_KEY_INDEX_MASK 0x3fff
|
|
/** Length of WEP 40 bit key */
|
|
#define WEP_40_BIT_LEN 5
|
|
/** Length of WEP 104 bit key */
|
|
#define WEP_104_BIT_LEN 13
|
|
|
|
/** Key information enabled */
|
|
#define KEY_INFO_ENABLED 0x01
|
|
/** KEY_TYPE_ID */
|
|
typedef enum _KEY_TYPE_ID {
|
|
/** Key type : WEP */
|
|
KEY_TYPE_ID_WEP = 0,
|
|
/** Key type : TKIP */
|
|
KEY_TYPE_ID_TKIP = 1,
|
|
/** Key type : AES */
|
|
KEY_TYPE_ID_AES = 2,
|
|
KEY_TYPE_ID_WAPI = 3,
|
|
KEY_TYPE_ID_AES_CMAC = 4,
|
|
/** Key type : GCMP */
|
|
KEY_TYPE_ID_GCMP = 5,
|
|
/** Key type : GCMP_256 */
|
|
KEY_TYPE_ID_GCMP_256 = 6,
|
|
/** Key type : CCMP_256 */
|
|
KEY_TYPE_ID_CCMP_256 = 7,
|
|
/** Key type : GMAC_128 */
|
|
KEY_TYPE_ID_BIP_GMAC_128 = 8,
|
|
/** Key type : GMAC_256 */
|
|
KEY_TYPE_ID_BIP_GMAC_256 = 9,
|
|
} KEY_TYPE_ID;
|
|
|
|
/** Key Info flag for multicast key */
|
|
#define KEY_INFO_MCAST_KEY 0x01
|
|
/** Key Info flag for unicast key */
|
|
#define KEY_INFO_UCAST_KEY 0x02
|
|
|
|
/** KEY_INFO_WEP*/
|
|
typedef enum _KEY_INFO_WEP {
|
|
KEY_INFO_WEP_MCAST = 0x01,
|
|
KEY_INFO_WEP_UNICAST = 0x02,
|
|
KEY_INFO_WEP_ENABLED = 0x04
|
|
} KEY_INFO_WEP;
|
|
|
|
/** KEY_INFO_TKIP */
|
|
typedef enum _KEY_INFO_TKIP {
|
|
KEY_INFO_TKIP_MCAST = 0x01,
|
|
KEY_INFO_TKIP_UNICAST = 0x02,
|
|
KEY_INFO_TKIP_ENABLED = 0x04
|
|
} KEY_INFO_TKIP;
|
|
|
|
/** KEY_INFO_AES*/
|
|
typedef enum _KEY_INFO_AES {
|
|
KEY_INFO_AES_MCAST = 0x01,
|
|
KEY_INFO_AES_UNICAST = 0x02,
|
|
KEY_INFO_AES_ENABLED = 0x04,
|
|
KEY_INFO_AES_MCAST_IGTK = 0x400,
|
|
} KEY_INFO_AES;
|
|
|
|
/** WPA AES key length */
|
|
#define WPA_AES_KEY_LEN 16
|
|
/** WPA TKIP key length */
|
|
#define WPA_TKIP_KEY_LEN 32
|
|
/** WPA AES IGTK key length */
|
|
#define CMAC_AES_KEY_LEN 16
|
|
/** IGTK key length */
|
|
#define WPA_IGTK_KEY_LEN 16
|
|
#define WPA_IGTK_256_KEY_LEN 32
|
|
|
|
/** WAPI key length */
|
|
#define WAPI_KEY_LEN 50
|
|
/** KEY_INFO_WAPI*/
|
|
typedef enum _KEY_INFO_WAPI {
|
|
KEY_INFO_WAPI_MCAST = 0x01,
|
|
KEY_INFO_WAPI_UNICAST = 0x02,
|
|
KEY_INFO_WAPI_ENABLED = 0x04
|
|
} KEY_INFO_WAPI;
|
|
|
|
/** Maximum ethernet frame length sans FCS */
|
|
#define MV_ETH_FRAME_LEN 1514
|
|
|
|
#if defined(SDIO) || defined(PCIE)
|
|
/** Length of SNAP header */
|
|
#define MRVDRV_SNAP_HEADER_LEN 8
|
|
|
|
/** The number of times to try when polling for status bits */
|
|
#define MAX_POLL_TRIES 100
|
|
|
|
/** The number of times to try when waiting for downloaded firmware to
|
|
become active when multiple interface is present */
|
|
#define MAX_MULTI_INTERFACE_POLL_TRIES 150
|
|
/** The number of times to try when waiting for downloaded firmware to
|
|
become active. (polling the scratch register). */
|
|
#define MAX_FIRMWARE_POLL_TRIES 300
|
|
|
|
/** FW fill in rx_len with extra 204 bytes */
|
|
#define EXTRA_LEN 256
|
|
|
|
/** Buffer size for ethernet Tx packets */
|
|
#define MRVDRV_ETH_TX_PACKET_BUFFER_SIZE \
|
|
(MV_ETH_FRAME_LEN + sizeof(TxPD) + EXTRA_LEN)
|
|
|
|
/** Buffer size for ethernet Rx packets */
|
|
#define MRVDRV_ETH_RX_PACKET_BUFFER_SIZE \
|
|
(MV_ETH_FRAME_LEN + sizeof(RxPD) + MRVDRV_SNAP_HEADER_LEN + EXTRA_LEN)
|
|
#endif /* SDIO || PCIE */
|
|
|
|
#ifdef SDIO
|
|
/* Macros in interface module */
|
|
/** Firmware ready */
|
|
#define SDIO_FIRMWARE_READY 0xfedc
|
|
#endif /* SDIO */
|
|
|
|
#ifdef PCIE
|
|
/* Macros in interface module */
|
|
/** Firmware ready */
|
|
#define PCIE_FIRMWARE_READY 0xfedcba00
|
|
#endif
|
|
|
|
/** Enumeration definition*/
|
|
/** WLAN_802_11_PRIVACY_FILTER */
|
|
typedef enum _WLAN_802_11_PRIVACY_FILTER {
|
|
Wlan802_11PrivFilterAcceptAll,
|
|
Wlan802_11PrivFilter8021xWEP
|
|
} WLAN_802_11_PRIVACY_FILTER;
|
|
|
|
/** WLAN_802_11_WEP_STATUS */
|
|
typedef enum _WLAN_802_11_WEP_STATUS {
|
|
Wlan802_11WEPEnabled,
|
|
Wlan802_11WEPDisabled,
|
|
Wlan802_11WEPKeyAbsent,
|
|
Wlan802_11WEPNotSupported
|
|
} WLAN_802_11_WEP_STATUS;
|
|
|
|
/** SNR calculation */
|
|
#define CAL_SNR(RSSI, NF) ((t_s16)((t_s16)(RSSI) - (t_s16)(NF)))
|
|
|
|
/** 2K buf size */
|
|
#define MLAN_TX_DATA_BUF_SIZE_2K 2048
|
|
|
|
/** Terminating TLV Type */
|
|
#define MRVL_TERMINATE_TLV_ID 0xffff
|
|
|
|
/** TLV type : SSID */
|
|
#define TLV_TYPE_SSID 0x0000
|
|
/** TLV type : Rates */
|
|
#define TLV_TYPE_RATES 0x0001
|
|
/** TLV type : PHY FH */
|
|
#define TLV_TYPE_PHY_FH 0x0002
|
|
/** TLV type : PHY DS */
|
|
#define TLV_TYPE_PHY_DS 0x0003
|
|
/** TLV type : CF */
|
|
#define TLV_TYPE_CF 0x0004
|
|
/** TLV type : IBSS */
|
|
#define TLV_TYPE_IBSS 0x0006
|
|
|
|
/** TLV type : Domain */
|
|
#define TLV_TYPE_DOMAIN 0x0007
|
|
|
|
/** TLV type : Power constraint */
|
|
#define TLV_TYPE_POWER_CONSTRAINT 0x0020
|
|
|
|
/** TLV type : Power capability */
|
|
#define TLV_TYPE_POWER_CAPABILITY 0x0021
|
|
|
|
#define TLV_TYPE_HT_CAPABILITY 0x002d
|
|
|
|
#define TLV_TYPE_EXTENSION_ID 0x00ff
|
|
|
|
/**TLV type : Host MLME Flag*/
|
|
#define TLV_TYPE_HOST_MLME (PROPRIETARY_TLV_BASE_ID + 307)
|
|
|
|
/** TLV type: MULTI AP Flag */
|
|
#define TLV_TYPE_MULTI_AP (PROPRIETARY_TLV_BASE_ID + 326)
|
|
|
|
/** TLV type : AP wacp mode */
|
|
#define TLV_TYPE_UAP_WACP_MODE (PROPRIETARY_TLV_BASE_ID + 0x147) /* 0x0247 */
|
|
|
|
/** TLV type : Vendor Specific IE */
|
|
#define TLV_TYPE_VENDOR_SPECIFIC_IE 0x00dd
|
|
|
|
/** TLV type : Key material */
|
|
#define TLV_TYPE_KEY_MATERIAL (PROPRIETARY_TLV_BASE_ID + 0x00) /* 0x0100 */
|
|
/** TLV type : Channel list */
|
|
#define TLV_TYPE_CHANLIST (PROPRIETARY_TLV_BASE_ID + 0x01) /* 0x0101 */
|
|
/** TLV type : Number of probes */
|
|
#define TLV_TYPE_NUMPROBES (PROPRIETARY_TLV_BASE_ID + 0x02) /* 0x0102 */
|
|
/** TLV type : Beacon RSSI low */
|
|
#define TLV_TYPE_RSSI_LOW (PROPRIETARY_TLV_BASE_ID + 0x04) /* 0x0104 */
|
|
/** TLV type : Beacon SNR low */
|
|
#define TLV_TYPE_SNR_LOW (PROPRIETARY_TLV_BASE_ID + 0x05) /* 0x0105 */
|
|
/** TLV type : Fail count */
|
|
#define TLV_TYPE_FAILCOUNT (PROPRIETARY_TLV_BASE_ID + 0x06) /* 0x0106 */
|
|
/** TLV type : BCN miss */
|
|
#define TLV_TYPE_BCNMISS (PROPRIETARY_TLV_BASE_ID + 0x07) /* 0x0107 */
|
|
/** TLV type : LED behavior */
|
|
#define TLV_TYPE_LEDBEHAVIOR (PROPRIETARY_TLV_BASE_ID + 0x09) /* 0x0109 */
|
|
/** TLV type : Passthrough */
|
|
#define TLV_TYPE_PASSTHROUGH (PROPRIETARY_TLV_BASE_ID + 0x0a) /* 0x010a */
|
|
/** TLV type : Power TBL 2.4 Ghz */
|
|
#define TLV_TYPE_POWER_TBL_2_4GHZ \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x0c) /* 0x010c \
|
|
*/
|
|
/** TLV type : Power TBL 5 GHz */
|
|
#define TLV_TYPE_POWER_TBL_5GHZ (PROPRIETARY_TLV_BASE_ID + 0x0d) /* 0x010d */
|
|
/** TLV type : WMM queue status */
|
|
#define TLV_TYPE_WMMQSTATUS (PROPRIETARY_TLV_BASE_ID + 0x10) /* 0x0110 */
|
|
/** TLV type : Wildcard SSID */
|
|
#define TLV_TYPE_WILDCARDSSID (PROPRIETARY_TLV_BASE_ID + 0x12) /* 0x0112 */
|
|
/** TLV type : TSF timestamp */
|
|
#define TLV_TYPE_TSFTIMESTAMP (PROPRIETARY_TLV_BASE_ID + 0x13) /* 0x0113 */
|
|
/** TLV type : ARP filter */
|
|
#define TLV_TYPE_ARP_FILTER (PROPRIETARY_TLV_BASE_ID + 0x15) /* 0x0115 */
|
|
/** TLV type : Beacon RSSI high */
|
|
#define TLV_TYPE_RSSI_HIGH (PROPRIETARY_TLV_BASE_ID + 0x16) /* 0x0116 */
|
|
/** TLV type : Beacon SNR high */
|
|
#define TLV_TYPE_SNR_HIGH (PROPRIETARY_TLV_BASE_ID + 0x17) /* 0x0117 */
|
|
/** TLV type : Start BG scan later */
|
|
#define TLV_TYPE_STARTBGSCANLATER \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x1e) /* 0x011e \
|
|
*/
|
|
/** TLV type: BG scan repeat count */
|
|
#define TLV_TYPE_REPEAT_COUNT (PROPRIETARY_TLV_BASE_ID + 0xb0) /* 0x01b0 */
|
|
/** TLV type : Authentication type */
|
|
#define TLV_TYPE_AUTH_TYPE (PROPRIETARY_TLV_BASE_ID + 0x1f) /* 0x011f */
|
|
/** TLV type : BSSID */
|
|
#define TLV_TYPE_BSSID (PROPRIETARY_TLV_BASE_ID + 0x23) /* 0x0123 */
|
|
|
|
/** TLV type : Link Quality */
|
|
#define TLV_TYPE_LINK_QUALITY (PROPRIETARY_TLV_BASE_ID + 0x24) /* 0x0124 */
|
|
|
|
/** TLV type : Data RSSI low */
|
|
#define TLV_TYPE_RSSI_LOW_DATA (PROPRIETARY_TLV_BASE_ID + 0x26) /* 0x0126 */
|
|
/** TLV type : Data SNR low */
|
|
#define TLV_TYPE_SNR_LOW_DATA (PROPRIETARY_TLV_BASE_ID + 0x27) /* 0x0127 */
|
|
/** TLV type : Data RSSI high */
|
|
#define TLV_TYPE_RSSI_HIGH_DATA (PROPRIETARY_TLV_BASE_ID + 0x28) /* 0x0128 */
|
|
/** TLV type : Data SNR high */
|
|
#define TLV_TYPE_SNR_HIGH_DATA (PROPRIETARY_TLV_BASE_ID + 0x29) /* 0x0129 */
|
|
|
|
/** TLV type : Channel band list */
|
|
#define TLV_TYPE_CHANNELBANDLIST (PROPRIETARY_TLV_BASE_ID + 0x2a) /* 0x012a */
|
|
|
|
/** TLV type : Security Cfg */
|
|
#define TLV_TYPE_SECURITY_CFG (PROPRIETARY_TLV_BASE_ID + 0x3a) /* 0x013a */
|
|
|
|
/** TLV type : Passphrase */
|
|
#define TLV_TYPE_PASSPHRASE (PROPRIETARY_TLV_BASE_ID + 0x3c) /* 0x013c */
|
|
/** TLV type : SAE Password */
|
|
#define TLV_TYPE_SAE_PASSWORD (PROPRIETARY_TLV_BASE_ID + 0x141) /* 0x0241 */
|
|
/** TLV type : SAE PWE Derivation Mode */
|
|
#define TLV_TYPE_WPA3_SAE_PWE_DERIVATION_MODE \
|
|
(PROPRIETARY_TLV_BASE_ID + 339) /* 0x0100 + 0x153 */
|
|
/** TLV type : Encryption Protocol TLV */
|
|
#define TLV_TYPE_ENCRYPTION_PROTO \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x40) /* 0x0140 \
|
|
*/
|
|
/** TLV type : Cipher TLV */
|
|
#define TLV_TYPE_CIPHER (PROPRIETARY_TLV_BASE_ID + 0x42) /* 0x0142 */
|
|
/** TLV type : PMK */
|
|
#define TLV_TYPE_PMK (PROPRIETARY_TLV_BASE_ID + 0x44) /* 0x0144 */
|
|
|
|
/** TLV type : BCN miss */
|
|
#define TLV_TYPE_PRE_BCNMISS (PROPRIETARY_TLV_BASE_ID + 0x49) /* 0x0149 */
|
|
|
|
/** TLV type : ENABLE ROAM IE */
|
|
#define TLV_TYPE_ROAM (PROPRIETARY_TLV_BASE_ID + 245)
|
|
/** TLV type : AP LIST IE */
|
|
#define TLV_TYPE_APLIST (PROPRIETARY_TLV_BASE_ID + 246)
|
|
/** TLV type : PMK */
|
|
#define TLV_TYPE_PMK_R0 (PROPRIETARY_TLV_BASE_ID + 247)
|
|
/** TLV type : PMK */
|
|
#define TLV_TYPE_PMK_R0_NAME (PROPRIETARY_TLV_BASE_ID + 248)
|
|
/** TLV type : TRIGGER CONDITION*/
|
|
#define TLV_TYPE_ROM_TRIGGER (PROPRIETARY_TLV_BASE_ID + 264)
|
|
/** TLV type : RETRY_COUNT*/
|
|
#define TLV_TYPE_ROM_RETRY_COUNT (PROPRIETARY_TLV_BASE_ID + 265)
|
|
/** TLV type : BGSCAN SETTING*/
|
|
#define TLV_TYPE_ROM_BGSCAN (PROPRIETARY_TLV_BASE_ID + 266)
|
|
/** TLV type : PARA RSSI*/
|
|
#define TLV_TYPE_ROM_PARA_RSSI (PROPRIETARY_TLV_BASE_ID + 267)
|
|
/** TLV type : BSSID blacklist*/
|
|
#define TLV_TYPE_BLACKLIST_BSSID (PROPRIETARY_TLV_BASE_ID + 0x11d)
|
|
/** TLV type : BAND & RSSI*/
|
|
#define TLV_TYPE_BAND_RSSI (PROPRIETARY_TLV_BASE_ID + 0x11e)
|
|
/** TLV type : ESS scan*/
|
|
#define TLV_TYPE_ENERGYEFFICIENTSCAN (PROPRIETARY_TLV_BASE_ID + 0xda)
|
|
/** TLV type : KEY params*/
|
|
#define TLV_TYPE_ROAM_OFFLOAD_USER_SET_PMK (PROPRIETARY_TLV_BASE_ID + 291)
|
|
|
|
/** TLV type: WAPI IE */
|
|
#define TLV_TYPE_WAPI_IE (PROPRIETARY_TLV_BASE_ID + 0x5e) /* 0x015e */
|
|
|
|
/** TLV type: MGMT IE */
|
|
#define TLV_TYPE_MGMT_IE (PROPRIETARY_TLV_BASE_ID + 0x69) /* 0x0169 */
|
|
/** TLV type: MAX_MGMT_IE */
|
|
#define TLV_TYPE_MAX_MGMT_IE (PROPRIETARY_TLV_BASE_ID + 0xaa) /* 0x01aa */
|
|
|
|
/** TLV : Region Domain Code */
|
|
#define TLV_TYPE_REGION_DOMAIN_CODE \
|
|
(PROPRIETARY_TLV_BASE_ID + 0xab) /* 0x01ab */
|
|
|
|
/** TLV type: key param v2 */
|
|
#define TLV_TYPE_KEY_PARAM_V2 (PROPRIETARY_TLV_BASE_ID + 0x9C) /* 0x019C */
|
|
|
|
/** TLV type: ps params in hs */
|
|
#define TLV_TYPE_PS_PARAMS_IN_HS (PROPRIETARY_TLV_BASE_ID + 0xB5) /* 0x01b5 */
|
|
/** TLV type: hs wake hold off */
|
|
#define TLV_TYPE_HS_WAKE_HOLDOFF (PROPRIETARY_TLV_BASE_ID + 0xB6) /* 0x01b6 */
|
|
/** TLV type: wake up source */
|
|
#define TLV_TYPE_HS_WAKEUP_SOURCE_GPIO \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x105) /* 0x0205 */
|
|
/** TLV type: management filter */
|
|
#define TLV_TYPE_MGMT_FRAME_WAKEUP \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x116) /* 0x0216 */
|
|
/** TLV type: extend wakeup source */
|
|
#define TLV_TYPE_WAKEUP_EXTEND (PROPRIETARY_TLV_BASE_ID + 0x118) /* 0x0218 */
|
|
/** TLV type: HS antenna mode */
|
|
#define TLV_TYPE_HS_ANTMODE (PROPRIETARY_TLV_BASE_ID + 0x119) /* 0x0219 */
|
|
|
|
/** TLV type: robustcoex mode */
|
|
#define TLV_TYPE_ROBUSTCOEX (PROPRIETARY_TLV_BASE_ID + 0x11B) /* 0x021B */
|
|
|
|
#define TLV_TYPE_DMCS_STATUS (PROPRIETARY_TLV_BASE_ID + 0x13A) /* 0x023A */
|
|
|
|
/** TLV type : TDLS IDLE TIMEOUT */
|
|
#define TLV_TYPE_TDLS_IDLE_TIMEOUT \
|
|
(PROPRIETARY_TLV_BASE_ID + 0xC2) /* 0x01C2 \
|
|
*/
|
|
|
|
/** TLV type : HT Capabilities */
|
|
#define TLV_TYPE_HT_CAP (PROPRIETARY_TLV_BASE_ID + 0x4a) /* 0x014a */
|
|
/** TLV type : HT Information */
|
|
#define TLV_TYPE_HT_INFO (PROPRIETARY_TLV_BASE_ID + 0x4b) /* 0x014b */
|
|
/** TLV type : Secondary Channel Offset */
|
|
#define TLV_SECONDARY_CHANNEL_OFFSET \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x4c) /* 0x014c */
|
|
/** TLV type : 20/40 BSS Coexistence */
|
|
#define TLV_TYPE_2040BSS_COEXISTENCE \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x4d) /* 0x014d */
|
|
/** TLV type : Overlapping BSS Scan Parameters */
|
|
#define TLV_TYPE_OVERLAP_BSS_SCAN_PARAM \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x4e) /* 0x014e */
|
|
/** TLV type : Extended capabilities */
|
|
#define TLV_TYPE_EXTCAP (PROPRIETARY_TLV_BASE_ID + 0x4f) /* 0x014f */
|
|
/** TLV type : Set of MCS values that STA desires to use within the BSS */
|
|
#define TLV_TYPE_HT_OPERATIONAL_MCS_SET \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x50) /* 0x0150 */
|
|
/** TLV ID : Management Frame */
|
|
#define TLV_TYPE_MGMT_FRAME (PROPRIETARY_TLV_BASE_ID + 0x68) /* 0x0168 */
|
|
/** TLV type : RXBA_SYNC */
|
|
#define TLV_TYPE_RXBA_SYNC (PROPRIETARY_TLV_BASE_ID + 0x99) /* 0x0199 */
|
|
|
|
#ifdef WIFI_DIRECT_SUPPORT
|
|
/** TLV type : AP PSK */
|
|
#define TLV_TYPE_UAP_PSK (PROPRIETARY_TLV_BASE_ID + 0xa8) /* 0x01a8 */
|
|
/** TLV type : p2p NOA */
|
|
#define TLV_TYPE_WIFI_DIRECT_NOA (PROPRIETARY_TLV_BASE_ID + 0x83)
|
|
/** TLV type : p2p opp ps */
|
|
#define TLV_TYPE_WIFI_DIRECT_OPP_PS (PROPRIETARY_TLV_BASE_ID + 0x84)
|
|
#endif /* WIFI_DIRECT_SUPPORT */
|
|
/** TLV type : GPIO TSF LATCH CONFIG */
|
|
#define TLV_TYPE_GPIO_TSF_LATCH_CONFIG (PROPRIETARY_TLV_BASE_ID + 0x154)
|
|
/** TLV type : GPIO TSF LATCH REPORT*/
|
|
#define TLV_TYPE_GPIO_TSF_LATCH_REPORT (PROPRIETARY_TLV_BASE_ID + 0x155)
|
|
|
|
/** TLV : 20/40 coex config */
|
|
#define TLV_TYPE_2040_BSS_COEX_CONTROL \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x98) /* 0x0198 */
|
|
|
|
/** TLV type : aggr win size */
|
|
#define TLV_BTCOEX_WL_AGGR_WINSIZE (PROPRIETARY_TLV_BASE_ID + 0xca)
|
|
/** TLV type : scan time */
|
|
#define TLV_BTCOEX_WL_SCANTIME (PROPRIETARY_TLV_BASE_ID + 0Xcb)
|
|
/** TLV type : Ewpa_eapol_pkt */
|
|
#define TLV_TYPE_EAPOL_PKT (PROPRIETARY_TLV_BASE_ID + 0xcf)
|
|
|
|
#define TLV_TYPE_COALESCE_RULE (PROPRIETARY_TLV_BASE_ID + 0x9a)
|
|
|
|
/** TLV type : EES Configuration */
|
|
#define TLV_TYPE_EES_CFG (PROPRIETARY_TLV_BASE_ID + 0xda)
|
|
/** TLV type : EES Network Configuration */
|
|
#define TLV_TYPE_EES_NET_CFG (PROPRIETARY_TLV_BASE_ID + 0xdb)
|
|
|
|
#define TLV_TYPE_LL_STAT_IFACE (PROPRIETARY_TLV_BASE_ID + 300)
|
|
#define TLV_TYPE_LL_STAT_RADIO (PROPRIETARY_TLV_BASE_ID + 301)
|
|
|
|
/** TLV type: fw cap info */
|
|
#define TLV_TYPE_FW_CAP_INFO (PROPRIETARY_TLV_BASE_ID + 318)
|
|
|
|
/** TLV type: secure boot uuid */
|
|
#define TLV_TYPE_SECURE_BOOT_UUID (PROPRIETARY_TLV_BASE_ID + 348)
|
|
|
|
/** ADDBA TID mask */
|
|
#define ADDBA_TID_MASK (MBIT(2) | MBIT(3) | MBIT(4) | MBIT(5))
|
|
/** DELBA TID mask */
|
|
#define DELBA_TID_MASK (MBIT(12) | MBIT(13) | MBIT(14) | MBIT(15))
|
|
/** ADDBA Starting Sequence Number Mask */
|
|
#define SSN_MASK 0xfff0
|
|
|
|
/** Block Ack result status */
|
|
/** Block Ack Result : Success */
|
|
#define BA_RESULT_SUCCESS 0x0
|
|
/** Block Ack Result : Execution failure */
|
|
#define BA_RESULT_FAILURE 0x1
|
|
/** Block Ack Result : Timeout */
|
|
#define BA_RESULT_TIMEOUT 0x2
|
|
/** Block Ack Result : Data invalid */
|
|
#define BA_RESULT_DATA_INVALID 0x3
|
|
|
|
/** Get the baStatus (NOT_SETUP, COMPLETE, IN_PROGRESS)
|
|
* in Tx BA stream table */
|
|
#define IS_BASTREAM_SETUP(ptr) (ptr->ba_status)
|
|
|
|
/** An AMPDU/AMSDU could be disallowed for certain TID. 0xff means
|
|
* no aggregation is enabled for the assigned TID */
|
|
#define BA_STREAM_NOT_ALLOWED 0xff
|
|
|
|
#ifdef STA_SUPPORT
|
|
#endif
|
|
|
|
/** Test if 11n is enabled by checking the HTCap IE */
|
|
#define IS_11N_ENABLED(priv) \
|
|
((priv->config_bands & BAND_GN || priv->config_bands & BAND_AN) && \
|
|
priv->curr_bss_params.bss_descriptor.pht_cap && \
|
|
!priv->curr_bss_params.bss_descriptor.disable_11n)
|
|
/** Find out if we are the initiator or not */
|
|
#define INITIATOR_BIT(DelBAParamSet) \
|
|
(((DelBAParamSet)&MBIT(DELBA_INITIATOR_POS)) >> DELBA_INITIATOR_POS)
|
|
|
|
/** 4K buf size */
|
|
#define MLAN_TX_DATA_BUF_SIZE_4K 4096
|
|
/** 8K buf size */
|
|
#define MLAN_TX_DATA_BUF_SIZE_8K 8192
|
|
/** 12K buf size */
|
|
#define MLAN_TX_DATA_BUF_SIZE_12K 12288
|
|
/** Max Rx AMPDU Size */
|
|
#define MAX_RX_AMPDU_SIZE_64K 0x03
|
|
/** Non green field station */
|
|
#define NON_GREENFIELD_STAS 0x04
|
|
|
|
/** Max AMSDU size support */
|
|
#define HWSPEC_MAX_AMSDU_SUPP MBIT(31)
|
|
/** Greenfield support */
|
|
#define HWSPEC_GREENFIELD_SUPP MBIT(29)
|
|
/** SM Power Save enable */
|
|
#define CAPINFO_SMPS_ENABLE MBIT(27)
|
|
/** RX STBC support */
|
|
#define HWSPEC_RXSTBC_SUPP MBIT(26)
|
|
/** ShortGI @ 40Mhz support */
|
|
#define HWSPEC_SHORTGI40_SUPP MBIT(24)
|
|
/** ShortGI @ 20Mhz support */
|
|
#define HWSPEC_SHORTGI20_SUPP MBIT(23)
|
|
/** RX LDPC support */
|
|
#define HWSPEC_LDPC_SUPP MBIT(22)
|
|
/** Channel width 40Mhz support */
|
|
#define HWSPEC_CHANBW40_SUPP MBIT(17)
|
|
/** SM Power Save mode */
|
|
#define CAPINFO_SMPS_MODE MBIT(9)
|
|
/** 40Mhz intolarent enable */
|
|
#define CAPINFO_40MHZ_INTOLARENT MBIT(8)
|
|
|
|
/** Default 11n capability mask for 2.4GHz */
|
|
#define DEFAULT_11N_CAP_MASK_BG \
|
|
(HWSPEC_SHORTGI20_SUPP | HWSPEC_RXSTBC_SUPP | HWSPEC_LDPC_SUPP)
|
|
/** Default 11n capability mask for 5GHz */
|
|
#define DEFAULT_11N_CAP_MASK_A \
|
|
(HWSPEC_CHANBW40_SUPP | HWSPEC_SHORTGI20_SUPP | \
|
|
HWSPEC_MAX_AMSDU_SUPP | HWSPEC_SHORTGI40_SUPP | HWSPEC_RXSTBC_SUPP | \
|
|
HWSPEC_LDPC_SUPP)
|
|
|
|
/** Default 11n TX BF capability 2X2 chip **/
|
|
#define DEFAULT_11N_TX_BF_CAP_2X2 0x19E74618
|
|
/** Default 11n TX BF capability 1X1 chip **/
|
|
#define DEFAULT_11N_TX_BF_CAP_1X1 0x19E74608
|
|
|
|
/** Bits to ignore in hw_dev_cap as these bits are set in get_hw_spec */
|
|
#define IGN_HW_DEV_CAP \
|
|
(CAPINFO_40MHZ_INTOLARENT | (CAPINFO_SMPS_ENABLE | CAPINFO_SMPS_MODE))
|
|
|
|
/** HW_SPEC FwCapInfo : If FW support RSN Replay Detection */
|
|
#define ISSUPP_RSN_REPLAY_DETECTION(FwCapInfo) (FwCapInfo & MBIT(28))
|
|
|
|
/** HW_SPEC FwCapInfo */
|
|
#define ISSUPP_11NENABLED(FwCapInfo) (FwCapInfo & MBIT(11))
|
|
|
|
/** HW_SPEC Dot11nDevCap : MAX AMSDU supported */
|
|
#define ISSUPP_MAXAMSDU(Dot11nDevCap) (Dot11nDevCap & MBIT(31))
|
|
/** HW_SPEC Dot11nDevCap : Beamforming support */
|
|
#define ISSUPP_BEAMFORMING(Dot11nDevCap) (Dot11nDevCap & MBIT(30))
|
|
/** HW_SPEC Dot11nDevCap : Green field support */
|
|
#define ISSUPP_GREENFIELD(Dot11nDevCap) (Dot11nDevCap & MBIT(29))
|
|
/** HW_SPEC Dot11nDevCap : AMPDU support */
|
|
#define ISSUPP_AMPDU(Dot11nDevCap) (Dot11nDevCap & MBIT(28))
|
|
/** HW_SPEC Dot11nDevCap : MIMO PS support */
|
|
#define ISSUPP_MIMOPS(Dot11nDevCap) (Dot11nDevCap & MBIT(27))
|
|
/** HW_SPEC Dot11nDevCap : Rx STBC support */
|
|
#define ISSUPP_RXSTBC(Dot11nDevCap) (Dot11nDevCap & MBIT(26))
|
|
/** HW_SPEC Dot11nDevCap : Tx STBC support */
|
|
#define ISSUPP_TXSTBC(Dot11nDevCap) (Dot11nDevCap & MBIT(25))
|
|
/** HW_SPEC Dot11nDevCap : Short GI @ 40Mhz support */
|
|
#define ISSUPP_SHORTGI40(Dot11nDevCap) (Dot11nDevCap & MBIT(24))
|
|
/** HW_SPEC Dot11nDevCap : Reset Short GI @ 40Mhz support */
|
|
#define RESETSUPP_SHORTGI40(Dot11nDevCap) (Dot11nDevCap &= ~MBIT(24))
|
|
/** HW_SPEC Dot11nDevCap : Short GI @ 20Mhz support */
|
|
#define ISSUPP_SHORTGI20(Dot11nDevCap) (Dot11nDevCap & MBIT(23))
|
|
/** HW_SPEC Dot11nDevCap : Rx LDPC support */
|
|
#define ISSUPP_RXLDPC(Dot11nDevCap) (Dot11nDevCap & MBIT(22))
|
|
/** HW_SPEC Dot11nDevCap : Number of TX BA streams supported */
|
|
#define ISSUPP_GETTXBASTREAM(Dot11nDevCap) ((Dot11nDevCap >> 18) & 0xF)
|
|
/** HW_SPEC Dot11nDevCap : Channel BW support @ 40Mhz support */
|
|
#define ISSUPP_CHANWIDTH40(Dot11nDevCap) (Dot11nDevCap & MBIT(17))
|
|
/** HW_SPEC Dot11nDevCap : Channel BW support @ 20Mhz support */
|
|
#define ISSUPP_CHANWIDTH20(Dot11nDevCap) (Dot11nDevCap & MBIT(16))
|
|
/** HW_SPEC Dot11nDevCap : Channel BW support @ 10Mhz support */
|
|
#define ISSUPP_CHANWIDTH10(Dot11nDevCap) (Dot11nDevCap & MBIT(15))
|
|
/** Dot11nUsrCap : SMPS static/dynamic mode if BIT27 MIMO PS support eanbled */
|
|
#define ISSUPP_SMPS_DYNAMIC_MODE(Dot11nDevCap) (Dot11nDevCap & MBIT(9))
|
|
/** Dot11nUsrCap : 40Mhz intolarance enabled */
|
|
#define ISENABLED_40MHZ_INTOLARENT(Dot11nDevCap) (Dot11nDevCap & MBIT(8))
|
|
/** Dot11nUsrCap : Reset 40Mhz intolarance enabled */
|
|
#define RESET_40MHZ_INTOLARENT(Dot11nDevCap) (Dot11nDevCap &= ~MBIT(8))
|
|
/** HW_SPEC Dot11nDevCap : Rx AntennaD support */
|
|
#define ISSUPP_RXANTENNAD(Dot11nDevCap) (Dot11nDevCap & MBIT(7))
|
|
/** HW_SPEC Dot11nDevCap : Rx AntennaC support */
|
|
#define ISSUPP_RXANTENNAC(Dot11nDevCap) (Dot11nDevCap & MBIT(6))
|
|
/** HW_SPEC Dot11nDevCap : Rx AntennaB support */
|
|
#define ISSUPP_RXANTENNAB(Dot11nDevCap) (Dot11nDevCap & MBIT(5))
|
|
/** HW_SPEC Dot11nDevCap : Rx AntennaA support */
|
|
#define ISSUPP_RXANTENNAA(Dot11nDevCap) (Dot11nDevCap & MBIT(4))
|
|
/** HW_SPEC Dot11nDevCap : Tx AntennaD support */
|
|
#define ISSUPP_TXANTENNAD(Dot11nDevCap) (Dot11nDevCap & MBIT(3))
|
|
/** HW_SPEC Dot11nDevCap : Tx AntennaC support */
|
|
#define ISSUPP_TXANTENNAC(Dot11nDevCap) (Dot11nDevCap & MBIT(2))
|
|
/** HW_SPEC Dot11nDevCap : Tx AntennaB support */
|
|
#define ISSUPP_TXANTENNAB(Dot11nDevCap) (Dot11nDevCap & MBIT(1))
|
|
/** HW_SPEC Dot11nDevCap : Tx AntennaA support */
|
|
#define ISSUPP_TXANTENNAA(Dot11nDevCap) (Dot11nDevCap & MBIT(0))
|
|
|
|
/** HW_SPEC Dot11nDevCap : Set support of channel bw @ 40Mhz */
|
|
#define SETSUPP_CHANWIDTH40(Dot11nDevCap) (Dot11nDevCap |= MBIT(17))
|
|
/** HW_SPEC Dot11nDevCap : Reset support of channel bw @ 40Mhz */
|
|
#define RESETSUPP_CHANWIDTH40(Dot11nDevCap) (Dot11nDevCap &= ~MBIT(17))
|
|
|
|
/** DevMCSSupported : Tx MCS supported */
|
|
#define GET_TXMCSSUPP(DevMCSSupported) (DevMCSSupported >> 4)
|
|
/** DevMCSSupported : Rx MCS supported */
|
|
#define GET_RXMCSSUPP(DevMCSSupported) (DevMCSSupported & 0x0f)
|
|
|
|
/** hw_dev_cap : MPDU DENSITY */
|
|
#define GET_MPDU_DENSITY(hw_dev_cap) (hw_dev_cap & 0x7)
|
|
|
|
/** GET HTCapInfo : Supported Channel BW */
|
|
#define GETHT_SUPPCHANWIDTH(HTCapInfo) (HTCapInfo & MBIT(1))
|
|
/** GET HTCapInfo : Support for Greenfield */
|
|
#define GETHT_GREENFIELD(HTCapInfo) (HTCapInfo & MBIT(4))
|
|
/** GET HTCapInfo : Support for Short GI @ 20Mhz */
|
|
#define GETHT_SHORTGI20(HTCapInfo) (HTCapInfo & MBIT(5))
|
|
/** GET HTCapInfo : Support for Short GI @ 40Mhz */
|
|
#define GETHT_SHORTGI40(HTCapInfo) (HTCapInfo & MBIT(6))
|
|
/** GET HTCapInfo : Support for Tx STBC */
|
|
#define GETHT_TXSTBC(HTCapInfo) (HTCapInfo & MBIT(7))
|
|
|
|
/** GET HTCapInfo : Support for Rx STBC */
|
|
#define GETHT_RXSTBC(HTCapInfo) ((HTCapInfo >> 8) & 0x03)
|
|
/** GET HTCapInfo : Support for Delayed ACK */
|
|
#define GETHT_DELAYEDBACK(HTCapInfo) (HTCapInfo & MBIT(10))
|
|
/** GET HTCapInfo : Support for Max AMSDU */
|
|
#define GETHT_MAXAMSDU(HTCapInfo) (HTCapInfo & MBIT(11))
|
|
|
|
/** GET HTCapInfo : Support 40Mhz Intolarence */
|
|
#define GETHT_40MHZ_INTOLARANT(HTCapInfo) (HTCapInfo & MBIT(14))
|
|
|
|
/** SET HTCapInfo : Set support for LDPC coding capability */
|
|
#define SETHT_LDPCCODINGCAP(HTCapInfo) (HTCapInfo |= MBIT(0))
|
|
/** SET HTCapInfo : Set support for Channel BW */
|
|
#define SETHT_SUPPCHANWIDTH(HTCapInfo) (HTCapInfo |= MBIT(1))
|
|
/** SET HTCapInfo : Set support for Greenfield */
|
|
#define SETHT_GREENFIELD(HTCapInfo) (HTCapInfo |= MBIT(4))
|
|
/** SET HTCapInfo : Set support for Short GI @ 20Mhz */
|
|
#define SETHT_SHORTGI20(HTCapInfo) (HTCapInfo |= MBIT(5))
|
|
/** SET HTCapInfo : Set support for Short GI @ 40Mhz */
|
|
#define SETHT_SHORTGI40(HTCapInfo) (HTCapInfo |= MBIT(6))
|
|
/** SET HTCapInfo : Set support for Tx STBC */
|
|
#define SETHT_TXSTBC(HTCapInfo) (HTCapInfo |= MBIT(7))
|
|
/** SET HTCapInfo : Set support for Rx STBC */
|
|
#define SETHT_RXSTBC(HTCapInfo, value) (HTCapInfo |= (value << 8))
|
|
/** SET HTCapInfo : Set support for delayed block ack */
|
|
#define SETHT_DELAYEDBACK(HTCapInfo) (HTCapInfo |= MBIT(10))
|
|
/** SET HTCapInfo : Set support for Max size AMSDU */
|
|
#define SETHT_MAXAMSDU(HTCapInfo) (HTCapInfo |= MBIT(11))
|
|
/** SET HTCapInfo : Set support for DSSS/CCK Rates @ 40Mhz */
|
|
#define SETHT_DSSSCCK40(HTCapInfo) (HTCapInfo |= MBIT(12))
|
|
/** SET HTCapInfo : Enable 40Mhz Intolarence */
|
|
#define SETHT_40MHZ_INTOLARANT(HTCapInfo) (HTCapInfo |= MBIT(14))
|
|
|
|
/** SET HTCapInfo : Set SM power save disabled */
|
|
#define SETHT_SMPS_DISABLE(HTCapInfo) ((HTCapInfo) |= (MBIT(2) | MBIT(3)))
|
|
/** SET HTCapInfo : Set Dynamic SM power save */
|
|
#define SETHT_SMPS_DYNAMIC(HTCapInfo) ((HTCapInfo) |= MBIT(2))
|
|
|
|
/** RESET HTCapInfo : Set support for LDPC coding capability */
|
|
#define RESETHT_LDPCCODINGCAP(HTCapInfo) (HTCapInfo &= ~MBIT(0))
|
|
/** RESET HTCapInfo : Set support for Channel BW */
|
|
#define RESETHT_SUPPCHANWIDTH(HTCapInfo) (HTCapInfo &= ~MBIT(1))
|
|
/** RESET HTCapInfo : Set support for Greenfield */
|
|
#define RESETHT_GREENFIELD(HTCapInfo) (HTCapInfo &= ~MBIT(4))
|
|
/** RESET HTCapInfo : Set support for Short GI @ 20Mhz */
|
|
#define RESETHT_SHORTGI20(HTCapInfo) (HTCapInfo &= ~MBIT(5))
|
|
/** RESET HTCapInfo : Set support for Short GI @ 40Mhz */
|
|
#define RESETHT_SHORTGI40(HTCapInfo) (HTCapInfo &= ~MBIT(6))
|
|
/** RESET HTCapInfo : Set support for Tx STBC */
|
|
#define RESETHT_TXSTBC(HTCapInfo) (HTCapInfo &= ~MBIT(7))
|
|
/** RESET HTCapInfo : Set support for Rx STBC */
|
|
#define RESETHT_RXSTBC(HTCapInfo) (HTCapInfo &= ~(0x03 << 8))
|
|
/** RESET HTCapInfo : Set support for delayed block ack */
|
|
#define RESETHT_DELAYEDBACK(HTCapInfo) (HTCapInfo &= ~MBIT(10))
|
|
/** RESET HTCapInfo : Set support for Max size AMSDU */
|
|
#define RESETHT_MAXAMSDU(HTCapInfo) (HTCapInfo &= ~MBIT(11))
|
|
/** RESET HTCapInfo : Disable 40Mhz Intolarence */
|
|
#define RESETHT_40MHZ_INTOLARANT(HTCapInfo) (HTCapInfo &= ~MBIT(14))
|
|
/** RESET HTCapInfo: Enable SM power save */
|
|
#define RESETHT_SM_POWERSAVE(HTCapInfo) ((HTCapInfo) &= ~(MBIT(2) | MBIT(3)))
|
|
/** RESET HTExtCap : Clear RD Responder bit */
|
|
#define RESETHT_EXTCAP_RDG(HTExtCap) (HTExtCap &= ~MBIT(11))
|
|
/** SET MCS32 */
|
|
#define SETHT_MCS32(x) (x[4] |= 1)
|
|
/** Set mcs set defined bit */
|
|
#define SETHT_MCS_SET_DEFINED(x) (x[12] |= 1)
|
|
/** Set the highest Rx data rate */
|
|
#define SETHT_RX_HIGHEST_DT_SUPP(x, y) ((*(t_u16 *)(x + 10)) = y)
|
|
/** AMPDU factor size */
|
|
#define AMPDU_FACTOR_64K 0x03
|
|
/** Set AMPDU size in A-MPDU paramter field */
|
|
#define SETAMPDU_SIZE(x, y) \
|
|
do { \
|
|
x = x & ~0x03; \
|
|
x |= y & 0x03; \
|
|
} while (0) /** Set AMPDU spacing in A-MPDU paramter field */
|
|
#define SETAMPDU_SPACING(x, y) \
|
|
do { \
|
|
x = x & ~0x1c; \
|
|
x |= (y & 0x07) << 2; \
|
|
} while (0)
|
|
|
|
/** RadioType : Support for Band A */
|
|
#define ISSUPP_BANDA(FwCapInfo) (FwCapInfo & MBIT(10))
|
|
/** RadioType : Support for 40Mhz channel BW */
|
|
#define ISALLOWED_CHANWIDTH40(Field2) (Field2 & MBIT(2))
|
|
/** RadioType : Set support 40Mhz channel */
|
|
#define SET_CHANWIDTH40(Field2) (Field2 |= MBIT(2))
|
|
/** RadioType : Reset support 40Mhz channel */
|
|
#define RESET_CHANWIDTH40(Field2) (Field2 &= ~(MBIT(0) | MBIT(1) | MBIT(2)))
|
|
/** RadioType : Get secondary channel */
|
|
#define GET_SECONDARYCHAN(Field2) (Field2 & (MBIT(0) | MBIT(1)))
|
|
|
|
/** ExtCap : Support for FILS */
|
|
#define ISSUPP_EXTCAP_FILS(ext_cap) (ext_cap.FILS)
|
|
/** ExtCap : Set support FILS */
|
|
#define SET_EXTCAP_FILS(ext_cap) (ext_cap.FILS = 1)
|
|
/** ExtCap : Reset support FILS */
|
|
#define RESET_EXTCAP_FILS(ext_cap) (ext_cap.FILS = 0)
|
|
|
|
/** ExtCap : Support for TDLS */
|
|
#define ISSUPP_EXTCAP_TDLS(ext_cap) (ext_cap.TDLSSupport)
|
|
/** ExtCap : Set support TDLS */
|
|
#define SET_EXTCAP_TDLS(ext_cap) (ext_cap.TDLSSupport = 1)
|
|
/** ExtCap : Reset support TDLS */
|
|
#define RESET_EXTCAP_TDLS(ext_cap) (ext_cap.TDLSSupport = 0)
|
|
/** ExtCap : Support for TDLS UAPSD */
|
|
#define ISSUPP_EXTCAP_TDLS_UAPSD(ext_cap) (ext_cap.TDLSPeerUAPSDSupport)
|
|
/** ExtCap : Set support TDLS UAPSD */
|
|
#define SET_EXTCAP_TDLS_UAPSD(ext_cap) (ext_cap.TDLSPeerUAPSDSupport = 1)
|
|
/** ExtCap : Reset support TDLS UAPSD */
|
|
#define RESET_EXTCAP_TDLS_UAPSD(ext_cap) (ext_cap.TDLSPeerUAPSDSupport = 0)
|
|
/** ExtCap : Support for TDLS CHANNEL SWITCH */
|
|
#define ISSUPP_EXTCAP_TDLS_CHAN_SWITCH(ext_cap) (ext_cap.TDLSChannelSwitching)
|
|
/** ExtCap : Set support TDLS CHANNEL SWITCH */
|
|
#define SET_EXTCAP_TDLS_CHAN_SWITCH(ext_cap) (ext_cap.TDLSChannelSwitching = 1)
|
|
/** ExtCap : Reset support TDLS CHANNEL SWITCH */
|
|
#define RESET_EXTCAP_TDLS_CHAN_SWITCH(ext_cap) \
|
|
(ext_cap.TDLSChannelSwitching = 0)
|
|
/** ExtCap : Set support Multi BSSID */
|
|
#define SET_EXTCAP_MULTI_BSSID(ext_cap) (ext_cap.MultipleBSSID = 1)
|
|
/** ExtCap : Support for Interworking */
|
|
#define ISSUPP_EXTCAP_INTERWORKING(ext_cap) (ext_cap.Interworking)
|
|
/** ExtCap : Set support Interworking */
|
|
#define SET_EXTCAP_INTERWORKING(ext_cap) (ext_cap.Interworking = 1)
|
|
/** ExtCap : Reset support Interworking */
|
|
#define RESET_EXTCAP_INTERWORKING(ext_cap) (ext_cap.Interworking = 0)
|
|
/** ExtCap : Support for Operation Mode Notification */
|
|
#define ISSUPP_EXTCAP_OPERMODENTF(ext_cap) (ext_cap.OperModeNtf)
|
|
/** ExtCap : Set support Operation Mode Notification */
|
|
#define SET_EXTCAP_OPERMODENTF(ext_cap) (ext_cap.OperModeNtf = 1)
|
|
/** ExtCap : Reset support Operation Mode Notification */
|
|
#define RESET_EXTCAP_OPERMODENTF(ext_cap) (ext_cap.OperModeNtf = 0)
|
|
/** ExtCap : Support for QosMap */
|
|
#define ISSUPP_EXTCAP_QOS_MAP(ext_cap) (ext_cap.Qos_Map)
|
|
/** ExtCap : Set Support QosMap */
|
|
#define SET_EXTCAP_QOS_MAP(ext_cap) (ext_cap.Qos_Map = 1)
|
|
/** ExtCap : Reset support QosMap */
|
|
#define RESET_EXTCAP_QOS_MAP(ext_cap) (ext_cap.Qos_Map = 0)
|
|
/** ExtCap : Support for BSS_Transition */
|
|
#define ISSUPP_EXTCAP_BSS_TRANSITION(ext_cap) (ext_cap.BSS_Transition)
|
|
/** ExtCap : Set Support BSS_Transition */
|
|
#define SET_EXTCAP_BSS_TRANSITION(ext_cap) (ext_cap.BSS_Transition = 1)
|
|
/** ExtCap : Reset support BSS_Transition */
|
|
#define RESET_EXTCAP_BSS_TRANSITION(ext_cap) (ext_cap.BSS_Transition = 0)
|
|
|
|
/** ExtCap : Support for TDLS wider bandwidth */
|
|
#define ISSUPP_EXTCAP_TDLS_WIDER_BANDWIDTH(ext_cap) (ext_cap.TDLSWildBandwidth)
|
|
/** ExtCap : Set support TDLS wider bandwidth */
|
|
#define SET_EXTCAP_TDLS_WIDER_BANDWIDTH(ext_cap) (ext_cap.TDLSWildBandwidth = 1)
|
|
/** ExtCap : Reset support TDLS wider bandwidth */
|
|
#define RESET_EXTCAP_TDLS_WIDER_BANDWIDTH(ext_cap) \
|
|
(ext_cap.TDLSWildBandwidth = 0)
|
|
|
|
/** ExtCap : Support for extend channel switch */
|
|
#define ISSUPP_EXTCAP_EXT_CHANNEL_SWITCH(ext_cap) (ext_cap.ExtChanSwitching)
|
|
/** ExtCap : Set support Ext Channel Switch */
|
|
#define SET_EXTCAP_EXT_CHANNEL_SWITCH(ext_cap) (ext_cap.ExtChanSwitching = 1)
|
|
/** ExtCap: Set Timing Measurement */
|
|
#define SET_EXTCAP_EXT_TIMING_MEASUREMENT(ext_cap) \
|
|
(ext_cap.TimingMeasurement = 1)
|
|
/** ExtCap : Reset support Ext Channel Switch */
|
|
#define RESET_EXTCAP_EXT_CHANNEL_SWITCH(ext_cap) (ext_cap.ExtChanSwitching = 0)
|
|
|
|
/** ExtCap : Support for TWT RESP */
|
|
#define ISSUPP_EXTCAP_EXT_TWT_RESP(ext_cap) (ext_cap.TWTResp)
|
|
/** ExtCap : Set support Ext TWT_REQ */
|
|
#define SET_EXTCAP_TWT_REQ(ext_cap) (ext_cap.TWTReq = 1)
|
|
/** ExtCap : ReSet support Ext TWT REQ */
|
|
#define RESET_EXTCAP_TWT_REQ(ext_cap) (ext_cap.TWTReq = 0)
|
|
/** ExtCap : Support for Beacon Protection */
|
|
#define ISSUPP_EXTCAP_EXT_BEACON_PROT(ext_cap) (ext_cap.beacon_prot)
|
|
/** ExtCap : Set support Beacon Protection */
|
|
#define SET_EXTCAP_BEACON_PROT(ext_cap) (ext_cap.beacon_prot = 1)
|
|
|
|
/** ExtCap : Set FTMI bit(bit 71) */
|
|
#define SET_EXTCAP_FTMI(ext_cap) (ext_cap.FTMI = 1)
|
|
#define SET_EXTCAP_INTERNETWORKING(ext_cap) (ext_cap.Interworking = 1)
|
|
/** LLC/SNAP header len */
|
|
#define LLC_SNAP_LEN 8
|
|
|
|
/** bandwidth following HTCAP */
|
|
#define BW_FOLLOW_HTCAP 0
|
|
/** bandwidth following VHTCAP */
|
|
#define BW_FOLLOW_VHTCAP 1
|
|
|
|
/** HW_SPEC FwCapInfo */
|
|
#define HWSPEC_11ACSGI80_SUPP MBIT(5)
|
|
#define HWSPEC_11ACRXSTBC_SUPP MBIT(8)
|
|
|
|
#define ISSUPP_11ACENABLED(FwCapInfo) (FwCapInfo & (MBIT(12) | MBIT(13)))
|
|
|
|
#define ISSUPP_11AC2GENABLED(FwCapInfo) (FwCapInfo & MBIT(12))
|
|
#define ISSUPP_11AC5GENABLED(FwCapInfo) (FwCapInfo & MBIT(13))
|
|
|
|
/** HW_SPEC Dot11acDevCap : HTC-VHT supported */
|
|
#define ISSUPP_11ACVHTHTCVHT(Dot11acDevCap) (Dot11acDevCap & MBIT(22))
|
|
/** HW_SPEC Dot11acDevCap : VHT TXOP PS support */
|
|
#define ISSUPP_11ACVHTTXOPPS(Dot11acDevCap) (Dot11acDevCap & MBIT(21))
|
|
/** HW_SPEC Dot11acDevCap : MU RX beamformee support */
|
|
#define ISSUPP_11ACMURXBEAMFORMEE(Dot11acDevCap) (Dot11acDevCap & MBIT(20))
|
|
/** HW_SPEC Dot11acDevCap : MU TX beamformee support */
|
|
#define ISSUPP_11ACMUTXBEAMFORMEE(Dot11acDevCap) (Dot11acDevCap & MBIT(19))
|
|
/** HW_SPEC Dot11acDevCap : SU Beamformee support */
|
|
#define ISSUPP_11ACSUBEAMFORMEE(Dot11acDevCap) (Dot11acDevCap & MBIT(12))
|
|
/** HW_SPEC Dot11acDevCap : SU Beamformer support */
|
|
#define ISSUPP_11ACSUBEAMFORMER(Dot11acDevCap) (Dot11acDevCap & MBIT(11))
|
|
/** HW_SPEC Dot11acDevCap : Rx STBC support */
|
|
#define ISSUPP_11ACRXSTBC(Dot11acDevCap) (Dot11acDevCap & MBIT(8))
|
|
/** HW_SPEC Dot11acDevCap : Tx STBC support */
|
|
#define ISSUPP_11ACTXSTBC(Dot11acDevCap) (Dot11acDevCap & MBIT(7))
|
|
/** HW_SPEC Dot11acDevCap : Short GI support for 160MHz BW */
|
|
#define ISSUPP_11ACSGI160(Dot11acDevCap) (Dot11acDevCap & MBIT(6))
|
|
/** HW_SPEC Dot11acDevCap : Short GI support for 80MHz BW */
|
|
#define ISSUPP_11ACSGI80(Dot11acDevCap) (Dot11acDevCap & MBIT(5))
|
|
/** HW_SPEC Dot11acDevCap : LDPC coding support */
|
|
#define ISSUPP_11ACLDPC(Dot11acDevCap) (Dot11acDevCap & MBIT(4))
|
|
/** HW_SPEC Dot11acDevCap : Channel BW 20/40/80/160/80+80 MHz support */
|
|
#define ISSUPP_11ACBW8080(Dot11acDevCap) (Dot11acDevCap & MBIT(3))
|
|
/** HW_SPEC Dot11acDevCap : Channel BW 20/40/80/160 MHz support */
|
|
#define ISSUPP_11ACBW160(Dot11acDevCap) (Dot11acDevCap & MBIT(2))
|
|
|
|
/** Set VHT Cap Info: Max MPDU length */
|
|
#define SET_VHTCAP_MAXMPDULEN(VHTCapInfo, value) (VHTCapInfo |= (value & 0x03))
|
|
/** Reset VHT Cap Info: Max MPDU length */
|
|
#define RESET_VHTCAP_MAXMPDULEN(VHTCapInfo) (VHTCapInfo &= ~(MBIT(0) | MBIT(1)))
|
|
|
|
/** SET VHT CapInfo: Supported Channel Width SET (2 bits)*/
|
|
#define SET_VHTCAP_CHWDSET(VHTCapInfo, value) \
|
|
(VHTCapInfo |= ((value & 0x3) << 2))
|
|
/** SET VHT CapInfo: Rx STBC (3 bits) */
|
|
#define SET_VHTCAP_RXSTBC(VHTCapInfo, value) \
|
|
(VHTCapInfo |= ((value & 0x7) << 8))
|
|
/** SET VHT CapInfo: Commpressed Steering Num of BFer Ant Supported (3 bits) */
|
|
#define SET_VHTCAP_SNBFERANT(VHTCapInfo, value) \
|
|
(VHTCapInfo |= ((value & 0x7) << 13))
|
|
/** SET VHT CapInfo: Num of Sounding Dimensions (3 bits) */
|
|
#define SET_VHTCAP_NUMSNDDM(VHTCapInfo, value) \
|
|
(VHTCapInfo |= ((value & 0x7) << 16))
|
|
/** SET VHT CapInfo: Max AMPDU Length Exponent (3 bits) */
|
|
#define SET_VHTCAP_MAXAMPDULENEXP(VHTCapInfo, value) \
|
|
(VHTCapInfo |= ((value & 0x7) << 23))
|
|
/** SET VHT CapInfo: VHT Link Adaptation Capable (2 bits) */
|
|
#define SET_VHTCAP_LINKADPCAP(VHTCapInfo, value) \
|
|
(VHTCapInfo |= ((value & 0x3) << 26))
|
|
|
|
/** HW_SPEC Dot11acDevCap : ReSet VHT Link Adapation Capable */
|
|
#define RESET_11ACVHTLINKCAPA(Dot11acDevCap, value) (Dot11acDevCap &= ~(0x03))
|
|
/** HW_SPEC Dot11acDevCap : ReSet Maximum AMPDU Length Exponent */
|
|
#define RESET_11ACAMPDULENEXP(Dot11acDevCap, value) (Dot11acDevCap &= ~(0x07))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of HTC-VHT */
|
|
#define RESET_11ACVHTHTCVHT(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(22))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of VHT TXOP PS */
|
|
#define RESET_11ACVHTTXOPPS(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(21))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of MU RX beamformee */
|
|
#define RESET_11ACMURXBEAMFORMEE(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(20))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of MU TX beamformee */
|
|
#define RESET_11ACMUTXBEAMFORMEE(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(19))
|
|
/** HW_SPEC Dot11acDevCap : ReSet Number of Sounding Dimensions */
|
|
#define RESET_11ACSOUNDINGNUM(Dot11acDevCap) (Dot11acDevCap &= ~((0x07) << 16))
|
|
/** HW_SPEC Dot11acDevCap : ReSet Compressed Steering Number
|
|
* of Beamformer Antenna */
|
|
#define RESET_11ACBFANTNUM(Dot11acDevCap) (Dot11acDevCap &= ~((0x07) << 13))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of SU Beamformee */
|
|
#define RESET_11ACSUBEAMFORMEE(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(12))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of SU Beamformer */
|
|
#define RESET_11ACSUBEAMFORMER(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(11))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of Rx STBC */
|
|
#define RESET_11ACRXSTBC(Dot11acDevCap) (Dot11acDevCap &= ~((0x07) << 8))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of Tx STBC */
|
|
#define RESET_11ACTXSTBC(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(7))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of Short GI support for 160MHz BW */
|
|
#define RESET_11ACSGI160(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(6))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of Short GI support for 80MHz BW */
|
|
#define RESET_11ACSGI80(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(5))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of LDPC coding */
|
|
#define RESET_11ACLDPC(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(4))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of
|
|
* Channel BW 20/40/80/160/80+80 MHz */
|
|
#define RESET_11ACBW8080(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(3))
|
|
/** HW_SPEC Dot11acDevCap : ReSet support of
|
|
* Channel BW 20/40/80/160 MHz */
|
|
#define RESET_11ACBW160(Dot11acDevCap) (Dot11acDevCap &= ~MBIT(2))
|
|
/** HW_SPEC Dot11acDevCap : ReSet Max MPDU length */
|
|
#define RESET_11ACMAXMPDULEN(Dot11acDevCap) (Dot11acDevCap &= ~(0x03))
|
|
|
|
/** Default 11ac capability mask for 2.4GHz */
|
|
#define DEFAULT_11AC_CAP_MASK_BG \
|
|
(HWSPEC_11ACSGI80_SUPP | HWSPEC_11ACRXSTBC_SUPP)
|
|
/** Default 11ac capability mask for 5GHz */
|
|
#define DEFAULT_11AC_CAP_MASK_A (HWSPEC_11ACSGI80_SUPP | HWSPEC_11ACRXSTBC_SUPP)
|
|
/** GET VHT CapInfo : MAX MPDU Length */
|
|
#define GET_VHTCAP_MAXMPDULEN(VHTCapInfo) (VHTCapInfo & 0x3)
|
|
/** GET VHT CapInfo: Supported Channel Width SET (2 bits)*/
|
|
#define GET_VHTCAP_CHWDSET(VHTCapInfo) ((VHTCapInfo >> 2) & 0x3)
|
|
/** GET VHT CapInfo: Rx STBC (3 bits) */
|
|
#define GET_VHTCAP_RXSTBC(VHTCapInfo) ((VHTCapInfo >> 8) & 0x7)
|
|
/** GET VHT CapInfo: Compressed Steering Num of BFer Ant Supported (3 bits) */
|
|
#define GET_VHTCAP_SNBFERANT(VHTCapInfo) ((VHTCapInfo >> 13) & 0x7)
|
|
/** GET VHT CapInfo: Num of Sounding Dimensions (3 bits) */
|
|
#define GET_VHTCAP_NUMSNDDM(VHTCapInfo) ((VHTCapInfo >> 16) & 0x7)
|
|
/** GET VHT CapInfo: Max AMPDU Length Exponent (3 bits) */
|
|
#define GET_VHTCAP_MAXAMPDULENEXP(VHTCapInfo) ((VHTCapInfo >> 23) & 0x7)
|
|
/** GET VHT CapInfo: VHT Link Adaptation Capable (2 bits) */
|
|
#define GET_VHTCAP_LINKADPCAP(VHTCapInfo) ((VHTCapInfo >> 26) & 0x3)
|
|
/**SET OPERATING MODE:Channel Width:80M*/
|
|
#define SET_OPER_MODE_80M(oper_mode) \
|
|
(oper_mode = (oper_mode & ~MBIT(0)) | MBIT(1))
|
|
/**SET OPERATING MODE:Channel Width:40M*/
|
|
#define SET_OPER_MODE_40M(oper_mode) \
|
|
(oper_mode = (oper_mode & ~MBIT(1)) | MBIT(0))
|
|
/**SET OPERATING MODE:Channel Width:20M*/
|
|
#define SET_OPER_MODE_20M(oper_mode) (oper_mode &= ~(0x03))
|
|
#define IS_OPER_MODE_20M(oper_mode) (((oper_mode) & (MBIT(0) | MBIT(1))) == 0)
|
|
/**SET OPERATING MODE:Rx NSS:2*/
|
|
#define SET_OPER_MODE_2NSS(oper_mode) \
|
|
(oper_mode = (oper_mode & ~(MBIT(5) | MBIT(6))) | MBIT(4))
|
|
/**SET OPERATING MODE:Rx NSS:1*/
|
|
#define SET_OPER_MODE_1NSS(oper_mode) \
|
|
(oper_mode &= ~(MBIT(4) | MBIT(5) | MBIT(6)))
|
|
|
|
#define NO_NSS_SUPPORT 0x3
|
|
#define GET_VHTMCS(MCSMapSet) (MCSMapSet & 0xFFFF)
|
|
#define GET_VHTNSSMCS(MCSMapSet, nss) ((MCSMapSet >> (2 * (nss - 1))) & 0x3)
|
|
#define RET_VHTNSSMCS(MCSMapSet, nss) ((MCSMapSet >> (2 * (nss - 1))) & 0x3)
|
|
#define SET_VHTNSSMCS(MCSMapSet, nss, value) \
|
|
(MCSMapSet |= (value & 0x3) << (2 * (nss - 1)))
|
|
|
|
/** DevMCSSupported : Tx MCS supported */
|
|
#define GET_DEVTXMCSMAP(DevMCSMap) (DevMCSMap >> 16)
|
|
#define GET_DEVNSSTXMCS(DevMCSMap, nss) \
|
|
((DevMCSMap >> (2 * (nss - 1) + 16)) & 0x3)
|
|
#define SET_DEVNSSTXMCS(DevMCSMap, nss, value) \
|
|
(DevMCSMap |= (value & 0x3) << (2 * (nss - 1) + 16))
|
|
#define RESET_DEVTXMCSMAP(DevMCSMap) (DevMCSMap &= 0xFFFF)
|
|
/** DevMCSSupported : Rx MCS supported */
|
|
#define GET_DEVRXMCSMAP(DevMCSMap) (DevMCSMap & 0xFFFF)
|
|
#define GET_DEVNSSRXMCS(DevMCSMap, nss) ((DevMCSMap >> (2 * (nss - 1))) & 0x3)
|
|
#define SET_DEVNSSRXMCS(DevMCSMap, nss, value) \
|
|
(DevMCSMap |= (value & 0x3) << (2 * (nss - 1)))
|
|
#define RESET_DEVRXMCSMAP(DevMCSMap) (DevMCSMap &= 0xFFFF0000)
|
|
|
|
/** TLV type : Rate scope */
|
|
#define TLV_TYPE_RATE_DROP_PATTERN \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x51) /* 0x0151 \
|
|
*/
|
|
/** TLV type : Rate drop pattern */
|
|
#define TLV_TYPE_RATE_DROP_CONTROL \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x52) /* 0x0152 \
|
|
*/
|
|
/** TLV type : Rate scope */
|
|
#define TLV_TYPE_RATE_SCOPE (PROPRIETARY_TLV_BASE_ID + 0x53) /* 0x0153 */
|
|
|
|
/** TLV type : Power group */
|
|
#define TLV_TYPE_POWER_GROUP (PROPRIETARY_TLV_BASE_ID + 0x54) /* 0x0154 */
|
|
|
|
/** Modulation class for DSSS Rates */
|
|
#define MOD_CLASS_HR_DSSS 0x03
|
|
/** Modulation class for OFDM Rates */
|
|
#define MOD_CLASS_OFDM 0x07
|
|
/** Modulation class for HT Rates */
|
|
#define MOD_CLASS_HT 0x08
|
|
/** Modulation class for VHT Rates */
|
|
#define MOD_CLASS_VHT 0x09
|
|
/** HT bandwidth 20 MHz */
|
|
#define HT_BW_20 0
|
|
/** HT bandwidth 40 MHz */
|
|
#define HT_BW_40 1
|
|
/** HT bandwidth 80 MHz */
|
|
#define HT_BW_80 2
|
|
|
|
/** TLV type : TX RATE CFG, rename from TLV_TYPE_GI_LTF_SIZE to include CMD and
|
|
* HE ER SU settings to this tlv */
|
|
#define TLV_TYPE_TX_RATE_CFG (PROPRIETARY_TLV_BASE_ID + 319) /* 0x023f */
|
|
|
|
/** TLV type : Scan Response */
|
|
#define TLV_TYPE_BSS_SCAN_RSP (PROPRIETARY_TLV_BASE_ID + 0x56) /* 0x0156 */
|
|
/** TLV type : Scan Response Stats */
|
|
#define TLV_TYPE_BSS_SCAN_INFO (PROPRIETARY_TLV_BASE_ID + 0x57) /* 0x0157 */
|
|
|
|
/** TLV type : 11h Basic Rpt */
|
|
#define TLV_TYPE_CHANRPT_11H_BASIC \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x5b) /* 0x015b \
|
|
*/
|
|
|
|
/** TLV type : ZERO DFS Operation */
|
|
#define TLV_TYPE_ZERO_DFS_OPERATION (PROPRIETARY_TLV_BASE_ID + 0x13b) // + 315
|
|
/** TLV type : DFS W53 Configuration */
|
|
#define TLV_TYPE_DFS_W53_CFG (PROPRIETARY_TLV_BASE_ID + 0x145) // + 325
|
|
#ifdef OPCHAN
|
|
/** TLV type : OpChannel control */
|
|
#define TLV_TYPE_OPCHAN_CONTROL_DESC \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x79) /* 0x0179 */
|
|
/** TLV type : OpChannel channel group control */
|
|
#define TLV_TYPE_OPCHAN_CHANGRP_CTRL \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x7a) /* 0x017a */
|
|
#endif
|
|
|
|
/** TLV type : Action frame */
|
|
#define TLV_TYPE_IEEE_ACTION_FRAME \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x8c) /* 0x018c \
|
|
*/
|
|
|
|
/** TLV type : SCAN channel gap */
|
|
#define TLV_TYPE_SCAN_CHANNEL_GAP \
|
|
(PROPRIETARY_TLV_BASE_ID + 0xc5) /* 0x01c5 \
|
|
*/
|
|
/** TLV type : Channel statistics */
|
|
#define TLV_TYPE_CHANNEL_STATS (PROPRIETARY_TLV_BASE_ID + 0xc6) /* 0x01c6 */
|
|
/** TLV type : BSS_MODE */
|
|
#define TLV_TYPE_BSS_MODE (PROPRIETARY_TLV_BASE_ID + 0xce) /* 0x01ce */
|
|
|
|
/** Firmware Host Command ID Constants */
|
|
|
|
#define ENUM_ELEMENT(name, id) name = id
|
|
#define ENUM_ELEMENT_LAST(name) name
|
|
enum host_cmd_id {
|
|
#include "mlan_hostcmd_ids.h"
|
|
};
|
|
#undef ENUM_ELEMENT
|
|
#undef ENUM_ELEMENT_LAST
|
|
|
|
/** TLV ID for multi chan info */
|
|
#define TLV_TYPE_MULTI_CHAN_INFO (PROPRIETARY_TLV_BASE_ID + 0xb7)
|
|
/** TLV ID for multi chan group info */
|
|
#define TLV_TYPE_MULTI_CHAN_GROUP_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb8)
|
|
/** TLV ID for DRCS TimeSlice */
|
|
#define MRVL_DRCS_TIME_SLICE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 263)
|
|
|
|
#define TLV_TYPE_PREV_BSSID (PROPRIETARY_TLV_BASE_ID + 330)
|
|
|
|
#ifdef SDIO
|
|
|
|
#endif
|
|
|
|
/* fw_cap_info bit18 for ecsa support*/
|
|
#define FW_CAPINFO_ECSA MBIT(18)
|
|
|
|
/* fw_cap_info bit20 for get log*/
|
|
#define FW_CAPINFO_GET_LOG MBIT(20)
|
|
|
|
/** fw_cap_info bit22 for embedded supplicant support*/
|
|
#define FW_CAPINFO_SUPPLICANT_SUPPORT MBIT(21)
|
|
|
|
/** fw_cap_info bit23 for embedded authenticator support*/
|
|
#define FW_CAPINFO_AUTH_SUPPORT MBIT(22)
|
|
|
|
/** fw_cap_info bit23 for firmware roaming*/
|
|
#define FW_ROAMING_SUPPORT MBIT(23)
|
|
|
|
/** fw_cap_info bit25 for adhoc support*/
|
|
#define FW_CAPINFO_ADHOC_SUPPORT MBIT(25)
|
|
/** Check if adhoc is supported by firmware */
|
|
#define IS_FW_SUPPORT_ADHOC(_adapter) \
|
|
(_adapter->fw_cap_info & FW_CAPINFO_ADHOC_SUPPORT)
|
|
|
|
/** Check if supplicant is supported by firmware */
|
|
#define IS_FW_SUPPORT_SUPPLICANT(_adapter) \
|
|
(_adapter->fw_cap_info & FW_CAPINFO_SUPPLICANT_SUPPORT)
|
|
|
|
/** Check if authenticator is supported by firmware */
|
|
#define IS_FW_SUPPORT_AUTHENTICATOR(_adapter) \
|
|
(_adapter->fw_cap_info & FW_CAPINFO_AUTH_SUPPORT)
|
|
|
|
/** Ext fw cap info bit0 only 1x1 5G is available */
|
|
#define FW_CAPINFO_EXT_5G_1X1_ONLY MBIT(0)
|
|
/** Ext fw cap info bit1 1x1 5G is not available */
|
|
#define FW_CAPINFO_EXT_NO_5G_1X1 MBIT(1)
|
|
/** Ext fw cap info bit 2 only 1x1 2G is available */
|
|
#define FW_CAPINFO_EXT_2G_1X1_ONLY MBIT(2)
|
|
/**Ext fw cap info bit3 1x1 2G is not available */
|
|
#define FW_CAPINFO_EXT_NO_2G_1X1 MBIT(3)
|
|
/** Ext fw cap info bit4 1x1 + 1x1 5G mode is unavailable */
|
|
#define FW_CAPINFO_EXT_NO_5G_1X1_PLUS_1X1 MBIT(4)
|
|
/** Ext fw cap info bit5 80 + 80 MHz capability disabled */
|
|
#define FW_CAPINFO_EXT_NO_80MHz_PLUS_80MHz MBIT(5)
|
|
/** Ext fw cap info bit6 1024 QAM is disabled */
|
|
#define FW_CAPINFO_EXT_NO_1024_QAM MBIT(6)
|
|
/** FW cap info bit 7 11AX */
|
|
#define FW_CAPINFO_EXT_802_11AX MBIT(7)
|
|
/** FW cap info bit 8: 80MHZ disabled */
|
|
#define FW_CAPINFO_EXT_NO_80MHZ MBIT(8)
|
|
/** FW cap info bit 9: Multi BSSID Support */
|
|
#define FW_CAPINFO_EXT_MULTI_BSSID MBIT(9)
|
|
/** FW cap info bit 10: Beacon Protection Support */
|
|
#define FW_CAPINFO_EXT_BEACON_PROT MBIT(10)
|
|
/** FW cap info bit 11: OTP cal data */
|
|
#define FW_CAPINFO_EXT_OTP_CALDATA MBIT(11)
|
|
/** FW cap info bit 12: RTT Support */
|
|
#define FW_CAPINFO_EXT_RTT MBIT(12)
|
|
/** FW cap info bit 13: Channel Tracking Support */
|
|
#define FW_CAPINFO_EXT_CHAN_TRACK MBIT(13)
|
|
/** FW cap info bit 14: 6G Support */
|
|
#define FW_CAPINFO_EXT_6G MBIT(14)
|
|
/** FW cap info bit 16: 6G Support */
|
|
#define FW_CAPINFO_EXT_CMD_TX_DATA MBIT(16)
|
|
/** FW cap info bit 19: security rgpower table */
|
|
#define FW_CAPINFO_EXT_SEC_RG_POWER MBIT(19)
|
|
|
|
/** Check if 5G 1x1 only is supported by firmware */
|
|
#define IS_FW_SUPPORT_5G_1X1_ONLY(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_5G_1X1_ONLY)
|
|
/** Check if 5G 1x1 is unavailable in firmware */
|
|
#define IS_FW_SUPPORT_NO_5G_1X1(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_NO_5G_1X1)
|
|
/** Check if 2G 1x1 only is supported by firmware */
|
|
#define IS_FW_SUPPORT_2G_1X1_ONLY(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_2G_1X1_ONLY)
|
|
/** Check if 2G 1x1 is unavailable in firmware */
|
|
#define IS_FW_SUPPORT_NO_2G_1X1(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_NO_2G_1X1)
|
|
/** Check if 5G 1x1 + 1x1 mode is disabled in firmware */
|
|
#define IS_FW_SUPPORT_NO_5G_1X1_PLUS_1X1(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_NO_5G_1X1_PLUS_1X1)
|
|
/** Check if 80 + 80MHz is disabled in firmware */
|
|
#define IS_FW_SUPPORT_NO_80MHz_PLUS_80MHz(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_NO_80MHz_PLUS_80MHz)
|
|
/** Check if 1024 QAM disabled in firmware */
|
|
#define IS_FW_SUPPORT_NO_1024_QAM(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_NO_1024_QAM)
|
|
/** Check if 80MHZ disabled in firmware */
|
|
#define IS_FW_SUPPORT_NO_80MHZ(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_NO_80MHZ)
|
|
/** Check if Multi BSSID supported by firmware */
|
|
#define IS_FW_SUPPORT_MULTIBSSID(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_MULTI_BSSID)
|
|
/** Check if Beacon Protection supported by firmware */
|
|
#define IS_FW_SUPPORT_BEACON_PROT(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_BEACON_PROT)
|
|
/** Check if RTT supported by firmware */
|
|
#define IS_FW_SUPPORT_RTT(_adapter) (_adapter->fw_cap_ext & FW_CAPINFO_EXT_RTT)
|
|
/** Check if Channel Tracking supported by firmware */
|
|
#define IS_FW_SUPPORT_CHAN_TRACK(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_CHAN_TRACK)
|
|
/** Check if 6G supported by firmware */
|
|
#define IS_FW_SUPPORT_6G(_adapter) (_adapter->fw_cap_ext & FW_CAPINFO_EXT_6G)
|
|
#define IS_FW_SUPPORT_CMD_TX_DATA(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_CMD_TX_DATA)
|
|
#define IS_FW_SUPPORT_SEC_RG_POWER(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_SEC_RG_POWER)
|
|
|
|
/** MrvlIEtypes_PrevBssid_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_PrevBssid_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** prev_bssid **/
|
|
t_u8 prev_bssid[6];
|
|
} MLAN_PACK_END MrvlIEtypes_PrevBssid_t;
|
|
|
|
/** FW cap info TLV */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_fw_cap_info_t {
|
|
/** Header type */
|
|
t_u16 type;
|
|
/** Header length */
|
|
t_u16 len;
|
|
/** Fw cap info bitmap */
|
|
t_u32 fw_cap_info;
|
|
/** Extended fw cap info bitmap */
|
|
t_u32 fw_cap_ext;
|
|
} MLAN_PACK_END MrvlIEtypes_fw_cap_info_t, *pMrvlIEtypes_fw_cap_info_t;
|
|
|
|
/** Check if 11AX is supported by firmware */
|
|
#define IS_FW_SUPPORT_11AX(_adapter) \
|
|
(_adapter->fw_cap_ext & FW_CAPINFO_EXT_802_11AX)
|
|
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Extension_t {
|
|
/** Header type */
|
|
t_u16 type;
|
|
/** Header length */
|
|
t_u16 len;
|
|
/** Element id extension */
|
|
t_u8 ext_id;
|
|
/** payload */
|
|
t_u8 data[1];
|
|
} MLAN_PACK_END MrvlIEtypes_Extension_t, *pMrvlIEtypes_Extension_t;
|
|
|
|
/* HE MAC Capabilities Information field BIT 1 for TWT Req */
|
|
#define HE_MAC_CAP_TWT_REQ_SUPPORT MBIT(1)
|
|
/* HE MAC Capabilities Information field BIT 2 for TWT Resp*/
|
|
#define HE_MAC_CAP_TWT_RESP_SUPPORT MBIT(2)
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_He_cap_t {
|
|
/** Header type */
|
|
t_u16 type;
|
|
/** Header length */
|
|
t_u16 len;
|
|
/** Element id extension */
|
|
t_u8 ext_id;
|
|
/** he mac capability info */
|
|
t_u8 he_mac_cap[6];
|
|
/** he phy capability info */
|
|
t_u8 he_phy_cap[11];
|
|
/** rx mcs for 80 */
|
|
t_u16 rx_mcs_80;
|
|
/** tx mcs for 80 */
|
|
t_u16 tx_mcs_80;
|
|
/** rx mcs for bw 160 */
|
|
t_u16 rx_mcs_160;
|
|
/** tx mcs for bw 160 */
|
|
t_u16 tx_mcs_160;
|
|
/** rx mcs for bw 80+80 */
|
|
t_u16 rx_mcs_80p80;
|
|
/** tx mcs for bw 80+80 */
|
|
t_u16 tx_mcs_80p80;
|
|
/** PPE Thresholds (optional) */
|
|
t_u8 val[20];
|
|
} MLAN_PACK_END MrvlIEtypes_He_cap_t, *pMrvlIEtypes_he_cap_t;
|
|
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_He_Op_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Element id extension */
|
|
t_u8 ext_id;
|
|
/** HE Operation Parameters */
|
|
t_u16 he_op_param1;
|
|
/** HE Operation Parameters */
|
|
t_u8 he_op_param2;
|
|
/** BSS Color Info */
|
|
t_u8 bss_color_info;
|
|
/** Basic HE-MCS and NSS Set */
|
|
t_u16 basic_he_mcs_nss;
|
|
/** Optional Field, including VHT Operation Info Max Co-Hosted BSSID
|
|
* Indicator, and 6Ghz Operation Info */
|
|
t_u8 option[9];
|
|
} MLAN_PACK_END MrvlIEtypes_He_Op_t;
|
|
|
|
/** fw_cap_info bit30 for Embedded OWE Support*/
|
|
#define FW_CAPINFO_EMBEDDED_OWE_SUPPORT MBIT(30)
|
|
/** Check if Embedded OWE is supported by firmware */
|
|
#define IS_FW_SUPPORT_EMBEDDED_OWE(_adapter) \
|
|
(_adapter->fw_cap_info & FW_CAPINFO_EMBEDDED_OWE_SUPPORT)
|
|
|
|
#if defined(PCIE9098) || defined(SD9098) || defined(USB9098) || \
|
|
defined(PCIE9097) || defined(USB9097) || defined(SDIW624) || \
|
|
defined(PCIEIW624) || defined(USBIW624) || defined(SD9097)
|
|
/* TLV type: reg type */
|
|
#define TLV_TYPE_REG_ACCESS_CTRL (PROPRIETARY_TLV_BASE_ID + 0x13C) /* 0x023c*/
|
|
/** MrvlIEtypes_Reg_type_t*/
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Reg_type_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** type: 0x81/0x82/0x83 */
|
|
t_u8 type;
|
|
} MLAN_PACK_END MrvlIEtypes_Reg_type_t;
|
|
#endif
|
|
|
|
/* mod_grp */
|
|
typedef enum _mod_grp {
|
|
MOD_CCK, // 0
|
|
MOD_OFDM_PSK, // 1
|
|
MOD_OFDM_QAM16, // 2
|
|
MOD_OFDM_QAM64, // 3
|
|
MOD_HT_20_PSK, // 4
|
|
MOD_HT_20_QAM16, // 5
|
|
MOD_HT_20_QAM64, // 6
|
|
MOD_HT_40_PSK, // 7
|
|
MOD_HT_40_QAM16, // 8
|
|
MOD_HT_40_QAM64, // 9
|
|
#ifdef STREAM_2x2
|
|
MOD_HT2_20_PSK, // 10
|
|
MOD_HT2_20_QAM16, // 11
|
|
MOD_HT2_20_QAM64, // 12
|
|
MOD_HT2_40_PSK, // 13
|
|
MOD_HT2_40_QAM16, // 14
|
|
MOD_HT2_40_QAM64, // 15
|
|
#endif
|
|
|
|
MOD_VHT_20_QAM256, // 16
|
|
MOD_VHT_40_QAM256, // 17
|
|
MOD_VHT_80_PSK, // 18
|
|
MOD_VHT_80_QAM16, // 19
|
|
MOD_VHT_80_QAM64, // 20
|
|
MOD_VHT_80_QAM256, // 21
|
|
#ifdef STREAM_2x2
|
|
MOD_VHT2_20_QAM256, // 22
|
|
MOD_VHT2_40_QAM256, // 23
|
|
MOD_VHT2_80_PSK, // 24
|
|
MOD_VHT2_80_QAM16, // 25
|
|
MOD_VHT2_80_QAM64, // 26
|
|
MOD_VHT2_80_QAM256, // 27
|
|
#endif
|
|
} mod_grp;
|
|
|
|
typedef MLAN_PACK_START struct _power_table_attr {
|
|
t_u8 rows_2g;
|
|
t_u8 cols_2g;
|
|
t_u8 rows_5g;
|
|
t_u8 cols_5g;
|
|
} MLAN_PACK_END power_table_attr_t;
|
|
|
|
#define FW_CFP_TABLE_MAX_ROWS_BG 14
|
|
#define FW_CFP_TABLE_MAX_COLS_BG 17
|
|
|
|
#define FW_CFP_TABLE_MAX_ROWS_A 39
|
|
#define FW_CFP_TABLE_MAX_COLS_A 29
|
|
|
|
#define HostCmd_ACT_RTT_GET_RSP_INFO 0x0000
|
|
#define HostCmd_ACT_RTT_SET_RSP_EN 0x0001
|
|
#define HostCmd_ACT_RTT_SET_RSP_DIS 0x0002
|
|
#define HostCmd_ACT_RTT_SET_RSP_LCI 0x0003
|
|
#define HostCmd_ACT_RTT_SET_RSP_LCR 0x0004
|
|
|
|
#define CSI_CMD_ENABLE 0x0001
|
|
#define CSI_CMD_DISABLE 0x0002
|
|
|
|
typedef MLAN_PACK_START struct {
|
|
t_u32 enable;
|
|
} MLAN_PACK_END HostCmd_DS_IPS_CONFIG;
|
|
|
|
/** Enhanced PS modes */
|
|
typedef enum _ENH_PS_MODES {
|
|
GET_PS = 0,
|
|
SLEEP_CONFIRM = 5,
|
|
EXT_PS_PARAM = 6,
|
|
DIS_AUTO_PS = 0xfe,
|
|
EN_AUTO_PS = 0xff,
|
|
} ENH_PS_MODES;
|
|
|
|
/** Command RET code, MSB is set to 1 */
|
|
#define HostCmd_RET_BIT 0x8000
|
|
|
|
/** General purpose action : Get */
|
|
#define HostCmd_ACT_GEN_GET 0x0000
|
|
/** General purpose action : Set */
|
|
#define HostCmd_ACT_GEN_SET 0x0001
|
|
/** General purpose action : Set Default */
|
|
#define HostCmd_ACT_GEN_SET_DEFAULT 0x0002
|
|
/** General purpose action : Get_Current */
|
|
#define HostCmd_ACT_GEN_GET_CURRENT 0x0003
|
|
/** General purpose action : Remove */
|
|
#define HostCmd_ACT_GEN_REMOVE 0x0004
|
|
/** General purpose action : Reset */
|
|
#define HostCmd_ACT_GEN_RESET 0x0005
|
|
/** Host command action : Set Rx */
|
|
#define HostCmd_ACT_SET_RX 0x0001
|
|
/** Host command action : Set Tx */
|
|
#define HostCmd_ACT_SET_TX 0x0002
|
|
/** Host command action : Set both Rx and Tx */
|
|
#define HostCmd_ACT_SET_BOTH 0x0003
|
|
/** Host command action : Get Rx */
|
|
#define HostCmd_ACT_GET_RX 0x0004
|
|
/** Host command action : Get Tx */
|
|
#define HostCmd_ACT_GET_TX 0x0008
|
|
/** Host command action : Get both Rx and Tx */
|
|
#define HostCmd_ACT_GET_BOTH 0x000c
|
|
|
|
/** General Result Code*/
|
|
/** General result code OK */
|
|
#define HostCmd_RESULT_OK 0x0000
|
|
/** Genenral error */
|
|
#define HostCmd_RESULT_ERROR 0x0001
|
|
/** Command is not valid */
|
|
#define HostCmd_RESULT_NOT_SUPPORT 0x0002
|
|
/** Command is pending */
|
|
#define HostCmd_RESULT_PENDING 0x0003
|
|
/** System is busy (command ignored) */
|
|
#define HostCmd_RESULT_BUSY 0x0004
|
|
/** Data buffer is not big enough */
|
|
#define HostCmd_RESULT_PARTIAL_DATA 0x0005
|
|
/** cmd is blocked by cmd_filter */
|
|
#define HostCmd_RESULT_BLOCK 0x0006
|
|
/** cmd is blocked by pre_asleep */
|
|
#define HostCmd_RESULT_PRE_ASLEEP 0x0007
|
|
/** rgpower_XX.bin download failed with security key mismatch */
|
|
#define HostCmd_RESULT_RGPWR_KEY_MISMATCH 0x0008
|
|
|
|
/* Define action or option for HostCmd_CMD_MAC_CONTROL */
|
|
/** MAC action : Rx on */
|
|
#define HostCmd_ACT_MAC_RX_ON 0x0001
|
|
/** MAC action : Tx on */
|
|
#define HostCmd_ACT_MAC_TX_ON 0x0002
|
|
/** MAC action : WEP enable */
|
|
#define HostCmd_ACT_MAC_WEP_ENABLE 0x0008
|
|
/** MAC action : EthernetII enable */
|
|
#define HostCmd_ACT_MAC_ETHERNETII_ENABLE 0x0010
|
|
/** MAC action : Promiscous mode enable */
|
|
#define HostCmd_ACT_MAC_PROMISCUOUS_ENABLE 0x0080
|
|
/** MAC action : All multicast enable */
|
|
#define HostCmd_ACT_MAC_ALL_MULTICAST_ENABLE 0x0100
|
|
/** MAC action : RTS/CTS enable */
|
|
#define HostCmd_ACT_MAC_RTS_CTS_ENABLE 0x0200
|
|
/** MAC action : Strict protection enable */
|
|
#define HostCmd_ACT_MAC_STRICT_PROTECTION_ENABLE 0x0400
|
|
/** MAC action : Force 11n protection disable */
|
|
#define HostCmd_ACT_MAC_FORCE_11N_PROTECTION_OFF 0x0800
|
|
/** MAC action : Ad-Hoc G protection on */
|
|
#define HostCmd_ACT_MAC_ADHOC_G_PROTECTION_ON 0x2000
|
|
/** MAC action : Static-Dynamic BW enable */
|
|
#define HostCmd_ACT_MAC_STATIC_DYNAMIC_BW_ENABLE MBIT(16)
|
|
/** MAC action : Dynamic BW */
|
|
#define HostCmd_ACT_MAC_DYNAMIC_BW MBIT(17)
|
|
|
|
/* Define action or option for HostCmd_CMD_802_11_SCAN */
|
|
/** Scan type : BSS */
|
|
#define HostCmd_BSS_MODE_BSS 0x0001
|
|
/** Scan type : IBSS */
|
|
#define HostCmd_BSS_MODE_IBSS 0x0002
|
|
/** Scan type : Any */
|
|
#define HostCmd_BSS_MODE_ANY 0x0003
|
|
|
|
/** Define bitmap conditions for HOST_SLEEP_CFG : GPIO FF */
|
|
#define HOST_SLEEP_CFG_GPIO_FF 0xff
|
|
/** Define bitmap conditions for HOST_SLEEP_CFG : GAP FF */
|
|
#define HOST_SLEEP_CFG_GAP_FF 0xff
|
|
|
|
/** Buffer Constants */
|
|
/** Number of command buffers */
|
|
#define MRVDRV_NUM_OF_CMD_BUFFER 40
|
|
/** Maximum number of BSS Descriptors */
|
|
#define MRVDRV_MAX_BSSID_LIST 200
|
|
|
|
/** Host command flag in command */
|
|
#define CMD_F_HOSTCMD (1 << 0)
|
|
/** command cancel flag in command */
|
|
#define CMD_F_CANCELED (1 << 1)
|
|
/** scan command flag */
|
|
#define CMD_F_SCAN (1 << 2)
|
|
|
|
/** Host Command ID bit mask (bit 11:0) */
|
|
#define HostCmd_CMD_ID_MASK 0x0fff
|
|
|
|
/** Host Command Sequence number mask (bit 7:0) */
|
|
#define HostCmd_SEQ_NUM_MASK 0x00ff
|
|
|
|
/** Host Command BSS number mask (bit 11:8) */
|
|
#define HostCmd_BSS_NUM_MASK 0x0f00
|
|
|
|
/** Host Command BSS type mask (bit 15:12) */
|
|
#define HostCmd_BSS_TYPE_MASK 0xf000
|
|
|
|
/** Set BSS information to Host Command */
|
|
#define HostCmd_SET_SEQ_NO_BSS_INFO(seq, num, type) \
|
|
((((seq)&0x00ff) | (((num)&0x000f) << 8)) | (((type)&0x000f) << 12))
|
|
|
|
/** Get Sequence Number from Host Command (bit 7:0) */
|
|
#define HostCmd_GET_SEQ_NO(seq) ((seq)&HostCmd_SEQ_NUM_MASK)
|
|
|
|
/** Get BSS number from Host Command (bit 11:8) */
|
|
#define HostCmd_GET_BSS_NO(seq) (((seq)&HostCmd_BSS_NUM_MASK) >> 8)
|
|
|
|
/** Get BSS type from Host Command (bit 15:12) */
|
|
#define HostCmd_GET_BSS_TYPE(seq) (((seq)&HostCmd_BSS_TYPE_MASK) >> 12)
|
|
|
|
/* EVENT ID */
|
|
|
|
#define ENUM_ELEMENT(name, id) name = id
|
|
#define ENUM_ELEMENT_LAST(name) name
|
|
enum host_fw_event_id {
|
|
#include "mlan_event_ids.h"
|
|
};
|
|
#undef ENUM_ELEMENT
|
|
#undef ENUM_ELEMENT_LAST
|
|
|
|
enum nan_event_subtype {
|
|
NAN_EVT_SUBTYPE_SD_EVENT = 0,
|
|
NAN_EVT_SUBTYPE_NAN_STARTED = 1,
|
|
NAN_EVT_SUBTYPE_SDF_TX_DONE = 2,
|
|
};
|
|
|
|
enum wls_event_subtype {
|
|
WLS_SUB_EVENT_FTM_COMPLETE = 0,
|
|
WLS_SUB_EVENT_RADIO_RECEIVED = 1,
|
|
WLS_SUB_EVENT_RADIO_RPT_RECEIVED = 2,
|
|
WLS_SUB_EVENT_ANQP_RESP_RECEIVED = 3,
|
|
WLS_SUB_EVENT_RTT_RESULTS = 4,
|
|
};
|
|
|
|
/** Event ID mask */
|
|
#define EVENT_ID_MASK 0xffff
|
|
|
|
/** BSS number mask */
|
|
#define BSS_NUM_MASK 0xf
|
|
|
|
/** Get BSS number from event cause (bit 23:16) */
|
|
#define EVENT_GET_BSS_NUM(event_cause) (((event_cause) >> 16) & BSS_NUM_MASK)
|
|
|
|
/** Get BSS type from event cause (bit 31:24) */
|
|
#define EVENT_GET_BSS_TYPE(event_cause) (((event_cause) >> 24) & 0x00ff)
|
|
|
|
/** event type for tdls setup failure */
|
|
#define TDLS_EVENT_TYPE_SETUP_FAILURE 1
|
|
/** event type for tdls setup request received */
|
|
#define TDLS_EVENT_TYPE_SETUP_REQ 2
|
|
/** event type for tdls link torn down */
|
|
#define TDLS_EVENT_TYPE_LINK_TORN_DOWN 3
|
|
/** event type for tdls link established */
|
|
#define TDLS_EVENT_TYPE_LINK_ESTABLISHED 4
|
|
/** event type for tdls debug */
|
|
#define TDLS_EVENT_TYPE_DEBUG 5
|
|
/** event type for tdls packet */
|
|
#define TDLS_EVENT_TYPE_PACKET 6
|
|
/** event type for channel switch result */
|
|
#define TDLS_EVENT_TYPE_CHAN_SWITCH_RESULT 7
|
|
/** event type for start channel switch */
|
|
#define TDLS_EVENT_TYPE_START_CHAN_SWITCH 8
|
|
/** event type for stop channel switch */
|
|
#define TDLS_EVENT_TYPE_CHAN_SWITCH_STOPPED 9
|
|
|
|
/** Packet received on direct link */
|
|
#define RXPD_FLAG_PKT_DIRECT_LINK MBIT(0)
|
|
/** TDLS base channel */
|
|
#define TDLS_BASE_CHANNEL 0
|
|
/** TDLS off channel */
|
|
#define TDLS_OFF_CHANNEL 1
|
|
|
|
#define RXPD_FLAG_PKT_EASYMESH MBIT(4)
|
|
|
|
/** structure for channel switch result from TDLS FW */
|
|
typedef MLAN_PACK_START struct _chan_switch_result {
|
|
/** current channel, 0 - base channel, 1 - off channel*/
|
|
t_u8 current_channel;
|
|
/** channel switch status*/
|
|
t_u8 status;
|
|
/** channel switch fauilure reason code*/
|
|
t_u8 reason;
|
|
} MLAN_PACK_END chan_switch_result;
|
|
|
|
typedef MLAN_PACK_START struct _ie_data {
|
|
/** IE Length */
|
|
t_u16 ie_length;
|
|
/** IE pointer */
|
|
t_u8 ie_ptr[1];
|
|
} MLAN_PACK_END tdls_ie_data;
|
|
|
|
/** Event structure for generic events from TDLS FW */
|
|
typedef MLAN_PACK_START struct _Event_tdls_generic {
|
|
/** Event Type */
|
|
t_u16 event_type;
|
|
/** Peer mac address */
|
|
t_u8 peer_mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
union {
|
|
/** channel switch result structure*/
|
|
chan_switch_result switch_result;
|
|
/** channel switch stop reason*/
|
|
t_u8 cs_stop_reason;
|
|
/** Reason code */
|
|
t_u16 reason_code;
|
|
/** IE data */
|
|
tdls_ie_data ie_data;
|
|
} u;
|
|
} MLAN_PACK_END Event_tdls_generic;
|
|
|
|
typedef enum _tdls_error_code_e {
|
|
NO_ERROR = 0,
|
|
INTERNAL_ERROR,
|
|
MAX_TDLS_LINKS_EST,
|
|
TDLS_LINK_EXISTS,
|
|
TDLS_LINK_NONEXISTENT,
|
|
TDLS_PEER_STA_UNREACHABLE = 25,
|
|
} tdls_error_code_e;
|
|
|
|
/** Event structure for generic events from NAN FW */
|
|
typedef MLAN_PACK_START struct _event_nan_generic {
|
|
/** NAN Event SubType */
|
|
t_u16 event_sub_type;
|
|
} MLAN_PACK_END event_nan_generic;
|
|
|
|
#define RXPD_FLAG_EXTRA_HEADER (1 << 1)
|
|
|
|
#define RXPD_FLAG_UCAST_PKT (1 << 3)
|
|
|
|
/** Event_WEP_ICV_ERR structure */
|
|
typedef MLAN_PACK_START struct _Event_WEP_ICV_ERR {
|
|
/** Reason code */
|
|
t_u16 reason_code;
|
|
/** Source MAC address */
|
|
t_u8 src_mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** WEP decryption used key */
|
|
t_u8 wep_key_index;
|
|
/** WEP key length */
|
|
t_u8 wep_key_length;
|
|
/** WEP key */
|
|
t_u8 key[MAX_WEP_KEY_SIZE];
|
|
} MLAN_PACK_END Event_WEP_ICV_ERR;
|
|
|
|
/** WLAN_802_11_FIXED_IEs */
|
|
typedef MLAN_PACK_START struct _WLAN_802_11_FIXED_IEs {
|
|
/** Timestamp */
|
|
t_u8 time_stamp[8];
|
|
/** Beacon interval */
|
|
t_u16 beacon_interval;
|
|
/** Capabilities*/
|
|
t_u16 capabilities;
|
|
} MLAN_PACK_END WLAN_802_11_FIXED_IEs;
|
|
|
|
/** WLAN_802_11_VARIABLE_IEs */
|
|
typedef MLAN_PACK_START struct _WLAN_802_11_VARIABLE_IEs {
|
|
/** Element ID */
|
|
t_u8 element_id;
|
|
/** Length */
|
|
t_u8 length;
|
|
/** IE data */
|
|
t_u8 data[1];
|
|
} MLAN_PACK_END WLAN_802_11_VARIABLE_IEs;
|
|
|
|
/** TLV related data structures*/
|
|
/*TDLS TIMEOUT VALUE (seconds)*/
|
|
#define TDLS_IDLE_TIMEOUT 60
|
|
/** MrvlIEtypes_Data_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_TDLS_Idle_Timeout_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** value */
|
|
t_u16 value;
|
|
} MLAN_PACK_END MrvlIEtypes_TDLS_Idle_Timeout_t;
|
|
#if defined(STA_SUPPORT)
|
|
/** Pairwise Cipher Suite length */
|
|
#define PAIRWISE_CIPHER_SUITE_LEN 4
|
|
/** AKM Suite length */
|
|
#define AKM_SUITE_LEN 4
|
|
/** PMKID length */
|
|
#define PMKID_LEN 16
|
|
/** Group mgmt Cipher Suite length */
|
|
#define GROUP_MGMT_CIPHER_SUITE_LEN 4
|
|
/** MFPC bit in RSN capability */
|
|
#define MFPC_BIT 7
|
|
/** MFPR bit in RSN capability */
|
|
#define MFPR_BIT 6
|
|
#endif
|
|
/** Bit mask for TxPD status field for null packet */
|
|
#define MRVDRV_TxPD_POWER_MGMT_NULL_PACKET 0x01
|
|
/** Bit mask for TxPD status field for last packet */
|
|
#define MRVDRV_TxPD_POWER_MGMT_LAST_PACKET 0x08
|
|
|
|
/** Bit mask for TxPD flags field for TDLS packet */
|
|
#define MRVDRV_TxPD_FLAGS_TDLS_PACKET MBIT(4)
|
|
|
|
/** Bit mask for TxPD flags field for Tx status report */
|
|
#define MRVDRV_TxPD_FLAGS_TX_PACKET_STATUS MBIT(5)
|
|
|
|
/** Bit mask for TxPD flags field for EASYMESH */
|
|
#define MRVDRV_TxPD_FLAGS_EASYMESH MBIT(7)
|
|
|
|
/** Packet type: 802.11 */
|
|
#define PKT_TYPE_802DOT11 0x05
|
|
|
|
#define PKT_TYPE_MGMT_FRAME 0xE5
|
|
/** Packet type: AMSDU */
|
|
#define PKT_TYPE_AMSDU 0xE6
|
|
/** Packet type: BAR */
|
|
#define PKT_TYPE_BAR 0xE7
|
|
|
|
/** Packet type: debugging */
|
|
#define PKT_TYPE_DEBUG 0xEF
|
|
|
|
#define PKT_TYPE_802DOT11_MC_AGGR 11
|
|
|
|
/** channel number at bit 5-13 */
|
|
#define RXPD_CHAN_MASK 0x3FE0
|
|
/** Rate control mask 15-23 */
|
|
#define TXPD_RATE_MASK 0xff8000
|
|
/** DCM at bit 16 */
|
|
#define RXPD_DCM_MASK 0x10000
|
|
/** enable bw ctrl in TxPD */
|
|
#define TXPD_BW_ENABLE MBIT(20)
|
|
/** enable tx power ctrl in TxPD */
|
|
#define TXPD_TXPW_ENABLE MBIT(7)
|
|
/** sign of power */
|
|
#define TXPD_TXPW_NEGATIVE MBIT(6)
|
|
/** Enable Rate ctrl in TxPD */
|
|
#define TXPD_TXRATE_ENABLE MBIT(15)
|
|
/** enable retry limit in TxPD */
|
|
#define TXPD_RETRY_ENABLE MBIT(12)
|
|
|
|
/** tx_control*/
|
|
#ifdef BIG_ENDIAN_SUPPORT
|
|
typedef MLAN_PACK_START struct _tx_ctrl {
|
|
/** reserved */
|
|
t_u32 reserved : 3;
|
|
/** mc retry packet */
|
|
t_u32 mc_pkt_retry : 1;
|
|
/** end of mc AMPDU */
|
|
t_u32 mc_ampdu_end : 1;
|
|
/** start of mc AMPDU */
|
|
t_u32 mc_ampdu_start : 1;
|
|
/** End of mc cycle */
|
|
t_u32 mc_cycle_end : 1;
|
|
/** start of mc cycle */
|
|
t_u32 mc_cycle_start : 1;
|
|
/** bw 0-20MHz, 1-40MHz */
|
|
t_u32 bw : 3;
|
|
/** Rate used for transmission MCS0-7*/
|
|
t_u32 tx_rate : 5;
|
|
/** Control the use of txRate. 0 - use FW setting, 1 - use the specified
|
|
* txRate;*/
|
|
t_u32 host_txrate_ctrl : 1;
|
|
/** 0/1 - use FW setting, 2 - ACK_IMMD, 3 - NO_ACK.*/
|
|
t_u32 ack_policy : 2;
|
|
/** Control the use of retryLimit. 0 - use FW setting, 1 - use the
|
|
* specified retryLimit.*/
|
|
t_u32 host_retry_ctrl : 1;
|
|
/** retry limit */
|
|
t_u32 retry_limit : 4;
|
|
/** Control the use of txPower. 0 - use FW power setting, 1 - use the
|
|
* specified txPower.*/
|
|
t_u32 host_tx_powerctrl : 1;
|
|
/** Sign of the txPower, 0 - positive_sign(+), 1 - negative_sign(-). */
|
|
t_u32 tx_power_sign : 1;
|
|
/** Power used for transmission(in dBm); */
|
|
t_u32 tx_power : 6;
|
|
} MLAN_PACK_END tx_ctrl;
|
|
#else
|
|
typedef MLAN_PACK_START struct _tx_ctrl {
|
|
/** Power used for transmission(in dBm); */
|
|
t_u32 tx_power : 6;
|
|
/** Sign of the txPower, 0 - positive_sign(+), 1 - negative_sign(-). */
|
|
t_u32 tx_power_sign : 1;
|
|
/** Control the use of txPower. 0 - use FW power setting, 1 - use the
|
|
* specified txPower.*/
|
|
t_u32 host_tx_powerctrl : 1;
|
|
/** retry limit */
|
|
t_u32 retry_limit : 4;
|
|
/** Control the use of retryLimit. 0 - use FW setting, 1 - use the
|
|
* specified retryLimit.*/
|
|
t_u32 host_retry_ctrl : 1;
|
|
/** 0/1 - use FW setting, 2 - ACK_IMMD, 3 - NO_ACK.*/
|
|
t_u32 ack_policy : 2;
|
|
/** Control the use of txRate. 0 - use FW setting, 1 - use the specified
|
|
* txRate;*/
|
|
t_u32 host_txrate_ctrl : 1;
|
|
/** Rate used for transmission MCS0-7*/
|
|
t_u32 tx_rate : 5;
|
|
/** bw 0-20MHz 1-40MHz*/
|
|
t_u32 bw : 3;
|
|
/** start of mc cycle */
|
|
t_u32 mc_cycle_start : 1;
|
|
/** End of mc cycle */
|
|
t_u32 mc_cycle_end : 1;
|
|
/** start of mc AMPDU */
|
|
t_u32 mc_ampdu_start : 1;
|
|
/** end of mc AMPDU */
|
|
t_u32 mc_ampdu_end : 1;
|
|
/** mc retry packet */
|
|
t_u32 mc_pkt_retry : 1;
|
|
/** reserved */
|
|
t_u32 reserved : 3;
|
|
} MLAN_PACK_END tx_ctrl;
|
|
#endif
|
|
|
|
/** mc tx ctrl */
|
|
typedef MLAN_PACK_START struct _mc_tx_ctrl {
|
|
/** mc seq */
|
|
t_u16 mc_seq;
|
|
/** abs_tsf_expirytime*/
|
|
t_u32 abs_tsf_expirytime;
|
|
} MLAN_PACK_END mc_tx_ctrl;
|
|
|
|
/** TxPD descriptor */
|
|
typedef MLAN_PACK_START struct _TxPD {
|
|
/** BSS type */
|
|
t_u8 bss_type;
|
|
/** BSS number */
|
|
t_u8 bss_num;
|
|
/** Tx packet length */
|
|
t_u16 tx_pkt_length;
|
|
/** Tx packet offset */
|
|
t_u16 tx_pkt_offset;
|
|
/** Tx packet type */
|
|
t_u16 tx_pkt_type;
|
|
/** Tx Control */
|
|
t_u32 tx_control;
|
|
/** Pkt Priority */
|
|
t_u8 priority;
|
|
/** Transmit Pkt Flags*/
|
|
t_u8 flags;
|
|
/** Amount of time the packet has been queued
|
|
* in the driver (units = 2ms)*/
|
|
t_u8 pkt_delay_2ms;
|
|
/** reserved */
|
|
t_u8 reserved;
|
|
/** Tx Control */
|
|
t_u32 tx_control_1;
|
|
/** ra mac address */
|
|
t_u8 ra_mac[6];
|
|
t_u8 reserved3[2];
|
|
} MLAN_PACK_END TxPD, *PTxPD;
|
|
|
|
/** RxPD Descriptor */
|
|
typedef MLAN_PACK_START struct _RxPD {
|
|
/** BSS type */
|
|
t_u8 bss_type;
|
|
/** BSS number */
|
|
t_u8 bss_num;
|
|
/** Rx Packet Length */
|
|
t_u16 rx_pkt_length;
|
|
/** Rx Pkt offset */
|
|
t_u16 rx_pkt_offset;
|
|
/** Rx packet type */
|
|
t_u16 rx_pkt_type;
|
|
/** Sequence number */
|
|
t_u16 seq_num;
|
|
/** Packet Priority */
|
|
t_u8 priority;
|
|
/** Rx Packet Rate */
|
|
t_u8 rx_rate;
|
|
/** SNR */
|
|
t_s8 snr;
|
|
/** Noise Floor */
|
|
t_s8 nf;
|
|
/** [Bit 1] [Bit 0] RxRate format: legacy rate = 00 HT = 01 VHT = 10
|
|
* [Bit 3] [Bit 2] HT/VHT Bandwidth BW20 = 00 BW40 = 01 BW80 = 10 BW160
|
|
* = 11 [Bit 4] HT/VHT Guard interval LGI = 0 SGI = 1 [Bit 5] STBC
|
|
* support Enabled = 1 [Bit 6] LDPC support Enabled = 1 [Bit 7] [Bit4,
|
|
* Bit7] AX Guard interval, 00, 01, 10 */
|
|
t_u8 rate_info;
|
|
/** Reserved */
|
|
t_u8 reserved[3];
|
|
/** TDLS flags, bit 0: 0=InfraLink, 1=DirectLink */
|
|
t_u8 flags;
|
|
/**For SD8887 antenna info: 0 = 2.4G antenna a; 1 = 2.4G antenna b; 3 =
|
|
* 5G antenna; 0xff = invalid value */
|
|
t_u8 antenna;
|
|
/* [31:0] ToA of the rx packet, [63:32] ToD of the ack for the rx packet
|
|
* Both ToA and ToD are in nanoseconds */
|
|
t_u64 toa_tod_tstamps;
|
|
/** rx info */
|
|
t_u32 rx_info;
|
|
|
|
/** Reserved */
|
|
t_u8 reserved3[8];
|
|
t_u8 ta_mac[6];
|
|
t_u8 reserved4[2];
|
|
} MLAN_PACK_END RxPD, *PRxPD;
|
|
|
|
/** IEEEtypes_FrameCtl_t*/
|
|
#ifdef BIG_ENDIAN_SUPPORT
|
|
typedef MLAN_PACK_START struct _IEEEtypes_FrameCtl_t {
|
|
/** Order */
|
|
t_u8 order : 1;
|
|
/** Wep */
|
|
t_u8 wep : 1;
|
|
/** More Data */
|
|
t_u8 more_data : 1;
|
|
/** Power Mgmt */
|
|
t_u8 pwr_mgmt : 1;
|
|
/** Retry */
|
|
t_u8 retry : 1;
|
|
/** More Frag */
|
|
t_u8 more_frag : 1;
|
|
/** From DS */
|
|
t_u8 from_ds : 1;
|
|
/** To DS */
|
|
t_u8 to_ds : 1;
|
|
/** Sub Type */
|
|
t_u8 sub_type : 4;
|
|
/** Type */
|
|
t_u8 type : 2;
|
|
/** Protocol Version */
|
|
t_u8 protocol_version : 2;
|
|
} MLAN_PACK_END IEEEtypes_FrameCtl_t;
|
|
#else
|
|
typedef MLAN_PACK_START struct _IEEEtypes_FrameCtl_t {
|
|
/** Protocol Version */
|
|
t_u8 protocol_version : 2;
|
|
/** Type */
|
|
t_u8 type : 2;
|
|
/** Sub Type */
|
|
t_u8 sub_type : 4;
|
|
/** To DS */
|
|
t_u8 to_ds : 1;
|
|
/** From DS */
|
|
t_u8 from_ds : 1;
|
|
/** More Frag */
|
|
t_u8 more_frag : 1;
|
|
/** Retry */
|
|
t_u8 retry : 1;
|
|
/** Power Mgmt */
|
|
t_u8 pwr_mgmt : 1;
|
|
/** More Data */
|
|
t_u8 more_data : 1;
|
|
/** Wep */
|
|
t_u8 wep : 1;
|
|
/** Order */
|
|
t_u8 order : 1;
|
|
} MLAN_PACK_END IEEEtypes_FrameCtl_t;
|
|
#endif
|
|
|
|
/** MrvlIETypes_MgmtFrameSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_MgmtFrameSet_t {
|
|
/** Type */
|
|
t_u16 type;
|
|
/** Length */
|
|
t_u16 len;
|
|
/** Frame Control */
|
|
IEEEtypes_FrameCtl_t frame_control;
|
|
/* t_u8 frame_contents[]; */
|
|
} MLAN_PACK_END MrvlIETypes_MgmtFrameSet_t;
|
|
|
|
/** Beacon */
|
|
typedef MLAN_PACK_START struct _IEEEtypes_Beacon_t {
|
|
/** time stamp */
|
|
t_u8 time_stamp[8];
|
|
/** beacon interval */
|
|
t_u16 beacon_interval;
|
|
/** cap info */
|
|
t_u16 cap_info;
|
|
} MLAN_PACK_END IEEEtypes_Beacon_t;
|
|
|
|
/** Fixed size of station association event */
|
|
#define ASSOC_EVENT_FIX_SIZE 12
|
|
|
|
/** MrvlIEtypes_channel_band_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_channel_band_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Band Configuration */
|
|
Band_Config_t bandcfg;
|
|
/** channel */
|
|
t_u8 channel;
|
|
} MLAN_PACK_END MrvlIEtypes_channel_band_t;
|
|
|
|
#ifdef UAP_SUPPORT
|
|
/** IEEEtypes_AssocRqst_t */
|
|
typedef MLAN_PACK_START struct _IEEEtypes_AssocRqst_t {
|
|
/** Capability Info */
|
|
t_u16 cap_info;
|
|
/** Listen Interval */
|
|
t_u16 listen_interval;
|
|
/* t_u8 ie_buffer[]; */
|
|
} MLAN_PACK_END IEEEtypes_AssocRqst_t;
|
|
|
|
/** IEEEtypes_ReAssocRqst_t */
|
|
typedef MLAN_PACK_START struct _IEEEtypes_ReAssocRqst_t {
|
|
/** Capability Info */
|
|
t_u16 cap_info;
|
|
/** Listen Interval */
|
|
t_u16 listen_interval;
|
|
/** Current AP Address */
|
|
t_u8 current_ap_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/* t_u8 ie_buffer[]; */
|
|
} MLAN_PACK_END IEEEtypes_ReAssocRqst_t;
|
|
#endif /* UAP_SUPPORT */
|
|
|
|
/** wlan_802_11_header */
|
|
typedef MLAN_PACK_START struct _wlan_802_11_header {
|
|
/** Frame Control */
|
|
t_u16 frm_ctl;
|
|
/** Duration ID */
|
|
t_u16 duration_id;
|
|
/** Address1 */
|
|
mlan_802_11_mac_addr addr1;
|
|
/** Address2 */
|
|
mlan_802_11_mac_addr addr2;
|
|
/** Address3 */
|
|
mlan_802_11_mac_addr addr3;
|
|
/** Sequence Control */
|
|
t_u16 seq_ctl;
|
|
/** Address4 */
|
|
mlan_802_11_mac_addr addr4;
|
|
} MLAN_PACK_END wlan_802_11_header;
|
|
|
|
/** wlan_802_11_header packet from FW with length */
|
|
typedef MLAN_PACK_START struct _wlan_mgmt_pkt {
|
|
/** Packet Length */
|
|
t_u16 frm_len;
|
|
/** wlan_802_11_header */
|
|
wlan_802_11_header wlan_header;
|
|
} MLAN_PACK_END wlan_mgmt_pkt;
|
|
|
|
#ifdef STA_SUPPORT
|
|
/** (Beaconsize(256)-5(IEId,len,contrystr(3))/3(FirstChan,NoOfChan,MaxPwr) */
|
|
#define MAX_NO_OF_CHAN 40
|
|
|
|
/** Channel-power table entries */
|
|
typedef MLAN_PACK_START struct _chan_power_11d {
|
|
/** 11D channel */
|
|
t_u8 chan;
|
|
/** Band for channel */
|
|
t_u16 band;
|
|
/** 11D channel power */
|
|
t_u8 pwr;
|
|
/** AP seen on channel */
|
|
t_u8 ap_seen;
|
|
} MLAN_PACK_END chan_power_11d_t;
|
|
|
|
/** Region channel info */
|
|
typedef MLAN_PACK_START struct _parsed_region_chan_11d {
|
|
/** 11D channel power per channel */
|
|
chan_power_11d_t chan_pwr[MAX_NO_OF_CHAN];
|
|
/** 11D number of channels */
|
|
t_u8 no_of_chan;
|
|
} MLAN_PACK_END parsed_region_chan_11d_t;
|
|
#endif /* STA_SUPPORT */
|
|
|
|
/** ChanScanMode_t */
|
|
typedef MLAN_PACK_START struct _ChanScanMode_t {
|
|
#ifdef BIG_ENDIAN_SUPPORT
|
|
/** rnr_flag, host use only */
|
|
t_u8 rnr_flag : 1;
|
|
/** First passive scan then active scan */
|
|
t_u8 passive_to_active_scan : 1;
|
|
/** First channel in scan */
|
|
t_u8 first_chan : 1;
|
|
/** Enable hidden ssid report */
|
|
t_u8 hidden_ssid_report : 1;
|
|
/** Enable probe response timeout */
|
|
t_u8 rsp_timeout_en : 1;
|
|
/** Multidomain scan mode */
|
|
t_u8 multidomain_scan : 1;
|
|
/** Disble channel filtering flag */
|
|
t_u8 disable_chan_filt : 1;
|
|
/** Channel scan mode passive flag */
|
|
t_u8 passive_scan : 1;
|
|
#else
|
|
/** Channel scan mode passive flag */
|
|
t_u8 passive_scan : 1;
|
|
/** Disble channel filtering flag */
|
|
t_u8 disable_chan_filt : 1;
|
|
/** Multidomain scan mode */
|
|
t_u8 multidomain_scan : 1;
|
|
/** Enable probe response timeout */
|
|
t_u8 rsp_timeout_en : 1;
|
|
/** Enable hidden ssid report */
|
|
t_u8 hidden_ssid_report : 1;
|
|
/** First channel in scan */
|
|
t_u8 first_chan : 1;
|
|
/** First passive scan then active scan */
|
|
t_u8 passive_to_active_scan : 1;
|
|
/** rnr_flag, host use only */
|
|
t_u8 rnr_flag : 1;
|
|
#endif
|
|
} MLAN_PACK_END ChanScanMode_t;
|
|
|
|
/** ChanScanParamSet_t */
|
|
typedef MLAN_PACK_START struct _ChanScanParamSet_t {
|
|
/** Channel scan parameter : band config */
|
|
Band_Config_t bandcfg;
|
|
/** Channel scan parameter : Channel number */
|
|
t_u8 chan_number;
|
|
/** Channel scan parameter : Channel scan mode */
|
|
ChanScanMode_t chan_scan_mode;
|
|
/** Channel scan parameter : Minimum scan time */
|
|
t_u16 min_scan_time;
|
|
/** Channel scan parameter : Maximum scan time */
|
|
t_u16 max_scan_time;
|
|
} MLAN_PACK_END ChanScanParamSet_t;
|
|
|
|
/** MrvlIEtypes_ChanListParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_ChanListParamSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Channel scan parameters */
|
|
ChanScanParamSet_t chan_scan_param[1];
|
|
} MLAN_PACK_END MrvlIEtypes_ChanListParamSet_t;
|
|
|
|
/** MrvlIEtypes_EESParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_EESParamSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** EES scan mode */
|
|
t_u16 ees_mode;
|
|
/** EES report condition */
|
|
t_u16 report_cond;
|
|
/** EES High Period scan interval */
|
|
t_u16 high_period;
|
|
/** EES High Period scan count */
|
|
t_u16 high_period_count;
|
|
/** EES Medium Period scan interval */
|
|
t_u16 mid_period;
|
|
/** EES Medium Period scan count */
|
|
t_u16 mid_period_count;
|
|
/** EES Low Period scan interval */
|
|
t_u16 low_period;
|
|
/** EES Low Period scan count */
|
|
t_u16 low_period_count;
|
|
} MLAN_PACK_END MrvlIEtypes_EESParamSet_t;
|
|
|
|
/** MrvlIEtype_EESNetworkCfg_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtype_EESNetworkCfg_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Number of networks in the list */
|
|
t_u8 network_count;
|
|
/** Maximum number of connection */
|
|
t_u8 max_conn_count;
|
|
/** Black List Exp */
|
|
t_u8 black_list_exp;
|
|
} MLAN_PACK_END MrvlIEtype_EESNetworkCfg_t;
|
|
|
|
/** ChanBandParamSet_t */
|
|
typedef struct _ChanBandParamSet_t {
|
|
/** Channel scan parameter : band config */
|
|
Band_Config_t bandcfg;
|
|
/** Channel number */
|
|
t_u8 chan_number;
|
|
} ChanBandParamSet_t;
|
|
|
|
/** MrvlIEtypes_ChanBandListParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_ChanBandListParamSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Channel Band parameters */
|
|
ChanBandParamSet_t chan_band_param[1];
|
|
} MLAN_PACK_END MrvlIEtypes_ChanBandListParamSet_t;
|
|
|
|
/** MrvlIEtypes_RatesParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RatesParamSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Rates */
|
|
t_u8 rates[1];
|
|
} MLAN_PACK_END MrvlIEtypes_RatesParamSet_t;
|
|
|
|
/** _MrvlIEtypes_Bssid_List_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Bssid_List_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** BSSID */
|
|
t_u8 bssid[MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END MrvlIEtypes_Bssid_List_t;
|
|
|
|
/** MrvlIEtypes_SsIdParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_SsIdParamSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** SSID */
|
|
t_u8 ssid[1];
|
|
} MLAN_PACK_END MrvlIEtypes_SsIdParamSet_t;
|
|
|
|
/**MrvlIEtypes_AssocType_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_HostMlme_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Authentication type */
|
|
t_u8 host_mlme;
|
|
} MLAN_PACK_END MrvlIEtypes_HostMlme_t;
|
|
|
|
/** MrvlIEtypes_MultiAp_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_MultiAp_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Multi AP flag */
|
|
t_u8 flag;
|
|
} MLAN_PACK_END MrvlIEtypes_MultiAp_t;
|
|
|
|
/** MrvlIEtypes_NumProbes_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_NumProbes_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Number of probes */
|
|
t_u16 num_probes;
|
|
} MLAN_PACK_END MrvlIEtypes_NumProbes_t;
|
|
|
|
/** MrvlIEtypes_WildCardSsIdParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_WildCardSsIdParamSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Maximum SSID length */
|
|
t_u8 max_ssid_length;
|
|
/** SSID */
|
|
t_u8 ssid[1];
|
|
} MLAN_PACK_END MrvlIEtypes_WildCardSsIdParamSet_t;
|
|
|
|
/**TSF data size */
|
|
#define TSF_DATA_SIZE 8
|
|
/** Table of TSF values returned in the scan result */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_TsfTimestamp_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** the length of each TSF data is 8 bytes, could be multiple TSF here
|
|
*/
|
|
t_u8 tsf_data[1];
|
|
} MLAN_PACK_END MrvlIEtypes_TsfTimestamp_t;
|
|
|
|
/** CfParamSet_t */
|
|
typedef MLAN_PACK_START struct _CfParamSet_t {
|
|
/** CF parameter : Count */
|
|
t_u8 cfp_cnt;
|
|
/** CF parameter : Period */
|
|
t_u8 cfp_period;
|
|
/** CF parameter : Duration */
|
|
t_u16 cfp_max_duration;
|
|
/** CF parameter : Duration remaining */
|
|
t_u16 cfp_duration_remaining;
|
|
} MLAN_PACK_END CfParamSet_t;
|
|
|
|
/** IbssParamSet_t */
|
|
typedef MLAN_PACK_START struct _IbssParamSet_t {
|
|
/** ATIM window value */
|
|
t_u16 atim_window;
|
|
} MLAN_PACK_END IbssParamSet_t;
|
|
|
|
/** MrvlIEtypes_SsParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_SsParamSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** CF/IBSS parameters sets */
|
|
union {
|
|
/** CF parameter set */
|
|
CfParamSet_t cf_param_set[1];
|
|
/** IBSS parameter set */
|
|
IbssParamSet_t ibss_param_set[1];
|
|
} cf_ibss;
|
|
} MLAN_PACK_END MrvlIEtypes_SsParamSet_t;
|
|
|
|
/** FhParamSet_t */
|
|
typedef MLAN_PACK_START struct _FhParamSet_t {
|
|
/** FH parameter : Dwell time */
|
|
t_u16 dwell_time;
|
|
/** FH parameter : Hop set */
|
|
t_u8 hop_set;
|
|
/** FH parameter : Hop pattern */
|
|
t_u8 hop_pattern;
|
|
/** FH parameter : Hop index */
|
|
t_u8 hop_index;
|
|
} MLAN_PACK_END FhParamSet_t;
|
|
|
|
/** DsParamSet_t */
|
|
typedef MLAN_PACK_START struct _DsParamSet_t {
|
|
/** Current channel number */
|
|
t_u8 current_chan;
|
|
} MLAN_PACK_END DsParamSet_t;
|
|
|
|
/** MrvlIEtypes_PhyParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_PhyParamSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** FH/DS parameters */
|
|
union {
|
|
/** FH parameter set */
|
|
FhParamSet_t fh_param_set[1];
|
|
/** DS parameter set */
|
|
DsParamSet_t ds_param_set[1];
|
|
} fh_ds;
|
|
} MLAN_PACK_END MrvlIEtypes_PhyParamSet_t;
|
|
|
|
/* Auth type to be used in the Authentication portion of an Assoc seq */
|
|
/** MrvlIEtypes_AuthType_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_AuthType_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Authentication type */
|
|
t_u16 auth_type;
|
|
} MLAN_PACK_END MrvlIEtypes_AuthType_t;
|
|
|
|
/** MrvlIEtypes_ScanChanGap_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_ScanChanGap_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Time gap in units to TUs to be used between
|
|
* two consecutive channels scan */
|
|
t_u16 gap;
|
|
} MLAN_PACK_END MrvlIEtypes_ScanChanGap_t;
|
|
|
|
/** channel statictics */
|
|
typedef MLAN_PACK_START struct _chan_statistics_t {
|
|
/** channle number */
|
|
t_u8 chan_num;
|
|
/** band info */
|
|
Band_Config_t bandcfg;
|
|
/** flags */
|
|
t_u8 flags;
|
|
/** noise */
|
|
t_s8 noise;
|
|
/** total network */
|
|
t_u16 total_networks;
|
|
/** scan duration */
|
|
t_u16 cca_scan_duration;
|
|
/** busy duration */
|
|
t_u16 cca_busy_duration;
|
|
} MLAN_PACK_END chan_statistics_t;
|
|
|
|
/** channel statictics tlv */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_ChannelStats_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** channel statictics */
|
|
chan_statistics_t chanStat[];
|
|
} MLAN_PACK_END MrvlIEtypes_ChannelStats_t;
|
|
|
|
/** MrvlIETypes_ActionFrame_t */
|
|
typedef MLAN_PACK_START struct {
|
|
MrvlIEtypesHeader_t header; /**< Header */
|
|
|
|
t_u8 srcAddr[MLAN_MAC_ADDR_LENGTH];
|
|
t_u8 dstAddr[MLAN_MAC_ADDR_LENGTH];
|
|
|
|
IEEEtypes_ActionFrame_t actionFrame;
|
|
|
|
} MLAN_PACK_END MrvlIETypes_ActionFrame_t;
|
|
|
|
/** MrvlIEtypes_RxBaSync_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RxBaSync_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** mac address */
|
|
t_u8 mac[MLAN_MAC_ADDR_LENGTH];
|
|
/** tid */
|
|
t_u8 tid;
|
|
/** reserved field */
|
|
t_u8 reserved;
|
|
/** start seq num */
|
|
t_u16 seq_num;
|
|
/** bitmap len */
|
|
t_u16 bitmap_len;
|
|
/** bitmap */
|
|
t_u8 bitmap[1];
|
|
} MLAN_PACK_END MrvlIEtypes_RxBaSync_t;
|
|
|
|
/** MrvlIEtypes_RsnParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RsnParamSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** RSN IE */
|
|
t_u8 rsn_ie[];
|
|
} MLAN_PACK_END MrvlIEtypes_RsnParamSet_t;
|
|
|
|
/** MrvlIEtypes_SecurityCfg_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_SecurityCfg_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** enable 11w */
|
|
t_u8 use_mfp;
|
|
} MLAN_PACK_END MrvlIEtypes_SecurityCfg_t;
|
|
|
|
/** Host Command ID : _HostCmd_DS_BEACON_STUCK_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_BEACON_STUCK_CFG {
|
|
/** ACT_GET/ACT_SET */
|
|
t_u8 action;
|
|
/** No of beacon interval after which firmware will check if beacon Tx
|
|
* is going fine */
|
|
t_u8 beacon_stuck_detect_count;
|
|
/** Upon performing MAC reset, no of beacon interval after which
|
|
* firmware will check if recovery was successful */
|
|
t_u8 recovery_confirm_count;
|
|
} MLAN_PACK_END HostCmd_DS_BEACON_STUCK_CFG;
|
|
|
|
/** Key Info flag for multicast key */
|
|
#define KEY_INFO_MCAST_KEY 0x01
|
|
/** Key Info flag for unicast key */
|
|
#define KEY_INFO_UCAST_KEY 0x02
|
|
/** Key Info flag for enable key */
|
|
#define KEY_INFO_ENABLE_KEY 0x04
|
|
/** Key Info flag for default key */
|
|
#define KEY_INFO_DEFAULT_KEY 0x08
|
|
/** Key Info flag for TX key */
|
|
#define KEY_INFO_TX_KEY 0x10
|
|
/** Key Info flag for RX key */
|
|
#define KEY_INFO_RX_KEY 0x20
|
|
#define KEY_INFO_CMAC_AES_KEY 0x400
|
|
/** PN size for WPA/WPA2 */
|
|
#define WPA_PN_SIZE 8
|
|
/** PN size for PMF IGTK */
|
|
#define IGTK_PN_SIZE 8
|
|
/** WAPI KEY size */
|
|
#define WAPI_KEY_SIZE 32
|
|
/** key params fix size */
|
|
#define KEY_PARAMS_FIXED_LEN 10
|
|
/** key index mask */
|
|
#define KEY_INDEX_MASK 0xf
|
|
|
|
/** wep_param */
|
|
typedef MLAN_PACK_START struct _wep_param_t {
|
|
/** key_len */
|
|
t_u16 key_len;
|
|
/** wep key */
|
|
t_u8 key[MAX_WEP_KEY_SIZE];
|
|
} MLAN_PACK_END wep_param_t;
|
|
|
|
/** tkip_param */
|
|
typedef MLAN_PACK_START struct _tkip_param {
|
|
/** Rx packet num */
|
|
t_u8 pn[WPA_PN_SIZE];
|
|
/** key_len */
|
|
t_u16 key_len;
|
|
/** tkip key */
|
|
t_u8 key[WPA_TKIP_KEY_LEN];
|
|
} MLAN_PACK_END tkip_param;
|
|
|
|
/** aes_param */
|
|
typedef MLAN_PACK_START struct _aes_param {
|
|
/** Rx packet num */
|
|
t_u8 pn[WPA_PN_SIZE];
|
|
/** key_len */
|
|
t_u16 key_len;
|
|
/** aes key */
|
|
t_u8 key[WPA_AES_KEY_LEN];
|
|
} MLAN_PACK_END aes_param;
|
|
|
|
/** wapi_param */
|
|
typedef MLAN_PACK_START struct _wapi_param {
|
|
/** Rx packet num */
|
|
t_u8 pn[PN_SIZE];
|
|
/** key_len */
|
|
t_u16 key_len;
|
|
/** wapi key */
|
|
t_u8 key[WAPI_KEY_SIZE];
|
|
} MLAN_PACK_END wapi_param;
|
|
|
|
/** cmac_aes_param */
|
|
typedef MLAN_PACK_START struct _cmac_aes_param {
|
|
/** IGTK pn */
|
|
t_u8 ipn[IGTK_PN_SIZE];
|
|
/** key_len */
|
|
t_u16 key_len;
|
|
/** aes key */
|
|
t_u8 key[CMAC_AES_KEY_LEN];
|
|
} MLAN_PACK_END cmac_aes_param;
|
|
|
|
/** gmac_aes_256_param */
|
|
typedef MLAN_PACK_START struct _gmac_aes_256_param {
|
|
/** IGTK pn */
|
|
t_u8 ipn[IGTK_PN_SIZE];
|
|
/** key_len */
|
|
t_u16 key_len;
|
|
/** aes key */
|
|
t_u8 key[WPA_IGTK_256_KEY_LEN];
|
|
} MLAN_PACK_END gmac_aes_256_param;
|
|
|
|
/** gmac_param */
|
|
typedef MLAN_PACK_START struct _gcmp_param {
|
|
/** GCMP pn */
|
|
t_u8 pn[WPA_PN_SIZE];
|
|
/** key_len */
|
|
t_u16 key_len;
|
|
/** aes key */
|
|
t_u8 key[WPA_GCMP_KEY_LEN];
|
|
} MLAN_PACK_END gcmp_param;
|
|
|
|
/** ccmp256_param */
|
|
typedef MLAN_PACK_START struct _ccmp256_param {
|
|
/** CCMP pn */
|
|
t_u8 pn[WPA_PN_SIZE];
|
|
/** key_len */
|
|
t_u16 key_len;
|
|
/** ccmp256 key */
|
|
t_u8 key[WPA_CCMP_256_KEY_LEN];
|
|
} MLAN_PACK_END ccmp_256_param;
|
|
|
|
/** MrvlIEtype_KeyParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtype_KeyParamSetV2_t {
|
|
/** Type ID */
|
|
t_u16 type;
|
|
/** Length of Payload */
|
|
t_u16 length;
|
|
/** mac address */
|
|
t_u8 mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** key index */
|
|
t_u8 key_idx;
|
|
/** Type of Key: WEP=0, TKIP=1, AES=2, WAPI=3 AES_CMAC=4 */
|
|
t_u8 key_type;
|
|
/** Key Control Info specific to a key_type_id */
|
|
t_u16 key_info;
|
|
union {
|
|
/** wep key param */
|
|
wep_param_t wep;
|
|
/** tkip key param */
|
|
tkip_param tkip;
|
|
/** aes key param */
|
|
aes_param aes;
|
|
/** wapi key param */
|
|
wapi_param wapi;
|
|
/** IGTK key param */
|
|
cmac_aes_param cmac_aes;
|
|
gmac_aes_256_param gmac_aes;
|
|
/** gcmp key param */
|
|
gcmp_param gcmp;
|
|
/** ccmp 256 key parameters */
|
|
ccmp_256_param ccmp256;
|
|
} key_params;
|
|
} MLAN_PACK_END MrvlIEtype_KeyParamSetV2_t;
|
|
|
|
/** HostCmd_DS_802_11_KEY_MATERIAL */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_KEY_MATERIAL {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Key parameter set */
|
|
MrvlIEtype_KeyParamSetV2_t key_param_set;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_KEY_MATERIAL;
|
|
|
|
/** HostCmd_DS_GTK_REKEY_PARAMS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_GTK_REKEY_PARAMS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Key confirmation key */
|
|
t_u8 kck[MLAN_KCK_LEN];
|
|
/** Key encryption key */
|
|
t_u8 kek[MLAN_KEK_LEN];
|
|
/** Replay counter low 32 bit */
|
|
t_u32 replay_ctr_low;
|
|
/** Replay counter high 32 bit */
|
|
t_u32 replay_ctr_high;
|
|
} MLAN_PACK_END HostCmd_DS_GTK_REKEY_PARAMS;
|
|
|
|
/** Data structure of WMM QoS information */
|
|
typedef MLAN_PACK_START struct _WmmQosInfo_t {
|
|
#ifdef BIG_ENDIAN_SUPPORT
|
|
/** QoS UAPSD */
|
|
t_u8 qos_uapsd : 1;
|
|
/** Reserved */
|
|
t_u8 reserved : 3;
|
|
/** Parameter set count */
|
|
t_u8 para_set_count : 4;
|
|
#else
|
|
/** Parameter set count */
|
|
t_u8 para_set_count : 4;
|
|
/** Reserved */
|
|
t_u8 reserved : 3;
|
|
/** QoS UAPSD */
|
|
t_u8 qos_uapsd : 1;
|
|
#endif /* BIG_ENDIAN_SUPPORT */
|
|
} MLAN_PACK_END WmmQosInfo_t, *pWmmQosInfo_t;
|
|
|
|
/** Data structure of WMM ECW */
|
|
typedef MLAN_PACK_START struct _WmmEcw_t {
|
|
#ifdef BIG_ENDIAN_SUPPORT
|
|
/** Maximum Ecw */
|
|
t_u8 ecw_max : 4;
|
|
/** Minimum Ecw */
|
|
t_u8 ecw_min : 4;
|
|
#else
|
|
/** Minimum Ecw */
|
|
t_u8 ecw_min : 4;
|
|
/** Maximum Ecw */
|
|
t_u8 ecw_max : 4;
|
|
#endif /* BIG_ENDIAN_SUPPORT */
|
|
} MLAN_PACK_END WmmEcw_t, *pWmmEcw_t;
|
|
|
|
/** Data structure of WMM Aci/Aifsn */
|
|
typedef MLAN_PACK_START struct _WmmAciAifsn_t {
|
|
#ifdef BIG_ENDIAN_SUPPORT
|
|
/** Reserved */
|
|
t_u8 reserved : 1;
|
|
/** Aci */
|
|
t_u8 aci : 2;
|
|
/** Acm */
|
|
t_u8 acm : 1;
|
|
/** Aifsn */
|
|
t_u8 aifsn : 4;
|
|
#else
|
|
/** Aifsn */
|
|
t_u8 aifsn : 4;
|
|
/** Acm */
|
|
t_u8 acm : 1;
|
|
/** Aci */
|
|
t_u8 aci : 2;
|
|
/** Reserved */
|
|
t_u8 reserved : 1;
|
|
#endif /* BIG_ENDIAN_SUPPORT */
|
|
} MLAN_PACK_END WmmAciAifsn_t, *pWmmAciAifsn_t;
|
|
|
|
/** Data structure of WMM AC parameters */
|
|
typedef MLAN_PACK_START struct _WmmAcParameters_t {
|
|
WmmAciAifsn_t aci_aifsn; /**< AciAifSn */
|
|
WmmEcw_t ecw; /**< Ecw */
|
|
t_u16 tx_op_limit; /**< Tx op limit */
|
|
} MLAN_PACK_END WmmAcParameters_t, *pWmmAcParameters_t;
|
|
|
|
/** Data structure of WMM parameter */
|
|
typedef MLAN_PACK_START struct _WmmParameter_t {
|
|
/** OuiType: 00:50:f2:02 */
|
|
t_u8 ouitype[4];
|
|
/** Oui subtype: 01 */
|
|
t_u8 ouisubtype;
|
|
/** version: 01 */
|
|
t_u8 version;
|
|
/** QoS information */
|
|
t_u8 qos_info;
|
|
/** Reserved */
|
|
t_u8 reserved;
|
|
/** AC Parameters Record WMM_AC_BE, WMM_AC_BK, WMM_AC_VI, WMM_AC_VO */
|
|
WmmAcParameters_t ac_params[MAX_AC_QUEUES];
|
|
} MLAN_PACK_END WmmParameter_t, *pWmmParameter_t;
|
|
|
|
/** Data structure of Host command WMM_PARAM_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_WMM_PARAM_CONFIG {
|
|
/** action */
|
|
t_u16 action;
|
|
/** AC Parameters Record WMM_AC_BE, WMM_AC_BK, WMM_AC_VI, WMM_AC_VO */
|
|
WmmAcParameters_t ac_params[MAX_AC_QUEUES];
|
|
} MLAN_PACK_END HostCmd_DS_WMM_PARAM_CONFIG;
|
|
|
|
/* Definition of firmware host command */
|
|
/** HostCmd_DS_GEN */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_GEN {
|
|
/** Command */
|
|
t_u16 command;
|
|
/** Size */
|
|
t_u16 size;
|
|
/** Sequence number */
|
|
t_u16 seq_num;
|
|
/** Result */
|
|
t_u16 result;
|
|
} MLAN_PACK_END HostCmd_DS_GEN
|
|
|
|
;
|
|
|
|
/** Size of HostCmd_DS_GEN */
|
|
#define S_DS_GEN sizeof(HostCmd_DS_GEN)
|
|
|
|
/** mod_group_setting */
|
|
typedef MLAN_PACK_START struct _mod_group_setting {
|
|
/** modulation group */
|
|
t_u8 mod_group;
|
|
/** power */
|
|
t_u8 power;
|
|
} MLAN_PACK_END mod_group_setting;
|
|
|
|
/** MrvlIETypes_ChanTRPCConfig_t */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_ChanTRPCConfig_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** start freq */
|
|
t_u16 start_freq;
|
|
/* channel width */
|
|
t_u8 width;
|
|
/** channel number */
|
|
t_u8 chan_num;
|
|
/** mode groups */
|
|
mod_group_setting mod_group[1];
|
|
} MLAN_PACK_END MrvlIETypes_ChanTRPCConfig_t;
|
|
|
|
/* HostCmd_DS_CHANNEL_TRPC_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CHANNEL_TRPC_CONFIG {
|
|
/** action */
|
|
t_u16 action;
|
|
/** 0/1/2/3 */
|
|
t_u16 sub_band;
|
|
/** chan TRPC config */
|
|
// MrvlIETypes_ChanTRPCConfig_t tlv[];
|
|
} MLAN_PACK_END HostCmd_DS_CHANNEL_TRPC_CONFIG;
|
|
|
|
/** Address type: broadcast */
|
|
#define ADDR_TYPE_BROADCAST 1
|
|
/* Address type: unicast */
|
|
#define ADDR_TYPE_UNICAST 2
|
|
/* Address type: multicast */
|
|
#define ADDR_TYPE_MULTICAST 3
|
|
|
|
/** Ether type: any */
|
|
#define ETHER_TYPE_ANY 0xffff
|
|
/** Ether type: ARP */
|
|
#define ETHER_TYPE_ARP 0x0608
|
|
|
|
/** IPv4 address any */
|
|
#define IPV4_ADDR_ANY 0xffffffff
|
|
|
|
/** Header structure for ARP filter */
|
|
typedef MLAN_PACK_START struct _arpfilter_header {
|
|
/** Type */
|
|
t_u16 type;
|
|
/** TLV length */
|
|
t_u16 len;
|
|
} MLAN_PACK_END arpfilter_header;
|
|
|
|
/** Filter entry structure */
|
|
typedef MLAN_PACK_START struct _filter_entry {
|
|
/** Address type */
|
|
t_u16 addr_type;
|
|
/** Ether type */
|
|
t_u16 eth_type;
|
|
/** IPv4 address */
|
|
t_u32 ipv4_addr;
|
|
} MLAN_PACK_END filter_entry;
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_MEF_CFG {
|
|
/** Criteria */
|
|
t_u32 criteria;
|
|
/** Number of entries */
|
|
t_u16 nentries;
|
|
} MLAN_PACK_END HostCmd_DS_MEF_CFG;
|
|
|
|
#define MAX_NUM_STACK_BYTES 100
|
|
/** mef stack struct*/
|
|
typedef MLAN_PACK_START struct _mef_stack {
|
|
/** length of byte*/
|
|
t_u16 sp;
|
|
/** data of filter items*/
|
|
t_u8 byte[MAX_NUM_STACK_BYTES];
|
|
} MLAN_PACK_END mef_stack;
|
|
|
|
/** mef entry struct */
|
|
typedef MLAN_PACK_START struct _mef_entry_header {
|
|
/**mode:1->hostsleep;2->non hostsleep mode*/
|
|
t_u8 mode;
|
|
/**action=0->discard and not wake host
|
|
* action=1->discard and wake host
|
|
* action=3->allow and wake host*/
|
|
t_u8 action;
|
|
} MLAN_PACK_END mef_entry_header;
|
|
|
|
/** mef op struct is to help to generate mef data*/
|
|
typedef MLAN_PACK_START struct _mef_op {
|
|
/** operand_type*/
|
|
t_u8 operand_type;
|
|
/** reserved*/
|
|
t_u8 rsvd[3];
|
|
/** data */
|
|
t_u8 val[MAX_NUM_BYTE_SEQ + 1];
|
|
} MLAN_PACK_END mef_op;
|
|
|
|
/** Structure definition for low power mode cfg command */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_LOW_POWER_MODE_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Low power mode */
|
|
t_u16 lpm;
|
|
} MLAN_PACK_END HostCmd_DS_LOW_POWER_MODE_CFG;
|
|
|
|
/* HostCmd_DS_802_11_SLEEP_PERIOD */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_SLEEP_PERIOD {
|
|
/** ACT_GET/ACT_SET */
|
|
t_u16 action;
|
|
|
|
/** Sleep Period in msec */
|
|
t_u16 sleep_pd;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_SLEEP_PERIOD;
|
|
|
|
/* HostCmd_DS_802_11_SLEEP_PARAMS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_SLEEP_PARAMS {
|
|
/** ACT_GET/ACT_SET */
|
|
t_u16 action;
|
|
/** Sleep clock error in ppm */
|
|
t_u16 error;
|
|
/** Wakeup offset in usec */
|
|
t_u16 offset;
|
|
/** Clock stabilization time in usec */
|
|
t_u16 stable_time;
|
|
/** Control periodic calibration */
|
|
t_u8 cal_control;
|
|
/** Control the use of external sleep clock */
|
|
t_u8 external_sleep_clk;
|
|
/** Reserved field, should be set to zero */
|
|
t_u16 reserved;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_SLEEP_PARAMS;
|
|
|
|
/** Sleep response control */
|
|
typedef enum _sleep_resp_ctrl {
|
|
RESP_NOT_NEEDED = 0,
|
|
RESP_NEEDED,
|
|
} sleep_resp_ctrl;
|
|
|
|
/** Structure definition for the new ieee power save parameters*/
|
|
typedef MLAN_PACK_START struct __ps_param {
|
|
/** Null packet interval */
|
|
t_u16 null_pkt_interval;
|
|
/** Num dtims */
|
|
t_u16 multiple_dtims;
|
|
/** becaon miss interval */
|
|
t_u16 bcn_miss_timeout;
|
|
/** local listen interval */
|
|
t_u16 local_listen_interval;
|
|
/** Adhoc awake period */
|
|
t_u16 adhoc_wake_period;
|
|
/** mode - (0x01 - firmware to automatically choose PS_POLL or NULL
|
|
* mode, 0x02 - PS_POLL, 0x03 - NULL mode )
|
|
*/
|
|
t_u16 mode;
|
|
/** Delay to PS in milliseconds */
|
|
t_u16 delay_to_ps;
|
|
} MLAN_PACK_END ps_param;
|
|
|
|
/** Structure definition for the new auto deep sleep command */
|
|
typedef MLAN_PACK_START struct __auto_ds_param {
|
|
/** Deep sleep inactivity timeout */
|
|
t_u16 deep_sleep_timeout;
|
|
} MLAN_PACK_END auto_ds_param;
|
|
|
|
/** Structure definition for sleep confirmation in the new ps command */
|
|
typedef MLAN_PACK_START struct __sleep_confirm_param {
|
|
/** response control 0x00 - response not needed, 0x01 - response needed
|
|
*/
|
|
t_u16 resp_ctrl;
|
|
} MLAN_PACK_END sleep_confirm_param;
|
|
|
|
/* bit define for pre_asleep*/
|
|
#define BLOCK_CMD_IN_PRE_ASLEEP MBIT(0)
|
|
/** MrvlIEtypes_ext_ps_param_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_ext_ps_param_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** mode: bit0:BLOCK_CMD_IN_PRE_ASLEEP */
|
|
t_u32 mode;
|
|
} MLAN_PACK_END MrvlIEtypes_ext_ps_param_t;
|
|
|
|
/** ext_ps_param_t */
|
|
typedef MLAN_PACK_START struct _ext_ps_param {
|
|
/** reserved */
|
|
t_u16 reserved;
|
|
/** ext_ps_param tlv */
|
|
MrvlIEtypes_ext_ps_param_t param;
|
|
} MLAN_PACK_END ext_ps_param;
|
|
|
|
/** bitmap for get auto deepsleep */
|
|
#define BITMAP_AUTO_DS 0x01
|
|
/** bitmap for sta power save */
|
|
#define BITMAP_STA_PS 0x10
|
|
/** bitmap for beacon timeout */
|
|
#define BITMAP_BCN_TMO 0x20
|
|
/** bitmap for uap inactivity based PS */
|
|
#define BITMAP_UAP_INACT_PS 0x100
|
|
/** bitmap for uap DTIM PS */
|
|
#define BITMAP_UAP_DTIM_PS 0x200
|
|
|
|
/** Structure definition for the new ieee power save parameters*/
|
|
typedef MLAN_PACK_START struct _auto_ps_param {
|
|
/** bitmap for enable power save mode */
|
|
t_u16 ps_bitmap;
|
|
/* auto deep sleep parameter,
|
|
* sta power save parameter
|
|
* uap inactivity parameter
|
|
* uap DTIM parameter */
|
|
} MLAN_PACK_END auto_ps_param;
|
|
|
|
/** fix size for auto ps */
|
|
#define AUTO_PS_FIX_SIZE 4
|
|
|
|
/** TLV type : auto ds param */
|
|
#define TLV_TYPE_AUTO_DS_PARAM (PROPRIETARY_TLV_BASE_ID + 0x71) /* 0x0171 */
|
|
/** TLV type : ps param */
|
|
#define TLV_TYPE_PS_PARAM (PROPRIETARY_TLV_BASE_ID + 0x72) /* 0x0172 */
|
|
/** TLV type : beacon timeout */
|
|
#define TLV_TYPE_BCN_TIMEOUT (PROPRIETARY_TLV_BASE_ID + 0x11F) /* 0x011F */
|
|
/** TLV type: ps_ext_param */
|
|
#define TLV_TYPE_PS_EXT_PARAM (PROPRIETARY_TLV_BASE_ID + 0x15F) /* 0x25F */
|
|
|
|
/** MrvlIEtypes_auto_ds_param_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_auto_ds_param_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** auto ds param */
|
|
auto_ds_param param;
|
|
} MLAN_PACK_END MrvlIEtypes_auto_ds_param_t;
|
|
|
|
/** MrvlIEtypes_ps_param_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_ps_param_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** ps param */
|
|
ps_param param;
|
|
} MLAN_PACK_END MrvlIEtypes_ps_param_t;
|
|
|
|
/** MrvlIEtypes_bcn_timeout_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_bcn_timeout_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Beacon miss timeout period window */
|
|
t_u16 bcn_miss_tmo_window;
|
|
/** Beacon miss timeout period */
|
|
t_u16 bcn_miss_tmo_period;
|
|
/** Beacon reacquire timeout period window */
|
|
t_u16 bcn_rq_tmo_window;
|
|
/** Beacon reacquire timeout period */
|
|
t_u16 bcn_rq_tmo_period;
|
|
} MLAN_PACK_END MrvlIEtypes_bcn_timeout_t;
|
|
|
|
/** Structure definition for new power save command */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_PS_MODE_ENH {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Data speciifc to action */
|
|
/* For IEEE power save data will be as
|
|
* UINT16 mode (0x01 - firmware to automatically choose PS_POLL or NULL
|
|
* mode, 0x02 - PS_POLL, 0x03 - NULL mode ) UINT16 NullpacketInterval
|
|
* UINT16 NumDtims
|
|
* UINT16 BeaconMissInterval
|
|
* UINT16 locallisteninterval
|
|
* UINT16 adhocawakeperiod */
|
|
|
|
/* For auto deep sleep */
|
|
/* UINT16 Deep sleep inactivity timeout*/
|
|
|
|
/* For PS sleep confirm
|
|
* UINT16 responeCtrl - 0x00 - reponse from fw not needed, 0x01 -
|
|
* response from fw is needed */
|
|
|
|
union {
|
|
/** PS param definition */
|
|
ps_param opt_ps;
|
|
/** Auto ds param definition */
|
|
auto_ds_param auto_ds;
|
|
/** Sleep comfirm param definition */
|
|
sleep_confirm_param sleep_cfm;
|
|
/** bitmap for get PS info and Disable PS mode */
|
|
t_u16 ps_bitmap;
|
|
/** auto ps param */
|
|
auto_ps_param auto_ps;
|
|
/** ext ps param */
|
|
ext_ps_param ext_param;
|
|
} params;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_PS_MODE_ENH;
|
|
|
|
/** FW VERSION tlv */
|
|
#define TLV_TYPE_FW_VER_INFO (PROPRIETARY_TLV_BASE_ID + 0xC7) /* 0x1C7 */
|
|
|
|
/** MrvlIEtypes_fw_ver_info_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_fw_ver_info_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** API id */
|
|
t_u16 api_id;
|
|
/** major version */
|
|
t_u8 major_ver;
|
|
/** minor version */
|
|
t_u8 minor_ver;
|
|
} MLAN_PACK_END MrvlIEtypes_fw_ver_info_t;
|
|
|
|
/** API ID */
|
|
enum API_VER_ID {
|
|
KEY_API_VER_ID = 1,
|
|
FW_API_VER_ID = 2,
|
|
UAP_FW_API_VER_ID = 3,
|
|
CHANRPT_API_VER_ID = 4,
|
|
FW_HOTFIX_VER_ID = 5,
|
|
};
|
|
|
|
/** FW AP V15 */
|
|
#define HOST_API_VERSION_V15 15
|
|
/** FW minor version 1 */
|
|
#define FW_MINOR_VERSION_1 1
|
|
|
|
/** UAP FW version 2 */
|
|
#define UAP_FW_VERSION_2 0x2
|
|
|
|
/** HostCMD_DS_APCMD_ACS_SCAN */
|
|
typedef MLAN_PACK_START struct _HostCMD_DS_APCMD_ACS_SCAN {
|
|
/** band */
|
|
Band_Config_t bandcfg;
|
|
/** channel */
|
|
t_u8 chan;
|
|
} MLAN_PACK_END HostCMD_DS_APCMD_ACS_SCAN;
|
|
|
|
/** HostCmd_DS_GET_HW_SPEC */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_GET_HW_SPEC {
|
|
/** HW Interface version number */
|
|
t_u16 hw_if_version;
|
|
/** HW version number */
|
|
t_u16 version;
|
|
/** Reserved field */
|
|
t_u16 reserved;
|
|
/** Max no of Multicast address */
|
|
t_u16 num_of_mcast_adr;
|
|
/** MAC address */
|
|
t_u8 permanent_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** Region Code */
|
|
t_u16 region_code;
|
|
/** Number of antenna used */
|
|
t_u16 number_of_antenna;
|
|
/** FW release number, example 0x1234=1.2.3.4 */
|
|
t_u32 fw_release_number;
|
|
/** hw dev cap */
|
|
t_u32 hw_dev_cap;
|
|
/** Reserved field */
|
|
t_u32 reserved_2;
|
|
/** Reserved field */
|
|
t_u32 reserved_3;
|
|
/** FW/HW Capability */
|
|
t_u32 fw_cap_info;
|
|
/** 802.11n Device Capabilities */
|
|
t_u32 dot_11n_dev_cap;
|
|
/** MIMO abstraction of MCSs supported by device */
|
|
t_u8 dev_mcs_support;
|
|
/** Valid end port at init */
|
|
t_u16 mp_end_port;
|
|
/** mgmt IE buffer count */
|
|
t_u16 mgmt_buf_count;
|
|
/** Reserved */
|
|
t_u32 reserved_8;
|
|
/** Reserved */
|
|
t_u32 reserved_9;
|
|
/** 802.11ac Device Capabilities */
|
|
t_u32 Dot11acDevCap;
|
|
/** MCSs supported by 802.11ac device */
|
|
t_u32 Dot11acMcsSupport;
|
|
} MLAN_PACK_END HostCmd_DS_GET_HW_SPEC;
|
|
|
|
#ifdef SDIO
|
|
#endif
|
|
|
|
/** HostCmd_DS_802_11_CFG_DATA */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_CFG_DATA {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Type */
|
|
t_u16 type;
|
|
/** Data length */
|
|
t_u16 data_len;
|
|
/** Data */
|
|
} MLAN_PACK_END HostCmd_DS_802_11_CFG_DATA;
|
|
|
|
/** HostCmd_DS_CMD_802_11_RSSI_INFO_EXT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_RSSI_INFO_EXT {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Parameter used for exponential averaging for Data */
|
|
t_u16 ndata;
|
|
/** Parameter used for exponential averaging for Beacon */
|
|
t_u16 nbcn;
|
|
/** Last RSSI beacon TSF(only for Get action) */
|
|
t_u64 tsfbcn;
|
|
/** TLV info**/
|
|
t_u8 *tlv_buf[];
|
|
} MLAN_PACK_END HostCmd_DS_802_11_RSSI_INFO_EXT;
|
|
|
|
/** TLV rssi info */
|
|
#define TLV_TYPE_RSSI_INFO (PROPRIETARY_TLV_BASE_ID + 0xe5) /* 0x01E5 */
|
|
|
|
/** MrvlIEtypes_eapol_pkt_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RSSI_EXT_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Path ID
|
|
[Bit1:Bit0] = [0:1]: path A
|
|
[Bit1:Bit0] = [1:0]: path B
|
|
[Bit1:Bit0] = [1:1]: combined signal of path A and path B
|
|
[Bit7:Bit2] : Reserved
|
|
**/
|
|
t_u16 path_id;
|
|
/** Last Data RSSI in dBm */
|
|
t_s16 data_rssi_last;
|
|
/** Last Data NF in dBm */
|
|
t_s16 data_nf_last;
|
|
/** AVG DATA RSSI in dBm */
|
|
t_s16 data_rssi_avg;
|
|
/** AVG DATA NF in dBm */
|
|
t_s16 data_nf_avg;
|
|
/** Last BEACON RSSI in dBm */
|
|
t_s16 bcn_rssi_last;
|
|
/** Last BEACON NF in dBm */
|
|
t_s16 bcn_nf_last;
|
|
/** AVG BEACON RSSI in dBm */
|
|
t_s16 bcn_rssi_avg;
|
|
/** AVG BEACON NF in dBm */
|
|
t_s16 bcn_nf_avg;
|
|
} MLAN_PACK_END MrvlIEtypes_RSSI_EXT_t;
|
|
|
|
/** HostCmd_DS_CMD_MC_AGGR_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_MC_AGGR_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Reserved field 1 */
|
|
t_u16 reserved_1;
|
|
/* 1 enable, 0 disable
|
|
* bit 0 MC aggregation
|
|
* bit 1 packet expiry
|
|
* bit 2 CTS2Self
|
|
* bit 3 CTS2Self duration offset*/
|
|
t_u8 enable_bitmap;
|
|
/* 1 valid, 0 invalid
|
|
* bit 0 MC aggregation
|
|
* bit 1 packet expiry
|
|
* bit 2 CTS2Self
|
|
* bit 3 CTS2Self duration offset*/
|
|
t_u8 mask_bitmap;
|
|
/** CTS2Self duration offset */
|
|
t_u16 cts2self_offset;
|
|
} MLAN_PACK_END HostCmd_DS_MC_AGGR_CFG;
|
|
|
|
/** Stats_Cfg_Params_TLV */
|
|
typedef struct MLAN_PACK_START _Stats_Cfg_Params_TLV {
|
|
/** tlvHeader */
|
|
MrvlIEtypesHeader_t tlvHeader;
|
|
/** op */
|
|
t_u8 op;
|
|
/** reserved */
|
|
t_u8 reserved;
|
|
/** mac */
|
|
mlan_802_11_mac_addr mac;
|
|
} MLAN_PACK_END Stats_Cfg_Params_TLV_t;
|
|
|
|
/** HostCmd_DS_STATS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_STATS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** TLV buffer */
|
|
t_u8 tlv_buffer[1];
|
|
} MLAN_PACK_END HostCmd_DS_STATS;
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_GET_CH_LOAD {
|
|
/** Action */
|
|
t_u16 action;
|
|
t_u16 ch_load;
|
|
t_s16 noise;
|
|
t_u16 rx_quality;
|
|
t_u16 duration;
|
|
} MLAN_PACK_END HostCmd_DS_GET_CH_LOAD;
|
|
|
|
/** HostCmd_DS_CMD_802_11_RSSI_INFO */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_RSSI_INFO {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Parameter used for exponential averaging for Data */
|
|
t_u16 ndata;
|
|
/** Parameter used for exponential averaging for Beacon */
|
|
t_u16 nbcn;
|
|
/** Reserved field 0 */
|
|
t_u16 reserved[9];
|
|
/** Reserved field 1 */
|
|
t_u64 reserved_1;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_RSSI_INFO;
|
|
|
|
/** HostCmd_DS_802_11_RSSI_INFO_RSP */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_RSSI_INFO_RSP {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Parameter used for exponential averaging for Data */
|
|
t_u16 ndata;
|
|
/** Parameter used for exponential averaging for beacon */
|
|
t_u16 nbcn;
|
|
/** Last Data RSSI in dBm */
|
|
t_s16 data_rssi_last;
|
|
/** Last Data NF in dBm */
|
|
t_s16 data_nf_last;
|
|
/** AVG DATA RSSI in dBm */
|
|
t_s16 data_rssi_avg;
|
|
/** AVG DATA NF in dBm */
|
|
t_s16 data_nf_avg;
|
|
/** Last BEACON RSSI in dBm */
|
|
t_s16 bcn_rssi_last;
|
|
/** Last BEACON NF in dBm */
|
|
t_s16 bcn_nf_last;
|
|
/** AVG BEACON RSSI in dBm */
|
|
t_s16 bcn_rssi_avg;
|
|
/** AVG BEACON NF in dBm */
|
|
t_s16 bcn_nf_avg;
|
|
/** Last RSSI Beacon TSF */
|
|
t_u64 tsf_bcn;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_RSSI_INFO_RSP;
|
|
|
|
/** HostCmd_DS_802_11_MAC_ADDRESS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_MAC_ADDRESS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** MAC address */
|
|
t_u8 mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END HostCmd_DS_802_11_MAC_ADDRESS;
|
|
|
|
/** HostCmd_DS_MAC_CONTROL */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_MAC_CONTROL {
|
|
/** Action */
|
|
t_u32 action;
|
|
} MLAN_PACK_END HostCmd_DS_MAC_CONTROL;
|
|
|
|
/** HostCmd_DS_802_11_NET_MONITOR */
|
|
typedef MLAN_PACK_START struct _HostCmd_802_11_DS_NET_MONITOR {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Enable/disable net monitor */
|
|
t_u16 enable_net_mon;
|
|
/** set net monitor filer flag */
|
|
t_u16 filter_flag;
|
|
/** Channel to monitor */
|
|
MrvlIEtypes_ChanBandListParamSet_t monitor_chan;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_NET_MONITOR;
|
|
|
|
/** HostCmd_DS_CMD_TX_DATA_PAUSE */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_TX_DATA_PAUSE {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Enable/disable Tx data pause */
|
|
t_u8 enable_tx_pause;
|
|
/** Max number of TX buffers allowed for all PS clients*/
|
|
t_u8 pause_tx_count;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_TX_DATA_PAUSE;
|
|
|
|
/** TLV type : TX pause TLV */
|
|
#define TLV_TYPE_TX_PAUSE (PROPRIETARY_TLV_BASE_ID + 0x94) /* 0x0194 */
|
|
/** MrvlIEtypes_SsIdParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_tx_pause_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** peer mac address */
|
|
t_u8 peermac[MLAN_MAC_ADDR_LENGTH];
|
|
/** Tx pause state, 1--pause, 0--free flowing */
|
|
t_u8 tx_pause;
|
|
/** total packets queued for the client */
|
|
t_u8 pkt_cnt;
|
|
} MLAN_PACK_END MrvlIEtypes_tx_pause_t;
|
|
|
|
/** HostCmd_CMD_MAC_MULTICAST_ADR */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_MAC_MULTICAST_ADR {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Number of addresses */
|
|
t_u16 num_of_adrs;
|
|
/** List of MAC */
|
|
t_u8 mac_list[MLAN_MAC_ADDR_LENGTH * MLAN_MAX_MULTICAST_LIST_SIZE];
|
|
} MLAN_PACK_END HostCmd_DS_MAC_MULTICAST_ADR;
|
|
|
|
/** HostCmd_CMD_802_11_DEAUTHENTICATE */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_DEAUTHENTICATE {
|
|
/** MAC address */
|
|
t_u8 mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** Deauthentication resaon code */
|
|
t_u16 reason_code;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_DEAUTHENTICATE;
|
|
|
|
/** HostCmd_DS_802_11_ASSOCIATE */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_ASSOCIATE {
|
|
/** Peer STA address */
|
|
t_u8 peer_sta_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** Capability information */
|
|
IEEEtypes_CapInfo_t cap_info;
|
|
/** Listen interval */
|
|
t_u16 listen_interval;
|
|
/** Beacon period */
|
|
t_u16 beacon_period;
|
|
/** DTIM period */
|
|
t_u8 dtim_period;
|
|
|
|
/**
|
|
* MrvlIEtypes_SsIdParamSet_t SsIdParamSet;
|
|
* MrvlIEtypes_PhyParamSet_t PhyParamSet;
|
|
* MrvlIEtypes_SsParamSet_t SsParamSet;
|
|
* MrvlIEtypes_RatesParamSet_t RatesParamSet;
|
|
*/
|
|
} MLAN_PACK_END HostCmd_DS_802_11_ASSOCIATE;
|
|
|
|
/** HostCmd_CMD_802_11_ASSOCIATE response */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_ASSOCIATE_RSP {
|
|
/** Association response structure */
|
|
IEEEtypes_AssocRsp_t assoc_rsp;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_ASSOCIATE_RSP;
|
|
|
|
/** HostCmd_DS_802_11_AD_HOC_START*/
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_AD_HOC_START {
|
|
/** AdHoc SSID */
|
|
t_u8 ssid[MLAN_MAX_SSID_LENGTH];
|
|
/** BSS mode */
|
|
t_u8 bss_mode;
|
|
/** Beacon period */
|
|
t_u16 beacon_period;
|
|
/** DTIM period */
|
|
t_u8 dtim_period;
|
|
/** SS parameter set */
|
|
IEEEtypes_SsParamSet_t ss_param_set;
|
|
/** PHY parameter set */
|
|
IEEEtypes_PhyParamSet_t phy_param_set;
|
|
/** Reserved field */
|
|
t_u16 reserved1;
|
|
/** Capability information */
|
|
IEEEtypes_CapInfo_t cap;
|
|
/** Supported data rates */
|
|
t_u8 DataRate[HOSTCMD_SUPPORTED_RATES];
|
|
} MLAN_PACK_END HostCmd_DS_802_11_AD_HOC_START;
|
|
|
|
/** HostCmd_CMD_802_11_AD_HOC_START response */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_AD_HOC_START_RESULT {
|
|
/** Padding */
|
|
t_u8 pad[3];
|
|
/** AdHoc BSSID */
|
|
t_u8 bssid[MLAN_MAC_ADDR_LENGTH];
|
|
/** Padding to sync with FW structure*/
|
|
t_u8 pad2[2];
|
|
/** Result */
|
|
t_u8 result;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_AD_HOC_START_RESULT;
|
|
|
|
/** HostCmd_CMD_802_11_AD_HOC_START response */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_AD_HOC_JOIN_RESULT {
|
|
/** Result */
|
|
t_u8 result;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_AD_HOC_JOIN_RESULT;
|
|
|
|
/** AdHoc_BssDesc_t */
|
|
typedef MLAN_PACK_START struct _AdHoc_BssDesc_t {
|
|
/** BSSID */
|
|
t_u8 bssid[MLAN_MAC_ADDR_LENGTH];
|
|
/** SSID */
|
|
t_u8 ssid[MLAN_MAX_SSID_LENGTH];
|
|
/** BSS mode */
|
|
t_u8 bss_mode;
|
|
/** Beacon period */
|
|
t_u16 beacon_period;
|
|
/** DTIM period */
|
|
t_u8 dtim_period;
|
|
/** Timestamp */
|
|
t_u8 time_stamp[8];
|
|
/** Local time */
|
|
t_u8 local_time[8];
|
|
/** PHY parameter set */
|
|
IEEEtypes_PhyParamSet_t phy_param_set;
|
|
/** SS parameter set */
|
|
IEEEtypes_SsParamSet_t ss_param_set;
|
|
/** Capability information */
|
|
IEEEtypes_CapInfo_t cap;
|
|
/** Supported data rates */
|
|
t_u8 data_rates[HOSTCMD_SUPPORTED_RATES];
|
|
|
|
/*
|
|
* DO NOT ADD ANY FIELDS TO THIS STRUCTURE.
|
|
* It is used in the Adhoc join command and will cause a
|
|
* binary layout mismatch with the firmware
|
|
*/
|
|
} MLAN_PACK_END AdHoc_BssDesc_t;
|
|
|
|
/** HostCmd_DS_802_11_AD_HOC_JOIN */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_AD_HOC_JOIN {
|
|
/** AdHoc BSS descriptor */
|
|
AdHoc_BssDesc_t bss_descriptor;
|
|
/** Reserved field */
|
|
t_u16 reserved1;
|
|
/** Reserved field */
|
|
t_u16 reserved2;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_AD_HOC_JOIN;
|
|
|
|
#if defined(SDIO)
|
|
/** Interrupt Raising Edge */
|
|
#define INT_RASING_EDGE 0
|
|
/** Interrupt Falling Edge */
|
|
#define INT_FALLING_EDGE 1
|
|
|
|
/** Delay 1 usec */
|
|
#define DELAY_1_US 1
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_SDIO_GPIO_INT_CONFIG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** GPIO interrupt pin */
|
|
t_u16 gpio_pin;
|
|
/** GPIO interrupt edge, 1: failing edge; 0: raising edge */
|
|
t_u16 gpio_int_edge;
|
|
/** GPIO interrupt pulse widthin usec units */
|
|
t_u16 gpio_pulse_width;
|
|
} MLAN_PACK_END HostCmd_DS_SDIO_GPIO_INT_CONFIG;
|
|
#endif /* GPIO_SDIO_INT_CTRL */
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_SDIO_PULL_CTRL {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** The delay of pulling up in us */
|
|
t_u16 pull_up;
|
|
/** The delay of pulling down in us */
|
|
t_u16 pull_down;
|
|
} MLAN_PACK_END HostCmd_DS_SDIO_PULL_CTRL;
|
|
|
|
/** HostCmd_DS_802_11_GET_LOG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_GET_LOG {
|
|
/** Number of multicast transmitted frames */
|
|
t_u32 mcast_tx_frame;
|
|
/** Number of failures */
|
|
t_u32 failed;
|
|
/** Number of retries */
|
|
t_u32 retry;
|
|
/** Number of multiretries */
|
|
t_u32 multiretry;
|
|
/** Number of duplicate frames */
|
|
t_u32 frame_dup;
|
|
/** Number of RTS success */
|
|
t_u32 rts_success;
|
|
/** Number of RTS failure */
|
|
t_u32 rts_failure;
|
|
/** Number of acknowledgement failure */
|
|
t_u32 ack_failure;
|
|
/** Number of fragmented packets received */
|
|
t_u32 rx_frag;
|
|
/** Number of multicast frames received */
|
|
t_u32 mcast_rx_frame;
|
|
/** FCS error */
|
|
t_u32 fcs_error;
|
|
/** Number of transmitted frames */
|
|
t_u32 tx_frame;
|
|
/** Reserved field */
|
|
t_u32 reserved;
|
|
/** Number of WEP icv error for each key */
|
|
t_u32 wep_icv_err_cnt[4];
|
|
/** Beacon received count */
|
|
t_u32 bcn_rcv_cnt;
|
|
/** Beacon missed count */
|
|
t_u32 bcn_miss_cnt;
|
|
/** Tx frag count */
|
|
t_u32 tx_frag_cnt;
|
|
/** Qos Tx frag count */
|
|
t_u32 qos_tx_frag_cnt[8];
|
|
/** Qos failed count */
|
|
t_u32 qos_failed_cnt[8];
|
|
/** Qos retry count */
|
|
t_u32 qos_retry_cnt[8];
|
|
/** Qos multi retry count */
|
|
t_u32 qos_multi_retry_cnt[8];
|
|
/** Qos frame dup count */
|
|
t_u32 qos_frm_dup_cnt[8];
|
|
/** Qos rts success count */
|
|
t_u32 qos_rts_suc_cnt[8];
|
|
/** Qos rts failure count */
|
|
t_u32 qos_rts_failure_cnt[8];
|
|
/** Qos ack failure count */
|
|
t_u32 qos_ack_failure_cnt[8];
|
|
/** Qos Rx frag count */
|
|
t_u32 qos_rx_frag_cnt[8];
|
|
/** Qos Tx frame count */
|
|
t_u32 qos_tx_frm_cnt[8];
|
|
/** Qos discarded frame count */
|
|
t_u32 qos_discarded_frm_cnt[8];
|
|
/** Qos mpdus Rx count */
|
|
t_u32 qos_mpdus_rx_cnt[8];
|
|
/** Qos retry rx count */
|
|
t_u32 qos_retries_rx_cnt[8];
|
|
/** CMAC ICV errors count */
|
|
t_u32 cmacicv_errors;
|
|
/** CMAC replays count */
|
|
t_u32 cmac_replays;
|
|
/** mgmt CCMP replays count */
|
|
t_u32 mgmt_ccmp_replays;
|
|
/** TKIP ICV errors count */
|
|
t_u32 tkipicv_errors;
|
|
/** TKIP replays count */
|
|
t_u32 tkip_replays;
|
|
/** CCMP decrypt errors count */
|
|
t_u32 ccmp_decrypt_errors;
|
|
/** CCMP replays count */
|
|
t_u32 ccmp_replays;
|
|
/** Tx amsdu count */
|
|
t_u32 tx_amsdu_cnt;
|
|
/** failed amsdu count */
|
|
t_u32 failed_amsdu_cnt;
|
|
/** retry amsdu count */
|
|
t_u32 retry_amsdu_cnt;
|
|
/** multi-retry amsdu count */
|
|
t_u32 multi_retry_amsdu_cnt;
|
|
/** Tx octets in amsdu count */
|
|
t_u64 tx_octets_in_amsdu_cnt;
|
|
/** amsdu ack failure count */
|
|
t_u32 amsdu_ack_failure_cnt;
|
|
/** Rx amsdu count */
|
|
t_u32 rx_amsdu_cnt;
|
|
/** Rx octets in amsdu count */
|
|
t_u64 rx_octets_in_amsdu_cnt;
|
|
/** Tx ampdu count */
|
|
t_u32 tx_ampdu_cnt;
|
|
/** tx mpdus in ampdu count */
|
|
t_u32 tx_mpdus_in_ampdu_cnt;
|
|
/** tx octets in ampdu count */
|
|
t_u64 tx_octets_in_ampdu_cnt;
|
|
/** ampdu Rx count */
|
|
t_u32 ampdu_rx_cnt;
|
|
/** mpdu in Rx ampdu count */
|
|
t_u32 mpdu_in_rx_ampdu_cnt;
|
|
/** Rx octets ampdu count */
|
|
t_u64 rx_octets_in_ampdu_cnt;
|
|
/** ampdu delimiter CRC error count */
|
|
t_u32 ampdu_delimiter_crc_error_cnt;
|
|
/** Rx Stuck Related Info*/
|
|
/** Rx Stuck Issue count */
|
|
t_u32 rx_stuck_issue_cnt[2];
|
|
/** Rx Stuck Recovery count polling based */
|
|
t_u32 rx_stuck_poll_recovery_cnt;
|
|
/** Rx Stuck Recovery count interrupt based */
|
|
t_u32 rx_stuck_intr_recovery_cnt;
|
|
/** Rx Stuck TSF */
|
|
t_u64 rx_stuck_tsf[2];
|
|
/** Tx Watchdog Recovery Related Info */
|
|
/** Tx Watchdog Recovery count */
|
|
t_u32 tx_watchdog_recovery_cnt;
|
|
/** Tx Watchdog TSF */
|
|
t_u64 tx_watchdog_tsf[2];
|
|
/** Channel Switch Related Info */
|
|
/** Channel Switch Announcement Sent */
|
|
t_u32 channel_switch_ann_sent;
|
|
/** Channel Switch State */
|
|
t_u32 channel_switch_state;
|
|
/** Register Class */
|
|
t_u32 reg_class;
|
|
/** Channel Number */
|
|
t_u32 channel_number;
|
|
/** Channel Switch Mode */
|
|
t_u32 channel_switch_mode;
|
|
/** Reset Rx Mac Count */
|
|
t_u32 rx_reset_mac_recovery_cnt;
|
|
/** ISR2 Not Done Count*/
|
|
t_u32 rx_Isr2_NotDone_Cnt;
|
|
/** GDMA Abort Count */
|
|
t_u32 gdma_abort_cnt;
|
|
/** Rx Reset MAC Count */
|
|
t_u32 g_reset_rx_mac_cnt;
|
|
// Ownership error counters
|
|
/*Error Ownership error count*/
|
|
t_u32 dwCtlErrCnt;
|
|
/*Control Ownership error count*/
|
|
t_u32 dwBcnErrCnt;
|
|
/*Control Ownership error count*/
|
|
t_u32 dwMgtErrCnt;
|
|
/*Control Ownership error count*/
|
|
t_u32 dwDatErrCnt;
|
|
/*BIGTK MME good count*/
|
|
t_u32 bigtk_mmeGoodCnt;
|
|
/*BIGTK Replay error count*/
|
|
t_u32 bigtk_replayErrCnt;
|
|
/*BIGTK MIC error count*/
|
|
t_u32 bigtk_micErrCnt;
|
|
/*BIGTK MME not included count*/
|
|
t_u32 bigtk_mmeNotFoundCnt;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_GET_LOG;
|
|
|
|
/* maln wifi rate */
|
|
typedef MLAN_PACK_START struct _mlan_wifi_rate {
|
|
/** 0: OFDM, 1:CCK, 2:HT 3:VHT 4..7 reserved */
|
|
t_u8 preamble;
|
|
/** 0:1x1, 1:2x2, 3:3x3, 4:4x4 */
|
|
t_u8 nss;
|
|
/** 0:20MHz, 1:40Mhz, 2:80Mhz, 3:160Mhz */
|
|
t_u8 bw;
|
|
/** OFDM/CCK rate code would be as per ieee std in the units of 0.5mbps
|
|
*/
|
|
/** HT/VHT it would be mcs index */
|
|
t_u8 rateMcsIdx;
|
|
/** units of 100 Kbps */
|
|
t_u32 bitrate;
|
|
} MLAN_PACK_START mlan_wifi_rate;
|
|
|
|
/** channel information */
|
|
typedef MLAN_PACK_START struct {
|
|
/** channel width (20, 40, 80, 80+80, 160) */
|
|
t_u32 width;
|
|
/** primary 20 MHz channel */
|
|
t_u32 center_freq;
|
|
/** center frequency (MHz) first segment */
|
|
t_u32 center_freq0;
|
|
/** center frequency (MHz) second segment */
|
|
t_u32 center_freq1;
|
|
} MLAN_PACK_END mlan_wifi_channel_info;
|
|
|
|
/** channel statistics */
|
|
typedef MLAN_PACK_START struct {
|
|
/** channel */
|
|
mlan_wifi_channel_info channel;
|
|
/** msecs the radio is awake (32 bits number accruing over time) */
|
|
t_u32 on_time;
|
|
/** msecs the CCA register is busy (32 bits number accruing over time)
|
|
*/
|
|
t_u32 cca_busy_time;
|
|
} MLAN_PACK_END mlan_wifi_channel_stat;
|
|
|
|
/** radio statistics */
|
|
typedef MLAN_PACK_START struct {
|
|
/** supported wifi in case of multi radio */
|
|
t_u32 radio;
|
|
/** msecs the radio is awake */
|
|
t_u32 on_time;
|
|
/** msecs the radio is transmitting */
|
|
t_u32 tx_time;
|
|
/** TBD: num_tx_levels: number of radio transmit power levels */
|
|
t_u32 reserved0;
|
|
/** TBD: tx_time_per_levels: pointer to an array of radio transmit per
|
|
* power levels in msecs accured over time */
|
|
t_u32 reserved1;
|
|
/** msecs the radio is in active receive */
|
|
t_u32 rx_time;
|
|
/** msecs the radio is awake due to all scan */
|
|
t_u32 on_time_scan;
|
|
/** msecs the radio is awake due to NAN */
|
|
t_u32 on_time_nbd;
|
|
/** msecs the radio is awake due to G?scan */
|
|
t_u32 on_time_gscan;
|
|
/** msecs the radio is awake due to roam?scan */
|
|
t_u32 on_time_roam_scan;
|
|
/** msecs the radio is awake due to PNO scan */
|
|
t_u32 on_time_pno_scan;
|
|
/** msecs the radio is awake due to HS2.0 scans and GAS exchange */
|
|
t_u32 on_time_hs20;
|
|
/** number of channels */
|
|
t_u32 num_channels;
|
|
/** channel statistics */
|
|
mlan_wifi_channel_stat channels[MAX_NUM_CHAN]; // support only 1
|
|
// channel, so keep it.
|
|
} MLAN_PACK_END mlan_wifi_radio_stat;
|
|
|
|
/** per rate statistics */
|
|
typedef MLAN_PACK_START struct {
|
|
/** rate information */
|
|
mlan_wifi_rate rate;
|
|
/** number of successfully transmitted data pkts (ACK rcvd) */
|
|
t_u32 tx_mpdu;
|
|
/** number of received data pkts */
|
|
t_u32 rx_mpdu;
|
|
/** number of data packet losses (no ACK) */
|
|
t_u32 mpdu_lost;
|
|
/** total number of data pkt retries */
|
|
t_u32 retries;
|
|
/** number of short data pkt retries */
|
|
t_u32 retries_short;
|
|
/** number of long data pkt retries */
|
|
t_u32 retries_long;
|
|
} MLAN_PACK_END mlan_wifi_rate_stat;
|
|
|
|
/** per peer statistics */
|
|
typedef MLAN_PACK_START struct {
|
|
/** peer type (AP, TDLS, GO etc.) */
|
|
t_u8 type;
|
|
/** mac address */
|
|
t_u8 peer_mac_address[6];
|
|
/** peer WIFI_CAPABILITY_XXX */
|
|
t_u32 capabilities;
|
|
/** number of rates */
|
|
t_u32 num_rate;
|
|
/** per rate statistics, number of entries = num_rate */
|
|
mlan_wifi_rate_stat rate_stats[];
|
|
} MLAN_PACK_END mlan_wifi_peer_info;
|
|
|
|
/* per access category statistics */
|
|
typedef MLAN_PACK_START struct {
|
|
/** access category (VI, VO, BE, BK) */
|
|
t_u32 ac;
|
|
/** number of successfully transmitted unicast data pkts (ACK rcvd) */
|
|
t_u32 tx_mpdu;
|
|
/** number of received unicast mpdus */
|
|
t_u32 rx_mpdu;
|
|
/** number of succesfully transmitted multicast data packets */
|
|
/** STA case: implies ACK received from AP for the unicast packet in
|
|
* which mcast pkt was sent */
|
|
t_u32 tx_mcast;
|
|
/** number of received multicast data packets */
|
|
t_u32 rx_mcast;
|
|
/** number of received unicast a-mpdus */
|
|
t_u32 rx_ampdu;
|
|
/** number of transmitted unicast a-mpdus */
|
|
t_u32 tx_ampdu;
|
|
/** number of data pkt losses (no ACK) */
|
|
t_u32 mpdu_lost;
|
|
/** total number of data pkt retries */
|
|
t_u32 retries;
|
|
/** number of short data pkt retries */
|
|
t_u32 retries_short;
|
|
/** number of long data pkt retries */
|
|
t_u32 retries_long;
|
|
/** data pkt min contention time (usecs) */
|
|
t_u32 contention_time_min;
|
|
/** data pkt max contention time (usecs) */
|
|
t_u32 contention_time_max;
|
|
/** data pkt avg contention time (usecs) */
|
|
t_u32 contention_time_avg;
|
|
/** num of data pkts used for contention statistics */
|
|
t_u32 contention_num_samples;
|
|
} MLAN_PACK_END mlan_wifi_wmm_ac_stat;
|
|
|
|
/** interface statistics */
|
|
typedef MLAN_PACK_START struct {
|
|
/** access point beacon received count from connected AP */
|
|
t_u32 beacon_rx;
|
|
/** Average beacon offset encountered (beacon_TSF - TBTT)
|
|
* the average_tsf_offset field is used so as to calculate the
|
|
* typical beacon contention time on the channel as well may be
|
|
* used to debug beacon synchronization and related power consumption
|
|
* issue
|
|
*/
|
|
t_u64 average_tsf_offset;
|
|
/** indicate that this AP typically leaks packets beyond the driver
|
|
* guard time */
|
|
t_u32 leaky_ap_detected;
|
|
/** average number of frame leaked by AP after frame with PM bit set was
|
|
* ACK'ed by AP */
|
|
t_u32 leaky_ap_avg_num_frames_leaked;
|
|
/** Guard time currently in force (when implementing IEEE power
|
|
* management based on frame control PM bit), How long driver waits
|
|
* before shutting down the radio and after receiving an ACK for a data
|
|
* frame with PM bit set)
|
|
*/
|
|
t_u32 leaky_ap_guard_time;
|
|
/** access point mgmt frames received count from connected AP (including
|
|
* Beacon) */
|
|
t_u32 mgmt_rx;
|
|
/** action frames received count */
|
|
t_u32 mgmt_action_rx;
|
|
/** action frames transmit count */
|
|
t_u32 mgmt_action_tx;
|
|
/** access Point Beacon and Management frames RSSI (averaged) */
|
|
t_u32 rssi_mgmt;
|
|
/** access Point Data Frames RSSI (averaged) from connected AP */
|
|
t_u32 rssi_data;
|
|
/** access Point ACK RSSI (averaged) from connected AP */
|
|
t_u32 rssi_ack;
|
|
/** per ac data packet statistics */
|
|
mlan_wifi_wmm_ac_stat ac[MAX_AC_QUEUES];
|
|
/** number of peers */
|
|
t_u32 num_peers;
|
|
/** per peer statistics */
|
|
mlan_wifi_peer_info peer_info[];
|
|
} MLAN_PACK_END mlan_wifi_iface_stat;
|
|
|
|
/** MrvlIETypes_llStatIface_t */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_llStatIface_t {
|
|
/** Type */
|
|
t_u16 type;
|
|
/** Length */
|
|
t_u16 len;
|
|
/** Frame Control */
|
|
mlan_wifi_iface_stat ifaceStat;
|
|
/* t_u8 frame_contents[]; */
|
|
} MLAN_PACK_END MrvlIETypes_llStatIface_t;
|
|
|
|
/** MrvlIETypes_llStatRadio_t */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_llStatRadio_t {
|
|
/** Type */
|
|
t_u16 type;
|
|
/** Length */
|
|
t_u16 len;
|
|
/** Frame Control */
|
|
mlan_wifi_radio_stat radioStat[MAX_RADIO];
|
|
/* t_u8 frame_contents[]; */
|
|
} MLAN_PACK_END MrvlIETypes_llStatRadio_t;
|
|
|
|
#define TYPE_IFACE_STAT MBIT(0)
|
|
#define TYPE_RADIO_STAT MBIT(1)
|
|
#define TYPE_PEER_INFO MBIT(2)
|
|
/** HostCmd_DS_802_11_LINK_STATISTIC */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_LINK_STATISTIC {
|
|
/** Action : HostCmd_ACT_GEN_GET/SET/REMOVE */
|
|
t_u16 action;
|
|
/** statistic which would be get in action HostCmd_ACT_GEN_GET :
|
|
* TYPE_IFACE_STAT/RADIO_STAT/PEER_INFO */
|
|
t_u16 stat_type;
|
|
/* threshold to classify the pkts as short or long, packet size <
|
|
* mpdu_size_threshold => short */
|
|
t_u32 mpdu_size_threshold;
|
|
/* set for field debug mode. Driver should collect all statistics
|
|
* regardless of performance impact. */
|
|
t_u32 aggressive_statistics_gathering;
|
|
/** Value */
|
|
t_u8 value[];
|
|
} MLAN_PACK_END HostCmd_DS_802_11_LINK_STATISTIC;
|
|
|
|
/**_HostCmd_TX_RATE_QUERY */
|
|
typedef MLAN_PACK_START struct _HostCmd_TX_RATE_QUERY {
|
|
/** Tx rate */
|
|
t_u8 tx_rate;
|
|
/** V14 FW: Ht Info
|
|
* [Bit 0] RxRate format: LG=0, HT=1
|
|
* [Bit 1] HT Bandwidth: BW20 = 0, BW40 = 1
|
|
* [Bit 2] HT Guard Interval: LGI = 0, SGI = 1 */
|
|
/** Tx Rate Info:
|
|
* [Bit 0-1] tx rate formate: LG = 0, HT = 1, VHT = 2
|
|
* [Bit 2-3] HT/VHT Bandwidth: BW20 = 0, BW40 = 1, BW80 = 2, BW160 = 3
|
|
* [Bit 4] HT/VHT Guard Interval: LGI = 0, SGI = 1
|
|
* [Bit4,Bit7] AX Guard Interval: 00, 01, 02 */
|
|
t_u8 tx_rate_info;
|
|
/**
|
|
* BIT0: DCM
|
|
* BIT3-BIT1: tone mode
|
|
** 000: 26 tone
|
|
** 001: 52 tone
|
|
** 010: 106 tone
|
|
** 011: 242 tone
|
|
** 100: 484 tone
|
|
** 101: 996 tone
|
|
* BIT7-BIT4: resvd
|
|
**/
|
|
t_u8 ext_tx_rate_info;
|
|
} MLAN_PACK_END HostCmd_TX_RATE_QUERY;
|
|
|
|
typedef MLAN_PACK_START struct _hs_config_param {
|
|
/** bit0=1: broadcast data
|
|
* bit1=1: unicast data
|
|
* bit2=1: mac events
|
|
* bit3=1: multicast data
|
|
*/
|
|
t_u32 conditions;
|
|
/** GPIO pin or 0xff for interface */
|
|
t_u8 gpio;
|
|
/** gap in milliseconds or 0xff for special setting
|
|
* (host acknowledge required)
|
|
*/
|
|
t_u8 gap;
|
|
} MLAN_PACK_END hs_config_param;
|
|
|
|
/** HS Action 0x0001 - Configure enhanced host sleep mode,
|
|
* 0x0002 - Activate enhanced host sleep mode
|
|
*/
|
|
typedef enum _Host_Sleep_Action {
|
|
HS_CONFIGURE = 0x0001,
|
|
HS_ACTIVATE = 0x0002,
|
|
} Host_Sleep_Action;
|
|
|
|
/** Structure definition for activating enhanced hs */
|
|
typedef MLAN_PACK_START struct __hs_activate_param {
|
|
/** response control 0x00 - response not needed, 0x01 - response needed
|
|
*/
|
|
t_u16 resp_ctrl;
|
|
} MLAN_PACK_END hs_activate_param;
|
|
|
|
/** HostCmd_DS_802_11_HS_CFG_ENH */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_HS_CFG_ENH {
|
|
/** Action 0x0001 - Configure enhanced host sleep mode,
|
|
* 0x0002 - Activate enhanced host sleep mode
|
|
*/
|
|
t_u16 action;
|
|
|
|
union {
|
|
/** Configure enhanced hs */
|
|
hs_config_param hs_config;
|
|
/** Activate enhanced hs */
|
|
hs_activate_param hs_activate;
|
|
} params;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_HS_CFG_ENH;
|
|
|
|
/** HostCmd_CMD_802_11_ROBUSTCOEX */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_ROBUSTCOEX {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** RSVD */
|
|
t_u16 rsvd;
|
|
t_u8 tlv_buf[];
|
|
} MLAN_PACK_END HostCmd_DS_802_11_ROBUSTCOEX;
|
|
|
|
/** HostCmd_CMD_DMCS_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_DMCS_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** SubCmd of DMCS */
|
|
t_u16 subcmd;
|
|
t_u8 tlv_buf[];
|
|
} MLAN_PACK_END HostCmd_DS_DMCS_CFG;
|
|
|
|
#if defined(PCIE)
|
|
/** HostCmd_CMD_SSU */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_SSU_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** # of FFT sample to skip */
|
|
t_u32 nskip;
|
|
/** # of FFT sample selected to dump */
|
|
t_u32 nsel;
|
|
/** Down sample ADC input for buffering */
|
|
t_u32 adcdownsample;
|
|
/** Mask Out ADC Data From Spectral Packet */
|
|
t_u32 mask_adc_pkt;
|
|
/** Enable 16-Bit FFT Output Data Precision in Spectral Packet */
|
|
t_u32 out_16bits;
|
|
/** Enable power spectrum in dB for spectral packet */
|
|
t_u32 spec_pwr_enable;
|
|
/** Enable Spectral Packet Rate Reduction in dB output format */
|
|
t_u32 rate_deduction;
|
|
/** # of Spectral packets over which spectral data to be averaged */
|
|
t_u32 n_pkt_avg;
|
|
/** ret: Calculated fft length in dw */
|
|
t_u32 fft_len;
|
|
/** ret: Calculated adc length in dw */
|
|
t_u32 adc_len;
|
|
/** ret: Calculated record length in dw */
|
|
t_u32 rec_len;
|
|
/** Mapped address of DMA buffer */
|
|
t_u32 buffer_base_addr[2];
|
|
/** Total size of allocated buffer for SSU DMA */
|
|
t_u32 buffer_pool_size;
|
|
/** ret: Calculated buffer numbers */
|
|
t_u32 number_of_buffers;
|
|
/** ret: Calculated buffer size in byte for each descriptor */
|
|
t_u32 buffer_size;
|
|
} MLAN_PACK_END HostCmd_DS_SSU_CFG;
|
|
#endif
|
|
|
|
/** HostCmd_CMD_CSI_START */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CSI_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Header ID*/
|
|
t_u32 head_id;
|
|
/** Tail ID */
|
|
t_u32 tail_id;
|
|
/** Number of CSI filters */
|
|
t_u8 csi_filter_cnt;
|
|
/** Chip ID */
|
|
t_u8 chip_id;
|
|
/** CSI filters */
|
|
mlan_csi_filter_t csi_filter[CSI_FILTER_MAX];
|
|
} MLAN_PACK_END HostCmd_DS_CSI_CFG;
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_HAL_PHY_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** 11b pwr spectral density mask enable/disable */
|
|
t_u8 dot11b_psd_mask_cfg;
|
|
/** reserved fields for future hal/phy cfg use */
|
|
t_u8 reserved[7];
|
|
} MLAN_PACK_END HostCmd_DS_HAL_PHY_CFG;
|
|
|
|
/** SNMP_MIB_INDEX */
|
|
typedef enum _SNMP_MIB_INDEX {
|
|
OpRateSet_i = 1,
|
|
DtimPeriod_i = 3,
|
|
RtsThresh_i = 5,
|
|
ShortRetryLim_i = 6,
|
|
LongRetryLim_i = 7,
|
|
FragThresh_i = 8,
|
|
Dot11D_i = 9,
|
|
Dot11H_i = 10,
|
|
WwsMode_i = 17,
|
|
Thermal_i = 34,
|
|
NullPktPeriod_i = 37,
|
|
SignalextEnable_i = 41,
|
|
ECSAEnable_i = 42,
|
|
StopDeauth_i = 44,
|
|
Dot11H_fakeRadar = 45,
|
|
ChanTrackParam_i = 46,
|
|
} SNMP_MIB_INDEX;
|
|
|
|
/** max SNMP buf size */
|
|
#define MAX_SNMP_BUF_SIZE 128
|
|
|
|
#ifdef UAP_SUPPORT
|
|
/** HostCmd_CMD_802_11_SNMP_MIB */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_UAP_802_11_SNMP_MIB {
|
|
/** SNMP query type */
|
|
t_u16 query_type;
|
|
/** snmp oid buf */
|
|
t_u8 snmp_data[];
|
|
} MLAN_PACK_END HostCmd_DS_UAP_802_11_SNMP_MIB;
|
|
#endif
|
|
|
|
/** HostCmd_CMD_802_11_SNMP_MIB */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_SNMP_MIB {
|
|
/** SNMP query type */
|
|
t_u16 query_type;
|
|
/** SNMP object ID */
|
|
t_u16 oid;
|
|
/** SNMP buffer size */
|
|
t_u16 buf_size;
|
|
/** Value */
|
|
t_u8 value[1];
|
|
} MLAN_PACK_END HostCmd_DS_802_11_SNMP_MIB;
|
|
|
|
/** Radio on */
|
|
#define RADIO_ON 0x01
|
|
/** Radio off */
|
|
#define RADIO_OFF 0x00
|
|
|
|
/** HostCmd_CMD_802_11_RADIO_CONTROL */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_RADIO_CONTROL {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Control */
|
|
t_u16 control;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_RADIO_CONTROL;
|
|
|
|
/** MrvlRateScope_t */
|
|
typedef MLAN_PACK_START struct _MrvlRateScope_t {
|
|
/** Header Type */
|
|
t_u16 type;
|
|
/** Header Length */
|
|
t_u16 length;
|
|
/** Bitmap of HR/DSSS rates */
|
|
t_u16 hr_dsss_rate_bitmap;
|
|
/** Bitmap of OFDM rates */
|
|
t_u16 ofdm_rate_bitmap;
|
|
/** Bitmap of HT-MCSs allowed for initial rate */
|
|
t_u16 ht_mcs_rate_bitmap[8];
|
|
t_u16 vht_mcs_rate_bitmap[8];
|
|
t_u16 he_mcs_rate_bitmap[8];
|
|
} MLAN_PACK_END MrvlRateScope_t;
|
|
|
|
/** MrvlRateDropPattern_t */
|
|
typedef MLAN_PACK_START struct _MrvlRateDropPattern_t {
|
|
/** Header Type */
|
|
t_u16 type;
|
|
/** Header Length */
|
|
t_u16 length;
|
|
/** Rate Drop Mode */
|
|
t_u32 rate_drop_mode;
|
|
/* MrvlRateDropControl_t RateDropControl[]; */
|
|
} MLAN_PACK_END MrvlRateDropPattern_t;
|
|
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_rate_setting_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Rate Setting */
|
|
t_u16 rate_setting;
|
|
} MLAN_PACK_END MrvlIETypes_rate_setting_t;
|
|
|
|
/** HostCmd_DS_TX_RATE_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_TX_RATE_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** V14 FW: cfg_index */
|
|
/** V15+ FW: reserved_1 */
|
|
t_u16 cfg_index;
|
|
/* MrvlRateScope_t RateScope;
|
|
* MrvlRateDropPattern_t RateDrop; */
|
|
t_u8 tlv_buf[];
|
|
} MLAN_PACK_END HostCmd_DS_TX_RATE_CFG;
|
|
|
|
/** Power_Group_t */
|
|
typedef MLAN_PACK_START struct _Power_Group_t {
|
|
/** Modulation Class */
|
|
t_u8 modulation_class;
|
|
/** MCS Code or Legacy RateID */
|
|
t_u8 first_rate_code;
|
|
/** MCS Code or Legacy RateID */
|
|
t_u8 last_rate_code;
|
|
/** Power Adjustment Step */
|
|
t_s8 power_step;
|
|
/** Minimal Tx Power Level [dBm] */
|
|
t_s8 power_min;
|
|
/** Maximal Tx Power Level [dBm] */
|
|
t_s8 power_max;
|
|
/** 0: HTBW20, 1: HTBW40 */
|
|
t_u8 ht_bandwidth;
|
|
/** Reserved */
|
|
t_u8 reserved;
|
|
} MLAN_PACK_END Power_Group_t;
|
|
|
|
/** MrvlTypes_Power_Group_t */
|
|
typedef MLAN_PACK_START struct _MrvlTypes_Power_Group_t {
|
|
/** Header Type */
|
|
t_u16 type;
|
|
/** Header Length */
|
|
t_u16 length;
|
|
/* Power_Group_t PowerGroups */
|
|
} MLAN_PACK_END MrvlTypes_Power_Group_t;
|
|
|
|
/** HostCmd_CMD_TXPWR_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_TXPWR_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Power group configuration index */
|
|
t_u16 cfg_index;
|
|
/** Power group configuration mode */
|
|
t_u32 mode;
|
|
/* MrvlTypes_Power_Group_t PowerGrpCfg[]*/
|
|
t_u8 tlv_buf[];
|
|
} MLAN_PACK_END HostCmd_DS_TXPWR_CFG;
|
|
|
|
/** HostCmd_CMD_802_11_RF_TX_POWER */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_RF_TX_POWER {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Current power level */
|
|
t_s16 current_level;
|
|
/** Maximum power */
|
|
t_s8 max_power;
|
|
/** Minimum power */
|
|
t_s8 min_power;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_RF_TX_POWER;
|
|
|
|
/** Connection type infra */
|
|
#define CONNECTION_TYPE_INFRA 0
|
|
/** Connection type adhoc */
|
|
#define CONNECTION_TYPE_ADHOC 1
|
|
#ifdef WIFI_DIRECT_SUPPORT
|
|
/** BSS Mode: WIFIDIRECT Client */
|
|
#define BSS_MODE_WIFIDIRECT_CLIENT 0
|
|
/** BSS Mode: WIFIDIRECT GO */
|
|
#define BSS_MODE_WIFIDIRECT_GO 2
|
|
#endif
|
|
/** HostCmd_DS_SET_BSS_MODE */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_SET_BSS_MODE {
|
|
/** connection type */
|
|
t_u8 con_type;
|
|
} MLAN_PACK_END HostCmd_DS_SET_BSS_MODE;
|
|
|
|
/** HT Capabilities element */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_HTCap_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** HTCap struct */
|
|
HTCap_t ht_cap;
|
|
} MLAN_PACK_END MrvlIETypes_HTCap_t;
|
|
/** VHT Capabilities element */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_VHTCap_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** VHTCap struct */
|
|
VHT_capa_t vht_cap;
|
|
} MLAN_PACK_END MrvlIETypes_VHTCap_t;
|
|
|
|
/** HostCmd_DS_REMAIN_ON_CHANNEL */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_REMAIN_ON_CHANNEL {
|
|
/** Action 0-GET, 1-SET, 4 CLEAR*/
|
|
t_u16 action;
|
|
/** Not used set to zero */
|
|
t_u8 status;
|
|
/** Not used set to zero */
|
|
t_u8 reserved;
|
|
/** Band cfg */
|
|
Band_Config_t bandcfg;
|
|
/** channel */
|
|
t_u8 channel;
|
|
/** remain time: Unit ms*/
|
|
t_u32 remain_period;
|
|
} MLAN_PACK_END HostCmd_DS_REMAIN_ON_CHANNEL;
|
|
|
|
#ifdef WIFI_DIRECT_SUPPORT
|
|
/** HostCmd_DS_WIFI_DIRECT_MODE */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_WIFI_DIRECT_MODE {
|
|
/** Action 0-GET, 1-SET*/
|
|
t_u16 action;
|
|
/**0:disable 1:listen 2:GO 3:p2p client 4:find 5:stop find*/
|
|
t_u16 mode;
|
|
} MLAN_PACK_END HostCmd_DS_WIFI_DIRECT_MODE;
|
|
|
|
/** MrvlIEtypes_NoA_setting_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_NoA_setting_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** enable/disable */
|
|
t_u8 enable;
|
|
/** index */
|
|
t_u16 index;
|
|
/** NoA count */
|
|
t_u8 noa_count;
|
|
/** NoA duration */
|
|
t_u32 noa_duration;
|
|
/** NoA interval */
|
|
t_u32 noa_interval;
|
|
} MLAN_PACK_END MrvlIEtypes_NoA_setting_t;
|
|
|
|
/** MrvlIEtypes_NoA_setting_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_OPP_PS_setting_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** enable/disable && ct_window */
|
|
t_u8 enable;
|
|
} MLAN_PACK_END MrvlIEtypes_OPP_PS_setting_t;
|
|
|
|
/** HostCmd_DS_WIFI_DIRECT_PARAM_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_WIFI_DIRECT_PARAM_CONFIG {
|
|
/** Action 0-GET, 1-SET */
|
|
t_u16 action;
|
|
/** MrvlIEtypes_NoA_setting_t
|
|
* MrvlIEtypes_OPP_PS_setting_t
|
|
*/
|
|
t_u8 tlv_buf[];
|
|
} MLAN_PACK_END HostCmd_DS_WIFI_DIRECT_PARAM_CONFIG;
|
|
#endif
|
|
|
|
/** MrvlIEtypes_GPIO_TSF_LATCH_CONFIG*/
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_GPIO_TSF_LATCH_CONFIG {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/**clock sync Mode */
|
|
t_u8 clock_sync_mode;
|
|
/**clock sync Role */
|
|
t_u8 clock_sync_Role;
|
|
/**clock sync GPIO Pin Number */
|
|
t_u8 clock_sync_gpio_pin_number;
|
|
/**clock sync GPIO Level or Toggle */
|
|
t_u8 clock_sync_gpio_level_toggle;
|
|
/**clock sync GPIO Pulse Width */
|
|
t_u16 clock_sync_gpio_pulse_width;
|
|
|
|
} MLAN_PACK_END MrvlIEtypes_GPIO_TSF_LATCH_CONFIG;
|
|
|
|
/** MrvlIEtypes_GPIO_TSF_LATCH_REPORT */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_GPIO_TSF_LATCH_REPORT {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/**get tsf info format */
|
|
t_u16 tsf_format;
|
|
/**tsf info */
|
|
t_u16 tsf_info;
|
|
/**tsf */
|
|
t_u64 tsf;
|
|
/**Positive or negative offset in microsecond from Beacon TSF to GPIO
|
|
* toggle TSF */
|
|
t_s32 tsf_offset;
|
|
} MLAN_PACK_END MrvlIEtypes_GPIO_TSF_LATCH_REPORT;
|
|
|
|
/** HostCmd_DS_GPIO_TSF_LATCH_PARAM_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_GPIO_TSF_LATCH_PARAM_CONFIG {
|
|
/** Action 0-GET, 1-SET */
|
|
t_u16 action;
|
|
/** MrvlIEtypes_GPIO_TSF_LATCH_CONFIG
|
|
* MrvlIEtypes_GPIO_TSF_LATCH_REPORT
|
|
*/
|
|
t_u8 tlv_buf[];
|
|
} MLAN_PACK_END HostCmd_DS_GPIO_TSF_LATCH_PARAM_CONFIG;
|
|
|
|
/** MrvlIEtypes_CROSS_CHIP_SYNCH_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CROSS_CHIP_SYNCH {
|
|
/** Action 0-GET, 1-SET */
|
|
t_u16 action;
|
|
/**cross chip sync start/stop */
|
|
t_u8 start_stop;
|
|
/**cross chip synch role, master or slave */
|
|
t_u8 role;
|
|
/**cross chip synch periodicty of toggle in us */
|
|
t_u32 period;
|
|
/**cross chip synch initial TSF low */
|
|
t_u32 init_tsf_low;
|
|
/**cross chip synch intial TSF high */
|
|
t_u32 init_tsf_high;
|
|
} MLAN_PACK_END HostCmd_DS_CROSS_CHIP_SYNCH;
|
|
|
|
MLAN_PACK_START struct coalesce_filt_field_param {
|
|
t_u8 operation;
|
|
t_u8 operand_len;
|
|
t_u16 offset;
|
|
t_u8 operand_byte_stream[4];
|
|
} MLAN_PACK_END;
|
|
|
|
MLAN_PACK_START struct coalesce_receive_filt_rule {
|
|
MrvlIEtypesHeader_t header;
|
|
t_u8 num_of_fields;
|
|
t_u8 pkt_type;
|
|
t_u16 max_coalescing_delay;
|
|
struct coalesce_filt_field_param params[1];
|
|
} MLAN_PACK_END;
|
|
|
|
/** HostCmd_DS_COALESCE_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_COALESCE_CONFIG {
|
|
/** Action 0-GET, 1-SET */
|
|
t_u16 action;
|
|
t_u16 num_of_rules;
|
|
struct coalesce_receive_filt_rule rule[1];
|
|
} MLAN_PACK_END HostCmd_DS_COALESCE_CONFIG;
|
|
|
|
/** TLV type : FW support max connection TLV */
|
|
#define TLV_TYPE_MAX_CONN (PROPRIETARY_TLV_BASE_ID + 0x117) /* 0x0217 */
|
|
/** MrvlIEtypes_Max_Conn_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Max_Conn_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** FW support max P2P connection */
|
|
t_u8 max_p2p_conn;
|
|
/** FW support max STA connection */
|
|
t_u8 max_sta_conn;
|
|
} MLAN_PACK_END MrvlIEtypes_Max_Conn_t;
|
|
|
|
/** exceed max p2p connection event */
|
|
typedef MLAN_PACK_START struct _event_exceed_max_p2p_conn {
|
|
/** Event ID */
|
|
t_u16 event_id;
|
|
/** BSS index number for multiple BSS support */
|
|
t_u8 bss_index;
|
|
/** BSS type */
|
|
t_u8 bss_type;
|
|
/** When exceed max, the mac address who request p2p connect */
|
|
t_u8 peer_mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END event_exceed_max_p2p_conn;
|
|
|
|
#ifdef STA_SUPPORT
|
|
|
|
/**
|
|
* @brief Structure used internally in the wlan driver to configure a scan.
|
|
*
|
|
* Sent to the command process module to configure the firmware
|
|
* scan command prepared by wlan_cmd_802_11_scan.
|
|
*
|
|
* @sa wlan_scan_networks
|
|
*
|
|
*/
|
|
typedef MLAN_PACK_START struct _wlan_scan_cmd_config {
|
|
/**
|
|
* BSS Type to be sent in the firmware command
|
|
*
|
|
* Field can be used to restrict the types of networks returned in the
|
|
* scan. Valid settings are:
|
|
*
|
|
* - MLAN_SCAN_MODE_BSS (infrastructure)
|
|
* - MLAN_SCAN_MODE_IBSS (adhoc)
|
|
* - MLAN_SCAN_MODE_ANY (unrestricted, adhoc and infrastructure)
|
|
*/
|
|
t_u8 bss_mode;
|
|
|
|
/**
|
|
* Specific BSSID used to filter scan results in the firmware
|
|
*/
|
|
t_u8 specific_bssid[MLAN_MAC_ADDR_LENGTH];
|
|
|
|
/**
|
|
* Length of TLVs sent in command starting at tlvBuffer
|
|
*/
|
|
t_u32 tlv_buf_len;
|
|
|
|
/**
|
|
* SSID TLV(s) and ChanList TLVs to be sent in the firmware command
|
|
*
|
|
* TLV_TYPE_CHANLIST, MrvlIEtypes_ChanListParamSet_t
|
|
* TLV_TYPE_SSID, MrvlIEtypes_SsIdParamSet_t
|
|
*/
|
|
t_u8 tlv_buf[1]; /* SSID TLV(s) and ChanList TLVs are stored here */
|
|
} MLAN_PACK_END wlan_scan_cmd_config;
|
|
|
|
/**
|
|
* Sructure to retrieve the scan table
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
/**
|
|
* - Zero based scan entry to start retrieval in command request
|
|
* - Number of scans entries returned in command response
|
|
*/
|
|
t_u32 scan_number;
|
|
/**
|
|
* Buffer marker for multiple wlan_ioctl_get_scan_table_entry
|
|
* structures. Each struct is padded to the nearest 32 bit boundary.
|
|
*/
|
|
t_u8 scan_table_entry_buf[1];
|
|
} MLAN_PACK_END wlan_get_scan_table_info;
|
|
|
|
/** Generic structure defined for parsing WPA/RSN IEs for GTK/PTK OUIs */
|
|
typedef MLAN_PACK_START struct {
|
|
/** Group key oui */
|
|
t_u8 GrpKeyOui[4];
|
|
/** Number of PTKs */
|
|
t_u8 PtkCnt[2];
|
|
/** Ptk body starts here */
|
|
t_u8 PtkBody[4];
|
|
} MLAN_PACK_END IEBody;
|
|
#endif /* STA_SUPPORT */
|
|
|
|
/*
|
|
* This scan handle Country Information IE(802.11d compliant)
|
|
* Define data structure for HostCmd_CMD_802_11_SCAN
|
|
*/
|
|
/** HostCmd_DS_802_11_SCAN */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_SCAN {
|
|
/** BSS mode */
|
|
t_u8 bss_mode;
|
|
/** BSSID */
|
|
t_u8 bssid[MLAN_MAC_ADDR_LENGTH];
|
|
/** TLV buffer */
|
|
t_u8 tlv_buffer[1];
|
|
/** MrvlIEtypes_SsIdParamSet_t SsIdParamSet;
|
|
* MrvlIEtypes_ChanListParamSet_t ChanListParamSet;
|
|
* MrvlIEtypes_RatesParamSet_t OpRateSet;
|
|
*/
|
|
} MLAN_PACK_END HostCmd_DS_802_11_SCAN;
|
|
|
|
/** fw_cap_info bit to indicate enhance ext scan type */
|
|
#define ENHANCE_EXT_SCAN_ENABLE MBIT(19)
|
|
/** mlan_event_scan_result data structure */
|
|
typedef MLAN_PACK_START struct _mlan_event_scan_result {
|
|
/** Event ID */
|
|
t_u16 event_id;
|
|
/** BSS index number for multiple BSS support */
|
|
t_u8 bss_index;
|
|
/** BSS type */
|
|
t_u8 bss_type;
|
|
/** More event available or not */
|
|
t_u8 more_event;
|
|
/** Reserved */
|
|
t_u8 reserved[3];
|
|
/** Size of the response buffer */
|
|
t_u16 buf_size;
|
|
/** Number of BSS in scan response */
|
|
t_u8 num_of_set;
|
|
} MLAN_PACK_END mlan_event_scan_result, *pmlan_event_scan_result;
|
|
|
|
/** ext scan status report event */
|
|
typedef MLAN_PACK_START struct _mlan_event_scan_status {
|
|
/** Event ID */
|
|
t_u16 event_id;
|
|
/** BSS index number for multiple BSS support */
|
|
t_u8 bss_index;
|
|
/** BSS type */
|
|
t_u8 bss_type;
|
|
/** scan status */
|
|
t_u8 scan_status;
|
|
/** result */
|
|
t_u16 buf_len;
|
|
/** event buf */
|
|
t_u8 event_buf[];
|
|
} MLAN_PACK_END mlan_event_scan_status, *pmlan_event_scan_status;
|
|
|
|
/*
|
|
* This scan handle Country Information IE(802.11d compliant)
|
|
* Define data structure for HostCmd_CMD_802_11_SCAN_EXT
|
|
*/
|
|
/** HostCmd_DS_802_11_SCAN_EXT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_SCAN_EXT {
|
|
/** Scan type for ext scan
|
|
* 0: default type: cmd resp after ext scan report event
|
|
* 1: enhanced type: cmd resp before ext scan report event
|
|
* 2: scan cancelled: cancel scan during scan processing
|
|
*/
|
|
t_u8 ext_scan_type;
|
|
/** Reserved */
|
|
t_u8 reserved[3];
|
|
/** TLV buffer */
|
|
t_u8 tlv_buffer[1];
|
|
/** MrvlIEtypes_Bssid_List_t BssIdList;
|
|
* MrvlIEtypes_SsIdParamSet_t SSIDParamSet;
|
|
* MrvlIEtypes_ChanListParamSet_t ChanListParamSet;
|
|
* MrvlIEtypes_RatesParamSet_t OpRateSet;
|
|
* MrvlIEtypes_NumProbes_t NumProbes;
|
|
* MrvlIEtypes_WildCardSsIdParamSet_t WildCardSSIDParamSet;
|
|
* MrvlIEtypes_BssMode_t BssMode;
|
|
*/
|
|
} MLAN_PACK_END HostCmd_DS_802_11_SCAN_EXT;
|
|
|
|
/** MrvlIEtypes_BssMode */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_BssMode_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/* INFRA/IBSS/AUTO */
|
|
t_u8 bss_mode;
|
|
} MLAN_PACK_END MrvlIEtypes_BssMode_t;
|
|
|
|
/** BSS scan Rsp */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Bss_Scan_Rsp_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** BSSID of the BSS descriptor */
|
|
t_u8 bssid[MLAN_MAC_ADDR_LENGTH];
|
|
/** Beacon/Probe response buffer */
|
|
t_u8 frame_body[1];
|
|
} MLAN_PACK_END MrvlIEtypes_Bss_Scan_Rsp_t;
|
|
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Bss_Scan_Info_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** RSSI for scan entry */
|
|
t_s16 rssi;
|
|
/** Channel ANPI */
|
|
t_s16 anpi;
|
|
/** Channel load (parts per 255) */
|
|
t_u8 cca_busy_fraction;
|
|
/** Band */
|
|
Band_Config_t bandcfg;
|
|
/** Channel */
|
|
t_u8 channel;
|
|
/** Reserved */
|
|
t_u8 reserved;
|
|
/** TSF data */
|
|
t_u64 tsf;
|
|
} MLAN_PACK_END MrvlIEtypes_Bss_Scan_Info_t;
|
|
|
|
/** HostCmd_DS_RX_MGMT_IND */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_RX_MGMT_IND {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Mgmt frame subtype mask */
|
|
t_u32 mgmt_subtype_mask;
|
|
} MLAN_PACK_END HostCmd_DS_RX_MGMT_IND;
|
|
|
|
/** HostCmd_DS_802_11_SCAN_RSP */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_SCAN_RSP {
|
|
/** Size of BSS descriptor */
|
|
t_u16 bss_descript_size;
|
|
/** Numner of sets */
|
|
t_u8 number_of_sets;
|
|
/** BSS descriptor and TLV buffer */
|
|
t_u8 bss_desc_and_tlv_buffer[1];
|
|
} MLAN_PACK_END HostCmd_DS_802_11_SCAN_RSP;
|
|
|
|
/** HostCmd_DS_802_11_BG_SCAN_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_BG_SCAN_CONFIG {
|
|
/** action */
|
|
t_u16 action;
|
|
/** 0: disable, 1: enable */
|
|
t_u8 enable;
|
|
/** bss type */
|
|
t_u8 bss_type;
|
|
/** num of channel per scan */
|
|
t_u8 chan_per_scan;
|
|
/** reserved field */
|
|
t_u8 reserved;
|
|
/** reserved field */
|
|
t_u16 reserved1;
|
|
/** interval between consecutive scans */
|
|
t_u32 scan_interval;
|
|
/** reserved field */
|
|
t_u32 reserved2;
|
|
/** condition to trigger report to host */
|
|
t_u32 report_condition;
|
|
/** reserved field */
|
|
t_u16 reserved3;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_BG_SCAN_CONFIG;
|
|
|
|
/** HostCmd_DS_802_11_BG_SCAN_QUERY */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_BG_SCAN_QUERY {
|
|
/** Flush */
|
|
t_u8 flush;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_BG_SCAN_QUERY;
|
|
|
|
/** HostCmd_DS_802_11_BG_SCAN_QUERY_RSP */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_BG_SCAN_QUERY_RSP {
|
|
/** Report condition */
|
|
t_u32 report_condition;
|
|
/** Scan response */
|
|
HostCmd_DS_802_11_SCAN_RSP scan_resp;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_BG_SCAN_QUERY_RSP;
|
|
|
|
/** MrvlIEtypes_StartLater_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_StartLater_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/* 0 - BGScan start immediately, 1 - BGScan will start later after "Scan
|
|
* Interval" */
|
|
t_u16 value;
|
|
} MLAN_PACK_END MrvlIEtypes_StartLater_t;
|
|
|
|
/** MrvlIEtypes_RepeatCount_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RepeatCount_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/* Repeat count */
|
|
t_u16 repeat_count;
|
|
} MLAN_PACK_END MrvlIEtypes_RepeatCount_t;
|
|
|
|
/** MrvlIEtypes_DomainParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_DomainParamSet {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Country code */
|
|
t_u8 country_code[COUNTRY_CODE_LEN];
|
|
/** Set of subbands */
|
|
IEEEtypes_SubbandSet_t sub_band[1];
|
|
} MLAN_PACK_END MrvlIEtypes_DomainParamSet_t;
|
|
|
|
/** HostCmd_DS_802_11D_DOMAIN_INFO */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11D_DOMAIN_INFO {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Domain parameter set */
|
|
MrvlIEtypes_DomainParamSet_t domain;
|
|
} MLAN_PACK_END HostCmd_DS_802_11D_DOMAIN_INFO;
|
|
|
|
/** HostCmd_DS_802_11D_DOMAIN_INFO_RSP */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11D_DOMAIN_INFO_RSP {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Domain parameter set */
|
|
MrvlIEtypes_DomainParamSet_t domain;
|
|
} MLAN_PACK_END HostCmd_DS_802_11D_DOMAIN_INFO_RSP;
|
|
|
|
/** HostCmd_DS_11N_ADDBA_REQ */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_11N_ADDBA_REQ {
|
|
/** Result of the ADDBA Request Operation */
|
|
t_u8 add_req_result;
|
|
/** Peer MAC address */
|
|
t_u8 peer_mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** Dialog Token */
|
|
t_u8 dialog_token;
|
|
/** Block Ack Parameter Set */
|
|
t_u16 block_ack_param_set;
|
|
/** Block Act Timeout Value */
|
|
t_u16 block_ack_tmo;
|
|
/** Starting Sequence Number */
|
|
t_u16 ssn;
|
|
} MLAN_PACK_END HostCmd_DS_11N_ADDBA_REQ;
|
|
|
|
/** HostCmd_DS_11N_ADDBA_RSP */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_11N_ADDBA_RSP {
|
|
/** Result of the ADDBA Response Operation */
|
|
t_u8 add_rsp_result;
|
|
/** Peer MAC address */
|
|
t_u8 peer_mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** Dialog Token */
|
|
t_u8 dialog_token;
|
|
/** Status Code */
|
|
t_u16 status_code;
|
|
/** Block Ack Parameter Set */
|
|
t_u16 block_ack_param_set;
|
|
/** Block Act Timeout Value */
|
|
t_u16 block_ack_tmo;
|
|
/** Starting Sequence Number */
|
|
t_u16 ssn;
|
|
} MLAN_PACK_END HostCmd_DS_11N_ADDBA_RSP;
|
|
|
|
/** HostCmd_DS_11N_DELBA */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_11N_DELBA {
|
|
/** Result of the ADDBA Request Operation */
|
|
t_u8 del_result;
|
|
/** Peer MAC address */
|
|
t_u8 peer_mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** Delete Block Ack Parameter Set */
|
|
t_u16 del_ba_param_set;
|
|
/** Reason Code sent for DELBA */
|
|
t_u16 reason_code;
|
|
/** Reserved */
|
|
t_u8 reserved;
|
|
} MLAN_PACK_END HostCmd_DS_11N_DELBA;
|
|
|
|
/** HostCmd_DS_11N_BATIMEOUT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_11N_BATIMEOUT {
|
|
/** TID */
|
|
t_u8 tid;
|
|
/** Peer MAC address */
|
|
t_u8 peer_mac_addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** Delete Block Ack Parameter Set */
|
|
t_u8 origninator;
|
|
} MLAN_PACK_END HostCmd_DS_11N_BATIMEOUT;
|
|
|
|
/** HostCmd_DS_11N_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_11N_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** HTTxCap */
|
|
t_u16 ht_tx_cap;
|
|
/** HTTxInfo */
|
|
t_u16 ht_tx_info;
|
|
/** Misc configuration */
|
|
t_u16 misc_config;
|
|
} MLAN_PACK_END HostCmd_DS_11N_CFG;
|
|
|
|
/** HostCmd_DS_11N_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_REJECT_ADDBA_REQ {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Bit0 : host sleep activated
|
|
* Bit1 : auto reconnect enabled
|
|
* Others : reserved
|
|
*/
|
|
t_u32 conditions;
|
|
} MLAN_PACK_END HostCmd_DS_REJECT_ADDBA_REQ;
|
|
|
|
/** HostCmd_DS_TXBUF_CFG*/
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_TXBUF_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Buffer Size */
|
|
t_u16 buff_size;
|
|
/** End Port_for Multiport */
|
|
t_u16 mp_end_port;
|
|
/** Reserved */
|
|
t_u16 reserved3;
|
|
} MLAN_PACK_END HostCmd_DS_TXBUF_CFG;
|
|
|
|
/** HostCmd_DS_AMSDU_AGGR_CTRL */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_AMSDU_AGGR_CTRL {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Enable */
|
|
t_u16 enable;
|
|
/** Get the current Buffer Size valid */
|
|
t_u16 curr_buf_size;
|
|
} MLAN_PACK_END HostCmd_DS_AMSDU_AGGR_CTRL;
|
|
|
|
/** HostCmd_DS_11AC_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_11AC_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** BandConfig */
|
|
t_u8 band_config;
|
|
/** Misc Configuration */
|
|
t_u8 misc_config;
|
|
/** VHT Capability Info */
|
|
t_u32 vht_cap_info;
|
|
/** VHT Support MCS Set */
|
|
t_u8 vht_supp_mcs_set[VHT_MCS_SET_LEN];
|
|
} MLAN_PACK_END HostCmd_DS_11AC_CFG;
|
|
|
|
/** HostCmd_DS_11ACTXBUF_CFG*/
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_11ACTXBUF_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Buffer Size */
|
|
t_u16 buff_size;
|
|
/** End Port_for Multiport */
|
|
t_u16 mp_end_port;
|
|
/** Reserved */
|
|
t_u16 reserved3;
|
|
} MLAN_PACK_END HostCmd_DS_11ACTXBUF_CFG;
|
|
|
|
/** HostCmd_DS_11AX_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_11AX_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** BandConfig */
|
|
t_u8 band_config;
|
|
/** TLV for HE capability or HE operation */
|
|
t_u8 val[];
|
|
} MLAN_PACK_END HostCmd_DS_11AX_CFG;
|
|
|
|
/** HostCmd_DS_11AX_CMD_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_11AX_CMD_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** CMD_SUBID */
|
|
t_u16 sub_id;
|
|
/** TLV or value for cmd */
|
|
t_u8 val[];
|
|
} MLAN_PACK_END HostCmd_DS_11AX_CMD_CFG;
|
|
|
|
/** HostCmd_DS_RANGE_EXT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_RANGE_EXT {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Range ext mode */
|
|
t_u8 mode;
|
|
} MLAN_PACK_END HostCmd_DS_RANGE_EXT;
|
|
|
|
/** Type definition of hostcmd_twt_setup */
|
|
typedef struct MLAN_PACK_START _hostcmd_twt_setup {
|
|
/** Implicit, 0: TWT session is explicit, 1: Session is implicit */
|
|
t_u8 implicit;
|
|
/** Announced, 0: Unannounced, 1: Announced TWT */
|
|
t_u8 announced;
|
|
/** Trigger Enabled, 0: Non-Trigger enabled, 1: Trigger enabled TWT */
|
|
t_u8 trigger_enabled;
|
|
/** TWT Information Disabled, 0: TWT info enabled, 1: TWT info disabled
|
|
*/
|
|
t_u8 twt_info_disabled;
|
|
/** Negotiation Type, 0: Future Individual TWT SP start time, 1: Next
|
|
* Wake TBTT time */
|
|
t_u8 negotiation_type;
|
|
/** TWT Wakeup Duration, time after which the TWT requesting STA can
|
|
* transition to doze state */
|
|
t_u8 twt_wakeup_duration;
|
|
/** Flow Identifier. Range: [0-7]*/
|
|
t_u8 flow_identifier;
|
|
/** Hard Constraint, 0: FW can tweak the TWT setup parameters if it is
|
|
*rejected by AP.
|
|
** 1: Firmware should not tweak any parameters. */
|
|
t_u8 hard_constraint;
|
|
/** TWT Exponent, Range: [0-63] */
|
|
t_u8 twt_exponent;
|
|
/** TWT Mantissa Range: [0-sizeof(UINT16)] */
|
|
t_u16 twt_mantissa;
|
|
/** TWT Request Type, 0: REQUEST_TWT, 1: SUGGEST_TWT*/
|
|
t_u8 twt_request;
|
|
/** TWT Setup State. Set to 0 by driver, filled by FW in response*/
|
|
t_u8 twt_setup_state;
|
|
/** Reserved, set to 0. */
|
|
t_u8 reserved[2];
|
|
} MLAN_PACK_END hostcmd_twt_setup, *phostcmd_twt_setup;
|
|
|
|
/** Type definition of hostcmd_twt_teardown */
|
|
typedef struct MLAN_PACK_START _hostcmd_twt_teardown {
|
|
/** TWT Flow Identifier. Range: [0-7] */
|
|
t_u8 flow_identifier;
|
|
/** Negotiation Type. 0: Future Individual TWT SP start time, 1: Next
|
|
* Wake TBTT time */
|
|
t_u8 negotiation_type;
|
|
/** Tear down all TWT. 1: To teardown all TWT, 0 otherwise */
|
|
t_u8 teardown_all_twt;
|
|
/** TWT Teardown State. Set to 0 by driver, filled by FW in response */
|
|
t_u8 twt_teardown_state;
|
|
/** Reserved, set to 0. */
|
|
t_u8 reserved[3];
|
|
} MLAN_PACK_END hostcmd_twt_teardown, *phostcmd_twt_teardown;
|
|
|
|
/** Type definition of hostcmd_twt_report */
|
|
typedef MLAN_PACK_START struct _hostcmd_twt_report {
|
|
/** TWT report type, 0: BTWT id */
|
|
t_u8 type;
|
|
/** TWT report length of value in data */
|
|
t_u8 length;
|
|
t_u8 reserve[2];
|
|
/** TWT report payload for FW response to fill */
|
|
t_u8 data[36];
|
|
} MLAN_PACK_END hostcmd_twt_report, *phostcmd_twt_report;
|
|
/** HostCmd_DS_TWT_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_TWT_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** CMD_SUBID */
|
|
t_u16 sub_id;
|
|
/** TWT Setup/Teardown configuration parameters */
|
|
union {
|
|
/** TWT Setup config for Sub ID: MLAN_11AX_TWT_SETUP_SUBID */
|
|
hostcmd_twt_setup twt_setup;
|
|
/** TWT Teardown config for Sub ID: MLAN_11AX_TWT_TEARDOWN_SUBID
|
|
*/
|
|
hostcmd_twt_teardown twt_teardown;
|
|
/** TWT report for Sub ID: MLAN_11AX_TWT_REPORT_SUBID */
|
|
hostcmd_twt_report twt_report;
|
|
} param;
|
|
} MLAN_PACK_END HostCmd_DS_TWT_CFG;
|
|
|
|
/** HostCmd_DS_ECL_SYSTEM_CLOCK_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_ECL_SYSTEM_CLOCK_CONFIG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Current system clock */
|
|
t_u16 cur_sys_clk;
|
|
/** Clock type */
|
|
t_u16 sys_clk_type;
|
|
/** Length of clocks */
|
|
t_u16 sys_clk_len;
|
|
/** System clocks */
|
|
t_u16 sys_clk[16];
|
|
} MLAN_PACK_END HostCmd_DS_ECL_SYSTEM_CLOCK_CONFIG;
|
|
|
|
/** MrvlIEtypes_WmmParamSet_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_WmmParamSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** WMM IE */
|
|
t_u8 wmm_ie[1];
|
|
} MLAN_PACK_END MrvlIEtypes_WmmParamSet_t;
|
|
|
|
/** MrvlIEtypes_WmmQueueStatus_t */
|
|
typedef MLAN_PACK_START struct {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Queue index */
|
|
t_u8 queue_index;
|
|
/** Disabled flag */
|
|
t_u8 disabled;
|
|
/** Medium time allocation in 32us units*/
|
|
t_u16 medium_time;
|
|
/** Flow required flag */
|
|
t_u8 flow_required;
|
|
/** Flow created flag */
|
|
t_u8 flow_created;
|
|
/** Reserved */
|
|
t_u32 reserved;
|
|
} MLAN_PACK_END MrvlIEtypes_WmmQueueStatus_t;
|
|
|
|
/** Size of a TSPEC. Used to allocate necessary buffer space in commands */
|
|
#define WMM_TSPEC_SIZE 63
|
|
|
|
/** Extra IE bytes allocated in messages for appended IEs after a TSPEC */
|
|
#define WMM_ADDTS_EXTRA_IE_BYTES 256
|
|
|
|
/** Extra TLV bytes allocated in messages for configuring WMM Queues */
|
|
#define WMM_QUEUE_CONFIG_EXTRA_TLV_BYTES 64
|
|
|
|
/** Number of bins in the histogram for the HostCmd_DS_WMM_QUEUE_STATS */
|
|
#define WMM_STATS_PKTS_HIST_BINS 7
|
|
|
|
/**
|
|
* @brief Firmware command structure to retrieve the firmware WMM status.
|
|
*
|
|
* Used to retrieve the status of each WMM AC Queue in TLV
|
|
* format (MrvlIEtypes_WmmQueueStatus_t) as well as the current WMM
|
|
* parameter IE advertised by the AP.
|
|
*
|
|
* Used in response to a EVENT_WMM_STATUS_CHANGE event signaling
|
|
* a QOS change on one of the ACs or a change in the WMM Parameter in
|
|
* the Beacon.
|
|
*
|
|
* TLV based command, byte arrays used for max sizing purpose. There are no
|
|
* arguments sent in the command, the TLVs are returned by the firmware.
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
/** Queue status TLV */
|
|
t_u8 queue_status_tlv[sizeof(MrvlIEtypes_WmmQueueStatus_t) *
|
|
MAX_AC_QUEUES];
|
|
/** WMM parameter TLV */
|
|
t_u8 wmm_param_tlv[sizeof(IEEEtypes_WmmParameter_t) + 2];
|
|
} MLAN_PACK_END HostCmd_DS_WMM_GET_STATUS;
|
|
|
|
/**
|
|
* @brief Command structure for the HostCmd_CMD_WMM_ADDTS_REQ firmware command
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
mlan_cmd_result_e command_result; /**< Command result */
|
|
t_u32 timeout_ms; /**< Timeout value in milliseconds */
|
|
t_u8 dialog_token; /**< Dialog token */
|
|
t_u8 ieee_status_code; /**< IEEE status code */
|
|
t_u8 tspec_data[WMM_TSPEC_SIZE]; /**< TSPEC data */
|
|
t_u8 addts_extra_ie_buf[WMM_ADDTS_EXTRA_IE_BYTES]; /**< Extra IE buffer
|
|
*/
|
|
} MLAN_PACK_END HostCmd_DS_WMM_ADDTS_REQ;
|
|
|
|
/**
|
|
* @brief Command structure for the HostCmd_CMD_WMM_DELTS_REQ firmware command
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
mlan_cmd_result_e command_result; /**< Command result */
|
|
t_u8 dialog_token; /**< Dialog token */
|
|
t_u8 ieee_reason_code; /**< IEEE reason code */
|
|
t_u8 tspec_data[WMM_TSPEC_SIZE]; /**< TSPEC data */
|
|
} MLAN_PACK_END HostCmd_DS_WMM_DELTS_REQ;
|
|
|
|
/**
|
|
* @brief Command structure for the HostCmd_CMD_WMM_QUEUE_CONFIG firmware cmd
|
|
*
|
|
* Set/Get/Default the Queue parameters for a specific AC in the firmware.
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
mlan_wmm_queue_config_action_e action; /**< Set, Get, or Default */
|
|
mlan_wmm_ac_e access_category; /**< WMM_AC_BK(0) to WMM_AC_VO(3) */
|
|
/** @brief MSDU lifetime expiry per 802.11e
|
|
*
|
|
* - Ignored if 0 on a set command
|
|
* - Set to the 802.11e specified 500 TUs when defaulted
|
|
*/
|
|
t_u16 msdu_lifetime_expiry;
|
|
t_u8 tlv_buffer[WMM_QUEUE_CONFIG_EXTRA_TLV_BYTES]; /**< Not supported */
|
|
} MLAN_PACK_END HostCmd_DS_WMM_QUEUE_CONFIG;
|
|
|
|
/**
|
|
* @brief Command structure for the HostCmd_CMD_WMM_QUEUE_STATS firmware cmd
|
|
*
|
|
* Turn statistical collection on/off for a given AC or retrieve the
|
|
* accumulated stats for an AC and clear them in the firmware.
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
mlan_wmm_queue_stats_action_e action; /**< Start, Stop, or Get */
|
|
#ifdef BIG_ENDIAN_SUPPORT
|
|
t_u8 select_bin : 7; /**< WMM_AC_BK(0) to WMM_AC_VO(3), or TID */
|
|
t_u8 select_is_userpri : 1; /**< Set if select_bin is UP, Clear for AC
|
|
*/
|
|
#else
|
|
t_u8 select_is_userpri : 1; /**< Set if select_bin is UP, Clear for AC
|
|
*/
|
|
t_u8 select_bin : 7; /**< WMM_AC_BK(0) to WMM_AC_VO(3), or TID */
|
|
#endif
|
|
t_u16 pkt_count; /**< Number of successful packets transmitted */
|
|
t_u16 pkt_loss; /**< Packets lost; not included in pktCount */
|
|
t_u32 avg_queue_delay; /**< Average Queue delay in microsec */
|
|
t_u32 avg_tx_delay; /**< Average Transmission delay in microsec */
|
|
t_u16 used_time; /**< Calc used time - units of 32 microsec */
|
|
t_u16 policed_time; /**< Calc policed time - units of 32 microsec */
|
|
/** @brief Queue Delay Histogram; number of packets per queue delay
|
|
* range
|
|
*
|
|
* [0] - 0ms <= delay < 5ms
|
|
* [1] - 5ms <= delay < 10ms
|
|
* [2] - 10ms <= delay < 20ms
|
|
* [3] - 20ms <= delay < 30ms
|
|
* [4] - 30ms <= delay < 40ms
|
|
* [5] - 40ms <= delay < 50ms
|
|
* [6] - 50ms <= delay < msduLifetime (TUs)
|
|
*/
|
|
t_u16 delay_histogram[WMM_STATS_PKTS_HIST_BINS];
|
|
/** Reserved */
|
|
t_u16 reserved_1;
|
|
} MLAN_PACK_END HostCmd_DS_WMM_QUEUE_STATS;
|
|
|
|
/**
|
|
* @brief Command structure for the HostCmd_CMD_WMM_TS_STATUS firmware cmd
|
|
*
|
|
* Query the firmware to get the status of the WMM Traffic Streams
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
/** TSID: Range: 0->7 */
|
|
t_u8 tid;
|
|
/** TSID specified is valid */
|
|
t_u8 valid;
|
|
/** AC TSID is active on */
|
|
t_u8 access_category;
|
|
/** UP specified for the TSID */
|
|
t_u8 user_priority;
|
|
/** Power save mode for TSID: 0 (legacy), 1 (UAPSD) */
|
|
t_u8 psb;
|
|
/** Uplink(1), Downlink(2), Bidirectional(3) */
|
|
t_u8 flow_dir;
|
|
/** Medium time granted for the TSID */
|
|
t_u16 medium_time;
|
|
} MLAN_PACK_END HostCmd_DS_WMM_TS_STATUS;
|
|
|
|
/** Firmware status for a specific AC */
|
|
typedef MLAN_PACK_START struct {
|
|
/** Disabled flag */
|
|
t_u8 disabled;
|
|
/** Flow required flag */
|
|
t_u8 flow_required;
|
|
/** Flow created flag */
|
|
t_u8 flow_created;
|
|
} MLAN_PACK_END WmmAcStatus_t;
|
|
|
|
/** Local Power Capability */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_PowerCapability_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Minmum power */
|
|
t_s8 min_power;
|
|
/** Maximum power */
|
|
t_s8 max_power;
|
|
} MLAN_PACK_END MrvlIEtypes_PowerCapability_t;
|
|
|
|
/** HT Information element */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_HTInfo_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** HTInfo struct */
|
|
HTInfo_t ht_info;
|
|
} MLAN_PACK_END MrvlIETypes_HTInfo_t;
|
|
|
|
/** 20/40 BSS Coexistence element */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_2040BSSCo_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** BSSCo2040_t struct */
|
|
BSSCo2040_t bss_co_2040;
|
|
} MLAN_PACK_END MrvlIETypes_2040BSSCo_t;
|
|
|
|
/** Extended Capabilities element */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_ExtCap_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** ExtCap_t struct */
|
|
ExtCap_t ext_cap;
|
|
} MLAN_PACK_END MrvlIETypes_ExtCap_t;
|
|
|
|
/** Supported operating classes element */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_SuppOperClass_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Current operationg class **/
|
|
t_u8 current_oper_class;
|
|
/** Operating class list */
|
|
t_u8 oper_class[1];
|
|
} MLAN_PACK_END MrvlIETypes_SuppOperClass_t;
|
|
|
|
/* Supported Transmit Power Envelope Element */
|
|
typedef MLAN_PACK_START struct {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Transmit Power Information */
|
|
t_u8 tpc_info;
|
|
/** Maximum Transmit Power Spectral Density */
|
|
t_u8 max_tp_spectral_density;
|
|
} MLAN_PACK_END MrvlIETypes_TpcEnvelope_t;
|
|
|
|
/** Oper_class channel bandwidth element */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_chan_bw_oper_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** channel oper bandwidth*/
|
|
mlan_ds_bw_chan_oper ds_chan_bw_oper;
|
|
} MLAN_PACK_END MrvlIEtypes_chan_bw_oper_t;
|
|
|
|
/** Qos Info */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_qosinfo_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** qos_info*/
|
|
t_u8 qos_info;
|
|
} MLAN_PACK_END MrvlIETypes_qosinfo_t;
|
|
|
|
/** Overlapping BSS Scan Parameters element */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_OverlapBSSScanParam_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** OBSSScanParam_t struct */
|
|
OBSSScanParam_t obss_scan_param;
|
|
} MLAN_PACK_END MrvlIETypes_OverlapBSSScanParam_t;
|
|
|
|
/** Set of MCS values that STA desires to use within the BSS */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_HTOperationalMCSSet_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** Bitmap indicating MCSs that STA desires to use within the BSS */
|
|
t_u8 ht_operational_mcs_bitmap[16];
|
|
} MLAN_PACK_END MrvlIETypes_HTOperationalMCSSet_t;
|
|
|
|
/** VHT Operations IE */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_VHTOprat_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
t_u8 chan_width;
|
|
t_u8 chan_center_freq_1;
|
|
t_u8 chan_center_freq_2;
|
|
/** Basic MCS set map, each 2 bits stands for a Nss */
|
|
t_u16 basic_MCS_map;
|
|
} MLAN_PACK_END MrvlIETypes_VHTOprat_t;
|
|
|
|
/** VHT Transmit Power Envelope IE */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_VHTtxpower_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
t_u8 max_tx_power;
|
|
t_u8 chan_center_freq;
|
|
t_u8 chan_width;
|
|
} MLAN_PACK_END MrvlIETypes_VHTtxpower_t;
|
|
|
|
/** Extended Power Constraint IE */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_ExtPwerCons_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** channel width */
|
|
t_u8 chan_width;
|
|
/** local power constraint */
|
|
t_u8 local_power_cons;
|
|
} MLAN_PACK_END MrvlIETypes_ExtPwerCons_t;
|
|
|
|
/** Extended BSS Load IE */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_ExtBSSload_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
t_u8 MU_MIMO_capa_count;
|
|
t_u8 stream_underutilization;
|
|
t_u8 VHT40_util;
|
|
t_u8 VHT80_util;
|
|
t_u8 VHT160_util;
|
|
} MLAN_PACK_END MrvlIETypes_ExtBSSload_t;
|
|
|
|
/** Quiet Channel IE */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_QuietChan_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
t_u8 AP_quiet_mode;
|
|
t_u8 quiet_count;
|
|
t_u8 quiet_period;
|
|
t_u16 quiet_dur;
|
|
t_u16 quiet_offset;
|
|
} MLAN_PACK_END MrvlIETypes_QuietChan_t;
|
|
|
|
/** Wide Bandwidth Channel Switch IE */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_BWSwitch_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
t_u8 new_chan_width;
|
|
t_u8 new_chan_center_freq_1;
|
|
t_u8 new_chan_center_freq_2;
|
|
} MLAN_PACK_END MrvlIETypes_BWSwitch_t;
|
|
|
|
/** AID IE */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_AID_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** AID number */
|
|
t_u16 AID;
|
|
} MLAN_PACK_END MrvlIETypes_AID_t;
|
|
|
|
/** Operating Mode Notification IE */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_OperModeNtf_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** operating mdoe */
|
|
t_u8 oper_mode;
|
|
} MLAN_PACK_END MrvlIETypes_OperModeNtf_t;
|
|
|
|
/** bf global args */
|
|
typedef struct MLAN_PACK_START _bf_global_cfg_args {
|
|
/** Global enable/disable bf */
|
|
t_u8 bf_enbl;
|
|
/** Global enable/disable sounding */
|
|
t_u8 sounding_enbl;
|
|
/** FB Type */
|
|
t_u8 fb_type;
|
|
/** SNR Threshold */
|
|
t_u8 snr_threshold;
|
|
/** Sounding interval */
|
|
t_u16 sounding_interval;
|
|
/** BF mode */
|
|
t_u8 bf_mode;
|
|
/** Reserved */
|
|
t_u8 reserved;
|
|
} MLAN_PACK_END bf_global_cfg_args;
|
|
|
|
/** bf_trigger_sound_args_t */
|
|
typedef MLAN_PACK_START struct _bf_trigger_sound_args_t {
|
|
/** Peer MAC address */
|
|
t_u8 peer_mac[MLAN_MAC_ADDR_LENGTH];
|
|
/** Status */
|
|
t_u8 status;
|
|
} MLAN_PACK_END bf_trigger_sound_args_t;
|
|
|
|
/** bf periodicity args */
|
|
typedef MLAN_PACK_START struct _bf_periodicity_args {
|
|
/** Peer MAC address */
|
|
t_u8 peer_mac[MLAN_MAC_ADDR_LENGTH];
|
|
/** Current Tx BF Interval */
|
|
t_u16 interval;
|
|
/** Status */
|
|
t_u8 status;
|
|
} MLAN_PACK_END bf_periodicity_args;
|
|
|
|
/** bf peer configuration args */
|
|
typedef struct MLAN_PACK_START _bf_peer_args {
|
|
/** Peer MAC address */
|
|
t_u8 peer_mac[MLAN_MAC_ADDR_LENGTH];
|
|
/** Reserved */
|
|
t_u16 reserved;
|
|
/** Enable/Disable Beamforming */
|
|
t_u8 bf_enbl;
|
|
/** Enable/Disable sounding */
|
|
t_u8 sounding_enbl;
|
|
/** FB Type */
|
|
t_u8 fb_type;
|
|
} MLAN_PACK_END bf_peer_args;
|
|
|
|
/** bf_snr_thr_t */
|
|
typedef MLAN_PACK_START struct _bf_snr_thr_t {
|
|
/** Peer MAC address */
|
|
t_u8 peer_mac[MLAN_MAC_ADDR_LENGTH];
|
|
/** SNR */
|
|
t_u8 snr;
|
|
} MLAN_PACK_END bf_snr_thr_t;
|
|
|
|
/** HostCmd_DS_TX_BF_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_TX_BF_CFG {
|
|
/* Beamforming action */
|
|
t_u16 bf_action;
|
|
/* action - SET/GET*/
|
|
t_u16 action;
|
|
|
|
MLAN_PACK_START union {
|
|
bf_global_cfg_args bf_global_cfg;
|
|
bf_trigger_sound_args_t bf_sound_args;
|
|
bf_periodicity_args bf_periodicity;
|
|
bf_peer_args tx_bf_peer;
|
|
bf_snr_thr_t bf_snr;
|
|
} MLAN_PACK_END body;
|
|
} MLAN_PACK_END HostCmd_DS_TX_BF_CFG;
|
|
|
|
#ifdef WIFI_DIRECT_SUPPORT
|
|
/** MrvlIEtypes_psk_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_psk_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** PSK */
|
|
t_u8 psk[MLAN_MAX_KEY_LENGTH];
|
|
} MLAN_PACK_END MrvlIEtypes_psk_t;
|
|
#endif /* WIFI_DIRECT_SUPPORT */
|
|
|
|
/** Data structure for Link ID */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_LinkIDElement_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Bssid */
|
|
t_u8 bssid[MLAN_MAC_ADDR_LENGTH];
|
|
/** initial sta address*/
|
|
t_u8 init_sta[MLAN_MAC_ADDR_LENGTH];
|
|
/** respose sta address */
|
|
t_u8 resp_sta[MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END MrvlIETypes_LinkIDElement_t;
|
|
|
|
/** MrvlIEtypes_PMK_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_PMK_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** PMK */
|
|
t_u8 pmk[1];
|
|
} MLAN_PACK_END MrvlIEtypes_PMK_t;
|
|
|
|
/** MrvlIEtypes_Passphrase_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Passphrase_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Passphrase */
|
|
char passphrase[1];
|
|
} MLAN_PACK_END MrvlIEtypes_Passphrase_t;
|
|
|
|
/** MrvlIEtypes_SAE_Password_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_SAE_Password_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** SAE Password */
|
|
char sae_password[1];
|
|
} MLAN_PACK_END MrvlIEtypes_SAE_Password_t;
|
|
|
|
/** MrvlIEtypes_SAE_PWE_Mode_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_SAE_PWE_Mode_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** WPA3 SAE mechanism for PWE derivation */
|
|
char pwe[1];
|
|
} MLAN_PACK_END MrvlIEtypes_SAE_PWE_Mode_t;
|
|
|
|
/** SAE H2E capability bit in RSNX */
|
|
#define SAE_H2E_BIT 5
|
|
|
|
/* rsnMode -
|
|
* Bit 0 : No RSN
|
|
* Bit 1-2 : RFU
|
|
* Bit 3 : WPA
|
|
* Bit 4 : WPA-NONE
|
|
* Bit 5 : WPA2
|
|
* Bit 6 : AES CCKM
|
|
* Bit 7-15 : RFU
|
|
*/
|
|
/** MrvlIEtypes_EncrProto_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_EncrProto_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** EncrProto */
|
|
t_u16 rsn_mode;
|
|
} MLAN_PACK_END MrvlIEtypes_EncrProto_t;
|
|
|
|
/** MrvlIEtypes_Bssid_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Bssid_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Bssid */
|
|
t_u8 bssid[MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END MrvlIEtypes_Bssid_t;
|
|
|
|
/*
|
|
* This struct will handle GET,SET,CLEAR function for embedded
|
|
* supplicant.
|
|
* Define data structure for HostCmd_CMD_802_11_SUPPLICANT_PMK
|
|
*/
|
|
/** HostCmd_DS_802_11_SUPPLICANT_PMK */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_SUPPLICANT_PMK {
|
|
/** CMD Action GET/SET/CLEAR */
|
|
t_u16 action;
|
|
/** CacheResult initialized to 0 */
|
|
t_u16 cache_result;
|
|
/** TLV Buffer */
|
|
t_u8 tlv_buffer[1];
|
|
/** MrvlIEtypes_SsidParamSet_t SsidParamSet;
|
|
* MrvlIEtypes_PMK_t Pmk;
|
|
* MrvlIEtypes_Passphrase_t Passphrase;
|
|
* MrvlIEtypes_Bssid_t Bssid;
|
|
**/
|
|
} MLAN_PACK_END HostCmd_DS_802_11_SUPPLICANT_PMK;
|
|
|
|
/*
|
|
* This struct will GET the Supplicant supported bitmaps
|
|
* The GET_CURRENT action will get the network profile used
|
|
* for the current assocation.
|
|
* Define data structure for HostCmd_CMD_802_11_SUPPLICANT_PROFILE
|
|
*/
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_SUPPLICANT_PROFILE {
|
|
/** GET/SET/GET_CURRENT */
|
|
t_u16 action;
|
|
/** Reserved */
|
|
t_u16 reserved;
|
|
/** TLVBuffer */
|
|
t_u8 tlv_buf[1];
|
|
/* MrvlIEtypes_EncrProto_t */
|
|
} MLAN_PACK_END HostCmd_DS_802_11_SUPPLICANT_PROFILE;
|
|
|
|
/* unicastCipher -
|
|
* Bit 0 : RFU
|
|
* Bit 1 : RFU
|
|
* Bit 2 : TKIP
|
|
* Bit 3 : AES CCKM
|
|
* Bit 2-7 : RFU
|
|
* multicastCipher -
|
|
* Bit 0 : WEP40
|
|
* Bit 1 : WEP104
|
|
* Bit 2 : TKIP
|
|
* Bit 3 : AES
|
|
* Bit 4-7 : Reserved for now
|
|
*/
|
|
/** MrvlIEtypes_Cipher_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Cipher_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** PairCipher */
|
|
t_u8 pair_cipher;
|
|
/** GroupCipher */
|
|
t_u8 group_cipher;
|
|
} MLAN_PACK_END MrvlIEtypes_Cipher_t;
|
|
|
|
/** RFType */
|
|
typedef MLAN_PACK_START struct _RFType_t {
|
|
/** band info */
|
|
Band_Config_t bandcfg;
|
|
/** reserved */
|
|
t_u8 reserved;
|
|
} MLAN_PACK_END RFType_t;
|
|
|
|
/** HostCmd_CMD_802_11_RF_CHANNEL */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_RF_CHANNEL {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Current channel */
|
|
t_u16 current_channel;
|
|
/** RF type */
|
|
RFType_t rf_type;
|
|
/** Reserved field */
|
|
t_u16 reserved;
|
|
#ifdef STA_SUPPORT
|
|
/** Reserved */
|
|
t_u8 reserved_1[32];
|
|
#else /* STA_SUPPORT */
|
|
/** List of channels */
|
|
t_u8 channel_list[32];
|
|
#endif /* !STA_SUPPORT */
|
|
} MLAN_PACK_END HostCmd_DS_802_11_RF_CHANNEL;
|
|
|
|
/** HostCmd_DS_VERSION_EXT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_VERSION_EXT {
|
|
/** Selected version string */
|
|
t_u8 version_str_sel;
|
|
/** Version string */
|
|
char version_str[128];
|
|
} MLAN_PACK_END HostCmd_DS_VERSION_EXT;
|
|
|
|
#define TLV_TYPE_CHAN_ATTR_CFG (PROPRIETARY_TLV_BASE_ID + 237)
|
|
#define TLV_TYPE_REGION_INFO (PROPRIETARY_TLV_BASE_ID + 238)
|
|
#define TLV_TYPE_POWER_TABLE (PROPRIETARY_TLV_BASE_ID + 262)
|
|
#define TLV_TYPE_POWER_TABLE_ATTR (PROPRIETARY_TLV_BASE_ID + 317)
|
|
/** HostCmd_DS_CHAN_REGION_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CHAN_REGION_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
} MLAN_PACK_END HostCmd_DS_CHAN_REGION_CFG;
|
|
|
|
/** HostCmd_DS_REGION_POWER_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_REGION_POWER_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
} MLAN_PACK_END HostCmd_DS_REGION_POWER_CFG;
|
|
|
|
/** HostCmd_CMD_802_11_RF_ANTENNA */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_RF_ANTENNA {
|
|
/** Action for Tx antenna */
|
|
t_u16 action_tx;
|
|
/** Tx antenna mode Bit0:1, Bit1:2, Bit0-1:1+2, 0xffff: diversity */
|
|
t_u16 tx_antenna_mode;
|
|
/** Action for Rx antenna */
|
|
t_u16 action_rx;
|
|
/** Rx antenna mode Bit0:1, Bit1:2, Bit0-1:1+2, 0xffff: diversity */
|
|
t_u16 rx_antenna_mode;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_RF_ANTENNA;
|
|
|
|
/** HostCmd_DS_802_11_IBSS_STATUS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_IBSS_STATUS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Enable */
|
|
t_u16 enable;
|
|
/** BSSID */
|
|
t_u8 bssid[MLAN_MAC_ADDR_LENGTH];
|
|
/** Beacon interval */
|
|
t_u16 beacon_interval;
|
|
/** ATIM window interval */
|
|
t_u16 atim_window;
|
|
/** User G rate protection */
|
|
t_u16 use_g_rate_protect;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_IBSS_STATUS;
|
|
|
|
/** HostCmd_DS_MGMT_IE_LIST_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_MGMT_IE_LIST {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Get/Set mgmt IE */
|
|
mlan_ds_misc_custom_ie ds_mgmt_ie;
|
|
} MLAN_PACK_END HostCmd_DS_MGMT_IE_LIST_CFG;
|
|
|
|
/** HostCmd_DS_TDLS_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_TDLS_CONFIG {
|
|
/** Set TDLS configuration */
|
|
mlan_ds_misc_tdls_config tdls_info;
|
|
} MLAN_PACK_END HostCmd_DS_TDLS_CONFIG;
|
|
|
|
/**Action ID for TDLS delete link*/
|
|
#define TDLS_DELETE 0x00
|
|
/**Action ID for TDLS create link*/
|
|
#define TDLS_CREATE 0x01
|
|
/**Action ID for TDLS config link*/
|
|
#define TDLS_CONFIG 0x02
|
|
/** HostCmd_DS_TDLS_OPER */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_TDLS_OPER {
|
|
/** Action */
|
|
t_u16 tdls_action;
|
|
/**reason*/
|
|
t_u16 reason;
|
|
/** peer mac */
|
|
t_u8 peer_mac[MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END HostCmd_DS_TDLS_OPER;
|
|
|
|
/** HostCmd_CMD_MAC_REG_ACCESS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_MAC_REG_ACCESS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** MAC register offset */
|
|
t_u16 offset;
|
|
/** MAC register value */
|
|
t_u32 value;
|
|
} MLAN_PACK_END HostCmd_DS_MAC_REG_ACCESS;
|
|
|
|
/** HostCmd_CMD_BCA_REG_ACCESS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_BCA_REG_ACCESS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** BCA register offset */
|
|
t_u16 offset;
|
|
/** BCA register value */
|
|
t_u32 value;
|
|
} MLAN_PACK_END HostCmd_DS_BCA_REG_ACCESS;
|
|
|
|
/** HostCmd_CMD_BBP_REG_ACCESS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_BBP_REG_ACCESS {
|
|
/** Acion */
|
|
t_u16 action;
|
|
/** BBP register offset */
|
|
t_u16 offset;
|
|
/** BBP register value */
|
|
t_u8 value;
|
|
/** Reserved field */
|
|
t_u8 reserved[3];
|
|
} MLAN_PACK_END HostCmd_DS_BBP_REG_ACCESS;
|
|
|
|
/** HostCmd_CMD_RF_REG_ACCESS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_RF_REG_ACCESS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** RF register offset */
|
|
t_u16 offset;
|
|
/** RF register value */
|
|
t_u8 value;
|
|
/** Reserved field */
|
|
t_u8 reserved[3];
|
|
} MLAN_PACK_END HostCmd_DS_RF_REG_ACCESS;
|
|
|
|
/** HostCmd_DS_802_11_EEPROM_ACCESS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_EEPROM_ACCESS {
|
|
/** Action */
|
|
t_u16 action;
|
|
|
|
/** multiple 4 */
|
|
t_u16 offset;
|
|
/** Number of bytes */
|
|
t_u16 byte_count;
|
|
/** Value */
|
|
t_u8 value;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_EEPROM_ACCESS;
|
|
|
|
/** HostCmd_DS_MEM_ACCESS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_MEM_ACCESS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Reserved field */
|
|
t_u16 reserved;
|
|
/** Address */
|
|
t_u32 addr;
|
|
/** Value */
|
|
t_u32 value;
|
|
} MLAN_PACK_END HostCmd_DS_MEM_ACCESS;
|
|
|
|
/** HostCmd_CMD_REG_ACCESS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_REG_ACCESS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** reg type */
|
|
t_u16 reg_type;
|
|
/** reserved */
|
|
t_u16 reserved;
|
|
/** register offset */
|
|
t_u16 offset;
|
|
/** register value */
|
|
t_u32 value;
|
|
} MLAN_PACK_END HostCmd_DS_REG_ACCESS;
|
|
|
|
/** Type defination of HostCmd_gpio_cfg_ops */
|
|
typedef MLAN_PACK_START struct _HostCmd_gpio_cfg_ops {
|
|
/** Get or Set action */
|
|
t_u8 action;
|
|
/** Operation type */
|
|
t_u8 opsType;
|
|
/** pin number */
|
|
t_u8 pin_num;
|
|
/** pin value */
|
|
t_u8 value;
|
|
} MLAN_PACK_END HostCmd_gpio_cfg_ops;
|
|
|
|
/** HostCmd_DS_TARGET_ACCESS */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_TARGET_ACCESS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** CSU Target Device. 1: CSU, 2: PSU */
|
|
t_u16 csu_target;
|
|
/** Target Device Address */
|
|
t_u16 address;
|
|
/** Data */
|
|
t_u8 data;
|
|
} MLAN_PACK_END HostCmd_DS_TARGET_ACCESS;
|
|
|
|
/** HostCmd_DS_SUBSCRIBE_EVENT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_SUBSCRIBE_EVENT {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Bitmap of subscribed events */
|
|
t_u16 event_bitmap;
|
|
} MLAN_PACK_END HostCmd_DS_SUBSCRIBE_EVENT;
|
|
|
|
/** HostCmd_DS_OTP_USER_DATA */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_OTP_USER_DATA {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Reserved field */
|
|
t_u16 reserved;
|
|
/** User data length */
|
|
t_u16 user_data_length;
|
|
/** User data */
|
|
t_u8 user_data[1];
|
|
} MLAN_PACK_END HostCmd_DS_OTP_USER_DATA;
|
|
|
|
/** HostCmd_DS_FW_AUTO_RECONNECT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_FW_AUTO_RECONNECT {
|
|
/** ACT_GET/ACT_SET */
|
|
t_u16 action;
|
|
/** reconnect counter:
|
|
* [0x0]: Do not attempt auto reconnect i.e. disable auto-reconnect
|
|
* [0x1-0xFE]: Number of times reconnection needs to be attempted
|
|
* [0xFF]: Attempt auto-reconnection forever */
|
|
t_u8 reconnect_counter;
|
|
/** reconnect interval */
|
|
t_u8 reconnect_interval;
|
|
/** flags:
|
|
* [Bit 0]: Set to 1: Firmware should report link-loss to host if AP
|
|
* rejects authentication/association while reconnecting Set to 0:
|
|
* Default behavior: Firmware does not report link-loss to host on AP
|
|
* rejection and continues internally [Bit 1-15]: Reserved */
|
|
t_u16 flags;
|
|
} MLAN_PACK_END HostCmd_DS_FW_AUTO_RECONNECT;
|
|
|
|
/** HostCmd_CMD_HS_WAKEUP_REASON */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_HS_WAKEUP_REASON {
|
|
/** wakeupReason:
|
|
* 0: unknown
|
|
* 1: Broadcast data matched
|
|
* 2: Multicast data matched
|
|
* 3: Unicast data matched
|
|
* 4: Maskable event matched
|
|
* 5. Non-maskable event matched
|
|
* 6: Non-maskable condition matched (EAPoL rekey)
|
|
* 7: Magic pattern matched
|
|
* Others: reserved. (set to 0) */
|
|
t_u16 wakeup_reason;
|
|
} MLAN_PACK_END HostCmd_DS_HS_WAKEUP_REASON;
|
|
|
|
/** MrvlIEtypes_HsWakeHoldoff_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_HsWakeHoldoff_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Minimum delay between HsActive and HostWake (in msec) */
|
|
t_u16 min_wake_holdoff;
|
|
} MLAN_PACK_END MrvlIEtypes_HsWakeHoldoff_t;
|
|
|
|
/** MrvlIEtypes_PsParamsInHs_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_PsParamsInHs_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Host sleep wake interval(in msec) */
|
|
t_u32 hs_wake_interval;
|
|
/** Host sleep inactivity timeout (in msec) */
|
|
t_u32 hs_inactivity_timeout;
|
|
} MLAN_PACK_END MrvlIEtypes_PsParamsInHs_t;
|
|
|
|
/** MrvlIEtypes_WakeupSourceGPIO_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_WakeupSourceGPIO_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** GPIO for indication of wakeup source */
|
|
t_u8 ind_gpio;
|
|
/** Level on ind_gpio for normal wakeup source */
|
|
t_u8 level;
|
|
} MLAN_PACK_END MrvlIEtypes_WakeupSourceGPIO_t;
|
|
|
|
/** MrvlIEtypes_RobustcoexSourceGPIO_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RobustcoexSourceGPIO_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** GPIO cfg for external bt request */
|
|
t_u8 enable;
|
|
/** GPIO number */
|
|
t_u8 gpio_num;
|
|
/** GPIO Polarity */
|
|
t_u8 gpio_polarity;
|
|
} MLAN_PACK_END MrvlIEtypes_RobustcoexSourceGPIO_t;
|
|
|
|
#define MAX_NUM_MAC 2
|
|
|
|
typedef MLAN_PACK_START struct _dmcs_chan_status {
|
|
/** Channel number */
|
|
t_u8 channel;
|
|
/** Number of AP on this channel */
|
|
t_u8 ap_count;
|
|
/** Number of STA on this channel*/
|
|
t_u8 sta_count;
|
|
} MLAN_PACK_END dmcs_chan_status;
|
|
|
|
typedef MLAN_PACK_START struct _dmcs_status_data {
|
|
/** radio ID */
|
|
t_u8 radio_id;
|
|
/** Running mode
|
|
** 0 - Idle
|
|
** 1 - DBC
|
|
** 2 - DRCS
|
|
*/
|
|
t_u8 running_mode;
|
|
/** Channel status of this radio */
|
|
dmcs_chan_status chan_status[2];
|
|
} MLAN_PACK_END dmcs_status_data;
|
|
|
|
/** MrvlIEtypes_DmcsConfig_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_DmcsConfig_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Mapping policy */
|
|
t_u8 mapping_policy;
|
|
/** Radio status of DMCS */
|
|
dmcs_status_data radio_status[MAX_NUM_MAC];
|
|
} MLAN_PACK_END MrvlIEtypes_DmcsStatus_t;
|
|
|
|
#define ANTMODE_FW_DECISION 0xff
|
|
/** MrvlIEtypes_HS_Antmode_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_HS_Antmode_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Tx Path antenna mode*/
|
|
t_u8 txpath_antmode;
|
|
/** Rx Path antenna mode */
|
|
t_u8 rxpath_antmode;
|
|
} MLAN_PACK_END MrvlIEtypes_HS_Antmode_t;
|
|
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_WakeupExtend_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Events that will be forced ignore **/
|
|
t_u32 event_force_ignore;
|
|
/** Events that will use extend gap to inform host*/
|
|
t_u32 event_use_ext_gap;
|
|
/** Extend gap*/
|
|
t_u8 ext_gap;
|
|
/** GPIO wave level*/
|
|
t_u8 gpio_wave;
|
|
} MLAN_PACK_END MrvlIEtypes_WakeupExtend_t;
|
|
|
|
#define EVENT_MANAGEMENT_FRAME_WAKEUP 0x00000088
|
|
typedef MLAN_PACK_START struct _mgmt_frame_filter {
|
|
/** action - bitmap
|
|
** On matching rx'd pkt and filter during NON_HOSTSLEEP mode:
|
|
** Action[1]=0 Discard
|
|
** Action[1]=1 Allow
|
|
** Note that default action on non-match is "Allow".
|
|
**
|
|
** On matching rx'd pkt and filter during HOSTSLEEP mode:
|
|
** Action[1:0]=00 Discard and Not Wake host
|
|
** Action[1:0]=01 Discard and Wake host
|
|
** Action[1:0]=10 Invalid
|
|
** Note that default action on non-match is "Discard and Not Wake
|
|
*host".
|
|
**/
|
|
t_u8 action;
|
|
/** Frame type(p2p...)
|
|
** type=0: invalid
|
|
** type=1: p2p
|
|
** type=0xff: management frames(assoc req/rsp, probe req/rsp,...)
|
|
** type=others: reserved
|
|
**/
|
|
t_u8 type;
|
|
/** Frame mask according to each type
|
|
** When type=1 for p2p, frame-mask have following define:
|
|
** Bit Frame
|
|
** 0 GO Negotiation Request
|
|
** 1 GO Negotiation Response
|
|
** 2 GO Negotiation Confirmation
|
|
** 3 P2P Invitation Request
|
|
** 4 P2P Invitation Response
|
|
** 5 Device Discoverability Request
|
|
** 6 Device Discoverability Response
|
|
** 7 Provision Discovery Request
|
|
** 8 Provision Discovery Response
|
|
** 9 Notice of Absence
|
|
** 10 P2P Presence Request
|
|
** 11 P2P Presence Response
|
|
** 12 GO Discoverability Request
|
|
** 13-31 Reserved
|
|
**
|
|
** When type=others, frame-mask is reserved.
|
|
**/
|
|
t_u32 frame_mask;
|
|
} MLAN_PACK_END mgmt_frame_filter;
|
|
|
|
#define MAX_MGMT_FRAME_FILTER 2
|
|
/** MrvlIEtypes_MgmtFrameFilter_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_MgmtFrameFilter_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** management frame filters */
|
|
mgmt_frame_filter filter[MAX_MGMT_FRAME_FILTER];
|
|
} MLAN_PACK_END MrvlIEtypes_MgmtFrameFilter_t;
|
|
|
|
/** HostCmd_DS_INACTIVITY_TIMEOUT_EXT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_INACTIVITY_TIMEOUT_EXT {
|
|
/** ACT_GET/ACT_SET */
|
|
t_u16 action;
|
|
/** uS, 0 means 1000uS(1ms) */
|
|
t_u16 timeout_unit;
|
|
/** Inactivity timeout for unicast data */
|
|
t_u16 unicast_timeout;
|
|
/** Inactivity timeout for multicast data */
|
|
t_u16 mcast_timeout;
|
|
/** Timeout for additional RX traffic after Null PM1 packet exchange */
|
|
t_u16 ps_entry_timeout;
|
|
/** Inactivity timeout for cmd */
|
|
t_u16 ps_cmd_timeout;
|
|
} MLAN_PACK_END HostCmd_DS_INACTIVITY_TIMEOUT_EXT;
|
|
|
|
/** HostCmd_DS_INDEPENDENT_RESET_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_INDEPENDENT_RESET_CFG {
|
|
/** ACT_GET/ACT_SET */
|
|
t_u16 action;
|
|
/** out band independent reset */
|
|
t_u8 ir_mode;
|
|
/** gpio pin */
|
|
t_u8 gpio_pin;
|
|
} MLAN_PACK_END HostCmd_DS_INDEPENDENT_RESET_CFG;
|
|
|
|
/** HostCmd_DS_802_11_PS_INACTIVITY_TIMEOUT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_802_11_PS_INACTIVITY_TIMEOUT {
|
|
/** ACT_GET/ACT_SET */
|
|
t_u16 action;
|
|
/** ps inactivity timeout value */
|
|
t_u16 inact_tmo;
|
|
} MLAN_PACK_END HostCmd_DS_802_11_PS_INACTIVITY_TIMEOUT;
|
|
|
|
/** TLV type : STA Mac address */
|
|
#define TLV_TYPE_STA_MAC_ADDRESS (PROPRIETARY_TLV_BASE_ID + 0x20) /* 0x0120 */
|
|
|
|
#define TLV_TYPE_RANDOM_MAC (PROPRIETARY_TLV_BASE_ID + 0xEC) /*0x01EC*/
|
|
|
|
/** MrvlIEtypes_MacAddr_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_MacAddr_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** mac address */
|
|
t_u8 mac[MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END MrvlIEtypes_MacAddr_t;
|
|
|
|
#ifdef UAP_SUPPORT
|
|
/** TLV type : AP Channel band Config */
|
|
#define TLV_TYPE_UAP_CHAN_BAND_CONFIG \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x2a) /* 0x012a */
|
|
/** TLV type : AP Mac address */
|
|
#define TLV_TYPE_UAP_MAC_ADDRESS (PROPRIETARY_TLV_BASE_ID + 0x2b) /* 0x012b */
|
|
/** TLV type : AP Beacon period */
|
|
#define TLV_TYPE_UAP_BEACON_PERIOD \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x2c) /* 0x012c \
|
|
*/
|
|
/** TLV type : AP DTIM period */
|
|
#define TLV_TYPE_UAP_DTIM_PERIOD (PROPRIETARY_TLV_BASE_ID + 0x2d) /* 0x012d */
|
|
/** TLV type : AP Tx power */
|
|
#define TLV_TYPE_UAP_TX_POWER (PROPRIETARY_TLV_BASE_ID + 0x2f) /* 0x012f */
|
|
/** TLV type : AP SSID broadcast control */
|
|
#define TLV_TYPE_UAP_BCAST_SSID_CTL \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x30) /* 0x0130 */
|
|
/** TLV type : AP Preamble control */
|
|
#define TLV_TYPE_UAP_PREAMBLE_CTL \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x31) /* 0x0131 \
|
|
*/
|
|
/** TLV type : AP Antenna control */
|
|
#define TLV_TYPE_UAP_ANTENNA_CTL (PROPRIETARY_TLV_BASE_ID + 0x32) /* 0x0132 */
|
|
/** TLV type : AP RTS threshold */
|
|
#define TLV_TYPE_UAP_RTS_THRESHOLD \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x33) /* 0x0133 \
|
|
*/
|
|
/** TLV type : AP Tx data rate */
|
|
#define TLV_TYPE_UAP_TX_DATA_RATE \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x35) /* 0x0135 \
|
|
*/
|
|
/** TLV type: AP Packet forwarding control */
|
|
#define TLV_TYPE_UAP_PKT_FWD_CTL (PROPRIETARY_TLV_BASE_ID + 0x36) /* 0x0136 */
|
|
/** TLV type: STA information */
|
|
#define TLV_TYPE_UAP_STA_INFO (PROPRIETARY_TLV_BASE_ID + 0x37) /* 0x0137 */
|
|
/** TLV type: AP STA MAC address filter */
|
|
#define TLV_TYPE_UAP_STA_MAC_ADDR_FILTER \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x38) /* 0x0138 */
|
|
/** TLV type: AP STA ageout timer */
|
|
#define TLV_TYPE_UAP_STA_AGEOUT_TIMER \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x39) /* 0x0139 */
|
|
/** TLV type: AP WEP keys */
|
|
#define TLV_TYPE_UAP_WEP_KEY (PROPRIETARY_TLV_BASE_ID + 0x3b) /* 0x013b */
|
|
/** TLV type: AP WPA passphrase */
|
|
#define TLV_TYPE_UAP_WPA_PASSPHRASE \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x3c) /* 0x013c */
|
|
/** TLV type: AP protocol */
|
|
#define TLV_TYPE_UAP_ENCRYPT_PROTOCOL \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x40) /* 0x0140 */
|
|
/** TLV type: AP AKMP */
|
|
#define TLV_TYPE_UAP_AKMP (PROPRIETARY_TLV_BASE_ID + 0x41) /* 0x0141 */
|
|
/** TLV type: AP Fragment threshold */
|
|
#define TLV_TYPE_UAP_FRAG_THRESHOLD \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x46) /* 0x0146 */
|
|
/** TLV type: AP Group rekey timer */
|
|
#define TLV_TYPE_UAP_GRP_REKEY_TIME \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x47) /* 0x0147 */
|
|
/**TLV type : AP Max Station number */
|
|
#define TLV_TYPE_UAP_MAX_STA_CNT (PROPRIETARY_TLV_BASE_ID + 0x55) /* 0x0155 */
|
|
/**TLV type : AP Max Station number per chip */
|
|
#define TLV_TYPE_UAP_MAX_STA_CNT_PER_CHIP \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x140) /* 0x0240 */
|
|
/**TLV type : AP Retry limit */
|
|
#define TLV_TYPE_UAP_RETRY_LIMIT (PROPRIETARY_TLV_BASE_ID + 0x5d) /* 0x015d */
|
|
/** TLV type : AP MCBC data rate */
|
|
#define TLV_TYPE_UAP_MCBC_DATA_RATE \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x62) /* 0x0162 */
|
|
/**TLV type: AP RSN replay protection */
|
|
#define TLV_TYPE_UAP_RSN_REPLAY_PROTECT \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x64) /* 0x0164 */
|
|
/**TLV type: AP mgmt IE passthru mask */
|
|
#define TLV_TYPE_UAP_MGMT_IE_PASSTHRU_MASK \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x70) /* 0x0170 */
|
|
|
|
/**TLV type: AP pairwise handshake timeout */
|
|
#define TLV_TYPE_UAP_EAPOL_PWK_HSK_TIMEOUT \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x75) /* 0x0175 */
|
|
/**TLV type: AP pairwise handshake retries */
|
|
#define TLV_TYPE_UAP_EAPOL_PWK_HSK_RETRIES \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x76) /* 0x0176 */
|
|
/**TLV type: AP groupwise handshake timeout */
|
|
#define TLV_TYPE_UAP_EAPOL_GWK_HSK_TIMEOUT \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x77) /* 0x0177 */
|
|
/**TLV type: AP groupwise handshake retries */
|
|
#define TLV_TYPE_UAP_EAPOL_GWK_HSK_RETRIES \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x78) /* 0x0178 */
|
|
/** TLV type: AP PS STA ageout timer */
|
|
#define TLV_TYPE_UAP_PS_STA_AGEOUT_TIMER \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x7b) /* 0x017b */
|
|
/** TLV type : Pairwise Cipher */
|
|
#define TLV_TYPE_PWK_CIPHER (PROPRIETARY_TLV_BASE_ID + 0x91) /* 0x0191 */
|
|
/** TLV type : Group Cipher */
|
|
#define TLV_TYPE_GWK_CIPHER (PROPRIETARY_TLV_BASE_ID + 0x92) /* 0x0192 */
|
|
/** TLV type : BSS Status */
|
|
#define TLV_TYPE_BSS_STATUS (PROPRIETARY_TLV_BASE_ID + 0x93) /* 0x0193 */
|
|
/** TLV type : AP WMM params */
|
|
#define TLV_TYPE_AP_WMM_PARAM (PROPRIETARY_TLV_BASE_ID + 0xd0) /* 0x01d0 */
|
|
/** TLV type : AP Tx beacon rate */
|
|
#define TLV_TYPE_UAP_TX_BEACON_RATE (PROPRIETARY_TLV_BASE_ID + 288) /* 0x0220 \
|
|
*/
|
|
#define NXP_802_11_PER_PEER_STATS_CFG_TLV_ID \
|
|
(PROPRIETARY_TLV_BASE_ID + 346) /* 0x025A */
|
|
#define NXP_802_11_PER_PEER_STATS_ENTRY_TLV_ID \
|
|
(PROPRIETARY_TLV_BASE_ID + 347) /* 0x025B */
|
|
|
|
/** MrvlIEtypes_beacon_period_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_beacon_period_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** beacon period */
|
|
t_u16 beacon_period;
|
|
} MLAN_PACK_END MrvlIEtypes_beacon_period_t;
|
|
|
|
/** MrvlIEtypes_dtim_period_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_dtim_period_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** DTIM period */
|
|
t_u8 dtim_period;
|
|
} MLAN_PACK_END MrvlIEtypes_dtim_period_t;
|
|
|
|
/** MrvlIEtypes_tx_rate_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_tx_rate_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** tx data rate */
|
|
t_u16 tx_data_rate;
|
|
} MLAN_PACK_END MrvlIEtypes_tx_rate_t;
|
|
|
|
/** MrvlIEtypes_mcbc_rate_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_mcbc_rate_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** mcbc data rate */
|
|
t_u16 mcbc_data_rate;
|
|
} MLAN_PACK_END MrvlIEtypes_mcbc_rate_t;
|
|
|
|
/** MrvlIEtypes_tx_power_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_tx_power_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** tx power */
|
|
t_u8 tx_power;
|
|
} MLAN_PACK_END MrvlIEtypes_tx_power_t;
|
|
|
|
/** MrvlIEtypes_bcast_ssid_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_bcast_ssid_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** bcast ssid control*/
|
|
t_u8 bcast_ssid_ctl;
|
|
} MLAN_PACK_END MrvlIEtypes_bcast_ssid_t;
|
|
|
|
/** MrvlIEtypes_antenna_mode_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_antenna_mode_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** which antenna */
|
|
t_u8 which_antenna;
|
|
/** antenna mode*/
|
|
t_u8 antenna_mode;
|
|
} MLAN_PACK_END MrvlIEtypes_antenna_mode_t;
|
|
|
|
/** MrvlIEtypes_pkt_forward_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_pkt_forward_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** pkt foward control */
|
|
t_u8 pkt_forward_ctl;
|
|
} MLAN_PACK_END MrvlIEtypes_pkt_forward_t;
|
|
|
|
/** MrvlIEtypes_max_sta_count_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_max_sta_count_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** max station count */
|
|
t_u16 max_sta_count;
|
|
} MLAN_PACK_END MrvlIEtypes_max_sta_count_t;
|
|
|
|
/** MrvlIEtypes_uap_max_sta_cnt */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_uap_max_sta_cnt_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** max station count */
|
|
t_u16 uap_max_sta;
|
|
} MLAN_PACK_END MrvlIEtypes_uap_max_sta_cnt_t;
|
|
|
|
#define MRVL_ACTION_CHAN_SWITCH_ANNOUNCE (PROPRIETARY_TLV_BASE_ID + 342)
|
|
|
|
/** MrvlIEtypes_uap_chan_switch */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_action_chan_switch_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/* 0 send broadcast CSA action frame, 1 send unicast CSA action frame */
|
|
t_u8 mode;
|
|
/* number of frame */
|
|
t_u8 num_pkt;
|
|
/** reserved */
|
|
t_u16 reserved;
|
|
/**ie buf*/
|
|
t_u8 ie_buf[];
|
|
} MLAN_PACK_END MrvlIEtypes_action_chan_switch_t;
|
|
|
|
/** MrvlIEtypes_sta_ageout_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_sta_ageout_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** station age out timer */
|
|
t_u32 sta_ageout_timer;
|
|
} MLAN_PACK_END MrvlIEtypes_sta_ageout_t;
|
|
|
|
/** MrvlIEtypes_rts_threshold_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_rts_threshold_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** rts threshold */
|
|
t_u16 rts_threshold;
|
|
} MLAN_PACK_END MrvlIEtypes_rts_threshold_t;
|
|
|
|
/** MrvlIEtypes_frag_threshold_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_frag_threshold_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** frag threshold */
|
|
t_u16 frag_threshold;
|
|
} MLAN_PACK_END MrvlIEtypes_frag_threshold_t;
|
|
|
|
/** MrvlIEtypes_retry_limit_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_retry_limit_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** retry limit */
|
|
t_u8 retry_limit;
|
|
} MLAN_PACK_END MrvlIEtypes_retry_limit_t;
|
|
|
|
/** MrvlIEtypes_eapol_pwk_hsk_timeout_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_eapol_pwk_hsk_timeout_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** pairwise update timeout in milliseconds */
|
|
t_u32 pairwise_update_timeout;
|
|
} MLAN_PACK_END MrvlIEtypes_eapol_pwk_hsk_timeout_t;
|
|
|
|
/** MrvlIEtypes_eapol_pwk_hsk_retries_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_eapol_pwk_hsk_retries_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** pairwise handshake retries */
|
|
t_u32 pwk_retries;
|
|
} MLAN_PACK_END MrvlIEtypes_eapol_pwk_hsk_retries_t;
|
|
|
|
/** MrvlIEtypes_eapol_gwk_hsk_timeout_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_eapol_gwk_hsk_timeout_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** groupwise update timeout in milliseconds */
|
|
t_u32 groupwise_update_timeout;
|
|
} MLAN_PACK_END MrvlIEtypes_eapol_gwk_hsk_timeout_t;
|
|
|
|
/** MrvlIEtypes_eapol_gwk_hsk_retries_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_eapol_gwk_hsk_retries_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** groupwise handshake retries */
|
|
t_u32 gwk_retries;
|
|
} MLAN_PACK_END MrvlIEtypes_eapol_gwk_hsk_retries_t;
|
|
|
|
/** MrvlIEtypes_mgmt_ie_passthru_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_mgmt_ie_passthru_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** mgmt IE mask value */
|
|
t_u32 mgmt_ie_mask;
|
|
} MLAN_PACK_END MrvlIEtypes_mgmt_ie_passthru_t;
|
|
|
|
/** MrvlIEtypes_mac_filter_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_mac_filter_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Filter mode */
|
|
t_u8 filter_mode;
|
|
/** Number of STA MACs */
|
|
t_u8 count;
|
|
/** STA MAC addresses buffer */
|
|
t_u8 mac_address[1];
|
|
} MLAN_PACK_END MrvlIEtypes_mac_filter_t;
|
|
|
|
/** MrvlIEtypes_auth_type_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_auth_type_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Authentication type */
|
|
t_u8 auth_type;
|
|
/** PWE derivation */
|
|
t_u8 PWE_derivation;
|
|
/** transition disable */
|
|
t_u8 transition_disable;
|
|
} MLAN_PACK_END MrvlIEtypes_auth_type_t;
|
|
|
|
/** MrvlIEtypes_encrypt_protocol_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_encrypt_protocol_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** encryption protocol */
|
|
t_u16 protocol;
|
|
} MLAN_PACK_END MrvlIEtypes_encrypt_protocol_t;
|
|
|
|
/** MrvlIEtypes_pwk_cipher_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_pwk_cipher_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** protocol */
|
|
t_u16 protocol;
|
|
/** pairwise cipher */
|
|
t_u8 pairwise_cipher;
|
|
/** reserved */
|
|
t_u8 reserved;
|
|
} MLAN_PACK_END MrvlIEtypes_pwk_cipher_t;
|
|
|
|
/** MrvlIEtypes_gwk_cipher_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_gwk_cipher_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** group cipher */
|
|
t_u8 group_cipher;
|
|
/** reserved */
|
|
t_u8 reserved;
|
|
} MLAN_PACK_END MrvlIEtypes_gwk_cipher_t;
|
|
|
|
/** MrvlIEtypes_akmp_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_akmp_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** key management */
|
|
t_u16 key_mgmt;
|
|
/** key management operation */
|
|
t_u16 key_mgmt_operation;
|
|
} MLAN_PACK_END MrvlIEtypes_akmp_t;
|
|
|
|
/** MrvlIEtypes_passphrase_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_passphrase_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** passphrase */
|
|
t_u8 passphrase[1];
|
|
} MLAN_PACK_END MrvlIEtypes_passphrase_t;
|
|
|
|
/** MrvlIEtypes_rsn_replay_prot_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_rsn_replay_prot_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** rsn replay proection */
|
|
t_u8 rsn_replay_prot;
|
|
} MLAN_PACK_END MrvlIEtypes_rsn_replay_prot_t;
|
|
|
|
/** MrvlIEtypes_group_rekey_time_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_group_rekey_time_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** group key rekey time */
|
|
t_u32 gk_rekey_time;
|
|
} MLAN_PACK_END MrvlIEtypes_group_rekey_time_t;
|
|
|
|
/** MrvlIEtypes_wep_key_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_wep_key_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** key index */
|
|
t_u8 key_index;
|
|
/** is default */
|
|
t_u8 is_default;
|
|
/** key data */
|
|
t_u8 key[1];
|
|
} MLAN_PACK_END MrvlIEtypes_wep_key_t;
|
|
|
|
/** MrvlIEtypes_bss_status_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_bss_status_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** BSS status, READ only */
|
|
t_u16 bss_status;
|
|
} MLAN_PACK_END MrvlIEtypes_bss_status_t;
|
|
|
|
/** MrvlIEtypes_preamble_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_preamble_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** preamble type, READ only */
|
|
t_u8 preamble_type;
|
|
} MLAN_PACK_END MrvlIEtypes_preamble_t;
|
|
|
|
/** MrvlIEtypes_wmm_parameter_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_wmm_parameter_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** WMM parameter */
|
|
WmmParameter_t wmm_para;
|
|
} MLAN_PACK_END MrvlIEtypes_wmm_parameter_t;
|
|
|
|
/** MrvlIEtypes_wacp_mode_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_wacp_mode_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** wacp_mode */
|
|
t_u8 wacp_mode;
|
|
} MLAN_PACK_END MrvlIEtypes_wacp_mode_t;
|
|
|
|
/** SNMP_MIB_UAP_INDEX */
|
|
typedef enum _SNMP_MIB_UAP_INDEX {
|
|
tkip_mic_failures = 0x0b,
|
|
ccmp_decrypt_errors = 0x0c,
|
|
wep_undecryptable_count = 0x0d,
|
|
wep_icv_error_count = 0x0e,
|
|
decrypt_failure_count = 0xf,
|
|
dot11_failed_count = 0x12,
|
|
dot11_retry_count = 0x13,
|
|
dot11_multi_retry_count = 0x14,
|
|
dot11_frame_dup_count = 0x15,
|
|
dot11_rts_success_count = 0x16,
|
|
dot11_rts_failure_count = 0x17,
|
|
dot11_ack_failure_count = 0x18,
|
|
dot11_rx_fragment_count = 0x19,
|
|
dot11_mcast_rx_frame_count = 0x1a,
|
|
dot11_fcs_error_count = 0x1b,
|
|
dot11_tx_frame_count = 0x1c,
|
|
dot11_rsna_tkip_cm_invoked = 0x1d,
|
|
dot11_rsna_4way_hshk_failures = 0x1e,
|
|
dot11_mcast_tx_count = 0x1f,
|
|
} SNMP_MIB_UAP_INDEX;
|
|
|
|
/** MrvlIEtypes_snmp_oid_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_snmp_oid_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** data */
|
|
t_u32 data;
|
|
} MLAN_PACK_END MrvlIEtypes_snmp_oid_t;
|
|
|
|
/** HostCmd_SYS_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_SYS_CONFIG {
|
|
/** CMD Action GET/SET*/
|
|
t_u16 action;
|
|
/** Tlv buffer */
|
|
t_u8 tlv_buffer[1];
|
|
} MLAN_PACK_END HostCmd_DS_SYS_CONFIG;
|
|
|
|
/** HostCmd_SYS_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_SYS_INFO {
|
|
/** sys info */
|
|
t_u8 sys_info[64];
|
|
} MLAN_PACK_END HostCmd_DS_SYS_INFO;
|
|
|
|
/** HostCmd_DS_STA_DEAUTH */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_STA_DEAUTH {
|
|
/** mac address */
|
|
t_u8 mac[MLAN_MAC_ADDR_LENGTH];
|
|
/** reason code */
|
|
t_u16 reason;
|
|
} MLAN_PACK_END HostCmd_DS_STA_DEAUTH;
|
|
|
|
/** HostCmd_DS_REPORT_MIC */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_REPORT_MIC {
|
|
/** mac address */
|
|
t_u8 mac[MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END HostCmd_DS_REPORT_MIC;
|
|
|
|
/** HostCmd_UAP_OPER_CTRL */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_UAP_OPER_CTRL {
|
|
/** CMD Action GET/SET*/
|
|
t_u16 action;
|
|
/** control*/
|
|
t_u16 ctrl;
|
|
/**channel operation*/
|
|
t_u16 chan_opt;
|
|
/**channel band tlv*/
|
|
MrvlIEtypes_channel_band_t channel_band;
|
|
} MLAN_PACK_END HostCmd_DS_UAP_OPER_CTRL;
|
|
|
|
/** Host Command id: POWER_MGMT */
|
|
#define HOST_CMD_POWER_MGMT_EXT 0x00ef
|
|
/** TLV type: AP Sleep param */
|
|
#define TLV_TYPE_AP_SLEEP_PARAM (PROPRIETARY_TLV_BASE_ID + 0x6a) /* 0x016a */
|
|
/** TLV type: AP Inactivity Sleep param */
|
|
#define TLV_TYPE_AP_INACT_SLEEP_PARAM \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x6b) /* 0x016b */
|
|
|
|
/** MrvlIEtypes_sleep_param_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_sleep_param_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** control bitmap */
|
|
t_u32 ctrl_bitmap;
|
|
/** min_sleep */
|
|
t_u32 min_sleep;
|
|
/** max_sleep */
|
|
t_u32 max_sleep;
|
|
} MLAN_PACK_END MrvlIEtypes_sleep_param_t;
|
|
|
|
/** MrvlIEtypes_inact_sleep_param_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_inact_sleep_param_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** inactivity timeout */
|
|
t_u32 inactivity_to;
|
|
|
|
/** min_awake */
|
|
t_u32 min_awake;
|
|
/** max_awake */
|
|
t_u32 max_awake;
|
|
} MLAN_PACK_END MrvlIEtypes_inact_sleep_param_t;
|
|
|
|
/** HostCmd_DS_POWER_MGMT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_POWER_MGMT_EXT {
|
|
/** CMD Action Get/Set*/
|
|
t_u16 action;
|
|
/** power mode */
|
|
t_u16 power_mode;
|
|
} MLAN_PACK_END HostCmd_DS_POWER_MGMT_EXT;
|
|
|
|
/** MrvlIEtypes_ps_sta_ageout_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_ps_sta_ageout_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** station age out timer */
|
|
t_u32 ps_sta_ageout_timer;
|
|
} MLAN_PACK_END MrvlIEtypes_ps_sta_ageout_t;
|
|
|
|
/** MrvlIEtypes_sta_info_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_sta_info_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** STA MAC address */
|
|
t_u8 mac_address[MLAN_MAC_ADDR_LENGTH];
|
|
/** Power Mgmt status */
|
|
t_u8 power_mgmt_status;
|
|
/** RSSI */
|
|
t_s8 rssi;
|
|
/** ie_buf */
|
|
t_u8 ie_buf[];
|
|
} MLAN_PACK_END MrvlIEtypes_sta_info_t;
|
|
|
|
/** HostCmd_DS_STA_LIST */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_STA_LIST {
|
|
/** Number of STAs */
|
|
t_u16 sta_count;
|
|
/* MrvlIEtypes_sta_info_t sta_info[]; */
|
|
t_u8 tlv_buf[];
|
|
} MLAN_PACK_END HostCmd_DS_STA_LIST;
|
|
|
|
/** TLV ID : WAPI Information */
|
|
#define TLV_TYPE_AP_WAPI_INFO (PROPRIETARY_TLV_BASE_ID + 0x67) /* 0x0167 */
|
|
|
|
/** MrvlIEtypes_sta_info_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_wapi_info_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Multicast PN */
|
|
t_u8 multicast_PN[16];
|
|
} MLAN_PACK_END MrvlIEtypes_wapi_info_t;
|
|
#endif /* UAP_SUPPORT */
|
|
|
|
/** HostCmd_DS_TX_RX_HISTOGRAM */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_TX_RX_HISTOGRAM {
|
|
/** Enable or disable */
|
|
t_u8 enable;
|
|
/** Choose to get TX, RX or both */
|
|
t_u16 action;
|
|
} MLAN_PACK_END HostCmd_DS_TX_RX_HISTOGRAM;
|
|
|
|
/** TLV buffer : 2040 coex config */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_2040_coex_enable_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Enable */
|
|
t_u8 enable_2040coex;
|
|
} MLAN_PACK_END MrvlIEtypes_2040_coex_enable_t;
|
|
|
|
/**BT coexit scan time setting*/
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_BtCoexScanTime_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/**coex scan state 0: disable 1: enable*/
|
|
t_u8 coex_scan;
|
|
/**reserved*/
|
|
t_u8 reserved;
|
|
/**min scan time*/
|
|
t_u16 min_scan_time;
|
|
/**max scan time*/
|
|
t_u16 max_scan_time;
|
|
} MLAN_PACK_END MrvlIEtypes_BtCoexScanTime_t;
|
|
|
|
/**BT coexit aggr win size */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_BtCoexAggrWinSize_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/**winsize 0: restore default winsize, 1: use below winsize */
|
|
t_u8 coex_win_size;
|
|
/**tx win size*/
|
|
t_u8 tx_win_size;
|
|
/**rx win size*/
|
|
t_u8 rx_win_size;
|
|
/**reserved*/
|
|
t_u8 reserved;
|
|
} MLAN_PACK_END MrvlIETypes_BtCoexAggrWinSize_t;
|
|
|
|
/** MrvlIEtypes_eapol_pkt_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_eapol_pkt_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** eapol pkt buf */
|
|
t_u8 pkt_buf[];
|
|
} MLAN_PACK_END MrvlIEtypes_eapol_pkt_t;
|
|
|
|
/** HostCmd_DS_EAPOL_PKT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_EAPOL_PKT {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** TLV buffer */
|
|
MrvlIEtypes_eapol_pkt_t tlv_eapol;
|
|
} MLAN_PACK_END HostCmd_DS_EAPOL_PKT;
|
|
|
|
/** HostCmd_DS_OXYGEN_MIMO_SWITCH */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_MIMO_SWITCH {
|
|
/** Tx path antanne mode */
|
|
t_u8 txpath_antmode;
|
|
/** Rx path antanne mode */
|
|
t_u8 rxpath_antmode;
|
|
} MLAN_PACK_END HostCmd_DS_MIMO_SWITCH;
|
|
|
|
typedef MLAN_PACK_START struct _MrvlTypes_DrcsTimeSlice_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Channel Index*/
|
|
t_u16 chan_idx;
|
|
/** Channel time (in TU) for chan_idx*/
|
|
t_u8 chantime;
|
|
/** Channel swith time (in TU) for chan_idx*/
|
|
t_u8 switchtime;
|
|
/** Undoze time (in TU) for chan_idx*/
|
|
t_u8 undozetime;
|
|
/** Rx traffic control scheme when channel switch*/
|
|
/** only valid for GC/STA interface*/
|
|
t_u8 mode;
|
|
} MLAN_PACK_END MrvlTypes_DrcsTimeSlice_t;
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_MULTI_CHAN_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Channel time */
|
|
t_u32 channel_time;
|
|
/** Buffer weight */
|
|
t_u8 buffer_weight;
|
|
/** TLV buffer */
|
|
t_u8 tlv_buf[];
|
|
/* t_u8 *tlv_buf; */
|
|
} MLAN_PACK_END HostCmd_DS_MULTI_CHAN_CFG;
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_DRCS_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** TLV buffer */
|
|
MrvlTypes_DrcsTimeSlice_t time_slicing;
|
|
/** TLV buffer */
|
|
MrvlTypes_DrcsTimeSlice_t drcs_buf[];
|
|
/* t_u8 *tlv_buf; */
|
|
} MLAN_PACK_END HostCmd_DS_DRCS_CFG;
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_MULTI_CHAN_POLICY {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Multi-channel Policy */
|
|
t_u16 policy;
|
|
} MLAN_PACK_END HostCmd_DS_MULTI_CHAN_POLICY;
|
|
|
|
/** Channel band info */
|
|
typedef MLAN_PACK_START struct _ChannelBandInfo {
|
|
/* band config */
|
|
Band_Config_t bandcfg;
|
|
/** channel num for specificed band */
|
|
t_u8 chan_num;
|
|
} MLAN_PACK_END ChannelBandInfo;
|
|
|
|
/** MrvlIETypes_mutli_chan_group_info_t */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_mutli_chan_group_info_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** channel group id */
|
|
t_u8 chan_group_id;
|
|
/** buffer weight for this channel group */
|
|
t_u8 chan_buff_weight;
|
|
/** channel number and band information */
|
|
ChannelBandInfo chan_band_info;
|
|
/** Max channel time (us) */
|
|
t_u32 channel_time;
|
|
/** Reserved */
|
|
t_u32 reserved;
|
|
MLAN_PACK_START union {
|
|
t_u8 sdio_func_num;
|
|
t_u8 usb_epnum;
|
|
} MLAN_PACK_END hid_num;
|
|
/** interface number in this group */
|
|
t_u8 num_intf;
|
|
/** bss_type list */
|
|
t_u8 bss_type_numlist[];
|
|
} MLAN_PACK_END MrvlIEtypes_multi_chan_group_info_t;
|
|
|
|
/** MrvlIEtypes_multi_chan_info_t */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_mutli_chan_info_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** multi channel operation status */
|
|
t_u16 status;
|
|
/** Tlv buffer */
|
|
t_u8 tlv_buffer[];
|
|
} MLAN_PACK_END MrvlIEtypes_multi_chan_info_t;
|
|
|
|
/** TLV buffer : firmware roam keys */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_keyParams_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Tlv buffer */
|
|
t_u8 tlv_buffer[];
|
|
} MLAN_PACK_END MrvlIEtypes_keyParams_t;
|
|
|
|
/** TLV buffer : firmware roam enable */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_fw_roam_enable_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Enable */
|
|
t_u8 roam_enable;
|
|
/** User set passphrase*/
|
|
t_u8 userset_passphrase;
|
|
} MLAN_PACK_END MrvlIEtypes_fw_roam_enable_t;
|
|
/** HostCmd_DS_ROAM_OFFLOAD */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_ROAM_OFFLOAD {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** tlv */
|
|
t_u8 tlv[];
|
|
} MLAN_PACK_END HostCmd_DS_ROAM_OFFLOAD;
|
|
/** HostCmd_DS_ROAM_OFFLOAD_APLIST */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_roam_aplist_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** AP mac addrs**/
|
|
t_u8 ap_mac[][MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END MrvlIEtypes_roam_aplist_t;
|
|
/** MrvlIEtypes_fw_roam_trigger_condition_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_fw_roam_trigger_condition_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Roam offload trigger condition**/
|
|
t_u16 trigger_condition;
|
|
} MLAN_PACK_END MrvlIEtypes_fw_roam_trigger_condition_t;
|
|
/** MrvlIEtypes_fw_roam_retry_count_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_fw_roam_retry_count_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Roam offload retry count**/
|
|
t_u16 retry_count;
|
|
} MLAN_PACK_END MrvlIEtypes_fw_roam_retry_count_t;
|
|
/** MrvlIEtypes_fw_roam_bgscan_setting_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_fw_roam_bgscan_setting_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Bss type of BG scan during fw roam**/
|
|
t_u8 bss_type;
|
|
/** Number of channels scanned during each scan**/
|
|
t_u8 channels_perscan;
|
|
/** Interval between consecutive scans**/
|
|
t_u32 scan_interval;
|
|
/** Condition to trigger report to host**/
|
|
t_u32 report_condition;
|
|
} MLAN_PACK_END MrvlIEtypes_fw_roam_bgscan_setting_t;
|
|
/** MrvlIEtypes_para_rssi_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_para_rssi_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Max value of RSSI threshold**/
|
|
t_u8 max_rssi;
|
|
/** Min value of RSSI threshold**/
|
|
t_u8 min_rssi;
|
|
/** Adjusting step value of RSSI threshold**/
|
|
t_u8 step_rssi;
|
|
} MLAN_PACK_END MrvlIEtypes_para_rssi_t;
|
|
/** MrvlIEtypes_band_rssi_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_band_rssi_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** BAND and RSSI gap*/
|
|
mlan_ds_misc_band_rssi band_rssi;
|
|
} MLAN_PACK_END MrvlIEtypes_band_rssi_t;
|
|
/** MrvlIEtypes_ees_param_set_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_ees_param_set_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** ees params*/
|
|
mlan_ds_misc_ees_cfg ees_cfg;
|
|
} MLAN_PACK_END MrvlIEtypes_ees_param_set_t;
|
|
/** MrvlIEtypes_roam_blacklist_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_roam_blacklist_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/* Black list(BSSID list)*/
|
|
mlan_ds_misc_roam_offload_aplist blacklist;
|
|
} MLAN_PACK_END MrvlIEtypes_roam_blacklist_t;
|
|
/** MrvlIEtypes_beacon_miss_threshold_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_beacon_miss_threshold_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/* Beacon miss threshold*/
|
|
t_u8 bcn_miss_threshold;
|
|
} MLAN_PACK_END MrvlIEtypes_beacon_miss_threshold_t;
|
|
/** MrvlIEtypes_pre_beacon_miss_threshold_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_pre_beacon_miss_threshold_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/* Pre-Beacon miss threshold*/
|
|
t_u8 pre_bcn_miss_threshold;
|
|
} MLAN_PACK_END MrvlIEtypes_pre_beacon_miss_threshold_t;
|
|
|
|
/** HostCmd_DS_DYN_BW */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_DYN_BW {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Dynamic bandwidth */
|
|
t_u16 dyn_bw;
|
|
} MLAN_PACK_END HostCmd_DS_DYN_BW;
|
|
|
|
/** HostCmd_DS_PACKET_AGGR_CTRL */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_PACKET_AGGR_AGGR_CTRL {
|
|
/** ACT_GET/ACT_SET */
|
|
t_u16 action;
|
|
/** enable aggregation, BIT(0) TX, BIT(1)RX */
|
|
t_u16 aggr_enable;
|
|
/** Tx aggregation alignment */
|
|
t_u16 tx_aggr_max_size;
|
|
/** Tx aggregation max packet number */
|
|
t_u16 tx_aggr_max_num;
|
|
/** Tx aggregation alignment */
|
|
t_u16 tx_aggr_align;
|
|
} MLAN_PACK_END HostCmd_DS_PACKET_AGGR_CTRL;
|
|
|
|
#ifdef USB
|
|
/** TLV ID : USB Aggregation parameters */
|
|
#define MRVL_USB_AGGR_PARAM_TLV_ID \
|
|
(PROPRIETARY_TLV_BASE_ID + 0xB1) /* 0x1B1 \
|
|
*/
|
|
|
|
/** TLV size : USB Aggregation parameters, except header */
|
|
#define MRVL_USB_AGGR_PARAM_TLV_LEN (14)
|
|
|
|
/** VHT Operations IE */
|
|
typedef MLAN_PACK_START struct _MrvlIETypes_USBAggrParam_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** Enable */
|
|
t_u16 enable;
|
|
/** Rx aggregation mode */
|
|
t_u16 rx_aggr_mode;
|
|
/** Rx aggregation alignment */
|
|
t_u16 rx_aggr_align;
|
|
/** Rx aggregation max packet/size */
|
|
t_u16 rx_aggr_max;
|
|
/** Rx aggrgation timeout, in microseconds */
|
|
t_u16 rx_aggr_tmo;
|
|
/** Tx aggregation mode */
|
|
t_u16 tx_aggr_mode;
|
|
/** Tx aggregation alignment */
|
|
t_u16 tx_aggr_align;
|
|
} MLAN_PACK_END MrvlIETypes_USBAggrParam_t;
|
|
|
|
/** HostCmd_DS_PACKET_AGGR_OVER_HOST_INTERFACE */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_PACKET_AGGR_OVER_HOST_INTERFACE {
|
|
/** ACT_GET/ACT_SET */
|
|
t_u16 action;
|
|
/**
|
|
* Host interface aggregation control TLV(s) to be sent in the firmware
|
|
* command
|
|
*
|
|
* TLV_USB_AGGR_PARAM, MrvlIETypes_USBAggrParam_t
|
|
*/
|
|
t_u8 tlv_buf[1];
|
|
} MLAN_PACK_END HostCmd_DS_PACKET_AGGR_OVER_HOST_INTERFACE;
|
|
#endif /* USB */
|
|
|
|
/** HostCmd_CONFIG_LOW_PWR_MODE */
|
|
typedef MLAN_PACK_START struct _HostCmd_CONFIG_LOW_PWR_MODE {
|
|
/** Enable LPM */
|
|
t_u8 enable;
|
|
} MLAN_PACK_END HostCmd_CONFIG_LOW_PWR_MODE;
|
|
|
|
/** HostCmd_CMD_GET_TSF */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_TSF {
|
|
/** tsf value*/
|
|
t_u64 tsf;
|
|
} MLAN_PACK_END HostCmd_DS_TSF;
|
|
/* WLAN_GET_TSF*/
|
|
|
|
typedef struct _HostCmd_DS_DFS_REPEATER_MODE {
|
|
/** Set or Get */
|
|
t_u16 action;
|
|
/** 1 on or 0 off */
|
|
t_u16 mode;
|
|
} HostCmd_DS_DFS_REPEATER_MODE;
|
|
|
|
/** HostCmd_DS_BOOT_SLEEP */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_BOOT_SLEEP {
|
|
/** Set or Get */
|
|
t_u16 action;
|
|
/** 1 on or 0 off */
|
|
t_u16 enable;
|
|
} MLAN_PACK_END HostCmd_DS_BOOT_SLEEP;
|
|
|
|
/**
|
|
* @brief 802.11h Local Power Constraint NXP extended TLV
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
MrvlIEtypesHeader_t header; /**< NXP TLV header: ID/Len */
|
|
t_u8 chan; /**< Channel local constraint applies to */
|
|
|
|
/** Power constraint included in beacons
|
|
* and used by fw to offset 11d info
|
|
*/
|
|
t_u8 constraint;
|
|
|
|
} MLAN_PACK_END MrvlIEtypes_LocalPowerConstraint_t;
|
|
|
|
/*
|
|
*
|
|
* Data structures for driver/firmware command processing
|
|
*
|
|
*/
|
|
|
|
/** TPC Info structure sent in CMD_802_11_TPC_INFO command to firmware */
|
|
typedef MLAN_PACK_START struct {
|
|
/**< Local constraint */
|
|
MrvlIEtypes_LocalPowerConstraint_t local_constraint;
|
|
/**< Power Capability */
|
|
MrvlIEtypes_PowerCapability_t power_cap;
|
|
|
|
} MLAN_PACK_END HostCmd_DS_802_11_TPC_INFO;
|
|
|
|
/** TPC Request structure sent in CMD_802_11_TPC_ADAPT_REQ
|
|
* command to firmware
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
t_u8 dest_mac[MLAN_MAC_ADDR_LENGTH]; /**< Destination STA address */
|
|
t_u16 timeout; /**< Response timeout in ms */
|
|
t_u8 rate_index; /**< IEEE Rate index to send request */
|
|
|
|
} MLAN_PACK_END HostCmd_TpcRequest;
|
|
|
|
/** TPC Response structure received from the
|
|
* CMD_802_11_TPC_ADAPT_REQ command
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
t_u8 tpc_ret_code; /**< Firmware command result status code */
|
|
t_s8 tx_power; /**< Reported TX Power from the TPC Report element */
|
|
t_s8 link_margin; /**< Reported link margin from the TPC Report element
|
|
*/
|
|
t_s8 rssi; /**< RSSI of the received TPC Report frame */
|
|
|
|
} MLAN_PACK_END HostCmd_TpcResponse;
|
|
|
|
/** CMD_802_11_TPC_ADAPT_REQ substruct.
|
|
* Union of the TPC request and response
|
|
*/
|
|
typedef MLAN_PACK_START union {
|
|
HostCmd_TpcRequest req; /**< Request struct sent to firmware */
|
|
HostCmd_TpcResponse resp; /**< Response struct received from firmware */
|
|
|
|
} MLAN_PACK_END HostCmd_DS_802_11_TPC_ADAPT_REQ;
|
|
|
|
/** CMD_802_11_CHAN_SW_ANN firmware command substructure */
|
|
typedef MLAN_PACK_START struct {
|
|
t_u8 switch_mode; /**< Set to 1 for a quiet switch request, no STA tx */
|
|
t_u8 new_chan; /**< Requested new channel */
|
|
t_u8 switch_count; /**< Number of TBTTs until the switch is to occur */
|
|
} MLAN_PACK_END HostCmd_DS_802_11_CHAN_SW_ANN;
|
|
|
|
/**
|
|
* @brief Enumeration of measurement types, including max supported
|
|
* enum for 11h/11k
|
|
*/
|
|
typedef MLAN_PACK_START enum _MeasType_t {
|
|
WLAN_MEAS_BASIC = 0, /**< 11h: Basic */
|
|
WLAN_MEAS_NUM_TYPES, /**< Number of enumerated measurements */
|
|
WLAN_MEAS_11H_MAX_TYPE = WLAN_MEAS_BASIC, /**< Max 11h measurement */
|
|
|
|
} MLAN_PACK_END MeasType_t;
|
|
|
|
/**
|
|
* @brief Mode octet of the measurement request element (7.3.2.21)
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
#ifdef BIG_ENDIAN_SUPPORT
|
|
/**< Reserved */
|
|
t_u8 rsvd5_7 : 3;
|
|
/**< 11k: duration spec. for meas. is mandatory */
|
|
t_u8 duration_mandatory : 1;
|
|
/**< 11h: en/disable report rcpt. of spec. type */
|
|
t_u8 report : 1;
|
|
/**< 11h: en/disable requests of specified type */
|
|
t_u8 request : 1;
|
|
/**< 11h: enable report/request bits */
|
|
t_u8 enable : 1;
|
|
/**< 11k: series or parallel with previous meas */
|
|
t_u8 parallel : 1;
|
|
#else
|
|
/**< 11k: series or parallel with previous meas */
|
|
t_u8 parallel : 1;
|
|
/**< 11h: enable report/request bits */
|
|
t_u8 enable : 1;
|
|
/**< 11h: en/disable requests of specified type */
|
|
t_u8 request : 1;
|
|
/**< 11h: en/disable report rcpt. of spec. type */
|
|
t_u8 report : 1;
|
|
/**< 11k: duration spec. for meas. is mandatory */
|
|
t_u8 duration_mandatory : 1;
|
|
/**< Reserved */
|
|
t_u8 rsvd5_7 : 3;
|
|
#endif /* BIG_ENDIAN_SUPPORT */
|
|
|
|
} MLAN_PACK_END MeasReqMode_t;
|
|
|
|
/**
|
|
* @brief Common measurement request structure (7.3.2.21.1 to 7.3.2.21.3)
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
t_u8 channel; /**< Channel to measure */
|
|
t_u64 start_time; /**< TSF Start time of measurement (0 for immediate)
|
|
*/
|
|
t_u16 duration; /**< TU duration of the measurement */
|
|
|
|
} MLAN_PACK_END MeasReqCommonFormat_t;
|
|
|
|
/**
|
|
* @brief Basic measurement request structure (7.3.2.21.1)
|
|
*/
|
|
typedef MeasReqCommonFormat_t MeasReqBasic_t;
|
|
|
|
/**
|
|
* @brief CCA measurement request structure (7.3.2.21.2)
|
|
*/
|
|
typedef MeasReqCommonFormat_t MeasReqCCA_t;
|
|
|
|
/**
|
|
* @brief RPI measurement request structure (7.3.2.21.3)
|
|
*/
|
|
typedef MeasReqCommonFormat_t MeasReqRPI_t;
|
|
|
|
/**
|
|
* @brief Union of the availble measurement request types. Passed in the
|
|
* driver/firmware interface.
|
|
*/
|
|
typedef union {
|
|
MeasReqBasic_t basic; /**< Basic measurement request */
|
|
MeasReqCCA_t cca; /**< CCA measurement request */
|
|
MeasReqRPI_t rpi; /**< RPI measurement request */
|
|
|
|
} MeasRequest_t;
|
|
|
|
/**
|
|
* @brief Mode octet of the measurement report element (7.3.2.22)
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
#ifdef BIG_ENDIAN_SUPPORT
|
|
t_u8 rsvd3_7 : 5; /**< Reserved */
|
|
t_u8 refused : 1; /**< Measurement refused */
|
|
t_u8 incapable : 1; /**< Incapable of performing measurement */
|
|
t_u8 late : 1; /**< Start TSF time missed for measurement */
|
|
#else
|
|
t_u8 late : 1; /**< Start TSF time missed for measurement */
|
|
t_u8 incapable : 1; /**< Incapable of performing measurement */
|
|
t_u8 refused : 1; /**< Measurement refused */
|
|
t_u8 rsvd3_7 : 5; /**< Reserved */
|
|
#endif /* BIG_ENDIAN_SUPPORT */
|
|
|
|
} MLAN_PACK_END MeasRptMode_t;
|
|
|
|
/**
|
|
* @brief Basic measurement report (7.3.2.22.1)
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
t_u8 channel; /**< Channel to measured */
|
|
t_u64 start_time; /**< Start time (TSF) of measurement */
|
|
t_u16 duration; /**< Duration of measurement in TUs */
|
|
MeasRptBasicMap_t map; /**< Basic measurement report */
|
|
|
|
} MLAN_PACK_END MeasRptBasic_t;
|
|
|
|
/**
|
|
* @brief CCA measurement report (7.3.2.22.2)
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
t_u8 channel; /**< Channel to measured */
|
|
t_u64 start_time; /**< Start time (TSF) of measurement */
|
|
t_u16 duration; /**< Duration of measurement in TUs */
|
|
t_u8 busy_fraction; /**< Fractional duration CCA indicated chan busy */
|
|
|
|
} MLAN_PACK_END MeasRptCCA_t;
|
|
|
|
/**
|
|
* @brief RPI measurement report (7.3.2.22.3)
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
t_u8 channel; /**< Channel to measured */
|
|
t_u64 start_time; /**< Start time (TSF) of measurement */
|
|
t_u16 duration; /**< Duration of measurement in TUs */
|
|
t_u8 density[8]; /**< RPI Density histogram report */
|
|
|
|
} MLAN_PACK_END MeasRptRPI_t;
|
|
|
|
/**
|
|
* @brief Union of the availble measurement report types. Passed in the
|
|
* driver/firmware interface.
|
|
*/
|
|
typedef union {
|
|
MeasRptBasic_t basic; /**< Basic measurement report */
|
|
MeasRptCCA_t cca; /**< CCA measurement report */
|
|
MeasRptRPI_t rpi; /**< RPI measurement report */
|
|
|
|
} MeasReport_t;
|
|
|
|
/**
|
|
* @brief Structure passed to firmware to perform a measurement
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
t_u8 mac_addr[MLAN_MAC_ADDR_LENGTH]; /**< Reporting STA address */
|
|
t_u8 dialog_token; /**< Measurement dialog toke */
|
|
MeasReqMode_t req_mode; /**< Report mode */
|
|
MeasType_t meas_type; /**< Measurement type */
|
|
MeasRequest_t req; /**< Measurement request data */
|
|
|
|
} MLAN_PACK_END HostCmd_DS_MEASUREMENT_REQUEST,
|
|
*pHostCmd_DS_MEASUREMENT_REQUEST;
|
|
|
|
/**
|
|
* @brief Structure passed back from firmware with a measurement report,
|
|
* also can be to send a measurement report to another STA
|
|
*/
|
|
typedef MLAN_PACK_START struct {
|
|
t_u8 mac_addr[MLAN_MAC_ADDR_LENGTH]; /**< Reporting STA address */
|
|
t_u8 dialog_token; /**< Measurement dialog token */
|
|
MeasRptMode_t rpt_mode; /**< Report mode */
|
|
MeasType_t meas_type; /**< Measurement type */
|
|
MeasReport_t rpt; /**< Measurement report data */
|
|
|
|
} MLAN_PACK_END HostCmd_DS_MEASUREMENT_REPORT, *pHostCmd_DS_MEASUREMENT_REPORT;
|
|
|
|
typedef MLAN_PACK_START struct {
|
|
t_u16 startFreq;
|
|
Band_Config_t bandcfg;
|
|
t_u8 chanNum;
|
|
|
|
} MLAN_PACK_END MrvlChannelDesc_t;
|
|
|
|
#ifdef OPCHAN
|
|
typedef MLAN_PACK_START struct {
|
|
MrvlIEtypesHeader_t header; /**< Header */
|
|
|
|
MrvlChannelDesc_t chanDesc;
|
|
|
|
t_u16 controlFlags;
|
|
t_u16 reserved;
|
|
|
|
t_u8 actPower;
|
|
t_u8 mdMinPower;
|
|
t_u8 mdMaxPower;
|
|
t_u8 mdPower;
|
|
|
|
} MLAN_PACK_END MrvlIEtypes_ChanControlDesc_t;
|
|
|
|
typedef MLAN_PACK_START struct {
|
|
MrvlIEtypesHeader_t header; /**< Header */
|
|
|
|
t_u16 chanGroupBitmap;
|
|
ChanScanMode_t scanMode;
|
|
t_u8 numChan;
|
|
|
|
MrvlChannelDesc_t chanDesc[50];
|
|
|
|
} MLAN_PACK_END MrvlIEtypes_ChanGroupControl_t;
|
|
|
|
typedef MLAN_PACK_START struct {
|
|
t_u16 action; /**< CMD Action Get/Set*/
|
|
|
|
t_u8 tlv_buffer[1];
|
|
|
|
} MLAN_PACK_END HostCmd_DS_OPCHAN_CONFIG;
|
|
|
|
typedef MLAN_PACK_START struct {
|
|
t_u16 action; /**< CMD Action Get/Set*/
|
|
|
|
t_u8 tlv_buffer[1];
|
|
|
|
} MLAN_PACK_END HostCmd_DS_OPCHAN_CHANGROUP_CONFIG;
|
|
#endif
|
|
|
|
typedef MLAN_PACK_START struct {
|
|
MrvlIEtypesHeader_t Header; /**< Header */
|
|
|
|
MeasRptBasicMap_t map; /**< IEEE 802.11h basic meas report */
|
|
} MLAN_PACK_END MrvlIEtypes_ChanRpt11hBasic_t;
|
|
|
|
/* MrvlIEtypes_ZeroDfsOperation_t */
|
|
typedef MLAN_PACK_START struct {
|
|
/* header */
|
|
MrvlIEtypesHeader_t Header;
|
|
/**< 0-DFS Enable/Disable> */
|
|
t_u8 zero_dfs_enbl;
|
|
|
|
} MLAN_PACK_END MrvlIEtypes_ZeroDfsOperation_t;
|
|
|
|
/* MrvlIEtypes_DfsW53Cfg_t*/
|
|
typedef MLAN_PACK_START struct {
|
|
/* header */
|
|
MrvlIEtypesHeader_t Header;
|
|
/** df53cfg vlue*/
|
|
t_u8 dfs53cfg;
|
|
} MLAN_PACK_END MrvlIEtypes_DfsW53Cfg_t;
|
|
|
|
/* MrvlIEtypes_Rgn_dom_code_t*/
|
|
typedef MLAN_PACK_START struct {
|
|
/* header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Domain Code */
|
|
t_u8 domain_code;
|
|
/** Reserved field */
|
|
t_u8 reserved;
|
|
} MLAN_PACK_END MrvlIEtypes_Rgn_dom_code_t;
|
|
|
|
typedef MLAN_PACK_START struct {
|
|
MrvlChannelDesc_t chan_desc; /**< Channel band, number */
|
|
t_u32 millisec_dwell_time; /**< Channel dwell time in milliseconds */
|
|
} MLAN_PACK_END HostCmd_DS_CHAN_RPT_REQ;
|
|
|
|
typedef MLAN_PACK_START struct {
|
|
t_u32 cmd_result; /**< Rpt request command result (0 == SUCCESS) */
|
|
t_u64 start_tsf; /**< TSF Measurement started */
|
|
t_u32 duration; /**< Duration of measurement in microsecs */
|
|
t_u8 tlv_buffer[1]; /**< TLV Buffer */
|
|
} MLAN_PACK_END HostCmd_DS_CHAN_RPT_RSP;
|
|
|
|
/** statistics threshold */
|
|
typedef MLAN_PACK_START struct {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** value */
|
|
t_u8 value;
|
|
/** reporting frequency */
|
|
t_u8 frequency;
|
|
} MLAN_PACK_END MrvlIEtypes_BeaconHighRssiThreshold_t,
|
|
MrvlIEtypes_BeaconLowRssiThreshold_t,
|
|
MrvlIEtypes_BeaconHighSnrThreshold_t,
|
|
MrvlIEtypes_BeaconLowSnrThreshold_t, MrvlIEtypes_FailureCount_t,
|
|
MrvlIEtypes_DataLowRssiThreshold_t, MrvlIEtypes_DataHighRssiThreshold_t,
|
|
MrvlIEtypes_DataLowSnrThreshold_t, MrvlIEtypes_DataHighSnrThreshold_t,
|
|
MrvlIETypes_PreBeaconMissed_t, MrvlIEtypes_BeaconsMissed_t;
|
|
|
|
/** statistics threshold for LinkQuality */
|
|
typedef MLAN_PACK_START struct {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Link SNR threshold (dB) */
|
|
t_u16 link_snr;
|
|
/** Link SNR frequency */
|
|
t_u16 link_snr_freq;
|
|
/* Second minimum rate value as per the rate table below */
|
|
t_u16 link_rate;
|
|
/* Second minimum rate frequency */
|
|
t_u16 link_rate_freq;
|
|
/* Tx latency value (us) */
|
|
t_u16 link_tx_latency;
|
|
/* Tx latency frequency */
|
|
t_u16 link_tx_lantency_freq;
|
|
} MLAN_PACK_END MrvlIEtypes_LinkQualityThreshold_t;
|
|
|
|
#ifdef PCIE
|
|
/** PCIE dual descriptor for data/event */
|
|
typedef MLAN_PACK_START struct _dual_desc_buf {
|
|
/** buf size */
|
|
t_u16 len;
|
|
/** buffer descriptor flags */
|
|
t_u16 flags;
|
|
/** pkt size */
|
|
t_u16 pkt_size;
|
|
/** reserved */
|
|
t_u16 reserved;
|
|
/** Physical address of the buffer */
|
|
t_u64 paddr;
|
|
} MLAN_PACK_END adma_dual_desc_buf, *padma_dual_desc_buf;
|
|
|
|
#if defined(PCIE8997) || defined(PCIE8897)
|
|
/** PCIE ring buffer description for DATA */
|
|
typedef MLAN_PACK_START struct _mlan_pcie_data_buf {
|
|
/** Buffer descriptor flags */
|
|
t_u16 flags;
|
|
/** Offset of fragment/pkt to start of ip header */
|
|
t_u16 offset;
|
|
/** Fragment length of the buffer */
|
|
t_u16 frag_len;
|
|
/** Length of the buffer */
|
|
t_u16 len;
|
|
/** Physical address of the buffer */
|
|
t_u64 paddr;
|
|
/** Reserved */
|
|
t_u32 reserved;
|
|
} MLAN_PACK_END mlan_pcie_data_buf, *pmlan_pcie_data_buf;
|
|
|
|
/** PCIE ring buffer description for EVENT */
|
|
typedef MLAN_PACK_START struct _mlan_pcie_evt_buf {
|
|
/** Physical address of the buffer */
|
|
t_u64 paddr;
|
|
/** Length of the buffer */
|
|
t_u16 len;
|
|
/** Buffer descriptor flags */
|
|
t_u16 flags;
|
|
} MLAN_PACK_END mlan_pcie_evt_buf, *pmlan_pcie_evt_buf;
|
|
|
|
/** PCIE host buffer configuration */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_PCIE_HOST_BUF_DETAILS {
|
|
/** TX buffer descriptor ring address */
|
|
t_u32 txbd_addr_lo;
|
|
t_u32 txbd_addr_hi;
|
|
/** TX buffer descriptor ring count */
|
|
t_u32 txbd_count;
|
|
|
|
/** RX buffer descriptor ring address */
|
|
t_u32 rxbd_addr_lo;
|
|
t_u32 rxbd_addr_hi;
|
|
/** RX buffer descriptor ring count */
|
|
t_u32 rxbd_count;
|
|
|
|
/** Event buffer descriptor ring address */
|
|
t_u32 evtbd_addr_lo;
|
|
t_u32 evtbd_addr_hi;
|
|
/** Event buffer descriptor ring count */
|
|
t_u32 evtbd_count;
|
|
} HostCmd_DS_PCIE_HOST_BUF_DETAILS;
|
|
#endif
|
|
#endif
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_SENSOR_TEMP {
|
|
t_u32 temperature;
|
|
} MLAN_PACK_END HostCmd_DS_SENSOR_TEMP;
|
|
|
|
#define TLV_TYPE_IPV6_RA_OFFLOAD (PROPRIETARY_TLV_BASE_ID + 0xE6) /** 0x1E6*/
|
|
typedef MLAN_PACK_START struct {
|
|
MrvlIEtypesHeader_t Header;
|
|
t_u8 ipv6_addr[16];
|
|
} MLAN_PACK_END MrvlIETypes_IPv6AddrParamSet_t;
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_IPV6_RA_OFFLOAD {
|
|
/** 0x0000: Get IPv6 RA Offload configuration
|
|
* 0x0001: Set IPv6 RA Offload configuration
|
|
*/
|
|
t_u16 action;
|
|
/** 0x00: disable IPv6 RA Offload; 0x01: enable IPv6 RA offload */
|
|
t_u8 enable;
|
|
MrvlIETypes_IPv6AddrParamSet_t ipv6_addr_param;
|
|
} MLAN_PACK_END HostCmd_DS_IPV6_RA_OFFLOAD;
|
|
|
|
#ifdef STA_SUPPORT
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_STA_CONFIGURE {
|
|
/** Action Set or get */
|
|
t_u16 action;
|
|
/** Tlv buffer */
|
|
t_u8 tlv_buffer[];
|
|
/**MrvlIEtypes_channel_band_t band_channel; */
|
|
} MLAN_PACK_END HostCmd_DS_STA_CONFIGURE;
|
|
|
|
/** Event_Link_Lost structure */
|
|
typedef MLAN_PACK_START struct _Event_Link_Lost {
|
|
/** Reason code */
|
|
t_u16 reason_code;
|
|
/** bssid of Link Lost AP */
|
|
t_u8 bssid[MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END Event_Link_Lost;
|
|
#endif
|
|
|
|
/** HostCmd_DS_AUTO_TX structure */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_AUTO_TX {
|
|
/** Action Set or get */
|
|
t_u16 action;
|
|
/** Tlv buffer */
|
|
t_u8 tlv_buffer[];
|
|
} MLAN_PACK_END HostCmd_DS_AUTO_TX;
|
|
|
|
#define OID_CLOUD_KEEP_ALIVE 0
|
|
#define EVENT_CLOUD_KEEP_ALIVE_RETRY_FAIL 0x00000085
|
|
/** TLV for cloud keep alive control info */
|
|
#define TLV_TYPE_CLOUD_KEEP_ALIVE \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x102) /* 0x0100 + 258 */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Cloud_Keep_Alive_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** ID for cloud keep alive */
|
|
t_u8 keep_alive_id;
|
|
/** Enable/disable for this ID */
|
|
t_u8 enable;
|
|
/** TLV buffer */
|
|
t_u8 tlv[];
|
|
} MLAN_PACK_END MrvlIEtypes_Cloud_Keep_Alive_t;
|
|
|
|
/** TLV for cloud keep alive control info */
|
|
#define TLV_TYPE_KEEP_ALIVE_CTRL \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x103) /* 0x0100 + 259 */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Keep_Alive_Ctrl_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** period to send keep alive packet */
|
|
t_u32 snd_interval;
|
|
/** period to send retry packet */
|
|
t_u16 retry_interval;
|
|
/** count to send retry packet */
|
|
t_u16 retry_count;
|
|
} MLAN_PACK_END MrvlIEtypes_Keep_Alive_Ctrl_t;
|
|
|
|
/** TLV for cloud keep alive packet */
|
|
#define TLV_TYPE_KEEP_ALIVE_PKT \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x104) /* 0x0100 + 260 */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Keep_Alive_Pkt_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Ethernet Header */
|
|
Eth803Hdr_t eth_header;
|
|
/** packet buffer*/
|
|
t_u8 ip_packet[];
|
|
} MLAN_PACK_END MrvlIEtypes_Keep_Alive_Pkt_t;
|
|
|
|
#define OID_CLOUD_KEEP_ALIVE_ACK 1
|
|
#define TLV_TYPE_CLOUD_KEEP_ALIVE_ACK \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x15D) /* 0x0100 + 349 */
|
|
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Cloud_Keep_Alive_Rx_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** ID for cloud keep alive */
|
|
t_u8 keep_alive_id;
|
|
/** Enable/disable for this ID */
|
|
t_u8 enable;
|
|
/** Ethernet Header */
|
|
Eth803Hdr_t eth_header;
|
|
/** packet buffer*/
|
|
t_u8 ip_packet[];
|
|
} MLAN_PACK_END MrvlIEtypes_Cloud_Keep_Alive_Rx_t;
|
|
/** TLV to indicate firmware only keep probe response while scan */
|
|
#define TLV_TYPE_ONLYPROBERESP (PROPRIETARY_TLV_BASE_ID + 0xE9) /* 0x01E9 */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_OnlyProberesp_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** only keep probe response */
|
|
t_u8 proberesp_only;
|
|
} MLAN_PACK_END MrvlIEtypes_OnlyProberesp_t;
|
|
|
|
/** TLV for RTT Range Request */
|
|
#define TLV_TYPE_RTT_RANGE_REQUEST \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x125) /* 0x0100 + 0x125 */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RTTRangeRequest_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Peer device MAC address */
|
|
t_u8 addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** 1-sided or 2-sided RTT */
|
|
t_u8 type;
|
|
/** peer device hint (STA, P2P, AP) */
|
|
t_u8 peer;
|
|
/** channel number */
|
|
t_u8 channel;
|
|
/** Band Config */
|
|
Band_Config_t bandcfg;
|
|
/** Time interval between bursts (units: 100 ms) */
|
|
t_u8 burst_period;
|
|
/** Total number of RTT bursts to be executed. */
|
|
t_u8 num_burst;
|
|
/** num of frames per burst. */
|
|
t_u8 num_frames_per_burst;
|
|
/** number of retries for a failed RTT frame. */
|
|
t_u8 num_retries_per_rtt_frame;
|
|
/** Maximum number of retries that the initiator can retry an FTMR
|
|
* frame. */
|
|
t_u8 num_retries_per_ftmr;
|
|
/** LCI request */
|
|
t_u8 LCI_request;
|
|
/** LCR request */
|
|
t_u8 LCR_request;
|
|
/** burst duration */
|
|
t_u8 burst_duration;
|
|
/** RTT preamble to be used in the RTT frames */
|
|
t_u8 preamble;
|
|
/** RTT BW to be used in the RTT frames */
|
|
t_u8 bw;
|
|
} MLAN_PACK_END MrvlIEtypes_RTTRangeRequest_t;
|
|
|
|
/** TLV for RTT Range Cancel */
|
|
#define TLV_TYPE_RTT_RANGE_CANCEL \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x126) /* 0x0100 + 0x126 */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RTTRangeCancel_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Peer device MAC address */
|
|
t_u8 addr[MLAN_MAC_ADDR_LENGTH];
|
|
} MLAN_PACK_END MrvlIEtypes_RTTRangeCancel_t;
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_FTM_CONFIG_SESSION_PARAMS {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** TLV buffer */
|
|
/** MrvlIEtypes_RTTRangeRequest_t */
|
|
/** MrvlIEtypes_RTTRangeCancel_t */
|
|
t_u8 tlv_buffer[];
|
|
} MLAN_PACK_END HostCmd_DS_FTM_CONFIG_SESSION_PARAMS;
|
|
|
|
typedef MLAN_PACK_START struct _WLS_Sub_Event_RTTResults_t {
|
|
/** complete */
|
|
t_u8 complete;
|
|
/** tlv buffer */
|
|
/** MrvlIEtypes_RTTResult_t */
|
|
t_u8 tlv_buffer[];
|
|
} MLAN_PACK_END WLS_SUB_EVENT_RTTResults_t;
|
|
|
|
/** TLV for RTT Result */
|
|
#define TLV_TYPE_RTT_RESULT \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x127) /* 0x0100 + 0x127 */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RTTResult_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** Peer device MAC address */
|
|
t_u8 addr[MLAN_MAC_ADDR_LENGTH];
|
|
/** burst number in a multi-burst request */
|
|
t_u32 burst_num;
|
|
/** Total RTT measurement frames attempted */
|
|
t_u32 measurement_number;
|
|
/** Total successful RTT measurement frames */
|
|
t_u32 success_number;
|
|
/** Maximum number of "FTM frames per burst" supported by the responder
|
|
* STA. */
|
|
t_u8 number_per_burst_peer;
|
|
/** ranging status */
|
|
t_u8 status;
|
|
/** The time provided by the responder when the request can be tried
|
|
* again. */
|
|
t_u8 retry_after_duration;
|
|
/** RTT type */
|
|
t_u8 type;
|
|
/** average rssi in 0.5 dB steps e.g. 143 implies -71.5 dB */
|
|
t_s32 rssi;
|
|
/** rssi spread in 0.5 dB steps e.g. 5 implies 2.5 dB spread (optional)
|
|
*/
|
|
t_s32 rssi_spread;
|
|
/** TX rate */
|
|
mlan_wifi_rate tx_rate;
|
|
/** RX rate */
|
|
mlan_wifi_rate rx_rate;
|
|
/** round trip time in picoseconds */
|
|
t_s64 rtt;
|
|
/** rtt standard deviation in picoseconds */
|
|
t_s64 rtt_sd;
|
|
/** difference between max and min rtt times recorded in picoseconds */
|
|
t_s64 rtt_spread;
|
|
/** distance in mm (optional) */
|
|
t_s32 distance_mm;
|
|
/** standard deviation in mm (optional) */
|
|
t_s32 distance_sd_mm;
|
|
/** difference between max and min distance recorded in mm (optional) */
|
|
t_s32 distance_spread_mm;
|
|
/** time of the measurement (in microseconds since boot) */
|
|
t_s64 ts;
|
|
/** in ms, actual time taken by the FW to finish one burst */
|
|
t_s32 burst_duration;
|
|
/** Number of bursts allowed by the responder. */
|
|
t_s32 negotiated_burst_num;
|
|
/** tlv buffer */
|
|
t_u8 tlv_buffer[];
|
|
} MLAN_PACK_END MrvlIEtypes_RTTResult_t;
|
|
|
|
/** TLV for IEEEI IE */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_IEEEIE_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** data */
|
|
t_u8 data[];
|
|
} MLAN_PACK_END MrvlIEtypes_IEEEIE_t;
|
|
|
|
/** auto link switch network info */
|
|
typedef MLAN_PACK_START struct _Event_WLS_FTM_t {
|
|
/** Event ID */
|
|
t_u16 event_id;
|
|
/** BSS index number for multiple BSS support */
|
|
t_u8 bss_index;
|
|
/** BSS type */
|
|
t_u8 bss_type;
|
|
/** sub event id */
|
|
t_u8 sub_event_id;
|
|
union {
|
|
/** RTT Results Sub Event */
|
|
WLS_SUB_EVENT_RTTResults_t rtt_results;
|
|
} u;
|
|
} MLAN_PACK_END Event_WLS_FTM_t;
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_FTM_CONFIG_RESPONDER {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** TLV buffer */
|
|
/** MrvlIEtypes_RTTResponderInfo_t */
|
|
/** MrvlIEtypes_RTTResponderEnCfg_t */
|
|
t_u8 tlv_buffer[];
|
|
} MLAN_PACK_END HostCmd_DS_FTM_CONFIG_RESPONDER;
|
|
|
|
/** TLV for RTTResponderInfo */
|
|
#define TLV_TYPE_RTT_RESPONDER_INFO \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x128) /* 0x0100 + 0x128 */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RTTResponderInfo_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** channel */
|
|
t_u8 channel;
|
|
/** bandcfg */
|
|
Band_Config_t bandcfg;
|
|
/** bandcfg */
|
|
t_u8 preamble;
|
|
} MLAN_PACK_END MrvlIEtypes_RTTResponderInfo_t;
|
|
|
|
/** TLV for RTTResponderEnCfg */
|
|
#define TLV_TYPE_RTT_RESPONDER_EN_CFG \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x129) /* 0x0100 + 0x129 */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RTTResponderEnCfg_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** channel */
|
|
t_u8 channel;
|
|
/** bandcfg */
|
|
Band_Config_t bandcfg;
|
|
/** bandcfg */
|
|
t_u32 max_duration_seconds;
|
|
} MLAN_PACK_END MrvlIEtypes_RTTResponderEnCfg_t;
|
|
|
|
/** TLV for RTTLCICfg */
|
|
#define TLV_TYPE_RTT_LCI_CFG \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x12A) /* 0x0100 + 0x12A */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RTTLCICfg_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** latitude */
|
|
t_u64 latitude;
|
|
/** longitude */
|
|
t_u64 longitude;
|
|
/** altitude */
|
|
t_u32 altitude;
|
|
/** latitude_unc */
|
|
t_u8 latitude_unc;
|
|
/** longitude_unc */
|
|
t_u8 longitude_unc;
|
|
/** altitude_unc */
|
|
t_u8 altitude_unc;
|
|
/** motion_pattern */
|
|
t_u8 motion_pattern;
|
|
/** floor */
|
|
t_u32 floor;
|
|
/** height_above_floor */
|
|
t_u32 height_above_floor;
|
|
/** height_unc */
|
|
t_u32 height_unc;
|
|
} MLAN_PACK_END MrvlIEtypes_RTTLCICfg_t;
|
|
|
|
/** TLV for RTTLCRCfg */
|
|
#define TLV_TYPE_RTT_LCR_CFG \
|
|
(PROPRIETARY_TLV_BASE_ID + 0x12B) /* 0x0100 + 0x12B */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_RTTLCRCfg_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** country_code */
|
|
char country_code[2];
|
|
/** length of the info field */
|
|
t_u32 length;
|
|
/** Civic info to be copied in FTM frame */
|
|
char civic_info[256];
|
|
} MLAN_PACK_END MrvlIEtypes_RTTLCRCfg_t;
|
|
|
|
#ifdef UAP_SUPPORT
|
|
/** action add station */
|
|
#define HostCmd_ACT_ADD_STA 0x1
|
|
/** remove station */
|
|
#define HostCmd_ACT_REMOVE_STA 0x0
|
|
/** HostCmd_DS_ADD_STATION */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_ADD_STATION {
|
|
/** 1 -add, 0 --delete */
|
|
t_u16 action;
|
|
/** aid */
|
|
t_u16 aid;
|
|
/** peer_mac */
|
|
t_u8 peer_mac[MLAN_MAC_ADDR_LENGTH];
|
|
/** Listen Interval */
|
|
int listen_interval;
|
|
/** Capability Info */
|
|
t_u16 cap_info;
|
|
/** tlv start */
|
|
t_u8 tlv[];
|
|
} MLAN_PACK_END HostCmd_DS_ADD_STATION;
|
|
|
|
/** TLV id: station flag */
|
|
#define TLV_TYPE_UAP_STA_FLAGS (PROPRIETARY_TLV_BASE_ID + 313)
|
|
/**MrvlIEtypes_Sta_Flag_t */
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_StaFlag_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
/** station flag */
|
|
t_u32 sta_flags;
|
|
} MLAN_PACK_END MrvlIEtypes_StaFlag_t;
|
|
#endif
|
|
|
|
/** Host Command ID : _HostCmd_DS_BAND_STEERING */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_BAND_STEERING {
|
|
/** ACT_GET/ACT_SET */
|
|
t_u8 action;
|
|
/** State */
|
|
t_u8 state;
|
|
/** probe requests to be blocked on 2g */
|
|
t_u8 block_2g_prb_req;
|
|
/** limit the btm request sent to STA at <max_btm_req_allowed>*/
|
|
t_u8 max_btm_req_allowed;
|
|
} MLAN_PACK_END HostCmd_DS_BAND_STEERING;
|
|
|
|
/** HostCmd_CMD_RX_ABORT_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_RX_ABORT_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Enable/disable rx abort on weak pkt rssi */
|
|
t_u8 enable;
|
|
/** rx weak rssi pkt threshold */
|
|
t_s8 rssi_threshold;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_RX_ABORT_CFG;
|
|
|
|
/** HostCmd_CMD_OFDM_DESENSE_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_OFDM_DESENSE_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Enable/disable cca desense on pkt */
|
|
t_u8 enable;
|
|
/** cca pkt threshold */
|
|
t_s8 cca_threshold;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_OFDM_DESENSE_CFG;
|
|
/** HostCmd_CMD_RX_ABORT_CFG_EXT */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_RX_ABORT_CFG_EXT {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Enable/disable dyn rx abort on weak pkt rssi */
|
|
t_u8 enable;
|
|
/** specify rssi margin */
|
|
t_s8 rssi_margin;
|
|
/** specify ceil rssi threshold */
|
|
t_s8 ceil_rssi_threshold;
|
|
/** specify floor rssi threshold */
|
|
t_s8 floor_rssi_threshold;
|
|
/** current dynamic rssi threshold */
|
|
t_s8 current_dynamic_rssi_threshold;
|
|
/** rssi config: default or user configured */
|
|
t_u8 rssi_default_config;
|
|
/** EDMAC status */
|
|
t_u8 edmac_enable;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_RX_ABORT_CFG_EXT;
|
|
|
|
/** HostCmd_CMD_NAV_MITIGATION_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_NAV_MITIGATION_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** start/stop nav mitigation */
|
|
t_u16 start_nav_mitigation;
|
|
/** Duration value in us to set as threshold in ACT_SET action */
|
|
t_u16 threshold;
|
|
/** Counter for NAV mitigation detected */
|
|
t_u16 detect_cnt;
|
|
/** Counter for NAV mitigation stopped */
|
|
t_u16 stop_cnt;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_NAV_MITIGATION_CFG;
|
|
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_LED_CFG {
|
|
t_u16 action;
|
|
t_u8 enable;
|
|
t_u8 numled;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_LED_CFG;
|
|
|
|
/* TLV 0x109 LED Behavior */
|
|
typedef MLAN_PACK_START struct {
|
|
MrvlIEtypesHeader_t header;
|
|
t_u8 firmwarestate;
|
|
t_u8 reserved;
|
|
t_u8 ledstate;
|
|
t_u8 ledargs;
|
|
} MLAN_PACK_END MrvlIEtypes_led_behavior_t;
|
|
|
|
/** HostCmd_CMD_ARB_CONFIG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_ARB_CONFIG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** 0-4 */
|
|
t_u32 arb_mode;
|
|
/** 1: use FW enhancement, 0: use FW default */
|
|
t_u32 reserved;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_ARB_CONFIG;
|
|
|
|
/** HostCmd_DS_CMD_TX_AMPDU_PROT_MODE */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_TX_AMPDU_PROT_MODE {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Prot mode */
|
|
t_u16 mode;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_TX_AMPDU_PROT_MODE;
|
|
|
|
/** HostCmd_DS_CMD_DOT11MC_UNASSOC_FTM_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_DOT11MC_UNASSOC_FTM_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Cfg state */
|
|
t_u16 state;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_DOT11MC_UNASSOC_FTM_CFG;
|
|
|
|
/** HostCmd_CMD_RATE_ADAPT_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_RATE_ADAPT_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** SR Rateadapt*/
|
|
t_u8 sr_rateadapt;
|
|
/** set low threshold */
|
|
t_u8 ra_low_thresh;
|
|
/** set high threshold */
|
|
t_u8 ra_high_thresh;
|
|
/** set interval */
|
|
t_u16 ra_interval;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_RATE_ADAPT_CFG;
|
|
|
|
/** HostCmd_CMD_CCK_DESENSE_CFG */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_CMD_CCK_DESENSE_CFG {
|
|
/** Action */
|
|
t_u16 action;
|
|
/** cck desense mode: 0:disable 1:normal 2:dynamic */
|
|
t_u16 mode;
|
|
/** specify rssi margin */
|
|
t_s8 margin;
|
|
/** specify ceil rssi threshold */
|
|
t_s8 ceil_thresh;
|
|
/** cck desense "on" interval count */
|
|
t_u8 num_on_intervals;
|
|
/** cck desense "off" interval count */
|
|
t_u8 num_off_intervals;
|
|
} MLAN_PACK_END HostCmd_DS_CMD_CCK_DESENSE_CFG;
|
|
|
|
/** HostCmd_DS_80211_TX_FRAME */
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_80211_TX_FRAME {
|
|
/** Action Set or get */
|
|
t_u16 action;
|
|
/** status */
|
|
t_u16 status;
|
|
/** BandConfig */
|
|
t_u8 band_config;
|
|
/** channel */
|
|
t_u8 channel;
|
|
/** reserved */
|
|
t_u32 reserved;
|
|
/** buffer include TxPD and full Tx packet */
|
|
t_u8 buffer[];
|
|
} MLAN_PACK_END HostCmd_DS_80211_TX_FRAME;
|
|
|
|
/* edmac configuration: HostCmd_DS_EDMAC_CFG*/
|
|
typedef MLAN_PACK_START struct _HostCmd_DS_EDMAC_CFG {
|
|
/** EU adaptivity for 2.4ghz band */
|
|
t_u16 ed_ctrl_2g;
|
|
/** Energy detect threshold offset for 2.4ghz */
|
|
t_s16 ed_offset_2g;
|
|
/** EU adaptivity for 5ghz band */
|
|
t_u16 ed_ctrl_5g;
|
|
/** Energy detect threshold offset for 5ghz */
|
|
t_s16 ed_offset_5g;
|
|
|
|
t_u32 ed_bitmap_txq_lock;
|
|
} MLAN_PACK_END HostCmd_DS_EDMAC_CFG;
|
|
|
|
/** HostCmd_DS_COMMAND */
|
|
typedef struct MLAN_PACK_START _HostCmd_DS_COMMAND {
|
|
/** Command Header : Command */
|
|
t_u16 command;
|
|
/** Command Header : Size */
|
|
t_u16 size;
|
|
/** Command Header : Sequence number */
|
|
t_u16 seq_num;
|
|
/** Command Header : Result */
|
|
t_u16 result;
|
|
/** Command Body */
|
|
union {
|
|
/** Hardware specifications */
|
|
HostCmd_DS_GET_HW_SPEC hw_spec;
|
|
#ifdef SDIO
|
|
#endif
|
|
/** Cfg data */
|
|
HostCmd_DS_802_11_CFG_DATA cfg_data;
|
|
/** MAC control */
|
|
HostCmd_DS_MAC_CONTROL mac_ctrl;
|
|
/** MAC address */
|
|
HostCmd_DS_802_11_MAC_ADDRESS mac_addr;
|
|
/** MAC muticast address */
|
|
HostCmd_DS_MAC_MULTICAST_ADR mc_addr;
|
|
/** Get log */
|
|
HostCmd_DS_802_11_GET_LOG get_log;
|
|
/** Get link layer statistic */
|
|
HostCmd_DS_802_11_LINK_STATISTIC get_link_statistic;
|
|
/** RSSI information */
|
|
HostCmd_DS_802_11_RSSI_INFO_EXT rssi_info_ext;
|
|
/** RSSI information */
|
|
HostCmd_DS_802_11_RSSI_INFO rssi_info;
|
|
/** RSSI information response */
|
|
HostCmd_DS_802_11_RSSI_INFO_RSP rssi_info_rsp;
|
|
/** SNMP MIB */
|
|
HostCmd_DS_802_11_SNMP_MIB smib;
|
|
#ifdef UAP_SUPPORT
|
|
/** UAP SNMP MIB */
|
|
HostCmd_DS_UAP_802_11_SNMP_MIB uap_smib;
|
|
#endif
|
|
/** Radio control */
|
|
HostCmd_DS_802_11_RADIO_CONTROL radio;
|
|
/** RF channel */
|
|
HostCmd_DS_802_11_RF_CHANNEL rf_channel;
|
|
/** Tx rate query */
|
|
HostCmd_TX_RATE_QUERY tx_rate;
|
|
/** Tx rate configuration */
|
|
HostCmd_DS_TX_RATE_CFG tx_rate_cfg;
|
|
/** Tx power configuration */
|
|
HostCmd_DS_TXPWR_CFG txp_cfg;
|
|
/** RF Tx power configuration */
|
|
HostCmd_DS_802_11_RF_TX_POWER txp;
|
|
|
|
/** RF antenna */
|
|
HostCmd_DS_802_11_RF_ANTENNA antenna;
|
|
|
|
/** Enhanced power save command */
|
|
HostCmd_DS_802_11_PS_MODE_ENH psmode_enh;
|
|
HostCmd_DS_802_11_HS_CFG_ENH opt_hs_cfg;
|
|
/** Scan */
|
|
HostCmd_DS_802_11_SCAN scan;
|
|
/** Extended Scan */
|
|
HostCmd_DS_802_11_SCAN_EXT ext_scan;
|
|
|
|
/** Mgmt frame subtype mask */
|
|
HostCmd_DS_RX_MGMT_IND rx_mgmt_ind;
|
|
/** Scan response */
|
|
HostCmd_DS_802_11_SCAN_RSP scan_resp;
|
|
|
|
HostCmd_DS_802_11_BG_SCAN_CONFIG bg_scan_config;
|
|
HostCmd_DS_802_11_BG_SCAN_QUERY bg_scan_query;
|
|
HostCmd_DS_802_11_BG_SCAN_QUERY_RSP bg_scan_query_resp;
|
|
HostCmd_DS_SUBSCRIBE_EVENT subscribe_event;
|
|
HostCmd_DS_OTP_USER_DATA otp_user_data;
|
|
/** Associate */
|
|
HostCmd_DS_802_11_ASSOCIATE associate;
|
|
|
|
/** Associate response */
|
|
HostCmd_DS_802_11_ASSOCIATE_RSP associate_rsp;
|
|
/** Deauthenticate */
|
|
HostCmd_DS_802_11_DEAUTHENTICATE deauth;
|
|
/** Ad-Hoc start */
|
|
HostCmd_DS_802_11_AD_HOC_START adhoc_start;
|
|
/** Ad-Hoc start result */
|
|
HostCmd_DS_802_11_AD_HOC_START_RESULT adhoc_start_result;
|
|
/** Ad-Hoc join result */
|
|
HostCmd_DS_802_11_AD_HOC_JOIN_RESULT adhoc_join_result;
|
|
/** Ad-Hoc join */
|
|
HostCmd_DS_802_11_AD_HOC_JOIN adhoc_join;
|
|
/** Domain information */
|
|
HostCmd_DS_802_11D_DOMAIN_INFO domain_info;
|
|
/** Domain information response */
|
|
HostCmd_DS_802_11D_DOMAIN_INFO_RSP domain_info_resp;
|
|
HostCmd_DS_802_11_TPC_ADAPT_REQ tpc_req;
|
|
HostCmd_DS_802_11_TPC_INFO tpc_info;
|
|
HostCmd_DS_802_11_CHAN_SW_ANN chan_sw_ann;
|
|
HostCmd_DS_CHAN_RPT_REQ chan_rpt_req;
|
|
HostCmd_DS_MEASUREMENT_REQUEST meas_req;
|
|
HostCmd_DS_MEASUREMENT_REPORT meas_rpt;
|
|
/** Add BA request */
|
|
HostCmd_DS_11N_ADDBA_REQ add_ba_req;
|
|
/** Add BA response */
|
|
HostCmd_DS_11N_ADDBA_RSP add_ba_rsp;
|
|
/** Delete BA entry */
|
|
HostCmd_DS_11N_DELBA del_ba;
|
|
/** Tx buffer configuration */
|
|
HostCmd_DS_TXBUF_CFG tx_buf;
|
|
/** AMSDU Aggr Ctrl configuration */
|
|
HostCmd_DS_AMSDU_AGGR_CTRL amsdu_aggr_ctrl;
|
|
/** 11n configuration */
|
|
HostCmd_DS_11N_CFG htcfg;
|
|
/** reject addba req conditions configuration */
|
|
HostCmd_DS_REJECT_ADDBA_REQ rejectaddbareq;
|
|
/* RANDYTODO need add more */
|
|
/** HostCmd_DS_11AC_CFG */
|
|
HostCmd_DS_11AC_CFG vhtcfg;
|
|
/** HostCmd_DS_11ACTXBUF_CFG*/
|
|
HostCmd_DS_11ACTXBUF_CFG ac_tx_buf;
|
|
/** 11n configuration */
|
|
HostCmd_DS_TX_BF_CFG tx_bf_cfg;
|
|
/** WMM status get */
|
|
HostCmd_DS_WMM_GET_STATUS get_wmm_status;
|
|
/** WMM ADDTS */
|
|
HostCmd_DS_WMM_ADDTS_REQ add_ts;
|
|
/** WMM DELTS */
|
|
HostCmd_DS_WMM_DELTS_REQ del_ts;
|
|
/** WMM set/get queue config */
|
|
HostCmd_DS_WMM_QUEUE_CONFIG queue_config;
|
|
/** WMM param config*/
|
|
HostCmd_DS_WMM_PARAM_CONFIG param_config;
|
|
/** WMM on/of/get queue statistics */
|
|
HostCmd_DS_WMM_QUEUE_STATS queue_stats;
|
|
/** WMM get traffic stream status */
|
|
HostCmd_DS_WMM_TS_STATUS ts_status;
|
|
/** Key material */
|
|
HostCmd_DS_802_11_KEY_MATERIAL key_material;
|
|
/** GTK Rekey parameters */
|
|
HostCmd_DS_GTK_REKEY_PARAMS gtk_rekey;
|
|
/** E-Supplicant PSK */
|
|
HostCmd_DS_802_11_SUPPLICANT_PMK esupplicant_psk;
|
|
/** E-Supplicant profile */
|
|
HostCmd_DS_802_11_SUPPLICANT_PROFILE esupplicant_profile;
|
|
/** Extended version */
|
|
HostCmd_DS_VERSION_EXT verext;
|
|
/** Adhoc Coalescing */
|
|
HostCmd_DS_802_11_IBSS_STATUS ibss_coalescing;
|
|
/** Mgmt IE list configuration */
|
|
HostCmd_DS_MGMT_IE_LIST_CFG mgmt_ie_list;
|
|
/** TDLS configuration command */
|
|
HostCmd_DS_TDLS_CONFIG tdls_config_data;
|
|
/** TDLS operation command */
|
|
HostCmd_DS_TDLS_OPER tdls_oper_data;
|
|
/** System clock configuration */
|
|
HostCmd_DS_ECL_SYSTEM_CLOCK_CONFIG sys_clock_cfg;
|
|
/** MAC register access */
|
|
HostCmd_DS_MAC_REG_ACCESS mac_reg;
|
|
/** BBP register access */
|
|
HostCmd_DS_BBP_REG_ACCESS bbp_reg;
|
|
/** RF register access */
|
|
HostCmd_DS_RF_REG_ACCESS rf_reg;
|
|
/** EEPROM register access */
|
|
HostCmd_DS_802_11_EEPROM_ACCESS eeprom;
|
|
/** Memory access */
|
|
HostCmd_DS_MEM_ACCESS mem;
|
|
/** Target device access */
|
|
HostCmd_DS_TARGET_ACCESS target;
|
|
/** BCA register access */
|
|
HostCmd_DS_BCA_REG_ACCESS bca_reg;
|
|
/** register access */
|
|
HostCmd_DS_REG_ACCESS reg;
|
|
/** Inactivity timeout extend */
|
|
HostCmd_DS_INACTIVITY_TIMEOUT_EXT inactivity_to;
|
|
#ifdef UAP_SUPPORT
|
|
HostCmd_DS_SYS_CONFIG sys_config;
|
|
HostCmd_DS_SYS_INFO sys_info;
|
|
HostCmd_DS_STA_DEAUTH sta_deauth;
|
|
HostCmd_DS_STA_LIST sta_list;
|
|
HostCmd_DS_POWER_MGMT_EXT pm_cfg;
|
|
HostCmd_DS_REPORT_MIC report_mic;
|
|
HostCmd_DS_UAP_OPER_CTRL uap_oper_ctrl;
|
|
#endif /* UAP_SUPPORT */
|
|
HostCmd_DS_TX_RX_HISTOGRAM tx_rx_histogram;
|
|
|
|
/** Sleep period command */
|
|
HostCmd_DS_802_11_SLEEP_PERIOD sleep_pd;
|
|
/** Sleep params command */
|
|
HostCmd_DS_802_11_SLEEP_PARAMS sleep_param;
|
|
|
|
#ifdef SDIO
|
|
/** SDIO GPIO interrupt config command */
|
|
HostCmd_DS_SDIO_GPIO_INT_CONFIG sdio_gpio_int;
|
|
HostCmd_DS_SDIO_PULL_CTRL sdio_pull_ctl;
|
|
#endif
|
|
HostCmd_DS_SET_BSS_MODE bss_mode;
|
|
HostCmd_DS_802_11_NET_MONITOR net_mon;
|
|
HostCmd_DS_CMD_TX_DATA_PAUSE tx_data_pause;
|
|
#if defined(PCIE)
|
|
#if defined(PCIE8997) || defined(PCIE8897)
|
|
HostCmd_DS_PCIE_HOST_BUF_DETAILS pcie_host_spec;
|
|
#endif
|
|
#endif
|
|
HostCmd_DS_REMAIN_ON_CHANNEL remain_on_chan;
|
|
#ifdef WIFI_DIRECT_SUPPORT
|
|
HostCmd_DS_WIFI_DIRECT_MODE wifi_direct_mode;
|
|
HostCmd_DS_WIFI_DIRECT_PARAM_CONFIG p2p_params_config;
|
|
#endif
|
|
HostCmd_DS_GPIO_TSF_LATCH_PARAM_CONFIG gpio_tsf_latch;
|
|
HostCmd_DS_COALESCE_CONFIG coalesce_config;
|
|
HostCmd_DS_FW_AUTO_RECONNECT fw_auto_reconnect_cmd;
|
|
HostCmd_DS_HS_WAKEUP_REASON hs_wakeup_reason;
|
|
HostCmd_DS_PACKET_AGGR_CTRL aggr_ctrl;
|
|
#ifdef USB
|
|
HostCmd_DS_PACKET_AGGR_OVER_HOST_INTERFACE packet_aggr;
|
|
#endif
|
|
HostCmd_DS_MULTI_CHAN_CFG multi_chan_cfg;
|
|
HostCmd_DS_MULTI_CHAN_POLICY multi_chan_policy;
|
|
HostCmd_DS_DRCS_CFG drcs_cfg;
|
|
HostCmd_CONFIG_LOW_PWR_MODE low_pwr_mode_cfg;
|
|
HostCmd_DS_TSF tsf;
|
|
HostCmd_DS_DFS_REPEATER_MODE dfs_repeater;
|
|
HostCmd_DS_EAPOL_PKT eapol_pkt;
|
|
HostCmd_DS_SENSOR_TEMP temp_sensor;
|
|
HostCMD_DS_APCMD_ACS_SCAN acs_scan;
|
|
HostCmd_DS_MIMO_SWITCH mimo_switch;
|
|
HostCmd_DS_IPV6_RA_OFFLOAD ipv6_ra_offload;
|
|
#ifdef STA_SUPPORT
|
|
HostCmd_DS_STA_CONFIGURE sta_cfg;
|
|
#endif
|
|
/** GPIO Independent reset configure */
|
|
HostCmd_DS_INDEPENDENT_RESET_CFG ind_rst_cfg;
|
|
HostCmd_DS_802_11_PS_INACTIVITY_TIMEOUT ps_inact_tmo;
|
|
HostCmd_DS_ROAM_OFFLOAD roam_offload;
|
|
HostCmd_DS_CHAN_REGION_CFG reg_cfg;
|
|
HostCmd_DS_REGION_POWER_CFG rg_power_cfg;
|
|
HostCmd_DS_AUTO_TX auto_tx;
|
|
HostCmd_DS_FTM_CONFIG_SESSION_PARAMS ftm_config;
|
|
HostCmd_DS_FTM_CONFIG_RESPONDER ftm_rtt_responder;
|
|
HostCmd_DS_DYN_BW dyn_bw;
|
|
HostCmd_DS_802_11_ROBUSTCOEX robustcoexparams;
|
|
HostCmd_DS_DMCS_CFG dmcs;
|
|
#if defined(PCIE)
|
|
HostCmd_DS_SSU_CFG ssu_params;
|
|
#endif
|
|
HostCmd_DS_CSI_CFG csi_params;
|
|
/** boot sleep configure */
|
|
HostCmd_DS_BOOT_SLEEP boot_sleep;
|
|
#ifdef UAP_SUPPORT
|
|
/** Add station cmd */
|
|
HostCmd_DS_ADD_STATION sta_info;
|
|
#endif
|
|
/** HostCmd_DS_11AX_CFG */
|
|
HostCmd_DS_11AX_CFG axcfg;
|
|
/** HostCmd_DS_11AX_CMD_CFG */
|
|
HostCmd_DS_11AX_CMD_CFG axcmd;
|
|
HostCmd_DS_RANGE_EXT range_ext;
|
|
/** HostCmd_DS_TWT_CFG */
|
|
HostCmd_DS_TWT_CFG twtcfg;
|
|
|
|
HostCmd_DS_CMD_RX_ABORT_CFG rx_abort_cfg;
|
|
HostCmd_DS_CMD_OFDM_DESENSE_CFG ofdm_desense_cfg;
|
|
HostCmd_DS_CMD_RX_ABORT_CFG_EXT rx_abort_cfg_ext;
|
|
HostCmd_DS_CMD_NAV_MITIGATION_CFG nav_mitigation;
|
|
HostCmd_DS_CMD_LED_CFG ledcntrcfg;
|
|
HostCmd_DS_CMD_TX_AMPDU_PROT_MODE tx_ampdu_prot_mode;
|
|
HostCmd_DS_CMD_RATE_ADAPT_CFG rate_adapt_cfg;
|
|
HostCmd_DS_CMD_CCK_DESENSE_CFG cck_desense_cfg;
|
|
/** trpc_config */
|
|
HostCmd_DS_CHANNEL_TRPC_CONFIG ch_trpc_config;
|
|
HostCmd_DS_LOW_POWER_MODE_CFG lpm_cfg;
|
|
HostCmd_DS_BAND_STEERING band_steer_info;
|
|
HostCmd_DS_BEACON_STUCK_CFG beacon_stuck_cfg;
|
|
struct mfg_cmd_generic_cfg mfg_generic_cfg;
|
|
struct mfg_cmd_tx_cont mfg_tx_cont;
|
|
struct mfg_cmd_tx_frame2 mfg_tx_frame2;
|
|
struct mfg_Cmd_HE_TBTx_t mfg_he_power;
|
|
mfg_Cmd_IEEEtypes_CtlBasicTrigHdr_t mfg_tx_trigger_config;
|
|
HostCmd_DS_CMD_ARB_CONFIG arb_cfg;
|
|
HostCmd_DS_CMD_DOT11MC_UNASSOC_FTM_CFG dot11mc_unassoc_ftm_cfg;
|
|
HostCmd_DS_HAL_PHY_CFG hal_phy_cfg_params;
|
|
HostCmd_DS_IPS_CONFIG ips_cfg;
|
|
HostCmd_DS_MC_AGGR_CFG mc_aggr_cfg;
|
|
HostCmd_DS_STATS stats;
|
|
HostCmd_DS_GET_CH_LOAD ch_load;
|
|
HostCmd_DS_CROSS_CHIP_SYNCH cross_chip_synch;
|
|
HostCmd_DS_80211_TX_FRAME tx_frame;
|
|
|
|
HostCmd_DS_EDMAC_CFG ed_mac_cfg;
|
|
HostCmd_gpio_cfg_ops gpio_cfg_ops;
|
|
} params;
|
|
} MLAN_PACK_END HostCmd_DS_COMMAND, *pHostCmd_DS_COMMAND;
|
|
|
|
/** PS_CMD_ConfirmSleep */
|
|
typedef MLAN_PACK_START struct _OPT_Confirm_Sleep {
|
|
/** Command */
|
|
t_u16 command;
|
|
/** Size */
|
|
t_u16 size;
|
|
/** Sequence number */
|
|
t_u16 seq_num;
|
|
/** Result */
|
|
t_u16 result;
|
|
/** Action */
|
|
t_u16 action;
|
|
/** Sleep comfirm param definition */
|
|
sleep_confirm_param sleep_cfm;
|
|
} MLAN_PACK_END OPT_Confirm_Sleep;
|
|
|
|
typedef struct MLAN_PACK_START _opt_sleep_confirm_buffer {
|
|
/** Header for interface */
|
|
t_u32 hdr;
|
|
/** New power save command used to send
|
|
* sleep confirmation to the firmware */
|
|
OPT_Confirm_Sleep ps_cfm_sleep;
|
|
} MLAN_PACK_END opt_sleep_confirm_buffer;
|
|
|
|
typedef MLAN_PACK_START struct _MrvlIEtypes_Secure_Boot_Uuid_t {
|
|
/** Header */
|
|
MrvlIEtypesHeader_t header;
|
|
|
|
/** Secure boot uuid lower and higher 8 bytes */
|
|
t_u64 uuid_lo;
|
|
t_u64 uuid_hi;
|
|
} MLAN_PACK_END MrvlIEtypes_Secure_Boot_Uuid_t;
|
|
|
|
/** req host side download vdll block */
|
|
#define VDLL_IND_TYPE_REQ 0
|
|
/** notify vdll start offset in firmware image */
|
|
#define VDLL_IND_TYPE_OFFSET 1
|
|
/** notify vdll download error: signature error */
|
|
#define VDLL_IND_TYPE_ERR_SIG 2
|
|
/** notify vdll download error: ID error */
|
|
#define VDLL_IND_TYPE_ERR_ID 3
|
|
/** notify vdll download error: Secure error */
|
|
#define VDLL_IND_TYPE_SEC_ERR_ID 4
|
|
|
|
/** vdll indicate event structure */
|
|
typedef MLAN_PACK_START struct _vdll_ind {
|
|
/*VDLL ind type*/
|
|
t_u16 type;
|
|
/*vdllId*/
|
|
t_u16 vdllId;
|
|
/*indicate the offset downloaded so far*/
|
|
t_u32 offset;
|
|
/*VDLL block size*/
|
|
t_u16 block_len;
|
|
} MLAN_PACK_END vdll_ind, *pvdll_ind;
|
|
#ifdef PRAGMA_PACK
|
|
#pragma pack(pop)
|
|
#endif
|
|
|
|
#endif /* !_MLAN_FW_H_ */
|