1
0

selftests: forwarding: lib: Add an autodefer variant of simple_if_init()

Most forwarding tests invoke simple_if_init() to set up a VRF-based "host"
and simple_if_fini() to tear it down again. Add a helper,
adf_simple_if_init(), which is like simple_if_fini(), but takes care of
scheduling the cleanup automatically.

Convert the tests that currently use defer to schedule the cleanup.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/6b9ee1a7946a36fd32a47fdb1aa9325198ffc695.1758821127.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
Petr Machata
2025-09-25 19:31:54 +02:00
committed by Jakub Kicinski
parent 02aabe00b2
commit f53748d56d
13 changed files with 31 additions and 52 deletions

View File

@@ -44,8 +44,7 @@ source $lib_dir/devlink_lib.sh
h1_create()
{
simple_if_init $h1 192.0.2.1/24
defer simple_if_fini $h1 192.0.2.1/24
adf_simple_if_init $h1 192.0.2.1/24
mtu_set $h1 10000
defer mtu_restore $h1
@@ -56,8 +55,7 @@ h1_create()
h2_create()
{
simple_if_init $h2 198.51.100.1/24
defer simple_if_fini $h2 198.51.100.1/24
adf_simple_if_init $h2 198.51.100.1/24
mtu_set $h2 10000
defer mtu_restore $h2

View File

@@ -57,8 +57,7 @@ source qos_lib.sh
h1_create()
{
simple_if_init $h1
defer simple_if_fini $h1
adf_simple_if_init $h1
mtu_set $h1 10000
defer mtu_restore $h1
@@ -70,8 +69,7 @@ h1_create()
h2_create()
{
simple_if_init $h2
defer simple_if_fini $h2
adf_simple_if_init $h2
mtu_set $h2 10000
defer mtu_restore $h2
@@ -83,8 +81,7 @@ h2_create()
h3_create()
{
simple_if_init $h3
defer simple_if_fini $h3
adf_simple_if_init $h3
mtu_set $h3 10000
defer mtu_restore $h3

View File

@@ -68,8 +68,7 @@ mlxsw_only_on_spectrum 2+ || exit
h1_create()
{
simple_if_init $h1
defer simple_if_fini $h1
adf_simple_if_init $h1
vlan_create $h1 111 v$h1 192.0.2.33/28
defer vlan_destroy $h1 111
@@ -78,8 +77,7 @@ h1_create()
h2_create()
{
simple_if_init $h2
defer simple_if_fini $h2
adf_simple_if_init $h2
vlan_create $h2 111 v$h2 192.0.2.34/28
defer vlan_destroy $h2 111

View File

@@ -72,8 +72,7 @@ source qos_lib.sh
h1_create()
{
simple_if_init $h1 192.0.2.65/28
defer simple_if_fini $h1 192.0.2.65/28
adf_simple_if_init $h1 192.0.2.65/28
mtu_set $h1 10000
defer mtu_restore $h1
@@ -81,8 +80,7 @@ h1_create()
h2_create()
{
simple_if_init $h2
defer simple_if_fini $h2
adf_simple_if_init $h2
mtu_set $h2 10000
defer mtu_restore $h2
@@ -94,8 +92,7 @@ h2_create()
h3_create()
{
simple_if_init $h3 192.0.2.66/28
defer simple_if_fini $h3 192.0.2.66/28
adf_simple_if_init $h3 192.0.2.66/28
mtu_set $h3 10000
defer mtu_restore $h3

View File

@@ -100,8 +100,7 @@ host_create()
local dev=$1; shift
local host=$1; shift
simple_if_init $dev
defer simple_if_fini $dev
adf_simple_if_init $dev
mtu_set $dev 10000
defer mtu_restore $dev

View File

@@ -26,14 +26,12 @@ source lib.sh
h1_create()
{
simple_if_init "$h1" 192.0.2.1/28
defer simple_if_fini "$h1" 192.0.2.1/28
adf_simple_if_init "$h1" 192.0.2.1/28
}
h2_create()
{
simple_if_init "$h2" 192.0.2.2/28
defer simple_if_fini "$h2" 192.0.2.2/28
adf_simple_if_init "$h2" 192.0.2.2/28
}
switch_create()

View File

@@ -44,18 +44,14 @@ host_create()
local ipv4=$1; shift
local ipv6=$1; shift
simple_if_init "$h" "$ipv4" "$ipv6"
defer simple_if_fini "$h" "$ipv4" "$ipv6"
adf_simple_if_init "$h" "$ipv4" "$ipv6"
adf_ip_route_add vrf "v$h" 192.0.2.16/28 nexthop via 192.0.2.3
adf_ip_route_add vrf "v$h" 2001:db8:2::/64 nexthop via 2001:db8:1::3
}
h3_create()
{
simple_if_init "$h3" 192.0.2.18/28 2001:db8:2::2/64
defer simple_if_fini "$h3" 192.0.2.18/28 2001:db8:2::2/64
adf_simple_if_init "$h3" 192.0.2.18/28 2001:db8:2::2/64
adf_ip_route_add vrf "v$h3" 192.0.2.0/28 nexthop via 192.0.2.17
adf_ip_route_add vrf "v$h3" 2001:db8:1::/64 nexthop via 2001:db8:2::1

View File

@@ -717,6 +717,12 @@ simple_if_fini()
vrf_destroy $vrf_name
}
adf_simple_if_init()
{
simple_if_init "$@"
defer simple_if_fini "$@"
}
tunnel_create()
{
local name=$1; shift

View File

@@ -165,8 +165,7 @@ h1_create()
{
local i;
simple_if_init $h1
defer simple_if_fini $h1
adf_simple_if_init $h1
mtu_set $h1 9900
defer mtu_restore $h1
@@ -182,8 +181,7 @@ h2_create()
{
local i
simple_if_init $h2
defer simple_if_fini $h2
adf_simple_if_init $h2
mtu_set $h2 9900
defer mtu_restore $h2

View File

@@ -52,8 +52,7 @@ PKTSZ=1400
h1_create()
{
simple_if_init $h1 192.0.2.1/28
defer simple_if_fini $h1 192.0.2.1/28
adf_simple_if_init $h1 192.0.2.1/28
mtu_set $h1 10000
defer mtu_restore $h1
@@ -65,8 +64,7 @@ h1_create()
h2_create()
{
simple_if_init $h2 192.0.2.2/28
defer simple_if_fini $h2 192.0.2.2/28
adf_simple_if_init $h2 192.0.2.2/28
mtu_set $h2 10000
defer mtu_restore $h2
@@ -74,8 +72,7 @@ h2_create()
h3_create()
{
simple_if_init $h3 192.0.2.3/28
defer simple_if_fini $h3 192.0.2.3/28
adf_simple_if_init $h3 192.0.2.3/28
mtu_set $h3 10000
defer mtu_restore $h3

View File

@@ -59,8 +59,7 @@ host_create()
local dev=$1; shift
local host=$1; shift
simple_if_init $dev
defer simple_if_fini $dev
adf_simple_if_init $dev
mtu_set $dev 10000
defer mtu_restore $dev

View File

@@ -119,8 +119,7 @@ source lib.sh
h1_create()
{
simple_if_init "$h1"
defer simple_if_fini "$h1"
adf_simple_if_init "$h1"
adf_ip_link_add "$h1.10" master "v$h1" link "$h1" type vlan id 10
adf_ip_link_set_up "$h1.10"
@@ -311,8 +310,7 @@ ns_init_common()
adf_bridge_vlan_add vid 20 dev w1
# w2
simple_if_init w2
defer simple_if_fini w2
adf_simple_if_init w2
# w2.10
adf_ip_link_add w2.10 master vw2 link w2 type vlan id 10

View File

@@ -47,8 +47,7 @@ source lib.sh
h1_create()
{
simple_if_init $h1 192.0.2.1/28
defer simple_if_fini $h1 192.0.2.1/28
adf_simple_if_init $h1 192.0.2.1/28
tc qdisc add dev $h1 clsact
defer tc qdisc del dev $h1 clsact
@@ -76,8 +75,7 @@ switch_create()
vrp2_create()
{
simple_if_init $rp2 192.0.2.18/28
defer simple_if_fini $rp2 192.0.2.18/28
adf_simple_if_init $rp2 192.0.2.18/28
}
setup_prepare()