Server IP : 13.213.54.232 / Your IP : 216.73.217.11 Web Server : Apache/2.4.52 (Ubuntu) System : Linux ip-172-31-17-110 6.8.0-1029-aws #31~22.04.1-Ubuntu SMP Thu Apr 24 21:16:18 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 7.1.33-67+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /lib/modules/6.8.0-1031-aws/build/tools/testing/selftests/drivers/net/mlxsw/ |
Upload File : |
#!/bin/bash # SPDX-License-Identifier: GPL-2.0 ALL_TESTS=" ping_ipv4 ecn_test ecn_test_perband ecn_nodrop_test red_test mc_backlog_test red_mirror_test red_trap_test ecn_mirror_test " : ${QDISC:=ets} source sch_red_core.sh # do_ecn_test first build 2/3 of the requested backlog and expects no marking, # and then builds 3/2 of it and does expect marking. The values of $BACKLOG1 and # $BACKLOG2 are far enough not to overlap, so that we can assume that if we do # see (do not see) marking, it is actually due to the configuration of that one # TC, and not due to configuration of the other TC leaking over. BACKLOG1=200000 BACKLOG2=500000 install_root_qdisc() { tc qdisc add dev $swp3 parent 1: handle 10: $QDISC \ bands 8 priomap 7 6 5 4 3 2 1 0 } install_qdisc_tc0() { local -a args=("$@") tc qdisc add dev $swp3 parent 10:8 handle 108: red \ limit 1000000 min $BACKLOG1 max $((BACKLOG1 + 1)) \ probability 1.0 avpkt 8000 burst 38 "${args[@]}" } install_qdisc_tc1() { local -a args=("$@") tc qdisc add dev $swp3 parent 10:7 handle 107: red \ limit 1000000 min $BACKLOG2 max $((BACKLOG2 + 1)) \ probability 1.0 avpkt 8000 burst 63 "${args[@]}" } install_qdisc() { install_root_qdisc install_qdisc_tc0 "$@" install_qdisc_tc1 "$@" sleep 1 } uninstall_qdisc_tc0() { tc qdisc del dev $swp3 parent 10:8 } uninstall_qdisc_tc1() { tc qdisc del dev $swp3 parent 10:7 } uninstall_root_qdisc() { tc qdisc del dev $swp3 parent 1: } uninstall_qdisc() { uninstall_qdisc_tc0 uninstall_qdisc_tc1 uninstall_root_qdisc } ecn_test() { install_qdisc ecn do_ecn_test 10 $BACKLOG1 do_ecn_test 11 $BACKLOG2 uninstall_qdisc } ecn_test_perband() { install_qdisc ecn do_ecn_test_perband 10 $BACKLOG1 do_ecn_test_perband 11 $BACKLOG2 uninstall_qdisc } ecn_nodrop_test() { install_qdisc ecn nodrop do_ecn_nodrop_test 10 $BACKLOG1 do_ecn_nodrop_test 11 $BACKLOG2 uninstall_qdisc } red_test() { install_qdisc # Make sure that we get the non-zero value if there is any. local cur=$(busywait 1100 until_counter_is "> 0" \ qdisc_stats_get $swp3 10: .backlog) (( cur == 0 )) check_err $? "backlog of $cur observed on non-busy qdisc" log_test "$QDISC backlog properly cleaned" do_red_test 10 $BACKLOG1 do_red_test 11 $BACKLOG2 uninstall_qdisc } mc_backlog_test() { install_qdisc # Note that the backlog numbers here do not correspond to RED # configuration, but are arbitrary. do_mc_backlog_test 10 $BACKLOG1 do_mc_backlog_test 11 $BACKLOG2 uninstall_qdisc } red_mirror_test() { install_qdisc qevent early_drop block 10 do_drop_mirror_test 10 $BACKLOG1 early_drop do_drop_mirror_test 11 $BACKLOG2 early_drop uninstall_qdisc } red_trap_test() { install_qdisc qevent early_drop block 10 do_drop_trap_test 10 $BACKLOG1 early_drop do_drop_trap_test 11 $BACKLOG2 early_drop uninstall_qdisc } ecn_mirror_test() { install_qdisc ecn qevent mark block 10 do_mark_mirror_test 10 $BACKLOG1 do_mark_mirror_test 11 $BACKLOG2 uninstall_qdisc } bail_on_lldpad "configure DCB" "configure Qdiscs" trap cleanup EXIT setup_prepare setup_wait tests_run exit $EXIT_STATUS