Skip to content

Commit

Permalink
selftests: mlxsw: Test port shaper
Browse files Browse the repository at this point in the history
TBF can be used as a root qdisc, in which case it is supposed to configure
port shaper. Add a test that verifies that this is so by installing a root
TBF with a ETS or PRIO below it, and then expecting individual bands to all
be shaped according to the root TBF configuration.

Signed-off-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
  • Loading branch information
Petr Machata authored and Jakub Kicinski committed Oct 29, 2021
1 parent 3d5290e commit 2b11e24
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions tools/testing/selftests/net/forwarding/sch_tbf_etsprio.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,12 @@
ALL_TESTS="
ping_ipv4
tbf_test
tbf_root_test
"
source $lib_dir/sch_tbf_core.sh

QDISC_TYPE=${QDISC% *}

tbf_test_one()
{
local bs=$1; shift
Expand All @@ -22,13 +25,38 @@ tbf_test_one()

tbf_test()
{
log_info "Testing root-$QDISC_TYPE-tbf"

# This test is used for both ETS and PRIO. Even though we only need two
# bands, PRIO demands a minimum of three.
tc qdisc add dev $swp2 root handle 10: $QDISC 3 priomap 2 1 0
tbf_test_one 128K
tc qdisc del dev $swp2 root
}

tbf_root_test()
{
local bs=128K

log_info "Testing root-tbf-$QDISC_TYPE"

tc qdisc replace dev $swp2 root handle 1: \
tbf rate 400Mbit burst $bs limit 1M
tc qdisc replace dev $swp2 parent 1:1 handle 10: \
$QDISC 3 priomap 2 1 0
tc qdisc replace dev $swp2 parent 10:3 handle 103: \
bfifo limit 1M
tc qdisc replace dev $swp2 parent 10:2 handle 102: \
bfifo limit 1M
tc qdisc replace dev $swp2 parent 10:1 handle 101: \
bfifo limit 1M

do_tbf_test 10 400 $bs
do_tbf_test 11 400 $bs

tc qdisc del dev $swp2 root
}

trap cleanup EXIT

setup_prepare
Expand Down

0 comments on commit 2b11e24

Please sign in to comment.