Intel® Ethernet Controller E810 Data Plane Development Kit (DPDK) 22.11/23.03

Configuration Guide

ID 764257
Date 06/16/2023
Version 22.11
Document Table of Contents

Running a Sample Application L3fwd Server

Following is an overview of the Layer 3 forwarding sample application, in which the forwarding decision is based on information read from the input packet. This is intended as a quick-start resource. For more information, see the Sample Applications User Guides at:

https://doc.dpdk.org/guides/sample_app_ug/l3_forward.html

  1. To compile a sample application with Meson, use the configure command.

    A single application can be compiled by passing in the application’s name. Alternatively, all sample applications can be compiled by specifying ‘all’. Run the meson command from the DPDK ‘build’ directory.

    ### Move into build directory cd dpdk-22.11/build ### Compile and build L3 Forwarding Sample Application meson configure -Dexamples=l3fwd ninja
  2. Run the application from the examples directory under build.

    The full path would look like:

    ./dpdk-22.11/build/examples/dpdk-l3fwd

The following are some usage examples of the application.

4 cores command line option:

./dpdk-l3fwd -l 22,24,26,28 -n 6 -- -p 0x0 --config="(0,0,22),(0,1,24),(0,2,26),(0,3,28)"

2 cores command line option:

./dpdk-l3fwd/build/l3fwd -l 3-4 -n 4 -a 18:00.0 -- -p 0x1 --parse-ptype --config="(0,0,3),(0,1,4)" -P

In these commands:

  • The -l option enables cores 22,24,26,28.
  • The -p option enables port 0,
  • The -config option enables one queue on each port and maps each (port,queue) pair to a specific core. For example, (0,0,22) maps queue 0 from port 0 to lcore 22.

Please review Section 20.3, Running the Application in the Sample Applications User Guides for a complete explanation of all flag options.

Example l3fwd output:

./dpdk-l3fwd -l 22,24,26,28 -n 6 -- -p 0x0 --config="(0,0,22),(0,1,24),(0,2,26),(0,3,28)" EAL: Detected 88 lcore(s) EAL: Detected 2 NUMA nodes EAL: Multi-process socket /var/run/dpdk/rte/mp_socket EAL: Selected IOVA mode 'PA' EAL: Probing VFIO support... EAL: PCI device 0000:00:04.0 on NUMA socket 0 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:00:04.1 on NUMA socket 0 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:00:04.2 on NUMA socket 0 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:00:04.3 on NUMA socket 0 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:00:04.4 on NUMA socket 0 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:00:04.5 on NUMA socket 0 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:00:04.6 on NUMA socket 0 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:00:04.7 on NUMA socket 0 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:3d:00.0 on NUMA socket 0 EAL: probe driver: 8086:37d2 net_i40e EAL: PCI device 0000:3d:00.1 on NUMA socket 0 EAL: probe driver: 8086:37d2 net_i40e EAL: PCI device 0000:80:04.0 on NUMA socket 1 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:80:04.1 on NUMA socket 1 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:80:04.2 on NUMA socket 1 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:80:04.3 on NUMA socket 1 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:80:04.4 on NUMA socket 1 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:80:04.5 on NUMA socket 1 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:80:04.6 on NUMA socket 1 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:80:04.7 on NUMA socket 1 EAL: probe driver: 8086:2021 rawdev_ioat EAL: PCI device 0000:86:00.0 on NUMA socket 1 EAL: probe driver: 8086:10c9 net_e1000_igb EAL: PCI device 0000:86:00.1 on NUMA socket 1 EAL: probe driver: 8086:10c9 net_e1000_igb EAL: PCI device 0000:af:00.0 on NUMA socket 1 EAL: probe driver: 8086:1592 net_ice ice_load_pkg_type(): Active package is: 1.3.28.0, ICE OS Default Package ice_init_proto_xtr(): Protocol extraction is not supported LPM or EM none selected, default LPM on Initializing port 0 ... Creating queues: nb_rxq=4 nb_txq=4... Port 0 modified RSS hash function based on hardware support,requested:0xa38c configured:0x2288 Address:68:05:CA:5C:CF:A8, Destination:02:00:00:00:00:00, Allocated mbuf pool on socket 1 LPM: Adding route 192.18.0.0 / 24 (0) LPM: Adding route 192.18.1.0 / 24 (1) LPM: Adding route 192.18.2.0 / 24 (2) LPM: Adding route 192.18.3.0 / 24 (3) LPM: Adding route 192.18.4.0 / 24 (4) LPM: Adding route 192.18.5.0 / 24 (5) LPM: Adding route 192.18.6.0 / 24 (6) LPM: Adding route 192.18.7.0 / 24 (7) LPM: Adding route 2001:200:: / 48 (0) LPM: Adding route 2001:200:0:0:1:: / 48 (1) LPM: Adding route 2001:200:0:0:2:: / 48 (2) LPM: Adding route 2001:200:0:0:3:: / 48 (3) LPM: Adding route 2001:200:0:0:4:: / 48 (4) LPM: Adding route 2001:200:0:0:5:: / 48 (5) LPM: Adding route 2001:200:0:0:6:: / 48 (6) LPM: Adding route 2001:200:0:0:7:: / 48 (7) txq=22,0,1 txq=24,1,1 txq=26,2,1 txq=28,3,1 Initializing rx queues on lcore 22 ... rxq=0,0,1 Initializing rx queues on lcore 24 ... rxq=0,1,1 Initializing rx queues on lcore 26 ... rxq=0,2,1 Initializing rx queues on lcore 28 ... rxq=0,3,1 Checking link status..........................................................................................done Port 0 Link Down L3FWD: entering main loop on lcore 24 L3FWD: -- lcoreid=24 portid=0 rxqueueid=1 L3FWD: entering main loop on lcore 26 L3FWD: -- lcoreid=26 portid=0 rxqueueid=2 L3FWD: entering main loop on lcore 22 L3FWD: -- lcoreid=22 portid=0 rxqueueid=0 L3FWD: entering main loop on lcore 28 L3FWD: -- lcoreid=28 portid=0 rxqueueid=3