[dpdk-users] How to test l3fwd?

Charlie Li charlie.li at gmail.com
Wed Jul 20 22:06:03 CEST 2016


I am also attaching the full logs from l3fwd and l2fwd.

On Wed, Jul 20, 2016 at 3:02 PM, Charlie Li <charlie.li at gmail.com> wrote:

> Hello,
>
> My setup is dpdk-2.2.0 on Fedora 23 Server with kernel 4.5.7.
>
> I have been testing L2 throughput with l2fwd and an Ixia traffic
> generator. It works as expected.
>
> Command: ./l2fwd -c 0xf -n 4 -- -p 0x3
> Ixia traffic: MAC (Ethernet frames)
>
>
> Now I am moving to test L3 throughput with l3fwd, but cannot start traffic
> from Ixia
>
> Command: ./l3fwd -c 0xf -n 4 -- -p 0x3 --config="(0,0,2)(1,0,3)"
> Ixia traffic: IPv4 (IP packets)
>
> My question is:
>
> What are the IP addresses of the two ports?
>
> "LPM: Adding route 0x01010100 / 24 (0)
> LPM: Adding route 0x02010100 / 24 (1)"
>
> Does it mean the IP addresses are 1.1.1.0 (netmask 255.255.255.0) for
> port0 and 2.1.1.0 (netmask 255.255.255.0) for port1?
>
> I set up the following two flows, but Ixia complains "unreachable"
>
> Flow1: Ixia PortA (1.1.1.100) -> DPDK Port0 (1.1.1.0) .........(l3fwd)
> ........ DPDK Port1 (2.1.1.0) -> Ixia PortB (2.1.1.100)
>           Src IP: 1.1.1.100; Dst IP: 2.1.1.100; Gateway: 1.1.1.0
>
> Flow2: Ixia PortB (2.1.1.100) -> DPDK Port1 (2.1.1.0) .........(l3fwd)
> ........ DPDK Port0 (1.1.1.0) -> Ixia PortA (1.1.1.100)
>           Src IP: 2.1.1.100; Dst IP: 1.1.1.100; Gateway: 2.1.1.0
>
> Thanks,
> Charlie
>
>
-------------- next part --------------
[cli at cli-desktop l3fwd]$ sudo -E ./build/l3fwd -c 0xf -n 4 -- -p 0x3 --config="(0,0,2)(1,0,3)"
EAL: Detected lcore 0 as core 0 on socket 0
EAL: Detected lcore 1 as core 1 on socket 0
EAL: Detected lcore 2 as core 2 on socket 0
EAL: Detected lcore 3 as core 3 on socket 0
EAL: Support maximum 128 logical core(s) by configuration.
EAL: Detected 4 lcore(s)
EAL: VFIO modules not all loaded, skip VFIO support...
EAL: Setting up physically contiguous memory...
EAL: Ask a virtual area of 0x40000000 bytes
EAL: Virtual area found at 0x7f4e80000000 (size = 0x40000000)
EAL: Requesting 1 pages of size 1024MB from socket 0
EAL: TSC frequency is ~2096067 KHz
EAL: Master lcore 0 is ready (tid=5486e8c0;cpuset=[0])
EAL: lcore 1 is ready (tid=53149700;cpuset=[1])
EAL: lcore 2 is ready (tid=52948700;cpuset=[2])
EAL: lcore 3 is ready (tid=52147700;cpuset=[3])
EAL: PCI device 0000:02:00.0 on NUMA socket -1
EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
EAL:   PCI memory mapped at 0x7f4ec0000000
EAL:   PCI memory mapped at 0x7f4ec0080000
PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 5
PMD: eth_ixgbe_dev_init(): port 0 vendorID=0x8086 deviceID=0x10fb
EAL: PCI device 0000:02:00.1 on NUMA socket -1
EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
EAL:   PCI memory mapped at 0x7f4ec0084000
EAL:   PCI memory mapped at 0x7f4ec0104000
PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 6
PMD: eth_ixgbe_dev_init(): port 1 vendorID=0x8086 deviceID=0x10fb
Initializing port 0 ... Creating queues: nb_rxq=1 nb_txq=4...  Address:90:E2:BA:4F:3F:B0, Destination:02:00:00:00:00:00, Allocated mbuf pool on socket 0
LPM: Adding route 0x01010100 / 24 (0)
LPM: Adding route 0x02010100 / 24 (1)
LPM: Adding route IPV6 / 48 (0)
LPM: Adding route IPV6 / 48 (1)
txq=0,0,0 PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f4eb48d69c0 hw_ring=0x7f4eb48d8a00 dma_addr=0x1b48d8a00
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
txq=1,1,0 PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f4eb48c4840 hw_ring=0x7f4eb48c6880 dma_addr=0x1b48c6880
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
txq=2,2,0 PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f4eb48b26c0 hw_ring=0x7f4eb48b4700 dma_addr=0x1b48b4700
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
txq=3,3,0 PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f4eb48a0540 hw_ring=0x7f4eb48a2580 dma_addr=0x1b48a2580
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.

Initializing port 1 ... Creating queues: nb_rxq=1 nb_txq=4...  Address:90:E2:BA:4F:3F:B1, Destination:02:00:00:00:00:01, txq=0,0,0 PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f4eb488e2c0 hw_ring=0x7f4eb4890300 dma_addr=0x1b4890300
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
txq=1,1,0 PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f4eb487c140 hw_ring=0x7f4eb487e180 dma_addr=0x1b487e180
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
txq=2,2,0 PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f4eb4869fc0 hw_ring=0x7f4eb486c000 dma_addr=0x1b486c000
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
txq=3,3,0 PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f4eb4857e40 hw_ring=0x7f4eb4859e80 dma_addr=0x1b4859e80
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.


Initializing rx queues on lcore 0 ...
Initializing rx queues on lcore 1 ...
Initializing rx queues on lcore 2 ... rxq=0,0,0 PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f4eb4847540 sw_sc_ring=0x7f4eb4847000 hw_ring=0x7f4eb4847a80 dma_addr=0x1b4847a80

Initializing rx queues on lcore 3 ... rxq=1,0,0 PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f4eb48366c0 sw_sc_ring=0x7f4eb4836180 hw_ring=0x7f4eb4836c00 dma_addr=0x1b4836c00

PMD: ixgbe_set_rx_function(): Port[0] doesn't meet Vector Rx preconditions or RTE_IXGBE_INC_VECTOR is not enabled
PMD: ixgbe_set_rx_function(): Rx Burst Bulk Alloc Preconditions are satisfied. Rx Burst Bulk Alloc function will be used on port=0.
PMD: ixgbe_set_rx_function(): Port[1] doesn't meet Vector Rx preconditions or RTE_IXGBE_INC_VECTOR is not enabled
PMD: ixgbe_set_rx_function(): Rx Burst Bulk Alloc Preconditions are satisfied. Rx Burst Bulk Alloc function will be used on port=1.

Checking link statusdone
Port 0 Link Up - speed 10000 Mbps - full-duplex
Port 1 Link Up - speed 10000 Mbps - full-duplex
L3FWD: lcore 1 has nothing to do
L3FWD: entering main loop on lcore 2
L3FWD:  -- lcoreid=2 portid=0 rxqueueid=0
L3FWD: entering main loop on lcore 3
L3FWD:  -- lcoreid=3 portid=1 rxqueueid=0
L3FWD: lcore 0 has nothing to do
-------------- next part --------------
[cli at cli-desktop l2fwd]$ sudo -E ./build/l2fwd -c 0xf -n 4 -- -p 0x3
EAL: Detected lcore 0 as core 0 on socket 0
EAL: Detected lcore 1 as core 1 on socket 0
EAL: Detected lcore 2 as core 2 on socket 0
EAL: Detected lcore 3 as core 3 on socket 0
EAL: Support maximum 128 logical core(s) by configuration.
EAL: Detected 4 lcore(s)
EAL: VFIO modules not all loaded, skip VFIO support...
EAL: Setting up physically contiguous memory...
EAL: Ask a virtual area of 0x40000000 bytes
EAL: Virtual area found at 0x7f3c40000000 (size = 0x40000000)
EAL: Requesting 1 pages of size 1024MB from socket 0
EAL: TSC frequency is ~2096066 KHz
EAL: Master lcore 0 is ready (tid=1a0a8c0;cpuset=[0])
EAL: lcore 1 is ready (tid=2fa700;cpuset=[1])
EAL: lcore 3 is ready (tid=ff2f8700;cpuset=[3])
EAL: lcore 2 is ready (tid=ffaf9700;cpuset=[2])
EAL: PCI device 0000:02:00.0 on NUMA socket -1
EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
EAL:   PCI memory mapped at 0x7f3c80000000
EAL:   PCI memory mapped at 0x7f3c80080000
PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 5
PMD: eth_ixgbe_dev_init(): port 0 vendorID=0x8086 deviceID=0x10fb
EAL: PCI device 0000:02:00.1 on NUMA socket -1
EAL:   probe driver: 8086:10fb rte_ixgbe_pmd
EAL:   PCI memory mapped at 0x7f3c80084000
EAL:   PCI memory mapped at 0x7f3c80104000
PMD: eth_ixgbe_dev_init(): MAC: 2, PHY: 18, SFP+: 6
PMD: eth_ixgbe_dev_init(): port 1 vendorID=0x8086 deviceID=0x10fb
Lcore 0: RX port 0
Lcore 1: RX port 1
Initializing port 0... PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f3c7e8fed40 sw_sc_ring=0x7f3c7e8fe800 hw_ring=0x7f3c7e8ff280 dma_addr=0x1be8ff280
PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f3c7e8ec640 hw_ring=0x7f3c7e8ee680 dma_addr=0x1be8ee680
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
PMD: ixgbe_set_rx_function(): Vector rx enabled, please make sure RX burst size no less than 4 (port=0).
done:
Port 0, MAC address: 90:E2:BA:4F:3F:B0

Initializing port 1... PMD: ixgbe_dev_rx_queue_setup(): sw_ring=0x7f3c7e8dbc40 sw_sc_ring=0x7f3c7e8db700 hw_ring=0x7f3c7e8dc180 dma_addr=0x1be8dc180
PMD: ixgbe_dev_tx_queue_setup(): sw_ring=0x7f3c7e8c9540 hw_ring=0x7f3c7e8cb580 dma_addr=0x1be8cb580
PMD: ixgbe_set_tx_function(): Using simple tx code path
PMD: ixgbe_set_tx_function(): Vector tx enabled.
PMD: ixgbe_set_rx_function(): Vector rx enabled, please make sure RX burst size no less than 4 (port=1).
done:
Port 1, MAC address: 90:E2:BA:4F:3F:B1


Checking link statusdone
Port 0 Link Up - speed 10000 Mbps - full-duplex
Port 1 Link Up - speed 10000 Mbps - full-duplex
L2FWD: entering main loop on lcore 1
L2FWD:  -- lcoreid=1 portid=1
L2FWD: lcore 2 has nothing to do
L2FWD: entering main loop on lcore 0
L2FWD:  -- lcoreid=0 portid=0

Port statistics ====================================
Statistics for port 0 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Statistics for port 1 ------------------------------
Packets sent:                        0
Packets received:                    0
Packets dropped:                     0
Aggregate statistics ===============================
Total packets sent:                  0
Total packets received:              0
Total packets dropped:               0
====================================================
L2FWD: lcore 3 has nothing to do


More information about the users mailing list