1.. SPDX-License-Identifier: BSD-3-Clause 2 Copyright(c) 2015-2020. 3 4TXGBE Poll Mode Driver 5====================== 6 7The TXGBE PMD (librte_pmd_txgbe) provides poll mode driver support 8for Wangxun 10 Gigabit Ethernet NICs. 9 10Features 11-------- 12 13- Multiple queues for TX and RX 14- Receiver Side Scaling (RSS) 15- MAC/VLAN filtering 16- Packet type information 17- Checksum offload 18- VLAN/QinQ stripping and inserting 19- TSO offload 20- Promiscuous mode 21- Multicast mode 22- Port hardware statistics 23- Jumbo frames 24- Link state information 25- Link flow control 26- Interrupt mode for RX 27- Scattered and gather for TX and RX 28- DCB 29- IEEE 1588 30- FW version 31- LRO 32- Generic flow API 33 34Prerequisites 35------------- 36 37- Learning about Wangxun 10 Gigabit Ethernet NICs using 38 `<https://www.net-swift.com/a/383.html>`_. 39 40- Follow the DPDK :ref:`Getting Started Guide for Linux <linux_gsg>` to setup the basic DPDK environment. 41 42Pre-Installation Configuration 43------------------------------ 44 45Build Options 46~~~~~~~~~~~~~ 47 48The following build-time options may be enabled on build time using. 49 50``-Dc_args=`` meson argument (e.g. ``-Dc_args=-DRTE_LIBRTE_TXGBE_DEBUG_RX``). 51 52Please note that enabling debugging options may affect system performance. 53 54- ``RTE_LIBRTE_TXGBE_DEBUG_RX`` (undefined by default) 55 56 Toggle display of receive fast path run-time messages. 57 58- ``RTE_LIBRTE_TXGBE_DEBUG_TX`` (undefined by default) 59 60 Toggle display of transmit fast path run-time messages. 61 62- ``RTE_LIBRTE_TXGBE_DEBUG_TX_FREE`` (undefined by default) 63 64 Toggle display of transmit descriptor clean messages. 65 66- ``RTE_LIBRTE_TXGBE_PF_DISABLE_STRIP_CRC`` (undefined by default) 67 68 Decide to enable or disable HW CRC in VF PMD. 69 70Dynamic Logging Parameters 71~~~~~~~~~~~~~~~~~~~~~~~~~~ 72 73One may leverage EAL option "--log-level" to change default levels 74for the log types supported by the driver. The option is used with 75an argument typically consisting of two parts separated by a colon. 76 77TXGBE PMD provides the following log types available for control: 78 79- ``pmd.net.txgbe.driver`` (default level is **notice**) 80 81 Affects driver-wide messages unrelated to any particular devices. 82 83- ``pmd.net.txgbe.init`` (default level is **notice**) 84 85 Extra logging of the messages during PMD initialization. 86 87Driver compilation and testing 88------------------------------ 89 90Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>` 91for details. 92 93Sample Application Notes 94------------------------ 95 96Generic flow API 97~~~~~~~~~~~~~~~~ 98 99TXGBE PMD supports generic flow API which configures hardware to match specific 100ingress or egress traffic, alter its fate and query related counters according 101to any number of user-defined rules. 102 103A flow rule is the combination of attributes with a matching pattern and a list of 104actions. Theorically one rule can match more than one filters, which named for 105different patterns and actions. Like ethertype filter defines a rule in pattern: 106the first not void item can be ETH, and the next not void item must be END. 107 108For example, create a flow rule: 109 110.. code-block:: console 111 112 testpmd> flow create 0 ingress pattern eth type is 0x0806 / end actions queue index 2 / end 113 114For a detailed usage description please refer to "Flow rules management" section in DPDK :doc:`Testpmd Runtime Functions <../testpmd_app_ug/testpmd_funcs>`. 115 116Traffic Management API 117~~~~~~~~~~~~~~~~~~~~~~ 118 119TXGBE PMD supports generic DPDK Traffic Management API which allows to 120configure the following features: hierarchical scheduling, traffic shaping, 121congestion management, packet marking. 122 123For example, add shaper profile 124 125.. code-block:: console 126 127 testpmd> add port tm node shaper profile 0 0 0 0 25000000 0 0 128 129For a detailed usage description please refer to "Traffic Management" section in DPDK :doc:`Testpmd Runtime Functions <../testpmd_app_ug/testpmd_funcs>`. 130 131Limitations or Known issues 132--------------------------- 133 134Build with ICC is not supported yet. 135Power8, ARMv7 and BSD are not supported yet. 136