1[
2    {
3        "id": "5124",
4        "name": "Add mirred mirror to egress action",
5        "category": [
6            "actions",
7            "mirred"
8        ],
9        "plugins": {
10           "requires": "nsPlugin"
11        },
12        "setup": [
13            [
14                "$TC actions flush action mirred",
15                0,
16                1,
17                255
18            ]
19        ],
20        "cmdUnderTest": "$TC actions add action mirred egress mirror index 1 dev lo",
21        "expExitCode": "0",
22        "verifyCmd": "$TC actions list action mirred",
23        "matchPattern": "action order [0-9]*: mirred \\(Egress Mirror to device lo\\).*index 1 ref",
24        "matchCount": "1",
25        "teardown": [
26            "$TC actions flush action mirred"
27        ]
28    },
29    {
30        "id": "6fb4",
31        "name": "Add mirred redirect to egress action",
32        "category": [
33            "actions",
34            "mirred"
35        ],
36        "plugins": {
37           "requires": "nsPlugin"
38        },
39        "setup": [
40            [
41                "$TC actions flush action mirred",
42                0,
43                1,
44                255
45            ]
46        ],
47        "cmdUnderTest": "$TC actions add action mirred egress redirect index 2 dev lo action pipe",
48        "expExitCode": "0",
49        "verifyCmd": "$TC actions list action mirred",
50        "matchPattern": "action order [0-9]*: mirred \\(Egress Redirect to device lo\\).*index 2 ref",
51        "matchCount": "1",
52        "teardown": [
53            "$TC actions flush action mirred",
54            "$TC actions flush action gact"
55        ]
56    },
57    {
58        "id": "ba38",
59        "name": "Get mirred actions",
60        "category": [
61            "actions",
62            "mirred"
63        ],
64        "plugins": {
65           "requires": "nsPlugin"
66        },
67        "setup": [
68            [
69                "$TC actions flush action mirred",
70                0,
71                1,
72                255
73            ],
74            "$TC actions add action mirred egress mirror index 1 dev lo",
75            "$TC actions add action mirred egress redirect index 2 dev lo"
76        ],
77        "cmdUnderTest": "$TC actions show action mirred",
78        "expExitCode": "0",
79        "verifyCmd": "$TC actions list action mirred",
80        "matchPattern": "[Mirror|Redirect] to device lo",
81        "matchCount": "2",
82        "teardown": [
83            "$TC actions flush action mirred"
84        ]
85    },
86    {
87        "id": "d7c0",
88        "name": "Add invalid mirred direction",
89        "category": [
90            "actions",
91            "mirred"
92        ],
93        "plugins": {
94           "requires": "nsPlugin"
95        },
96        "setup": [
97            [
98                "$TC actions flush action mirred",
99                0,
100                1,
101                255
102            ]
103        ],
104        "cmdUnderTest": "$TC actions add action mirred inbound mirror index 20 dev lo",
105        "expExitCode": "255",
106        "verifyCmd": "$TC actions list action mirred",
107        "matchPattern": "action order [0-9]*: mirred \\(.*to device lo\\).*index 20 ref",
108        "matchCount": "0",
109        "teardown": [
110            "$TC actions flush action mirred"
111        ]
112    },
113    {
114        "id": "e213",
115        "name": "Add invalid mirred action",
116        "category": [
117            "actions",
118            "mirred"
119        ],
120        "plugins": {
121           "requires": "nsPlugin"
122        },
123        "setup": [
124            [
125                "$TC actions flush action mirred",
126                0,
127                1,
128                255
129            ]
130        ],
131        "cmdUnderTest": "$TC actions add action mirred egress remirror index 20 dev lo",
132        "expExitCode": "255",
133        "verifyCmd": "$TC actions list action mirred",
134        "matchPattern": "action order [0-9]*: mirred \\(Egress.*to device lo\\).*index 20 ref",
135        "matchCount": "0",
136        "teardown": [
137            "$TC actions flush action mirred"
138        ]
139    },
140    {
141        "id": "2d89",
142        "name": "Add mirred action with invalid device",
143        "category": [
144            "actions",
145            "mirred"
146        ],
147        "plugins": {
148           "requires": "nsPlugin"
149        },
150        "setup": [
151            [
152                "$TC actions flush action mirred",
153                0,
154                1,
155                255
156            ]
157        ],
158        "cmdUnderTest": "$TC actions add action mirred egress mirror index 20 dev eltoh",
159        "expExitCode": "255",
160        "verifyCmd": "$TC actions list action mirred",
161        "matchPattern": "action order [0-9]*: mirred \\(.*to device eltoh\\).*index 20 ref",
162        "matchCount": "0",
163        "teardown": [
164            "$TC actions flush action mirred"
165        ]
166    },
167    {
168        "id": "300b",
169        "name": "Add mirred action with duplicate index",
170        "category": [
171            "actions",
172            "mirred"
173        ],
174        "plugins": {
175           "requires": "nsPlugin"
176        },
177        "setup": [
178            [
179                "$TC actions flush action mirred",
180                0,
181                1,
182                255
183            ],
184            "$TC actions add action mirred egress redirect index 15 dev lo"
185        ],
186        "cmdUnderTest": "$TC actions add action mirred egress mirror index 15 dev lo",
187        "expExitCode": "255",
188        "verifyCmd": "$TC actions list action mirred",
189        "matchPattern": "action order [0-9]*: mirred \\(.*to device lo\\).*index 15 ref",
190        "matchCount": "1",
191        "teardown": [
192            "$TC actions flush action mirred"
193        ]
194    },
195    {
196        "id": "8917",
197        "name": "Add mirred mirror action with control pass",
198        "category": [
199            "actions",
200            "mirred"
201        ],
202        "plugins": {
203           "requires": "nsPlugin"
204        },
205        "setup": [
206            [
207                "$TC actions flush action mirred",
208                0,
209                1,
210                255
211            ]
212        ],
213        "cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo pass index 1",
214        "expExitCode": "0",
215        "verifyCmd": "$TC actions get action mirred index 1",
216        "matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) pass.*index 1 ref",
217        "matchCount": "1",
218        "teardown": [
219            "$TC actions flush action mirred"
220        ]
221    },
222    {
223        "id": "1054",
224        "name": "Add mirred mirror action with control pipe",
225        "category": [
226            "actions",
227            "mirred"
228        ],
229        "plugins": {
230           "requires": "nsPlugin"
231        },
232        "setup": [
233            [
234                "$TC actions flush action mirred",
235                0,
236                1,
237                255
238            ]
239        ],
240        "cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo pipe index 15",
241        "expExitCode": "0",
242        "verifyCmd": "$TC actions get action mirred index 15",
243        "matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) pipe.*index 15 ref",
244        "matchCount": "1",
245        "teardown": [
246            "$TC actions flush action mirred"
247        ]
248    },
249    {
250        "id": "9887",
251        "name": "Add mirred mirror action with control continue",
252        "category": [
253            "actions",
254            "mirred"
255        ],
256        "plugins": {
257           "requires": "nsPlugin"
258        },
259        "setup": [
260            [
261                "$TC actions flush action mirred",
262                0,
263                1,
264                255
265            ]
266        ],
267        "cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo continue index 15",
268        "expExitCode": "0",
269        "verifyCmd": "$TC actions get action mirred index 15",
270        "matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) continue.*index 15 ref",
271        "matchCount": "1",
272        "teardown": [
273            "$TC actions flush action mirred"
274        ]
275    },
276    {
277        "id": "e4aa",
278        "name": "Add mirred mirror action with control reclassify",
279        "category": [
280            "actions",
281            "mirred"
282        ],
283        "plugins": {
284           "requires": "nsPlugin"
285        },
286        "setup": [
287            [
288                "$TC actions flush action mirred",
289                0,
290                1,
291                255
292            ]
293        ],
294        "cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo reclassify index 150",
295        "expExitCode": "0",
296        "verifyCmd": "$TC actions get action mirred index 150",
297        "matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) reclassify.*index 150 ref",
298        "matchCount": "1",
299        "teardown": [
300            "$TC actions flush action mirred"
301        ]
302    },
303    {
304        "id": "ece9",
305        "name": "Add mirred mirror action with control drop",
306        "category": [
307            "actions",
308            "mirred"
309        ],
310        "plugins": {
311           "requires": "nsPlugin"
312        },
313        "setup": [
314            [
315                "$TC actions flush action mirred",
316                0,
317                1,
318                255
319            ]
320        ],
321        "cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo drop index 99",
322        "expExitCode": "0",
323        "verifyCmd": "$TC actions get action mirred index 99",
324        "matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) drop.*index 99 ref",
325        "matchCount": "1",
326        "teardown": [
327            "$TC actions flush action mirred"
328        ]
329    },
330    {
331        "id": "0031",
332        "name": "Add mirred mirror action with control jump",
333        "category": [
334            "actions",
335            "mirred"
336        ],
337        "plugins": {
338           "requires": "nsPlugin"
339        },
340        "setup": [
341            [
342                "$TC actions flush action mirred",
343                0,
344                1,
345                255
346            ]
347        ],
348        "cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo jump 10 index 99",
349        "expExitCode": "0",
350        "verifyCmd": "$TC actions get action mirred index 99",
351        "matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) jump 10.*index 99 ref",
352        "matchCount": "1",
353        "teardown": [
354            "$TC actions flush action mirred"
355        ]
356    },
357    {
358        "id": "407c",
359        "name": "Add mirred mirror action with cookie",
360        "category": [
361            "actions",
362            "mirred"
363        ],
364        "plugins": {
365           "requires": "nsPlugin"
366        },
367        "setup": [
368            [
369                "$TC actions flush action mirred",
370                0,
371                1,
372                255
373            ]
374        ],
375        "cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo reclassify cookie aa11bb22cc33dd44ee55",
376        "expExitCode": "0",
377        "verifyCmd": "$TC actions ls action mirred",
378        "matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) reclassify.*cookie aa11bb22cc33dd44ee55",
379        "matchCount": "1",
380        "teardown": [
381            "$TC actions flush action mirred"
382        ]
383    },
384    {
385        "id": "8b69",
386        "name": "Add mirred mirror action with index at 32-bit maximum",
387        "category": [
388            "actions",
389            "mirred"
390        ],
391        "plugins": {
392           "requires": "nsPlugin"
393        },
394        "setup": [
395            [
396                "$TC actions flush action mirred",
397                0,
398                1,
399                255
400            ]
401        ],
402        "cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo pipe index 4294967295",
403        "expExitCode": "0",
404        "verifyCmd": "$TC actions get action mirred index 4294967295",
405        "matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) pipe.*index 4294967295",
406        "matchCount": "1",
407        "teardown": [
408            "$TC actions flush action mirred"
409        ]
410    },
411    {
412        "id": "3f66",
413        "name": "Add mirred mirror action with index exceeding 32-bit maximum",
414        "category": [
415            "actions",
416            "mirred"
417        ],
418        "plugins": {
419           "requires": "nsPlugin"
420        },
421        "setup": [
422            [
423                "$TC actions flush action mirred",
424                0,
425                1,
426                255
427            ]
428        ],
429        "cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo pipe index 429496729555",
430        "expExitCode": "255",
431        "verifyCmd": "$TC actions get action mirred index 429496729555",
432        "matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) pipe.*index 429496729555",
433        "matchCount": "0",
434        "teardown": []
435    },
436    {
437        "id": "a70e",
438        "name": "Delete mirred mirror action",
439        "category": [
440            "actions",
441            "mirred"
442        ],
443        "plugins": {
444           "requires": "nsPlugin"
445        },
446        "setup": [
447            [
448                "$TC actions flush action mirred",
449                0,
450                1,
451                255
452            ],
453            "$TC actions add action mirred egress mirror index 5 dev lo"
454        ],
455        "cmdUnderTest": "$TC actions del action mirred index 5",
456        "expExitCode": "0",
457        "verifyCmd": "$TC actions list action mirred",
458        "matchPattern": "action order [0-9]*: mirred \\(Egress Mirror to device lo\\).*index 5 ref",
459        "matchCount": "0",
460        "teardown": [
461            "$TC actions flush action mirred"
462        ]
463    },
464    {
465        "id": "3fb3",
466        "name": "Delete mirred redirect action",
467        "category": [
468            "actions",
469            "mirred"
470        ],
471        "plugins": {
472           "requires": "nsPlugin"
473        },
474        "setup": [
475            [
476                "$TC actions flush action mirred",
477                0,
478                1,
479                255
480            ],
481            "$TC actions add action mirred egress redirect index 5 dev lo"
482        ],
483        "cmdUnderTest": "$TC actions del action mirred index 5",
484        "expExitCode": "0",
485        "verifyCmd": "$TC actions list action mirred",
486        "matchPattern": "action order [0-9]*: mirred \\(Egress Redirect to device lo\\).*index 5 ref",
487        "matchCount": "0",
488        "teardown": [
489            "$TC actions flush action mirred"
490        ]
491    },
492    {
493        "id": "2a9a",
494        "name": "Replace mirred action with invalid goto chain control",
495        "category": [
496            "actions",
497            "mirred"
498        ],
499        "plugins": {
500           "requires": "nsPlugin"
501        },
502        "setup": [
503            [
504                "$TC actions flush action mirred",
505                0,
506                1,
507                255
508            ],
509            "$TC actions add action mirred ingress mirror dev lo drop index 90"
510        ],
511        "cmdUnderTest": "$TC actions replace action mirred ingress mirror dev lo goto chain 42 index 90 cookie c1a0c1a0",
512        "expExitCode": "255",
513        "verifyCmd": "$TC actions get action mirred index 90",
514        "matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) drop.*index 90 ref",
515        "matchCount": "1",
516        "teardown": [
517            "$TC actions flush action mirred"
518        ]
519    },
520    {
521        "id": "4749",
522        "name": "Add batch of 32 mirred redirect egress actions with cookie",
523        "category": [
524            "actions",
525            "mirred"
526        ],
527        "plugins": {
528           "requires": "nsPlugin"
529        },
530        "setup": [
531            [
532                "$TC actions flush action mirred",
533                0,
534                1,
535                255
536            ]
537        ],
538        "cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred egress redirect dev lo index \\$i cookie aabbccddeeff112233445566778800a1 \\\"; args=\"\\$args\\$cmd\"; done && $TC actions add \\$args\"",
539        "expExitCode": "0",
540        "verifyCmd": "$TC actions list action mirred",
541        "matchPattern": "^[ \t]+index [0-9]+ ref",
542        "matchCount": "32",
543        "teardown": [
544            "$TC actions flush action mirred"
545        ]
546    },
547    {
548        "id": "5c69",
549        "name": "Delete batch of 32 mirred redirect egress actions",
550        "category": [
551            "actions",
552            "mirred"
553        ],
554        "plugins": {
555           "requires": "nsPlugin"
556        },
557        "setup": [
558            [
559                "$TC actions flush action mirred",
560                0,
561                1,
562                255
563            ],
564            "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred egress redirect dev lo index \\$i \\\"; args=\\\"\\$args\\$cmd\\\"; done && $TC actions add \\$args\""
565        ],
566        "cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred index \\$i \\\"; args=\"\\$args\\$cmd\"; done && $TC actions del \\$args\"",
567        "expExitCode": "0",
568        "verifyCmd": "$TC actions list action mirred",
569        "matchPattern": "^[ \t]+index [0-9]+ ref",
570        "matchCount": "0",
571        "teardown": []
572    },
573    {
574        "id": "d3c0",
575        "name": "Add batch of 32 mirred mirror ingress actions with cookie",
576        "category": [
577            "actions",
578            "mirred"
579        ],
580        "plugins": {
581           "requires": "nsPlugin"
582        },
583        "setup": [
584            [
585                "$TC actions flush action mirred",
586                0,
587                1,
588                255
589            ]
590        ],
591        "cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred ingress mirror dev lo index \\$i cookie aabbccddeeff112233445566778800a1 \\\"; args=\"\\$args\\$cmd\"; done && $TC actions add \\$args\"",
592        "expExitCode": "0",
593        "verifyCmd": "$TC actions list action mirred",
594        "matchPattern": "^[ \t]+index [0-9]+ ref",
595        "matchCount": "32",
596        "teardown": [
597            "$TC actions flush action mirred"
598        ]
599    },
600    {
601        "id": "e684",
602        "name": "Delete batch of 32 mirred mirror ingress actions",
603        "category": [
604            "actions",
605            "mirred"
606        ],
607        "plugins": {
608           "requires": "nsPlugin"
609        },
610        "setup": [
611            [
612                "$TC actions flush action mirred",
613                0,
614                1,
615                255
616            ],
617            "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred ingress mirror dev lo index \\$i \\\"; args=\\\"\\$args\\$cmd\\\"; done && $TC actions add \\$args\""
618        ],
619        "cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred index \\$i \\\"; args=\"\\$args\\$cmd\"; done && $TC actions del \\$args\"",
620        "expExitCode": "0",
621        "verifyCmd": "$TC actions list action mirred",
622        "matchPattern": "^[ \t]+index [0-9]+ ref",
623        "matchCount": "0",
624        "teardown": []
625    },
626    {
627        "id": "31e3",
628        "name": "Add mirred mirror to egress action with no_percpu flag",
629        "category": [
630            "actions",
631            "mirred"
632        ],
633        "plugins": {
634           "requires": "nsPlugin"
635        },
636        "setup": [
637            [
638                "$TC actions flush action mirred",
639                0,
640                1,
641                255
642            ]
643        ],
644        "cmdUnderTest": "$TC actions add action mirred egress mirror dev lo no_percpu",
645        "expExitCode": "0",
646        "verifyCmd": "$TC actions list action mirred",
647        "matchPattern": "action order [0-9]*: mirred \\(Egress Mirror to device lo\\).*no_percpu",
648        "matchCount": "1",
649        "teardown": [
650            "$TC actions flush action mirred"
651        ]
652    }
653]
654