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

Konstantin Khorenko khorenko at virtuozzo.com
Tue Aug 25 17:41:40 MSK 2026


The commit is pushed to "branch-rh10-6.12.0-211.39.1.16.x.vz10-ovz" and will appear at git at bitbucket.org:openvz/vzkernel.git
after rh10-6.12.0-211.39.1.16.9.vz10
------>
commit 50b3850eecab56c3fe69a1561c523bc4795c6d38
Author: Eva Kurchatova <eva.kurchatova at virtuozzo.com>
Date:   Mon Aug 24 15:50:10 2026 +0200

    selftests: netdevsim: skip the rate tc-bw check without tool support
    
    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.
    
    https://virtuozzo.atlassian.net/browse/VSTOR-139651
    Feature: fix selftests
    Signed-off-by: Eva Kurchatova <eva.kurchatova at virtuozzo.com>
    Signed-off-by: Konstantin Khorenko <khorenko at virtuozzo.com>
---
 .../selftests/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 030762b203d76..fd17fb0ec0202 100755
--- a/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
+++ b/tools/testing/selftests/drivers/net/netdevsim/devlink.sh
@@ -668,6 +668,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`
@@ -691,12 +698,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"
@@ -716,9 +725,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"


More information about the Devel mailing list