Message ID | 20230427094923.20432-1-andrea.mayer@uniroma2.it (mailing list archive) |
---|---|
State | Accepted |
Commit | 46ef24c60f8ee70662968ac55325297ed4624d61 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net] selftests: srv6: make srv6_end_dt46_l3vpn_test more robust | expand |
On 4/27/23 3:49 AM, Andrea Mayer wrote: > On some distributions, the rp_filter is automatically set (=1) by > default on a netdev basis (also on VRFs). > In an SRv6 End.DT46 behavior, decapsulated IPv4 packets are routed using > the table associated with the VRF bound to that tunnel. During lookup > operations, the rp_filter can lead to packet loss when activated on the > VRF. > Therefore, we chose to make this selftest more robust by explicitly > disabling the rp_filter during tests (as it is automatically set by some > Linux distributions). > > Fixes: 03a0b567a03d ("selftests: seg6: add selftest for SRv6 End.DT46 Behavior") > Reported-by: Hangbin Liu <liuhangbin@gmail.com> > Signed-off-by: Andrea Mayer <andrea.mayer@uniroma2.it> > Tested-by: Hangbin Liu <liuhangbin@gmail.com> > --- > .../testing/selftests/net/srv6_end_dt46_l3vpn_test.sh | 10 +++++----- > 1 file changed, 5 insertions(+), 5 deletions(-) > Reviewed-by: David Ahern <dsahern@kernel.org>
Hello: This patch was applied to netdev/net.git (main) by David S. Miller <davem@davemloft.net>: On Thu, 27 Apr 2023 11:49:23 +0200 you wrote: > On some distributions, the rp_filter is automatically set (=1) by > default on a netdev basis (also on VRFs). > In an SRv6 End.DT46 behavior, decapsulated IPv4 packets are routed using > the table associated with the VRF bound to that tunnel. During lookup > operations, the rp_filter can lead to packet loss when activated on the > VRF. > Therefore, we chose to make this selftest more robust by explicitly > disabling the rp_filter during tests (as it is automatically set by some > Linux distributions). > > [...] Here is the summary with links: - [net] selftests: srv6: make srv6_end_dt46_l3vpn_test more robust https://git.kernel.org/netdev/net/c/46ef24c60f8e You are awesome, thank you!
diff --git a/tools/testing/selftests/net/srv6_end_dt46_l3vpn_test.sh b/tools/testing/selftests/net/srv6_end_dt46_l3vpn_test.sh index aebaab8ce44c..441eededa031 100755 --- a/tools/testing/selftests/net/srv6_end_dt46_l3vpn_test.sh +++ b/tools/testing/selftests/net/srv6_end_dt46_l3vpn_test.sh @@ -292,6 +292,11 @@ setup_hs() ip netns exec ${hsname} sysctl -wq net.ipv6.conf.all.accept_dad=0 ip netns exec ${hsname} sysctl -wq net.ipv6.conf.default.accept_dad=0 + # disable the rp_filter otherwise the kernel gets confused about how + # to route decap ipv4 packets. + ip netns exec ${rtname} sysctl -wq net.ipv4.conf.all.rp_filter=0 + ip netns exec ${rtname} sysctl -wq net.ipv4.conf.default.rp_filter=0 + ip -netns ${hsname} link add veth0 type veth peer name ${rtveth} ip -netns ${hsname} link set ${rtveth} netns ${rtname} ip -netns ${hsname} addr add ${IPv6_HS_NETWORK}::${hs}/64 dev veth0 nodad @@ -316,11 +321,6 @@ setup_hs() ip netns exec ${rtname} sysctl -wq net.ipv6.conf.${rtveth}.proxy_ndp=1 ip netns exec ${rtname} sysctl -wq net.ipv4.conf.${rtveth}.proxy_arp=1 - # disable the rp_filter otherwise the kernel gets confused about how - # to route decap ipv4 packets. - ip netns exec ${rtname} sysctl -wq net.ipv4.conf.all.rp_filter=0 - ip netns exec ${rtname} sysctl -wq net.ipv4.conf.${rtveth}.rp_filter=0 - ip netns exec ${rtname} sh -c "echo 1 > /proc/sys/net/vrf/strict_mode" }