51. TXGBE Poll Mode Driver
The TXGBE PMD (librte_pmd_txgbe) provides poll mode driver support for Wangxun 10 Gigabit Ethernet NICs.
51.1. Features
Multiple queues for TX and RX
Receiver Side Scaling (RSS)
MAC/VLAN filtering
Packet type information
Checksum offload
VLAN/QinQ stripping and inserting
TSO offload
Promiscuous mode
Multicast mode
Port hardware statistics
Jumbo frames
Link state information
Link flow control
Interrupt mode for RX
Scattered and gather for TX and RX
DCB
IEEE 1588
FW version
LRO
Generic flow API
51.2. Prerequisites
Learning about Wangxun 10 Gigabit Ethernet NICs using https://www.net-swift.com/a/383.html.
Follow the DPDK Getting Started Guide for Linux to setup the basic DPDK environment.
51.3. Pre-Installation Configuration
51.3.1. Build Options
The following build-time options may be enabled on build time using.
-Dc_args=
meson argument (e.g. -Dc_args=-DRTE_LIBRTE_TXGBE_DEBUG_RX
).
Please note that enabling debugging options may affect system performance.
RTE_LIBRTE_TXGBE_DEBUG_RX
(undefined by default)Toggle display of receive fast path run-time messages.
RTE_LIBRTE_TXGBE_DEBUG_TX
(undefined by default)Toggle display of transmit fast path run-time messages.
RTE_LIBRTE_TXGBE_DEBUG_TX_FREE
(undefined by default)Toggle display of transmit descriptor clean messages.
51.3.2. Dynamic Logging Parameters
One may leverage EAL option “–log-level” to change default levels for the log types supported by the driver. The option is used with an argument typically consisting of two parts separated by a colon.
TXGBE PMD provides the following log types available for control:
pmd.net.txgbe.driver
(default level is notice)Affects driver-wide messages unrelated to any particular devices.
pmd.net.txgbe.init
(default level is notice)Extra logging of the messages during PMD initialization.
51.4. Driver compilation and testing
Refer to the document compiling and testing a PMD for a NIC for details.
51.5. Sample Application Notes
51.5.1. Generic flow API
TXGBE PMD supports generic flow API which configures hardware to match specific ingress or egress traffic, alter its fate and query related counters according to any number of user-defined rules.
A flow rule is the combination of attributes with a matching pattern and a list of actions. Theorically one rule can match more than one filters, which named for different patterns and actions. Like ethertype filter defines a rule in pattern: the first not void item can be ETH, and the next not void item must be END.
For example, create a flow rule:
testpmd> flow create 0 ingress pattern eth type is 0x0806 / end actions queue index 2 / end
For a detailed usage description please refer to “Flow rules management” section in DPDK Testpmd Runtime Functions.
51.5.2. Traffic Management API
TXGBE PMD supports generic DPDK Traffic Management API which allows to configure the following features: hierarchical scheduling, traffic shaping, congestion management, packet marking.
For example, add shaper profile
testpmd> add port tm node shaper profile 0 0 0 0 25000000 0 0
For a detailed usage description please refer to “Traffic Management” section in DPDK Testpmd Runtime Functions.
51.6. Limitations or Known issues
Build with ICC is not supported yet. Power8, ARMv7 and BSD are not supported yet.