2.3.2. IPv4 Routed-Forwarding

Following sections include summary graphs of VPP Phy-to-Phy performance with IPv4 Routed-Forwarding, including NDR throughput (zero packet loss) and PDR throughput (<0.5% packet loss). Performance is reported for VPP running in multiple configurations of VPP worker thread(s), a.k.a. VPP data plane thread(s), and their physical CPU core(s) placement.

2.3.2.1. NDR Throughput

VPP NDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented in the graph below.

Figure 1. VPP 1thread 1core - NDR Throughput for Phy-to-Phy IPv4 Routed-Forwarding.

CSIT source code for the test cases used for above plots can be found in CSIT git repository:

+ cd tests/vpp/perf/ip4
+ grep -P 64B-1t1c-ethip4(udp)*-ip4(base|scale[a-z0-9]*)(-iacl50-state(ful|less)-flows10k.*|-oacl50-state(ful|less)-flows10k.*|-snat.*|-udp.*|-cop.*|-iacldst.*|-ipolice.*)*-ndrdisc 10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-ndrchk.robot 10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-pdrchk.robot 10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot 10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot 10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot 10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale2m-pdrchk.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot 40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4-ip4base-copwhtlistbase-ndrdisc
10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4-ip4base-iacldstbase-ndrdisc
10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4-ip4base-ipolicemarkbase-ndrdisc
10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4-ip4base-ndrdisc
10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4-ip4base-snat-1u-1p-ndrdisc
10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4-ip4scale200k-ndrdisc
10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4-ip4scale20k-ndrdisc
10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4-ip4scale2m-ndrdisc
10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-ndrdisc
10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-ndrdisc
10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4udp-ip4base-oacl50-stateful-flows10k-ndrdisc
10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4udp-ip4base-oacl50-stateless-flows10k-ndrdisc
10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4udp-ip4base-udpsrcscale15-snat-ndrdisc
10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrdisc
10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrdisc
10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrdisc
10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrdisc
10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrdisc
40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot:| tc01-64B-1t1c-ethip4-ip4base-ndrdisc

VPP NDR 64B packet throughput in 2t2c setup (2thread, 2core) is presented in the graph below.

Figure 2. VPP 2threads 2cores - NDR Throughput for Phy-to-Phy IPv4 Routed-Forwarding.

CSIT source code for the test cases used for above plots can be found in CSIT git repository:

+ cd tests/vpp/perf/ip4
+ grep -P 64B-2t2c-ethip4(udp)*-ip4(base|scale[a-z0-9]*)(-iacl50-state(ful|less)-flows10k.*|-oacl50-state(ful|less)-flows10k.*|-snat.*|-udp.*|-cop.*|-iacldst.*|-ipolice.*)*-ndrdisc 10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-ndrchk.robot 10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-pdrchk.robot 10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot 10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot 10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot 10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale2m-pdrchk.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot 40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4-ip4base-copwhtlistbase-ndrdisc
10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4-ip4base-iacldstbase-ndrdisc
10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4-ip4base-ipolicemarkbase-ndrdisc
10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4-ip4base-ndrdisc
10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4-ip4scale200k-ndrdisc
10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4-ip4scale20k-ndrdisc
10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4-ip4scale2m-ndrdisc
10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot:| tc03-64B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-ndrdisc
10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot:| tc03-64B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-ndrdisc
10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot:| tc03-64B-2t2c-ethip4udp-ip4base-oacl50-stateful-flows10k-ndrdisc
10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot:| tc03-64B-2t2c-ethip4udp-ip4base-oacl50-stateless-flows10k-ndrdisc
40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot:| tc07-64B-2t2c-ethip4-ip4base-ndrdisc

2.3.2.2. PDR Throughput

VPP PDR 64B packet throughput in 1t1c setup (1thread, 1core) is presented in the graph below. PDR measured for 0.5% packet loss ratio.

Figure 3. VPP 1thread 1core - PDR Throughput for Phy-to-Phy IPv4 Routed-Forwarding.

CSIT source code for the test cases used for above plots can be found in CSIT git repository:

+ cd tests/vpp/perf/ip4
+ grep -P 64B-1t1c-ethip4(udp)*-ip4(base|scale[a-z0-9]*)(-iacl50-state(ful|less)-flows10k.*|-oacl50-state(ful|less)-flows10k.*|-snat.*|-udp.*|-cop.*|-iacldst.*|-ipolice.*)*-pdrdisc 10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-ndrchk.robot 10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-pdrchk.robot 10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot 10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot 10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot 10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale2m-pdrchk.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot 40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4-ip4base-copwhtlistbase-pdrdisc
10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4-ip4base-iacldstbase-pdrdisc
10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4-ip4base-ipolicemarkbase-pdrdisc
10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4-ip4base-pdrdisc
10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4-ip4base-snat-1u-1p-pdrdisc
10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4-ip4scale200k-pdrdisc
10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4-ip4scale20k-pdrdisc
10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4-ip4scale2m-pdrdisc
10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4udp-ip4base-iacl50-stateful-flows10k-pdrdisc
10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4udp-ip4base-iacl50-stateless-flows10k-pdrdisc
10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4udp-ip4base-oacl50-stateful-flows10k-pdrdisc
10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4udp-ip4base-oacl50-stateless-flows10k-pdrdisc
10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4udp-ip4base-udpsrcscale15-snat-pdrdisc
10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4udp-ip4scale10-udpsrcscale15-snat-pdrdisc
10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4udp-ip4scale100-udpsrcscale15-snat-pdrdisc
10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4udp-ip4scale1000-udpsrcscale15-snat-pdrdisc
10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4udp-ip4scale2000-udpsrcscale15-snat-pdrdisc
10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot:| tc02-64B-1t1c-ethip4udp-ip4scale4000-udpsrcscale15-snat-pdrdisc

VPP PDR 64B packet throughput in 2t2c setup (2thread, 2core) is presented in the graph below. PDR measured for 0.5% packet loss ratio.

Figure 4. VPP 2thread 2core - PDR Throughput for Phy-to-Phy IPv4 Routed-Forwarding.

CSIT source code for the test cases used for above plots can be found in CSIT git repository:

+ cd tests/vpp/perf/ip4
+ grep -P 64B-2t2c-ethip4(udp)*-ip4(base|scale[a-z0-9]*)(-iacl50-state(ful|less)-flows10k.*|-oacl50-state(ful|less)-flows10k.*|-snat.*|-udp.*|-cop.*|-iacldst.*|-ipolice.*)*-pdrdisc 10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrchk.robot 10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-ndrchk.robot 10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4base-pdrchk.robot 10ge2p1x520-ethip4-ip4base-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale200k-ndrchk.robot 10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale20k-ndrchk.robot 10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale2m-ndrchk.robot 10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot 10ge2p1x520-ethip4-ip4scale2m-pdrchk.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl10sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl1sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-100flows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-100kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4base-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale10-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale100-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale1000-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale2000-udpsrcscale15-snat-ndrpdrdisc.robot 10ge2p1x520-ethip4udp-ip4scale4000-udpsrcscale15-snat-ndrpdrdisc.robot 40ge2p1xl710-ethip4-ip4base-ndrpdrdisc.robot
10ge2p1x520-ethip4-ip4base-copwhtlistbase-ndrpdrdisc.robot:| tc08-64B-2t2c-ethip4-ip4base-copwhtlistbase-pdrdisc
10ge2p1x520-ethip4-ip4base-iacldstbase-ndrpdrdisc.robot:| tc08-64B-2t2c-ethip4-ip4base-iacldstbase-pdrdisc
10ge2p1x520-ethip4-ip4base-ipolicemarkbase-ndrpdrdisc.robot:| tc08-64B-2t2c-ethip4-ip4base-ipolicemarkbase-pdrdisc
10ge2p1x520-ethip4-ip4base-ndrpdrdisc.robot:| tc08-64B-2t2c-ethip4-ip4base-pdrdisc
10ge2p1x520-ethip4-ip4scale200k-ndrpdrdisc.robot:| tc08-64B-2t2c-ethip4-ip4scale200k-pdrdisc
10ge2p1x520-ethip4-ip4scale20k-ndrpdrdisc.robot:| tc08-64B-2t2c-ethip4-ip4scale20k-pdrdisc
10ge2p1x520-ethip4-ip4scale2m-ndrpdrdisc.robot:| tc08-64B-2t2c-ethip4-ip4scale2m-pdrdisc
10ge2p1x520-ethip4udp-ip4base-iacl50sf-10kflows-ndrpdrdisc.robot:| tc04-64B-2t2c-ethip4udp-ip4base-iacl50-stateful-flows10k-pdrdisc
10ge2p1x520-ethip4udp-ip4base-iacl50sl-10kflows-ndrpdrdisc.robot:| tc04-64B-2t2c-ethip4udp-ip4base-iacl50-stateless-flows10k-pdrdisc
10ge2p1x520-ethip4udp-ip4base-oacl50sf-10kflows-ndrpdrdisc.robot:| tc04-64B-2t2c-ethip4udp-ip4base-oacl50-stateful-flows10k-pdrdisc
10ge2p1x520-ethip4udp-ip4base-oacl50sl-10kflows-ndrpdrdisc.robot:| tc04-64B-2t2c-ethip4udp-ip4base-oacl50-stateless-flows10k-pdrdisc