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 defer tc qdisc del dev $swp2 root 34 35 tbf_test_one 128K 36} 37 38tbf_root_test() 39{ 40 local bs=128K 41 42 log_info "Testing root-tbf-$QDISC_TYPE" 43 44 tc qdisc replace dev $swp2 root handle 1: \ 45 tbf rate 400Mbit burst $bs limit 1M 46 defer tc qdisc del dev $swp2 root 47 48 tc qdisc replace dev $swp2 parent 1:1 handle 10: \ 49 $QDISC 3 priomap 2 1 0 50 tc qdisc replace dev $swp2 parent 10:3 handle 103: \ 51 bfifo limit 1M 52 tc qdisc replace dev $swp2 parent 10:2 handle 102: \ 53 bfifo limit 1M 54 tc qdisc replace dev $swp2 parent 10:1 handle 101: \ 55 bfifo limit 1M 56 57 do_tbf_test 10 400 $bs 58 do_tbf_test 11 400 $bs 59} 60 61if type -t sch_tbf_pre_hook >/dev/null; then 62 sch_tbf_pre_hook 63fi 64 65trap cleanup EXIT 66 67setup_prepare 68setup_wait 69 70tests_run 71 72exit $EXIT_STATUS 73