1e814c58dSPetr Machata#!/bin/bash 2e814c58dSPetr Machata# SPDX-License-Identifier: GPL-2.0 3e814c58dSPetr Machata 4e814c58dSPetr MachataALL_TESTS=" 5e814c58dSPetr Machata ping_ipv4 6e814c58dSPetr Machata tbf_test 72b11e24eSPetr Machata tbf_root_test 8e814c58dSPetr Machata" 9e814c58dSPetr Machatasource $lib_dir/sch_tbf_core.sh 10e814c58dSPetr Machata 112b11e24eSPetr MachataQDISC_TYPE=${QDISC% *} 122b11e24eSPetr Machata 13e814c58dSPetr Machatatbf_test_one() 14e814c58dSPetr Machata{ 15e814c58dSPetr Machata local bs=$1; shift 16e814c58dSPetr Machata 17e814c58dSPetr Machata tc qdisc replace dev $swp2 parent 10:3 handle 103: tbf \ 18e814c58dSPetr Machata rate 400Mbit burst $bs limit 1M 19e814c58dSPetr Machata tc qdisc replace dev $swp2 parent 10:2 handle 102: tbf \ 20e814c58dSPetr Machata rate 800Mbit burst $bs limit 1M 21e814c58dSPetr Machata 22e814c58dSPetr Machata do_tbf_test 10 400 $bs 23e814c58dSPetr Machata do_tbf_test 11 800 $bs 24e814c58dSPetr Machata} 25e814c58dSPetr Machata 26e814c58dSPetr Machatatbf_test() 27e814c58dSPetr Machata{ 282b11e24eSPetr Machata log_info "Testing root-$QDISC_TYPE-tbf" 292b11e24eSPetr Machata 30e814c58dSPetr Machata # This test is used for both ETS and PRIO. Even though we only need two 31e814c58dSPetr Machata # bands, PRIO demands a minimum of three. 32e814c58dSPetr Machata tc qdisc add dev $swp2 root handle 10: $QDISC 3 priomap 2 1 0 33e814c58dSPetr Machata tbf_test_one 128K 34e814c58dSPetr Machata tc qdisc del dev $swp2 root 35e814c58dSPetr Machata} 36e814c58dSPetr Machata 372b11e24eSPetr Machatatbf_root_test() 382b11e24eSPetr Machata{ 392b11e24eSPetr Machata local bs=128K 402b11e24eSPetr Machata 412b11e24eSPetr Machata log_info "Testing root-tbf-$QDISC_TYPE" 422b11e24eSPetr Machata 432b11e24eSPetr Machata tc qdisc replace dev $swp2 root handle 1: \ 442b11e24eSPetr Machata tbf rate 400Mbit burst $bs limit 1M 452b11e24eSPetr Machata tc qdisc replace dev $swp2 parent 1:1 handle 10: \ 462b11e24eSPetr Machata $QDISC 3 priomap 2 1 0 472b11e24eSPetr Machata tc qdisc replace dev $swp2 parent 10:3 handle 103: \ 482b11e24eSPetr Machata bfifo limit 1M 492b11e24eSPetr Machata tc qdisc replace dev $swp2 parent 10:2 handle 102: \ 502b11e24eSPetr Machata bfifo limit 1M 512b11e24eSPetr Machata tc qdisc replace dev $swp2 parent 10:1 handle 101: \ 522b11e24eSPetr Machata bfifo limit 1M 532b11e24eSPetr Machata 542b11e24eSPetr Machata do_tbf_test 10 400 $bs 552b11e24eSPetr Machata do_tbf_test 11 400 $bs 562b11e24eSPetr Machata 572b11e24eSPetr Machata tc qdisc del dev $swp2 root 582b11e24eSPetr Machata} 592b11e24eSPetr Machata 60*54e906f1SPetr Machataif type -t sch_tbf_pre_hook >/dev/null; then 61*54e906f1SPetr Machata sch_tbf_pre_hook 62*54e906f1SPetr Machatafi 63*54e906f1SPetr Machata 64e814c58dSPetr Machatatrap cleanup EXIT 65e814c58dSPetr Machata 66e814c58dSPetr Machatasetup_prepare 67e814c58dSPetr Machatasetup_wait 68e814c58dSPetr Machata 69e814c58dSPetr Machatatests_run 70e814c58dSPetr Machata 71e814c58dSPetr Machataexit $EXIT_STATUS 72