xref: /freebsd/tests/sys/net/if_geneve.sh (revision 30b7621d46cc06053c0cb40bb691fbcecbfdab7f)
1aa9f669dSPouria Mousavizadeh Tehrani#
2aa9f669dSPouria Mousavizadeh Tehrani# SPDX-License-Identifier: BSD-2-Clause
3aa9f669dSPouria Mousavizadeh Tehrani#
4aa9f669dSPouria Mousavizadeh Tehrani# Copyright (c) 2025-2026 Pouria Mousavizadeh Tehrani <pouria@FreeBSD.org>
5aa9f669dSPouria Mousavizadeh Tehrani#
6aa9f669dSPouria Mousavizadeh Tehrani# Redistribution and use in source and binary forms, with or without
7aa9f669dSPouria Mousavizadeh Tehrani# modification, are permitted provided that the following conditions
8aa9f669dSPouria Mousavizadeh Tehrani# are met:
9aa9f669dSPouria Mousavizadeh Tehrani# 1. Redistributions of source code must retain the above copyright
10aa9f669dSPouria Mousavizadeh Tehrani#    notice, this list of conditions and the following disclaimer.
11aa9f669dSPouria Mousavizadeh Tehrani# 2. Redistributions in binary form must reproduce the above copyright
12aa9f669dSPouria Mousavizadeh Tehrani#    notice, this list of conditions and the following disclaimer in the
13aa9f669dSPouria Mousavizadeh Tehrani#    documentation and/or other materials provided with the distribution.
14aa9f669dSPouria Mousavizadeh Tehrani#
15aa9f669dSPouria Mousavizadeh Tehrani# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16aa9f669dSPouria Mousavizadeh Tehrani# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17aa9f669dSPouria Mousavizadeh Tehrani# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18aa9f669dSPouria Mousavizadeh Tehrani# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19aa9f669dSPouria Mousavizadeh Tehrani# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20aa9f669dSPouria Mousavizadeh Tehrani# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21aa9f669dSPouria Mousavizadeh Tehrani# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22aa9f669dSPouria Mousavizadeh Tehrani# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23aa9f669dSPouria Mousavizadeh Tehrani# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24aa9f669dSPouria Mousavizadeh Tehrani# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25aa9f669dSPouria Mousavizadeh Tehrani# SUCH DAMAGE.
26aa9f669dSPouria Mousavizadeh Tehrani
27aa9f669dSPouria Mousavizadeh Tehrani. $(atf_get_srcdir)/../common/vnet.subr
28aa9f669dSPouria Mousavizadeh Tehrani
29aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "ether_ipv4" "cleanup"
30aa9f669dSPouria Mousavizadeh Tehraniether_ipv4_head()
31aa9f669dSPouria Mousavizadeh Tehrani{
32aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l2 tunnel over an ipv4 underlay using epair and pass traffic between jails'
33aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
34*30b7621dSMark Johnston	atf_set require.kmods if_geneve
35aa9f669dSPouria Mousavizadeh Tehrani}
36aa9f669dSPouria Mousavizadeh Tehrani
37aa9f669dSPouria Mousavizadeh Tehraniether_ipv4_body()
38aa9f669dSPouria Mousavizadeh Tehrani{
39aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2
40aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
41aa9f669dSPouria Mousavizadeh Tehrani
42aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=192.168.2.1
43aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=192.168.2.2
44aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
45aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
46aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
47aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
48aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
49aa9f669dSPouria Mousavizadeh Tehrani
50aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
51aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
52aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
53aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
54aa9f669dSPouria Mousavizadeh Tehrani
55aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
56aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
57aa9f669dSPouria Mousavizadeh Tehrani
58aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
59aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
60aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
61aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
62aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
63aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
64aa9f669dSPouria Mousavizadeh Tehrani
65aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
66aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
67aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
68aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
69aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
70aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
71aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
72aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
73aa9f669dSPouria Mousavizadeh Tehrani
74aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
75aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
76aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
77aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
78aa9f669dSPouria Mousavizadeh Tehrani}
79aa9f669dSPouria Mousavizadeh Tehrani
80aa9f669dSPouria Mousavizadeh Tehraniether_ipv4_cleanup()
81aa9f669dSPouria Mousavizadeh Tehrani{
82aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
83aa9f669dSPouria Mousavizadeh Tehrani}
84aa9f669dSPouria Mousavizadeh Tehrani
85aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "ether_ipv6" "cleanup"
86aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_head()
87aa9f669dSPouria Mousavizadeh Tehrani{
88aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l2 tunnel over an ipv6 underlay using epair and pass traffic between jails'
89aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
90*30b7621dSMark Johnston	atf_set require.kmods if_geneve
91aa9f669dSPouria Mousavizadeh Tehrani}
92aa9f669dSPouria Mousavizadeh Tehrani
93aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_body()
94aa9f669dSPouria Mousavizadeh Tehrani{
95aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2
96aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
97aa9f669dSPouria Mousavizadeh Tehrani
98aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=3fff::1
99aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=3fff::2
100aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
101aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
102aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
103aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
104aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
105aa9f669dSPouria Mousavizadeh Tehrani
106aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
107aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
108aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
109aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
110aa9f669dSPouria Mousavizadeh Tehrani
111aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
112aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
113aa9f669dSPouria Mousavizadeh Tehrani
114aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
115aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
116aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
117aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
118aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
119aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
120aa9f669dSPouria Mousavizadeh Tehrani
121aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
122aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
123aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
124aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
125aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
126aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
127aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
128aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
129aa9f669dSPouria Mousavizadeh Tehrani
130aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
131aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
132aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
133aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
134aa9f669dSPouria Mousavizadeh Tehrani}
135aa9f669dSPouria Mousavizadeh Tehrani
136aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_cleanup()
137aa9f669dSPouria Mousavizadeh Tehrani{
138aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
139aa9f669dSPouria Mousavizadeh Tehrani}
140aa9f669dSPouria Mousavizadeh Tehrani
141aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "inherit_ipv4" "cleanup"
142aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv4_head()
143aa9f669dSPouria Mousavizadeh Tehrani{
144aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l3 tunnel over an ipv4 underlay using epair and pass traffic between jails'
145aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
146*30b7621dSMark Johnston	atf_set require.kmods if_geneve
147aa9f669dSPouria Mousavizadeh Tehrani}
148aa9f669dSPouria Mousavizadeh Tehrani
149aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv4_body()
150aa9f669dSPouria Mousavizadeh Tehrani{
151aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2
152aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
153aa9f669dSPouria Mousavizadeh Tehrani
154aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=192.168.2.1
155aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=192.168.2.2
156aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
157aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
158aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
159aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
160aa9f669dSPouria Mousavizadeh Tehrani	vni1=2
161aa9f669dSPouria Mousavizadeh Tehrani
162aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
163aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
164aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
165aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
166aa9f669dSPouria Mousavizadeh Tehrani
167aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
168aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
169aa9f669dSPouria Mousavizadeh Tehrani
170aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
171aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
172aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
173aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
174aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
175aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
176aa9f669dSPouria Mousavizadeh Tehrani
177aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
178aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
179aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
180aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
181aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
182aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
183aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
184aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
185aa9f669dSPouria Mousavizadeh Tehrani
186aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
187aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
188aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
189aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
190aa9f669dSPouria Mousavizadeh Tehrani}
191aa9f669dSPouria Mousavizadeh Tehrani
192aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv4_cleanup()
193aa9f669dSPouria Mousavizadeh Tehrani{
194aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
195aa9f669dSPouria Mousavizadeh Tehrani}
196aa9f669dSPouria Mousavizadeh Tehrani
197aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "inherit_ipv6" "cleanup"
198aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv6_head()
199aa9f669dSPouria Mousavizadeh Tehrani{
200aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l3 tunnel over an ipv6 underlay using epair and pass traffic between jails'
201aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
202*30b7621dSMark Johnston	atf_set require.kmods if_geneve
203aa9f669dSPouria Mousavizadeh Tehrani}
204aa9f669dSPouria Mousavizadeh Tehrani
205aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv6_body()
206aa9f669dSPouria Mousavizadeh Tehrani{
207aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2
208aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
209aa9f669dSPouria Mousavizadeh Tehrani
210aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=3fff::1
211aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=3fff::2
212aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
213aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
214aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
215aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
216aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
217aa9f669dSPouria Mousavizadeh Tehrani
218aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
219aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
220aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
221aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
222aa9f669dSPouria Mousavizadeh Tehrani
223aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
224aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
225aa9f669dSPouria Mousavizadeh Tehrani
226aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
227aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
228aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
229aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
230aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
231aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
232aa9f669dSPouria Mousavizadeh Tehrani
233aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
234aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
235aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
236aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
237aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
238aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
239aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
240aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
241aa9f669dSPouria Mousavizadeh Tehrani
242aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
243aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
244aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
245aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
246aa9f669dSPouria Mousavizadeh Tehrani}
247aa9f669dSPouria Mousavizadeh Tehrani
248aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv6_cleanup()
249aa9f669dSPouria Mousavizadeh Tehrani{
250aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
251aa9f669dSPouria Mousavizadeh Tehrani}
252aa9f669dSPouria Mousavizadeh Tehrani
253aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "ether_ipv6_blind_options" "cleanup"
254aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_blind_options_head()
255aa9f669dSPouria Mousavizadeh Tehrani{
256aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l2 ipv6 tunnel and test geneve options'
257aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
258*30b7621dSMark Johnston	atf_set require.kmods if_geneve
259aa9f669dSPouria Mousavizadeh Tehrani}
260aa9f669dSPouria Mousavizadeh Tehrani
261aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_blind_options_body()
262aa9f669dSPouria Mousavizadeh Tehrani{
263aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2
264aa9f669dSPouria Mousavizadeh Tehrani        local v6tunnel1 v6tunnel2
265aa9f669dSPouria Mousavizadeh Tehrani
266aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=3fff::1
267aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=3fff::2
268aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
269aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
270aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
271aa9f669dSPouria Mousavizadeh Tehrani
272aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
273aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
274aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
275aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
276aa9f669dSPouria Mousavizadeh Tehrani
277aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
278aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
279aa9f669dSPouria Mousavizadeh Tehrani
280aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
281aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
282aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
283aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
284aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
285aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
286aa9f669dSPouria Mousavizadeh Tehrani
287aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
288aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
289aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
290aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
291aa9f669dSPouria Mousavizadeh Tehrani
292aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
293aa9f669dSPouria Mousavizadeh Tehrani
294aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevemaxaddr 1000
295aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"max: 1000" ifconfig -j genevetest1 -v geneve1
296aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevetimeout 1000
297aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"timeout: 1000" ifconfig -j genevetest1 -v geneve1
298aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -genevelearn
299aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"mode: nolearning" ifconfig -j genevetest1 -v geneve1
300aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevelearn
301aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:" learning" ifconfig -j genevetest1 -v geneve1
302aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"count: 1" ifconfig -j genevetest1 -v geneve1
303aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveflush
304aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"count: 0" ifconfig -j genevetest1 -v geneve1
305aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveflushall
306aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevettl inherit
307aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"ttl: inherit" ifconfig -j genevetest1 -v geneve1
308aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevettl 1
309aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"ttl: 1" ifconfig -j genevetest1 -v geneve1
310aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down genevedf set up
311aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"df: set" ifconfig -j genevetest1 -v geneve1
312aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down genevedf inherit up
313aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"df: inherit" ifconfig -j genevetest1 -v geneve1
314aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down genevedf unset up
315aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"df: unset" ifconfig -j genevetest1 -v geneve1
316aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 genevedscpinherit
317aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"dscp: inherit" ifconfig -j genevetest1 -v geneve1
318aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -genevedscpinherit
319aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveexternal
320aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:" external" ifconfig -j genevetest1 -v geneve1
321aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -geneveexternal
322aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
323aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 down geneveportrange 11000 62000 up
324aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"portrange: 11000-62000" ifconfig -j genevetest1 -v geneve1
325aa9f669dSPouria Mousavizadeh Tehrani
326aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
327aa9f669dSPouria Mousavizadeh Tehrani}
328aa9f669dSPouria Mousavizadeh Tehrani
329aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_blind_options_cleanup()
330aa9f669dSPouria Mousavizadeh Tehrani{
331aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
332aa9f669dSPouria Mousavizadeh Tehrani}
333aa9f669dSPouria Mousavizadeh Tehrani
334aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "ether_ipv6_external" "cleanup"
335aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_external_head()
336aa9f669dSPouria Mousavizadeh Tehrani{
337aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l2 ipv6 tunnel and test geneve collect metadata'
338aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
339*30b7621dSMark Johnston	atf_set require.kmods if_geneve
340aa9f669dSPouria Mousavizadeh Tehrani}
341aa9f669dSPouria Mousavizadeh Tehrani
342aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_external_body()
343aa9f669dSPouria Mousavizadeh Tehrani{
344aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2
345aa9f669dSPouria Mousavizadeh Tehrani        local v6tunnel1 v6tunnel2
346aa9f669dSPouria Mousavizadeh Tehrani
347aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=3fff::1
348aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=3fff::2
349aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
350aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
351aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
352aa9f669dSPouria Mousavizadeh Tehrani
353aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
354aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
355aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
356aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
357aa9f669dSPouria Mousavizadeh Tehrani
358aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
359aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
360aa9f669dSPouria Mousavizadeh Tehrani
361aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
362aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
363aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint2} genevelocal ${endpoint1} up
364aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
365aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
366aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 geneveremote ${endpoint1} genevelocal ${endpoint2} up
367aa9f669dSPouria Mousavizadeh Tehrani
368aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
369aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
370aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
371aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
372aa9f669dSPouria Mousavizadeh Tehrani
373aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
374aa9f669dSPouria Mousavizadeh Tehrani
375aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 geneveexternal
376aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:16 -e ignore ifconfig -j genevetest1 geneve1 down geneveid 10 up
377aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 -geneveexternal
378aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore ifconfig -j genevetest1 geneve1 down geneveid 10 up
379aa9f669dSPouria Mousavizadeh Tehrani
380aa9f669dSPouria Mousavizadeh Tehrani}
381aa9f669dSPouria Mousavizadeh Tehrani
382aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_external_cleanup()
383aa9f669dSPouria Mousavizadeh Tehrani{
384aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
385aa9f669dSPouria Mousavizadeh Tehrani}
386aa9f669dSPouria Mousavizadeh Tehrani
387aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "ether_ipv4_multicast" "cleanup"
388aa9f669dSPouria Mousavizadeh Tehraniether_ipv4_multicast_head()
389aa9f669dSPouria Mousavizadeh Tehrani{
390aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l2 ipv4 multicast tunnel using epair and pass traffic between jails'
391aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
392*30b7621dSMark Johnston	atf_set require.kmods if_geneve ip_mroute
393aa9f669dSPouria Mousavizadeh Tehrani}
394aa9f669dSPouria Mousavizadeh Tehrani
395aa9f669dSPouria Mousavizadeh Tehraniether_ipv4_multicast_body()
396aa9f669dSPouria Mousavizadeh Tehrani{
397aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
398aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
399aa9f669dSPouria Mousavizadeh Tehrani
400aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=192.168.2.1
401aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=192.168.2.2
402aa9f669dSPouria Mousavizadeh Tehrani	mc_group=239.0.0.1
403aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
404aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
405aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
406aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
407aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
408aa9f669dSPouria Mousavizadeh Tehrani
409aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
410aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
411aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
412aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
413aa9f669dSPouria Mousavizadeh Tehrani
414aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
415aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
416aa9f669dSPouria Mousavizadeh Tehrani
417aa9f669dSPouria Mousavizadeh Tehrani	# manually add the multicast routes to epairs
418aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a
419aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b
420aa9f669dSPouria Mousavizadeh Tehrani
421aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
422aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
423aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint1} \
424aa9f669dSPouria Mousavizadeh Tehrani	    genevegroup ${mc_group} genevedev ${epair}a up
425aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
426aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
427aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint2} \
428aa9f669dSPouria Mousavizadeh Tehrani	    genevegroup ${mc_group} genevedev ${epair}b up
429aa9f669dSPouria Mousavizadeh Tehrani
430aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
431aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
432aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
433aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
434aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
435aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
436aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
437aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
438aa9f669dSPouria Mousavizadeh Tehrani
439aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet
440aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet
441aa9f669dSPouria Mousavizadeh Tehrani
442aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
443aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
444aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
445aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
446aa9f669dSPouria Mousavizadeh Tehrani}
447aa9f669dSPouria Mousavizadeh Tehrani
448aa9f669dSPouria Mousavizadeh Tehraniether_ipv4_multicast_cleanup()
449aa9f669dSPouria Mousavizadeh Tehrani{
450aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
451aa9f669dSPouria Mousavizadeh Tehrani}
452aa9f669dSPouria Mousavizadeh Tehrani
453aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "ether_ipv6_multicast" "cleanup"
454aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_multicast_head()
455aa9f669dSPouria Mousavizadeh Tehrani{
456aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l2 ipv6 multicast tunnel using epair and pass traffic between jails'
457aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
458*30b7621dSMark Johnston	atf_set require.kmods if_geneve ip6_mroute
459aa9f669dSPouria Mousavizadeh Tehrani}
460aa9f669dSPouria Mousavizadeh Tehrani
461aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_multicast_body()
462aa9f669dSPouria Mousavizadeh Tehrani{
463aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
464aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
465aa9f669dSPouria Mousavizadeh Tehrani
466aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=3fff::1
467aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=3fff::2
468aa9f669dSPouria Mousavizadeh Tehrani	mc_group=ff08::db8:0:1
469aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
470aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
471aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
472aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
473aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
474aa9f669dSPouria Mousavizadeh Tehrani
475aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
476aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
477aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
478aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
479aa9f669dSPouria Mousavizadeh Tehrani
480aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
481aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
482aa9f669dSPouria Mousavizadeh Tehrani
483aa9f669dSPouria Mousavizadeh Tehrani	# manually add the multicast routes to epairs
484aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a
485aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b
486aa9f669dSPouria Mousavizadeh Tehrani
487aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
488aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
489aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint1} \
490aa9f669dSPouria Mousavizadeh Tehrani	    genevegroup ${mc_group} genevedev ${epair}a up
491aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
492aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
493aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint2} \
494aa9f669dSPouria Mousavizadeh Tehrani	    genevegroup ${mc_group} genevedev ${epair}b up
495aa9f669dSPouria Mousavizadeh Tehrani
496aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
497aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
498aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
499aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
500aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
501aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
502aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
503aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
504aa9f669dSPouria Mousavizadeh Tehrani
505aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
506aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
507aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
508aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
509aa9f669dSPouria Mousavizadeh Tehrani}
510aa9f669dSPouria Mousavizadeh Tehrani
511aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_multicast_cleanup()
512aa9f669dSPouria Mousavizadeh Tehrani{
513aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
514aa9f669dSPouria Mousavizadeh Tehrani}
515aa9f669dSPouria Mousavizadeh Tehrani
516aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "ether_ipv4_multicast_without_dev" "cleanup"
517aa9f669dSPouria Mousavizadeh Tehraniether_ipv4_multicast_without_dev_head()
518aa9f669dSPouria Mousavizadeh Tehrani{
519aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l2 ipv4 multicast tunnel without specifying genevedev using epair and pass traffic between jails'
520aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
521*30b7621dSMark Johnston	atf_set require.kmods if_geneve ip_mroute
522aa9f669dSPouria Mousavizadeh Tehrani}
523aa9f669dSPouria Mousavizadeh Tehrani
524aa9f669dSPouria Mousavizadeh Tehraniether_ipv4_multicast_without_dev_body()
525aa9f669dSPouria Mousavizadeh Tehrani{
526aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
527aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
528aa9f669dSPouria Mousavizadeh Tehrani
529aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=192.168.2.1
530aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=192.168.2.2
531aa9f669dSPouria Mousavizadeh Tehrani	mc_group=239.0.0.1
532aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
533aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
534aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
535aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
536aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
537aa9f669dSPouria Mousavizadeh Tehrani
538aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
539aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
540aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
541aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
542aa9f669dSPouria Mousavizadeh Tehrani
543aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
544aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
545aa9f669dSPouria Mousavizadeh Tehrani
546aa9f669dSPouria Mousavizadeh Tehrani	# manually add the multicast routes to epairs
547aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a
548aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b
549aa9f669dSPouria Mousavizadeh Tehrani
550aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
551aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
552aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up
553aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
554aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
555aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up
556aa9f669dSPouria Mousavizadeh Tehrani
557aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
558aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
559aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
560aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
561aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
562aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
563aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
564aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
565aa9f669dSPouria Mousavizadeh Tehrani
566aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet
567aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet
568aa9f669dSPouria Mousavizadeh Tehrani
569aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
570aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
571aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
572aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
573aa9f669dSPouria Mousavizadeh Tehrani
574aa9f669dSPouria Mousavizadeh Tehrani}
575aa9f669dSPouria Mousavizadeh Tehrani
576aa9f669dSPouria Mousavizadeh Tehraniether_ipv4_multicast_without_dev_cleanup()
577aa9f669dSPouria Mousavizadeh Tehrani{
578aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
579aa9f669dSPouria Mousavizadeh Tehrani}
580aa9f669dSPouria Mousavizadeh Tehrani
581aa9f669dSPouria Mousavizadeh Tehrani
582aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "ether_ipv6_multicast_without_dev" "cleanup"
583aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_multicast_without_dev_head()
584aa9f669dSPouria Mousavizadeh Tehrani{
585aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l2 ipv6 multicast tunnel without specifying genevedev using epair and pass traffic between jails'
586aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
587*30b7621dSMark Johnston	atf_set require.kmods if_geneve ip6_mroute
588aa9f669dSPouria Mousavizadeh Tehrani}
589aa9f669dSPouria Mousavizadeh Tehrani
590aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_multicast_without_dev_body()
591aa9f669dSPouria Mousavizadeh Tehrani{
592aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
593aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
594aa9f669dSPouria Mousavizadeh Tehrani
595aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=3fff::1
596aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=3fff::2
597aa9f669dSPouria Mousavizadeh Tehrani	mc_group=ff08::db8:0:1
598aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
599aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
600aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
601aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
602aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
603aa9f669dSPouria Mousavizadeh Tehrani
604aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
605aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
606aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
607aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
608aa9f669dSPouria Mousavizadeh Tehrani
609aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
610aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
611aa9f669dSPouria Mousavizadeh Tehrani
612aa9f669dSPouria Mousavizadeh Tehrani	# manually add the multicast routes to epairs
613aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a
614aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b
615aa9f669dSPouria Mousavizadeh Tehrani
616aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
617aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l2 debug \
618aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up
619aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
620aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l2 debug \
621aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up
622aa9f669dSPouria Mousavizadeh Tehrani
623aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
624aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/24
625aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
626aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
627aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
628aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/24
629aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
630aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
631aa9f669dSPouria Mousavizadeh Tehrani
632aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
633aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
634aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
635aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
636aa9f669dSPouria Mousavizadeh Tehrani
637aa9f669dSPouria Mousavizadeh Tehrani}
638aa9f669dSPouria Mousavizadeh Tehrani
639aa9f669dSPouria Mousavizadeh Tehraniether_ipv6_multicast_without_dev_cleanup()
640aa9f669dSPouria Mousavizadeh Tehrani{
641aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
642aa9f669dSPouria Mousavizadeh Tehrani}
643aa9f669dSPouria Mousavizadeh Tehrani
644aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "inherit_ipv4_multicast" "cleanup"
645aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv4_multicast_head()
646aa9f669dSPouria Mousavizadeh Tehrani{
647aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l3 ipv4 multicast tunnel using epair and pass traffic between jails'
648aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
649*30b7621dSMark Johnston	atf_set require.kmods if_geneve ip_mroute
650aa9f669dSPouria Mousavizadeh Tehrani}
651aa9f669dSPouria Mousavizadeh Tehrani
652aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv4_multicast_body()
653aa9f669dSPouria Mousavizadeh Tehrani{
654aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
655aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
656aa9f669dSPouria Mousavizadeh Tehrani
657aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=192.168.2.1
658aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=192.168.2.2
659aa9f669dSPouria Mousavizadeh Tehrani	mc_group=239.0.0.1
660aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
661aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
662aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
663aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
664aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
665aa9f669dSPouria Mousavizadeh Tehrani
666aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
667aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
668aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
669aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
670aa9f669dSPouria Mousavizadeh Tehrani
671aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
672aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
673aa9f669dSPouria Mousavizadeh Tehrani
674aa9f669dSPouria Mousavizadeh Tehrani	# manually add the multicast routes to epairs
675aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a
676aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b
677aa9f669dSPouria Mousavizadeh Tehrani
678aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
679aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
680aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint1} \
681aa9f669dSPouria Mousavizadeh Tehrani	    genevegroup ${mc_group} genevedev ${epair}a up
682aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
683aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
684aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint2} \
685aa9f669dSPouria Mousavizadeh Tehrani	    genevegroup ${mc_group} genevedev ${epair}b up
686aa9f669dSPouria Mousavizadeh Tehrani
687aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
688aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30
689aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
690aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
691aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
692aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30
693aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
694aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
695aa9f669dSPouria Mousavizadeh Tehrani
696aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1
697aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1
698aa9f669dSPouria Mousavizadeh Tehrani
699aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet
700aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet
701aa9f669dSPouria Mousavizadeh Tehrani
702aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
703aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
704aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
705aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
706aa9f669dSPouria Mousavizadeh Tehrani}
707aa9f669dSPouria Mousavizadeh Tehrani
708aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv4_multicast_cleanup()
709aa9f669dSPouria Mousavizadeh Tehrani{
710aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
711aa9f669dSPouria Mousavizadeh Tehrani}
712aa9f669dSPouria Mousavizadeh Tehrani
713aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "inherit_ipv6_multicast" "cleanup"
714aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv6_multicast_head()
715aa9f669dSPouria Mousavizadeh Tehrani{
716aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l3 ipv6 multicast tunnel using epair and pass traffic between jails'
717aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
718*30b7621dSMark Johnston	atf_set require.kmods if_geneve ip6_mroute
719aa9f669dSPouria Mousavizadeh Tehrani}
720aa9f669dSPouria Mousavizadeh Tehrani
721aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv6_multicast_body()
722aa9f669dSPouria Mousavizadeh Tehrani{
723aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
724aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
725aa9f669dSPouria Mousavizadeh Tehrani
726aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=3fff::1
727aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=3fff::2
728aa9f669dSPouria Mousavizadeh Tehrani	mc_group=ff08::db8:0:1
729aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
730aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
731aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
732aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
733aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
734aa9f669dSPouria Mousavizadeh Tehrani
735aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
736aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
737aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
738aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
739aa9f669dSPouria Mousavizadeh Tehrani
740aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
741aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
742aa9f669dSPouria Mousavizadeh Tehrani
743aa9f669dSPouria Mousavizadeh Tehrani	# manually add the multicast routes to epairs
744aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a
745aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b
746aa9f669dSPouria Mousavizadeh Tehrani
747aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
748aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
749aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint1} \
750aa9f669dSPouria Mousavizadeh Tehrani	    genevegroup ${mc_group} genevedev ${epair}a up
751aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
752aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
753aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint2} \
754aa9f669dSPouria Mousavizadeh Tehrani	    genevegroup ${mc_group} genevedev ${epair}b up
755aa9f669dSPouria Mousavizadeh Tehrani
756aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
757aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30
758aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
759aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
760aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
761aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30
762aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
763aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
764aa9f669dSPouria Mousavizadeh Tehrani
765aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1
766aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1
767aa9f669dSPouria Mousavizadeh Tehrani
768aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
769aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
770aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
771aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
772aa9f669dSPouria Mousavizadeh Tehrani}
773aa9f669dSPouria Mousavizadeh Tehrani
774aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv6_multicast_cleanup()
775aa9f669dSPouria Mousavizadeh Tehrani{
776aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
777aa9f669dSPouria Mousavizadeh Tehrani}
778aa9f669dSPouria Mousavizadeh Tehrani
779aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "inherit_ipv4_multicast_without_dev" "cleanup"
780aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv4_multicast_without_dev_head()
781aa9f669dSPouria Mousavizadeh Tehrani{
782aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l3 ipv4 multicast tunnel without specifying genevedev using epair and pass traffic between jails'
783aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
784*30b7621dSMark Johnston	atf_set require.kmods if_geneve ip_mroute
785aa9f669dSPouria Mousavizadeh Tehrani}
786aa9f669dSPouria Mousavizadeh Tehrani
787aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv4_multicast_without_dev_body()
788aa9f669dSPouria Mousavizadeh Tehrani{
789aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
790aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
791aa9f669dSPouria Mousavizadeh Tehrani
792aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=192.168.2.1
793aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=192.168.2.2
794aa9f669dSPouria Mousavizadeh Tehrani	mc_group=239.0.0.1
795aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
796aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
797aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
798aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
799aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
800aa9f669dSPouria Mousavizadeh Tehrani
801aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
802aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
803aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
804aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
805aa9f669dSPouria Mousavizadeh Tehrani
806aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet ${endpoint1}/24 up
807aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet ${endpoint2}/24 up
808aa9f669dSPouria Mousavizadeh Tehrani
809aa9f669dSPouria Mousavizadeh Tehrani	# manually add the multicast routes to epairs
810aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest1 add -net 239.0.0.0/8 -interface ${epair}a
811aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest2 add -net 239.0.0.0/8 -interface ${epair}b
812aa9f669dSPouria Mousavizadeh Tehrani
813aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
814aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
815aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up
816aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
817aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
818aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up
819aa9f669dSPouria Mousavizadeh Tehrani
820aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
821aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30
822aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
823aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
824aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
825aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30
826aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
827aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
828aa9f669dSPouria Mousavizadeh Tehrani
829aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1
830aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1
831aa9f669dSPouria Mousavizadeh Tehrani
832aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest1 ifmcstat -i ${epair}a -f inet
833aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o match:"group 239.0.0.1" jexec genevetest2 ifmcstat -i ${epair}b -f inet
834aa9f669dSPouria Mousavizadeh Tehrani
835aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
836aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
837aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
838aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
839aa9f669dSPouria Mousavizadeh Tehrani
840aa9f669dSPouria Mousavizadeh Tehrani}
841aa9f669dSPouria Mousavizadeh Tehrani
842aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv4_multicast_without_dev_cleanup()
843aa9f669dSPouria Mousavizadeh Tehrani{
844aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
845aa9f669dSPouria Mousavizadeh Tehrani}
846aa9f669dSPouria Mousavizadeh Tehrani
847aa9f669dSPouria Mousavizadeh Tehrani
848aa9f669dSPouria Mousavizadeh Tehraniatf_test_case "inherit_ipv6_multicast_without_dev" "cleanup"
849aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv6_multicast_without_dev_head()
850aa9f669dSPouria Mousavizadeh Tehrani{
851aa9f669dSPouria Mousavizadeh Tehrani	atf_set descr 'Create a geneve(4) l3 ipv6 multicast tunnel without specifying genevedev using epair and pass traffic between jails'
852aa9f669dSPouria Mousavizadeh Tehrani	atf_set require.user root
853*30b7621dSMark Johnston	atf_set require.kmods if_geneve ip6_mroute
854aa9f669dSPouria Mousavizadeh Tehrani}
855aa9f669dSPouria Mousavizadeh Tehrani
856aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv6_multicast_without_dev_body()
857aa9f669dSPouria Mousavizadeh Tehrani{
858aa9f669dSPouria Mousavizadeh Tehrani	local epair geneve1 geneve2 vni1 endpoint1 endpoint2 mc_group
859aa9f669dSPouria Mousavizadeh Tehrani        local v4tunnel1 v4tunnel2 v6tunnel1 v6tunnel2
860aa9f669dSPouria Mousavizadeh Tehrani
861aa9f669dSPouria Mousavizadeh Tehrani	endpoint1=3fff::1
862aa9f669dSPouria Mousavizadeh Tehrani	endpoint2=3fff::2
863aa9f669dSPouria Mousavizadeh Tehrani	mc_group=ff08::db8:0:1
864aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel1=169.254.0.1
865aa9f669dSPouria Mousavizadeh Tehrani	v4tunnel2=169.254.0.2
866aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel1=2001:db8::1
867aa9f669dSPouria Mousavizadeh Tehrani	v6tunnel2=2001:db8::2
868aa9f669dSPouria Mousavizadeh Tehrani	vni1=1
869aa9f669dSPouria Mousavizadeh Tehrani
870aa9f669dSPouria Mousavizadeh Tehrani	vnet_init
871aa9f669dSPouria Mousavizadeh Tehrani	epair=$(vnet_mkepair)
872aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest1 ${epair}a
873aa9f669dSPouria Mousavizadeh Tehrani	vnet_mkjail genevetest2 ${epair}b
874aa9f669dSPouria Mousavizadeh Tehrani
875aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest1 ${epair}a inet6 ${endpoint1} up
876aa9f669dSPouria Mousavizadeh Tehrani	ifconfig -j genevetest2 ${epair}b inet6 ${endpoint2} up
877aa9f669dSPouria Mousavizadeh Tehrani
878aa9f669dSPouria Mousavizadeh Tehrani	# manually add the multicast routes to epairs
879aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest1 -n6 add -net ff08::db8:0:1/96 -interface ${epair}a
880aa9f669dSPouria Mousavizadeh Tehrani	route -j genevetest2 -n6 add -net ff08::db8:0:1/96 -interface ${epair}b
881aa9f669dSPouria Mousavizadeh Tehrani
882aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
883aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 create genevemode l3 debug \
884aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint1} genevegroup ${mc_group} up
885aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
886aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 create genevemode l3 debug \
887aa9f669dSPouria Mousavizadeh Tehrani	    geneveid $vni1 genevelocal ${endpoint2} genevegroup ${mc_group} up
888aa9f669dSPouria Mousavizadeh Tehrani
889aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
890aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet ${v4tunnel1}/30
891aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
892aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest1 geneve1 inet6 ${v6tunnel1}
893aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
894aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet ${v4tunnel2}/30
895aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore \
896aa9f669dSPouria Mousavizadeh Tehrani	    ifconfig -j genevetest2 geneve1 inet6 ${v6tunnel2}
897aa9f669dSPouria Mousavizadeh Tehrani
898aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore sysctl -j genevetest1 net.inet.icmp.bmcastecho=1
899aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore sysctl -j genevetest2 net.inet.icmp.bmcastecho=1
900aa9f669dSPouria Mousavizadeh Tehrani
901aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v6tunnel2
902aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v6tunnel1
903aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest1 ping -nc 1 -t 1 $v4tunnel2
904aa9f669dSPouria Mousavizadeh Tehrani	atf_check -s exit:0 -o ignore jexec genevetest2 ping -nc 1 -t 1 $v4tunnel1
905aa9f669dSPouria Mousavizadeh Tehrani}
906aa9f669dSPouria Mousavizadeh Tehrani
907aa9f669dSPouria Mousavizadeh Tehraniinherit_ipv6_multicast_without_dev_cleanup()
908aa9f669dSPouria Mousavizadeh Tehrani{
909aa9f669dSPouria Mousavizadeh Tehrani	vnet_cleanup
910aa9f669dSPouria Mousavizadeh Tehrani}
911aa9f669dSPouria Mousavizadeh Tehrani
912aa9f669dSPouria Mousavizadeh Tehrani
913aa9f669dSPouria Mousavizadeh Tehraniatf_init_test_cases()
914aa9f669dSPouria Mousavizadeh Tehrani{
915aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "ether_ipv4"
916aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "ether_ipv4_multicast"
917aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "ether_ipv4_multicast_without_dev"
918aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "ether_ipv6"
919aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "ether_ipv6_blind_options"
920aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "ether_ipv6_external"
921aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "ether_ipv6_multicast"
922aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "ether_ipv6_multicast_without_dev"
923aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "inherit_ipv4"
924aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "inherit_ipv4_multicast"
925aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "inherit_ipv4_multicast_without_dev"
926aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "inherit_ipv6"
927aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "inherit_ipv6_multicast"
928aa9f669dSPouria Mousavizadeh Tehrani	atf_add_test_case "inherit_ipv6_multicast_without_dev"
929aa9f669dSPouria Mousavizadeh Tehrani}
930