Thread (2 messages) 2 messages, 2 authors, 16d ago

[PATCH] selftests: netdevsim: skip the rate tc-bw check without tool support

flat view
COLD16d

From: Eva Kurchatova <hidden>
Date: 2026-09-25 13:55:27
Also in: linux-kselftest, lkml
Subsystem: kernel selftest framework, netdevsim, networking drivers, the rest · Maintainers: Shuah Khan, Shuah Khan, Jakub Kicinski, Andrew Lunn, "David S. Miller", Eric Dumazet, Paolo Abeni, Linus Torvalds

The tc-bw attribute was added to devlink in iproute2 6.17, together
with the kernel side in v6.17. An older devlink has no such option and
the rate test fails on "Unknown option" instead of skipping.

Probe once in rate_test() and skip the tc-bw checks as a whole, so that
a missing option costs a single skip line rather than one per rate
object.

Signed-off-by: Eva Kurchatova <redacted>
---
 .../drivers/net/netdevsim/devlink.sh          | 29 +++++++++++++------
 1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
index 22a626c6cde3..1ba925459aff 100755
--- a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
+++ b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
@@ -849,6 +849,13 @@ rate_test()
 {
 	RET=0
 
+	local tc_bw_supported=false
+	if devlink port function rate help 2>&1 | grep -q tc-bw; then
+		tc_bw_supported=true
+	else
+		log_test_skip "rate tc-bw" "Current iproute doesn't support rate option 'tc-bw'."
+	fi
+
 	echo $VF_COUNT > /sys/bus/netdevsim/devices/$DEV_NAME/sriov_numvfs
 	devlink dev eswitch set $DL_HANDLE mode switchdev
 	local leafs=`rate_leafs_get $DL_HANDLE`
@@ -872,12 +879,14 @@ rate_test()
 		rate=$(($rate+100))
 	done
 
-	local tc_bw="0:0 1:40 2:0 3:0 4:0 5:0 6:60 7:0"
-	for r_obj in $leafs
-	do
-		rate_attr_tc_bw_check "$r_obj" "$tc_bw" \
-			"$DEBUGFS_DIR"/ports/"${r_obj##*/}"
-	done
+	if $tc_bw_supported; then
+		local tc_bw="0:0 1:40 2:0 3:0 4:0 5:0 6:60 7:0"
+		for r_obj in $leafs
+		do
+			rate_attr_tc_bw_check "$r_obj" "$tc_bw" \
+				"$DEBUGFS_DIR"/ports/"${r_obj##*/}"
+		done
+	fi
 
 	local node1_name='group1'
 	local node1="$DL_HANDLE/$node1_name"
@@ -897,9 +906,11 @@ rate_test()
 		$DEBUGFS_DIR/rate_nodes/${node1##*/}/tx_max
 
 
-	local tc_bw="0:20 1:0 2:0 3:0 4:0 5:20 6:60 7:0"
-	rate_attr_tc_bw_check $node1 "$tc_bw" \
-		"$DEBUGFS_DIR"/rate_nodes/"${node1##*/}"
+	if $tc_bw_supported; then
+		local tc_bw="0:20 1:0 2:0 3:0 4:0 5:20 6:60 7:0"
+		rate_attr_tc_bw_check $node1 "$tc_bw" \
+			"$DEBUGFS_DIR"/rate_nodes/"${node1##*/}"
+	fi
 
 
 	rate_node_del "$node1"
-- 
2.55.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help