1[
2    {
3        "id": "ddd9",
4        "name": "Add prio qdisc on egress",
5        "category": [
6            "qdisc",
7            "prio"
8        ],
9        "plugins": {
10            "requires": "nsPlugin"
11        },
12        "setup": [
13        ],
14        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio",
15        "expExitCode": "0",
16        "verifyCmd": "$TC qdisc show dev $DUMMY",
17        "matchPattern": "qdisc prio 1: root",
18        "matchCount": "1",
19        "teardown": [
20            "$TC qdisc del dev $DUMMY handle 1: root prio"
21        ]
22    },
23    {
24        "id": "aa71",
25        "name": "Add prio qdisc on egress with handle of maximum value",
26        "category": [
27            "qdisc",
28            "prio"
29        ],
30        "plugins": {
31            "requires": "nsPlugin"
32        },
33        "setup": [
34        ],
35        "cmdUnderTest": "$TC qdisc add dev $DUMMY root handle ffff: prio",
36        "expExitCode": "0",
37        "verifyCmd": "$TC qdisc show dev $DUMMY",
38        "matchPattern": "qdisc prio ffff: root",
39        "matchCount": "1",
40        "teardown": [
41        ]
42    },
43    {
44        "id": "db37",
45        "name": "Add prio qdisc on egress with invalid handle exceeding maximum value",
46        "category": [
47            "qdisc",
48            "prio"
49        ],
50        "plugins": {
51            "requires": "nsPlugin"
52        },
53        "setup": [
54        ],
55        "cmdUnderTest": "$TC qdisc add dev $DUMMY root handle 10000: prio",
56        "expExitCode": "255",
57        "verifyCmd": "$TC qdisc show dev $DUMMY",
58        "matchPattern": "qdisc prio 10000: root",
59        "matchCount": "0",
60        "teardown": [
61        ]
62    },
63    {
64        "id": "39d8",
65        "name": "Add prio qdisc on egress with unsupported argument",
66        "category": [
67            "qdisc",
68            "prio"
69        ],
70        "plugins": {
71            "requires": "nsPlugin"
72        },
73        "setup": [
74        ],
75        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio foorbar",
76        "expExitCode": "1",
77        "verifyCmd": "$TC qdisc show dev $DUMMY",
78        "matchPattern": "qdisc prio 1: root",
79        "matchCount": "0",
80        "teardown": [
81        ]
82    },
83    {
84        "id": "5769",
85        "name": "Add prio qdisc on egress with 4 bands and new priomap",
86        "category": [
87            "qdisc",
88            "prio"
89        ],
90        "plugins": {
91            "requires": "nsPlugin"
92        },
93        "setup": [
94        ],
95        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio bands 4 priomap 1 1 2 2 3 3 0 0 1 2 3 0 0 0 0 0",
96        "expExitCode": "0",
97        "verifyCmd": "$TC qdisc show dev $DUMMY",
98        "matchPattern": "qdisc prio 1: root.*bands 4 priomap.*1 1 2 2 3 3 0 0 1 2 3 0 0 0 0 0",
99        "matchCount": "1",
100        "teardown": [
101            "$TC qdisc del dev $DUMMY handle 1: root prio"
102        ]
103    },
104    {
105        "id": "fe0f",
106        "name": "Add prio qdisc on egress with 4 bands and priomap exceeding TC_PRIO_MAX entries",
107        "category": [
108            "qdisc",
109            "prio"
110        ],
111        "plugins": {
112            "requires": "nsPlugin"
113        },
114        "setup": [
115        ],
116        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio bands 4 priomap 1 1 2 2 3 3 0 0 1 2 3 0 0 0 0 0 1 1",
117        "expExitCode": "1",
118        "verifyCmd": "$TC qdisc show dev $DUMMY",
119        "matchPattern": "qdisc prio 1: root.*bands 4 priomap.*1 1 2 2 3 3 0 0 1 2 3 0 0 0 0 0 1 1",
120        "matchCount": "0",
121        "teardown": [
122        ]
123    },
124    {
125        "id": "1f91",
126        "name": "Add prio qdisc on egress with 4 bands and priomap's values exceeding bands number",
127        "category": [
128            "qdisc",
129            "prio"
130        ],
131        "plugins": {
132            "requires": "nsPlugin"
133        },
134        "setup": [
135        ],
136        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio bands 4 priomap 1 1 2 2 7 5 0 0 1 2 3 0 0 0 0 0",
137        "expExitCode": "1",
138        "verifyCmd": "$TC qdisc show dev $DUMMY",
139        "matchPattern": "qdisc prio 1: root.*bands 4 priomap.*1 1 2 2 7 5 0 0 1 2 3 0 0 0 0 0",
140        "matchCount": "0",
141        "teardown": [
142        ]
143    },
144    {
145        "id": "d248",
146        "name": "Add prio qdisc on egress with invalid bands value (< 2)",
147        "category": [
148            "qdisc",
149            "prio"
150        ],
151        "plugins": {
152            "requires": "nsPlugin"
153        },
154        "setup": [
155        ],
156        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio bands 1 priomap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0",
157        "expExitCode": "2",
158        "verifyCmd": "$TC qdisc show dev $DUMMY",
159        "matchPattern": "qdisc prio 1: root.*bands 1 priomap.*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0",
160        "matchCount": "0",
161        "teardown": [
162        ]
163    },
164    {
165        "id": "1d0e",
166        "name": "Add prio qdisc on egress with invalid bands value exceeding TCQ_PRIO_BANDS",
167        "category": [
168            "qdisc",
169            "prio"
170        ],
171        "plugins": {
172            "requires": "nsPlugin"
173        },
174        "setup": [
175        ],
176        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio bands 1024 priomap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16",
177        "expExitCode": "2",
178        "verifyCmd": "$TC qdisc show dev $DUMMY",
179        "matchPattern": "qdisc prio 1: root.*bands 1024 priomap.*1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16",
180        "matchCount": "0",
181        "teardown": [
182        ]
183    },
184    {
185        "id": "1971",
186        "name": "Replace default prio qdisc on egress with 8 bands and new priomap",
187        "category": [
188            "qdisc",
189            "prio"
190        ],
191        "plugins": {
192            "requires": "nsPlugin"
193        },
194        "setup": [
195            "$TC qdisc add dev $DUMMY handle 1: root prio"
196        ],
197        "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root prio bands 8 priomap 1 1 2 2 3 3 4 4 5 5 6 6 7 7 0 0",
198        "expExitCode": "0",
199        "verifyCmd": "$TC qdisc show dev $DUMMY",
200        "matchPattern": "qdisc prio 1: root.*bands 8 priomap.*1 1 2 2 3 3 4 4 5 5 6 6 7 7 0 0",
201        "matchCount": "1",
202        "teardown": [
203            "$TC qdisc del dev $DUMMY handle 1: root prio"
204        ]
205    },
206    {
207        "id": "d88a",
208        "name": "Add duplicate prio qdisc on egress",
209        "category": [
210            "qdisc",
211            "prio"
212        ],
213        "plugins": {
214            "requires": "nsPlugin"
215        },
216        "setup": [
217            "$TC qdisc add dev $DUMMY handle 1: root prio"
218        ],
219        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio",
220        "expExitCode": "2",
221        "verifyCmd": "$TC qdisc show dev $DUMMY",
222        "matchPattern": "qdisc prio 1: root",
223        "matchCount": "1",
224        "teardown": [
225            "$TC qdisc del dev $DUMMY handle 1: root prio"
226        ]
227    },
228    {
229        "id": "5948",
230        "name": "Delete nonexistent prio qdisc",
231        "category": [
232            "qdisc",
233            "prio"
234        ],
235        "plugins": {
236            "requires": "nsPlugin"
237        },
238        "setup": [
239        ],
240        "cmdUnderTest": "$TC qdisc del dev $DUMMY root handle 1: prio",
241        "expExitCode": "2",
242        "verifyCmd": "$TC qdisc show dev $DUMMY",
243        "matchPattern": "qdisc prio 1: root",
244        "matchCount": "0",
245        "teardown": [
246        ]
247    },
248    {
249        "id": "6c0a",
250        "name": "Add prio qdisc on egress with invalid format for handles",
251        "category": [
252            "qdisc",
253            "prio"
254        ],
255        "plugins": {
256            "requires": "nsPlugin"
257        },
258        "setup": [
259        ],
260        "cmdUnderTest": "$TC qdisc add dev $DUMMY root handle 123^ prio",
261        "expExitCode": "255",
262        "verifyCmd": "$TC qdisc show dev $DUMMY",
263        "matchPattern": "qdisc prio 123 root",
264        "matchCount": "0",
265        "teardown": [
266        ]
267    },
268    {
269        "id": "0175",
270        "name": "Delete prio qdisc twice",
271        "category": [
272            "qdisc",
273            "prio"
274        ],
275        "plugins": {
276            "requires": "nsPlugin"
277        },
278        "setup": [
279            "$TC qdisc add dev $DUMMY root handle 1: prio",
280            "$TC qdisc del dev $DUMMY root handle 1: prio"
281        ],
282        "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root prio",
283        "expExitCode": "2",
284        "verifyCmd": "$TC qdisc show dev $DUMMY",
285        "matchPattern": "qdisc ingress ffff:",
286        "matchCount": "0",
287        "teardown": [
288        ]
289    },
290    {
291        "id": "2410",
292        "name": "Show prio class",
293        "category": [
294            "qdisc",
295            "prio"
296        ],
297        "plugins": {
298            "requires": "nsPlugin"
299        },
300        "setup": [
301        ],
302        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio",
303        "expExitCode": "0",
304        "verifyCmd": "$TC class show dev $DUMMY",
305        "matchPattern": "class prio 1:[0-9]+ parent 1:",
306        "matchCount": "3",
307        "teardown": [
308            "$TC qdisc del dev $DUMMY handle 1: root prio"
309        ]
310    }
311]
312