1[
2    {
3        "id": "8b6e",
4        "name": "Create RED with no flags",
5        "category": [
6            "qdisc",
7            "red"
8        ],
9        "plugins": {
10            "requires": "nsPlugin"
11        },
12        "setup": [
13            "$IP link add dev $DUMMY type dummy || /bin/true"
14        ],
15        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root red limit 1M avpkt 1500 min 100K max 300K",
16        "expExitCode": "0",
17        "verifyCmd": "$TC qdisc show dev $DUMMY",
18        "matchPattern": "qdisc red 1: root .* limit 1Mb min 100Kb max 300Kb $",
19        "matchCount": "1",
20        "teardown": [
21            "$TC qdisc del dev $DUMMY handle 1: root",
22            "$IP link del dev $DUMMY type dummy"
23        ]
24    },
25    {
26        "id": "342e",
27        "name": "Create RED with adaptive flag",
28        "category": [
29            "qdisc",
30            "red"
31        ],
32        "plugins": {
33            "requires": "nsPlugin"
34        },
35        "setup": [
36            "$IP link add dev $DUMMY type dummy || /bin/true"
37        ],
38        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root red adaptive limit 1M avpkt 1500 min 100K max 300K",
39        "expExitCode": "0",
40        "verifyCmd": "$TC qdisc show dev $DUMMY",
41        "matchPattern": "qdisc red 1: root .* limit 1Mb min 100Kb max 300Kb adaptive $",
42        "matchCount": "1",
43        "teardown": [
44            "$TC qdisc del dev $DUMMY handle 1: root",
45            "$IP link del dev $DUMMY type dummy"
46        ]
47    },
48    {
49        "id": "2d4b",
50        "name": "Create RED with ECN flag",
51        "category": [
52            "qdisc",
53            "red"
54        ],
55        "plugins": {
56            "requires": "nsPlugin"
57        },
58        "setup": [
59            "$IP link add dev $DUMMY type dummy || /bin/true"
60        ],
61        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root red ecn limit 1M avpkt 1500 min 100K max 300K",
62        "expExitCode": "0",
63        "verifyCmd": "$TC qdisc show dev $DUMMY",
64        "matchPattern": "qdisc red 1: root .* limit 1Mb min 100Kb max 300Kb ecn $",
65        "matchCount": "1",
66        "teardown": [
67            "$TC qdisc del dev $DUMMY handle 1: root",
68            "$IP link del dev $DUMMY type dummy"
69        ]
70    },
71    {
72        "id": "650f",
73        "name": "Create RED with flags ECN, adaptive",
74        "category": [
75            "qdisc",
76            "red"
77        ],
78        "plugins": {
79            "requires": "nsPlugin"
80        },
81        "setup": [
82            "$IP link add dev $DUMMY type dummy || /bin/true"
83        ],
84        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root red ecn adaptive limit 1M avpkt 1500 min 100K max 300K",
85        "expExitCode": "0",
86        "verifyCmd": "$TC qdisc show dev $DUMMY",
87        "matchPattern": "qdisc red 1: root .* limit 1Mb min 100Kb max 300Kb ecn adaptive $",
88        "matchCount": "1",
89        "teardown": [
90            "$TC qdisc del dev $DUMMY handle 1: root",
91            "$IP link del dev $DUMMY type dummy"
92        ]
93    },
94    {
95        "id": "5f15",
96        "name": "Create RED with flags ECN, harddrop",
97        "category": [
98            "qdisc",
99            "red"
100        ],
101        "plugins": {
102            "requires": "nsPlugin"
103        },
104        "setup": [
105            "$IP link add dev $DUMMY type dummy || /bin/true"
106        ],
107        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root red ecn harddrop limit 1M avpkt 1500 min 100K max 300K",
108        "expExitCode": "0",
109        "verifyCmd": "$TC qdisc show dev $DUMMY",
110        "matchPattern": "qdisc red 1: root .* limit 1Mb min 100Kb max 300Kb ecn harddrop $",
111        "matchCount": "1",
112        "teardown": [
113            "$TC qdisc del dev $DUMMY handle 1: root",
114            "$IP link del dev $DUMMY type dummy"
115        ]
116    },
117    {
118        "id": "53e8",
119        "name": "Create RED with flags ECN, nodrop",
120        "category": [
121            "qdisc",
122            "red"
123        ],
124        "plugins": {
125            "requires": "nsPlugin"
126        },
127        "setup": [
128            "$IP link add dev $DUMMY type dummy || /bin/true"
129        ],
130        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root red ecn nodrop limit 1M avpkt 1500 min 100K max 300K",
131        "expExitCode": "0",
132        "verifyCmd": "$TC qdisc show dev $DUMMY",
133        "matchPattern": "qdisc red 1: root .* limit 1Mb min 100Kb max 300Kb ecn nodrop $",
134        "matchCount": "1",
135        "teardown": [
136            "$TC qdisc del dev $DUMMY handle 1: root",
137            "$IP link del dev $DUMMY type dummy"
138        ]
139    },
140    {
141        "id": "d091",
142        "name": "Fail to create RED with only nodrop flag",
143        "category": [
144            "qdisc",
145            "red"
146        ],
147        "plugins": {
148            "requires": "nsPlugin"
149        },
150        "setup": [
151            "$IP link add dev $DUMMY type dummy || /bin/true"
152        ],
153        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root red nodrop limit 1M avpkt 1500 min 100K max 300K",
154        "expExitCode": "2",
155        "verifyCmd": "$TC qdisc show dev $DUMMY",
156        "matchPattern": "qdisc red",
157        "matchCount": "0",
158        "teardown": [
159            "$IP link del dev $DUMMY type dummy"
160        ]
161    },
162    {
163        "id": "af8e",
164        "name": "Create RED with flags ECN, nodrop, harddrop",
165        "category": [
166            "qdisc",
167            "red"
168        ],
169        "plugins": {
170            "requires": "nsPlugin"
171        },
172        "setup": [
173            "$IP link add dev $DUMMY type dummy || /bin/true"
174        ],
175        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root red ecn harddrop nodrop limit 1M avpkt 1500 min 100K max 300K",
176        "expExitCode": "0",
177        "verifyCmd": "$TC qdisc show dev $DUMMY",
178        "matchPattern": "qdisc red 1: root .* limit 1Mb min 100Kb max 300Kb ecn harddrop nodrop $",
179        "matchCount": "1",
180        "teardown": [
181            "$TC qdisc del dev $DUMMY handle 1: root",
182            "$IP link del dev $DUMMY type dummy"
183        ]
184    },
185    {
186        "id": "290a",
187        "name": "Show RED class",
188        "category": [
189            "qdisc",
190            "red"
191        ],
192        "plugins": {
193            "requires": "nsPlugin"
194        },
195        "setup": [
196            "$IP link add dev $DUMMY type dummy || /bin/true"
197        ],
198        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root red limit 1M avpkt 1500 min 100K max 300K",
199        "expExitCode": "0",
200        "verifyCmd": "$TC class show dev $DUMMY",
201        "matchPattern": "class red 1:[0-9]+ parent 1:",
202        "matchCount": "1",
203        "teardown": [
204            "$TC qdisc del dev $DUMMY handle 1: root",
205            "$IP link del dev $DUMMY type dummy"
206        ]
207    }
208]
209