日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SDIO wifi Marvell8801/Marvell88w8801 介绍(五) ---- Marvell8801/Marvell88w8801 TLV

發布時間:2024/3/7 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SDIO wifi Marvell8801/Marvell88w8801 介绍(五) ---- Marvell8801/Marvell88w8801 TLV 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

代碼工程的GITHUB連接:點進進入GITHUB倉庫
https://github.com/sj15712795029/stm32f1_marvell88w8801_marvell8801_wifi

Marvell自己實現驅動系列文章分為幾篇介紹:
SDIO wifi Marvell8801/Marvell88w8801 介紹(一) ---- 芯片介紹
SDIO wifi Marvell8801/Marvell88w8801 介紹(二) ---- SDIO協議介紹
SDIO wifi Marvell8801/Marvell88w8801 介紹(三) ---- 寄存器介紹
SDIO wifi Marvell8801/Marvell88w8801 介紹(四) ---- 命令/事件/數據格式
SDIO wifi Marvell8801/Marvell88w8801 介紹(五) ---- TLV
SDIO wifi Marvell8801/Marvell88w8801 介紹(六) ---- 實現初始化功能
SDIO wifi Marvell8801/Marvell88w8801 介紹(七) ---- 實現搜索功能
SDIO wifi Marvell8801/Marvell88w8801 介紹(八) ---- 實現STA功能
SDIO wifi Marvell8801/Marvell88w8801 介紹(九) ---- 實現AP功能
SDIO wifi Marvell8801/Marvell88w8801 介紹(十) ---- 移植TCP/IP協議棧LWIP
SDIO wifi Marvell8801/Marvell88w8801 介紹(十一) ---- 自己編寫LWIP沒有的DHCP server
SDIO wifi Marvell8801/Marvell88w8801 介紹(十二) ---- MQTT介紹
SDIO wifi Marvell8801/Marvell88w8801 介紹(十三) ---- 百度云操作說明
SDIO wifi Marvell8801/Marvell88w8801 介紹(十四) ---- 上位機STA操作/代碼
SDIO wifi Marvell8801/Marvell88w8801 介紹(十五) ---- 上位機AP操作/代碼
SDIO wifi Marvell8801/Marvell88w8801 介紹(十六) ---- 上位機UDP操作/代碼
SDIO wifi Marvell8801/Marvell88w8801 介紹(十七) ---- 上位機TCP操作/代碼
SDIO wifi Marvell8801/Marvell88w8801 介紹(十八) ---- 上位機PING操作/代碼
SDIO wifi Marvell8801/Marvell88w8801 介紹(十九) ---- 上位機云服務器(百度云)操作/代碼

每篇更新打開專欄可以看到:打開Marvell8801/Marvell8801 專欄

1. TLV介紹

TLV在上面也有提到一下,T(type)L(length)V(value)
一般用在command/event某一個filed中
TLV分為兩種格式,一種是IEEE IE type,是標準的TLV,一種是MrvllEType,是Marvell自定義的,主要差異在于格式上

IEEE和Marvell的差異在于type和len占用size的差異,IEEE type和lenght分別都是占用1個byte,而Marvell占用2個byte,但是Marvell為了兼容IEEE,所以把IEEE的TLV轉換成Marvell的,下面我們開始列出所有的type:

以下是Marvell自定義的TLV



以下是AP的TLV


每一個的格式,就不列出了,后面可以自己看下fireware文檔,文檔在…\3-Marvell88w8801資料文件夾中,名字是:Marvell_Firmware_V14.pdf。或者直接看code的定義,也就是value的具體定義,沒有難度
最后列下上面可能用到的縮寫和術語



最后貼下TLV的代碼定義以及某些TLV中bit的定義:

/** TLV type ID definition */ #define PROPRIETARY_TLV_BASE_ID 0x0100/** 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 /** TLV type : TLV_TYPE_RSN_PARAMSET*/ #define TLV_TYPE_RSN_PARAMSET 0x0030 /** TLV type : Vendor Specific IE */ #define TLV_TYPE_VENDOR_SPECIFIC_IE 0xdd/** 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 : Passphrase */ #define TLV_TYPE_PASSPHRASE (PROPRIETARY_TLV_BASE_ID + 0x3c) // 0x013c/** 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: 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 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 type : RXBA_SYNC */ #define TLV_TYPE_RXBA_SYNC (PROPRIETARY_TLV_BASE_ID + 0x99) // 0x0199 /** 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 /** 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 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 ID : Management Frame */ #define TLV_TYPE_UAP_MGMT_FRAME (PROPRIETARY_TLV_BASE_ID + 0x68) // 0x0168 /**TLV type: AP mgmt IE passthru mask */ #define TLV_TYPE_UAP_MGMT_IE_PASSTHRU_MASK (PROPRIETARY_TLV_BASE_ID + 0x70) // 0x0170 /** TLV : 20/40 coex config */ #define TLV_TYPE_2040_BSS_COEX_CONTROL (PROPRIETARY_TLV_BASE_ID + 0x98) // 0x0198 /**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/** 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 #define BAND_B (1U << 0) #define BAND_G (1U << 1) #define BAND_A (1U << 2) #define BAND_GN (1U << 3) #define BAND_AN (1U << 4) /** Position of INITIATOR in DelBA Param set */ #define DELBA_INITIATOR_POS 11 /** 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) /** 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 /** Max Rx AMPDU Size */ #define MAX_RX_AMPDU_SIZE_64K 0x03 /** Non green field station */ #define NON_GREENFIELD_STAS 0x04/** Greenfield support */ #define HWSPEC_GREENFIELD_SUPP MBIT(29) /** 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) /** Channel width 40Mhz support */ #define HWSPEC_CHANBW40_SUPP MBIT(17) /** 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) /** Default 11n capability mask for 5GHz */ #define DEFAULT_11N_CAP_MASK_A (HWSPEC_CHANBW40_SUPP | HWSPEC_SHORTGI20_SUPP | \HWSPEC_SHORTGI40_SUPP | HWSPEC_RXSTBC_SUPP) /** Bits to ignore in hw_dev_cap as these bits are set in get_hw_spec */ #define IGN_HW_DEV_CAP (CAPINFO_40MHZ_INTOLARENT)/** 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 : 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 : Delayed ACK */ #define GET_DELAYEDBACK(Dot11nDevCap) (((Dot11nDevCap >> 20) & 0x03)) /** HW_SPEC Dot11nDevCap : Immediate ACK */ #define GET_IMMEDIATEBACK(Dot11nDevCap) (((Dot11nDevCap >> 18) & 0x03)) /** 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 : 40Mhz intolarance enabled */ #define ISENABLED_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)/** 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))/** 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))/** 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 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) ((*(uint16_t *) (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))) /** RadioType : Set secondary channel */ #define SET_SECONDARYCHAN(RadioType, SECCHAN) (RadioType |= (SECCHAN << 4))/* WiFi命令字段位定義 */ // Capability information #define WIFI_CAPABILITY_ESS MBIT(0) #define WIFI_CAPABILITY_IBSS MBIT(1) #define WIFI_CAPABILITY_CF_POLLABLE MBIT(2) #define WIFI_CAPABILITY_CF_POLL_REQUEST MBIT(3) #define WIFI_CAPABILITY_PRIVACY MBIT(4) #define WIFI_CAPABILITY_SHORT_PREAMBLE MBIT(5) #define WIFI_CAPABILITY_PBCC MBIT(6) #define WIFI_CAPABILITY_CHANNEL_AGILITY MBIT(7) #define WIFI_CAPABILITY_SPECTRUM_MGMT MBIT(8) #define WIFI_CAPABILITY_SHORT_SLOT MBIT(10) #define WIFI_CAPABILITY_DSSS_OFDM MBIT(13)/** LLC/SNAP header len */ #define LLC_SNAP_LEN 8/** 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 /** HT bandwidth 20 MHz */ #define HT_BW_20 0 /** HT bandwidth 40 MHz */ #define HT_BW_40 1/** 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 : Action frame */ #define TLV_TYPE_IEEE_ACTION_FRAME (PROPRIETARY_TLV_BASE_ID + 0x8c) // 0x018c

總結

以上是生活随笔為你收集整理的SDIO wifi Marvell8801/Marvell88w8801 介绍(五) ---- Marvell8801/Marvell88w8801 TLV的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。