Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F150117156
D55183.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
35 KB
Referenced Files
None
Subscribers
None
D55183.diff
View Options
diff --git a/tests/ci/tools/ci.conf b/tests/ci/tools/ci.conf
--- a/tests/ci/tools/ci.conf
+++ b/tests/ci/tools/ci.conf
@@ -74,6 +74,7 @@
kld_list="\${kld_list} if_bridge" # sys/net/if_bridge_test
kld_list="\${kld_list} if_enc" # sys/netpfil/pf
kld_list="\${kld_list} if_epair" # sys/net/if_epair_test
+kld_list="\${kld_list} if_geneve" # sys/net/if_geneve
kld_list="\${kld_list} if_ovpn" # sys/net/if_ovpn
kld_list="\${kld_list} if_stf" # sys/net/if_stf
kld_list="\${kld_list} ipdivert" # sys/netinet (loads ipdivert)
diff --git a/tests/sys/net/Makefile b/tests/sys/net/Makefile
--- a/tests/sys/net/Makefile
+++ b/tests/sys/net/Makefile
@@ -15,6 +15,7 @@
ATF_TESTS_SH+= if_tun_test
ATF_TESTS_SH+= if_vlan
ATF_TESTS_SH+= if_wg
+ATF_TESTS_SH+= if_geneve
TESTS_SUBDIRS+= bpf
TESTS_SUBDIRS+= if_ovpn
diff --git a/tests/sys/net/if_geneve.sh b/tests/sys/net/if_geneve.sh
new file mode 100644
--- /dev/null
+++ b/tests/sys/net/if_geneve.sh
@@ -0,0 +1,1000 @@
+#
+# SPDX-License-Identifier: BSD-2-Clause
+#
+# Copyright (c) 2025 Seyed Pouria Mousavizadeh Tehrani <info@spmzt.net>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+# SUCH DAMAGE.
+
+. $(atf_get_srcdir)/../common/vnet.subr
+
+atf_test_case "ether_ipv4" "cleanup"
+ether_ipv4_head()
+{
+ atf_set descr 'Create a geneve(4) l2 tunnel over an ipv4 underlay using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+ether_ipv4_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=192.168.2.1
+ endpoint2=192.168.2.2
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
+ ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
+ geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
+ geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+}
+
+ether_ipv4_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "ether_ipv6" "cleanup"
+ether_ipv6_head()
+{
+ atf_set descr 'Create a geneve(4) l2 tunnel over an ipv6 underlay using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+ether_ipv6_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=3fff::1
+ endpoint2=3fff::2
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
+ ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
+ geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
+ geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+}
+
+ether_ipv6_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "inherit_ipv4" "cleanup"
+inherit_ipv4_head()
+{
+ atf_set descr 'Create a geneve(4) l3 tunnel over an ipv4 underlay using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+inherit_ipv4_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=192.168.2.1
+ endpoint2=192.168.2.2
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=2
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
+ ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
+ geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
+ geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+}
+
+inherit_ipv4_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "inherit_ipv6" "cleanup"
+inherit_ipv6_head()
+{
+ atf_set descr 'Create a geneve(4) l3 tunnel over an ipv6 underlay using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+inherit_ipv6_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=3fff::1
+ endpoint2=3fff::2
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
+ ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
+ geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
+ geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+}
+
+inherit_ipv6_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "ether_ipv6_blind_options" "cleanup"
+ether_ipv6_blind_options_head()
+{
+ atf_set descr 'Create a geneve(4) l2 ipv6 tunnel and test geneve options'
+ atf_set require.user root
+}
+
+ether_ipv6_blind_options_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2
+ local v6tunnel1 v6tunnel2
+
+ endpoint1=3fff::1
+ endpoint2=3fff::2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
+ ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
+ geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
+ geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevemaxaddr 1000
+ atf_check -s exit:0 -o match:"max: 1000" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevetimeout 1000
+ atf_check -s exit:0 -o match:"timeout: 1000" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -genevelearn
+ atf_check -s exit:0 -o match:"mode: nolearning" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevelearn
+ atf_check -s exit:0 -o match:" learning" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o match:"count: 1" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveflush
+ atf_check -s exit:0 -o match:"count: 0" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveflushall
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevettl inherit
+ atf_check -s exit:0 -o match:"ttl: inherit" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevettl 1
+ atf_check -s exit:0 -o match:"ttl: 1" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down genevedf set up
+ atf_check -s exit:0 -o match:"df: set" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down genevedf inherit up
+ atf_check -s exit:0 -o match:"df: inherit" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down genevedf unset up
+ atf_check -s exit:0 -o match:"df: unset" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevedscpinherit
+ atf_check -s exit:0 -o match:"dscp: inherit" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -genevedscpinherit
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveexternal
+ atf_check -s exit:0 -o match:" external" ifconfig -j genevetest1 -v geneve1
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -geneveexternal
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 down geneveportrange 11000 62000 up
+ atf_check -s exit:0 -o match:"portrange: 11000-62000" ifconfig -j genevetest1 -v geneve1
+
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+}
+
+ether_ipv6_blind_options_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "ether_ipv6_external" "cleanup"
+ether_ipv6_external_head()
+{
+ atf_set descr 'Create a geneve(4) l2 ipv6 tunnel and test geneve collect metadata'
+ atf_set require.user root
+}
+
+ether_ipv6_external_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2
+ local v6tunnel1 v6tunnel2
+
+ endpoint1=3fff::1
+ endpoint2=3fff::2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
+ ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
+ geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
+ geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveexternal
+ atf_check -s exit:16 -e ignore ifconfig -j genevetest1 geneve1 down geneveid 10 up
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -geneveexternal
+ atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down geneveid 10 up
+
+}
+
+ether_ipv6_external_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "ether_ipv4_multicast" "cleanup"
+ether_ipv4_multicast_head()
+{
+ atf_set descr 'Create a geneve(4) l2 ipv4 multicast tunnel using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+ether_ipv4_multicast_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=192.168.2.1
+ endpoint2=192.168.2.2
+ mc_group=239.0.0.1
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+ if ! kldstat -q -m ip_mroute; then
+ atf_skip "This test requires ip_mroute"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
+ ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
+
+ # manually add the multicast routes to epairs
+ route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a
+ route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
+ geneveid $vni1 genevelocal ${endpoint1} \
+ genevegroup ${mc_group} genevedev ${epair}a up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
+ geneveid $vni1 genevelocal ${endpoint2} \
+ genevegroup ${mc_group} genevedev ${epair}b up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet
+ atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+
+}
+
+ether_ipv4_multicast_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "ether_ipv6_multicast" "cleanup"
+ether_ipv6_multicast_head()
+{
+ atf_set descr 'Create a geneve(4) l2 ipv6 multicast tunnel using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+ether_ipv6_multicast_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=3fff::1
+ endpoint2=3fff::2
+ mc_group=ff08::db8:0:1
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+ if ! kldstat -q -m ip6_mroute; then
+ atf_skip "This test requires ip6_mroute"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
+ ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
+
+ # manually add the multicast routes to epairs
+ route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a
+ route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
+ geneveid $vni1 genevelocal ${endpoint1} \
+ genevegroup ${mc_group} genevedev ${epair}a up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
+ geneveid $vni1 genevelocal ${endpoint2} \
+ genevegroup ${mc_group} genevedev ${epair}b up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+
+}
+
+ether_ipv6_multicast_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "ether_ipv4_multicast_without_dev" "cleanup"
+ether_ipv4_multicast_without_dev_head()
+{
+ atf_set descr 'Create a geneve(4) l2 ipv4 multicast tunnel without specifying genevedev using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+ether_ipv4_multicast_without_dev_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=192.168.2.1
+ endpoint2=192.168.2.2
+ mc_group=239.0.0.1
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+ if ! kldstat -q -m ip_mroute; then
+ atf_skip "This test requires ip_mroute"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
+ ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
+
+ # manually add the multicast routes to epairs
+ route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a
+ route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
+ geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
+ geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet
+ atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+
+}
+
+ether_ipv4_multicast_without_dev_cleanup()
+{
+ vnet_cleanup
+}
+
+
+atf_test_case "ether_ipv6_multicast_without_dev" "cleanup"
+ether_ipv6_multicast_without_dev_head()
+{
+ atf_set descr 'Create a geneve(4) l2 ipv6 multicast tunnel without specifying genevedev using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+ether_ipv6_multicast_without_dev_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=3fff::1
+ endpoint2=3fff::2
+ mc_group=ff08::db8:0:1
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+ if ! kldstat -q -m ip6_mroute; then
+ atf_skip "This test requires ip6_mroute"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
+ ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
+
+ # manually add the multicast routes to epairs
+ route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a
+ route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
+ geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
+ geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+
+}
+
+ether_ipv6_multicast_without_dev_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "inherit_ipv4_multicast" "cleanup"
+inherit_ipv4_multicast_head()
+{
+ atf_set descr 'Create a geneve(4) l3 ipv4 multicast tunnel using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+inherit_ipv4_multicast_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=192.168.2.1
+ endpoint2=192.168.2.2
+ mc_group=239.0.0.1
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+ if ! kldstat -q -m ip_mroute; then
+ atf_skip "This test requires ip_mroute"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
+ ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
+
+ # manually add the multicast routes to epairs
+ route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a
+ route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
+ geneveid $vni1 genevelocal ${endpoint1} \
+ genevegroup ${mc_group} genevedev ${epair}a up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
+ geneveid $vni1 genevelocal ${endpoint2} \
+ genevegroup ${mc_group} genevedev ${epair}b up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1
+ atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1
+
+ atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet
+ atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+
+}
+
+inherit_ipv4_multicast_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "inherit_ipv6_multicast" "cleanup"
+inherit_ipv6_multicast_head()
+{
+ atf_set descr 'Create a geneve(4) l3 ipv6 multicast tunnel using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+inherit_ipv6_multicast_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=3fff::1
+ endpoint2=3fff::2
+ mc_group=ff08::db8:0:1
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+ if ! kldstat -q -m ip6_mroute; then
+ atf_skip "This test requires ip6_mroute"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
+ ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
+
+ # manually add the multicast routes to epairs
+ route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a
+ route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
+ geneveid $vni1 genevelocal ${endpoint1} \
+ genevegroup ${mc_group} genevedev ${epair}a up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
+ geneveid $vni1 genevelocal ${endpoint2} \
+ genevegroup ${mc_group} genevedev ${epair}b up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1
+ atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+
+}
+
+inherit_ipv6_multicast_cleanup()
+{
+ vnet_cleanup
+}
+
+atf_test_case "inherit_ipv4_multicast_without_dev" "cleanup"
+inherit_ipv4_multicast_without_dev_head()
+{
+ atf_set descr 'Create a geneve(4) l3 ipv4 multicast tunnel without specifying genevedev using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+inherit_ipv4_multicast_without_dev_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=192.168.2.1
+ endpoint2=192.168.2.2
+ mc_group=239.0.0.1
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+ if ! kldstat -q -m ip_mroute; then
+ atf_skip "This test requires ip_mroute"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
+ ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
+
+ # manually add the multicast routes to epairs
+ route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a
+ route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
+ geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
+ geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1
+ atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1
+
+ atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet
+ atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+
+}
+
+inherit_ipv4_multicast_without_dev_cleanup()
+{
+ vnet_cleanup
+}
+
+
+atf_test_case "inherit_ipv6_multicast_without_dev" "cleanup"
+inherit_ipv6_multicast_without_dev_head()
+{
+ atf_set descr 'Create a geneve(4) l3 ipv6 multicast tunnel without specifying genevedev using epair and pass traffic between jails'
+ atf_set require.user root
+}
+
+inherit_ipv6_multicast_without_dev_body()
+{
+ local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
+ local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
+
+ endpoint1=3fff::1
+ endpoint2=3fff::2
+ mc_group=ff08::db8:0:1
+ v4tunnel1=169.254.0.1
+ v4tunnel2=169.254.0.2
+ v6tunnel1=2001:db8::1
+ v6tunnel2=2001:db8::2
+ vni1=1
+
+ if ! kldstat -q -m if_geneve; then
+ atf_skip "This test requires if_geneve"
+ fi
+ if ! kldstat -q -m ip6_mroute; then
+ atf_skip "This test requires ip6_mroute"
+ fi
+
+ vnet_init
+ epair=$(vnet_mkepair)
+ vnet_mkjail genevetest1 ${epair}a
+ vnet_mkjail genevetest2 ${epair}b
+
+ ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
+ ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
+
+ # manually add the multicast routes to epairs
+ route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a
+ route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
+ geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
+ geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up
+
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30
+ atf_check -s exit:0 -o ignore \
+ ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
+
+ atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1
+ atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1
+
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
+ atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
+ atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
+
+}
+
+inherit_ipv6_multicast_without_dev_cleanup()
+{
+ vnet_cleanup
+}
+
+
+atf_init_test_cases()
+{
+ atf_add_test_case "ether_ipv4"
+ atf_add_test_case "ether_ipv4_multicast"
+ atf_add_test_case "ether_ipv4_multicast_without_dev"
+ atf_add_test_case "ether_ipv6"
+ atf_add_test_case "ether_ipv6_blind_options"
+ atf_add_test_case "ether_ipv6_external"
+ atf_add_test_case "ether_ipv6_multicast"
+ atf_add_test_case "ether_ipv6_multicast_without_dev"
+ atf_add_test_case "inherit_ipv4"
+ atf_add_test_case "inherit_ipv4_multicast"
+ atf_add_test_case "inherit_ipv4_multicast_without_dev"
+ atf_add_test_case "inherit_ipv6"
+ atf_add_test_case "inherit_ipv6_multicast"
+ atf_add_test_case "inherit_ipv6_multicast_without_dev"
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Mar 30, 12:49 PM (12 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30587382
Default Alt Text
D55183.diff (35 KB)
Attached To
Mode
D55183: geneve: Add geneve tests
Attached
Detach File
Event Timeline
Log In to Comment