Commit 976d248b authored by Petr Machata's avatar Petr Machata Committed by Jakub Kicinski
Browse files

selftests: net: lib: Add a couple autodefer helpers



Alongside the helper ip_link_set_up(), one to set the link down will be
useful as well. Add a helper to determine the link state as well,
ip_link_is_up(), and use it to short-circuit any changes if the state is
already the desired one.

Furthermore, add a helper bridge_vlan_add().

Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
Acked-by: default avatarNikolay Aleksandrov <razor@blackwall.org>
Link: https://patch.msgid.link/856d9e01725fdba21b7f6716358f645b19131af2.1734540770.git.petrm@nvidia.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 3abd4512
Loading
Loading
Loading
Loading
+29 −2
Original line number Diff line number Diff line
@@ -477,12 +477,33 @@ ip_link_set_addr()
	defer ip link set dev "$name" address "$old_addr"
}

ip_link_is_up()
{
	local name=$1; shift

	local state=$(ip -j link show "$name" |
		      jq -r '(.[].flags[] | select(. == "UP")) // "DOWN"')
	[[ $state == "UP" ]]
}

ip_link_set_up()
{
	local name=$1; shift

	if ! ip_link_is_up "$name"; then
		ip link set dev "$name" up
		defer ip link set dev "$name" down
	fi
}

ip_link_set_down()
{
	local name=$1; shift

	if ip_link_is_up "$name"; then
		ip link set dev "$name" down
		defer ip link set dev "$name" up
	fi
}

ip_addr_add()
@@ -498,3 +519,9 @@ ip_route_add()
	ip route add "$@"
	defer ip route del "$@"
}

bridge_vlan_add()
{
	bridge vlan add "$@"
	defer bridge vlan del "$@"
}