Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 4 Oct 2025 16:44:28 GMT
From:      Zhenlei Huang <zlei@FreeBSD.org>
To:        src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org
Subject:   git: 767db004475a - stable/13 - tests: gif(4): Add tests to cover all IPv[46] in IPv[46] setups
Message-ID:  <202510041644.594GiS49057930@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch stable/13 has been updated by zlei:

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

commit 767db004475a4b6dacde2cc4fa6ce392e63df59d
Author:     Zhenlei Huang <zlei@FreeBSD.org>
AuthorDate: 2025-08-01 16:33:10 +0000
Commit:     Zhenlei Huang <zlei@FreeBSD.org>
CommitDate: 2025-10-04 16:43:19 +0000

    tests: gif(4): Add tests to cover all IPv[46] in IPv[46] setups
    
    While here, rename basic to 4in4 to be consistent with other tests.
    
    MFC after:      1 week
    Differential Revision:  https://reviews.freebsd.org/D51566
    
    (cherry picked from commit 62439516cc9bba32ed2406f340326c4d37e4cc59)
    (cherry picked from commit c2806cddc64766b69daa42b4fb192f767e4b4705)
---
 tests/sys/net/if_gif.sh | 147 ++++++++++++++++++++++++++++++++++++++++++++++--
 1 file changed, 141 insertions(+), 6 deletions(-)

diff --git a/tests/sys/net/if_gif.sh b/tests/sys/net/if_gif.sh
index 16b0b1a6fca0..5c7278d17e8f 100644
--- a/tests/sys/net/if_gif.sh
+++ b/tests/sys/net/if_gif.sh
@@ -26,14 +26,14 @@
 
 . $(atf_get_srcdir)/../common/vnet.subr
 
-atf_test_case "basic" "cleanup"
-basic_head()
+atf_test_case "4in4" "cleanup"
+4in4_head()
 {
-	atf_set descr 'Basic gif(4) test'
+	atf_set descr 'IPv4 in IPv4 tunnel'
 	atf_set require.user root
 }
 
-basic_body()
+4in4_body()
 {
 	vnet_init
 	if ! kldstat -q -m if_gif; then
@@ -65,12 +65,147 @@ basic_body()
 	    jexec two ping -c 1 198.51.100.1
 }
 
-basic_cleanup()
+4in4_cleanup()
+{
+	vnet_cleanup
+}
+
+atf_test_case "6in4" "cleanup"
+6in4_head()
+{
+	atf_set descr 'IPv6 in IPv4 tunnel'
+	atf_set require.user root
+}
+
+6in4_body()
+{
+	vnet_init
+	if ! kldstat -q -m if_gif; then
+		atf_skip "This test requires if_gif"
+	fi
+
+	epair=$(vnet_mkepair)
+
+	vnet_mkjail one ${epair}a
+	jexec one ifconfig ${epair}a 192.0.2.1/24 up
+	gone=$(jexec one ifconfig gif create)
+	jexec one ifconfig $gone tunnel 192.0.2.1 192.0.2.2
+	jexec one ifconfig $gone inet6 no_dad 2001:db8:1::1/64 up
+
+	vnet_mkjail two ${epair}b
+	jexec two ifconfig ${epair}b 192.0.2.2/24 up
+	gtwo=$(jexec two ifconfig gif create)
+	jexec two ifconfig $gtwo tunnel 192.0.2.2 192.0.2.1
+	jexec two ifconfig $gtwo inet6 no_dad 2001:db8:1::2/64 up
+
+	# Sanity check
+	atf_check -s exit:0 -o ignore \
+	    jexec one ping -c 1 192.0.2.2
+
+	# Tunnel test
+	atf_check -s exit:0 -o ignore \
+	    jexec one ping -6 -c 1 2001:db8:1::2
+	atf_check -s exit:0 -o ignore \
+	    jexec two ping -6 -c 1 2001:db8:1::1
+}
+
+6in4_cleanup()
+{
+	vnet_cleanup
+}
+
+atf_test_case "4in6" "cleanup"
+4in6_head()
+{
+	atf_set descr 'IPv4 in IPv6 tunnel'
+	atf_set require.user root
+}
+
+4in6_body()
+{
+	vnet_init
+	if ! kldstat -q -m if_gif; then
+		atf_skip "This test requires if_gif"
+	fi
+
+	epair=$(vnet_mkepair)
+
+	vnet_mkjail one ${epair}a
+	jexec one ifconfig ${epair}a inet6 no_dad 2001:db8::1/64 up
+	gone=$(jexec one ifconfig gif create)
+	jexec one ifconfig $gone inet6 tunnel 2001:db8::1 2001:db8::2
+	jexec one ifconfig $gone inet 198.51.100.1/24 198.51.100.2 up
+
+	vnet_mkjail two ${epair}b
+	jexec two ifconfig ${epair}b inet6 no_dad 2001:db8::2/64 up
+	gtwo=$(jexec two ifconfig gif create)
+	jexec two ifconfig $gtwo inet6 tunnel 2001:db8::2 2001:db8::1
+	jexec two ifconfig $gtwo inet 198.51.100.2/24 198.51.100.1 up
+
+	# Sanity check
+	atf_check -s exit:0 -o ignore \
+	    jexec one ping -6 -c 1 2001:db8::2
+
+	# Tunnel test
+	atf_check -s exit:0 -o ignore \
+	    jexec one ping -c 1 198.51.100.2
+	atf_check -s exit:0 -o ignore \
+	    jexec two ping -c 1 198.51.100.1
+}
+
+4in6_cleanup()
+{
+	vnet_cleanup
+}
+
+atf_test_case "6in6" "cleanup"
+6in6_head()
+{
+	atf_set descr 'IPv6 in IPv6 tunnel'
+	atf_set require.user root
+}
+
+6in6_body()
+{
+	vnet_init
+	if ! kldstat -q -m if_gif; then
+		atf_skip "This test requires if_gif"
+	fi
+
+	epair=$(vnet_mkepair)
+
+	vnet_mkjail one ${epair}a
+	jexec one ifconfig ${epair}a inet6 no_dad 2001:db8::1/64 up
+	gone=$(jexec one ifconfig gif create)
+	jexec one ifconfig $gone inet6 tunnel 2001:db8::1 2001:db8::2
+	jexec one ifconfig $gone inet6 no_dad 2001:db8:1::1/64 up
+
+	vnet_mkjail two ${epair}b
+	jexec two ifconfig ${epair}b inet6 no_dad 2001:db8::2/64 up
+	gtwo=$(jexec two ifconfig gif create)
+	jexec two ifconfig $gtwo inet6 tunnel 2001:db8::2 2001:db8::1
+	jexec two ifconfig $gtwo inet6 no_dad 2001:db8:1::2/64 up
+
+	# Sanity check
+	atf_check -s exit:0 -o ignore \
+	    jexec one ping -6 -c 1 2001:db8::2
+
+	# Tunnel test
+	atf_check -s exit:0 -o ignore \
+	    jexec one ping -6 -c 1 2001:db8:1::2
+	atf_check -s exit:0 -o ignore \
+	    jexec two ping -6 -c 1 2001:db8:1::1
+}
+
+6in6_cleanup()
 {
 	vnet_cleanup
 }
 
 atf_init_test_cases()
 {
-	atf_add_test_case "basic"
+	atf_add_test_case "4in4"
+	atf_add_test_case "6in4"
+	atf_add_test_case "4in6"
+	atf_add_test_case "6in6"
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202510041644.594GiS49057930>