Merge branch 'selftests-forwarding-various-improvements'
authorJakub Kicinski <kuba@kernel.org>
Tue, 5 Mar 2024 17:18:20 +0000 (09:18 -0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 5 Mar 2024 17:18:21 +0000 (09:18 -0800)
Ido Schimmel says:

====================
selftests: forwarding: Various improvements

This patchset speeds up the multipath tests (patches #1-#2) and makes
other tests more stable (patches #3-#6) so that they will not randomly
fail in the netdev CI.

On my system, after applying the first two patches, the run time of
gre_multipath_nh_res.sh is reduced by over 90%.
====================

Link: https://lore.kernel.org/r/20240304095612.462900-1-idosch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
20 files changed:
tools/testing/selftests/net/forwarding/custom_multipath_hash.sh
tools/testing/selftests/net/forwarding/forwarding.config.sample
tools/testing/selftests/net/forwarding/gre_custom_multipath_hash.sh
tools/testing/selftests/net/forwarding/gre_inner_v4_multipath.sh
tools/testing/selftests/net/forwarding/gre_inner_v6_multipath.sh
tools/testing/selftests/net/forwarding/gre_multipath.sh
tools/testing/selftests/net/forwarding/gre_multipath_nh.sh
tools/testing/selftests/net/forwarding/gre_multipath_nh_res.sh
tools/testing/selftests/net/forwarding/ip6gre_custom_multipath_hash.sh
tools/testing/selftests/net/forwarding/ip6gre_inner_v4_multipath.sh
tools/testing/selftests/net/forwarding/ip6gre_inner_v6_multipath.sh
tools/testing/selftests/net/forwarding/ip6gre_lib.sh
tools/testing/selftests/net/forwarding/lib.sh
tools/testing/selftests/net/forwarding/router_mpath_nh.sh
tools/testing/selftests/net/forwarding/router_mpath_nh_res.sh
tools/testing/selftests/net/forwarding/router_multipath.sh
tools/testing/selftests/net/forwarding/tc_police.sh
tools/testing/selftests/net/forwarding/vxlan_bridge_1d.sh
tools/testing/selftests/net/forwarding/vxlan_bridge_1d_ipv6.sh
tools/testing/selftests/net/forwarding/vxlan_bridge_1q.sh

index 56eb83d1a3bdd5fd76bf7c65b40c8f370d77bab4..1783c10215e5ce3e9912404bc31e9e959627d767 100755 (executable)
@@ -183,42 +183,42 @@ send_src_ipv4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_dst_ipv4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_src_udp4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A 198.51.100.2 -B 203.0.113.2 \
-               -d 1msec -t udp "sp=0-32768,dp=30000"
+               -d $MZ_DELAY -t udp "sp=0-32768,dp=30000"
 }
 
 send_dst_udp4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A 198.51.100.2 -B 203.0.113.2 \
-               -d 1msec -t udp "sp=20000,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=20000,dp=0-32768"
 }
 
 send_src_ipv6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:4::2 \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_dst_ipv6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A 2001:db8:1::2 -B "2001:db8:4::2-2001:db8:4::fd" \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_flowlabel()
@@ -234,14 +234,14 @@ send_src_udp6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A 2001:db8:1::2 -B 2001:db8:4::2 \
-               -d 1msec -t udp "sp=0-32768,dp=30000"
+               -d $MZ_DELAY -t udp "sp=0-32768,dp=30000"
 }
 
 send_dst_udp6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A 2001:db8:1::2 -B 2001:db8:4::2 \
-               -d 1msec -t udp "sp=20000,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=20000,dp=0-32768"
 }
 
 custom_hash_test()
index 4a546509de9089cf93d0057438caebc477ee43ac..1fc4f0242fc53b18dd3cf624d6218c40953336e2 100644 (file)
@@ -28,6 +28,8 @@ PING=ping
 PING6=ping6
 # Packet generator. Some distributions use 'mz'.
 MZ=mausezahn
+# mausezahn delay between transmissions in microseconds.
+MZ_DELAY=0
 # Time to wait after interfaces participating in the test are all UP
 WAIT_TIME=5
 # Whether to pause on failure or not.
index 0446db9c6f7488ec1e14a5b1a0e16fa9ec3684ec..9788bd0f6e8b37d70d12d3447461d756b76b227b 100755 (executable)
@@ -278,42 +278,42 @@ send_src_ipv4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_dst_ipv4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_src_udp4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A 198.51.100.2 -B 203.0.113.2 \
-               -d 1msec -t udp "sp=0-32768,dp=30000"
+               -d $MZ_DELAY -t udp "sp=0-32768,dp=30000"
 }
 
 send_dst_udp4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A 198.51.100.2 -B 203.0.113.2 \
-               -d 1msec -t udp "sp=20000,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=20000,dp=0-32768"
 }
 
 send_src_ipv6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:2::2 \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_dst_ipv6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A 2001:db8:1::2 -B "2001:db8:2::2-2001:db8:2::fd" \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_flowlabel()
@@ -329,14 +329,14 @@ send_src_udp6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A 2001:db8:1::2 -B 2001:db8:2::2 \
-               -d 1msec -t udp "sp=0-32768,dp=30000"
+               -d $MZ_DELAY -t udp "sp=0-32768,dp=30000"
 }
 
 send_dst_udp6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A 2001:db8:1::2 -B 2001:db8:2::2 \
-               -d 1msec -t udp "sp=20000,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=20000,dp=0-32768"
 }
 
 custom_hash_test()
index e4009f65800317ba7ebb40427f4b1d13b7c8ce38..efca6114a3ce5a55da76b901ad0fa51e1692c081 100755 (executable)
@@ -267,7 +267,7 @@ multipath4_test()
 
        ip vrf exec v$h1 \
           $MZ $h1 -q -p 64 -A "192.0.3.2-192.0.3.62" -B "192.0.4.2-192.0.4.62" \
-              -d 1msec -c 50 -t udp "sp=1024,dp=1024"
+              -d $MZ_DELAY -c 50 -t udp "sp=1024,dp=1024"
        sleep 1
 
        local t1_111=$(tc_rule_stats_get $ul32 111 ingress)
index e449475c4d3e98c979ecc5b5762a0709e151c92c..a71ad39fc0c3508c0fe43417c40c141df5b091cb 100755 (executable)
@@ -266,9 +266,9 @@ multipath6_test()
        local t0_222=$(tc_rule_stats_get $ul32 222 ingress)
 
        ip vrf exec v$h1 \
-          $MZ $h1 -6 -q -p 64 -A "2001:db8:1::2-2001:db8:1::1e" \
-              -B "2001:db8:2::2-2001:db8:2::1e" \
-              -d 1msec -c 50 -t udp "sp=1024,dp=1024"
+          $MZ $h1 -6 -q -p 64 -A "2001:db8:1::2-2001:db8:1::3e" \
+              -B "2001:db8:2::2-2001:db8:2::3e" \
+              -d $MZ_DELAY -c 50 -t udp "sp=1024,dp=1024"
        sleep 1
 
        local t1_111=$(tc_rule_stats_get $ul32 111 ingress)
index a8d8e8b3dc819f3abc90060eaa0d312632c2145f..57531c1d884d9d72f97ec2dac8f8a54bd0facc72 100755 (executable)
@@ -220,7 +220,7 @@ multipath4_test()
 
        ip vrf exec v$h1 \
           $MZ $h1 -q -p 64 -A 192.0.2.1 -B 192.0.2.18 \
-              -d 1msec -t udp "sp=1024,dp=0-32768"
+              -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        local t1_111=$(tc_rule_stats_get $ul2 111 ingress)
        local t1_222=$(tc_rule_stats_get $ul2 222 ingress)
index d03aa2cab9fda1556a70630127cf0b0f0d513cf1..7d5b2b9cc1335933690e14ce3043a420461ced52 100755 (executable)
@@ -64,7 +64,6 @@ ALL_TESTS="
        ping_ipv6
        multipath_ipv4
        multipath_ipv6
-       multipath_ipv6_l4
 "
 
 NUM_NETIFS=6
@@ -245,7 +244,7 @@ multipath4_test()
 
        ip vrf exec v$h1 \
           $MZ $h1 -q -p 64 -A 192.0.2.1 -B 192.0.2.18 \
-              -d 1msec -t udp "sp=1024,dp=0-32768"
+              -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        local t1_111=$(tc_rule_stats_get $ul2 111 ingress)
        local t1_222=$(tc_rule_stats_get $ul2 222 ingress)
@@ -264,34 +263,6 @@ multipath6_test()
        local weight1=$1; shift
        local weight2=$1; shift
 
-       sysctl_set net.ipv6.fib_multipath_hash_policy 0
-       ip nexthop replace id 103 group 101,$weight1/102,$weight2
-
-       local t0_111=$(tc_rule_stats_get $ul2 111 ingress)
-       local t0_222=$(tc_rule_stats_get $ul2 222 ingress)
-
-       # Generate 16384 echo requests, each with a random flow label.
-       for ((i=0; i < 16384; ++i)); do
-               ip vrf exec v$h1 $PING6 2001:db8:2::2 -F 0 -c 1 -q &> /dev/null
-       done
-
-       local t1_111=$(tc_rule_stats_get $ul2 111 ingress)
-       local t1_222=$(tc_rule_stats_get $ul2 222 ingress)
-
-       local d111=$((t1_111 - t0_111))
-       local d222=$((t1_222 - t0_222))
-       multipath_eval "$what" $weight1 $weight2 $d111 $d222
-
-       ip nexthop replace id 103 group 101/102
-       sysctl_restore net.ipv6.fib_multipath_hash_policy
-}
-
-multipath6_l4_test()
-{
-       local what=$1; shift
-       local weight1=$1; shift
-       local weight2=$1; shift
-
        sysctl_set net.ipv6.fib_multipath_hash_policy 1
        ip nexthop replace id 103 group 101,$weight1/102,$weight2
 
@@ -300,7 +271,7 @@ multipath6_l4_test()
 
        ip vrf exec v$h1 \
                $MZ $h1 -6 -q -p 64 -A 2001:db8:1::1 -B 2001:db8:2::2 \
-               -d 1msec -t udp "sp=1024,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        local t1_111=$(tc_rule_stats_get $ul2 111 ingress)
        local t1_222=$(tc_rule_stats_get $ul2 222 ingress)
@@ -339,14 +310,6 @@ multipath_ipv6()
        multipath6_test "Weighted MP 11:45" 11 45
 }
 
-multipath_ipv6_l4()
-{
-       log_info "Running IPv6 L4 hash multipath tests"
-       multipath6_l4_test "ECMP" 1 1
-       multipath6_l4_test "Weighted MP 2:1" 2 1
-       multipath6_l4_test "Weighted MP 11:45" 11 45
-}
-
 trap cleanup EXIT
 
 setup_prepare
index 088b65e64d6653d66431a51625e62ced0d4ab468..370f9925302dd8449d48591d288cb911d816f38a 100755 (executable)
@@ -64,7 +64,6 @@ ALL_TESTS="
        ping_ipv6
        multipath_ipv4
        multipath_ipv6
-       multipath_ipv6_l4
 "
 
 NUM_NETIFS=6
@@ -248,7 +247,7 @@ multipath4_test()
 
        ip vrf exec v$h1 \
           $MZ $h1 -q -p 64 -A 192.0.2.1 -B 192.0.2.18 \
-              -d 1msec -t udp "sp=1024,dp=0-32768"
+              -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        local t1_111=$(tc_rule_stats_get $ul2 111 ingress)
        local t1_222=$(tc_rule_stats_get $ul2 222 ingress)
@@ -267,35 +266,6 @@ multipath6_test()
        local weight1=$1; shift
        local weight2=$1; shift
 
-       sysctl_set net.ipv6.fib_multipath_hash_policy 0
-       ip nexthop replace id 103 group 101,$weight1/102,$weight2 \
-               type resilient
-
-       local t0_111=$(tc_rule_stats_get $ul2 111 ingress)
-       local t0_222=$(tc_rule_stats_get $ul2 222 ingress)
-
-       # Generate 16384 echo requests, each with a random flow label.
-       for ((i=0; i < 16384; ++i)); do
-               ip vrf exec v$h1 $PING6 2001:db8:2::2 -F 0 -c 1 -q &> /dev/null
-       done
-
-       local t1_111=$(tc_rule_stats_get $ul2 111 ingress)
-       local t1_222=$(tc_rule_stats_get $ul2 222 ingress)
-
-       local d111=$((t1_111 - t0_111))
-       local d222=$((t1_222 - t0_222))
-       multipath_eval "$what" $weight1 $weight2 $d111 $d222
-
-       ip nexthop replace id 103 group 101/102 type resilient
-       sysctl_restore net.ipv6.fib_multipath_hash_policy
-}
-
-multipath6_l4_test()
-{
-       local what=$1; shift
-       local weight1=$1; shift
-       local weight2=$1; shift
-
        sysctl_set net.ipv6.fib_multipath_hash_policy 1
        ip nexthop replace id 103 group 101,$weight1/102,$weight2 \
                type resilient
@@ -305,7 +275,7 @@ multipath6_l4_test()
 
        ip vrf exec v$h1 \
                $MZ $h1 -6 -q -p 64 -A 2001:db8:1::1 -B 2001:db8:2::2 \
-               -d 1msec -t udp "sp=1024,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        local t1_111=$(tc_rule_stats_get $ul2 111 ingress)
        local t1_222=$(tc_rule_stats_get $ul2 222 ingress)
@@ -344,14 +314,6 @@ multipath_ipv6()
        multipath6_test "Weighted MP 11:45" 11 45
 }
 
-multipath_ipv6_l4()
-{
-       log_info "Running IPv6 L4 hash multipath tests"
-       multipath6_l4_test "ECMP" 1 1
-       multipath6_l4_test "Weighted MP 2:1" 2 1
-       multipath6_l4_test "Weighted MP 11:45" 11 45
-}
-
 trap cleanup EXIT
 
 setup_prepare
index d40183b4eccc8e7f2c837155df8c0431672df654..2ab9eaaa5532ae1aeb4284ba541b7b2ed6c2495f 100755 (executable)
@@ -280,42 +280,42 @@ send_src_ipv4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_dst_ipv4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_src_udp4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A 198.51.100.2 -B 203.0.113.2 \
-               -d 1msec -t udp "sp=0-32768,dp=30000"
+               -d $MZ_DELAY -t udp "sp=0-32768,dp=30000"
 }
 
 send_dst_udp4()
 {
        ip vrf exec v$h1 $MZ $h1 -q -p 64 \
                -A 198.51.100.2 -B 203.0.113.2 \
-               -d 1msec -t udp "sp=20000,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=20000,dp=0-32768"
 }
 
 send_src_ipv6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:2::2 \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_dst_ipv6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A 2001:db8:1::2 -B "2001:db8:2::2-2001:db8:2::fd" \
-               -d 1msec -c 50 -t udp "sp=20000,dp=30000"
+               -d $MZ_DELAY -c 50 -t udp "sp=20000,dp=30000"
 }
 
 send_flowlabel()
@@ -331,14 +331,14 @@ send_src_udp6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A 2001:db8:1::2 -B 2001:db8:2::2 \
-               -d 1msec -t udp "sp=0-32768,dp=30000"
+               -d $MZ_DELAY -t udp "sp=0-32768,dp=30000"
 }
 
 send_dst_udp6()
 {
        ip vrf exec v$h1 $MZ -6 $h1 -q -p 64 \
                -A 2001:db8:1::2 -B 2001:db8:2::2 \
-               -d 1msec -t udp "sp=20000,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=20000,dp=0-32768"
 }
 
 custom_hash_test()
index a257979d3fc5b052e0d0f14858f2732712648023..32d1461f37b783ba042774ad300ce31470b9272e 100755 (executable)
@@ -266,7 +266,7 @@ multipath4_test()
 
        ip vrf exec v$h1 \
           $MZ $h1 -q -p 64 -A "192.0.3.2-192.0.3.62" -B "192.0.4.2-192.0.4.62" \
-              -d 1msec -c 50 -t udp "sp=1024,dp=1024"
+              -d $MZ_DELAY -c 50 -t udp "sp=1024,dp=1024"
        sleep 1
 
        local t1_111=$(tc_rule_stats_get $ul32 111 ingress)
index d208f5243adea226fa79603e423d96aace59da02..e1a4b50505f5146f57b1657a475a2e3af6def98c 100755 (executable)
@@ -265,9 +265,9 @@ multipath6_test()
        local t0_222=$(tc_rule_stats_get $ul32 222 ingress)
 
        ip vrf exec v$h1 \
-          $MZ $h1 -6 -q -p 64 -A "2001:db8:1::2-2001:db8:1::1e" \
-              -B "2001:db8:2::2-2001:db8:2::1e" \
-              -d 1msec -c 50 -t udp "sp=1024,dp=1024"
+          $MZ $h1 -6 -q -p 64 -A "2001:db8:1::2-2001:db8:1::3e" \
+              -B "2001:db8:2::2-2001:db8:2::3e" \
+              -d $MZ_DELAY -c 50 -t udp "sp=1024,dp=1024"
        sleep 1
 
        local t1_111=$(tc_rule_stats_get $ul32 111 ingress)
index 58a3597037b134e7410bf721ccb80ccb43e1bd24..24f4ab328bd2de7267eca7c66e25f86324e612c4 100644 (file)
@@ -356,7 +356,7 @@ test_traffic_ip4ip6()
                flower $TC_FLAG dst_ip 203.0.113.1 action pass
 
        $MZ $h1 -c 1000 -p 64 -a $h1mac -b $ol1mac -A 198.51.100.1 \
-               -B 203.0.113.1 -t ip -q -d 1msec
+               -B 203.0.113.1 -t ip -q -d $MZ_DELAY
 
        # Check ports after encap and after decap.
        tc_check_at_least_x_packets "dev $ul1 egress" 101 1000
@@ -389,7 +389,7 @@ test_traffic_ip6ip6()
                flower $TC_FLAG dst_ip 2001:db8:2::1 action pass
 
        $MZ -6 $h1 -c 1000 -p 64 -a $h1mac -b $ol1mac -A 2001:db8:1::1 \
-               -B 2001:db8:2::1 -t ip -q -d 1msec
+               -B 2001:db8:2::1 -t ip -q -d $MZ_DELAY
 
        # Check ports after encap and after decap.
        tc_check_at_least_x_packets "dev $ul1 egress" 101 1000
index db3688f52888f32b05b1b3d04dab2f48d06e7e80..d1bf39eaf2b361bbe9904ab2ad3afa814ceea855 100644 (file)
@@ -8,6 +8,7 @@
 PING=${PING:=ping}
 PING6=${PING6:=ping6}
 MZ=${MZ:=mausezahn}
+MZ_DELAY=${MZ_DELAY:=0}
 ARPING=${ARPING:=arping}
 TEAMD=${TEAMD:=teamd}
 WAIT_TIME=${WAIT_TIME:=5}
index a0d612e049901a20dabc81ba5819178d4fc51e33..982e0d098ea9a3aa44517875e95830f6f22e741c 100755 (executable)
@@ -204,7 +204,7 @@ multipath4_test()
        t0_rp13=$(link_stats_tx_packets_get $rp13)
 
        ip vrf exec vrf-h1 $MZ $h1 -q -p 64 -A 192.0.2.2 -B 198.51.100.2 \
-               -d 1msec -t udp "sp=1024,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        t1_rp12=$(link_stats_tx_packets_get $rp12)
        t1_rp13=$(link_stats_tx_packets_get $rp13)
@@ -218,7 +218,7 @@ multipath4_test()
        sysctl_restore net.ipv4.fib_multipath_hash_policy
 }
 
-multipath6_l4_test()
+multipath6_test()
 {
        local desc="$1"
        local weight_rp12=$2
@@ -237,7 +237,7 @@ multipath6_l4_test()
        t0_rp13=$(link_stats_tx_packets_get $rp13)
 
        $MZ $h1 -6 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \
-               -d 1msec -t udp "sp=1024,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        t1_rp12=$(link_stats_tx_packets_get $rp12)
        t1_rp13=$(link_stats_tx_packets_get $rp13)
@@ -251,34 +251,6 @@ multipath6_l4_test()
        sysctl_restore net.ipv6.fib_multipath_hash_policy
 }
 
-multipath6_test()
-{
-       local desc="$1"
-       local weight_rp12=$2
-       local weight_rp13=$3
-       local t0_rp12 t0_rp13 t1_rp12 t1_rp13
-       local packets_rp12 packets_rp13
-
-       ip nexthop replace id 106 group 104,$weight_rp12/105,$weight_rp13
-
-       t0_rp12=$(link_stats_tx_packets_get $rp12)
-       t0_rp13=$(link_stats_tx_packets_get $rp13)
-
-       # Generate 16384 echo requests, each with a random flow label.
-       for _ in $(seq 1 16384); do
-               ip vrf exec vrf-h1 $PING6 2001:db8:2::2 -F 0 -c 1 -q >/dev/null 2>&1
-       done
-
-       t1_rp12=$(link_stats_tx_packets_get $rp12)
-       t1_rp13=$(link_stats_tx_packets_get $rp13)
-
-       let "packets_rp12 = $t1_rp12 - $t0_rp12"
-       let "packets_rp13 = $t1_rp13 - $t0_rp13"
-       multipath_eval "$desc" $weight_rp12 $weight_rp13 $packets_rp12 $packets_rp13
-
-       ip nexthop replace id 106 group 104/105
-}
-
 multipath_test()
 {
        log_info "Running IPv4 multipath tests"
@@ -301,11 +273,6 @@ multipath_test()
        multipath6_test "ECMP" 1 1
        multipath6_test "Weighted MP 2:1" 2 1
        multipath6_test "Weighted MP 11:45" 11 45
-
-       log_info "Running IPv6 L4 hash multipath tests"
-       multipath6_l4_test "ECMP" 1 1
-       multipath6_l4_test "Weighted MP 2:1" 2 1
-       multipath6_l4_test "Weighted MP 11:45" 11 45
 }
 
 ping_ipv4_blackhole()
index cb08ffe2356a3f0cf70f85424d5f7449ee55ffe8..a60ff54723b7c508b59c14505fe7898c67d4c7b4 100755 (executable)
@@ -205,7 +205,7 @@ multipath4_test()
        t0_rp13=$(link_stats_tx_packets_get $rp13)
 
        ip vrf exec vrf-h1 $MZ $h1 -q -p 64 -A 192.0.2.2 -B 198.51.100.2 \
-               -d 1msec -t udp "sp=1024,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        t1_rp12=$(link_stats_tx_packets_get $rp12)
        t1_rp13=$(link_stats_tx_packets_get $rp13)
@@ -235,7 +235,7 @@ multipath6_l4_test()
        t0_rp13=$(link_stats_tx_packets_get $rp13)
 
        $MZ $h1 -6 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \
-               -d 1msec -t udp "sp=1024,dp=0-32768"
+               -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        t1_rp12=$(link_stats_tx_packets_get $rp12)
        t1_rp13=$(link_stats_tx_packets_get $rp13)
index 464821c587a5e8cd073db1b64ab8f39267a669b2..e2be354167a1cbb0f4fec50a8ee321adcfe757f6 100755 (executable)
@@ -179,7 +179,7 @@ multipath4_test()
        t0_rp13=$(link_stats_tx_packets_get $rp13)
 
        ip vrf exec vrf-h1 $MZ $h1 -q -p 64 -A 192.0.2.2 -B 198.51.100.2 \
-              -d 1msec -t udp "sp=1024,dp=0-32768"
+              -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        t1_rp12=$(link_stats_tx_packets_get $rp12)
        t1_rp13=$(link_stats_tx_packets_get $rp13)
@@ -195,7 +195,7 @@ multipath4_test()
        sysctl_restore net.ipv4.fib_multipath_hash_policy
 }
 
-multipath6_l4_test()
+multipath6_test()
 {
        local desc="$1"
        local weight_rp12=$2
@@ -216,7 +216,7 @@ multipath6_l4_test()
        t0_rp13=$(link_stats_tx_packets_get $rp13)
 
        $MZ $h1 -6 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \
-              -d 1msec -t udp "sp=1024,dp=0-32768"
+              -d $MZ_DELAY -t udp "sp=1024,dp=0-32768"
 
        t1_rp12=$(link_stats_tx_packets_get $rp12)
        t1_rp13=$(link_stats_tx_packets_get $rp13)
@@ -232,38 +232,6 @@ multipath6_l4_test()
        sysctl_restore net.ipv6.fib_multipath_hash_policy
 }
 
-multipath6_test()
-{
-       local desc="$1"
-       local weight_rp12=$2
-       local weight_rp13=$3
-       local t0_rp12 t0_rp13 t1_rp12 t1_rp13
-       local packets_rp12 packets_rp13
-
-       ip route replace 2001:db8:2::/64 vrf vrf-r1 \
-              nexthop via fe80:2::22 dev $rp12 weight $weight_rp12 \
-              nexthop via fe80:3::23 dev $rp13 weight $weight_rp13
-
-       t0_rp12=$(link_stats_tx_packets_get $rp12)
-       t0_rp13=$(link_stats_tx_packets_get $rp13)
-
-       # Generate 16384 echo requests, each with a random flow label.
-       for _ in $(seq 1 16384); do
-              ip vrf exec vrf-h1 $PING6 2001:db8:2::2 -F 0 -c 1 -q &> /dev/null
-       done
-
-       t1_rp12=$(link_stats_tx_packets_get $rp12)
-       t1_rp13=$(link_stats_tx_packets_get $rp13)
-
-       let "packets_rp12 = $t1_rp12 - $t0_rp12"
-       let "packets_rp13 = $t1_rp13 - $t0_rp13"
-       multipath_eval "$desc" $weight_rp12 $weight_rp13 $packets_rp12 $packets_rp13
-
-       ip route replace 2001:db8:2::/64 vrf vrf-r1 \
-              nexthop via fe80:2::22 dev $rp12 \
-              nexthop via fe80:3::23 dev $rp13
-}
-
 multipath_test()
 {
        log_info "Running IPv4 multipath tests"
@@ -275,11 +243,6 @@ multipath_test()
        multipath6_test "ECMP" 1 1
        multipath6_test "Weighted MP 2:1" 2 1
        multipath6_test "Weighted MP 11:45" 11 45
-
-       log_info "Running IPv6 L4 hash multipath tests"
-       multipath6_l4_test "ECMP" 1 1
-       multipath6_l4_test "Weighted MP 2:1" 2 1
-       multipath6_l4_test "Weighted MP 11:45" 11 45
 }
 
 setup_prepare()
index 0a51eef21b9efc34abebb9baa7779ac801d73684..5103f64a71d6b8fb452ce2647b47fbdbd1a9eecf 100755 (executable)
@@ -140,7 +140,7 @@ police_common_test()
        sleep 10
        local t1=$(tc_rule_stats_get $h2 1 ingress .bytes)
 
-       local er=$((80 * 1000 * 1000))
+       local er=$((10 * 1000 * 1000))
        local nr=$(rate $t0 $t1 10)
        local nr_pct=$((100 * (nr - er) / er))
        ((-10 <= nr_pct && nr_pct <= 10))
@@ -157,7 +157,7 @@ police_rx_test()
        # Rule to police traffic destined to $h2 on ingress of $rp1
        tc filter add dev $rp1 ingress protocol ip pref 1 handle 101 flower \
                dst_ip 198.51.100.1 ip_proto udp dst_port 54321 \
-               action police rate 80mbit burst 16k conform-exceed drop/ok
+               action police rate 10mbit burst 16k conform-exceed drop/ok
 
        police_common_test "police on rx"
 
@@ -169,7 +169,7 @@ police_tx_test()
        # Rule to police traffic destined to $h2 on egress of $rp2
        tc filter add dev $rp2 egress protocol ip pref 1 handle 101 flower \
                dst_ip 198.51.100.1 ip_proto udp dst_port 54321 \
-               action police rate 80mbit burst 16k conform-exceed drop/ok
+               action police rate 10mbit burst 16k conform-exceed drop/ok
 
        police_common_test "police on tx"
 
@@ -190,7 +190,7 @@ police_shared_common_test()
        sleep 10
        local t1=$(tc_rule_stats_get $h2 1 ingress .bytes)
 
-       local er=$((80 * 1000 * 1000))
+       local er=$((10 * 1000 * 1000))
        local nr=$(rate $t0 $t1 10)
        local nr_pct=$((100 * (nr - er) / er))
        ((-10 <= nr_pct && nr_pct <= 10))
@@ -211,7 +211,7 @@ police_shared_test()
        # Rule to police traffic destined to $h2 on ingress of $rp1
        tc filter add dev $rp1 ingress protocol ip pref 1 handle 101 flower \
                dst_ip 198.51.100.1 ip_proto udp dst_port 54321 \
-               action police rate 80mbit burst 16k conform-exceed drop/ok \
+               action police rate 10mbit burst 16k conform-exceed drop/ok \
                index 10
 
        # Rule to police a different flow destined to $h2 on egress of $rp2
@@ -250,7 +250,7 @@ police_mirror_common_test()
        # Rule to police traffic destined to $h2 and mirror to $h3
        tc filter add dev $pol_if $dir protocol ip pref 1 handle 101 flower \
                dst_ip 198.51.100.1 ip_proto udp dst_port 54321 \
-               action police rate 80mbit burst 16k conform-exceed drop/pipe \
+               action police rate 10mbit burst 16k conform-exceed drop/pipe \
                action mirred egress mirror dev $rp3
 
        mausezahn $h1 -a own -b $(mac_get $rp1) -A 192.0.2.1 -B 198.51.100.1 \
@@ -260,7 +260,7 @@ police_mirror_common_test()
        sleep 10
        local t1=$(tc_rule_stats_get $h2 1 ingress .bytes)
 
-       local er=$((80 * 1000 * 1000))
+       local er=$((10 * 1000 * 1000))
        local nr=$(rate $t0 $t1 10)
        local nr_pct=$((100 * (nr - er) / er))
        ((-10 <= nr_pct && nr_pct <= 10))
@@ -270,7 +270,7 @@ police_mirror_common_test()
        sleep 10
        local t1=$(tc_rule_stats_get $h3 1 ingress .bytes)
 
-       local er=$((80 * 1000 * 1000))
+       local er=$((10 * 1000 * 1000))
        local nr=$(rate $t0 $t1 10)
        local nr_pct=$((100 * (nr - er) / er))
        ((-10 <= nr_pct && nr_pct <= 10))
index eb307ca37bfa69df1acd7cccad1435fed0cf166e..6f0a2e452ba1e6ad04e49b83afdfccfe71558f03 100755 (executable)
@@ -495,7 +495,7 @@ vxlan_ping_test()
        local delta=$((t1 - t0))
 
        # Tolerate a couple stray extra packets.
-       ((expect <= delta && delta <= expect + 2))
+       ((expect <= delta && delta <= expect + 5))
        check_err $? "$capture_dev: Expected to capture $expect packets, got $delta."
 }
 
@@ -532,7 +532,7 @@ __test_ecn_encap()
        RET=0
 
        tc filter add dev v1 egress pref 77 prot ip \
-               flower ip_tos $tos action pass
+               flower ip_tos $tos ip_proto udp dst_port $VXPORT action pass
        sleep 1
        vxlan_ping_test $h1 192.0.2.3 "-Q $q" v1 egress 77 10
        tc filter del dev v1 egress pref 77 prot ip
index ac97f07e5ce8267441653e359a5caf16a47cbba7..a0bb4524e1e9c66bed9ff99d08232be8c4f409fc 100755 (executable)
@@ -616,7 +616,7 @@ vxlan_ping_test()
        local delta=$((t1 - t0))
 
        # Tolerate a couple stray extra packets.
-       ((expect <= delta && delta <= expect + 2))
+       ((expect <= delta && delta <= expect + 5))
        check_err $? "$capture_dev: Expected to capture $expect packets, got $delta."
 }
 
@@ -653,7 +653,7 @@ __test_ecn_encap()
        RET=0
 
        tc filter add dev v1 egress pref 77 protocol ipv6 \
-               flower ip_tos $tos action pass
+               flower ip_tos $tos ip_proto udp dst_port $VXPORT action pass
        sleep 1
        vxlan_ping_test $h1 2001:db8:1::3 "-Q $q" v1 egress 77 10
        tc filter del dev v1 egress pref 77 protocol ipv6
index a596bbf3ed6a0c08b9425e25f7023c022e58565d..fb9a34cb50c667b6b9ab884aa3de50ed575616a9 100755 (executable)
@@ -750,7 +750,7 @@ __test_learning()
        expects[0]=0; expects[$idx1]=10; expects[$idx2]=0
        vxlan_flood_test $mac $dst $vid "${expects[@]}"
 
-       sleep 20
+       sleep 60
 
        bridge fdb show brport $vx | grep $mac | grep -q self
        check_fail $?
@@ -796,11 +796,11 @@ test_learning()
        local dst=192.0.2.100
        local vid=10
 
-       # Enable learning on the VxLAN devices and set ageing time to 10 seconds
-       ip link set dev br1 type bridge ageing_time 1000
-       ip link set dev vx10 type vxlan ageing 10
+       # Enable learning on the VxLAN devices and set ageing time to 30 seconds
+       ip link set dev br1 type bridge ageing_time 3000
+       ip link set dev vx10 type vxlan ageing 30
        ip link set dev vx10 type vxlan learning
-       ip link set dev vx20 type vxlan ageing 10
+       ip link set dev vx20 type vxlan ageing 30
        ip link set dev vx20 type vxlan learning
        reapply_config