添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
  • Getting Started Guide for Linux
  • Getting Started Guide for FreeBSD
  • Getting Started Guide for Windows
  • Sample Applications User Guides
  • Programmer’s Guide
  • HowTo Guides
  • DPDK Tools User Guides
  • Testpmd Application User Guide
  • Network Interface Controller Drivers
    • 1. Overview of Networking Drivers
    • 2. Features Overview
      • 2.1. Speed capabilities
      • 2.2. Link speed configuration
      • 2.3. Link status
      • 2.4. Link status event
      • 2.5. Removal event
      • 2.6. Queue status event
      • 2.7. Rx interrupt
      • 2.8. Lock-free Tx queue
      • 2.9. Fast mbuf free
      • 2.10. Free Tx mbuf on demand
      • 2.11. Queue start/stop
      • 2.12. MTU update
      • 2.13. Scattered Rx
      • 2.14. Buffer split on Rx
      • 2.15. LRO
      • 2.16. TSO
      • 2.17. Promiscuous mode
      • 2.18. Allmulticast mode
      • 2.19. Unicast MAC filter
      • 2.20. Multicast MAC filter
      • 2.21. RSS hash
      • 2.22. Inner RSS
      • 2.23. RSS key update
      • 2.24. RSS reta update
      • 2.25. VMDq
      • 2.26. SR-IOV
      • 2.27. DCB
      • 2.28. VLAN filter
      • 2.29. Flow control
      • 2.30. Rate limitation
      • 2.31. Inline crypto
      • 2.32. Inline protocol
      • 2.33. CRC offload
      • 2.34. VLAN offload
      • 2.35. QinQ offload
      • 2.36. FEC
      • 2.37. IP reassembly
      • 2.38. L3 checksum offload
      • 2.39. L4 checksum offload
      • 2.40. Timestamp offload
      • 2.41. MACsec offload
      • 2.42. Inner L3 checksum
      • 2.43. Inner L4 checksum
      • 2.44. Shared Rx queue
      • 2.45. Packet type parsing
      • 2.46. Timesync
      • 2.47. Rx descriptor status
      • 2.48. Tx descriptor status
      • 2.49. Tx queue count
      • 2.50. Basic stats
      • 2.51. Extended stats
      • 2.52. Stats per queue
      • 2.53. Congestion management
      • 2.54. Traffic manager
      • 2.55. FW version
      • 2.56. EEPROM dump
      • 2.57. Module EEPROM dump
      • 2.58. Registers dump
      • 2.59. LED
      • 2.60. Multiprocess aware
      • 2.61. FreeBSD
      • 2.62. Linux
      • 2.63. Windows
      • 2.64. ARMv7
      • 2.65. ARMv8
      • 2.66. LoongArch64
      • 2.67. Power8
      • 2.68. rv64
      • 2.69. x86-32
      • 2.70. x86-64
      • 2.71. Usage doc
      • 2.72. Design doc
      • 2.73. Perf doc
      • 2.74. Runtime Rx queue setup
      • 2.75. Runtime Tx queue setup
      • 2.76. Burst mode info
      • 2.77. PMD power management using monitor addresses
      • 2.78. Other dev ops not represented by a Feature
      • 3. Compiling and testing a PMD for a NIC
      • 4. AF_PACKET Poll Mode Driver
      • 5. AF_XDP Poll Mode Driver
      • 6. ARK Poll Mode Driver
      • 7. Aquantia Atlantic DPDK Driver
      • 8. AVP Poll Mode Driver
      • 9. AXGBE Poll Mode Driver
      • 10. BNX2X Poll Mode Driver
      • 11. BNXT Poll Mode Driver
      • 12. CNXK Poll Mode driver
      • 13. CPFL Poll Mode Driver
      • 14. CXGBE Poll Mode Driver
      • 15. DPAA Poll Mode Driver
      • 16. DPAA2 Poll Mode Driver
      • 17. Driver for VM Emulated Devices
      • 18. ENA Poll Mode Driver
      • 19. ENETC Poll Mode Driver
      • 20. ENETFEC Poll Mode Driver
      • 21. ENIC Poll Mode Driver
      • 22. Fail-safe poll mode driver library
      • 23. FM10K Poll Mode Driver
      • 24. GVE poll mode driver
      • 25. HINIC Poll Mode Driver
      • 26. HNS3 Poll Mode Driver
      • 27. I40E Poll Mode Driver
      • 28. ICE Poll Mode Driver
      • 29. IDPF Poll Mode Driver
      • 30. IGB Poll Mode Driver
      • 31. IGC Poll Mode Driver
      • 32. Intel Virtual Function Driver
      • 33. IONIC Driver
      • 34. IPN3KE Poll Mode Driver
      • 35. IXGBE Driver
      • 36. MANA poll mode driver library
      • 37. Memif Poll Mode Driver
      • 38. NVIDIA MLX4 Ethernet Driver
      • 39. NVIDIA MLX5 Ethernet Driver
      • 40. MVNETA Poll Mode Driver
      • 41. MVPP2 Poll Mode Driver
      • 42. Netvsc poll mode driver
      • 43. NFB poll mode driver library
      • 44. NFP poll mode driver library
      • 45. NGBE Poll Mode Driver
      • 46. NTNIC Poll Mode Driver
      • 47. NULL Poll Mode Driver
      • 48. OCTEON TX EP Poll Mode driver
      • 49. OCTEON TX Poll Mode driver
      • 50. Libpcap and Ring Based Poll Mode Drivers
      • 51. PFE Poll Mode Driver
      • 52. QEDE Poll Mode Driver
      • 53. Solarflare libefx-based Poll Mode Driver
      • 54. Soft NIC Poll Mode Driver
      • 55. TAP Poll Mode Driver
      • 56. ThunderX NICVF Poll Mode Driver
      • 57. TXGBE Poll Mode Driver
      • 58. VDEV_NETVSC driver
      • 59. Poll Mode Driver that wraps vhost library
      • 60. Poll Mode Driver for Emulated Virtio NIC
      • 61. Poll Mode Driver for Paravirtual VMXNET3 NIC
      • Baseband Device Drivers
      • Crypto Device Drivers
      • Compression Device Drivers
      • vDPA Device Drivers
      • REGEX Device Drivers
      • Machine Learning Device Driver
      • DMA Device Drivers
      • General-Purpose Graphics Processing Unit Drivers
      • Event Device Drivers
      • Rawdev Drivers
      • Mempool Device Driver
      • Platform Specific Guides
      • Contributor’s Guidelines
      • Release Notes
      • 2. Features Overview

        This section explains the supported features that are listed in the Overview of Networking Drivers .

        As a guide to implementers it also shows the structs where the features are defined and the APIs that can be use to get/set the values.

        Following tags used for feature details, these are from driver point of view:

        [uses] : Driver uses some kind of input from the application.

        [implements] : Driver implements a functionality.

        [provides] : Driver provides some kind of data to the application. It is possible to provide data by implementing some function, but “provides” is used for cases where provided data can’t be represented simply by a function.

        [related] : Related API with that feature.

        2.1. Speed capabilities

        Supports getting the speed capabilities that the current device is capable of.

      • [provides] rte_eth_dev_info : speed_capa:RTE_ETH_LINK_SPEED_* .
      • [related] API : rte_eth_dev_info_get() .
      • 2.2. Link speed configuration

        Supports configurating fixed speed and link autonegotiation.

      • [uses] user config : dev_conf.link_speeds:RTE_ETH_LINK_SPEED_* .
      • [related] API : rte_eth_dev_configure() .
      • 2.3. Link status

        Supports getting the link speed, duplex mode and link state (up/down).

      • [implements] eth_dev_ops : link_update .
      • [implements] rte_eth_dev_data : dev_link .
      • [related] API : rte_eth_link_get() , rte_eth_link_get_nowait() .
      • 2.4. Link status event

        Supports Link Status Change interrupts.

      • [uses] user config : dev_conf.intr_conf.lsc .
      • [uses] rte_eth_dev_data : dev_flags:RTE_ETH_DEV_INTR_LSC .
      • [uses] rte_eth_event_type : RTE_ETH_EVENT_INTR_LSC .
      • [implements] rte_eth_dev_data : dev_link .
      • [provides] rte_pci_driver.drv_flags : RTE_PCI_DRV_INTR_LSC .
      • [related] API : rte_eth_link_get() , rte_eth_link_get_nowait() .
      • 2.5. Removal event

        Supports device removal interrupts.

      • [uses] user config : dev_conf.intr_conf.rmv .
      • [uses] rte_eth_dev_data : dev_flags:RTE_ETH_DEV_INTR_RMV .
      • [uses] rte_eth_event_type : RTE_ETH_EVENT_INTR_RMV .
      • [provides] rte_pci_driver.drv_flags : RTE_PCI_DRV_INTR_RMV .
      • 2.6. Queue status event

        Supports queue enable/disable events.

      • [uses] rte_eth_event_type : RTE_ETH_EVENT_QUEUE_STATE .
      • 2.7. Rx interrupt

        Supports Rx interrupts.

      • [uses] user config : dev_conf.intr_conf.rxq .
      • [implements] eth_dev_ops : rx_queue_intr_enable , rx_queue_intr_disable .
      • [related] API : rte_eth_dev_rx_intr_enable() , rte_eth_dev_rx_intr_disable() .
      • 2.8. Lock-free Tx queue

        If a PMD advertises RTE_ETH_TX_OFFLOAD_MT_LOCKFREE capable, multiple threads can invoke rte_eth_tx_burst() concurrently on the same Tx queue without SW lock.

      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_MT_LOCKFREE .
      • [provides] rte_eth_dev_info : tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_MT_LOCKFREE .
      • [related] API : rte_eth_tx_burst() .
      • 2.9. Fast mbuf free

        Supports optimization for fast release of mbufs following successful Tx. Requires that per queue, all mbufs come from the same mempool and has refcnt = 1.

      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE .
      • [provides] rte_eth_dev_info : tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_MBUF_FAST_FREE .
      • 2.10. Free Tx mbuf on demand

        Supports freeing consumed buffers on a Tx ring.

      • [implements] eth_dev_ops : tx_done_cleanup .
      • [related] API : rte_eth_tx_done_cleanup() .
      • 2.11. Queue start/stop

        Supports starting/stopping a specific Rx/Tx queue of a port.

      • [implements] eth_dev_ops : rx_queue_start , rx_queue_stop , tx_queue_start , tx_queue_stop .
      • [related] API : rte_eth_dev_rx_queue_start() , rte_eth_dev_rx_queue_stop() , rte_eth_dev_tx_queue_start() , rte_eth_dev_tx_queue_stop() .
      • 2.12. MTU update

        Supports updating port MTU.

      • [implements] eth_dev_ops : mtu_set .
      • [implements] rte_eth_dev_data : mtu .
      • [provides] rte_eth_dev_info : max_rx_pktlen .
      • [related] API : rte_eth_dev_set_mtu() , rte_eth_dev_get_mtu() .
      • 2.13. Scattered Rx

        Supports receiving segmented mbufs.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_SCATTER .
      • [implements] datapath : Scattered Rx function .
      • [implements] rte_eth_dev_data : scattered_rx .
      • [provides] eth_dev_ops : rxq_info_get:scattered_rx .
      • [related] eth_dev_ops : rx_pkt_burst .
      • 2.14. Buffer split on Rx

        Scatters the packets being received on specified boundaries to segmented mbufs.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT .
      • [uses] rte_eth_rxconf : rx_conf.rx_seg, rx_conf.rx_nseg .
      • [implements] eth_dev_ops : buffer_split_supported_hdr_ptypes_get ,
      • [implements] datapath : Buffer Split functionality .
      • [provides] rte_eth_dev_info : rx_offload_capa:RTE_ETH_RX_OFFLOAD_BUFFER_SPLIT .
      • [related] API : rte_eth_rx_queue_setup() , rte_eth_buffer_split_get_supported_hdr_ptypes() .
      • 2.15. LRO

        Supports Large Receive Offload.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_TCP_LRO . dev_conf.rxmode.max_lro_pkt_size .
      • [implements] datapath : LRO functionality .
      • [implements] rte_eth_dev_data : lro .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_LRO , mbuf.tso_segsz .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_TCP_LRO .
      • [provides] rte_eth_dev_info : max_lro_pkt_size .
      • 2.16. TSO

        Supports TCP Segmentation Offloading.

      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_TCP_TSO .
      • [uses] rte_eth_desc_lim : nb_seg_max , nb_mtu_seg_max .
      • [uses] mbuf : mbuf.ol_flags: RTE_MBUF_F_TX_TCP_SEG , RTE_MBUF_F_TX_IPV4 , RTE_MBUF_F_TX_IPV6 , RTE_MBUF_F_TX_IP_CKSUM .
      • [uses] mbuf : mbuf.tso_segsz , mbuf.l2_len , mbuf.l3_len , mbuf.l4_len .
      • [implements] datapath : TSO functionality .
      • [provides] rte_eth_dev_info : tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_TCP_TSO,RTE_ETH_TX_OFFLOAD_UDP_TSO .
      • 2.17. Promiscuous mode

        Supports enabling/disabling promiscuous mode for a port.

      • [implements] eth_dev_ops : promiscuous_enable , promiscuous_disable .
      • [implements] rte_eth_dev_data : promiscuous .
      • [related] API : rte_eth_promiscuous_enable() , rte_eth_promiscuous_disable() , rte_eth_promiscuous_get() .
      • 2.18. Allmulticast mode

        Supports enabling/disabling receiving multicast frames.

      • [implements] eth_dev_ops : allmulticast_enable , allmulticast_disable .
      • [implements] rte_eth_dev_data : all_multicast .
      • [related] API : rte_eth_allmulticast_enable() , rte_eth_allmulticast_disable() , rte_eth_allmulticast_get() .
      • 2.19. Unicast MAC filter

        Supports adding MAC addresses to enable incoming filtering of packets.

      • [implements] eth_dev_ops : mac_addr_set , mac_addr_add , mac_addr_remove .
      • [implements] rte_eth_dev_data : mac_addrs .
      • [related] API : rte_eth_dev_default_mac_addr_set() , rte_eth_dev_mac_addr_add() , rte_eth_dev_mac_addr_remove() , rte_eth_macaddr_get() .
      • 2.20. Multicast MAC filter

        Supports setting multicast addresses to filter.

      • [implements] eth_dev_ops : set_mc_addr_list .
      • [related] API : rte_eth_dev_set_mc_addr_list() .
      • 2.21. RSS hash

        Supports RSS hashing on RX.

      • [uses] user config : dev_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_RSS_FLAG .
      • [uses] user config : rss_conf.rss_hf .
      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_RSS_HASH .
      • [provides] rte_eth_dev_info : flow_type_rss_offloads .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_RSS_HASH , mbuf.rss .
      • [related] API : rte_eth_dev_configure() , rte_eth_dev_rss_hash_update rte_eth_dev_rss_hash_conf_get() .
      • Supports RSS hash algorithm on Rx.

      • [implements] eth_dev_ops : dev_configure , rss_hash_update , rss_hash_conf_get .
      • [uses] user config : rss_conf.algorithm
      • [provides] rte_eth_dev_info : rss_algo_capa .
      • [related] API : rte_eth_dev_configure() , rte_eth_dev_rss_hash_update() , rte_eth_dev_rss_hash_conf_get() .
      • 2.22. Inner RSS

        Supports RSS hashing on inner headers with flow API.

      • [uses] rte_flow_action_rss : level .
      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_RSS_HASH .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_RSS_HASH , mbuf.rss .
      • 2.23. RSS key update

        Supports configuration of Receive Side Scaling (RSS) hash computation. Updating Receive Side Scaling (RSS) hash key.

      • [implements] eth_dev_ops : dev_configure , rss_hash_update , rss_hash_conf_get .
      • [uses] user config : rss_conf.rss_key , rss_conf.rss_key_len .
      • [provides] rte_eth_dev_info : hash_key_size .
      • [related] API : rte_eth_dev_configure() , rte_eth_dev_rss_hash_update() , rte_eth_dev_rss_hash_conf_get() .
      • 2.24. RSS reta update

        Supports updating Redirection Table of the Receive Side Scaling (RSS).

      • [implements] eth_dev_ops : reta_update , reta_query .
      • [provides] rte_eth_dev_info : reta_size .
      • [related] API : rte_eth_dev_rss_reta_update() , rte_eth_dev_rss_reta_query() .
      • 2.25. VMDq

        Supports Virtual Machine Device Queues (VMDq).

      • [uses] user config : dev_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_VMDQ_FLAG .
      • [uses] user config : dev_conf.rx_adv_conf.vmdq_dcb_conf .
      • [uses] user config : dev_conf.rx_adv_conf.vmdq_rx_conf .
      • [uses] user config : dev_conf.tx_adv_conf.vmdq_dcb_tx_conf .
      • [uses] user config : dev_conf.tx_adv_conf.vmdq_tx_conf .
      • 2.26. SR-IOV

        Driver supports creating Virtual Functions.

      • [implements] rte_eth_dev_data : sriov .
      • 2.27. DCB

        Supports Data Center Bridging (DCB).

      • [uses] user config : dev_conf.rxmode.mq_mode = RTE_ETH_MQ_RX_DCB_FLAG .
      • [uses] user config : dev_conf.rx_adv_conf.vmdq_dcb_conf .
      • [uses] user config : dev_conf.rx_adv_conf.dcb_rx_conf .
      • [uses] user config : dev_conf.tx_adv_conf.vmdq_dcb_tx_conf .
      • [uses] user config : dev_conf.tx_adv_conf.vmdq_tx_conf .
      • [implements] eth_dev_ops : get_dcb_info .
      • [related] API : rte_eth_dev_get_dcb_info() .
      • 2.28. VLAN filter

        Supports filtering of a VLAN Tag identifier.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_VLAN_FILTER .
      • [implements] eth_dev_ops : vlan_filter_set .
      • [related] API : rte_eth_dev_vlan_filter() .
      • 2.29. Flow control

        Supports configuring link flow control.

      • [implements] eth_dev_ops : flow_ctrl_get , flow_ctrl_set , priority_flow_ctrl_set , priority_flow_ctrl_queue_info_get , priority_flow_ctrl_queue_configure
      • [related] API : rte_eth_dev_flow_ctrl_get() , rte_eth_dev_flow_ctrl_set() , rte_eth_dev_priority_flow_ctrl_set() , rte_eth_dev_priority_flow_ctrl_queue_info_get() , rte_eth_dev_priority_flow_ctrl_queue_configure() .
      • 2.30. Rate limitation

        Supports Tx rate limitation for a queue.

      • [implements] eth_dev_ops : set_queue_rate_limit .
      • [related] API : rte_eth_set_queue_rate_limit() .
      • 2.31. Inline crypto

        Supports inline crypto processing defined by rte_security library to perform crypto operations of security protocol while packet is received in NIC. NIC is not aware of protocol operations. See Security library and PMD documentation for more details.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_SECURITY ,
      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_SECURITY .
      • [uses] mbuf : mbuf.l2_len .
      • [implements] rte_security_ops : session_create , session_update , session_stats_get , session_destroy , set_pkt_metadata , capabilities_get .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_SECURITY , tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_SECURITY .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_SEC_OFFLOAD , mbuf.ol_flags:RTE_MBUF_F_TX_SEC_OFFLOAD , mbuf.ol_flags:RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED .
      • [provides] rte_security_ops, capabilities_get : action: RTE_SECURITY_ACTION_TYPE_INLINE_CRYPTO
      • 2.32. Inline protocol

        Supports inline protocol processing defined by rte_security library to perform protocol processing for the security protocol (e.g. IPsec, MACSEC) while the packet is received at NIC. The NIC is capable of understanding the security protocol operations. See security library and PMD documentation for more details.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_SECURITY ,
      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_SECURITY .
      • [uses] mbuf : mbuf.l2_len , mbuf.l3_len , mbuf.ol_flags .
      • [implements] rte_security_ops : session_create , session_update , session_stats_get , session_destroy , set_pkt_metadata , capabilities_get .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_SECURITY , tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_SECURITY .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_SEC_OFFLOAD , mbuf.ol_flags:RTE_MBUF_F_TX_SEC_OFFLOAD , mbuf.ol_flags:RTE_MBUF_F_RX_SEC_OFFLOAD_FAILED .
      • [provides] rte_security_ops, capabilities_get : action: RTE_SECURITY_ACTION_TYPE_INLINE_PROTOCOL
      • 2.33. CRC offload

        Supports CRC stripping by hardware. A PMD assumed to support CRC stripping by default. PMD should advertise if it supports keeping CRC.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_KEEP_CRC .
      • 2.34. VLAN offload

        Supports VLAN offload to hardware.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_VLAN_STRIP,RTE_ETH_RX_OFFLOAD_VLAN_FILTER,RTE_ETH_RX_OFFLOAD_VLAN_EXTEND .
      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_VLAN_INSERT .
      • [uses] mbuf : mbuf.ol_flags:RTE_MBUF_F_TX_VLAN , mbuf.vlan_tci .
      • [implements] eth_dev_ops : vlan_offload_set .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_VLAN_STRIPPED , mbuf.ol_flags:RTE_MBUF_F_RX_VLAN mbuf.vlan_tci .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_VLAN_STRIP , tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_VLAN_INSERT .
      • [related] API : rte_eth_dev_set_vlan_offload() , rte_eth_dev_get_vlan_offload() .
      • 2.35. QinQ offload

        Supports QinQ (queue in queue) offload.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_QINQ_STRIP .
      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_QINQ_INSERT .
      • [uses] mbuf : mbuf.ol_flags:RTE_MBUF_F_TX_QINQ , mbuf.vlan_tci_outer .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_QINQ_STRIPPED , mbuf.ol_flags:RTE_MBUF_F_RX_QINQ , mbuf.ol_flags:RTE_MBUF_F_RX_VLAN_STRIPPED , mbuf.ol_flags:RTE_MBUF_F_RX_VLAN mbuf.vlan_tci , mbuf.vlan_tci_outer .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_QINQ_STRIP , tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_QINQ_INSERT .
      • 2.36. FEC

        Supports Forward error correction. Forward error correction (FEC) is a bit error correction mode. It adds error correction information to data packets at the transmit end, and uses the error correction information to correct the bit errors generated during data packet transmission at the receive end. This improves signal quality but also brings a delay to signals. This function can be enabled or disabled as required.

      • [implements] eth_dev_ops : fec_get_capability , fec_get , fec_set .
      • [provides] rte_eth_fec_capa : speed:RTE_ETH_SPEED_NUM_* , capa:RTE_ETH_FEC_MODE_TO_CAPA() .
      • [related] API : rte_eth_fec_get_capability() , rte_eth_fec_get() , rte_eth_fec_set() .
      • 2.37. IP reassembly

        Supports IP reassembly in hardware.

      • [provides] eth_dev_ops : ip_reassembly_capability_get , ip_reassembly_conf_get , ip_reassembly_conf_set .
      • [related] API : rte_eth_ip_reassembly_capability_get() , rte_eth_ip_reassembly_conf_get() , rte_eth_ip_reassembly_conf_set() .
      • 2.38. L3 checksum offload

        Supports L3 checksum offload.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_IPV4_CKSUM .
      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_IPV4_CKSUM .
      • [uses] mbuf : mbuf.ol_flags:RTE_MBUF_F_TX_IP_CKSUM , mbuf.ol_flags:RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_IPV6 .
      • [uses] mbuf : mbuf.l2_len , mbuf.l3_len .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_IP_CKSUM_UNKNOWN | RTE_MBUF_F_RX_IP_CKSUM_BAD | RTE_MBUF_F_RX_IP_CKSUM_GOOD | RTE_MBUF_F_RX_IP_CKSUM_NONE .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_IPV4_CKSUM , tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_IPV4_CKSUM .
      • 2.39. L4 checksum offload

        Supports L4 checksum offload.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_UDP_CKSUM,RTE_ETH_RX_OFFLOAD_TCP_CKSUM,RTE_ETH_RX_OFFLOAD_SCTP_CKSUM .
      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_UDP_CKSUM,RTE_ETH_TX_OFFLOAD_TCP_CKSUM,RTE_ETH_TX_OFFLOAD_SCTP_CKSUM .
      • [uses] mbuf : mbuf.ol_flags:RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_IPV6 , mbuf.ol_flags:RTE_MBUF_F_TX_L4_NO_CKSUM | RTE_MBUF_F_TX_TCP_CKSUM | RTE_MBUF_F_TX_SCTP_CKSUM | RTE_MBUF_F_TX_UDP_CKSUM .
      • [uses] mbuf : mbuf.l2_len , mbuf.l3_len .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_L4_CKSUM_UNKNOWN | RTE_MBUF_F_RX_L4_CKSUM_BAD | RTE_MBUF_F_RX_L4_CKSUM_GOOD | RTE_MBUF_F_RX_L4_CKSUM_NONE .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_UDP_CKSUM,RTE_ETH_RX_OFFLOAD_TCP_CKSUM,RTE_ETH_RX_OFFLOAD_SCTP_CKSUM , tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_UDP_CKSUM,RTE_ETH_TX_OFFLOAD_TCP_CKSUM,RTE_ETH_TX_OFFLOAD_SCTP_CKSUM .
      • 2.40. Timestamp offload

        Supports Timestamp.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_TIMESTAMP .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_TIMESTAMP .
      • [provides] mbuf : mbuf.timestamp .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa: RTE_ETH_RX_OFFLOAD_TIMESTAMP .
      • [related] eth_dev_ops : read_clock .
      • 2.41. MACsec offload

        Supports MACsec.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_MACSEC_STRIP .
      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_MACSEC_INSERT .
      • [uses] mbuf : mbuf.ol_flags:RTE_MBUF_F_TX_MACSEC .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_MACSEC_STRIP , tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_MACSEC_INSERT .
      • 2.42. Inner L3 checksum

        Supports inner packet L3 checksum.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM .
      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM .
      • [uses] mbuf : mbuf.ol_flags:RTE_MBUF_F_TX_IP_CKSUM , mbuf.ol_flags:RTE_MBUF_F_TX_IPV4 | RTE_MBUF_F_TX_IPV6 , mbuf.ol_flags:RTE_MBUF_F_TX_OUTER_IP_CKSUM , mbuf.ol_flags:RTE_MBUF_F_TX_OUTER_IPV4 | RTE_MBUF_F_TX_OUTER_IPV6 .
      • [uses] mbuf : mbuf.outer_l2_len , mbuf.outer_l3_len .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_OUTER_IP_CKSUM_BAD .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_OUTER_IPV4_CKSUM , tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_OUTER_IPV4_CKSUM .
      • 2.43. Inner L4 checksum

        Supports inner packet L4 checksum.

      • [uses] rte_eth_rxconf,rte_eth_rxmode : offloads:RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM .
      • [provides] mbuf : mbuf.ol_flags:RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN | RTE_MBUF_F_RX_OUTER_L4_CKSUM_BAD | RTE_MBUF_F_RX_OUTER_L4_CKSUM_GOOD | RTE_MBUF_F_RX_OUTER_L4_CKSUM_INVALID .
      • [uses] rte_eth_txconf,rte_eth_txmode : offloads:RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM .
      • [uses] mbuf : mbuf.ol_flags:RTE_MBUF_F_TX_OUTER_IPV4 | RTE_MBUF_F_TX_OUTER_IPV6 . mbuf.ol_flags:RTE_MBUF_F_TX_OUTER_UDP_CKSUM .
      • [uses] mbuf : mbuf.outer_l2_len , mbuf.outer_l3_len .
      • [provides] rte_eth_dev_info : rx_offload_capa,rx_queue_offload_capa:RTE_ETH_RX_OFFLOAD_OUTER_UDP_CKSUM , tx_offload_capa,tx_queue_offload_capa:RTE_ETH_TX_OFFLOAD_OUTER_UDP_CKSUM .
      • 2.44. Shared Rx queue

        Supports shared Rx queue for ports in same Rx domain of a switch domain.

      • [uses] rte_eth_dev_info : dev_capa:RTE_ETH_DEV_CAPA_RXQ_SHARE .
      • [uses] rte_eth_dev_info,rte_eth_switch_info : rx_domain , domain_id .
      • [uses] rte_eth_rxconf : share_group , share_qid .
      • [provides] mbuf : mbuf.port .
      • 2.45. Packet type parsing

        Supports packet type parsing and returns a list of supported types. Allows application to set ptypes it is interested in.

      • [implements] eth_dev_ops : dev_supported_ptypes_get ,
      • [related] API : rte_eth_dev_get_supported_ptypes() , rte_eth_dev_set_ptypes() , dev_ptypes_set .
      • [provides] mbuf : mbuf.packet_type .
      • 2.46. Timesync

        Supports IEEE1588/802.1AS timestamping.

      • [implements] eth_dev_ops : timesync_enable , timesync_disable timesync_read_rx_timestamp , timesync_read_tx_timestamp , timesync_adjust_time , timesync_read_time , timesync_write_time .
      • [related] API : rte_eth_timesync_enable() , rte_eth_timesync_disable() , rte_eth_timesync_read_rx_timestamp() , rte_eth_timesync_read_tx_timestamp , rte_eth_timesync_adjust_time() , rte_eth_timesync_read_time() , rte_eth_timesync_write_time() .
      • 2.47. Rx descriptor status

        Supports check the status of a Rx descriptor. When rx_descriptor_status is used, status can be “Available”, “Done” or “Unavailable”.

      • [implements] rte_eth_dev : rx_descriptor_status .
      • [related] API : rte_eth_rx_descriptor_status() .
      • 2.48. Tx descriptor status

        Supports checking the status of a Tx descriptor. Status can be “Full”, “Done” or “Unavailable.”

      • [implements] rte_eth_dev : tx_descriptor_status .
      • [related] API : rte_eth_tx_descriptor_status() .
      • 2.49. Tx queue count

        Supports getting the number of used descriptors of a Tx queue.

      • [implements] eth_dev_ops : tx_queue_count .
      • [related] API : rte_eth_tx_queue_count() .
      • 2.50. Basic stats

        Support basic statistics such as: ipackets, opackets, ibytes, obytes, imissed, ierrors, oerrors, rx_nombuf.

        And per queue stats: q_ipackets, q_opackets, q_ibytes, q_obytes, q_errors.

        These apply to all drivers.

      • [implements] eth_dev_ops : stats_get , stats_reset .
      • [related] API : rte_eth_stats_get , rte_eth_stats_reset() .
      • 2.51. Extended stats

        Supports Extended Statistics, changes from driver to driver.

      • [implements] eth_dev_ops : xstats_get , xstats_reset , xstats_get_names .
      • [implements] eth_dev_ops : xstats_get_by_id , xstats_get_names_by_id .
      • [related] API : rte_eth_xstats_get() , rte_eth_xstats_reset() , rte_eth_xstats_get_names , rte_eth_xstats_get_by_id() , rte_eth_xstats_get_names_by_id() , rte_eth_xstats_get_id_by_name() .
      • 2.52. Stats per queue

        Supports configuring per-queue stat counter mapping.

      • [implements] eth_dev_ops : queue_stats_mapping_set .
      • [related] API : rte_eth_dev_set_rx_queue_stats_mapping() , rte_eth_dev_set_tx_queue_stats_mapping() .
      • 2.53. Congestion management

        Supports congestion management.

      • [implements] eth_dev_ops : cman_info_get , cman_config_set , cman_config_get .
      • [related] API : rte_eth_cman_info_get() , rte_eth_cman_config_init() , rte_eth_cman_config_set() , rte_eth_cman_config_get() .
      • 2.54. Traffic manager

        Supports Traffic manager.

      • [implements] rte_tm_ops : capabilities_get , shaper_profile_add , hierarchy_commit and so on.
      • [related] API : rte_tm_capabilities_get() , rte_tm_shaper_profile_add() , rte_tm_hierarchy_commit() and so on.
      • 2.55. FW version

        Supports getting device hardware firmware information.

      • [implements] eth_dev_ops : fw_version_get .
      • [related] API : rte_eth_dev_fw_version_get() .
      • 2.56. EEPROM dump

        Supports getting/setting device eeprom data.

      • [implements] eth_dev_ops : get_eeprom_length , get_eeprom , set_eeprom .
      • [related] API : rte_eth_dev_get_eeprom_length() , rte_eth_dev_get_eeprom() , rte_eth_dev_set_eeprom() .
      • 2.57. Module EEPROM dump

        Supports getting information and data of plugin module eeprom.

      • [implements] eth_dev_ops : get_module_info , get_module_eeprom .
      • [related] API : rte_eth_dev_get_module_info() , rte_eth_dev_get_module_eeprom() .
      • 2.58. Registers dump

        Supports retrieving device registers and registering attributes (number of registers and register size).

      • [implements] eth_dev_ops : get_reg .
      • [related] API : rte_eth_dev_get_reg_info() .
      • 2.59. LED

        Supports turning on/off a software controllable LED on a device.

      • [implements] eth_dev_ops : dev_led_on , dev_led_off .
      • [related] API : rte_eth_led_on() , rte_eth_led_off() .
      • 2.60. Multiprocess aware

        Driver can be used for primary-secondary process model.

        2.61. FreeBSD

        Supports running on FreeBSD.

        2.62. Linux

        Supports running on Linux.

        2.63. Windows

        Supports running on Windows.

        2.64. ARMv7

        Support armv7 architecture.

        2.65. ARMv8

        Support armv8a (64bit) architecture.

        2.66. LoongArch64

        Support 64-bit LoongArch architecture.

        2.67. Power8

        Support PowerPC architecture.

        2.68. rv64

        Support 64-bit RISC-V architecture.

        2.69. x86-32

        Support 32bits x86 architecture.

        2.70. x86-64

        Support 64bits x86 architecture.

        2.71. Usage doc

        Documentation describes usage.

        See doc/guides/nics/*.rst

        2.72. Design doc

        Documentation describes design.

        See doc/guides/nics/*.rst .

        2.73. Perf doc

        Documentation describes performance values.

        See dpdk.org/doc/perf/* .

        2.74. Runtime Rx queue setup

        Supports Rx queue setup after device started.

      • [provides] rte_eth_dev_info : dev_capa:RTE_ETH_DEV_CAPA_RUNTIME_RX_QUEUE_SETUP .
      • [related] API : rte_eth_dev_info_get() .
      • 2.75. Runtime Tx queue setup

        Supports Tx queue setup after device started.

      • [provides] rte_eth_dev_info : dev_capa:RTE_ETH_DEV_CAPA_RUNTIME_TX_QUEUE_SETUP .
      • [related] API : rte_eth_dev_info_get() .
      • 2.76. Burst mode info

        Supports to get Rx/Tx packet burst mode information.

      • [implements] eth_dev_ops : rx_burst_mode_get , tx_burst_mode_get .
      • [related] API : rte_eth_rx_burst_mode_get() , rte_eth_tx_burst_mode_get() .
      • 2.77. PMD power management using monitor addresses

        Supports getting a monitoring condition to use together with Ethernet PMD power management (see Power Management for more details).

      • [implements] eth_dev_ops : get_monitor_addr
      • 2.78. Other dev ops not represented by a Feature

      • rxq_info_get
      • txq_info_get
      • vlan_tpid_set
      • vlan_strip_queue_set
      • vlan_pvid_set
      • rx_queue_count
      • uc_hash_table_set
      • uc_all_hash_table_set
      • udp_tunnel_port_add
      • udp_tunnel_port_del
      • tx_pkt_prepare
  •