Hi VPP team,
need to wrap my head around why VPP is not even able to process 10 Mpps one single-core setup.
Afaik VPP xconnect ( comparable to l2fwd) or L3-routing ( l3wfd) should yield 10 Mpps even back in 2017 ( slide 15 https://wiki.fd.io/images/3/31/Benchmarking-sw-data-planes-Dec5_2017.pdf or p16 https://lfnetworking.org/wp-content/uploads/sites/7/2022/06/benchmarking_sw_data_planes_skx_bdx_mar07_2019.pdf )
My setup is quite up-to-date:
Traffic Gen: TRex running on Intel(R) Xeon(R) Gold 6354 CPU @ 3.00GHz
DuT: VPP 22.10 running on Icelake Intel(R) Xeon(R) Platinum 8352Y CPU @ 2.20GHz
NICs: ConnectX-6 Dx Dualport
OS: Ubuntu Server 20.04
VPP compiled from src . Tag 22.10. Incl. changes to compile for MLX5_PMD.
VPP show dpdk version:
DPDK Version: DPDK 22.07.0
DPDK EAL init args: --in-memory --no-telemetry --file-prefix vpp -a 0000:4b:00.0,mprq_en=1,rxqs_min_mprq=1,mprq_log_stride_num=9,txq_inline_mpw=128,rxq_pkt_pad_en=1 -a 0000:4b:00.1,mprq_en=1,rxqs_min_mprq=1,mprq_log_stride_num=9,txq_inline_mpw=128,rxq_pkt_pad_en=1
DPDK EAL init args: --in-memory --no-telemetry --file-prefix vpp -a 0000:4b:00.0,mprq_en=1,rxqs_min_mprq=1,mprq_log_stride_num=9,txq_inline_mpw=128,rxq_pkt_pad_en=1 -a 0000:4b:00.1,mprq_en=1,rxqs_min_mprq=1,mprq_log_stride_num=9,txq_inline_mpw=128,rxq_pkt_pad_en=1
QUESTION:
Running the a plain DPDK 22.07 example l2fwd or l3fwd yields > 10 Mpps ( 100 Gbps line rate) with 1 lcore. Also no additional dpdk options required.
Running the a plain DPDK 22.07 example l2fwd or l3fwd yields > 10 Mpps ( 100 Gbps line rate) with 1 lcore. Also no additional dpdk options required.
Once I run either xconnect or L3 routing with VPP, the same test drops to 6 Mpps or less. It is puzzling why VPP is not even close the same exact dpdk l2fwd/ l3wfd example? Any advise?
Here are the additional cmds to configure either l2fwd or L3-routing in VPP:
```bash
set interface l2 xconnect HundredGigabitEthernet4b/0/0 HundredGigabitEthernet4b/0/1
set interface l2 xconnect HundredGigabitEthernet4b/0/1 HundredGigabitEthernet4b/0/0
set interface l2 xconnect HundredGigabitEthernet4b/0/1 HundredGigabitEthernet4b/0/0
# l3 routing
set interface ip address HundredGigabitEthernet4b/0/0 10.10.1.1/24
set interface ip address HundredGigabitEthernet4b/0/1 10.10.2.1/24
ip route add 16.0.0.0/8 via 10.10.1.2
ip route add 48.0.0.0/8 via 10.10.2.2
set interface ip address HundredGigabitEthernet4b/0/1 10.10.2.1/24
ip route add 16.0.0.0/8 via 10.10.1.2
ip route add 48.0.0.0/8 via 10.10.2.2
```
Thread 0 vpp_main (lcore 4) Time 2472.6, 10 sec internal node vector rate 0.00 loops/sec 1244718.44 vector rates in 0.0000e0, out 8.0885e-4, drop 0.0000e0, punt 0.0000e0 Name State Calls Vectors Suspends Clocks Vectors/Call HundredGigabitEthernet4b/0/0-o active 1 1 0 1.67e4 1.00 HundredGigabitEthernet4b/0/0-t active 1 1 0 1.81e4 1.00 HundredGigabitEthernet4b/0/1-o active 1 1 0 2.53e3 1.00 HundredGigabitEthernet4b/0/1-t active 1 1 0 2.43e3 1.00 acl-plugin-fa-cleaner-process event wait 0 0 1 7.26e3 0.00 admin-up-down-process event wait 0 0 1 8.95e3 0.00 api-rx-from-ring any wait 0 0 130 5.58e4 0.00 avf-process event wait 0 0 1 5.74e3 0.00 bfd-process event wait 0 0 1 3.13e3 0.00 bond-process event wait 0 0 1 2.27e3 0.00 cnat-scanner-process event wait 0 0 1 5.74e3 0.00 dhcp-client-process any wait 0 0 3 1.10e4 0.00 dhcp6-client-cp-process any wait 0 0 1 3.22e3 0.00 dhcp6-pd-client-cp-process any wait 0 0 1 2.83e3 0.00 dhcp6-pd-reply-publisher-proce event wait 0 0 1 3.21e3 0.00 dhcp6-reply-publisher-process event wait 0 0 1 3.01e3 0.00 dpdk-process any wait 0 0 824 1.18e7 0.00 fib-walk any wait 0 0 1235 2.86e3 0.00 flow-report-process any wait 0 0 1 3.32e3 0.00 flowprobe-timer-process any wait 0 0 1 6.21e3 0.00 igmp-timer-process event wait 0 0 1 5.61e3 0.00 ikev2-manager-process event wait 0 0 1 8.69e3 0.00 ioam-export-process any wait 0 0 1 4.40e3 0.00 ip-neighbor-event event wait 0 0 1 2.77e3 0.00 ip4-full-reassembly-expire-wal any wait 0 0 49356 1.66e3 0.00 ip4-neighbor-age-process event wait 0 0 1 2.66e3 0.00 ip4-sv-reassembly-expire-walk any wait 0 0 247 2.25e3 0.00 ip6-full-reassembly-expire-wal any wait 0 0 49356 1.78e3 0.00 ip6-mld-process any wait 0 0 2470 1.39e3 0.00 ip6-neighbor-age-process event wait 0 0 1 2.89e3 0.00 ip6-ra-process any wait 0 0 2470 1.41e3 0.00 ip6-rs-process any wait 0 0 1 2.86e3 0.00 ip6-sv-reassembly-expire-walk any wait 0 0 247 2.63e3 0.00 l2-arp-term-publisher event wait 0 0 1 2.29e3 0.00 l2fib-mac-age-scanner-process event wait 0 0 1 4.13e3 0.00 lldp-process event wait 0 0 1 1.16e6 0.00 memif-process event wait 0 0 1 6.91e3 0.00 nat44-ei-ha-process event wait 0 0 1 5.65e3 0.00 nsh-md2-ioam-export-process any wait 0 0 1 5.69e3 0.00 rd-cp-process any wait 0 0 1 7.79e3 0.00 send-dhcp6-client-message-proc any wait 0 0 1 3.34e3 0.00 send-dhcp6-pd-client-message-p any wait 0 0 1 7.39e3 0.00 startup-config-process done 1 0 1 1.49e9 0.00 statseg-collector-process time wait 0 0 247 1.07e6 0.00 udp-ping-process any wait 0 0 1 7.07e3 0.00 unix-cli-local:4 active 4 0 9 3.26e12 0.00 unix-cli-new-session any wait 0 0 14 6.39e7 0.00 unix-epoll-input polling 239020776 0 0 1.63e4 0.00 vhost-user-process any wait 0 0 1 8.68e3 0.00 vhost-user-send-interrupt-proc any wait 0 0 1 3.98e3 0.00 vpe-link-state-process event wait 0 0 2 4.06e3 0.00 vrrp-periodic-process event wait 0 0 1 5.51e3 0.00 vxlan-gpe-ioam-export-process any wait 0 0 1 3.04e3 0.00 wg-timer-manager event wait 0 0 1 1.52e5 0.00 --------------- Thread 1 vpp_wk_0 (lcore 6) Time 2472.6, 10 sec internal node vector rate 0.00 loops/sec 9492929.41 vector rates in 6.5792e6, out 6.5792e6, drop 4.6913e-2, punt 0.0000e0 Name State Calls Vectors Suspends Clocks Vectors/Call HundredGigabitEthernet4b/0/0-o active 692990734 8631229901 0 1.04e1 12.46 HundredGigabitEthernet4b/0/0-t active 692990734 8631229901 0 4.04e1 12.46 HundredGigabitEthernet4b/0/1-o active 695352295 7636739975 0 1.17e1 10.98 HundredGigabitEthernet4b/0/1-t active 695352295 7636739975 0 3.39e1 10.98 arp-input active 28 30 0 2.03e3 1.07 arp-reply active 28 30 0 1.47e4 1.07 dpdk-input polling 5329333974 16267969992 0 9.33e1 3.05 drop active 105 116 0 1.14e3 1.10 error-drop active 105 116 0 6.06e2 1.10 ethernet-input active 1388343054 16267969992 0 2.27e1 11.72 interface-output active 2 2 0 1.51e3 1.00 ip4-input-no-checksum active 924091013 16267969874 0 1.77e1 17.60 ip4-load-balance active 924091013 16267969874 0 1.02e1 17.60 ip4-lookup active 924091013 16267969874 0 1.46e1 17.60 ip4-rewrite active 924091013 16267969874 0 1.66e1 17.60 lldp-input active 77 88 0 3.54e3 1.14 unix-epoll-input polling 5199376 0 0 2.77e2 0.00 DPDK Version: DPDK 22.07.0 DPDK EAL init args: --in-memory --no-telemetry --file-prefix vpp -a 0000:4b:00.0,mprq_en=1,rxqs_min_mprq=1,mprq_log_stride_num=9,txq_inline_mpw=128,rxq_pkt_pad_en=1 -a 0000:4b:00.1,mprq_en=1,rxqs_min_mprq=1,mprq_log_stride_num=9,txq_inline_mpw=128,rxq_pkt_pad_en=1 Name Idx Link Hardware HundredGigabitEthernet4b/0/0 1 up HundredGigabitEthernet4b/0/0 Link speed: 100 Gbps RX Queues: queue thread mode 0 vpp_wk_0 (1) polling TX Queues: TX Hash: [name: hash-eth-l34 priority: 50 description: Hash ethernet L34 headers] queue shared thread(s) 0 no 0 1 no 1 Ethernet address b8:ce:f6:dc:c1:f0 Mellanox ConnectX-4 Family carrier up full duplex max-frame-size 9022 promisc flags: admin-up promisc maybe-multiseg tx-offload intel-phdr-cksum rx-ip4-cksum Devargs: mprq_en=1,rxqs_min_mprq=1,mprq_log_stride_num=9,txq_inline_mpw=128,rxq_pkt_pad_en=1 rx: queues 1 (max 1024), desc 4096 (min 0 max 65535 align 1) tx: queues 2 (max 1024), desc 4096 (min 0 max 65535 align 1) pci: device 15b3:101d subsystem 15b3:0058 address 0000:4b:00.00 numa 0 switch info: name 0000:4b:00.0 domain id 0 port id 65535 max rx packet len: 65536 promiscuous: unicast on all-multicast on vlan offload: strip off filter off qinq off rx offload avail: vlan-strip ipv4-cksum udp-cksum tcp-cksum vlan-filter scatter timestamp rss-hash rx offload active: ipv4-cksum scatter tx offload avail: vlan-insert ipv4-cksum udp-cksum tcp-cksum tcp-tso outer-ipv4-cksum vxlan-tnl-tso gre-tnl-tso geneve-tnl-tso multi-segs udp-tnl-tso ip-tnl-tso tx offload active: ipv4-cksum udp-cksum tcp-cksum multi-segs rss avail: ipv4-frag ipv4-tcp ipv4-udp ipv4-other ipv4 ipv6-tcp-ex ipv6-udp-ex ipv6-frag ipv6-tcp ipv6-udp ipv6-other ipv6-ex ipv6 esp l4-dst-only l4-src-only l3-dst-only l3-src-only rss active: none tx burst mode: Enhanced MPW + MULTI + TSO + SWP + CSUM + METADATA tx burst function: (not available) rx burst mode: Scalar rx burst function: (not available)
tx frames ok 8631229902 tx bytes ok 11920117654763 rx frames ok 7636740042 rx bytes ok 2283761417707 rx missed 86941 extended stats: rx_good_packets 7636740042 tx_good_packets 8631229902 rx_good_bytes 2283761417707 tx_good_bytes 11920117654763 rx_missed_errors 86941 rx_q0_packets 7636740042 rx_q0_bytes 2283761417707 tx_q0_packets 1 tx_q0_bytes 42 tx_q1_packets 8631229901 tx_q1_bytes 11920117654721 rx_unicast_packets 7636826915 rx_unicast_bytes 2314334535080 tx_unicast_packets 8631229901 tx_unicast_bytes 11920117654721 rx_multicast_packets 50 rx_multicast_bytes 4400 rx_broadcast_packets 18 rx_broadcast_bytes 1152 tx_broadcast_packets 1 tx_broadcast_bytes 60 tx_phy_packets 8631229952 rx_phy_packets 7636826983 tx_phy_bytes 11954642578789 rx_phy_bytes 2314334540632 rx_out_of_buffer 86941 HundredGigabitEthernet4b/0/1 2 up HundredGigabitEthernet4b/0/1 Link speed: 100 Gbps RX Queues: queue thread mode 0 vpp_wk_0 (1) polling TX Queues: TX Hash: [name: hash-eth-l34 priority: 50 description: Hash ethernet L34 headers] queue shared thread(s) 0 no 0 1 no 1 Ethernet address b8:ce:f6:dc:c1:f1 Mellanox ConnectX-4 Family carrier up full duplex max-frame-size 9022 promisc flags: admin-up promisc maybe-multiseg tx-offload intel-phdr-cksum rx-ip4-cksum Devargs: mprq_en=1,rxqs_min_mprq=1,mprq_log_stride_num=9,txq_inline_mpw=128,rxq_pkt_pad_en=1 rx: queues 1 (max 1024), desc 4096 (min 0 max 65535 align 1) tx: queues 2 (max 1024), desc 4096 (min 0 max 65535 align 1) pci: device 15b3:101d subsystem 15b3:0058 address 0000:4b:00.01 numa 0 switch info: name 0000:4b:00.1 domain id 1 port id 65535 max rx packet len: 65536 promiscuous: unicast on all-multicast on vlan offload: strip off filter off qinq off rx offload avail: vlan-strip ipv4-cksum udp-cksum tcp-cksum vlan-filter scatter timestamp rss-hash rx offload active: ipv4-cksum scatter tx offload avail: vlan-insert ipv4-cksum udp-cksum tcp-cksum tcp-tso outer-ipv4-cksum vxlan-tnl-tso gre-tnl-tso geneve-tnl-tso multi-segs udp-tnl-tso ip-tnl-tso tx offload active: ipv4-cksum udp-cksum tcp-cksum multi-segs rss avail: ipv4-frag ipv4-tcp ipv4-udp ipv4-other ipv4 ipv6-tcp-ex ipv6-udp-ex ipv6-frag ipv6-tcp ipv6-udp ipv6-other ipv6-ex ipv6 esp l4-dst-only l4-src-only l3-dst-only l3-src-only rss active: none tx burst mode: Enhanced MPW + MULTI + TSO + SWP + CSUM + METADATA tx burst function: (not available) rx burst mode: Scalar rx burst function: (not available) tx frames ok 7636739976 tx bytes ok 2283761412529 rx frames ok 8631229952 rx bytes ok 11920117658741 rx missed 155395 extended stats: rx_good_packets 8631229952 tx_good_packets 7636739976 rx_good_bytes 11920117658741 tx_good_bytes 2283761412529 rx_missed_errors 155395 rx_q0_packets 8631229952 rx_q0_bytes 11920117658741 tx_q0_packets 1 tx_q0_bytes 42 tx_q1_packets 7636739975 tx_q1_bytes 2283761412487 rx_unicast_packets 8631385295 rx_unicast_bytes 11954858334100 tx_unicast_packets 7636739975 tx_unicast_bytes 2283761412487 rx_multicast_packets 40 rx_multicast_bytes 3520 rx_broadcast_packets 12 rx_broadcast_bytes 768 tx_broadcast_packets 1 tx_broadcast_bytes 60 tx_phy_packets 7651773752 rx_phy_packets 14044813088 tx_phy_bytes 2315270535363 rx_phy_bytes 19454244496723 rx_phy_discard_packets 5413427741 rx_out_of_buffer 155395 local0 0 down local0 Link speed: unknown local
startup.conf
Description: Binary data
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#22396): https://lists.fd.io/g/vpp-dev/message/22396 Mute This Topic: https://lists.fd.io/mt/95959719/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-