1[
2    {
3        "id": "983b",
4        "name": "Create FQ with default setting",
5        "category": [
6            "qdisc",
7            "fq"
8        ],
9        "plugins": {
10            "requires": "nsPlugin"
11        },
12        "setup": [
13        ],
14        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq",
15        "expExitCode": "0",
16        "verifyCmd": "$TC qdisc show dev $DUMMY",
17        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit",
18        "matchCount": "1",
19        "teardown": [
20            "$TC qdisc del dev $DUMMY handle 1: root"
21        ]
22    },
23    {
24        "id": "38a1",
25        "name": "Create FQ with limit packet setting",
26        "category": [
27            "qdisc",
28            "fq"
29        ],
30        "plugins": {
31            "requires": "nsPlugin"
32        },
33        "setup": [
34        ],
35        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq limit 3000",
36        "expExitCode": "0",
37        "verifyCmd": "$TC qdisc show dev $DUMMY",
38        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 3000p",
39        "matchCount": "1",
40        "teardown": [
41            "$TC qdisc del dev $DUMMY handle 1: root"
42        ]
43    },
44    {
45        "id": "0a18",
46        "name": "Create FQ with flow_limit setting",
47        "category": [
48            "qdisc",
49            "fq"
50        ],
51        "plugins": {
52            "requires": "nsPlugin"
53        },
54        "setup": [
55        ],
56        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq flow_limit 300",
57        "expExitCode": "0",
58        "verifyCmd": "$TC qdisc show dev $DUMMY",
59        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 300p",
60        "matchCount": "1",
61        "teardown": [
62            "$TC qdisc del dev $DUMMY handle 1: root"
63        ]
64    },
65    {
66        "id": "2390",
67        "name": "Create FQ with quantum setting",
68        "category": [
69            "qdisc",
70            "fq"
71        ],
72        "plugins": {
73            "requires": "nsPlugin"
74        },
75        "setup": [
76        ],
77        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq quantum 9000",
78        "expExitCode": "0",
79        "verifyCmd": "$TC qdisc show dev $DUMMY",
80        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*quantum 9000b",
81        "matchCount": "1",
82        "teardown": [
83            "$TC qdisc del dev $DUMMY handle 1: root"
84        ]
85    },
86    {
87        "id": "845b",
88        "name": "Create FQ with initial_quantum setting",
89        "category": [
90            "qdisc",
91            "fq"
92        ],
93        "plugins": {
94            "requires": "nsPlugin"
95        },
96        "setup": [
97        ],
98        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq initial_quantum 900000",
99        "expExitCode": "0",
100        "verifyCmd": "$TC qdisc show dev $DUMMY",
101        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p buckets.*initial_quantum 900000b",
102        "matchCount": "1",
103        "teardown": [
104            "$TC qdisc del dev $DUMMY handle 1: root"
105        ]
106    },
107    {
108        "id": "10f7",
109        "name": "Create FQ with invalid initial_quantum setting",
110        "category": [
111            "qdisc",
112            "fq"
113        ],
114        "plugins": {
115            "requires": "nsPlugin"
116        },
117        "setup": [
118        ],
119        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq initial_quantum 0x80000000",
120        "expExitCode": "2",
121        "verifyCmd": "$TC qdisc show dev $DUMMY",
122        "matchPattern": "qdisc fq 1: root.*initial_quantum 2048Mb",
123        "matchCount": "0",
124        "teardown": [
125        ]
126    },
127    {
128        "id": "9398",
129        "name": "Create FQ with maxrate setting",
130        "category": [
131            "qdisc",
132            "fq"
133        ],
134        "plugins": {
135            "requires": "nsPlugin"
136        },
137        "setup": [
138        ],
139        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq maxrate 100000",
140        "expExitCode": "0",
141        "verifyCmd": "$TC qdisc show dev $DUMMY",
142        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p buckets.*maxrate 100Kbit",
143        "matchCount": "1",
144        "teardown": [
145            "$TC qdisc del dev $DUMMY handle 1: root"
146        ]
147    },
148    {
149        "id": "342c",
150        "name": "Create FQ with nopacing setting",
151        "category": [
152            "qdisc",
153            "fq"
154        ],
155        "plugins": {
156            "requires": "nsPlugin"
157        },
158        "setup": [
159        ],
160        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq nopacing",
161        "expExitCode": "0",
162        "verifyCmd": "$TC qdisc show dev $DUMMY",
163        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*nopacing",
164        "matchCount": "1",
165        "teardown": [
166            "$TC qdisc del dev $DUMMY handle 1: root"
167        ]
168    },
169    {
170        "id": "6391",
171        "name": "Create FQ with refill_delay setting",
172        "category": [
173            "qdisc",
174            "fq"
175        ],
176        "plugins": {
177            "requires": "nsPlugin"
178        },
179        "setup": [
180        ],
181        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq refill_delay 100ms",
182        "expExitCode": "0",
183        "verifyCmd": "$TC qdisc show dev $DUMMY",
184        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*refill_delay 100ms",
185        "matchCount": "1",
186        "teardown": [
187            "$TC qdisc del dev $DUMMY handle 1: root"
188        ]
189    },
190    {
191        "id": "238b",
192        "name": "Create FQ with low_rate_threshold setting",
193        "category": [
194            "qdisc",
195            "fq"
196        ],
197        "plugins": {
198            "requires": "nsPlugin"
199        },
200        "setup": [
201        ],
202        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq low_rate_threshold 10000",
203        "expExitCode": "0",
204        "verifyCmd": "$TC qdisc show dev $DUMMY",
205        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*low_rate_threshold 10Kbit",
206        "matchCount": "1",
207        "teardown": [
208            "$TC qdisc del dev $DUMMY handle 1: root"
209        ]
210    },
211    {
212        "id": "7582",
213        "name": "Create FQ with orphan_mask setting",
214        "category": [
215            "qdisc",
216            "fq"
217        ],
218        "plugins": {
219            "requires": "nsPlugin"
220        },
221        "setup": [
222        ],
223        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq orphan_mask 255",
224        "expExitCode": "0",
225        "verifyCmd": "$TC qdisc show dev $DUMMY",
226        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*orphan_mask 255",
227        "matchCount": "1",
228        "teardown": [
229            "$TC qdisc del dev $DUMMY handle 1: root"
230        ]
231    },
232    {
233        "id": "4894",
234        "name": "Create FQ with timer_slack setting",
235        "category": [
236            "qdisc",
237            "fq"
238        ],
239        "plugins": {
240            "requires": "nsPlugin"
241        },
242        "setup": [
243        ],
244        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq timer_slack 100",
245        "expExitCode": "0",
246        "verifyCmd": "$TC qdisc show dev $DUMMY",
247        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*timer_slack 100ns",
248        "matchCount": "1",
249        "teardown": [
250            "$TC qdisc del dev $DUMMY handle 1: root"
251        ]
252    },
253    {
254        "id": "324c",
255        "name": "Create FQ with ce_threshold setting",
256        "category": [
257            "qdisc",
258            "fq"
259        ],
260        "plugins": {
261            "requires": "nsPlugin"
262        },
263        "setup": [
264        ],
265        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq ce_threshold 100",
266        "expExitCode": "0",
267        "verifyCmd": "$TC qdisc show dev $DUMMY",
268        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p",
269        "matchCount": "1",
270        "teardown": [
271            "$TC qdisc del dev $DUMMY handle 1: root"
272        ]
273    },
274    {
275        "id": "424a",
276        "name": "Create FQ with horizon time setting",
277        "category": [
278            "qdisc",
279            "fq"
280        ],
281        "plugins": {
282            "requires": "nsPlugin"
283        },
284        "setup": [
285        ],
286        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq horizon 100",
287        "expExitCode": "0",
288        "verifyCmd": "$TC qdisc show dev $DUMMY",
289        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*horizon 100us",
290        "matchCount": "1",
291        "teardown": [
292            "$TC qdisc del dev $DUMMY handle 1: root"
293        ]
294    },
295    {
296        "id": "89e1",
297        "name": "Create FQ with horizon_cap setting",
298        "category": [
299            "qdisc",
300            "fq"
301        ],
302        "plugins": {
303            "requires": "nsPlugin"
304        },
305        "setup": [
306        ],
307        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq horizon_cap",
308        "expExitCode": "0",
309        "verifyCmd": "$TC qdisc show dev $DUMMY",
310        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*horizon_cap",
311        "matchCount": "1",
312        "teardown": [
313            "$TC qdisc del dev $DUMMY handle 1: root"
314        ]
315    },
316    {
317        "id": "32e1",
318        "name": "Delete FQ with valid handle",
319        "category": [
320            "qdisc",
321            "fq"
322        ],
323        "plugins": {
324            "requires": "nsPlugin"
325        },
326        "setup": [
327            "$TC qdisc add dev $DUMMY handle 1: root fq"
328        ],
329        "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root",
330        "expExitCode": "0",
331        "verifyCmd": "$TC qdisc show dev $DUMMY",
332        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p",
333        "matchCount": "0",
334        "teardown": [
335        ]
336    },
337    {
338        "id": "49b0",
339        "name": "Replace FQ with limit setting",
340        "category": [
341            "qdisc",
342            "fq"
343        ],
344        "plugins": {
345            "requires": "nsPlugin"
346        },
347        "setup": [
348            "$TC qdisc add dev $DUMMY handle 1: root fq"
349        ],
350        "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root fq limit 5000",
351        "expExitCode": "0",
352        "verifyCmd": "$TC qdisc show dev $DUMMY",
353        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 5000p",
354        "matchCount": "1",
355        "teardown": [
356            "$TC qdisc del dev $DUMMY handle 1: root"
357        ]
358    },
359    {
360        "id": "9478",
361        "name": "Change FQ with limit setting",
362        "category": [
363            "qdisc",
364            "fq"
365        ],
366        "plugins": {
367            "requires": "nsPlugin"
368        },
369        "setup": [
370            "$TC qdisc add dev $DUMMY handle 1: root fq"
371        ],
372        "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root fq limit 100",
373        "expExitCode": "0",
374        "verifyCmd": "$TC qdisc show dev $DUMMY",
375        "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 100p",
376        "matchCount": "1",
377        "teardown": [
378            "$TC qdisc del dev $DUMMY handle 1: root"
379        ]
380    }
381]
382