mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-19 20:13:49 -04:00
selftest: netdevsim: Add devlink rate tc-bw test
Test verifies that netdevsim correctly implements devlink ops callbacks that set tc-bw on leaf or node rate object. Signed-off-by: Carolina Jubran <cjubran@nvidia.com> Reviewed-by: Cosmin Ratiu <cratiu@nvidia.com> Signed-off-by: Tariq Toukan <tariqt@nvidia.com> Signed-off-by: Mark Bloch <mbloch@nvidia.com> Link: https://patch.msgid.link/20250629142138.361537-4-mbloch@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
566e8f108f
commit
236156d80d
@@ -608,6 +608,46 @@ rate_attr_parent_check()
|
||||
check_err $? "Unexpected parent attr value $api_value != $parent"
|
||||
}
|
||||
|
||||
rate_attr_tc_bw_check()
|
||||
{
|
||||
local handle=$1
|
||||
local tc_bw=$2
|
||||
local debug_file=$3
|
||||
|
||||
local tc_bw_str=""
|
||||
for bw in $tc_bw; do
|
||||
local tc=${bw%%:*}
|
||||
local value=${bw##*:}
|
||||
tc_bw_str="$tc_bw_str $tc:$value"
|
||||
done
|
||||
tc_bw_str=${tc_bw_str# }
|
||||
|
||||
rate_attr_set "$handle" tc-bw "$tc_bw_str"
|
||||
check_err $? "Failed to set tc-bw values"
|
||||
|
||||
for bw in $tc_bw; do
|
||||
local tc=${bw%%:*}
|
||||
local value=${bw##*:}
|
||||
local debug_value
|
||||
debug_value=$(cat "$debug_file"/tc"${tc}"_bw)
|
||||
check_err $? "Failed to read tc-bw value from debugfs for tc$tc"
|
||||
[ "$debug_value" == "$value" ]
|
||||
check_err $? "Unexpected tc-bw debug value for tc$tc: $debug_value != $value"
|
||||
done
|
||||
|
||||
for bw in $tc_bw; do
|
||||
local tc=${bw%%:*}
|
||||
local expected_value=${bw##*:}
|
||||
local api_value
|
||||
api_value=$(rate_attr_get "$handle" tc_"$tc")
|
||||
if [ "$api_value" = "null" ]; then
|
||||
api_value=0
|
||||
fi
|
||||
[ "$api_value" == "$expected_value" ]
|
||||
check_err $? "Unexpected tc-bw value for tc$tc: $api_value != $expected_value"
|
||||
done
|
||||
}
|
||||
|
||||
rate_node_add()
|
||||
{
|
||||
local handle=$1
|
||||
@@ -649,6 +689,13 @@ 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
|
||||
|
||||
local node1_name='group1'
|
||||
local node1="$DL_HANDLE/$node1_name"
|
||||
rate_node_add "$node1"
|
||||
@@ -666,6 +713,12 @@ rate_test()
|
||||
rate_attr_tx_rate_check $node1 tx_max $node_tx_max \
|
||||
$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##*/}"
|
||||
|
||||
|
||||
rate_node_del "$node1"
|
||||
check_err $? "Failed to delete node $node1"
|
||||
local num_nodes=`rate_nodes_get $DL_HANDLE | wc -w`
|
||||
|
||||
Reference in New Issue
Block a user