Patch "selftests/bpf: Make test_lwt_ip_encap more stable and faster" has been added to the 5.15-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    selftests/bpf: Make test_lwt_ip_encap more stable and faster

to the 5.15-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     selftests-bpf-make-test_lwt_ip_encap-more-stable-and.patch
and it can be found in the queue-5.15 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit df3fbadccde3b5f7b219f20809c003448279beec
Author: Felix Maurer <fmaurer@xxxxxxxxxx>
Date:   Thu Mar 3 12:15:26 2022 +0100

    selftests/bpf: Make test_lwt_ip_encap more stable and faster
    
    [ Upstream commit d23a8720327d33616f584d76c80824bfa4699be6 ]
    
    In test_lwt_ip_encap, the ingress IPv6 encap test failed from time to
    time. The failure occured when an IPv4 ping through the IPv6 GRE
    encapsulation did not receive a reply within the timeout. The IPv4 ping
    and the IPv6 ping in the test used different timeouts (1 sec for IPv4
    and 6 sec for IPv6), probably taking into account that IPv6 might need
    longer to successfully complete. However, when IPv4 pings (with the
    short timeout) are encapsulated into the IPv6 tunnel, the delays of IPv6
    apply.
    
    The actual reason for the long delays with IPv6 was that the IPv6
    neighbor discovery sometimes did not complete in time. This was caused
    by the outgoing interface only having a tentative link local address,
    i.e., not having completed DAD for that lladdr. The ND was successfully
    retried after 1 sec but that was too late for the ping timeout.
    
    The IPv6 addresses for the test were already added with nodad. However,
    for the lladdrs, DAD was still performed. We now disable DAD in the test
    netns completely and just assume that the two lladdrs on each veth pair
    do not collide. This removes all the delays for IPv6 traffic in the
    test.
    
    Without the delays, we can now also reduce the delay of the IPv6 ping to
    1 sec. This makes the whole test complete faster because we don't need
    to wait for the excessive timeout for each IPv6 ping that is supposed
    to fail.
    
    Fixes: 0fde56e4385b0 ("selftests: bpf: add test_lwt_ip_encap selftest")
    Signed-off-by: Felix Maurer <fmaurer@xxxxxxxxxx>
    Signed-off-by: Daniel Borkmann <daniel@xxxxxxxxxxxxx>
    Link: https://lore.kernel.org/bpf/4987d549d48b4e316cd5b3936de69c8d4bc75a4f.1646305899.git.fmaurer@xxxxxxxxxx
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/tools/testing/selftests/bpf/test_lwt_ip_encap.sh b/tools/testing/selftests/bpf/test_lwt_ip_encap.sh
index b497bb85b667..6c69c42b1d60 100755
--- a/tools/testing/selftests/bpf/test_lwt_ip_encap.sh
+++ b/tools/testing/selftests/bpf/test_lwt_ip_encap.sh
@@ -120,6 +120,14 @@ setup()
 	ip netns exec ${NS2} sysctl -wq net.ipv4.conf.default.rp_filter=0
 	ip netns exec ${NS3} sysctl -wq net.ipv4.conf.default.rp_filter=0
 
+	# disable IPv6 DAD because it sometimes takes too long and fails tests
+	ip netns exec ${NS1} sysctl -wq net.ipv6.conf.all.accept_dad=0
+	ip netns exec ${NS2} sysctl -wq net.ipv6.conf.all.accept_dad=0
+	ip netns exec ${NS3} sysctl -wq net.ipv6.conf.all.accept_dad=0
+	ip netns exec ${NS1} sysctl -wq net.ipv6.conf.default.accept_dad=0
+	ip netns exec ${NS2} sysctl -wq net.ipv6.conf.default.accept_dad=0
+	ip netns exec ${NS3} sysctl -wq net.ipv6.conf.default.accept_dad=0
+
 	ip link add veth1 type veth peer name veth2
 	ip link add veth3 type veth peer name veth4
 	ip link add veth5 type veth peer name veth6
@@ -289,7 +297,7 @@ test_ping()
 		ip netns exec ${NS1} ping  -c 1 -W 1 -I veth1 ${IPv4_DST} 2>&1 > /dev/null
 		RET=$?
 	elif [ "${PROTO}" == "IPv6" ] ; then
-		ip netns exec ${NS1} ping6 -c 1 -W 6 -I veth1 ${IPv6_DST} 2>&1 > /dev/null
+		ip netns exec ${NS1} ping6 -c 1 -W 1 -I veth1 ${IPv6_DST} 2>&1 > /dev/null
 		RET=$?
 	else
 		echo "    test_ping: unknown PROTO: ${PROTO}"



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux