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 <gna...@redhat.com>
---
 tools/testing/selftests/net/bareudp.sh | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/tools/testing/selftests/net/bareudp.sh 
b/tools/testing/selftests/net/bareudp.sh
index c6fe22de7d0e..c2b9e990e544 100755
--- a/tools/testing/selftests/net/bareudp.sh
+++ b/tools/testing/selftests/net/bareudp.sh
@@ -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()
-- 
2.21.3

Reply via email to