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	defer uninstall_qdisc
36
37	do_ecn_test 10 $BACKLOG
38}
39
40ecn_test_perband()
41{
42	install_qdisc ecn
43	defer uninstall_qdisc
44
45	do_ecn_test_perband 10 $BACKLOG
46}
47
48ecn_nodrop_test()
49{
50	install_qdisc ecn nodrop
51	defer uninstall_qdisc
52
53	do_ecn_nodrop_test 10 $BACKLOG
54}
55
56red_test()
57{
58	install_qdisc
59	defer uninstall_qdisc
60
61	do_red_test 10 $BACKLOG
62}
63
64mc_backlog_test()
65{
66	install_qdisc
67	defer uninstall_qdisc
68
69	# Note that the backlog value here does not correspond to RED
70	# configuration, but is arbitrary.
71	do_mc_backlog_test 10 $BACKLOG
72}
73
74red_mirror_test()
75{
76	install_qdisc qevent early_drop block 10
77	defer uninstall_qdisc
78
79	do_drop_mirror_test 10 $BACKLOG
80}
81
82bail_on_lldpad "configure DCB" "configure Qdiscs"
83
84trap cleanup EXIT
85setup_prepare
86setup_wait
87tests_run
88
89exit $EXIT_STATUS
90