blob: 67e17b9ad8fada20d29b76896b2bde8ec8f6cfd2 [file] [log] [blame]
/*****************************************************************************
*
* File: tlv.h
*
*
*
* Author(s): Kapil Chhabra
* Date: 2005-01-27
* Description: Definitions of the Marvell TLV and parsing functions.
*
*****************************************************************************/
#ifndef TLV_H__
#define TLV_H__
#include "IEEE_types.h"
#define PROPRIETARY_TLV_BASE_ID 0x0100
/* Terminating TLV Type */
#define MRVL_TERMINATE_TLV_ID 0xffff
/* Defines for MRVL TLV IDs*/
/* IEEE TLVs*/
#define MRVL_SSID_TLV_ID 0x0000
#define MRVL_RATES_TLV_ID 0x0001
#define MRVL_PHYPARAMFHSET_TLV_ID 0x0002
#define MRVL_PHYPARAMDSSET_TLV_ID 0x0003
#define MRVL_CFPARAMSET_TLV_ID 0x0004
#define MRVL_IBSSPARAMSET_TLV_ID 0x0006
#define MRVL_COUNTRY_TLV_ID 0x0007
#define MRVL_PWR_CONSTRAINT_TLV_ID 0x0020
#define MRVL_PWR_CAPABILITY_TLV_ID 0x0021
#define MRVL_SUPPORTEDCHANNELS_TLV_ID 0x0024
#define MRVL_QUIET_TLV_ID 0x0028
#define MRVL_IBSSDFS_TLV_ID 0x0029
#define MRVL_HT_CAPABILITY_TLV_ID 0x002d
#define MRVL_QOSCAPABILITY_TLV_ID 0x002e
#define MRVL_RSN_TLV_ID 0x0030
#define MRVL_SUPPORTED_REGCLASS_TLV_ID 0x003b
#define MRVL_HT_INFORMATION_TLV_ID 0x003d
#define MRVL_SECONDARY_CHAN_OFFSET 0x003e
#define MRVL_2040_BSS_COEX_TLV_ID 0x0048
#define MRVL_OVERLAP_BSS_SCAN_TLV_ID 0x004a
#define MRVL_EXTENDED_CAP_TLV_ID 0x007f
#define MRVL_VHT_CAPABILITIES_TLV_ID 0x00bf
#define MRVL_VHT_OPERATION_TLV_ID 0x00c0
#define MRVL_AID_TLV_ID 0x00c5
#define MRVL_VHT_OPMODENTF_TLV_ID 0x00c7
#define MRVL_VENDORSPECIFIC_TLV_ID 0x00dd
/* Some of these TLV ids are used in ROM and should not be updated.
** You can confirm if it is not being used in rom then it can be updated.
*/
/* Proprietary TLVs */
#define MRVL_KEYPARAMSET_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x00)
#define MRVL_CHANNELLIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x01)
#define MRVL_NUMPROBES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x02)
#define MRVL_OMNI_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x03)
#define MRVL_RSSITHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x04)
#define MRVL_SNRTHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x05)
#define MRVL_BCNLOWRSSITHRESHOLD_TLV_ID MRVL_RSSITHRESHOLD_TLV_ID
#define MRVL_BCNLOWSNRTHRESHOLD_TLV_ID MRVL_SNRTHRESHOLD_TLV_ID
#define MRVL_FAILURECOUNT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x06)
#define MRVL_BEACONMISSED_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x07)
#define MRVL_LEDGPIO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x08)
#define MRVL_LEDBEHAVIOR_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x09)
#define MRVL_PASSTHROUGH_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0a)
#define MRVL_REASSOCAP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0b)
#define MRVL_POWER_TBL_2_4GHZ_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0c)
#define MRVL_POWER_TBL_5GHZ_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0d)
/* sending Brocast SSID */
#define MRVL_BCASTPROBE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0e)
/* number of SSIDs for which directed probes need to be generated */
#define MRVL_NUMSSIDPROBE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0f)
#define MRVL_WMMQSTATUS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x10)
#define MRVL_CRYPTO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x11)
#define MRVL_WILDCARD_SSID_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x12)
#define MRVL_TSFTIMESTAMP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x13)
#define MRVL_POWER_ADAPT_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x14)
#define MRVL_HOSTSLEEP_FILTER_TYPE1_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x15)
#define MRVL_BCNHIGHRSSITHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x16)
#define MRVL_BCNHIGHSNRTHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x17)
#define MRVL_AUTOTX_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x18)
#define MRVL_WSC_SELECTED_REGISTRAR_TLV (PROPRIETARY_TLV_BASE_ID + 0x19)
#define MRVL_WSC_ENROLLEE_TMO_TLV (PROPRIETARY_TLV_BASE_ID + 0x1a)
#define MRVL_WSC_ENROLLEE_PROBE_REQ_TLV (PROPRIETARY_TLV_BASE_ID + 0x1b)
#define MRVL_WSC_REGISTRAR_BEACON_TLV (PROPRIETARY_TLV_BASE_ID + 0x1c)
#define MRVL_WSC_REGISTRAR_PROBE_RESP_TLV (PROPRIETARY_TLV_BASE_ID + 0x1d)
#define MRVL_STARTBGSCANLATER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x1e)
#define MRVL_AUTHTYPE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x1f)
#define MRVL_STA_MAC_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x20)
#define MRVL_CUSTOM_ADHOC_PROBE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x21)
#define MRVL_CUSTOM_ADHOC_PYXIS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x22)
#define MRVL_CUSTOM_BSSID_LIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x23)
#define MRVL_CUSTOM_LINK_INDICATION_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x24)
#define MRVL_MESHIE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x25)
#define MRVL_DATA_LOWRSSITHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x26)
#define MRVL_DATA_LOWSNRTHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x27)
#define MRVL_DATA_HIGHRSSITHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x28)
#define MRVL_DATA_HIGHSNRTHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x29)
#define MRVL_CHANNELBANDLIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2a)
#define MRVL_AP_MAC_ADDRESS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2b)
#define MRVL_BEACON_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2c)
#define MRVL_DTIM_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2d)
#define MRVL_BASIC_RATES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2e)
#define MRVL_TX_POWER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2f)
#define MRVL_BCAST_SSID_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x30)
#define MRVL_PREAMBLE_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x31)
#define MRVL_ANTENNA_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x32)
#define MRVL_RTS_THRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x33)
#define MRVL_RADIO_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x34)
#define MRVL_TX_DATA_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x35)
#define MRVL_PKT_FWD_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x36)
#define MRVL_STA_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x37)
#define MRVL_STA_MAC_ADDR_FILTER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x38)
#define MRVL_STA_AGEOUT_TIMER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x39)
#define MRVL_SECURITY_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3a)
#define MRVL_WEP_KEY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3b)
#define MRVL_WPA_PASSPHRASE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3c)
#define MRVL_SCAN_TIMING_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3d)
#define MRVL_NEIGHBOR_ENTRY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3e)
#define MRVL_NEIGHBOR_SCAN_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3f)
#define MRVL_ENCRYPTION_PROTOCOL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x40)
#define MRVL_AKMP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x41)
#define MRVL_CIPHER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x42)
#define MRVL_OFFLOAD_ENABLE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x43)
#define MRVL_SUPPLICANT_PMK_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x44)
#define MRVL_SUPPLICANT_PASSPHRASE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x45)
#define MRVL_FRAG_THRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x46)
#define MRVL_GRP_REKEY_TIME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x47)
#define MRVL_ICV_ERROR_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x48)
#define MRVL_PRE_BEACONMISSED_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x49)
#define MRVL_OLD_HT_CAPABILITY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4a)
#define MRVL_OLD_HT_INFORMATION_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4b)
#define MRVL_OLD_SECONDARY_CHAN_OFFSET_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4c)
#define MRVL_OLD_2040_BSS_COEX_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4d)
#define MRVL_OLD_OVERLAP_BSS_SCAN_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4e)
#define MRVL_OLD_EXTENDED_CAP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4f)
#define MRVL_HT_OPERATIONAL_MCSSET_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x50)
#define MRVL_RATEDROPPATTERN_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x51)
#define MRVL_RATEDROPCONTROL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x52)
#define MRVL_RATESCOPE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x53)
#define MRVL_TYPES_POWER_GROUP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x54)
#define MRVL_MAX_STA_CNT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x55)
#define MRVL_BSS_SCAN_RSP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x56)
#define MRVL_BSS_SCAN_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x57)
#define MRVL_CHANRPT_BCN_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x58)
#define MRVL_CHANRPT_CHAN_LOAD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x59)
#define MRVL_CHANRPT_NOISE_HIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5a)
#define MRVL_CHANRPT_11H_BASIC_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5b)
#define MRVL_CHANRPT_FRAME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5c)
#define MRVL_RETRY_LIMIT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5d)
#define MRVL_WAPI_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5e)
#define MRVL_ASSOC_REASON_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5f)
#define MRVL_ROBUST_COEX_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x60)
#define MRVL_ROBUST_COEX_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x61)
#define MRVL_MCBC_DATA_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x62)
#define MRVL_MEASUREMENT_TIMING_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x63)
#define MRVL_RSN_REPLAY_PROT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x64)
#define MRVL_WAPI_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x67)
#define MRVL_MGMT_FRAME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x68)
#define MRVL_MGMT_IE_LIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x69)
#define MRVL_AP_SLEEP_PARAM_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6a)
#define MRVL_AP_INACT_SLEEP_PARAM_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6b)
#define MRVL_AP_BT_COEX_COMMON_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6c)
#define MRVL_AP_BT_COEX_SCO_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6d)
#define MRVL_AP_BT_COEX_ACL_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6e)
#define MRVL_AP_BT_COEX_STATS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6f)
#define MRVL_MGMT_PASSTHRU_MASK_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x70)
#define MRVL_AUTO_DEEP_SLEEP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x71)
#define MRVL_ENHANCED_STA_POWER_SAVE_MODE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x72)
#define MRVL_HOSTWAKE_STADB_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x73)
#define MRVL_HOSTWAKE_OUI_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x74)
#define MRVL_EAPOL_PWK_HSK_TIMEOUT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x75)
#define MRVL_EAPOL_PWK_HSK_RETRIES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x76)
#define MRVL_EAPOL_GWK_HSK_TIMEOUT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x77)
#define MRVL_EAPOL_GWK_HSK_RETRIES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x78)
#define MRVL_OPCHAN_CONTROL_DESC_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x79)
#define MRVL_OPCHAN_CHANGRP_CTRL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7a)
#define MRVL_PS_STA_AGEOUT_TIMER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7b)
#define MRVL_WFD_DISC_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7c)
#define MRVL_WFD_SCAN_ENABLE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7d)
#define MRVL_WFD_SCAN_PEER_DEVICE_ID_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7e)
#define MRVL_WFD_REQ_DEVICE_TYPE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7f)
#define MRVL_WFD_DEVICE_STATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x80)
#define MRVL_WFD_INTENT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x81)
#define MRVL_WFD_CAPABILITY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x82)
#define MRVL_WFD_NOA_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x83)
#define MRVL_WFD_OPP_PS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x84)
#define MRVL_WFD_INVITATION_LIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x85)
#define MRVL_WFD_LISTEN_CHANNEL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x86)
#define MRVL_WFD_OPERATING_CHANNEL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x87)
#define MRVL_WFD_PERSISTENT_GROUP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x88)
#define MRVL_CHANNEL_TRPC_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x89)
#define MRVL_IEEE_ACTION_FRAME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x8c)
#define MRVL_WIFI_DIRECT_PRESENCE_REQ_PARAMS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x8d)
#define MRVL_WIFI_DIRECT_EXTENDED_LISTEN_TIME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x8e)
#define MRVL_WIFI_DIRECT_PROVISIONING_PARAMS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x8f)
#define MRVL_WIFI_DIRECT_WPS_PARAMS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x90)
#define MRVL_WIFI_DIRECT_ACTION_FRAME_SEND_TIMEOUT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb3)
#define MRVL_CIPHER_PWK_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x91)
#define MRVL_CIPHER_GWK_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x92)
#define MRVL_AP_BSS_STATUS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x93)
#define MRVL_TX_DATA_PAUSE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x94)
#define MRVL_STICKY_TIM_CONFIG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x96)
#define MRVL_STICKY_TIM_STA_MAC_ADDR_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x97)
#define MRVL_2040_BSS_COEX_CONTROL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x98)
#define MRVL_KEYPARAMSET_V2_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x9c)
#define MRVL_RXBA_SYNC_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x99)
#define MRVL_PKT_COALESCE_RULE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x9a)
#define MRVL_NETWORK_LIST_CFG_TLV (PROPRIETARY_TLV_BASE_ID + 0X9b)
#define MRVL_MEF_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x9d)
#define MRVL_WFD_SCAN_CFG_TLV (PROPRIETARY_TLV_BASE_ID + 158)
#define MRVL_WFD_SENDTIMEOUT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 159)
#define MRVL_WFD_GROUPID_TLV_ID (PROPRIETARY_TLV_BASE_ID + 160)
#define MRVL_WFD_DEVICE_ID_TLV_ID (PROPRIETARY_TLV_BASE_ID + 161)
#define MRVL_WFD_INTENDEDINTF_ADDR_TLV_ID (PROPRIETARY_TLV_BASE_ID + 162)
#define MRVL_WFD_STATUS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 163)
#define MRVL_WFD_DEVICE_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 164)
#define MRVL_WFD_CFG_TIMEOUT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 165)
#define MRVL_WFD_INVITATION_TLV_ID (PROPRIETARY_TLV_BASE_ID + 166)
#define MRVL_WFD_GROUP_BSSID_TLV_ID (PROPRIETARY_TLV_BASE_ID + 167)
#define MRVL_WFD_WPA_PSK_TLV_ID (PROPRIETARY_TLV_BASE_ID + 168)
#define MRVL_MAX_MGMT_IE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 170)
#define MRVL_REGION_DOMAIN_CODE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 171)
#define MRVL_AOIP_IBSS_MODE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 172)
#define MRVL_AOIP_MANAGE_PEERS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 173)
#define MRVL_AOIP_STA_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 174)
#define MRVL_AOIP_REMOTE_ADDR_MODE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 175)
#define MRVL_BGSCAN_REPEAT_CNT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb0)
#define MRVL_TLV_USB_AGGR_PARAM (PROPRIETARY_TLV_BASE_ID + 177)
#define MRVL_PS_PARAMS_IN_HS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb5)
#define MRVL_HS_WAKE_HOLDOFF_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb6)
#define MRVL_MULTI_CHAN_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb7)
#define MRVL_MULTI_CHAN_GROUP_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb8)
#define MRVL_RESTRICT_CLIENT_MODE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xc1)
#define MRVL_WFD_SERVICE_HASH_TLV_ID (PROPRIETARY_TLV_BASE_ID + 195)
#define MRVL_WFD_SERVICES_LIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 196)
#define MRVL_API_VER_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 199)
#define MRVL_FLOOR_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb9)
#define MRVL_SCAN_CHAN_GAP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xC5)
#define MRVL_CHAN_STATS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xC6)
/* This struct is used in ROM and should not be changed at all */
typedef MLAN_PACK_START struct {
UINT16 Type;
UINT16 Length;
} MLAN_PACK_END MrvlIEParamSet_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 Value[1];
} MLAN_PACK_END MrvlIEGeneric_t;
/* MultiChannel TLV*/
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 Status; // 1 = Active, 0 = Inactive
UINT8 TlvBuffer[1];
} MLAN_PACK_END MrvlIEMultiChanInfo_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 ChanGroupId;
UINT8 ChanBufWt;
ChanBandInfo_t ChanBandInfo;
UINT32 ChanTime;
UINT32 Reserved;
UINT8 HidPortNum;
UINT8 NumIntf;
UINT8 BssTypeNumList[1];
} MLAN_PACK_END MrvlIEMultiChanGroupInfo_t;
/* Key Material TLV */
typedef MLAN_PACK_START struct MrvlIEKeyParamSet_t {
MrvlIEParamSet_t hdr;
UINT16 keyMgtId;
} MLAN_PACK_END MrvlIEKeyParamSet_t;
#ifdef KEY_MATERIAL_V2
typedef MLAN_PACK_START struct wep_key_t {
UINT16 len;
UINT8 key[1];
} MLAN_PACK_END wep_key_t;
typedef MLAN_PACK_START struct wpax_key_t {
UINT8 pn[8];
UINT16 len;
UINT8 key[1];
} MLAN_PACK_END wpax_key_t;
typedef MLAN_PACK_START struct wapi_key_t {
UINT8 pn[16];
UINT16 len;
UINT8 key[16];
UINT8 micKey[16];
} MLAN_PACK_END wapi_key_t;
typedef MLAN_PACK_START struct MrvlIEKeyParamSet_v2_t {
MrvlIEParamSet_t hdr;
IEEEtypes_MacAddr_t macAddr;
UINT8 keyIdx;
UINT8 keyType;
UINT16 keyInfo;
MLAN_PACK_START union {
wep_key_t wep;
wpax_key_t wpax;
wapi_key_t wapi;
} MLAN_PACK_END keySet;
} MLAN_PACK_END MrvlIEKeyParamSet_v2_t;
#endif
/* Marvell Power Constraint TLV */
typedef MLAN_PACK_START struct MrvlIEPowerConstraint_t {
MrvlIEParamSet_t IEParam;
UINT8 channel;
UINT8 dBm;
} MLAN_PACK_END MrvlIEPowerConstraint_t;
/* Marvell WSC Selected Registar TLV */
typedef MLAN_PACK_START struct MrvlIEWSCSelectedRegistrar_t {
MrvlIEParamSet_t IEParam;
UINT16 devPwdID;
} MLAN_PACK_END MrvlIEWSCSelectedRegistrar_t;
/* Marvell WSC Enrollee TMO TLV */
typedef MLAN_PACK_START struct MrvlIEWSCEnrolleeTmo_t {
MrvlIEParamSet_t IEParam;
UINT16 tmo;
} MLAN_PACK_END MrvlIEWSCEnrolleeTmo_t;
/****************
* AES CRYPTION FEATURE
*
* DEFINE STARTS --------------
*/
typedef MLAN_PACK_START struct MrvlIEAesCrypt_t {
MrvlIEParamSet_t hdr;
UINT8 payload[40];
} MLAN_PACK_END MrvlIEAesCrypt_t;
/* DEFINE ENDS ----------------
*/
/* Marvell Power Capability TLV */
typedef MLAN_PACK_START struct MrvlIEPowerCapability_t {
MrvlIEParamSet_t IEParam;
UINT8 minPwr;
UINT8 maxPwr;
} MLAN_PACK_END MrvlIEPowerCapability_t;
/* Marvell TLV for OMNI Serial Number and Hw Revision Information. */
typedef MLAN_PACK_START struct MrvlIE_OMNI_t {
MrvlIEParamSet_t IEParam;
UINT8 SerialNumber[16];
UINT8 HWRev;
UINT8 Reserved[3];
} MLAN_PACK_END MrvlIE_OMNI_t;
/* Marvell LED Behavior TLV */
typedef MLAN_PACK_START struct MrvlIELedBehavior_t {
MrvlIEParamSet_t IEParam;
UINT8 FirmwareState;
UINT8 LedNumber;
UINT8 LedState;
UINT8 LedArgs;
} MLAN_PACK_END MrvlIELedBehavior_t;
/* Marvell LED GPIO Mapping TLV */
typedef MLAN_PACK_START struct MrvlIELedGpio_t {
MrvlIEParamSet_t IEParam;
UINT8 LEDNumber;
UINT8 GPIONumber;
} MLAN_PACK_END MrvlIELedGpio_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
/*
** Set a place holder for the TSF values. Sized to max BSS for message
** allocation. The TLV will return a variable number of TSF values.
*/
UINT64 TSFValue[IEEEtypes_MAX_BSS_DESCRIPTS];
} MLAN_PACK_END MrvlIETsfArray_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 maxLen;
IEEEtypes_SsId_t ssid;
} MLAN_PACK_END MrvlIEWildcardSsid_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 snrThreshold;
UINT8 reportFrequency;
} MLAN_PACK_END MrvlIELowSnrThreshold_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 rssiThreshold;
UINT8 reportFrequency;
} MLAN_PACK_END MrvlIELowRssiThreshold_t;
/* Marvell AutoTx TLV */
#define MAX_KEEPALIVE_PKT_LEN (0x60)
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 Interval; /* in seconds */
UINT8 Priority;
UINT8 Reserved;
UINT16 EtherFrmLen;
UINT8 DestAddr[6];
UINT8 SrcAddr[6];
UINT8 EtherFrmBody[MAX_KEEPALIVE_PKT_LEN]; // Last 4 bytes are
// 32bit FCS
} MLAN_PACK_END MrvlIEAutoTx_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
IEEEtypes_DFS_Map_t map;
} MLAN_PACK_END MrvlIEChanRpt11hBasic_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 scanReqId;
} MLAN_PACK_END MrvlIEChanRptBeacon_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 ccaBusyFraction;
} MLAN_PACK_END MrvlIEChanRptChanLoad_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
SINT16 anpi;
UINT8 rpiDensities[11];
} MLAN_PACK_END MrvlIEChanRptNoiseHist_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
IEEEtypes_MacAddr_t sourceAddr;
IEEEtypes_MacAddr_t bssid;
SINT16 rssi;
UINT16 frameCnt;
} MLAN_PACK_END MrvlIEChanRptFrame_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
SINT16 rssi;
SINT16 anpi;
UINT8 ccaBusyFraction;
#ifdef SCAN_REPORT_THROUGH_EVENT
BandConfig_t band;
UINT8 channel;
UINT8 reserved;
UINT64 tsf;
#endif
} MLAN_PACK_END MrvlIEBssScanStats_t;
typedef MLAN_PACK_START struct {
/** Header */
MrvlIEParamSet_t IEParam;
UINT32 mode;
UINT32 maxOff;
UINT32 maxOn;
} MLAN_PACK_END MrvlIETypes_MeasurementTiming_t;
typedef MLAN_PACK_START struct {
/** Header */
MrvlIEParamSet_t IEParam;
UINT32 mode;
UINT32 dwell;
UINT32 maxOff;
UINT32 minLink;
UINT32 rspTimeout;
} MLAN_PACK_END MrvlIETypes_ConfigScanTiming_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 KeyIndex;
UINT8 IsDefaultIndex;
UINT8 Value[1];
} MLAN_PACK_END MrvlIETypes_WepKey_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 PMK[32];
} MLAN_PACK_END MrvlIETypes_PMK_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 ssid[1];
} MLAN_PACK_END MrvlIETypes_Ssid_Param_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 Passphrase[64];
} MLAN_PACK_END MrvlIETypes_Passphrase_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 BSSID[6];
} MLAN_PACK_END MrvlIETypes_BSSID_t;
typedef MLAN_PACK_START struct {
UINT16 Type;
UINT16 Length;
IEEEtypes_MacAddr_t Bssid;
UINT16 Rsvd;
SINT16 Rssi; // Signal strength
UINT16 Age;
UINT32 QualifiedNeighborBitmap;
UINT32 BlackListDuration;
} MLAN_PACK_END MrvlIETypes_NeighbourEntry_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 SearchMode;
UINT16 State;
UINT32 ScanPeriod;
} MLAN_PACK_END MrvlIETypes_NeighbourScanPeriod_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 Rssi;
UINT8 Frequency;
} MLAN_PACK_END MrvlIETypes_BeaconHighRssiThreshold_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 Rssi;
UINT8 Frequency;
} MLAN_PACK_END MrvlIETypes_BeaconLowRssiThreshold_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 Value;
UINT8 Frequency;
} MLAN_PACK_END MrvlIETypes_RoamingAgent_Threshold_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 AssocReason;
} MLAN_PACK_END MrvlIETypes_AssocReason_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
IEEEtypes_MacAddr_t macAddr;
UINT8 txPauseState;
UINT8 totalQueued;
} MLAN_PACK_END MrvlIETypes_TxDataPause_t;
typedef MLAN_PACK_START struct {
UINT16 startFreq;
UINT8 chanWidth;
UINT8 chanNum;
} MLAN_PACK_END MrvlIEChannelDesc_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
MrvlIEChannelDesc_t chanDesc;
UINT16 controlFlags;
UINT16 reserved;
UINT8 activePower;
UINT8 mdMinPower;
UINT8 mdMaxPower;
UINT8 mdPower;
} MLAN_PACK_END MrvlIETypes_OpChanControlDesc_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT32 chanGroupBitmap;
ChanScanMode_t scanMode;
UINT8 numChan;
MrvlIEChannelDesc_t chanDesc[50];
} MLAN_PACK_END MrvlIETypes_ChanGroupControl_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
ChanBandInfo_t ChanBandInfo[IEEEtypes_MAX_BSS_DESCRIPTS];
} MLAN_PACK_END MrvlIEChanBandList_t;
#if 0
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
IEEEtypes_MacAddr_t srcAddr;
IEEEtypes_MacAddr_t dstAddr;
IEEEtypes_ActionFrame_t actionFrame;
} MLAN_PACK_END MrvlIEActionFrame_t;
#endif
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
HtEntry_t htEntry[IEEEtypes_MAX_BSS_DESCRIPTS];
} MLAN_PACK_END MrvlIEHtList_t;
/* This struct is used in ROM code and all the fields of
** this should be kept intact
*/
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 bmpRateOfHRDSSS;
UINT16 bmpRateOfOFDM;
UINT32 bmpRateOfHT_DW0;
UINT32 bmpRateOfHT_DW1;
UINT32 bmpRateOfHT_DW2;
UINT32 bmpRateOfHT_DW3;
#ifdef DOT11AC
UINT16 bmpRateOfVHT[8]; // per SS
#endif
} MLAN_PACK_END MrvlIE_TxRateScope_t;
typedef MLAN_PACK_START struct {
UINT8 mod_class;
UINT8 rate;
UINT8 attemptLimit;
UINT8 reserved;
} MLAN_PACK_END MrvlIE_RateInfoEntry_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
MrvlIE_RateInfoEntry_t rate_info[8];
} MLAN_PACK_END MrvlIE_RateDropTable_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT32 mode;
// for 1x1 11n, 9 HT rate, 8 OFDM rate, 4 DSSS rate
MrvlIE_RateDropTable_t rateDropTbls[9 + 8 + 4];
} MLAN_PACK_END MrvlIE_RateDropPattern_t;
#ifdef USB_FRAME_AGGR
#define USB_TX_AGGR_ENABLE ( 1 << 1 )
#define USB_RX_AGGR_ENABLE ( 1 << 0 )
#define USB_RX_AGGR_MODE_MASK ( 1 << 0 )
#define USB_RX_AGGR_MODE_SIZE (1)
#define USB_RX_AGGR_MODE_NUM (0)
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 enable;
UINT16 rx_mode;
UINT16 rx_align;
UINT16 rx_max;
UINT16 rx_timeout;
UINT16 tx_mode;
UINT16 tx_align;
} MLAN_PACK_END MrvlIE_USBAggrTLV_t;
extern MrvlIE_USBAggrTLV_t g_Aggr_Conf;
#endif
typedef MLAN_PACK_START struct {
UINT8 mod_class;
UINT8 firstRateCode;
UINT8 lastRateCode;
SINT8 power_step;
SINT8 min_power;
SINT8 max_power;
UINT8 ht_bandwidth;
UINT8 reserved[1];
} MLAN_PACK_END MrvlIE_PowerGroupEntry_t;
#define MRVL_MAX_PWR_GROUP 15
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
MrvlIE_PowerGroupEntry_t PowerGroup[MRVL_MAX_PWR_GROUP];
} MLAN_PACK_END MrvlIE_PowerGroup_t;
#ifdef AP_STA_PS
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 NullPktInterval;
UINT16 numDtims;
UINT16 BCNMissTimeOut;
UINT16 LocalListenInterval;
UINT16 AdhocAwakePeriod;
UINT16 PS_mode;
UINT16 DelayToPS;
} MrvlIETypes_StaSleepParams_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 idleTime;
} MrvlIETypes_AutoDeepSleepParams_t;
#endif
#ifdef MESH
typedef MLAN_PACK_START struct _MrvlMeshIE_Tlv_t {
MrvlIEParamSet_t hdr;
IEEEtypes_VendorSpecific_MeshIE_t meshIE;
} MLAN_PACK_END MrvlMeshIE_Tlv_t;
#endif
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 RBCMode;
UINT8 Reserved[3];
} MLAN_PACK_END MrvlIERobustCoex_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 Mode;
UINT16 Reserved;
UINT32 BTTime;
UINT32 Period;
} MLAN_PACK_END MrvlIERobustCoexPeriod_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT8 staMacAddr[IEEEtypes_ADDRESS_SIZE];
IEEEtypes_IE_Param_t IeBuf;
} MLAN_PACK_END MrvlIEHostWakeStaDBCfg;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 ouiCmpLen;
UINT8 ouiBuf[6];
} MLAN_PACK_END MrvlIEHostWakeOuiCfg;
#ifdef MICRO_AP_MODE
/* This struct is used in ROM and should not be changed at all */
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t hdr;
IEEEtypes_MacAddr_t macAddr;
UINT8 pwrMode;
SINT8 rssi;
} MLAN_PACK_END MrvlIEStaInfo_t;
#endif
typedef struct {
MrvlIEParamSet_t Hdr;
uint16 protocol;
uint8 cipher;
uint8 reserved;
} MrvlIETypes_PwkCipher_t;
typedef struct {
MrvlIEParamSet_t Hdr;
uint8 cipher;
uint8 reserved;
} MrvlIETypes_GwkCipher_t;
typedef MLAN_PACK_START struct {
uint8 modGroup;
uint8 txPower;
} MLAN_PACK_END MrvlIE_ChanTrpcEntry_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t Hdr;
MrvlIEChannelDesc_t chanDesc;
MrvlIE_ChanTrpcEntry_t data[1];
} MLAN_PACK_END MrvlIETypes_ChanTrpcCfg_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
IEEEtypes_MacAddr_t mac[IEEEtypes_MAX_BSS_DESCRIPTS];
} MLAN_PACK_END MrvlIETypes_MacAddr_t;
#ifdef AP_BTCOEX
typedef enum _tagScoCoexBtTraffic {
ONLY_SCO,
ACL_BEFORE_SCO,
ACL_AFTER_SCO,
BT_TRAFFIC_RESERVED,
BT_TRAFFIC_MAX
} ScoCoexBtTraffic_e;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT32 configBitmap; /* Bit 0 : overrideCts2SelfProtection ** Bit
1-31 : Reserved */
UINT32 apStaBtCoexEnabled;
UINT32 reserved[3]; /* For future use. */
} MLAN_PACK_END MrvlIETypes_ApBTCoexCommonConfig_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 protectionFrmQTime[BT_TRAFFIC_MAX]; /* Index 0 for ONLY_SCO
** 1 for
ACL_BEFORE_SCO ** 2
for ACL_AFTER_SCO **
3 is Reserved */
UINT16 protectionFrmRate;
UINT16 aclFrequency;
UINT32 reserved[4]; /* For future use. */
} MLAN_PACK_END MrvlIETypes_ApBTCoexScoConfig_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT16 enabled;
UINT16 btTime;
UINT16 wlanTime;
UINT16 protectionFrmRate;
UINT32 reserved[4]; /* For future use. */
} MLAN_PACK_END MrvlIETypes_ApBTCoexAclConfig_t;
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t IEParam;
UINT32 nullNotSent;
UINT32 numOfNullQueued;
UINT32 nullNotQueued;
UINT32 numOfCfEndQueued;
UINT32 cfEndNotQueued;
UINT32 nullAllocationFail;
UINT32 cfEndAllocationFail;
UINT32 reserved[8]; /* For future use. */
} MLAN_PACK_END MrvlIETypes_ApBTCoexStats_t;
#endif // AP_BTCOEX
typedef MLAN_PACK_START struct {
MrvlIEParamSet_t Hdr;
IEEEtypes_MacAddr_t macAddr;
UINT8 tid;
UINT8 reserved;
UINT16 startSeqNum;
UINT16 bitMapLen;
UINT8 bitMap[1];
} MLAN_PACK_END MrvlIETypes_RxBaSync_t;
#ifdef SCAN_CHAN_STATISTICS
typedef MLAN_PACK_START struct MrvlIEChannelStats {
MrvlIEParamSet_t IEParam;
UINT8 chanStat[1];
} MLAN_PACK_END MrvlIEChannelStats_t;
#endif
/* API Version Info Entry for MRVL_API_VER_INFO_TLV_ID */
typedef MLAN_PACK_START struct MrvlIE_ApiVersionEntry_t {
UINT16 apiId;
UINT8 major;
UINT8 minor;
} MLAN_PACK_END MrvlIE_ApiVersionEntry_t;
/** API Version Ids */
#define KEY_API_VER_ID 0x1
#endif // _TLV_H_