1[
2    {
3        "id": "e90e",
4        "name": "Add ETS qdisc using bands",
5        "category": [
6            "qdisc",
7            "ets"
8        ],
9        "setup": [
10            "$IP link add dev $DUMMY type dummy || /bin/true"
11        ],
12        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 2",
13        "expExitCode": "0",
14        "verifyCmd": "$TC qdisc show dev $DUMMY",
15        "matchPattern": "qdisc ets 1: root .* bands 2",
16        "matchCount": "1",
17        "teardown": [
18            "$TC qdisc del dev $DUMMY handle 1: root",
19            "$IP link del dev $DUMMY type dummy"
20        ]
21    },
22    {
23        "id": "b059",
24        "name": "Add ETS qdisc using quanta",
25        "category": [
26            "qdisc",
27            "ets"
28        ],
29        "setup": [
30            "$IP link add dev $DUMMY type dummy || /bin/true"
31        ],
32        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta 1000 900 800 700",
33        "expExitCode": "0",
34        "verifyCmd": "$TC qdisc show dev $DUMMY",
35        "matchPattern": "qdisc ets 1: root .*bands 4 quanta 1000 900 800 700",
36        "matchCount": "1",
37        "teardown": [
38            "$TC qdisc del dev $DUMMY handle 1: root",
39            "$IP link del dev $DUMMY type dummy"
40        ]
41    },
42    {
43        "id": "e8e7",
44        "name": "Add ETS qdisc using strict",
45        "category": [
46            "qdisc",
47            "ets"
48        ],
49        "setup": [
50            "$IP link add dev $DUMMY type dummy || /bin/true"
51        ],
52        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 3",
53        "expExitCode": "0",
54        "verifyCmd": "$TC qdisc show dev $DUMMY",
55        "matchPattern": "qdisc ets 1: root .*bands 3 strict 3",
56        "matchCount": "1",
57        "teardown": [
58            "$TC qdisc del dev $DUMMY handle 1: root",
59            "$IP link del dev $DUMMY type dummy"
60        ]
61    },
62    {
63        "id": "233c",
64        "name": "Add ETS qdisc using bands + quanta",
65        "category": [
66            "qdisc",
67            "ets"
68        ],
69        "setup": [
70            "$IP link add dev $DUMMY type dummy || /bin/true"
71        ],
72        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 4 quanta 1000 900 800 700",
73        "expExitCode": "0",
74        "verifyCmd": "$TC qdisc show dev $DUMMY",
75        "matchPattern": "qdisc ets 1: root .*bands 4 quanta 1000 900 800 700 priomap",
76        "matchCount": "1",
77        "teardown": [
78            "$TC qdisc del dev $DUMMY handle 1: root",
79            "$IP link del dev $DUMMY type dummy"
80        ]
81    },
82    {
83        "id": "3d35",
84        "name": "Add ETS qdisc using bands + strict",
85        "category": [
86            "qdisc",
87            "ets"
88        ],
89        "setup": [
90            "$IP link add dev $DUMMY type dummy || /bin/true"
91        ],
92        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 3 strict 3",
93        "expExitCode": "0",
94        "verifyCmd": "$TC qdisc show dev $DUMMY",
95        "matchPattern": "qdisc ets 1: root .*bands 3 strict 3 priomap",
96        "matchCount": "1",
97        "teardown": [
98            "$TC qdisc del dev $DUMMY handle 1: root",
99            "$IP link del dev $DUMMY type dummy"
100        ]
101    },
102    {
103        "id": "7f3b",
104        "name": "Add ETS qdisc using strict + quanta",
105        "category": [
106            "qdisc",
107            "ets"
108        ],
109        "setup": [
110            "$IP link add dev $DUMMY type dummy || /bin/true"
111        ],
112        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 3 quanta 1500 750",
113        "expExitCode": "0",
114        "verifyCmd": "$TC qdisc show dev $DUMMY",
115        "matchPattern": "qdisc ets 1: root .*bands 5 strict 3 quanta 1500 750 priomap",
116        "matchCount": "1",
117        "teardown": [
118            "$TC qdisc del dev $DUMMY handle 1: root",
119            "$IP link del dev $DUMMY type dummy"
120        ]
121    },
122    {
123        "id": "4593",
124        "name": "Add ETS qdisc using strict 0 + quanta",
125        "category": [
126            "qdisc",
127            "ets"
128        ],
129        "setup": [
130            "$IP link add dev $DUMMY type dummy || /bin/true"
131        ],
132        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 0 quanta 1500 750",
133        "expExitCode": "0",
134        "verifyCmd": "$TC qdisc show dev $DUMMY",
135        "matchPattern": "qdisc ets 1: root .*bands 2 quanta 1500 750 priomap",
136        "matchCount": "1",
137        "teardown": [
138            "$TC qdisc del dev $DUMMY handle 1: root",
139            "$IP link del dev $DUMMY type dummy"
140        ]
141    },
142    {
143        "id": "8938",
144        "name": "Add ETS qdisc using bands + strict + quanta",
145        "category": [
146            "qdisc",
147            "ets"
148        ],
149        "setup": [
150            "$IP link add dev $DUMMY type dummy || /bin/true"
151        ],
152        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 5 strict 3 quanta 1500 750",
153        "expExitCode": "0",
154        "verifyCmd": "$TC qdisc show dev $DUMMY",
155        "matchPattern": "qdisc ets 1: root .*bands 5 .*strict 3 quanta 1500 750 priomap",
156        "matchCount": "1",
157        "teardown": [
158            "$TC qdisc del dev $DUMMY handle 1: root",
159            "$IP link del dev $DUMMY type dummy"
160        ]
161    },
162    {
163        "id": "0782",
164        "name": "Add ETS qdisc with more bands than quanta",
165        "category": [
166            "qdisc",
167            "ets"
168        ],
169        "setup": [
170            "$IP link add dev $DUMMY type dummy || /bin/true"
171        ],
172        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 2 quanta 1000",
173        "expExitCode": "0",
174        "verifyCmd": "$TC qdisc show dev $DUMMY",
175        "matchPattern": "qdisc ets 1: root .*bands 2 .*quanta 1000 [1-9][0-9]* priomap",
176        "matchCount": "1",
177        "teardown": [
178            "$TC qdisc del dev $DUMMY handle 1: root",
179            "$IP link del dev $DUMMY type dummy"
180        ]
181    },
182    {
183        "id": "501b",
184        "name": "Add ETS qdisc with more bands than strict",
185        "category": [
186            "qdisc",
187            "ets"
188        ],
189        "setup": [
190            "$IP link add dev $DUMMY type dummy || /bin/true"
191        ],
192        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 3 strict 1",
193        "expExitCode": "0",
194        "verifyCmd": "$TC qdisc show dev $DUMMY",
195        "matchPattern": "qdisc ets 1: root .*bands 3 strict 1 quanta ([1-9][0-9]* ){2}priomap",
196        "matchCount": "1",
197        "teardown": [
198            "$TC qdisc del dev $DUMMY handle 1: root",
199            "$IP link del dev $DUMMY type dummy"
200        ]
201    },
202    {
203        "id": "671a",
204        "name": "Add ETS qdisc with more bands than strict + quanta",
205        "category": [
206            "qdisc",
207            "ets"
208        ],
209        "setup": [
210            "$IP link add dev $DUMMY type dummy || /bin/true"
211        ],
212        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 3 strict 1 quanta 1000",
213        "expExitCode": "0",
214        "verifyCmd": "$TC qdisc show dev $DUMMY",
215        "matchPattern": "qdisc ets 1: root .*bands 3 strict 1 quanta 1000 [1-9][0-9]* priomap",
216        "matchCount": "1",
217        "teardown": [
218            "$TC qdisc del dev $DUMMY handle 1: root",
219            "$IP link del dev $DUMMY type dummy"
220        ]
221    },
222    {
223        "id": "2a23",
224        "name": "Add ETS qdisc with 16 bands",
225        "category": [
226            "qdisc",
227            "ets"
228        ],
229        "setup": [
230            "$IP link add dev $DUMMY type dummy || /bin/true"
231        ],
232        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 16",
233        "expExitCode": "0",
234        "verifyCmd": "$TC qdisc show dev $DUMMY",
235        "matchPattern": "qdisc ets 1: root .* bands 16",
236        "matchCount": "1",
237        "teardown": [
238            "$TC qdisc del dev $DUMMY handle 1: root",
239            "$IP link del dev $DUMMY type dummy"
240        ]
241    },
242    {
243        "id": "8daf",
244        "name": "Add ETS qdisc with 17 bands",
245        "category": [
246            "qdisc",
247            "ets"
248        ],
249        "setup": [
250            "$IP link add dev $DUMMY type dummy || /bin/true"
251        ],
252        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 17",
253        "expExitCode": "1",
254        "verifyCmd": "$TC qdisc show dev $DUMMY",
255        "matchPattern": "qdisc ets",
256        "matchCount": "0",
257        "teardown": [
258            "$IP link del dev $DUMMY type dummy"
259        ]
260    },
261    {
262        "id": "7f95",
263        "name": "Add ETS qdisc with 17 strict",
264        "category": [
265            "qdisc",
266            "ets"
267        ],
268        "setup": [
269            "$IP link add dev $DUMMY type dummy || /bin/true"
270        ],
271        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 17",
272        "expExitCode": "1",
273        "verifyCmd": "$TC qdisc show dev $DUMMY",
274        "matchPattern": "qdisc ets",
275        "matchCount": "0",
276        "teardown": [
277            "$IP link del dev $DUMMY type dummy"
278        ]
279    },
280    {
281        "id": "837a",
282        "name": "Add ETS qdisc with 16 quanta",
283        "category": [
284            "qdisc",
285            "ets"
286        ],
287        "setup": [
288            "$IP link add dev $DUMMY type dummy || /bin/true"
289        ],
290        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16",
291        "expExitCode": "0",
292        "verifyCmd": "$TC qdisc show dev $DUMMY",
293        "matchPattern": "qdisc ets 1: root .* bands 16",
294        "matchCount": "1",
295        "teardown": [
296            "$TC qdisc del dev $DUMMY handle 1: root",
297            "$IP link del dev $DUMMY type dummy"
298        ]
299    },
300    {
301        "id": "65b6",
302        "name": "Add ETS qdisc with 17 quanta",
303        "category": [
304            "qdisc",
305            "ets"
306        ],
307        "setup": [
308            "$IP link add dev $DUMMY type dummy || /bin/true"
309        ],
310        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17",
311        "expExitCode": "2",
312        "verifyCmd": "$TC qdisc show dev $DUMMY",
313        "matchPattern": "qdisc ets",
314        "matchCount": "0",
315        "teardown": [
316            "$IP link del dev $DUMMY type dummy"
317        ]
318    },
319    {
320        "id": "b9e9",
321        "name": "Add ETS qdisc with 16 strict + quanta",
322        "category": [
323            "qdisc",
324            "ets"
325        ],
326        "setup": [
327            "$IP link add dev $DUMMY type dummy || /bin/true"
328        ],
329        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 8 quanta 1 2 3 4 5 6 7 8",
330        "expExitCode": "0",
331        "verifyCmd": "$TC qdisc show dev $DUMMY",
332        "matchPattern": "qdisc ets 1: root .* bands 16",
333        "matchCount": "1",
334        "teardown": [
335            "$TC qdisc del dev $DUMMY handle 1: root",
336            "$IP link del dev $DUMMY type dummy"
337        ]
338    },
339    {
340        "id": "9877",
341        "name": "Add ETS qdisc with 17 strict + quanta",
342        "category": [
343            "qdisc",
344            "ets"
345        ],
346        "setup": [
347            "$IP link add dev $DUMMY type dummy || /bin/true"
348        ],
349        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 9 quanta 1 2 3 4 5 6 7 8",
350        "expExitCode": "2",
351        "verifyCmd": "$TC qdisc show dev $DUMMY",
352        "matchPattern": "qdisc ets",
353        "matchCount": "0",
354        "teardown": [
355            "$IP link del dev $DUMMY type dummy"
356        ]
357    },
358    {
359        "id": "c696",
360        "name": "Add ETS qdisc with priomap",
361        "category": [
362            "qdisc",
363            "ets"
364        ],
365        "setup": [
366            "$IP link add dev $DUMMY type dummy || /bin/true"
367        ],
368        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 5 priomap 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0",
369        "expExitCode": "0",
370        "verifyCmd": "$TC qdisc show dev $DUMMY",
371        "matchPattern": "qdisc ets 1: root .*priomap 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0",
372        "matchCount": "1",
373        "teardown": [
374            "$TC qdisc del dev $DUMMY handle 1: root",
375            "$IP link del dev $DUMMY type dummy"
376        ]
377    },
378    {
379        "id": "30c4",
380        "name": "Add ETS qdisc with quanta + priomap",
381        "category": [
382            "qdisc",
383            "ets"
384        ],
385        "setup": [
386            "$IP link add dev $DUMMY type dummy || /bin/true"
387        ],
388        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta 1000 2000 3000 4000 5000 priomap 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0",
389        "expExitCode": "0",
390        "verifyCmd": "$TC qdisc show dev $DUMMY",
391        "matchPattern": "qdisc ets 1: root .*quanta 1000 2000 3000 4000 5000 priomap 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0",
392        "matchCount": "1",
393        "teardown": [
394            "$TC qdisc del dev $DUMMY handle 1: root",
395            "$IP link del dev $DUMMY type dummy"
396        ]
397    },
398    {
399        "id": "e8ac",
400        "name": "Add ETS qdisc with strict + priomap",
401        "category": [
402            "qdisc",
403            "ets"
404        ],
405        "setup": [
406            "$IP link add dev $DUMMY type dummy || /bin/true"
407        ],
408        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 5 priomap 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0",
409        "expExitCode": "0",
410        "verifyCmd": "$TC qdisc show dev $DUMMY",
411        "matchPattern": "qdisc ets 1: root .*bands 5 strict 5 priomap 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0",
412        "matchCount": "1",
413        "teardown": [
414            "$TC qdisc del dev $DUMMY handle 1: root",
415            "$IP link del dev $DUMMY type dummy"
416        ]
417    },
418    {
419        "id": "5a7e",
420        "name": "Add ETS qdisc with quanta + strict + priomap",
421        "category": [
422            "qdisc",
423            "ets"
424        ],
425        "setup": [
426            "$IP link add dev $DUMMY type dummy || /bin/true"
427        ],
428        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 2 quanta 1000 2000 3000 priomap 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0",
429        "expExitCode": "0",
430        "verifyCmd": "$TC qdisc show dev $DUMMY",
431        "matchPattern": "qdisc ets 1: root .*strict 2 quanta 1000 2000 3000 priomap 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0",
432        "matchCount": "1",
433        "teardown": [
434            "$TC qdisc del dev $DUMMY handle 1: root",
435            "$IP link del dev $DUMMY type dummy"
436        ]
437    },
438    {
439        "id": "cb8b",
440        "name": "Show ETS class :1",
441        "category": [
442            "qdisc",
443            "ets"
444        ],
445        "setup": [
446            "$IP link add dev $DUMMY type dummy || /bin/true"
447        ],
448        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta 4000 3000 2000",
449        "expExitCode": "0",
450        "verifyCmd": "$TC class show dev $DUMMY classid 1:1",
451        "matchPattern": "class ets 1:1 root quantum 4000",
452        "matchCount": "1",
453        "teardown": [
454            "$TC qdisc del dev $DUMMY handle 1: root",
455            "$IP link del dev $DUMMY type dummy"
456        ]
457    },
458    {
459        "id": "1b4e",
460        "name": "Show ETS class :2",
461        "category": [
462            "qdisc",
463            "ets"
464        ],
465        "setup": [
466            "$IP link add dev $DUMMY type dummy || /bin/true"
467        ],
468        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta 4000 3000 2000",
469        "expExitCode": "0",
470        "verifyCmd": "$TC class show dev $DUMMY classid 1:2",
471        "matchPattern": "class ets 1:2 root quantum 3000",
472        "matchCount": "1",
473        "teardown": [
474            "$TC qdisc del dev $DUMMY handle 1: root",
475            "$IP link del dev $DUMMY type dummy"
476        ]
477    },
478    {
479        "id": "f642",
480        "name": "Show ETS class :3",
481        "category": [
482            "qdisc",
483            "ets"
484        ],
485        "setup": [
486            "$IP link add dev $DUMMY type dummy || /bin/true"
487        ],
488        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta 4000 3000 2000",
489        "expExitCode": "0",
490        "verifyCmd": "$TC class show dev $DUMMY classid 1:3",
491        "matchPattern": "class ets 1:3 root quantum 2000",
492        "matchCount": "1",
493        "teardown": [
494            "$TC qdisc del dev $DUMMY handle 1: root",
495            "$IP link del dev $DUMMY type dummy"
496        ]
497    },
498    {
499        "id": "0a5f",
500        "name": "Show ETS strict class",
501        "category": [
502            "qdisc",
503            "ets"
504        ],
505        "setup": [
506            "$IP link add dev $DUMMY type dummy || /bin/true"
507        ],
508        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 3",
509        "expExitCode": "0",
510        "verifyCmd": "$TC class show dev $DUMMY classid 1:1",
511        "matchPattern": "class ets 1:1 root $",
512        "matchCount": "1",
513        "teardown": [
514            "$TC qdisc del dev $DUMMY handle 1: root",
515            "$IP link del dev $DUMMY type dummy"
516        ]
517    },
518    {
519        "id": "f7c8",
520        "name": "Add ETS qdisc with too many quanta",
521        "category": [
522            "qdisc",
523            "ets"
524        ],
525        "setup": [
526            "$IP link add dev $DUMMY type dummy || /bin/true"
527        ],
528        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 2 quanta 1000 2000 3000",
529        "expExitCode": "1",
530        "verifyCmd": "$TC qdisc show dev $DUMMY",
531        "matchPattern": "qdisc ets",
532        "matchCount": "0",
533        "teardown": [
534            "$IP link del dev $DUMMY type dummy"
535        ]
536    },
537    {
538        "id": "2389",
539        "name": "Add ETS qdisc with too many strict",
540        "category": [
541            "qdisc",
542            "ets"
543        ],
544        "setup": [
545            "$IP link add dev $DUMMY type dummy || /bin/true"
546        ],
547        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 2 strict 3",
548        "expExitCode": "1",
549        "verifyCmd": "$TC qdisc show dev $DUMMY",
550        "matchPattern": "qdisc ets",
551        "matchCount": "0",
552        "teardown": [
553            "$IP link del dev $DUMMY type dummy"
554        ]
555    },
556    {
557        "id": "fe3c",
558        "name": "Add ETS qdisc with too many strict + quanta",
559        "category": [
560            "qdisc",
561            "ets"
562        ],
563        "setup": [
564            "$IP link add dev $DUMMY type dummy || /bin/true"
565        ],
566        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 4 strict 2 quanta 1000 2000 3000",
567        "expExitCode": "1",
568        "verifyCmd": "$TC qdisc show dev $DUMMY",
569        "matchPattern": "qdisc ets",
570        "matchCount": "0",
571        "teardown": [
572            "$IP link del dev $DUMMY type dummy"
573        ]
574    },
575    {
576        "id": "cb04",
577        "name": "Add ETS qdisc with excess priomap elements",
578        "category": [
579            "qdisc",
580            "ets"
581        ],
582        "setup": [
583            "$IP link add dev $DUMMY type dummy || /bin/true"
584        ],
585        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 5 priomap 0 0 1 0 1 2 0 1 2 3 0 1 2 3 4 0 1 2",
586        "expExitCode": "1",
587        "verifyCmd": "$TC qdisc show dev $DUMMY",
588        "matchPattern": "qdisc ets",
589        "matchCount": "0",
590        "teardown": [
591            "$IP link del dev $DUMMY type dummy"
592        ]
593    },
594    {
595        "id": "c32e",
596        "name": "Add ETS qdisc with priomap above bands",
597        "category": [
598            "qdisc",
599            "ets"
600        ],
601        "setup": [
602            "$IP link add dev $DUMMY type dummy || /bin/true"
603        ],
604        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 2 priomap 0 1 2",
605        "expExitCode": "1",
606        "verifyCmd": "$TC qdisc show dev $DUMMY",
607        "matchPattern": "qdisc ets",
608        "matchCount": "0",
609        "teardown": [
610            "$IP link del dev $DUMMY type dummy"
611        ]
612    },
613    {
614        "id": "744c",
615        "name": "Add ETS qdisc with priomap above quanta",
616        "category": [
617            "qdisc",
618            "ets"
619        ],
620        "setup": [
621            "$IP link add dev $DUMMY type dummy || /bin/true"
622        ],
623        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta 1000 500 priomap 0 1 2",
624        "expExitCode": "1",
625        "verifyCmd": "$TC qdisc show dev $DUMMY",
626        "matchPattern": "qdisc ets",
627        "matchCount": "0",
628        "teardown": [
629            "$IP link del dev $DUMMY type dummy"
630        ]
631    },
632    {
633        "id": "7b33",
634        "name": "Add ETS qdisc with priomap above strict",
635        "category": [
636            "qdisc",
637            "ets"
638        ],
639        "setup": [
640            "$IP link add dev $DUMMY type dummy || /bin/true"
641        ],
642        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 2 priomap 0 1 2",
643        "expExitCode": "1",
644        "verifyCmd": "$TC qdisc show dev $DUMMY",
645        "matchPattern": "qdisc ets",
646        "matchCount": "0",
647        "teardown": [
648            "$IP link del dev $DUMMY type dummy"
649        ]
650    },
651    {
652        "id": "dbe6",
653        "name": "Add ETS qdisc with priomap above strict + quanta",
654        "category": [
655            "qdisc",
656            "ets"
657        ],
658        "setup": [
659            "$IP link add dev $DUMMY type dummy || /bin/true"
660        ],
661        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets strict 1 quanta 1000 500 priomap 0 1 2 3",
662        "expExitCode": "1",
663        "verifyCmd": "$TC qdisc show dev $DUMMY",
664        "matchPattern": "qdisc ets",
665        "matchCount": "0",
666        "teardown": [
667            "$IP link del dev $DUMMY type dummy"
668        ]
669    },
670    {
671        "id": "bdb2",
672        "name": "Add ETS qdisc with priomap within bands with strict + quanta",
673        "category": [
674            "qdisc",
675            "ets"
676        ],
677        "setup": [
678            "$IP link add dev $DUMMY type dummy || /bin/true"
679        ],
680        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 4 strict 1 quanta 1000 500 priomap 0 1 2 3",
681        "expExitCode": "0",
682        "verifyCmd": "$TC qdisc show dev $DUMMY",
683        "matchPattern": "qdisc ets",
684        "matchCount": "1",
685        "teardown": [
686            "$IP link del dev $DUMMY type dummy"
687        ]
688    },
689    {
690        "id": "39a3",
691        "name": "Add ETS qdisc with priomap above bands with strict + quanta",
692        "category": [
693            "qdisc",
694            "ets"
695        ],
696        "setup": [
697            "$IP link add dev $DUMMY type dummy || /bin/true"
698        ],
699        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 4 strict 1 quanta 1000 500 priomap 0 1 2 3 4",
700        "expExitCode": "1",
701        "verifyCmd": "$TC qdisc show dev $DUMMY",
702        "matchPattern": "qdisc ets",
703        "matchCount": "0",
704        "teardown": [
705            "$IP link del dev $DUMMY type dummy"
706        ]
707    },
708    {
709        "id": "557c",
710        "name": "Unset priorities default to the last band",
711        "category": [
712            "qdisc",
713            "ets"
714        ],
715        "setup": [
716            "$IP link add dev $DUMMY type dummy || /bin/true"
717        ],
718        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 4 priomap 0 0 0 0",
719        "expExitCode": "0",
720        "verifyCmd": "$TC qdisc show dev $DUMMY",
721        "matchPattern": "qdisc ets .*priomap 0 0 0 0 3 3 3 3 3 3 3 3 3 3 3 3",
722        "matchCount": "1",
723        "teardown": [
724            "$IP link del dev $DUMMY type dummy"
725        ]
726    },
727    {
728        "id": "a347",
729        "name": "Unset priorities default to the last band -- no priomap",
730        "category": [
731            "qdisc",
732            "ets"
733        ],
734        "setup": [
735            "$IP link add dev $DUMMY type dummy || /bin/true"
736        ],
737        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 4",
738        "expExitCode": "0",
739        "verifyCmd": "$TC qdisc show dev $DUMMY",
740        "matchPattern": "qdisc ets .*priomap 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3",
741        "matchCount": "1",
742        "teardown": [
743            "$IP link del dev $DUMMY type dummy"
744        ]
745    },
746    {
747        "id": "39c4",
748        "name": "Add ETS qdisc with too few bands",
749        "category": [
750            "qdisc",
751            "ets"
752        ],
753        "setup": [
754            "$IP link add dev $DUMMY type dummy || /bin/true"
755        ],
756        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 0",
757        "expExitCode": "1",
758        "verifyCmd": "$TC qdisc show dev $DUMMY",
759        "matchPattern": "qdisc ets",
760        "matchCount": "0",
761        "teardown": [
762            "$IP link del dev $DUMMY type dummy"
763        ]
764    },
765    {
766        "id": "930b",
767        "name": "Add ETS qdisc with too many bands",
768        "category": [
769            "qdisc",
770            "ets"
771        ],
772        "setup": [
773            "$IP link add dev $DUMMY type dummy || /bin/true"
774        ],
775        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets bands 17",
776        "expExitCode": "1",
777        "verifyCmd": "$TC qdisc show dev $DUMMY",
778        "matchPattern": "qdisc ets",
779        "matchCount": "0",
780        "teardown": [
781            "$IP link del dev $DUMMY type dummy"
782        ]
783    },
784    {
785        "id": "406a",
786        "name": "Add ETS qdisc without parameters",
787        "category": [
788            "qdisc",
789            "ets"
790        ],
791        "setup": [
792            "$IP link add dev $DUMMY type dummy || /bin/true"
793        ],
794        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets",
795        "expExitCode": "1",
796        "verifyCmd": "$TC qdisc show dev $DUMMY",
797        "matchPattern": "qdisc ets",
798        "matchCount": "0",
799        "teardown": [
800            "$IP link del dev $DUMMY type dummy"
801        ]
802    },
803    {
804        "id": "e51a",
805        "name": "Zero element in quanta",
806        "category": [
807            "qdisc",
808            "ets"
809        ],
810        "setup": [
811            "$IP link add dev $DUMMY type dummy || /bin/true"
812        ],
813        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta 1000 0 800 700",
814        "expExitCode": "1",
815        "verifyCmd": "$TC qdisc show dev $DUMMY",
816        "matchPattern": "qdisc ets",
817        "matchCount": "0",
818        "teardown": [
819            "$IP link del dev $DUMMY type dummy"
820        ]
821    },
822    {
823        "id": "e7f2",
824        "name": "Sole zero element in quanta",
825        "category": [
826            "qdisc",
827            "ets"
828        ],
829        "setup": [
830            "$IP link add dev $DUMMY type dummy || /bin/true"
831        ],
832        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta 0",
833        "expExitCode": "1",
834        "verifyCmd": "$TC qdisc show dev $DUMMY",
835        "matchPattern": "qdisc ets",
836        "matchCount": "0",
837        "teardown": [
838            "$IP link del dev $DUMMY type dummy"
839        ]
840    },
841    {
842        "id": "d6e6",
843        "name": "No values after the quanta keyword",
844        "category": [
845            "qdisc",
846            "ets"
847        ],
848        "setup": [
849            "$IP link add dev $DUMMY type dummy || /bin/true"
850        ],
851        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root ets quanta",
852        "expExitCode": "255",
853        "verifyCmd": "$TC qdisc show dev $DUMMY",
854        "matchPattern": "qdisc ets",
855        "matchCount": "0",
856        "teardown": [
857            "$IP link del dev $DUMMY type dummy"
858        ]
859    },
860    {
861        "id": "28c6",
862        "name": "Change ETS band quantum",
863        "category": [
864            "qdisc",
865            "ets"
866        ],
867        "setup": [
868            "$IP link add dev $DUMMY type dummy || /bin/true",
869            "$TC qdisc add dev $DUMMY handle 1: root ets quanta 1000 2000 3000"
870        ],
871        "cmdUnderTest": "$TC class change dev $DUMMY classid 1:1 ets quantum 1500",
872        "expExitCode": "0",
873        "verifyCmd": "$TC qdisc show dev $DUMMY",
874        "matchPattern": "qdisc ets 1: root .*quanta 1500 2000 3000 priomap ",
875        "matchCount": "1",
876        "teardown": [
877            "$IP link del dev $DUMMY type dummy"
878        ]
879    },
880    {
881        "id": "4714",
882        "name": "Change ETS band without quantum",
883        "category": [
884            "qdisc",
885            "ets"
886        ],
887        "setup": [
888            "$IP link add dev $DUMMY type dummy || /bin/true",
889            "$TC qdisc add dev $DUMMY handle 1: root ets quanta 1000 2000 3000"
890        ],
891        "cmdUnderTest": "$TC class change dev $DUMMY classid 1:1 ets",
892        "expExitCode": "0",
893        "verifyCmd": "$TC qdisc show dev $DUMMY",
894        "matchPattern": "qdisc ets 1: root .*quanta 1000 2000 3000 priomap ",
895        "matchCount": "1",
896        "teardown": [
897            "$IP link del dev $DUMMY type dummy"
898        ]
899    },
900    {
901        "id": "6979",
902        "name": "Change quantum of a strict ETS band",
903        "category": [
904            "qdisc",
905            "ets"
906        ],
907        "setup": [
908            "$IP link add dev $DUMMY type dummy || /bin/true",
909            "$TC qdisc add dev $DUMMY handle 1: root ets strict 5"
910        ],
911        "cmdUnderTest": "$TC class change dev $DUMMY classid 1:2 ets quantum 1500",
912        "expExitCode": "2",
913        "verifyCmd": "$TC qdisc show dev $DUMMY",
914        "matchPattern": "qdisc ets .*bands 5 .*strict 5",
915        "matchCount": "1",
916        "teardown": [
917            "$IP link del dev $DUMMY type dummy"
918        ]
919    },
920    {
921        "id": "9a7d",
922        "name": "Change ETS strict band without quantum",
923        "category": [
924            "qdisc",
925            "ets"
926        ],
927        "setup": [
928            "$IP link add dev $DUMMY type dummy || /bin/true",
929            "$TC qdisc add dev $DUMMY handle 1: root ets strict 5"
930        ],
931        "cmdUnderTest": "$TC class change dev $DUMMY classid 1:2 ets",
932        "expExitCode": "0",
933        "verifyCmd": "$TC qdisc show dev $DUMMY",
934        "matchPattern": "qdisc ets .*bands 5 .*strict 5",
935        "matchCount": "1",
936        "teardown": [
937            "$IP link del dev $DUMMY type dummy"
938        ]
939    }
940]
941