mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 17:01:25 -05:00
selftests: net: lib: Add several autodefer helpers
Add ip_link_set_addr(), ip_link_set_up(), ip_addr_add() and ip_route_add() to the suite of helpers that automatically schedule a corresponding cleanup. When setting a new MAC, one needs to remember the old address first. Move mac_get() from forwarding/ to that end. Signed-off-by: Petr Machata <petrm@nvidia.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Nikolay Aleksandrov <razor@blackwall.org> Link: https://patch.msgid.link/add6bcbe30828fd01363266df20c338cf13aaf25.1733412063.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
8653eb21d6
commit
d76ccb2ec3
@@ -932,13 +932,6 @@ packets_rate()
|
||||
echo $(((t1 - t0) / interval))
|
||||
}
|
||||
|
||||
mac_get()
|
||||
{
|
||||
local if_name=$1
|
||||
|
||||
ip -j link show dev $if_name | jq -r '.[]["address"]'
|
||||
}
|
||||
|
||||
ether_addr_to_u64()
|
||||
{
|
||||
local addr="$1"
|
||||
|
||||
@@ -435,6 +435,13 @@ xfail_on_veth()
|
||||
fi
|
||||
}
|
||||
|
||||
mac_get()
|
||||
{
|
||||
local if_name=$1
|
||||
|
||||
ip -j link show dev $if_name | jq -r '.[]["address"]'
|
||||
}
|
||||
|
||||
kill_process()
|
||||
{
|
||||
local pid=$1; shift
|
||||
@@ -459,3 +466,35 @@ ip_link_set_master()
|
||||
ip link set dev "$member" master "$master"
|
||||
defer ip link set dev "$member" nomaster
|
||||
}
|
||||
|
||||
ip_link_set_addr()
|
||||
{
|
||||
local name=$1; shift
|
||||
local addr=$1; shift
|
||||
|
||||
local old_addr=$(mac_get "$name")
|
||||
ip link set dev "$name" address "$addr"
|
||||
defer ip link set dev "$name" address "$old_addr"
|
||||
}
|
||||
|
||||
ip_link_set_up()
|
||||
{
|
||||
local name=$1; shift
|
||||
|
||||
ip link set dev "$name" up
|
||||
defer ip link set dev "$name" down
|
||||
}
|
||||
|
||||
ip_addr_add()
|
||||
{
|
||||
local name=$1; shift
|
||||
|
||||
ip addr add dev "$name" "$@"
|
||||
defer ip addr del dev "$name" "$@"
|
||||
}
|
||||
|
||||
ip_route_add()
|
||||
{
|
||||
ip route add "$@"
|
||||
defer ip route del "$@"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user