selftests: forwarding: Make {, ip6}gre-inner-v6-multipath tests more robust
authorIdo Schimmel <idosch@nvidia.com>
Mon, 4 Mar 2024 09:56:12 +0000 (11:56 +0200)
committerJakub Kicinski <kuba@kernel.org>
Tue, 5 Mar 2024 17:18:17 +0000 (09:18 -0800)
These tests generate various IPv6 flows, encapsulate them in GRE packets
and check that the encapsulated packets are distributed between the
available nexthops according to the configured weights.

Unlike the corresponding IPv4 tests, these tests sometimes fail in the
netdev CI because of large discrepancies between the expected and
measured ratios [1]. This can be explained by the fact that the IPv4
tests generate about 3,600 different flows whereas the IPv6 tests only
generate about 784 different flows (potentially by mistake).

Fix by aligning the IPv6 tests to the IPv4 ones and increase the number
of generated flows.

[1]
 [...]
 # TEST: ping                                                          [ OK ]
 # INFO: Running IPv6 over GRE over IPv4 multipath tests
 # TEST: ECMP                                                          [FAIL]
 # Too large discrepancy between expected and measured ratios
 # INFO: Expected ratio 1.00 Measured ratio 1.18
 [...]

Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Link: https://lore.kernel.org/r/20240304095612.462900-7-idosch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/forwarding/gre_inner_v6_multipath.sh
tools/testing/selftests/net/forwarding/ip6gre_inner_v6_multipath.sh

index e5e911c..a71ad39 100755 (executable)
@@ -266,8 +266,8 @@ 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" \
+          $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
 
index eb4e50d..e1a4b50 100755 (executable)
@@ -265,8 +265,8 @@ 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" \
+          $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