Hi,
Recently, I used iperf3 to test pfe slave interface performance on UDP, but it seems lower then expected, the results as following:
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 6] 0.00-60.00 sec 3.45 GBytes 494 Mbits/sec 0.001 ms 104/4221992 (0.0025%)
[ 6] 60.00-120.00 sec 3.45 GBytes 494 Mbits/sec 0.000 ms 2291/3623846 (0.063%)
[ 6] 120.00-180.00 sec 3.45 GBytes 495 Mbits/sec 0.001 ms 163/3622284 (0.0045%)
[ 6] 180.00-240.00 sec 3.46 GBytes 495 Mbits/sec 0.001 ms 55/3624933 (0.0015%)
[ 6] 240.00-300.00 sec 3.46 GBytes 495 Mbits/sec 0.001 ms 539/3623585 (0.015%)
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 6] 0.00-300.02 sec 17.3 GBytes 495 Mbits/sec 0.000 ms 0/18114116 (0%) sender
[ 6] 0.00-300.00 sec 17.3 GBytes 495 Mbits/sec 0.001 ms 3152/18114107 (0.017%) receiver
iperf Done.
And the slave interfaces are all configured following the below steps:
modprobe pfeng
modprobe pfeng-slave disable_netlink=1
#set flexible router for emc2
libfci_cli phyif-update -i emac2 --mode FLEXIBLE_ROUTER --E
libfci_cli logif-add -i emac2msbc --parent=emac2
libfci_cli logif-update -i emac2msbc -E --egres=hif2 --mr=DMAC --dmac=ff:ff:ff:ff:ff:ff
#set slave net namespace
ip netns add slave
ip link set pfe2sl netns slave
#set the pfe2sl to a unused ip address
ip netns exec slave ifconfig pfe2sl <localIP>
Then use following command to test:
ip netns exec slave iperf3 -c <serverIP> -i 1 -t 300 -u -b 1000m
And exchanging the server and client get the similar results.
So would you please help to confirm the issue and tell what will affect the iperf3 results and what we can do to promote the UDP performance?
Thank,
Zhantao
已解决! 转到解答。
Hi @hittzt,
Thank you for your patience.
According to the reference manual, Flexible Router classification would cause performance penalty. Therefore, to get the maximum performance of PFE, I suggest the Vlan Bridge mode. I did the tcp and udp tests and the configurations and results are as follow:
Disabled pfe0, pfe0sl, pfe1, pfess1, aux0, aux0sl in the BSP36,
manually load the .ko files in the kernel
insmod pfeng.ko
insmod pfeng-slave.ko disable_netlink=1
libfci_cli phyif-update -i emac2 --mode FLEXIBLE_ROUTER -P ON
libfci_cli logif-update -i s9.pfe2sl --mr DMAC --dmac 00:04:9f:be:ff:02
ifconfig pfe2sl 10.0.0.111
then set the host as client and S32G as server using the following command to test on the host.
iperf3 -c 10.0.0.111 -i 1 -t 30 -b 1000M -R -P 8
iperf3 -c 10.0.0.111 -i 1 -t 30 -b 1000M -R -P 8 -u
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-30.00 sec 519 MBytes 145 Mbits/sec 2624 sender
[ 8] 0.00-30.00 sec 483 MBytes 135 Mbits/sec 2722 sender
[ 10] 0.00-30.00 sec 444 MBytes 124 Mbits/sec 2631 sender
[ 12] 0.00-30.00 sec 427 MBytes 119 Mbits/sec 2807 sender
[ 14] 0.00-30.00 sec 408 MBytes 114 Mbits/sec 2700 sender
[ 16] 0.00-30.00 sec 381 MBytes 106 Mbits/sec 2721 sender
[ 18] 0.00-30.00 sec 360 MBytes 101 Mbits/sec 2623 sender
[ 20] 0.00-30.00 sec 345 MBytes 96.4 Mbits/sec 2730 sender
[SUM] 0.00-30.00 sec 3.29 GBytes 941 Mbits/sec 21558 sender
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 6] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 9] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 11] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 13] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 15] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 17] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 19] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253725 (0%) sender
[SUM] 0.00-30.00 sec 2.74 GBytes 784 Mbits/sec 0.000 ms 0/2029814 (0%) sender
exchange the server and client the result will be a little different, and the number of threads also affects the result.
Hope this helps.
Thanks,
Mayank s Patel
Hi @hittzt,
Thank you for your patience.
According to the reference manual, Flexible Router classification would cause performance penalty. Therefore, to get the maximum performance of PFE, I suggest the Vlan Bridge mode. I did the tcp and udp tests and the configurations and results are as follow:
Disabled pfe0, pfe0sl, pfe1, pfess1, aux0, aux0sl in the BSP36,
manually load the .ko files in the kernel
insmod pfeng.ko
insmod pfeng-slave.ko disable_netlink=1
libfci_cli phyif-update -i emac2 --mode FLEXIBLE_ROUTER -P ON
libfci_cli logif-update -i s9.pfe2sl --mr DMAC --dmac 00:04:9f:be:ff:02
ifconfig pfe2sl 10.0.0.111
then set the host as client and S32G as server using the following command to test on the host.
iperf3 -c 10.0.0.111 -i 1 -t 30 -b 1000M -R -P 8
iperf3 -c 10.0.0.111 -i 1 -t 30 -b 1000M -R -P 8 -u
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-30.00 sec 519 MBytes 145 Mbits/sec 2624 sender
[ 8] 0.00-30.00 sec 483 MBytes 135 Mbits/sec 2722 sender
[ 10] 0.00-30.00 sec 444 MBytes 124 Mbits/sec 2631 sender
[ 12] 0.00-30.00 sec 427 MBytes 119 Mbits/sec 2807 sender
[ 14] 0.00-30.00 sec 408 MBytes 114 Mbits/sec 2700 sender
[ 16] 0.00-30.00 sec 381 MBytes 106 Mbits/sec 2721 sender
[ 18] 0.00-30.00 sec 360 MBytes 101 Mbits/sec 2623 sender
[ 20] 0.00-30.00 sec 345 MBytes 96.4 Mbits/sec 2730 sender
[SUM] 0.00-30.00 sec 3.29 GBytes 941 Mbits/sec 21558 sender
[ ID] Interval Transfer Bitrate Jitter Lost/Total Datagrams
[ 5] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 6] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 9] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 11] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 13] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 15] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 17] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253727 (0%) sender
[ 19] 0.00-30.00 sec 350 MBytes 98.0 Mbits/sec 0.000 ms 0/253725 (0%) sender
[SUM] 0.00-30.00 sec 2.74 GBytes 784 Mbits/sec 0.000 ms 0/2029814 (0%) sender
exchange the server and client the result will be a little different, and the number of threads also affects the result.
Hope this helps.
Thanks,
Mayank s Patel