1#!/bin/bash
2# SPDX-License-Identifier: GPL-2.0
3
4ALL_TESTS="
5	ping_ipv4
6	ecn_test
7	ecn_test_perband
8	ecn_nodrop_test
9	red_test
10	mc_backlog_test
11	red_mirror_test
12"
13source sch_red_core.sh
14
15BACKLOG=300000
16
17install_qdisc()
18{
19	local -a args=("$@")
20
21	tc qdisc add dev $swp3 parent 1: handle 108: red \
22	   limit 1000000 min $BACKLOG max $((BACKLOG + 1)) \
23	   probability 1.0 avpkt 8000 burst 38 "${args[@]}"
24	sleep 1
25}
26
27uninstall_qdisc()
28{
29	tc qdisc del dev $swp3 parent 1:
30}
31
32ecn_test()
33{
34	install_qdisc ecn
35	do_ecn_test 10 $BACKLOG
36	uninstall_qdisc
37}
38
39ecn_test_perband()
40{
41	install_qdisc ecn
42	do_ecn_test_perband 10 $BACKLOG
43	uninstall_qdisc
44}
45
46ecn_nodrop_test()
47{
48	install_qdisc ecn nodrop
49	do_ecn_nodrop_test 10 $BACKLOG
50	uninstall_qdisc
51}
52
53red_test()
54{
55	install_qdisc
56	do_red_test 10 $BACKLOG
57	uninstall_qdisc
58}
59
60mc_backlog_test()
61{
62	install_qdisc
63	# Note that the backlog value here does not correspond to RED
64	# configuration, but is arbitrary.
65	do_mc_backlog_test 10 $BACKLOG
66	uninstall_qdisc
67}
68
69red_mirror_test()
70{
71	install_qdisc qevent early_drop block 10
72	do_drop_mirror_test 10 $BACKLOG
73	uninstall_qdisc
74}
75
76bail_on_lldpad "configure DCB" "configure Qdiscs"
77
78trap cleanup EXIT
79setup_prepare
80setup_wait
81tests_run
82
83exit $EXIT_STATUS
84