mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
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: Petr Machata <petrm@nvidia.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Acked-by: Nikolay Aleksandrov <razor@blackwall.org> Link: https://patch.msgid.link/856d9e01725fdba21b7f6716358f645b19131af2.1734540770.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
3abd45122c
commit
976d248bd3
|
|
@ -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
|
||||
|
||||
ip link set dev "$name" up
|
||||
defer ip link set dev "$name" down
|
||||
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 "$@"
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user