selftests: disable rp_filter when testing bareudp
authorGuillaume Nault <gnault@redhat.com>
Sat, 7 Nov 2020 16:47:17 +0000 (17:47 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 10 Nov 2020 23:14:19 +0000 (15:14 -0800)
Some systems have rp_filter=1 as default configuration. This breaks
bareudp.sh as the intermediate namespaces handle part of the routing
with regular IPv4 routes but the reverse path is done with tc
(flower/tunnel_key/mirred).

Signed-off-by: Guillaume Nault <gnault@redhat.com>
Link: https://lore.kernel.org/r/28140b7d20161e4f766b558018fe2718f9bc1117.1604767577.git.gnault@redhat.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
tools/testing/selftests/net/bareudp.sh

index c6fe22de7d0eec36a9c42f364d8dcc15174543f0..c2b9e990e54428393716c2ac092903afb27dc479 100755 (executable)
@@ -234,6 +234,12 @@ setup_overlay_ipv4()
        ip netns exec "${NS2}" sysctl -qw net.ipv4.ip_forward=1
        ip -netns "${NS1}" route add 192.0.2.100/32 via 192.0.2.10
        ip -netns "${NS2}" route add 192.0.2.103/32 via 192.0.2.33
+
+       # The intermediate namespaces don't have routes for the reverse path,
+       # as it will be handled by tc. So we need to ensure that rp_filter is
+       # not going to block the traffic.
+       ip netns exec "${NS1}" sysctl -qw net.ipv4.conf.default.rp_filter=0
+       ip netns exec "${NS2}" sysctl -qw net.ipv4.conf.default.rp_filter=0
 }
 
 setup_overlay_ipv6()