Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/bash
0002 # SPDX-License-Identifier: GPL-2.0
0003 
0004 ALL_TESTS="
0005         ping_ipv4
0006         tbf_test
0007         tbf_root_test
0008 "
0009 source $lib_dir/sch_tbf_core.sh
0010 
0011 QDISC_TYPE=${QDISC% *}
0012 
0013 tbf_test_one()
0014 {
0015         local bs=$1; shift
0016 
0017         tc qdisc replace dev $swp2 parent 10:3 handle 103: tbf \
0018            rate 400Mbit burst $bs limit 1M
0019         tc qdisc replace dev $swp2 parent 10:2 handle 102: tbf \
0020            rate 800Mbit burst $bs limit 1M
0021 
0022         do_tbf_test 10 400 $bs
0023         do_tbf_test 11 800 $bs
0024 }
0025 
0026 tbf_test()
0027 {
0028         log_info "Testing root-$QDISC_TYPE-tbf"
0029 
0030         # This test is used for both ETS and PRIO. Even though we only need two
0031         # bands, PRIO demands a minimum of three.
0032         tc qdisc add dev $swp2 root handle 10: $QDISC 3 priomap 2 1 0
0033         tbf_test_one 128K
0034         tc qdisc del dev $swp2 root
0035 }
0036 
0037 tbf_root_test()
0038 {
0039         local bs=128K
0040 
0041         log_info "Testing root-tbf-$QDISC_TYPE"
0042 
0043         tc qdisc replace dev $swp2 root handle 1: \
0044                 tbf rate 400Mbit burst $bs limit 1M
0045         tc qdisc replace dev $swp2 parent 1:1 handle 10: \
0046                 $QDISC 3 priomap 2 1 0
0047         tc qdisc replace dev $swp2 parent 10:3 handle 103: \
0048                 bfifo limit 1M
0049         tc qdisc replace dev $swp2 parent 10:2 handle 102: \
0050                 bfifo limit 1M
0051         tc qdisc replace dev $swp2 parent 10:1 handle 101: \
0052                 bfifo limit 1M
0053 
0054         do_tbf_test 10 400 $bs
0055         do_tbf_test 11 400 $bs
0056 
0057         tc qdisc del dev $swp2 root
0058 }
0059 
0060 trap cleanup EXIT
0061 
0062 setup_prepare
0063 setup_wait
0064 
0065 tests_run
0066 
0067 exit $EXIT_STATUS