git: e08b44339b65 - main - if_ovpn tests: test large packets in IPv6 tunnel

From: Kristof Provost <kp_at_FreeBSD.org>
Date: Fri, 22 Mar 2024 08:37:26 UTC
The branch main has been updated by kp:

URL: https://cgit.FreeBSD.org/src/commit/?id=e08b44339b65a6aa7df4a58d0b1f471ba16da410

commit e08b44339b65a6aa7df4a58d0b1f471ba16da410
Author:     Kristof Provost <kp@FreeBSD.org>
AuthorDate: 2024-03-21 07:38:45 +0000
Commit:     Kristof Provost <kp@FreeBSD.org>
CommitDate: 2024-03-22 08:00:05 +0000

    if_ovpn tests: test large packets in IPv6 tunnel
    
    There's a report of MTU issues over IPv6 DCO tunnels.
    Extend the 4in6 test to send a series of pings with different sizes, as
    well as transfer a large file.
    
    No issues were found, but we may as well extend the test case.
    
    PR:             276838
---
 tests/sys/net/if_ovpn/if_ovpn.sh | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/tests/sys/net/if_ovpn/if_ovpn.sh b/tests/sys/net/if_ovpn/if_ovpn.sh
index bbaffa0bce73..0ec2563cf355 100644
--- a/tests/sys/net/if_ovpn/if_ovpn.sh
+++ b/tests/sys/net/if_ovpn/if_ovpn.sh
@@ -308,10 +308,28 @@ atf_test_case "4in6" "cleanup"
 		keepalive 100 600
 	"
 
+	dd if=/dev/random of=test.img bs=1024 count=1024
+	cat test.img | jexec a nc -N -l 1234 &
+
 	# Give the tunnel time to come up
 	sleep 10
 
 	atf_check -s exit:0 -o ignore jexec b ping -c 3 198.51.100.1
+
+	# MTU sweep
+	for i in `seq 1000 1500`
+	do
+		atf_check -s exit:0 -o ignore jexec b \
+		    ping -c 1 -s $i 198.51.100.1
+	done
+
+	rcvmd5=$(jexec b nc -N -w 3 198.51.100.1 1234 | md5)
+	md5=$(md5 test.img)
+
+	if [ $md5  != $rcvmd5 ];
+	then
+		atf_fail "Transmit corruption!"
+	fi
 }
 
 4in6_cleanup()