1[
2    {
3        "id": "cb28",
4        "name": "Create NETEM with default setting",
5        "category": [
6            "qdisc",
7            "netem"
8        ],
9        "plugins": {
10            "requires": "nsPlugin"
11        },
12        "setup": [
13        ],
14        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem",
15        "expExitCode": "0",
16        "verifyCmd": "$TC qdisc show dev $DUMMY",
17        "matchPattern": "qdisc netem 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": "a089",
25        "name": "Create NETEM with limit flag",
26        "category": [
27            "qdisc",
28            "netem"
29        ],
30        "plugins": {
31            "requires": "nsPlugin"
32        },
33        "setup": [
34        ],
35        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem limit 200",
36        "expExitCode": "0",
37        "verifyCmd": "$TC qdisc show dev $DUMMY",
38        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ limit 200",
39        "matchCount": "1",
40        "teardown": [
41            "$TC qdisc del dev $DUMMY handle 1: root"
42        ]
43    },
44    {
45        "id": "3449",
46        "name": "Create NETEM with delay time",
47        "category": [
48            "qdisc",
49            "netem"
50        ],
51        "plugins": {
52            "requires": "nsPlugin"
53        },
54        "setup": [
55        ],
56        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms",
57        "expExitCode": "0",
58        "verifyCmd": "$TC qdisc show dev $DUMMY",
59        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms",
60        "matchCount": "1",
61        "teardown": [
62            "$TC qdisc del dev $DUMMY handle 1: root"
63        ]
64    },
65    {
66        "id": "3782",
67        "name": "Create NETEM with distribution and corrupt flag",
68        "category": [
69            "qdisc",
70            "netem"
71        ],
72        "plugins": {
73            "requires": "nsPlugin"
74        },
75        "setup": [
76        ],
77        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal corrupt 1%",
78        "expExitCode": "0",
79        "verifyCmd": "$TC qdisc show dev $DUMMY",
80        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms  10ms corrupt 1%",
81        "matchCount": "1",
82        "teardown": [
83            "$TC qdisc del dev $DUMMY handle 1: root"
84        ]
85    },
86    {
87        "id": "2b82",
88        "name": "Create NETEM with distribution and duplicate flag",
89        "category": [
90            "qdisc",
91            "netem"
92        ],
93        "plugins": {
94            "requires": "nsPlugin"
95        },
96        "setup": [
97        ],
98        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal duplicate 1%",
99        "expExitCode": "0",
100        "verifyCmd": "$TC qdisc show dev $DUMMY",
101        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms  10ms duplicate 1%",
102        "matchCount": "1",
103        "teardown": [
104            "$TC qdisc del dev $DUMMY handle 1: root"
105        ]
106    },
107    {
108        "id": "a932",
109        "name": "Create NETEM with distribution and loss flag",
110        "category": [
111            "qdisc",
112            "netem"
113        ],
114        "plugins": {
115            "requires": "nsPlugin"
116        },
117        "setup": [
118        ],
119        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution pareto loss 1%",
120        "expExitCode": "0",
121        "verifyCmd": "$TC qdisc show dev $DUMMY",
122        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms  10ms loss 1%",
123        "matchCount": "1",
124        "teardown": [
125            "$TC qdisc del dev $DUMMY handle 1: root"
126        ]
127    },
128    {
129        "id": "e01a",
130        "name": "Create NETEM with distribution and loss state flag",
131        "category": [
132            "qdisc",
133            "netem"
134        ],
135        "plugins": {
136            "requires": "nsPlugin"
137        },
138        "setup": [
139        ],
140        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution paretonormal loss state 1",
141        "expExitCode": "0",
142        "verifyCmd": "$TC qdisc show dev $DUMMY",
143        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms  10ms loss state p13 1% p31 99% p32 0% p23 100% p14 0%",
144        "matchCount": "1",
145        "teardown": [
146            "$TC qdisc del dev $DUMMY handle 1: root"
147        ]
148    },
149    {
150        "id": "ba29",
151        "name": "Create NETEM with loss gemodel flag",
152        "category": [
153            "qdisc",
154            "netem"
155        ],
156        "plugins": {
157            "requires": "nsPlugin"
158        },
159        "setup": [
160        ],
161        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem loss gemodel 1%",
162        "expExitCode": "0",
163        "verifyCmd": "$TC qdisc show dev $DUMMY",
164        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*loss gemodel p 1%",
165        "matchCount": "1",
166        "teardown": [
167            "$TC qdisc del dev $DUMMY handle 1: root"
168        ]
169    },
170    {
171        "id": "0492",
172        "name": "Create NETEM with reorder flag",
173        "category": [
174            "qdisc",
175            "netem"
176        ],
177        "plugins": {
178            "requires": "nsPlugin"
179        },
180        "setup": [
181        ],
182        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms reorder 2% gap 100",
183        "expExitCode": "0",
184        "verifyCmd": "$TC qdisc show dev $DUMMY",
185        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*reorder 2%",
186        "matchCount": "1",
187        "teardown": [
188            "$TC qdisc del dev $DUMMY handle 1: root"
189        ]
190    },
191    {
192        "id": "7862",
193        "name": "Create NETEM with rate limit",
194        "category": [
195            "qdisc",
196            "netem"
197        ],
198        "plugins": {
199            "requires": "nsPlugin"
200        },
201        "setup": [
202        ],
203        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem rate 20000",
204        "expExitCode": "0",
205        "verifyCmd": "$TC qdisc show dev $DUMMY",
206        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*rate 20Kbit",
207        "matchCount": "1",
208        "teardown": [
209            "$TC qdisc del dev $DUMMY handle 1: root"
210        ]
211    },
212    {
213        "id": "7235",
214        "name": "Create NETEM with multiple slot rate",
215        "category": [
216            "qdisc",
217            "netem"
218        ],
219        "plugins": {
220            "requires": "nsPlugin"
221        },
222        "setup": [
223        ],
224        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem slot 10 200 packets 2000 bytes 9000",
225        "expExitCode": "0",
226        "verifyCmd": "$TC qdisc show dev $DUMMY",
227        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*slot 10ns 200ns packets 2000 bytes 9000",
228        "matchCount": "1",
229        "teardown": [
230            "$TC qdisc del dev $DUMMY handle 1: root"
231        ]
232    },
233    {
234        "id": "5439",
235        "name": "Create NETEM with multiple slot setting",
236        "category": [
237            "qdisc",
238            "netem"
239        ],
240        "plugins": {
241            "requires": "nsPlugin"
242        },
243        "setup": [
244        ],
245        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem slot distribution pareto 1ms 0.1ms",
246        "expExitCode": "0",
247        "verifyCmd": "$TC qdisc show dev $DUMMY",
248        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*slot distribution 1ms 100us",
249        "matchCount": "1",
250        "teardown": [
251            "$TC qdisc del dev $DUMMY handle 1: root"
252        ]
253    },
254    {
255        "id": "5029",
256        "name": "Change NETEM with loss state",
257        "category": [
258            "qdisc",
259            "netem"
260        ],
261        "plugins": {
262            "requires": "nsPlugin"
263        },
264        "setup": [
265            "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 1%"
266        ],
267        "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 2%",
268        "expExitCode": "0",
269        "verifyCmd": "$TC qdisc show dev $DUMMY",
270        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*loss 2%",
271        "matchCount": "1",
272        "teardown": [
273            "$TC qdisc del dev $DUMMY handle 1: root"
274        ]
275    },
276    {
277        "id": "3785",
278        "name": "Replace NETEM with delay time",
279        "category": [
280            "qdisc",
281            "netem"
282        ],
283        "plugins": {
284            "requires": "nsPlugin"
285        },
286        "setup": [
287            "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 1%"
288        ],
289        "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root netem delay 200ms 10ms",
290        "expExitCode": "0",
291        "verifyCmd": "$TC qdisc show dev $DUMMY",
292        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 200ms  10ms",
293        "matchCount": "1",
294        "teardown": [
295            "$TC qdisc del dev $DUMMY handle 1: root"
296        ]
297    },
298    {
299        "id": "4502",
300        "name": "Delete NETEM with handle",
301        "category": [
302            "qdisc",
303            "netem"
304        ],
305        "plugins": {
306            "requires": "nsPlugin"
307        },
308        "setup": [
309            "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal"
310        ],
311        "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root",
312        "expExitCode": "0",
313        "verifyCmd": "$TC qdisc show dev $DUMMY",
314        "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms  10ms",
315        "matchCount": "0",
316        "teardown": [
317        ]
318    },
319    {
320        "id": "0785",
321        "name": "Show NETEM class",
322        "category": [
323            "qdisc",
324            "netem"
325        ],
326        "plugins": {
327            "requires": "nsPlugin"
328        },
329        "setup": [
330        ],
331        "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem",
332        "expExitCode": "0",
333        "verifyCmd": "$TC class show dev $DUMMY",
334        "matchPattern": "class netem 1:",
335        "matchCount": "0",
336        "teardown": [
337            "$TC qdisc del dev $DUMMY handle 1: root"
338        ]
339    }
340]
341