xref: /dpdk/doc/guides/nics/txgbe.rst (revision bb07d96d)
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