mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-19 03:53:51 -04:00
mlxsw selftests often invoke a bail_on_lldpad() helper to make sure LLDPAD is not running, to prevent conflicts between the QoS configuration applied through TC or DCB command line tool, and the DCB configuration that LLDPAD might apply. This helper might be useful to others. Move the function to lib.sh, and parameterize to make reusable in other contexts. Signed-off-by: Petr Machata <petrm@nvidia.com> Reviewed-by: Danielle Ratson <danieller@nvidia.com> Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
82 lines
2.3 KiB
Bash
Executable File
82 lines
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
|
|
# A driver for the ETS selftest that implements testing in offloaded datapath.
|
|
lib_dir=$(dirname $0)/../../../net/forwarding
|
|
source $lib_dir/sch_ets_core.sh
|
|
source $lib_dir/devlink_lib.sh
|
|
|
|
ALL_TESTS="
|
|
ping_ipv4
|
|
priomap_mode
|
|
ets_test_strict
|
|
ets_test_mixed
|
|
ets_test_dwrr
|
|
"
|
|
|
|
PARENT="parent 3:3"
|
|
|
|
switch_create()
|
|
{
|
|
# Create a bottleneck so that the DWRR process can kick in.
|
|
tc qdisc replace dev $swp2 root handle 3: tbf rate 1gbit \
|
|
burst 128K limit 1G
|
|
|
|
ets_switch_create
|
|
|
|
# Set the ingress quota high and use the three egress TCs to limit the
|
|
# amount of traffic that is admitted to the shared buffers. This makes
|
|
# sure that there is always enough traffic of all types to select from
|
|
# for the DWRR process.
|
|
devlink_port_pool_th_save $swp1 0
|
|
devlink_port_pool_th_set $swp1 0 12
|
|
devlink_tc_bind_pool_th_save $swp1 0 ingress
|
|
devlink_tc_bind_pool_th_set $swp1 0 ingress 0 12
|
|
devlink_port_pool_th_save $swp2 4
|
|
devlink_port_pool_th_set $swp2 4 12
|
|
devlink_tc_bind_pool_th_save $swp2 7 egress
|
|
devlink_tc_bind_pool_th_set $swp2 7 egress 4 5
|
|
devlink_tc_bind_pool_th_save $swp2 6 egress
|
|
devlink_tc_bind_pool_th_set $swp2 6 egress 4 5
|
|
devlink_tc_bind_pool_th_save $swp2 5 egress
|
|
devlink_tc_bind_pool_th_set $swp2 5 egress 4 5
|
|
|
|
# Note: sch_ets_core.sh uses VLAN ingress-qos-map to assign packet
|
|
# priorities at $swp1 based on their 802.1p headers. ingress-qos-map is
|
|
# not offloaded by mlxsw as of this writing, but the mapping used is
|
|
# 1:1, which is the mapping currently hard-coded by the driver.
|
|
}
|
|
|
|
switch_destroy()
|
|
{
|
|
devlink_tc_bind_pool_th_restore $swp2 5 egress
|
|
devlink_tc_bind_pool_th_restore $swp2 6 egress
|
|
devlink_tc_bind_pool_th_restore $swp2 7 egress
|
|
devlink_port_pool_th_restore $swp2 4
|
|
devlink_tc_bind_pool_th_restore $swp1 0 ingress
|
|
devlink_port_pool_th_restore $swp1 0
|
|
|
|
ets_switch_destroy
|
|
|
|
tc qdisc del dev $swp2 root handle 3:
|
|
}
|
|
|
|
# Callback from sch_ets_tests.sh
|
|
collect_stats()
|
|
{
|
|
local -a streams=("$@")
|
|
local stream
|
|
|
|
# Wait for qdisc counter update so that we don't get it mid-way through.
|
|
busywait_for_counter 1000 +1 \
|
|
qdisc_parent_stats_get $swp2 10:$((${streams[0]} + 1)) .bytes \
|
|
> /dev/null
|
|
|
|
for stream in ${streams[@]}; do
|
|
qdisc_parent_stats_get $swp2 10:$((stream + 1)) .bytes
|
|
done
|
|
}
|
|
|
|
bail_on_lldpad "configure DCB" "configure Qdiscs"
|
|
ets_run
|