mirror of https://gitee.com/openkylin/linux.git
selftest: netdevsim: Add devlink port shared/max tx rate test
Test verifies that netdevsim VFs can set and retrieve shared/max tx rate through new devlink API. Co-developed-by: Vlad Buslov <vladbu@nvidia.com> Signed-off-by: Vlad Buslov <vladbu@nvidia.com> Signed-off-by: Dmytro Linkin <dlinkin@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
605c4f8f19
commit
31f0723336
|
@ -516,6 +516,45 @@ rate_leafs_get()
|
|||
'.[] | to_entries | .[] | select(.value.type == "leaf") | .key | select(contains("'$handle'"))'
|
||||
}
|
||||
|
||||
rate_attr_set()
|
||||
{
|
||||
local handle=$1
|
||||
local name=$2
|
||||
local value=$3
|
||||
local units=$4
|
||||
|
||||
devlink port function rate set $handle $name $value$units
|
||||
}
|
||||
|
||||
rate_attr_get()
|
||||
{
|
||||
local handle=$1
|
||||
local name=$2
|
||||
|
||||
cmd_jq "devlink port function rate show $handle -j" '.[][].'$name
|
||||
}
|
||||
|
||||
rate_attr_tx_rate_check()
|
||||
{
|
||||
local handle=$1
|
||||
local name=$2
|
||||
local rate=$3
|
||||
local debug_file=$4
|
||||
|
||||
rate_attr_set $handle $name $rate mbit
|
||||
check_err $? "Failed to set $name value"
|
||||
|
||||
local debug_value=$(cat $debug_file)
|
||||
check_err $? "Failed to read $name value from debugfs"
|
||||
[ "$debug_value" == "$rate" ]
|
||||
check_err $? "Unexpected $name debug value $debug_value != $rate"
|
||||
|
||||
local api_value=$(( $(rate_attr_get $handle $name) * 8 / 1000000 ))
|
||||
check_err $? "Failed to get $name attr value"
|
||||
[ "$api_value" == "$rate" ]
|
||||
check_err $? "Unexpected $name attr value $api_value != $rate"
|
||||
}
|
||||
|
||||
rate_test()
|
||||
{
|
||||
RET=0
|
||||
|
@ -527,6 +566,22 @@ rate_test()
|
|||
[ "$num_leafs" == "$VF_COUNT" ]
|
||||
check_err $? "Expected $VF_COUNT rate leafs but got $num_leafs"
|
||||
|
||||
rate=10
|
||||
for r_obj in $leafs
|
||||
do
|
||||
rate_attr_tx_rate_check $r_obj tx_share $rate \
|
||||
$DEBUGFS_DIR/ports/${r_obj##*/}/tx_share
|
||||
rate=$(($rate+10))
|
||||
done
|
||||
|
||||
rate=100
|
||||
for r_obj in $leafs
|
||||
do
|
||||
rate_attr_tx_rate_check $r_obj tx_max $rate \
|
||||
$DEBUGFS_DIR/ports/${r_obj##*/}/tx_max
|
||||
rate=$(($rate+100))
|
||||
done
|
||||
|
||||
log_test "rate test"
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue