From: Or Har-Toov <ohartoov@nvidia.com>
Add selftest to verify port-level resource functionality using netdevsim.
Signed-off-by: Or Har-Toov <ohartoov@nvidia.com>
Reviewed-by: Shay Drori <shayd@nvidia.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
---
.../drivers/net/netdevsim/devlink.sh | 32 ++++++++++++++++++-
1 file changed, 31 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
index 1b529ccaf050..674f0e981ab0 100755
--- a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
+++ b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
@@ -5,7 +5,7 @@ lib_dir=$(dirname $0)/../../../net/forwarding
ALL_TESTS="fw_flash_test params_test \
params_default_test regions_test reload_test \
- netns_reload_test resource_test dev_info_test \
+ netns_reload_test resource_test port_resource_test dev_info_test \
empty_reporter_test dummy_reporter_test rate_test"
NUM_NETIFS=0
source $lib_dir/lib.sh
@@ -856,6 +856,36 @@ rate_test()
log_test "rate test"
}
+port_resource_test()
+{
+ RET=0
+
+ local first_port="${DL_HANDLE}/0"
+ local name
+ local size
+
+ devlink port resource show "$first_port" > /dev/null 2>&1
+ check_err $? "Failed to show port resource for $first_port"
+
+ name=$(cmd_jq "devlink port resource show $first_port -j" \
+ ".[][][].name")
+ [ "$name" == "max_sfs" ]
+ check_err $? "Unexpected resource name $name (expected max_sfs)"
+
+ size=$(cmd_jq "devlink port resource show $first_port -j" \
+ ".[][][].size")
+ [ "$size" == "20" ]
+ check_err $? "Unexpected resource size $size (expected 20)"
+
+ devlink port resource show "$DL_HANDLE" > /dev/null 2>&1
+ check_err $? "Failed to show port resources for $DL_HANDLE"
+
+ devlink port resource show > /dev/null 2>&1
+ check_err $? "Failed to dump all port resources"
+
+ log_test "port resource test"
+}
+
setup_prepare()
{
modprobe netdevsim
--
2.40.1
On 2/3/26 8:10 AM, Tariq Toukan wrote:
> From: Or Har-Toov <ohartoov@nvidia.com>
>
> Add selftest to verify port-level resource functionality using netdevsim.
>
> Signed-off-by: Or Har-Toov <ohartoov@nvidia.com>
> Reviewed-by: Shay Drori <shayd@nvidia.com>
> Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
> Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
> ---
> .../drivers/net/netdevsim/devlink.sh | 32 ++++++++++++++++++-
> 1 file changed, 31 insertions(+), 1 deletion(-)
>
> diff --git a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
> index 1b529ccaf050..674f0e981ab0 100755
> --- a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
> +++ b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
> @@ -5,7 +5,7 @@ lib_dir=$(dirname $0)/../../../net/forwarding
>
> ALL_TESTS="fw_flash_test params_test \
> params_default_test regions_test reload_test \
> - netns_reload_test resource_test dev_info_test \
> + netns_reload_test resource_test port_resource_test dev_info_test \
> empty_reporter_test dummy_reporter_test rate_test"
> NUM_NETIFS=0
> source $lib_dir/lib.sh
> @@ -856,6 +856,36 @@ rate_test()
> log_test "rate test"
> }
>
> +port_resource_test()
> +{
> + RET=0
> +
> + local first_port="${DL_HANDLE}/0"
> + local name
> + local size
> +
> + devlink port resource show "$first_port" > /dev/null 2>&1
> + check_err $? "Failed to show port resource for $first_port"
> +
> + name=$(cmd_jq "devlink port resource show $first_port -j" \
> + ".[][][].name")
> + [ "$name" == "max_sfs" ]
> + check_err $? "Unexpected resource name $name (expected max_sfs)"
> +
> + size=$(cmd_jq "devlink port resource show $first_port -j" \
> + ".[][][].size")
> + [ "$size" == "20" ]
> + check_err $? "Unexpected resource size $size (expected 20)"
> +
> + devlink port resource show "$DL_HANDLE" > /dev/null 2>&1
> + check_err $? "Failed to show port resources for $DL_HANDLE"
> +
> + devlink port resource show > /dev/null 2>&1
> + check_err $? "Failed to dump all port resources"
> +
> + log_test "port resource test"
> +}
> +
> setup_prepare()
> {
> modprobe netdevsim
This test is failing in NIPA (adding some more context beyond the
failing test output just in case it may help):
# Error: netdevsim: Exceeded number of supported fib entries.
# Error: netdevsim: Exceeded number of supported fib entries.
# kernel answers: Operation not permitted
# TEST: resource test [ OK ]
# Command "resource" not found
# Command "resource" not found
# TEST: port resource test [FAIL]
# Failed to show port resource for netdevsim/netdevsim10/0
# TEST: dev_info test [ OK ]
# TEST: empty reporter test [ OK ]
# kernel answers: Success
# kernel answers: Success
# ./devlink.sh: line 614: echo: write error: Invalid argument
# Error: netdevsim: User setup the recover to fail for testing purposes.
/P
On Tue, 3 Feb 2026 11:16:45 +0100 Paolo Abeni wrote: > # Error: netdevsim: Exceeded number of supported fib entries. > # Error: netdevsim: Exceeded number of supported fib entries. > # kernel answers: Operation not permitted > # TEST: resource test [ OK ] > # Command "resource" not found > # Command "resource" not found > # TEST: port resource test [FAIL] > # Failed to show port resource for netdevsim/netdevsim10/0 > # TEST: dev_info test [ OK ] > # TEST: empty reporter test [ OK ] > # kernel answers: Success > # kernel answers: Success > # ./devlink.sh: line 614: echo: write error: Invalid argument > # Error: netdevsim: User setup the recover to fail for testing purposes. I suppose this is because iproute2 needs patching. Tariq, could you post the user space bits or share a link where we can pull them from? I'll revive this in PW once we have CLI updated..
On 04/02/2026 4:26, Jakub Kicinski wrote: > On Tue, 3 Feb 2026 11:16:45 +0100 Paolo Abeni wrote: >> # Error: netdevsim: Exceeded number of supported fib entries. >> # Error: netdevsim: Exceeded number of supported fib entries. >> # kernel answers: Operation not permitted >> # TEST: resource test [ OK ] >> # Command "resource" not found >> # Command "resource" not found >> # TEST: port resource test [FAIL] >> # Failed to show port resource for netdevsim/netdevsim10/0 >> # TEST: dev_info test [ OK ] >> # TEST: empty reporter test [ OK ] >> # kernel answers: Success >> # kernel answers: Success >> # ./devlink.sh: line 614: echo: write error: Invalid argument >> # Error: netdevsim: User setup the recover to fail for testing purposes. > > I suppose this is because iproute2 needs patching. Tariq, could you > post the user space bits or share a link where we can pull them from? > I'll revive this in PW once we have CLI updated.. > Right. I'll include a pointer in the next submission. We're fixing the code to fail gracefully (i.e. skip) if userspace doesn't have the needed support.
© 2016 - 2026 Red Hat, Inc.