1#!/bin/bash 2# SPDX-License-Identifier: GPL-2.0 3 4ALL_TESTS=" 5 ping_ipv4 6 tbf_test 7 tbf_root_test 8" 9source $lib_dir/sch_tbf_core.sh 10 11QDISC_TYPE=${QDISC% *} 12 13tbf_test_one() 14{ 15 local bs=$1; shift 16 17 tc qdisc replace dev $swp2 parent 10:3 handle 103: tbf \ 18 rate 400Mbit burst $bs limit 1M 19 tc qdisc replace dev $swp2 parent 10:2 handle 102: tbf \ 20 rate 800Mbit burst $bs limit 1M 21 22 do_tbf_test 10 400 $bs 23 do_tbf_test 11 800 $bs 24} 25 26tbf_test() 27{ 28 log_info "Testing root-$QDISC_TYPE-tbf" 29 30 # This test is used for both ETS and PRIO. Even though we only need two 31 # bands, PRIO demands a minimum of three. 32 tc qdisc add dev $swp2 root handle 10: $QDISC 3 priomap 2 1 0 33 tbf_test_one 128K 34 tc qdisc del dev $swp2 root 35} 36 37tbf_root_test() 38{ 39 local bs=128K 40 41 log_info "Testing root-tbf-$QDISC_TYPE" 42 43 tc qdisc replace dev $swp2 root handle 1: \ 44 tbf rate 400Mbit burst $bs limit 1M 45 tc qdisc replace dev $swp2 parent 1:1 handle 10: \ 46 $QDISC 3 priomap 2 1 0 47 tc qdisc replace dev $swp2 parent 10:3 handle 103: \ 48 bfifo limit 1M 49 tc qdisc replace dev $swp2 parent 10:2 handle 102: \ 50 bfifo limit 1M 51 tc qdisc replace dev $swp2 parent 10:1 handle 101: \ 52 bfifo limit 1M 53 54 do_tbf_test 10 400 $bs 55 do_tbf_test 11 400 $bs 56 57 tc qdisc del dev $swp2 root 58} 59 60if type -t sch_tbf_pre_hook >/dev/null; then 61 sch_tbf_pre_hook 62fi 63 64trap cleanup EXIT 65 66setup_prepare 67setup_wait 68 69tests_run 70 71exit $EXIT_STATUS 72