1 .. SPDX-License-Identifier: BSD-3-Clause
2 Copyright(c) 2014-2018 Chelsio Communications.
8 The CXGBE PMD (**librte_net_cxgbe**) provides poll mode driver support
9 for **Chelsio Terminator** 10/25/40/100 Gbps family of adapters. CXGBE PMD
10 has support for the latest Linux and FreeBSD operating systems.
12 CXGBEVF PMD provides poll mode driver support for SR-IOV Virtual functions
13 and has support for the latest Linux operating systems.
15 More information can be found at `Chelsio Communications Official Website
16 <http://www.chelsio.com>`_.
21 CXGBE and CXGBEVF PMD has support for:
23 - Multiple queues for TX and RX
24 - Receiver Side Steering (RSS)
25 Receiver Side Steering (RSS) on IPv4, IPv6, IPv4-TCP/UDP, IPv6-TCP/UDP.
26 For 4-tuple, enabling 'RSS on TCP' and 'RSS on TCP + UDP' is supported.
31 - Port hardware statistics
33 - Flow API - Support for both Wildcard (LE-TCAM) and Exact (HASH) match filters.
38 The Chelsio Terminator series of devices provide two/four ports but
39 expose a single PCI bus address, thus, librte_net_cxgbe registers
40 itself as a PCI driver that allocates one Ethernet device per detected
43 For this reason, one cannot allow/block a single port without
44 allowing/blocking the other ports on the same device.
48 Supported Chelsio T5 NICs
49 -------------------------
52 - 10G NICs: T520-BT, T520-CR, T520-LL-CR, T520-SO-CR, T540-CR
53 - 40G NICs: T580-CR, T580-LP-CR, T580-SO-CR
54 - Other T5 NICs: T522-CR
58 Supported Chelsio T6 NICs
59 -------------------------
61 - 25G NICs: T6425-CR, T6225-CR, T6225-LL-CR, T6225-SO-CR
62 - 100G NICs: T62100-CR, T62100-LP-CR, T62100-SO-CR
64 Supported SR-IOV Chelsio NICs
65 -----------------------------
67 SR-IOV virtual functions are supported on all the Chelsio NICs listed
68 in :ref:`t5-nics` and :ref:`t6-nics`.
73 - Requires firmware version **1.25.4.0** and higher. Visit
74 `Chelsio Download Center <http://service.chelsio.com>`_ to get latest firmware
75 bundled with the latest Chelsio Unified Wire package.
77 For Linux, installing and loading the latest cxgb4 kernel driver from the
78 Chelsio Unified Wire package should get you the latest firmware. More
79 information can be obtained from the User Guide that is bundled with the
80 Chelsio Unified Wire package.
82 For FreeBSD, the latest firmware obtained from the Chelsio Unified Wire
83 package must be manually flashed via cxgbetool available in FreeBSD source
86 Instructions on how to manually flash the firmware are given in section
87 :ref:`linux-installation` for Linux and section :ref:`freebsd-installation`
94 The following ``devargs`` options can be enabled at runtime. They must
95 be passed as part of EAL arguments. For example,
97 .. code-block:: console
99 dpdk-testpmd -a 02:00.4,keep_ovlan=1 -- -i
101 Common Runtime Options
102 ~~~~~~~~~~~~~~~~~~~~~~
104 - ``keep_ovlan`` (default **0**)
106 Toggle behavior to keep/strip outer VLAN in Q-in-Q packets. If
107 enabled, the outer VLAN tag is preserved in Q-in-Q packets. Otherwise,
108 the outer VLAN tag is stripped in Q-in-Q packets.
110 - ``tx_mode_latency`` (default **0**)
112 When set to 1, Tx doesn't wait for max number of packets to get
113 coalesced and sends the packets immediately at the end of the
114 current Tx burst. When set to 0, Tx waits across multiple Tx bursts
115 until the max number of packets have been coalesced. In this case,
116 Tx only sends the coalesced packets to hardware once the max
117 coalesce limit has been reached.
119 CXGBE VF Only Runtime Options
120 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
122 - ``force_link_up`` (default **0**)
124 When set to 1, CXGBEVF PMD always forces link as up for all VFs on
125 underlying Chelsio NICs. This enables multiple VFs on the same NIC
126 to send traffic to each other even when the physical link is down.
128 CXGBE PF Only Runtime Options
129 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
131 - ``filtermode`` (default **0**)
133 Apart from the 4-tuple (IP src/dst addresses and TCP/UDP src/dst port
134 addresses), there are only 40-bits available to match other fields in
135 packet headers. So, ``filtermode`` devarg allows user to dynamically
136 select a 40-bit supported match field combination for LETCAM (wildcard)
139 Default value of **0** makes driver pick the combination configured in
140 the firmware configuration file on the adapter.
142 The supported flags and their corresponding values are shown in table below.
143 These flags can be OR'd to create 1 of the multiple supported combinations
146 ================== ======
148 ================== ======
157 ================== ======
159 The supported ``filtermode`` combinations and their corresponding OR'd
160 values are shown in table below.
162 +-----------------------------------+-----------+
163 | FILTERMODE COMBINATIONS | VALUE |
164 +===================================+===========+
165 | Protocol, TOS, Outer VLAN, Port | 0xE1 |
166 +-----------------------------------+-----------+
167 | Protocol, TOS, Outer VLAN | 0xE0 |
168 +-----------------------------------+-----------+
169 | Protocol, TOS, Inner VLAN, Port | 0xD1 |
170 +-----------------------------------+-----------+
171 | Protocol, TOS, Inner VLAN | 0xD0 |
172 +-----------------------------------+-----------+
173 | Protocol, TOS, PFVF, Port | 0xC3 |
174 +-----------------------------------+-----------+
175 | Protocol, TOS, PFVF | 0xC2 |
176 +-----------------------------------+-----------+
177 | Protocol, TOS, Port | 0xC1 |
178 +-----------------------------------+-----------+
179 | Protocol, TOS | 0xC0 |
180 +-----------------------------------+-----------+
181 | Protocol, Outer VLAN, Port | 0xA1 |
182 +-----------------------------------+-----------+
183 | Protocol, Outer VLAN | 0xA0 |
184 +-----------------------------------+-----------+
185 | Protocol, Inner VLAN, Port | 0x91 |
186 +-----------------------------------+-----------+
187 | Protocol, Inner VLAN | 0x90 |
188 +-----------------------------------+-----------+
189 | Protocol, Ethertype, DstMAC, Port | 0x8D |
190 +-----------------------------------+-----------+
191 | Protocol, Ethertype, DstMAC | 0x8C |
192 +-----------------------------------+-----------+
193 | Protocol, Ethertype, Port | 0x89 |
194 +-----------------------------------+-----------+
195 | Protocol, Ethertype | 0x88 |
196 +-----------------------------------+-----------+
197 | Protocol, DstMAC, PFVF, Port | 0x87 |
198 +-----------------------------------+-----------+
199 | Protocol, DstMAC, PFVF | 0x86 |
200 +-----------------------------------+-----------+
201 | Protocol, DstMAC, Port | 0x85 |
202 +-----------------------------------+-----------+
203 | Protocol, DstMAC | 0x84 |
204 +-----------------------------------+-----------+
205 | Protocol, PFVF, Port | 0x83 |
206 +-----------------------------------+-----------+
207 | Protocol, PFVF | 0x82 |
208 +-----------------------------------+-----------+
209 | Protocol, Port | 0x81 |
210 +-----------------------------------+-----------+
212 +-----------------------------------+-----------+
213 | TOS, Outer VLAN, Port | 0x61 |
214 +-----------------------------------+-----------+
215 | TOS, Outer VLAN | 0x60 |
216 +-----------------------------------+-----------+
217 | TOS, Inner VLAN, Port | 0x51 |
218 +-----------------------------------+-----------+
219 | TOS, Inner VLAN | 0x50 |
220 +-----------------------------------+-----------+
221 | TOS, Ethertype, DstMAC, Port | 0x4D |
222 +-----------------------------------+-----------+
223 | TOS, Ethertype, DstMAC | 0x4C |
224 +-----------------------------------+-----------+
225 | TOS, Ethertype, Port | 0x49 |
226 +-----------------------------------+-----------+
227 | TOS, Ethertype | 0x48 |
228 +-----------------------------------+-----------+
229 | TOS, DstMAC, PFVF, Port | 0x47 |
230 +-----------------------------------+-----------+
231 | TOS, DstMAC, PFVF | 0x46 |
232 +-----------------------------------+-----------+
233 | TOS, DstMAC, Port | 0x45 |
234 +-----------------------------------+-----------+
235 | TOS, DstMAC | 0x44 |
236 +-----------------------------------+-----------+
237 | TOS, PFVF, Port | 0x43 |
238 +-----------------------------------+-----------+
240 +-----------------------------------+-----------+
242 +-----------------------------------+-----------+
244 +-----------------------------------+-----------+
245 | Outer VLAN, Inner VLAN, Port | 0x31 |
246 +-----------------------------------+-----------+
247 | Outer VLAN, Ethertype, Port | 0x29 |
248 +-----------------------------------+-----------+
249 | Outer VLAN, Ethertype | 0x28 |
250 +-----------------------------------+-----------+
251 | Outer VLAN, DstMAC, Port | 0x25 |
252 +-----------------------------------+-----------+
253 | Outer VLAN, DstMAC | 0x24 |
254 +-----------------------------------+-----------+
255 | Outer VLAN, Port | 0x21 |
256 +-----------------------------------+-----------+
257 | Outer VLAN | 0x20 |
258 +-----------------------------------+-----------+
259 | Inner VLAN, Ethertype, Port | 0x19 |
260 +-----------------------------------+-----------+
261 | Inner VLAN, Ethertype | 0x18 |
262 +-----------------------------------+-----------+
263 | Inner VLAN, DstMAC, Port | 0x15 |
264 +-----------------------------------+-----------+
265 | Inner VLAN, DstMAC | 0x14 |
266 +-----------------------------------+-----------+
267 | Inner VLAN, Port | 0x11 |
268 +-----------------------------------+-----------+
269 | Inner VLAN | 0x10 |
270 +-----------------------------------+-----------+
271 | Ethertype, DstMAC, Port | 0xD |
272 +-----------------------------------+-----------+
273 | Ethertype, DstMAC | 0xC |
274 +-----------------------------------+-----------+
275 | Ethertype, PFVF, Port | 0xB |
276 +-----------------------------------+-----------+
277 | Ethertype, PFVF | 0xA |
278 +-----------------------------------+-----------+
279 | Ethertype, Port | 0x9 |
280 +-----------------------------------+-----------+
282 +-----------------------------------+-----------+
283 | DstMAC, PFVF, Port | 0x7 |
284 +-----------------------------------+-----------+
285 | DstMAC, PFVF | 0x6 |
286 +-----------------------------------+-----------+
287 | DstMAC, Port | 0x5 |
288 +-----------------------------------+-----------+
289 | Destination MAC | 0x4 |
290 +-----------------------------------+-----------+
292 +-----------------------------------+-----------+
294 +-----------------------------------+-----------+
295 | Physical Port | 0x1 +
296 +-----------------------------------+-----------+
298 For example, to enable matching ``ethertype`` field in Ethernet
299 header, and ``protocol`` field in IPv4 header, the ``filtermode``
300 combination must be given as:
302 .. code-block:: console
304 dpdk-testpmd -a 02:00.4,filtermode=0x88 -- -i
306 - ``filtermask`` (default **0**)
308 ``filtermask`` devarg works similar to ``filtermode``, but is used
309 to configure a filter mode combination for HASH (exact-match) filters.
313 The combination chosen for ``filtermask`` devarg **must be a subset** of
314 the combination chosen for ``filtermode`` devarg.
316 Default value of **0** makes driver pick the combination configured in
317 the firmware configuration file on the adapter.
319 Note that the filter rule will only be inserted in HASH region, if the
320 rule contains **all** the fields specified in the ``filtermask`` combination.
321 Otherwise, the filter rule will get inserted in LETCAM region.
323 The same combination list explained in the tables in ``filtermode`` devarg
324 section earlier applies for ``filtermask`` devarg, as well.
326 For example, to enable matching only protocol field in IPv4 header, the
327 ``filtermask`` combination must be given as:
329 .. code-block:: console
331 dpdk-testpmd -a 02:00.4,filtermode=0x88,filtermask=0x80 -- -i
333 .. _driver-compilation:
335 Driver compilation and testing
336 ------------------------------
338 Refer to the document :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
344 .. _linux-installation:
349 Steps to manually install the latest firmware from the downloaded Chelsio
350 Unified Wire package for Linux operating system are as follows:
352 #. Load the kernel module:
354 .. code-block:: console
358 #. Use ifconfig to get the interface name assigned to Chelsio card:
360 .. code-block:: console
362 ifconfig -a | grep "00:07:43"
366 .. code-block:: console
368 p1p1 Link encap:Ethernet HWaddr 00:07:43:2D:EA:C0
369 p1p2 Link encap:Ethernet HWaddr 00:07:43:2D:EA:C8
373 .. code-block:: console
375 cd <path_to_uwire>/tools/cxgbtool
378 #. Use cxgbtool to load the firmware config file onto the card:
380 .. code-block:: console
382 cxgbtool p1p1 loadcfg <path_to_uwire>/src/network/firmware/t5-config.txt
384 #. Use cxgbtool to load the firmware image onto the card:
386 .. code-block:: console
388 cxgbtool p1p1 loadfw <path_to_uwire>/src/network/firmware/t5fw-*.bin
390 #. Unload and reload the kernel module:
392 .. code-block:: console
397 #. Verify with ethtool:
399 .. code-block:: console
401 ethtool -i p1p1 | grep "firmware"
405 .. code-block:: console
407 firmware-version: 1.25.4.0, TP 0.1.23.2
412 This section demonstrates how to launch **testpmd** with Chelsio
413 devices managed by librte_net_cxgbe in Linux operating system.
415 #. Load the kernel module:
417 .. code-block:: console
421 #. Get the PCI bus addresses of the interfaces bound to cxgb4 driver:
423 .. code-block:: console
429 .. code-block:: console
431 cxgb4 0000:02:00.4 p1p1: renamed from eth0
432 cxgb4 0000:02:00.4 p1p2: renamed from eth1
436 Both the interfaces of a Chelsio 2-port adapter are bound to the
437 same PCI bus address.
439 #. Unload the kernel module:
441 .. code-block:: console
443 modprobe -ar cxgb4 csiostor
447 Follow instructions available in the document
448 :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
453 Currently, CXGBE PMD only supports the binding of PF4 for Chelsio NICs.
457 .. code-block:: console
460 EAL: PCI device 0000:02:00.4 on NUMA socket -1
461 EAL: probe driver: 1425:5401 rte_cxgbe_pmd
462 EAL: PCI memory mapped at 0x7fd7c0200000
463 EAL: PCI memory mapped at 0x7fd77cdfd000
464 EAL: PCI memory mapped at 0x7fd7c10b7000
465 PMD: rte_cxgbe_pmd: fw: 1.25.4.0, TP: 0.1.23.2
466 PMD: rte_cxgbe_pmd: Coming up as MASTER: Initializing adapter
467 Interactive-mode selected
468 Configuring Port 0 (socket 0)
469 Port 0: 00:07:43:2D:EA:C0
470 Configuring Port 1 (socket 0)
471 Port 1: 00:07:43:2D:EA:C8
472 Checking link statuses...
473 PMD: rte_cxgbe_pmd: Port0: passive DA port module inserted
474 PMD: rte_cxgbe_pmd: Port1: passive DA port module inserted
475 Port 0 Link Up - speed 10000 Mbps - full-duplex
476 Port 1 Link Up - speed 10000 Mbps - full-duplex
482 Flow control pause TX/RX is disabled by default and can be enabled via
483 testpmd. Refer section :ref:`flow-control` for more details.
485 Configuring SR-IOV Virtual Functions
486 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
488 This section demonstrates how to enable SR-IOV virtual functions
489 on Chelsio NICs and demonstrates how to run testpmd with SR-IOV
492 #. Load the kernel module:
494 .. code-block:: console
498 #. Get the PCI bus addresses of the interfaces bound to cxgb4 driver:
500 .. code-block:: console
506 .. code-block:: console
508 cxgb4 0000:02:00.4 p1p1: renamed from eth0
509 cxgb4 0000:02:00.4 p1p2: renamed from eth1
513 Both the interfaces of a Chelsio 2-port adapter are bound to the
514 same PCI bus address.
516 #. Use ifconfig to get the interface name assigned to Chelsio card:
518 .. code-block:: console
520 ifconfig -a | grep "00:07:43"
524 .. code-block:: console
526 p1p1 Link encap:Ethernet HWaddr 00:07:43:2D:EA:C0
527 p1p2 Link encap:Ethernet HWaddr 00:07:43:2D:EA:C8
529 #. Bring up the interfaces:
531 .. code-block:: console
536 #. Instantiate SR-IOV Virtual Functions. PF0..3 can be used for
537 SR-IOV VFs. Multiple VFs can be instantiated on each of PF0..3.
538 To instantiate one SR-IOV VF on each PF0 and PF1:
540 .. code-block:: console
542 echo 1 > /sys/bus/pci/devices/0000\:02\:00.0/sriov_numvfs
543 echo 1 > /sys/bus/pci/devices/0000\:02\:00.1/sriov_numvfs
545 #. Get the PCI bus addresses of the virtual functions:
547 .. code-block:: console
549 lspci | grep -i "Chelsio" | grep -i "VF"
553 .. code-block:: console
555 02:01.0 Ethernet controller: Chelsio Communications Inc T540-CR Unified Wire Ethernet Controller [VF]
556 02:01.1 Ethernet controller: Chelsio Communications Inc T540-CR Unified Wire Ethernet Controller [VF]
560 Follow instructions available in the document
561 :ref:`compiling and testing a PMD for a NIC <pmd_build_and_test>`
562 to bind virtual functions and run testpmd.
566 .. code-block:: console
569 EAL: PCI device 0000:02:01.0 on NUMA socket 0
570 EAL: probe driver: 1425:5803 net_cxgbevf
571 PMD: rte_cxgbe_pmd: Firmware version: 1.25.4.0
572 PMD: rte_cxgbe_pmd: TP Microcode version: 0.1.23.2
573 PMD: rte_cxgbe_pmd: Chelsio rev 0
574 PMD: rte_cxgbe_pmd: No bootstrap loaded
575 PMD: rte_cxgbe_pmd: No Expansion ROM loaded
576 PMD: rte_cxgbe_pmd: 0000:02:01.0 Chelsio rev 0 1G/10GBASE-SFP
577 EAL: PCI device 0000:02:01.1 on NUMA socket 0
578 EAL: probe driver: 1425:5803 net_cxgbevf
579 PMD: rte_cxgbe_pmd: Firmware version: 1.25.4.0
580 PMD: rte_cxgbe_pmd: TP Microcode version: 0.1.23.2
581 PMD: rte_cxgbe_pmd: Chelsio rev 0
582 PMD: rte_cxgbe_pmd: No bootstrap loaded
583 PMD: rte_cxgbe_pmd: No Expansion ROM loaded
584 PMD: rte_cxgbe_pmd: 0000:02:01.1 Chelsio rev 0 1G/10GBASE-SFP
585 Configuring Port 0 (socket 0)
586 Port 0: 06:44:29:44:40:00
587 Configuring Port 1 (socket 0)
588 Port 1: 06:44:29:44:40:10
589 Checking link statuses...
596 .. _freebsd-installation:
601 Steps to manually install the latest firmware from the downloaded Chelsio
602 Unified Wire package for FreeBSD operating system are as follows:
604 #. Load the kernel module:
606 .. code-block:: console
610 #. Use dmesg to get the t5nex instance assigned to the Chelsio card:
612 .. code-block:: console
618 .. code-block:: console
620 t5nex0: <Chelsio T520-CR> irq 16 at device 0.4 on pci2
621 cxl0: <port 0> on t5nex0
622 cxl1: <port 1> on t5nex0
623 t5nex0: PCIe x8, 2 ports, 14 MSI-X interrupts, 31 eq, 13 iq
625 In the example above, a Chelsio T520-CR card is bound to a t5nex0 instance.
627 #. Install cxgbetool from FreeBSD source repository:
629 .. code-block:: console
631 cd <path_to_FreeBSD_source>/tools/tools/cxgbetool/
634 #. Use cxgbetool to load the firmware image onto the card:
636 .. code-block:: console
638 cxgbetool t5nex0 loadfw <path_to_uwire>/src/network/firmware/t5fw-*.bin
640 #. Unload and reload the kernel module:
642 .. code-block:: console
647 #. Verify with sysctl:
649 .. code-block:: console
651 sysctl -a | grep "t5nex" | grep "firmware"
655 .. code-block:: console
657 dev.t5nex.0.firmware_version: 1.25.4.0
662 This section demonstrates how to launch **testpmd** with Chelsio
663 devices managed by librte_net_cxgbe in FreeBSD operating system.
665 #. Change to DPDK source directory where the target has been compiled in
666 section :ref:`driver-compilation`:
668 .. code-block:: console
670 cd <DPDK-source-directory>
672 #. Copy the contigmem kernel module to /boot/kernel directory:
674 .. code-block:: console
676 cp <build_dir>/kernel/freebsd/contigmem.ko /boot/kernel/
678 #. Add the following lines to /boot/loader.conf:
680 .. code-block:: console
682 # reserve 2 x 1G blocks of contiguous memory using contigmem driver
683 hw.contigmem.num_buffers=2
684 hw.contigmem.buffer_size=1073741824
685 # load contigmem module during boot process
688 The above lines load the contigmem kernel module during boot process and
689 allocate 2 x 1G blocks of contiguous memory to be used for DPDK later on.
690 This is to avoid issues with potential memory fragmentation during later
691 system up time, which may result in failure of allocating the contiguous
692 memory required for the contigmem kernel module.
694 #. Restart the system and ensure the contigmem module is loaded successfully:
696 .. code-block:: console
699 kldstat | grep "contigmem"
703 .. code-block:: console
705 2 1 0xffffffff817f1000 3118 contigmem.ko
707 #. Repeat step 1 to ensure that you are in the DPDK source directory.
709 #. Load the cxgbe kernel module:
711 .. code-block:: console
715 #. Get the PCI bus addresses of the interfaces bound to t5nex driver:
717 .. code-block:: console
719 pciconf -l | grep "t5nex"
723 .. code-block:: console
725 t5nex0@pci0:2:0:4: class=0x020000 card=0x00001425 chip=0x54011425 rev=0x00
727 In the above example, the t5nex0 is bound to 2:0:4 bus address.
731 Both the interfaces of a Chelsio 2-port adapter are bound to the
732 same PCI bus address.
734 #. Unload the kernel module:
736 .. code-block:: console
740 #. Set the PCI bus addresses to hw.nic_uio.bdfs kernel environment parameter:
742 .. code-block:: console
744 kenv hw.nic_uio.bdfs="2:0:4"
746 This automatically binds 2:0:4 to nic_uio kernel driver when it is loaded in
751 Currently, CXGBE PMD only supports the binding of PF4 for Chelsio NICs.
753 #. Load nic_uio kernel driver:
755 .. code-block:: console
757 kldload <build_dir>/kernel/freebsd/nic_uio.ko
759 #. Start testpmd with basic parameters:
761 .. code-block:: console
763 ./<build_dir>/app/dpdk-testpmd -l 0-3 -n 4 -a 0000:02:00.4 -- -i
767 .. code-block:: console
770 EAL: PCI device 0000:02:00.4 on NUMA socket 0
771 EAL: probe driver: 1425:5401 rte_cxgbe_pmd
772 EAL: PCI memory mapped at 0x8007ec000
773 EAL: PCI memory mapped at 0x842800000
774 EAL: PCI memory mapped at 0x80086c000
775 PMD: rte_cxgbe_pmd: fw: 1.25.4.0, TP: 0.1.23.2
776 PMD: rte_cxgbe_pmd: Coming up as MASTER: Initializing adapter
777 Interactive-mode selected
778 Configuring Port 0 (socket 0)
779 Port 0: 00:07:43:2D:EA:C0
780 Configuring Port 1 (socket 0)
781 Port 1: 00:07:43:2D:EA:C8
782 Checking link statuses...
783 PMD: rte_cxgbe_pmd: Port0: passive DA port module inserted
784 PMD: rte_cxgbe_pmd: Port1: passive DA port module inserted
785 Port 0 Link Up - speed 10000 Mbps - full-duplex
786 Port 1 Link Up - speed 10000 Mbps - full-duplex
792 Flow control pause TX/RX is disabled by default and can be enabled via
793 testpmd. Refer section :ref:`flow-control` for more details.
795 Sample Application Notes
796 ------------------------
800 Enable/Disable Flow Control
801 ~~~~~~~~~~~~~~~~~~~~~~~~~~~
803 Flow control pause TX/RX is disabled by default and can be enabled via
806 .. code-block:: console
808 testpmd> set flow_ctrl rx on tx on 0 0 0 0 mac_ctrl_frame_fwd off autoneg on 0
809 testpmd> set flow_ctrl rx on tx on 0 0 0 0 mac_ctrl_frame_fwd off autoneg on 1
811 To disable again, run:
813 .. code-block:: console
815 testpmd> set flow_ctrl rx off tx off 0 0 0 0 mac_ctrl_frame_fwd off autoneg off 0
816 testpmd> set flow_ctrl rx off tx off 0 0 0 0 mac_ctrl_frame_fwd off autoneg off 1
821 There are two ways to enable sending and receiving of jumbo frames via testpmd.
822 One method involves using the **mtu** command, which changes the mtu of an
823 individual port without having to stop the selected port. Another method
824 involves stopping all the ports first and then running **max-pkt-len** command
825 to configure the mtu of all the ports with a single command.
827 - To configure each port individually, run the mtu command as follows:
829 .. code-block:: console
831 testpmd> port config mtu 0 9000
832 testpmd> port config mtu 1 9000
834 - To configure all the ports at once, stop all the ports first and run the
835 max-pkt-len command as follows:
837 .. code-block:: console
839 testpmd> port stop all
840 testpmd> port config all max-pkt-len 9000