]> git.baikalelectronics.ru Git - kernel.git/commitdiff
selftests: forwarding: Fix failing tests with old libnet
authorIdo Schimmel <idosch@nvidia.com>
Tue, 9 Aug 2022 11:33:20 +0000 (14:33 +0300)
committerJakub Kicinski <kuba@kernel.org>
Thu, 11 Aug 2022 05:36:14 +0000 (22:36 -0700)
The custom multipath hash tests use mausezahn in order to test how
changes in various packet fields affect the packet distribution across
the available nexthops.

The tool uses the libnet library for various low-level packet
construction and injection. The library started using the
"SO_BINDTODEVICE" socket option for IPv6 sockets in version 1.1.6 and
for IPv4 sockets in version 1.2.

When the option is not set, packets are not routed according to the
table associated with the VRF master device and tests fail.

Fix this by prefixing the command with "ip vrf exec", which will cause
the route lookup to occur in the VRF routing table. This makes the tests
pass regardless of the libnet library version.

Fixes: bdd958bd469e ("selftests: forwarding: Add test for custom multipath hash")
Fixes: 3181cd117985 ("selftests: forwarding: Add test for custom multipath hash with IPv4 GRE")
Fixes: 31b015a8befa ("selftests: forwarding: Add test for custom multipath hash with IPv6 GRE")
Reported-by: Ivan Vecera <ivecera@redhat.com>
Tested-by: Ivan Vecera <ivecera@redhat.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Amit Cohen <amcohen@nvidia.com>
Link: https://lore.kernel.org/r/20220809113320.751413-1-idosch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/forwarding/custom_multipath_hash.sh
tools/testing/selftests/net/forwarding/gre_custom_multipath_hash.sh
tools/testing/selftests/net/forwarding/ip6gre_custom_multipath_hash.sh

index a15d21dc035a665dbee9fc4c36b149b0a0f757f4..56eb83d1a3bdd5fd76bf7c65b40c8f370d77bab4 100755 (executable)
@@ -181,37 +181,43 @@ ping_ipv6()
 
 send_src_ipv4()
 {
-       $MZ $h1 -q -p 64 -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \
+       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"
 }
 
 send_dst_ipv4()
 {
-       $MZ $h1 -q -p 64 -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \
+       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"
 }
 
 send_src_udp4()
 {
-       $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \
+       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"
 }
 
 send_dst_udp4()
 {
-       $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \
+       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"
 }
 
 send_src_ipv6()
 {
-       $MZ -6 $h1 -q -p 64 -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:4::2 \
+       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"
 }
 
 send_dst_ipv6()
 {
-       $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B "2001:db8:4::2-2001:db8:4::fd" \
+       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"
 }
 
@@ -226,13 +232,15 @@ send_flowlabel()
 
 send_src_udp6()
 {
-       $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:4::2 \
+       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"
 }
 
 send_dst_udp6()
 {
-       $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:4::2 \
+       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"
 }
 
index a73f52efcb6cf0d1967964db2bfe7ff5311cf315..0446db9c6f7488ec1e14a5b1a0e16fa9ec3684ec 100755 (executable)
@@ -276,37 +276,43 @@ ping_ipv6()
 
 send_src_ipv4()
 {
-       $MZ $h1 -q -p 64 -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \
+       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"
 }
 
 send_dst_ipv4()
 {
-       $MZ $h1 -q -p 64 -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \
+       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"
 }
 
 send_src_udp4()
 {
-       $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \
+       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"
 }
 
 send_dst_udp4()
 {
-       $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \
+       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"
 }
 
 send_src_ipv6()
 {
-       $MZ -6 $h1 -q -p 64 -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:2::2 \
+       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"
 }
 
 send_dst_ipv6()
 {
-       $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B "2001:db8:2::2-2001:db8:2::fd" \
+       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"
 }
 
@@ -321,13 +327,15 @@ send_flowlabel()
 
 send_src_udp6()
 {
-       $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \
+       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"
 }
 
 send_dst_udp6()
 {
-       $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \
+       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"
 }
 
index 8fea2c2e0b25dfd10af7cd8072d1a760a03731b1..d40183b4eccc8e7f2c837155df8c0431672df654 100755 (executable)
@@ -278,37 +278,43 @@ ping_ipv6()
 
 send_src_ipv4()
 {
-       $MZ $h1 -q -p 64 -A "198.51.100.2-198.51.100.253" -B 203.0.113.2 \
+       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"
 }
 
 send_dst_ipv4()
 {
-       $MZ $h1 -q -p 64 -A 198.51.100.2 -B "203.0.113.2-203.0.113.253" \
+       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"
 }
 
 send_src_udp4()
 {
-       $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \
+       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"
 }
 
 send_dst_udp4()
 {
-       $MZ $h1 -q -p 64 -A 198.51.100.2 -B 203.0.113.2 \
+       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"
 }
 
 send_src_ipv6()
 {
-       $MZ -6 $h1 -q -p 64 -A "2001:db8:1::2-2001:db8:1::fd" -B 2001:db8:2::2 \
+       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"
 }
 
 send_dst_ipv6()
 {
-       $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B "2001:db8:2::2-2001:db8:2::fd" \
+       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"
 }
 
@@ -323,13 +329,15 @@ send_flowlabel()
 
 send_src_udp6()
 {
-       $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \
+       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"
 }
 
 send_dst_udp6()
 {
-       $MZ -6 $h1 -q -p 64 -A 2001:db8:1::2 -B 2001:db8:2::2 \
+       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"
 }