Appendix A. SR-IOV failover testing
For testing packet loss upon failure of active link on the bond, iperf tool is used in the validation lab.
iperf was used for this test because it provides jitter and packet loss with millisecond granularity. However, iperf is not the tool of choice for testing on VMs as it uses kernel networking and does not take advantage of DPDK.
Client runs on VM2 sending traffic to VM1 (172.30.0.20 on port 8282):
[root@test-sriov2 network-scripts]# iperf3 -c 172.30.0.20 -p 8282 -u -l 16 -b 128000 -t 20 Connecting to host 172.30.0.20, port 8282 [ 4] local 172.30.0.21 port 54765 connected to 172.30.0.20 port 8282 [ ID] Interval Transfer Bandwidth Total Datagrams [ 4] 0.00-1.00 sec 14.1 KBytes 115 Kbits/sec 902 [ 4] 1.00-2.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 2.00-3.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 3.00-4.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 4.00-5.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 5.00-6.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 6.00-7.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 7.00-8.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 8.00-9.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 9.00-10.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 10.00-11.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 11.00-12.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 12.00-13.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 13.00-14.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 14.00-15.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 15.00-16.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 16.00-17.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 17.00-18.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 18.00-19.00 sec 15.6 KBytes 128 Kbits/sec 1000 [ 4] 19.00-20.00 sec 15.6 KBytes 128 Kbits/sec 1000 - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 4] 0.00-20.00 sec 311 KBytes 127 Kbits/sec 0.001 ms 300/19901 (1.5%) [ 4] Sent 19901 datagrams iperf Done.
VM1 acts as the server listening on port 8282:
Server: [root@test-sriov ~]# iperf3 -s -p 8282 ----------------------------------------------------------- Server listening on 8282 ----------------------------------------------------------- Accepted connection from 172.30.0.21, port 34606 [ 5] local 172.30.0.20 port 8282 connected to 172.30.0.21 port 54765 [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 5] 0.00-1.00 sec 14.1 KBytes 115 Kbits/sec 0.001 ms 0/901 (0%) [ 5] 1.00-2.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 2.00-3.00 sec 15.6 KBytes 128 Kbits/sec 0.002 ms 0/1000 (0%) [ 5] 3.00-4.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 4.00-5.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 5.00-6.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 6.00-7.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 7.00-8.00 sec 10.9 KBytes 89.6 Kbits/sec 0.002 ms 300/1000 (30%) ⇐ Shutdown switchport [ 5] 8.00-9.00 sec 15.6 KBytes 128 Kbits/sec 0.002 ms 0/1000 (0%) [ 5] 9.00-10.00 sec 15.6 KBytes 128 Kbits/sec 0.002 ms 0/1000 (0%) [ 5] 10.00-11.00 sec 15.6 KBytes 128 Kbits/sec 0.002 ms 0/1000 (0%) [ 5] 11.00-12.00 sec 15.6 KBytes 128 Kbits/sec 0.002 ms 0/1000 (0%) [ 5] 12.00-13.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 13.00-14.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 14.00-15.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 15.00-16.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 16.00-17.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 17.00-18.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 18.00-19.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 19.00-20.00 sec 15.6 KBytes 128 Kbits/sec 0.001 ms 0/1000 (0%) [ 5] 20.00-20.04 sec 0.00 Bytes 0.00 bits/sec 0.001 ms 0/0 (0%) - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams [ 5] 0.00-20.04 sec 0.00 Bytes 0.00 bits/sec 0.001 ms 300/19901 (1.5%)
Traffic switches over the the backup link.