freebsd-dev/tests/sys/common/vnet.subr
Ed Maste adbe6e6435 Reenable vnet tests in CI
After restoring the associated commits the tests can be enabled again.

This reverts commit 711524d961.
This reverts commit c4585b938a.

PR:		263767
2022-05-05 14:38:08 -04:00

96 lines
1.5 KiB
Plaintext

# VNET/jail utility functions
##
list_interface()
{
echo $1 >> created_interfaces.lst
}
unlist_interface()
{
sed -i "" /^$1\$/d created_interfaces.lst
}
vnet_init()
{
if [ "`sysctl -i -n kern.features.vimage`" != 1 ]; then
atf_skip "This test requires VIMAGE"
fi
}
vnet_mkepair()
{
ifname=$(ifconfig epair create)
list_interface $ifname
list_interface ${ifname%a}b
echo ${ifname%a}
}
vnet_mkbridge()
{
ifname=$(ifconfig bridge create)
list_interface $ifname
echo ${ifname}
}
vnet_mkvlan()
{
ifname=$(ifconfig vlan create)
list_interface $ifname
echo ${ifname}
}
vnet_mkloopback()
{
ifname=$(ifconfig lo create)
list_interface $ifname
echo ${ifname}
}
vnet_mkjail()
{
jailname=$1
shift
vnet_interfaces=
for ifname in $@
do
vnet_interfaces="${vnet_interfaces} vnet.interface=${ifname}"
unlist_interface $ifname
done
jail -c name=${jailname} persist vnet ${vnet_interfaces}
echo $jailname $@ >> created_jails.lst
}
vnet_ifmove()
{
ifname=$1
jailname=$2
ifconfig ${ifname} vnet ${jailname}
unlist_interface $ifname
sed -i "" "/^${jailname}/s/\$/ ${ifname}/" created_jails.lst
}
vnet_cleanup()
{
if [ -f created_jails.lst ]; then
while read jailname ifnames; do
for ifname in ${ifnames}; do
jexec ${jailname} ifconfig ${ifname} destroy
done
jail -r ${jailname}
done < created_jails.lst
rm created_jails.lst
fi
if [ -f created_interfaces.lst ]; then
for ifname in `cat created_interfaces.lst`
do
ifconfig ${ifname} destroy
done
rm created_interfaces.lst
fi
}