Message ID | 20230510111638.12408-3-andrea.mayer@uniroma2.it (mailing list archive) |
---|---|
State | Accepted |
Commit | f97b8401e0deb46ad1e4245c21f651f64f55aaa6 |
Headers | show |
Series | selftests: seg6: make srv6_end_dt4_l3vpn_test more robust | expand |
On 5/10/23 5:16 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.DT4 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: 2195444e09b4 ("selftests: add selftest for the SRv6 End.DT4 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_dt4_l3vpn_test.sh | 11 ++++++----- > 1 file changed, 6 insertions(+), 5 deletions(-) > Reviewed-by: David Ahern <dsahern@kernel.org>
diff --git a/tools/testing/selftests/net/srv6_end_dt4_l3vpn_test.sh b/tools/testing/selftests/net/srv6_end_dt4_l3vpn_test.sh index 37f08d582d2f..f96282362811 100755 --- a/tools/testing/selftests/net/srv6_end_dt4_l3vpn_test.sh +++ b/tools/testing/selftests/net/srv6_end_dt4_l3vpn_test.sh @@ -258,6 +258,12 @@ setup_hs() # set the networking for the host ip netns add ${hsname} + + # 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 ${IPv4_HS_NETWORK}.${hs}/24 dev veth0 @@ -276,11 +282,6 @@ setup_hs() 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" }