1 /** @file tlv.h 2 * 3 * @brief Definitions of the Marvell TLV and parsing functions. 4 * 5 * 6 * Copyright (C) 2014-2017, Marvell International Ltd. 7 * 8 * This software file (the "File") is distributed by Marvell International 9 * Ltd. under the terms of the GNU General Public License Version 2, June 1991 10 * (the "License"). You may use, redistribute and/or modify this File in 11 * accordance with the terms and conditions of the License, a copy of which 12 * is available by writing to the Free Software Foundation, Inc., 13 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA or on the 14 * worldwide web at http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. 15 * 16 * THE FILE IS DISTRIBUTED AS-IS, WITHOUT WARRANTY OF ANY KIND, AND THE 17 * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE 18 * ARE EXPRESSLY DISCLAIMED. The License provides additional details about 19 * this warranty disclaimer. 20 */ 21 22 /***************************************************************************** 23 * 24 * File: tlv.h 25 * 26 * 27 * 28 * Author(s): Kapil Chhabra 29 * Date: 2005-01-27 30 * Description: Definitions of the Marvell TLV and parsing functions. 31 * 32 *****************************************************************************/ 33 #ifndef TLV_H__ 34 #define TLV_H__ 35 36 #include "IEEE_types.h" 37 38 #define PROPRIETARY_TLV_BASE_ID 0x0100 39 40 /* Terminating TLV Type */ 41 #define MRVL_TERMINATE_TLV_ID 0xffff 42 43 /* Defines for MRVL TLV IDs*/ 44 45 /* IEEE TLVs*/ 46 #define MRVL_SSID_TLV_ID 0x0000 47 #define MRVL_RATES_TLV_ID 0x0001 48 #define MRVL_PHYPARAMFHSET_TLV_ID 0x0002 49 #define MRVL_PHYPARAMDSSET_TLV_ID 0x0003 50 #define MRVL_CFPARAMSET_TLV_ID 0x0004 51 #define MRVL_IBSSPARAMSET_TLV_ID 0x0006 52 #define MRVL_COUNTRY_TLV_ID 0x0007 53 #define MRVL_PWR_CONSTRAINT_TLV_ID 0x0020 54 #define MRVL_PWR_CAPABILITY_TLV_ID 0x0021 55 #define MRVL_SUPPORTEDCHANNELS_TLV_ID 0x0024 56 #define MRVL_QUIET_TLV_ID 0x0028 57 #define MRVL_IBSSDFS_TLV_ID 0x0029 58 #define MRVL_HT_CAPABILITY_TLV_ID 0x002d 59 #define MRVL_QOSCAPABILITY_TLV_ID 0x002e 60 #define MRVL_RSN_TLV_ID 0x0030 61 #define MRVL_SUPPORTED_REGCLASS_TLV_ID 0x003b 62 #define MRVL_HT_INFORMATION_TLV_ID 0x003d 63 #define MRVL_SECONDARY_CHAN_OFFSET 0x003e 64 #define MRVL_2040_BSS_COEX_TLV_ID 0x0048 65 #define MRVL_OVERLAP_BSS_SCAN_TLV_ID 0x004a 66 #define MRVL_EXTENDED_CAP_TLV_ID 0x007f 67 #define MRVL_VHT_CAPABILITIES_TLV_ID 0x00bf 68 #define MRVL_VHT_OPERATION_TLV_ID 0x00c0 69 #define MRVL_AID_TLV_ID 0x00c5 70 #define MRVL_VHT_OPMODENTF_TLV_ID 0x00c7 71 #define MRVL_VENDORSPECIFIC_TLV_ID 0x00dd 72 73 /* Some of these TLV ids are used in ROM and should not be updated. 74 ** You can confirm if it is not being used in rom then it can be updated. 75 */ 76 /* Proprietary TLVs */ 77 #define MRVL_KEYPARAMSET_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x00) 78 #define MRVL_CHANNELLIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x01) 79 #define MRVL_NUMPROBES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x02) 80 #define MRVL_OMNI_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x03) 81 #define MRVL_RSSITHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x04) 82 #define MRVL_SNRTHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x05) 83 #define MRVL_BCNLOWRSSITHRESHOLD_TLV_ID MRVL_RSSITHRESHOLD_TLV_ID 84 #define MRVL_BCNLOWSNRTHRESHOLD_TLV_ID MRVL_SNRTHRESHOLD_TLV_ID 85 #define MRVL_FAILURECOUNT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x06) 86 #define MRVL_BEACONMISSED_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x07) 87 #define MRVL_LEDGPIO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x08) 88 #define MRVL_LEDBEHAVIOR_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x09) 89 #define MRVL_PASSTHROUGH_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0a) 90 #define MRVL_REASSOCAP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0b) 91 #define MRVL_POWER_TBL_2_4GHZ_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0c) 92 #define MRVL_POWER_TBL_5GHZ_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0d) 93 /* sending Brocast SSID */ 94 #define MRVL_BCASTPROBE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0e) 95 /* number of SSIDs for which directed probes need to be generated */ 96 #define MRVL_NUMSSIDPROBE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x0f) 97 #define MRVL_WMMQSTATUS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x10) 98 #define MRVL_CRYPTO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x11) 99 #define MRVL_WILDCARD_SSID_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x12) 100 #define MRVL_TSFTIMESTAMP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x13) 101 #define MRVL_POWER_ADAPT_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x14) 102 #define MRVL_HOSTSLEEP_FILTER_TYPE1_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x15) 103 #define MRVL_BCNHIGHRSSITHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x16) 104 #define MRVL_BCNHIGHSNRTHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x17) 105 #define MRVL_AUTOTX_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x18) 106 #define MRVL_WSC_SELECTED_REGISTRAR_TLV (PROPRIETARY_TLV_BASE_ID + 0x19) 107 #define MRVL_WSC_ENROLLEE_TMO_TLV (PROPRIETARY_TLV_BASE_ID + 0x1a) 108 #define MRVL_WSC_ENROLLEE_PROBE_REQ_TLV (PROPRIETARY_TLV_BASE_ID + 0x1b) 109 #define MRVL_WSC_REGISTRAR_BEACON_TLV (PROPRIETARY_TLV_BASE_ID + 0x1c) 110 #define MRVL_WSC_REGISTRAR_PROBE_RESP_TLV (PROPRIETARY_TLV_BASE_ID + 0x1d) 111 #define MRVL_STARTBGSCANLATER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x1e) 112 #define MRVL_AUTHTYPE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x1f) 113 #define MRVL_STA_MAC_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x20) 114 #define MRVL_CUSTOM_ADHOC_PROBE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x21) 115 #define MRVL_CUSTOM_ADHOC_PYXIS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x22) 116 #define MRVL_CUSTOM_BSSID_LIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x23) 117 #define MRVL_CUSTOM_LINK_INDICATION_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x24) 118 #define MRVL_MESHIE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x25) 119 #define MRVL_DATA_LOWRSSITHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x26) 120 #define MRVL_DATA_LOWSNRTHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x27) 121 #define MRVL_DATA_HIGHRSSITHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x28) 122 #define MRVL_DATA_HIGHSNRTHRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x29) 123 #define MRVL_CHANNELBANDLIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2a) 124 #define MRVL_AP_MAC_ADDRESS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2b) 125 #define MRVL_BEACON_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2c) 126 #define MRVL_DTIM_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2d) 127 #define MRVL_BASIC_RATES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2e) 128 #define MRVL_TX_POWER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x2f) 129 #define MRVL_BCAST_SSID_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x30) 130 #define MRVL_PREAMBLE_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x31) 131 #define MRVL_ANTENNA_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x32) 132 #define MRVL_RTS_THRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x33) 133 #define MRVL_RADIO_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x34) 134 #define MRVL_TX_DATA_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x35) 135 #define MRVL_PKT_FWD_CTL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x36) 136 #define MRVL_STA_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x37) 137 #define MRVL_STA_MAC_ADDR_FILTER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x38) 138 #define MRVL_STA_AGEOUT_TIMER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x39) 139 #define MRVL_SECURITY_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3a) 140 #define MRVL_WEP_KEY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3b) 141 #define MRVL_WPA_PASSPHRASE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3c) 142 #define MRVL_SCAN_TIMING_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3d) 143 #define MRVL_NEIGHBOR_ENTRY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3e) 144 #define MRVL_NEIGHBOR_SCAN_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x3f) 145 #define MRVL_ENCRYPTION_PROTOCOL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x40) 146 #define MRVL_AKMP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x41) 147 #define MRVL_CIPHER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x42) 148 #define MRVL_OFFLOAD_ENABLE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x43) 149 #define MRVL_SUPPLICANT_PMK_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x44) 150 #define MRVL_SUPPLICANT_PASSPHRASE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x45) 151 #define MRVL_FRAG_THRESHOLD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x46) 152 #define MRVL_GRP_REKEY_TIME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x47) 153 #define MRVL_ICV_ERROR_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x48) 154 #define MRVL_PRE_BEACONMISSED_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x49) 155 #define MRVL_OLD_HT_CAPABILITY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4a) 156 #define MRVL_OLD_HT_INFORMATION_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4b) 157 #define MRVL_OLD_SECONDARY_CHAN_OFFSET_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4c) 158 #define MRVL_OLD_2040_BSS_COEX_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4d) 159 #define MRVL_OLD_OVERLAP_BSS_SCAN_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4e) 160 #define MRVL_OLD_EXTENDED_CAP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x4f) 161 #define MRVL_HT_OPERATIONAL_MCSSET_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x50) 162 #define MRVL_RATEDROPPATTERN_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x51) 163 #define MRVL_RATEDROPCONTROL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x52) 164 #define MRVL_RATESCOPE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x53) 165 #define MRVL_TYPES_POWER_GROUP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x54) 166 #define MRVL_MAX_STA_CNT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x55) 167 #define MRVL_BSS_SCAN_RSP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x56) 168 #define MRVL_BSS_SCAN_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x57) 169 #define MRVL_CHANRPT_BCN_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x58) 170 #define MRVL_CHANRPT_CHAN_LOAD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x59) 171 #define MRVL_CHANRPT_NOISE_HIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5a) 172 #define MRVL_CHANRPT_11H_BASIC_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5b) 173 #define MRVL_CHANRPT_FRAME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5c) 174 #define MRVL_RETRY_LIMIT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5d) 175 #define MRVL_WAPI_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5e) 176 #define MRVL_ASSOC_REASON_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x5f) 177 #define MRVL_ROBUST_COEX_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x60) 178 #define MRVL_ROBUST_COEX_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x61) 179 #define MRVL_MCBC_DATA_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x62) 180 #define MRVL_MEASUREMENT_TIMING_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x63) 181 #define MRVL_RSN_REPLAY_PROT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x64) 182 #define MRVL_WAPI_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x67) 183 #define MRVL_MGMT_FRAME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x68) 184 #define MRVL_MGMT_IE_LIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x69) 185 #define MRVL_AP_SLEEP_PARAM_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6a) 186 #define MRVL_AP_INACT_SLEEP_PARAM_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6b) 187 #define MRVL_AP_BT_COEX_COMMON_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6c) 188 #define MRVL_AP_BT_COEX_SCO_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6d) 189 #define MRVL_AP_BT_COEX_ACL_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6e) 190 #define MRVL_AP_BT_COEX_STATS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x6f) 191 #define MRVL_MGMT_PASSTHRU_MASK_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x70) 192 #define MRVL_AUTO_DEEP_SLEEP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x71) 193 #define MRVL_ENHANCED_STA_POWER_SAVE_MODE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x72) 194 #define MRVL_HOSTWAKE_STADB_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x73) 195 #define MRVL_HOSTWAKE_OUI_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x74) 196 #define MRVL_EAPOL_PWK_HSK_TIMEOUT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x75) 197 #define MRVL_EAPOL_PWK_HSK_RETRIES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x76) 198 #define MRVL_EAPOL_GWK_HSK_TIMEOUT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x77) 199 #define MRVL_EAPOL_GWK_HSK_RETRIES_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x78) 200 201 #define MRVL_OPCHAN_CONTROL_DESC_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x79) 202 #define MRVL_OPCHAN_CHANGRP_CTRL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7a) 203 #define MRVL_PS_STA_AGEOUT_TIMER_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7b) 204 205 #define MRVL_WFD_DISC_PERIOD_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7c) 206 #define MRVL_WFD_SCAN_ENABLE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7d) 207 #define MRVL_WFD_SCAN_PEER_DEVICE_ID_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7e) 208 #define MRVL_WFD_REQ_DEVICE_TYPE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x7f) 209 #define MRVL_WFD_DEVICE_STATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x80) 210 #define MRVL_WFD_INTENT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x81) 211 #define MRVL_WFD_CAPABILITY_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x82) 212 #define MRVL_WFD_NOA_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x83) 213 #define MRVL_WFD_OPP_PS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x84) 214 #define MRVL_WFD_INVITATION_LIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x85) 215 #define MRVL_WFD_LISTEN_CHANNEL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x86) 216 #define MRVL_WFD_OPERATING_CHANNEL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x87) 217 #define MRVL_WFD_PERSISTENT_GROUP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x88) 218 #define MRVL_CHANNEL_TRPC_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x89) 219 220 #define MRVL_IEEE_ACTION_FRAME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x8c) 221 #define MRVL_WIFI_DIRECT_PRESENCE_REQ_PARAMS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x8d) 222 #define MRVL_WIFI_DIRECT_EXTENDED_LISTEN_TIME_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x8e) 223 #define MRVL_WIFI_DIRECT_PROVISIONING_PARAMS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x8f) 224 #define MRVL_WIFI_DIRECT_WPS_PARAMS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x90) 225 #define MRVL_WIFI_DIRECT_ACTION_FRAME_SEND_TIMEOUT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb3) 226 227 #define MRVL_CIPHER_PWK_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x91) 228 #define MRVL_CIPHER_GWK_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x92) 229 #define MRVL_AP_BSS_STATUS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x93) 230 #define MRVL_TX_DATA_PAUSE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x94) 231 #define MRVL_STICKY_TIM_CONFIG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x96) 232 #define MRVL_STICKY_TIM_STA_MAC_ADDR_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x97) 233 #define MRVL_2040_BSS_COEX_CONTROL_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x98) 234 #define MRVL_KEYPARAMSET_V2_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x9c) 235 #define MRVL_RXBA_SYNC_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x99) 236 #define MRVL_PKT_COALESCE_RULE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x9a) 237 #define MRVL_NETWORK_LIST_CFG_TLV (PROPRIETARY_TLV_BASE_ID + 0X9b) 238 #define MRVL_MEF_CFG_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0x9d) 239 240 #define MRVL_WFD_SCAN_CFG_TLV (PROPRIETARY_TLV_BASE_ID + 158) 241 #define MRVL_WFD_SENDTIMEOUT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 159) 242 #define MRVL_WFD_GROUPID_TLV_ID (PROPRIETARY_TLV_BASE_ID + 160) 243 #define MRVL_WFD_DEVICE_ID_TLV_ID (PROPRIETARY_TLV_BASE_ID + 161) 244 #define MRVL_WFD_INTENDEDINTF_ADDR_TLV_ID (PROPRIETARY_TLV_BASE_ID + 162) 245 #define MRVL_WFD_STATUS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 163) 246 #define MRVL_WFD_DEVICE_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 164) 247 #define MRVL_WFD_CFG_TIMEOUT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 165) 248 #define MRVL_WFD_INVITATION_TLV_ID (PROPRIETARY_TLV_BASE_ID + 166) 249 #define MRVL_WFD_GROUP_BSSID_TLV_ID (PROPRIETARY_TLV_BASE_ID + 167) 250 #define MRVL_WFD_WPA_PSK_TLV_ID (PROPRIETARY_TLV_BASE_ID + 168) 251 #define MRVL_MAX_MGMT_IE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 170) 252 #define MRVL_REGION_DOMAIN_CODE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 171) 253 #define MRVL_AOIP_IBSS_MODE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 172) 254 #define MRVL_AOIP_MANAGE_PEERS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 173) 255 #define MRVL_AOIP_STA_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 174) 256 #define MRVL_AOIP_REMOTE_ADDR_MODE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 175) 257 #define MRVL_BGSCAN_REPEAT_CNT_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb0) 258 259 #define MRVL_TLV_USB_AGGR_PARAM (PROPRIETARY_TLV_BASE_ID + 177) 260 261 #define MRVL_PS_PARAMS_IN_HS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb5) 262 #define MRVL_HS_WAKE_HOLDOFF_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb6) 263 264 #define MRVL_MULTI_CHAN_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb7) 265 #define MRVL_MULTI_CHAN_GROUP_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb8) 266 #define MRVL_RESTRICT_CLIENT_MODE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xc1) 267 268 #define MRVL_WFD_SERVICE_HASH_TLV_ID (PROPRIETARY_TLV_BASE_ID + 195) 269 #define MRVL_WFD_SERVICES_LIST_TLV_ID (PROPRIETARY_TLV_BASE_ID + 196) 270 #define MRVL_API_VER_INFO_TLV_ID (PROPRIETARY_TLV_BASE_ID + 199) 271 272 #define MRVL_FLOOR_RATE_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xb9) 273 #define MRVL_SCAN_CHAN_GAP_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xC5) 274 #define MRVL_CHAN_STATS_TLV_ID (PROPRIETARY_TLV_BASE_ID + 0xC6) 275 276 /* This struct is used in ROM and should not be changed at all */ 277 typedef MLAN_PACK_START struct { 278 UINT16 Type; 279 UINT16 Length; 280 } MLAN_PACK_END MrvlIEParamSet_t; 281 282 typedef MLAN_PACK_START struct { 283 MrvlIEParamSet_t IEParam; 284 UINT8 Value[1]; 285 } MLAN_PACK_END MrvlIEGeneric_t; 286 287 /* MultiChannel TLV*/ 288 typedef MLAN_PACK_START struct { 289 MrvlIEParamSet_t IEParam; 290 UINT16 Status; // 1 = Active, 0 = Inactive 291 UINT8 TlvBuffer[1]; 292 } MLAN_PACK_END MrvlIEMultiChanInfo_t; 293 294 typedef MLAN_PACK_START struct { 295 MrvlIEParamSet_t IEParam; 296 UINT8 ChanGroupId; 297 UINT8 ChanBufWt; 298 ChanBandInfo_t ChanBandInfo; 299 UINT32 ChanTime; 300 UINT32 Reserved; 301 UINT8 HidPortNum; 302 UINT8 NumIntf; 303 UINT8 BssTypeNumList[1]; 304 } MLAN_PACK_END MrvlIEMultiChanGroupInfo_t; 305 306 /* Key Material TLV */ 307 typedef MLAN_PACK_START struct MrvlIEKeyParamSet_t { 308 MrvlIEParamSet_t hdr; 309 UINT16 keyMgtId; 310 } MLAN_PACK_END MrvlIEKeyParamSet_t; 311 312 #ifdef KEY_MATERIAL_V2 313 314 typedef MLAN_PACK_START struct wep_key_t { 315 UINT16 len; 316 UINT8 key[1]; 317 } MLAN_PACK_END wep_key_t; 318 319 typedef MLAN_PACK_START struct wpax_key_t { 320 UINT8 pn[8]; 321 UINT16 len; 322 UINT8 key[1]; 323 } MLAN_PACK_END wpax_key_t; 324 325 typedef MLAN_PACK_START struct wapi_key_t { 326 UINT8 pn[16]; 327 UINT16 len; 328 UINT8 key[16]; 329 UINT8 micKey[16]; 330 } MLAN_PACK_END wapi_key_t; 331 332 typedef MLAN_PACK_START struct MrvlIEKeyParamSet_v2_t { 333 MrvlIEParamSet_t hdr; 334 IEEEtypes_MacAddr_t macAddr; 335 UINT8 keyIdx; 336 UINT8 keyType; 337 UINT16 keyInfo; 338 339 MLAN_PACK_START union { 340 wep_key_t wep; 341 wpax_key_t wpax; 342 wapi_key_t wapi; 343 } MLAN_PACK_END keySet; 344 345 } MLAN_PACK_END MrvlIEKeyParamSet_v2_t; 346 #endif 347 348 /* Marvell Power Constraint TLV */ 349 typedef MLAN_PACK_START struct MrvlIEPowerConstraint_t { 350 MrvlIEParamSet_t IEParam; 351 UINT8 channel; 352 UINT8 dBm; 353 } MLAN_PACK_END MrvlIEPowerConstraint_t; 354 355 /* Marvell WSC Selected Registar TLV */ 356 typedef MLAN_PACK_START struct MrvlIEWSCSelectedRegistrar_t { 357 MrvlIEParamSet_t IEParam; 358 UINT16 devPwdID; 359 } MLAN_PACK_END MrvlIEWSCSelectedRegistrar_t; 360 361 /* Marvell WSC Enrollee TMO TLV */ 362 typedef MLAN_PACK_START struct MrvlIEWSCEnrolleeTmo_t { 363 MrvlIEParamSet_t IEParam; 364 UINT16 tmo; 365 } MLAN_PACK_END MrvlIEWSCEnrolleeTmo_t; 366 367 /**************** 368 * AES CRYPTION FEATURE 369 * 370 * DEFINE STARTS -------------- 371 */ 372 typedef MLAN_PACK_START struct MrvlIEAesCrypt_t { 373 MrvlIEParamSet_t hdr; 374 UINT8 payload[40]; 375 } MLAN_PACK_END MrvlIEAesCrypt_t; 376 377 /* DEFINE ENDS ---------------- 378 */ 379 380 /* Marvell Power Capability TLV */ 381 typedef MLAN_PACK_START struct MrvlIEPowerCapability_t { 382 MrvlIEParamSet_t IEParam; 383 UINT8 minPwr; 384 UINT8 maxPwr; 385 } MLAN_PACK_END MrvlIEPowerCapability_t; 386 387 /* Marvell TLV for OMNI Serial Number and Hw Revision Information. */ 388 typedef MLAN_PACK_START struct MrvlIE_OMNI_t { 389 MrvlIEParamSet_t IEParam; 390 UINT8 SerialNumber[16]; 391 UINT8 HWRev; 392 UINT8 Reserved[3]; 393 } MLAN_PACK_END MrvlIE_OMNI_t; 394 395 /* Marvell LED Behavior TLV */ 396 typedef MLAN_PACK_START struct MrvlIELedBehavior_t { 397 MrvlIEParamSet_t IEParam; 398 UINT8 FirmwareState; 399 UINT8 LedNumber; 400 UINT8 LedState; 401 UINT8 LedArgs; 402 } MLAN_PACK_END MrvlIELedBehavior_t; 403 404 /* Marvell LED GPIO Mapping TLV */ 405 typedef MLAN_PACK_START struct MrvlIELedGpio_t { 406 MrvlIEParamSet_t IEParam; 407 UINT8 LEDNumber; 408 UINT8 GPIONumber; 409 } MLAN_PACK_END MrvlIELedGpio_t; 410 411 typedef MLAN_PACK_START struct { 412 MrvlIEParamSet_t IEParam; 413 /* 414 ** Set a place holder for the TSF values. Sized to max BSS for message 415 ** allocation. The TLV will return a variable number of TSF values. 416 */ 417 UINT64 TSFValue[IEEEtypes_MAX_BSS_DESCRIPTS]; 418 } MLAN_PACK_END MrvlIETsfArray_t; 419 420 typedef MLAN_PACK_START struct { 421 MrvlIEParamSet_t IEParam; 422 UINT8 maxLen; 423 IEEEtypes_SsId_t ssid; 424 } MLAN_PACK_END MrvlIEWildcardSsid_t; 425 426 typedef MLAN_PACK_START struct { 427 MrvlIEParamSet_t IEParam; 428 UINT8 snrThreshold; 429 UINT8 reportFrequency; 430 } MLAN_PACK_END MrvlIELowSnrThreshold_t; 431 432 typedef MLAN_PACK_START struct { 433 MrvlIEParamSet_t IEParam; 434 UINT8 rssiThreshold; 435 UINT8 reportFrequency; 436 } MLAN_PACK_END MrvlIELowRssiThreshold_t; 437 438 /* Marvell AutoTx TLV */ 439 #define MAX_KEEPALIVE_PKT_LEN (0x60) 440 typedef MLAN_PACK_START struct { 441 MrvlIEParamSet_t IEParam; 442 UINT16 Interval; /* in seconds */ 443 UINT8 Priority; 444 UINT8 Reserved; 445 UINT16 EtherFrmLen; 446 UINT8 DestAddr[6]; 447 UINT8 SrcAddr[6]; 448 UINT8 EtherFrmBody[MAX_KEEPALIVE_PKT_LEN]; //Last 4 bytes are 32bit FCS 449 } MLAN_PACK_END MrvlIEAutoTx_t; 450 451 typedef MLAN_PACK_START struct { 452 MrvlIEParamSet_t IEParam; 453 IEEEtypes_DFS_Map_t map; 454 } MLAN_PACK_END MrvlIEChanRpt11hBasic_t; 455 456 typedef MLAN_PACK_START struct { 457 MrvlIEParamSet_t IEParam; 458 UINT8 scanReqId; 459 } MLAN_PACK_END MrvlIEChanRptBeacon_t; 460 461 typedef MLAN_PACK_START struct { 462 MrvlIEParamSet_t IEParam; 463 UINT8 ccaBusyFraction; 464 } MLAN_PACK_END MrvlIEChanRptChanLoad_t; 465 466 typedef MLAN_PACK_START struct { 467 MrvlIEParamSet_t IEParam; 468 SINT16 anpi; 469 UINT8 rpiDensities[11]; 470 } MLAN_PACK_END MrvlIEChanRptNoiseHist_t; 471 472 typedef MLAN_PACK_START struct { 473 MrvlIEParamSet_t IEParam; 474 IEEEtypes_MacAddr_t sourceAddr; 475 IEEEtypes_MacAddr_t bssid; 476 SINT16 rssi; 477 UINT16 frameCnt; 478 } MLAN_PACK_END MrvlIEChanRptFrame_t; 479 480 typedef MLAN_PACK_START struct { 481 MrvlIEParamSet_t IEParam; 482 SINT16 rssi; 483 SINT16 anpi; 484 UINT8 ccaBusyFraction; 485 #ifdef SCAN_REPORT_THROUGH_EVENT 486 BandConfig_t band; 487 UINT8 channel; 488 UINT8 reserved; 489 UINT64 tsf; 490 #endif 491 } MLAN_PACK_END MrvlIEBssScanStats_t; 492 493 typedef MLAN_PACK_START struct { 494 /** Header */ 495 MrvlIEParamSet_t IEParam; 496 UINT32 mode; 497 UINT32 maxOff; 498 UINT32 maxOn; 499 } MLAN_PACK_END MrvlIETypes_MeasurementTiming_t; 500 501 typedef MLAN_PACK_START struct { 502 /** Header */ 503 MrvlIEParamSet_t IEParam; 504 UINT32 mode; 505 UINT32 dwell; 506 UINT32 maxOff; 507 UINT32 minLink; 508 UINT32 rspTimeout; 509 } MLAN_PACK_END MrvlIETypes_ConfigScanTiming_t; 510 511 typedef MLAN_PACK_START struct { 512 MrvlIEParamSet_t IEParam; 513 UINT8 KeyIndex; 514 UINT8 IsDefaultIndex; 515 UINT8 Value[1]; 516 } MLAN_PACK_END MrvlIETypes_WepKey_t; 517 518 typedef MLAN_PACK_START struct { 519 MrvlIEParamSet_t IEParam; 520 UINT8 PMK[32]; 521 } MLAN_PACK_END MrvlIETypes_PMK_t; 522 523 typedef MLAN_PACK_START struct { 524 MrvlIEParamSet_t IEParam; 525 UINT8 ssid[1]; 526 } MLAN_PACK_END MrvlIETypes_Ssid_Param_t; 527 528 typedef MLAN_PACK_START struct { 529 MrvlIEParamSet_t IEParam; 530 UINT8 Passphrase[64]; 531 } MLAN_PACK_END MrvlIETypes_Passphrase_t; 532 533 typedef MLAN_PACK_START struct { 534 MrvlIEParamSet_t IEParam; 535 UINT8 BSSID[6]; 536 } MLAN_PACK_END MrvlIETypes_BSSID_t; 537 538 typedef MLAN_PACK_START struct { 539 UINT16 Type; 540 UINT16 Length; 541 IEEEtypes_MacAddr_t Bssid; 542 UINT16 Rsvd; 543 SINT16 Rssi; //Signal strength 544 UINT16 Age; 545 UINT32 QualifiedNeighborBitmap; 546 UINT32 BlackListDuration; 547 } MLAN_PACK_END MrvlIETypes_NeighbourEntry_t; 548 549 typedef MLAN_PACK_START struct { 550 MrvlIEParamSet_t IEParam; 551 UINT16 SearchMode; 552 UINT16 State; 553 UINT32 ScanPeriod; 554 } MLAN_PACK_END MrvlIETypes_NeighbourScanPeriod_t; 555 556 typedef MLAN_PACK_START struct { 557 MrvlIEParamSet_t IEParam; 558 UINT8 Rssi; 559 UINT8 Frequency; 560 } MLAN_PACK_END MrvlIETypes_BeaconHighRssiThreshold_t; 561 562 typedef MLAN_PACK_START struct { 563 MrvlIEParamSet_t IEParam; 564 UINT8 Rssi; 565 UINT8 Frequency; 566 } MLAN_PACK_END MrvlIETypes_BeaconLowRssiThreshold_t; 567 568 typedef MLAN_PACK_START struct { 569 MrvlIEParamSet_t IEParam; 570 UINT8 Value; 571 UINT8 Frequency; 572 } MLAN_PACK_END MrvlIETypes_RoamingAgent_Threshold_t; 573 574 typedef MLAN_PACK_START struct { 575 MrvlIEParamSet_t IEParam; 576 UINT8 AssocReason; 577 } MLAN_PACK_END MrvlIETypes_AssocReason_t; 578 579 typedef MLAN_PACK_START struct { 580 MrvlIEParamSet_t IEParam; 581 IEEEtypes_MacAddr_t macAddr; 582 UINT8 txPauseState; 583 UINT8 totalQueued; 584 } MLAN_PACK_END MrvlIETypes_TxDataPause_t; 585 586 typedef MLAN_PACK_START struct { 587 UINT16 startFreq; 588 UINT8 chanWidth; 589 UINT8 chanNum; 590 } MLAN_PACK_END MrvlIEChannelDesc_t; 591 592 typedef MLAN_PACK_START struct { 593 MrvlIEParamSet_t IEParam; 594 MrvlIEChannelDesc_t chanDesc; 595 UINT16 controlFlags; 596 UINT16 reserved; 597 UINT8 activePower; 598 UINT8 mdMinPower; 599 UINT8 mdMaxPower; 600 UINT8 mdPower; 601 } MLAN_PACK_END MrvlIETypes_OpChanControlDesc_t; 602 603 typedef MLAN_PACK_START struct { 604 MrvlIEParamSet_t IEParam; 605 UINT32 chanGroupBitmap; 606 ChanScanMode_t scanMode; 607 UINT8 numChan; 608 MrvlIEChannelDesc_t chanDesc[50]; 609 } MLAN_PACK_END MrvlIETypes_ChanGroupControl_t; 610 611 typedef MLAN_PACK_START struct { 612 MrvlIEParamSet_t IEParam; 613 ChanBandInfo_t ChanBandInfo[IEEEtypes_MAX_BSS_DESCRIPTS]; 614 } MLAN_PACK_END MrvlIEChanBandList_t; 615 #if 0 616 typedef MLAN_PACK_START struct { 617 MrvlIEParamSet_t IEParam; 618 IEEEtypes_MacAddr_t srcAddr; 619 IEEEtypes_MacAddr_t dstAddr; 620 IEEEtypes_ActionFrame_t actionFrame; 621 } MLAN_PACK_END MrvlIEActionFrame_t; 622 #endif 623 typedef MLAN_PACK_START struct { 624 MrvlIEParamSet_t IEParam; 625 HtEntry_t htEntry[IEEEtypes_MAX_BSS_DESCRIPTS]; 626 } MLAN_PACK_END MrvlIEHtList_t; 627 628 /* This struct is used in ROM code and all the fields of 629 ** this should be kept intact 630 */ 631 typedef MLAN_PACK_START struct { 632 MrvlIEParamSet_t IEParam; 633 UINT16 bmpRateOfHRDSSS; 634 UINT16 bmpRateOfOFDM; 635 UINT32 bmpRateOfHT_DW0; 636 UINT32 bmpRateOfHT_DW1; 637 UINT32 bmpRateOfHT_DW2; 638 UINT32 bmpRateOfHT_DW3; 639 #ifdef DOT11AC 640 UINT16 bmpRateOfVHT[8]; //per SS 641 #endif 642 } MLAN_PACK_END MrvlIE_TxRateScope_t; 643 644 typedef MLAN_PACK_START struct { 645 UINT8 mod_class; 646 UINT8 rate; 647 UINT8 attemptLimit; 648 UINT8 reserved; 649 } MLAN_PACK_END MrvlIE_RateInfoEntry_t; 650 651 typedef MLAN_PACK_START struct { 652 MrvlIEParamSet_t IEParam; 653 MrvlIE_RateInfoEntry_t rate_info[8]; 654 } MLAN_PACK_END MrvlIE_RateDropTable_t; 655 656 typedef MLAN_PACK_START struct { 657 MrvlIEParamSet_t IEParam; 658 UINT32 mode; 659 // for 1x1 11n, 9 HT rate, 8 OFDM rate, 4 DSSS rate 660 MrvlIE_RateDropTable_t rateDropTbls[9 + 8 + 4]; 661 } MLAN_PACK_END MrvlIE_RateDropPattern_t; 662 663 #ifdef USB_FRAME_AGGR 664 665 #define USB_TX_AGGR_ENABLE ( 1 << 1 ) 666 #define USB_RX_AGGR_ENABLE ( 1 << 0 ) 667 668 #define USB_RX_AGGR_MODE_MASK ( 1 << 0 ) 669 #define USB_RX_AGGR_MODE_SIZE (1) 670 #define USB_RX_AGGR_MODE_NUM (0) 671 672 typedef MLAN_PACK_START struct { 673 MrvlIEParamSet_t IEParam; 674 UINT16 enable; 675 UINT16 rx_mode; 676 UINT16 rx_align; 677 UINT16 rx_max; 678 UINT16 rx_timeout; 679 UINT16 tx_mode; 680 UINT16 tx_align; 681 } MLAN_PACK_END MrvlIE_USBAggrTLV_t; 682 683 extern MrvlIE_USBAggrTLV_t g_Aggr_Conf; 684 685 #endif 686 687 typedef MLAN_PACK_START struct { 688 UINT8 mod_class; 689 UINT8 firstRateCode; 690 UINT8 lastRateCode; 691 SINT8 power_step; 692 SINT8 min_power; 693 SINT8 max_power; 694 UINT8 ht_bandwidth; 695 UINT8 reserved[1]; 696 } MLAN_PACK_END MrvlIE_PowerGroupEntry_t; 697 698 #define MRVL_MAX_PWR_GROUP 15 699 typedef MLAN_PACK_START struct { 700 MrvlIEParamSet_t IEParam; 701 MrvlIE_PowerGroupEntry_t PowerGroup[MRVL_MAX_PWR_GROUP]; 702 } MLAN_PACK_END MrvlIE_PowerGroup_t; 703 704 #ifdef AP_STA_PS 705 typedef MLAN_PACK_START struct { 706 MrvlIEParamSet_t IEParam; 707 UINT16 NullPktInterval; 708 UINT16 numDtims; 709 UINT16 BCNMissTimeOut; 710 UINT16 LocalListenInterval; 711 UINT16 AdhocAwakePeriod; 712 UINT16 PS_mode; 713 UINT16 DelayToPS; 714 } MrvlIETypes_StaSleepParams_t; 715 716 typedef MLAN_PACK_START struct { 717 MrvlIEParamSet_t IEParam; 718 UINT16 idleTime; 719 } MrvlIETypes_AutoDeepSleepParams_t; 720 #endif 721 722 #ifdef MESH 723 typedef MLAN_PACK_START struct _MrvlMeshIE_Tlv_t { 724 MrvlIEParamSet_t hdr; 725 IEEEtypes_VendorSpecific_MeshIE_t meshIE; 726 727 } MLAN_PACK_END MrvlMeshIE_Tlv_t; 728 #endif 729 730 typedef MLAN_PACK_START struct { 731 MrvlIEParamSet_t IEParam; 732 UINT8 RBCMode; 733 UINT8 Reserved[3]; 734 } MLAN_PACK_END MrvlIERobustCoex_t; 735 736 typedef MLAN_PACK_START struct { 737 MrvlIEParamSet_t IEParam; 738 UINT16 Mode; 739 UINT16 Reserved; 740 UINT32 BTTime; 741 UINT32 Period; 742 } MLAN_PACK_END MrvlIERobustCoexPeriod_t; 743 744 typedef MLAN_PACK_START struct { 745 MrvlIEParamSet_t IEParam; 746 UINT8 staMacAddr[IEEEtypes_ADDRESS_SIZE]; 747 IEEEtypes_IE_Param_t IeBuf; 748 } MLAN_PACK_END MrvlIEHostWakeStaDBCfg; 749 750 typedef MLAN_PACK_START struct { 751 MrvlIEParamSet_t IEParam; 752 UINT16 ouiCmpLen; 753 UINT8 ouiBuf[6]; 754 } MLAN_PACK_END MrvlIEHostWakeOuiCfg; 755 756 #ifdef MICRO_AP_MODE 757 /* This struct is used in ROM and should not be changed at all */ 758 typedef MLAN_PACK_START struct { 759 MrvlIEParamSet_t hdr; 760 IEEEtypes_MacAddr_t macAddr; 761 UINT8 pwrMode; 762 SINT8 rssi; 763 } MLAN_PACK_END MrvlIEStaInfo_t; 764 #endif 765 766 typedef struct { 767 MrvlIEParamSet_t Hdr; 768 uint16 protocol; 769 uint8 cipher; 770 uint8 reserved; 771 } MrvlIETypes_PwkCipher_t; 772 773 typedef struct { 774 MrvlIEParamSet_t Hdr; 775 uint8 cipher; 776 uint8 reserved; 777 } MrvlIETypes_GwkCipher_t; 778 779 typedef MLAN_PACK_START struct { 780 uint8 modGroup; 781 uint8 txPower; 782 } MLAN_PACK_END MrvlIE_ChanTrpcEntry_t; 783 784 typedef MLAN_PACK_START struct { 785 MrvlIEParamSet_t Hdr; 786 MrvlIEChannelDesc_t chanDesc; 787 MrvlIE_ChanTrpcEntry_t data[1]; 788 } MLAN_PACK_END MrvlIETypes_ChanTrpcCfg_t; 789 790 typedef MLAN_PACK_START struct { 791 MrvlIEParamSet_t IEParam; 792 IEEEtypes_MacAddr_t mac[IEEEtypes_MAX_BSS_DESCRIPTS]; 793 } MLAN_PACK_END MrvlIETypes_MacAddr_t; 794 795 #ifdef AP_BTCOEX 796 typedef enum _tagScoCoexBtTraffic { 797 ONLY_SCO, 798 ACL_BEFORE_SCO, 799 ACL_AFTER_SCO, 800 BT_TRAFFIC_RESERVED, 801 BT_TRAFFIC_MAX 802 } ScoCoexBtTraffic_e; 803 804 typedef MLAN_PACK_START struct { 805 MrvlIEParamSet_t IEParam; 806 UINT32 configBitmap; /* Bit 0 : overrideCts2SelfProtection 807 ** Bit 1-31 : Reserved 808 */ 809 UINT32 apStaBtCoexEnabled; 810 UINT32 reserved[3]; /* For future use. */ 811 } MLAN_PACK_END MrvlIETypes_ApBTCoexCommonConfig_t; 812 813 typedef MLAN_PACK_START struct { 814 MrvlIEParamSet_t IEParam; 815 UINT16 protectionFrmQTime[BT_TRAFFIC_MAX]; /* Index 0 for ONLY_SCO 816 ** 1 for ACL_BEFORE_SCO 817 ** 2 for ACL_AFTER_SCO 818 ** 3 is Reserved 819 */ 820 UINT16 protectionFrmRate; 821 UINT16 aclFrequency; 822 UINT32 reserved[4]; /* For future use. */ 823 } MLAN_PACK_END MrvlIETypes_ApBTCoexScoConfig_t; 824 825 typedef MLAN_PACK_START struct { 826 MrvlIEParamSet_t IEParam; 827 UINT16 enabled; 828 UINT16 btTime; 829 UINT16 wlanTime; 830 UINT16 protectionFrmRate; 831 UINT32 reserved[4]; /* For future use. */ 832 } MLAN_PACK_END MrvlIETypes_ApBTCoexAclConfig_t; 833 834 typedef MLAN_PACK_START struct { 835 MrvlIEParamSet_t IEParam; 836 UINT32 nullNotSent; 837 UINT32 numOfNullQueued; 838 UINT32 nullNotQueued; 839 UINT32 numOfCfEndQueued; 840 UINT32 cfEndNotQueued; 841 UINT32 nullAllocationFail; 842 UINT32 cfEndAllocationFail; 843 UINT32 reserved[8]; /* For future use. */ 844 } MLAN_PACK_END MrvlIETypes_ApBTCoexStats_t; 845 #endif //AP_BTCOEX 846 847 typedef MLAN_PACK_START struct { 848 MrvlIEParamSet_t Hdr; 849 850 IEEEtypes_MacAddr_t macAddr; 851 UINT8 tid; 852 UINT8 reserved; 853 UINT16 startSeqNum; 854 855 UINT16 bitMapLen; 856 UINT8 bitMap[1]; 857 } MLAN_PACK_END MrvlIETypes_RxBaSync_t; 858 859 #ifdef SCAN_CHAN_STATISTICS 860 typedef MLAN_PACK_START struct MrvlIEChannelStats { 861 MrvlIEParamSet_t IEParam; 862 UINT8 chanStat[1]; 863 } MLAN_PACK_END MrvlIEChannelStats_t; 864 #endif 865 866 /* API Version Info Entry for MRVL_API_VER_INFO_TLV_ID */ 867 typedef MLAN_PACK_START struct MrvlIE_ApiVersionEntry_t { 868 UINT16 apiId; 869 UINT8 major; 870 UINT8 minor; 871 } MLAN_PACK_END MrvlIE_ApiVersionEntry_t; 872 873 /** API Version Ids */ 874 #define KEY_API_VER_ID 0x1 875 #endif //_TLV_H_ 876