NOTE: Run iperf TX commands on ZynqMP and RX commands on the server machine. a) TCP TX - MTU 1500 zynqmp# taskset -c 2 iperf3 -c SERVER_IP -T s1 -p 5101 -t 60 -i 60 -b 2500M -Z & zynqmp# taskset -c 3 iperf3 -c SERVER_IP -T s2 -p 5102 -t 60 -i 60 -b 2500M -Z & b) UDP TX - MTU 1500 zynqmp# taskset -c 0 iperf3 -u -P 2 -c SERVER_IP -T s1 -p 5101 -t 60 -i 60 -b 2500M -Z & zynqmp# taskset -c 1 iperf3 -u -P 2 -c SERVER_IP -T s2 -p 5102 -t 60 -i 60 -b 2500M -Z & zynqmp# taskset -c 2 iperf3 -u -P 2 -c SERVER_IP -T s3 -p 5103 -t 60 -i 60 -b 2500M -Z & zynqmp# taskset -c 3 iperf3 -u -P 2 -c SERVER_IP -T s4 -p 5104 -t 60 -i 60 -b 2500M -Z & c) TCP TX - MTU 9000 zynqmp# taskset -c 2 iperf3 -c SERVER_IP -T s1 -p 5101 -t 60 -i 60 -b 2500M & zynqmp# taskset -c 3 iperf3 -c SERVER_IP -T s2 -p 5102 -t 60 -i 60 -b 2500M & d) UDP TX - MTU 9000 zynqmp# taskset -c 0 iperf3 -P 2 -u -c SERVER_IP -T s1 -p 5101 -t 60 -i 60 -b 2500M -Z & zynqmp# taskset -c 1 iperf3 -P 2 -u -c SERVER_IP -T s2 -p 5102 -t 60 -i 60 -b 2500M -Z & zynqmp# taskset -c 2 iperf3 -P 2 -u -c SERVER_IP -T s3 -p 5103 -t 60 -i 60 -b 2500M -Z & zynqmp# taskset -c 3 iperf3 -P 2 -u -c SERVER_IP -T s4 -p 5104 -t 60 -i 60 -b 2500M -Z & e) TCP RX - MTU 9000 server# iperf3 -c SERVER_IP -T s1 -p 5101 -t 60 -i 60 -b 4000M -Z & server# iperf3 -c SERVER_IP -T s2 -p 5102 -t 60 -i 60 -b 4000M -Z & f) UDP RX - MTU 9000 server# iperf3 -c SERVER_IP -u -T s1 -p 5101 -t 60 -i 60 -b 4000M -Z -l 8972 & server# iperf3 -c SERVER_IP -u -T s2 -p 5102 -t 60 -i 60 -b 4000M -Z -l 8972 & NOTE: Since 4.19 kernel we need to explictly set buffer length to avoid fragmentation. g) UDP RX- MTU 1500 server# iperf3 -c SERVER_IP -u -T s1 -p 5101 -t 60 -i 60 -b 4000M -Z -l 1472 & server# iperf3 -c SERVER_IP -u -T s2 -p 5102 -t 60 -i 60 -b 4000M -Z -l 1472 & NOTE: Since 4.19 kernel we need to explictly set buffer length to avoid fragmentation. i) TCP RX- MTU 1500 RFS is disabled by default. To enable RFS, we must edit rps_sock_flow_entries and rps_flow_cnt. zynqmp# echo 32768 > /proc/sys/net/core/rps_sock_flow_entries zynqmp# echo 2048 > /sys/class/net/eth0/queues/rx-0/rps_flow_cnt zynqmp# echo 2048 > /sys/class/net/eth0/queues/rx-1/rps_flow_cnt For details refer : https://www.kernel.org/doc/Documentation/networking/scaling.txt server# iperf3 -c SERVER_IP -T s1 -p 5101 -t 60 -i 60 -b 4000M -Z & server# iperf3 -c SERVER_IP -T s2 -p 5102 -t 60 -i 60 -b 4000M -Z &