mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-04-08 15:39:15 +08:00
selftests: rtnetlink: Add operational state test
Virtual devices (e.g., VXLAN) that do not have a notion of a carrier are created with an "UNKNOWN" operational state which some users find confusing [1]. It is possible to set the operational state from user space either during device creation or afterwards and some applications will start doing that in order to avoid the above problem. Add a test for this functionality to ensure it does not regress. [1] https://lore.kernel.org/netdev/20241119153703.71f97b76@hermes.local/ Reviewed-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/20250717125151.466882-1-idosch@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
e7ce59d920
commit
25250f40e2
@@ -30,6 +30,7 @@ ALL_TESTS="
|
||||
kci_test_address_proto
|
||||
kci_test_enslave_bonding
|
||||
kci_test_mngtmpaddr
|
||||
kci_test_operstate
|
||||
"
|
||||
|
||||
devdummy="test-dummy0"
|
||||
@@ -1344,6 +1345,39 @@ kci_test_mngtmpaddr()
|
||||
return $ret
|
||||
}
|
||||
|
||||
kci_test_operstate()
|
||||
{
|
||||
local ret=0
|
||||
|
||||
# Check that it is possible to set operational state during device
|
||||
# creation and that it is preserved when the administrative state of
|
||||
# the device is toggled.
|
||||
run_cmd ip link add name vx0 up state up type vxlan id 10010 dstport 4789
|
||||
run_cmd_grep "state UP" ip link show dev vx0
|
||||
run_cmd ip link set dev vx0 down
|
||||
run_cmd_grep "state DOWN" ip link show dev vx0
|
||||
run_cmd ip link set dev vx0 up
|
||||
run_cmd_grep "state UP" ip link show dev vx0
|
||||
|
||||
run_cmd ip link del dev vx0
|
||||
|
||||
# Check that it is possible to set the operational state of the device
|
||||
# after creation.
|
||||
run_cmd ip link add name vx0 up type vxlan id 10010 dstport 4789
|
||||
run_cmd_grep "state UNKNOWN" ip link show dev vx0
|
||||
run_cmd ip link set dev vx0 state up
|
||||
run_cmd_grep "state UP" ip link show dev vx0
|
||||
|
||||
run_cmd ip link del dev vx0
|
||||
|
||||
if [ "$ret" -ne 0 ]; then
|
||||
end_test "FAIL: operstate"
|
||||
return 1
|
||||
fi
|
||||
|
||||
end_test "PASS: operstate"
|
||||
}
|
||||
|
||||
kci_test_rtnl()
|
||||
{
|
||||
local current_test
|
||||
|
||||
Reference in New Issue
Block a user