1[
2    {
3        "id": "a933",
4        "name": "Add MPLS dec_ttl action with pipe opcode",
5        "category": [
6            "actions",
7            "mpls"
8        ],
9        "setup": [
10            [
11                "$TC actions flush action mpls",
12                0,
13                1,
14                255
15            ]
16        ],
17        "cmdUnderTest": "$TC actions add action mpls dec_ttl pipe index 8",
18        "expExitCode": "0",
19        "verifyCmd": "$TC actions list action mpls",
20        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*pipe.*index 8 ref",
21        "matchCount": "1",
22        "teardown": [
23            "$TC actions flush action mpls"
24        ]
25    },
26    {
27        "id": "08d1",
28        "name": "Add mpls dec_ttl action with pass opcode",
29        "category": [
30            "actions",
31            "mpls"
32        ],
33        "setup": [
34            [
35                "$TC actions flush action mpls",
36                0,
37                1,
38                255
39            ]
40        ],
41        "cmdUnderTest": "$TC actions add action mpls dec_ttl pass index 8",
42        "expExitCode": "0",
43        "verifyCmd": "$TC actions get action mpls index 8",
44        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*pass.*index 8 ref",
45        "matchCount": "1",
46        "teardown": [
47            "$TC actions flush action mpls"
48        ]
49    },
50    {
51        "id": "d786",
52        "name": "Add mpls dec_ttl action with drop opcode",
53        "category": [
54            "actions",
55            "mpls"
56        ],
57        "setup": [
58            [
59                "$TC actions flush action mpls",
60                0,
61                1,
62                255
63            ]
64        ],
65        "cmdUnderTest": "$TC actions add action mpls dec_ttl drop index 8",
66        "expExitCode": "0",
67        "verifyCmd": "$TC actions get action mpls index 8",
68        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*drop.*index 8 ref",
69        "matchCount": "1",
70        "teardown": [
71            "$TC actions flush action mpls"
72        ]
73    },
74    {
75        "id": "f334",
76        "name": "Add mpls dec_ttl action with reclassify opcode",
77        "category": [
78            "actions",
79            "mpls"
80        ],
81        "setup": [
82            [
83                "$TC actions flush action mpls",
84                0,
85                1,
86                255
87            ]
88        ],
89        "cmdUnderTest": "$TC actions add action mpls dec_ttl reclassify index 8",
90        "expExitCode": "0",
91        "verifyCmd": "$TC actions get action mpls index 8",
92        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*reclassify.*index 8 ref",
93        "matchCount": "1",
94        "teardown": [
95            "$TC actions flush action mpls"
96        ]
97    },
98    {
99        "id": "29bd",
100        "name": "Add mpls dec_ttl action with continue opcode",
101        "category": [
102            "actions",
103            "mpls"
104        ],
105        "setup": [
106            [
107                "$TC actions flush action mpls",
108                0,
109                1,
110                255
111            ]
112        ],
113        "cmdUnderTest": "$TC actions add action mpls dec_ttl continue index 8",
114        "expExitCode": "0",
115        "verifyCmd": "$TC actions get action mpls index 8",
116        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*continue.*index 8 ref",
117        "matchCount": "1",
118        "teardown": [
119            "$TC actions flush action mpls"
120        ]
121    },
122    {
123        "id": "48df",
124        "name": "Add mpls dec_ttl action with jump opcode",
125        "category": [
126            "actions",
127            "mpls"
128        ],
129        "setup": [
130            [
131                "$TC actions flush action mpls",
132                0,
133                1,
134                255
135            ]
136        ],
137        "cmdUnderTest": "$TC actions add action mpls dec_ttl jump 10 index 8",
138        "expExitCode": "0",
139        "verifyCmd": "$TC actions list action mpls",
140        "matchPattern": "action order [0-9]+: mpls.*jump 10.*index 8 ref",
141        "matchCount": "1",
142        "teardown": [
143            "$TC actions flush action mpls"
144        ]
145    },
146    {
147        "id": "62eb",
148        "name": "Add mpls dec_ttl action with trap opcode",
149        "category": [
150            "actions",
151            "mpls"
152        ],
153        "setup": [
154            [
155                "$TC actions flush action mpls",
156                0,
157                1,
158                255
159            ]
160        ],
161        "cmdUnderTest": "$TC actions add action mpls dec_ttl trap index 8",
162        "expExitCode": "0",
163        "verifyCmd": "$TC actions list action mpls",
164        "matchPattern": "action order [0-9]+: mpls.*dec_ttl trap.*index 8 ref",
165        "matchCount": "1",
166        "teardown": [
167            "$TC actions flush action mpls"
168        ]
169    },
170    {
171        "id": "9118",
172        "name": "Add mpls dec_ttl action with invalid opcode",
173        "category": [
174            "actions",
175            "mpls"
176        ],
177        "setup": [
178            [
179                "$TC actions flush action mpls",
180                0,
181                1,
182                255
183            ]
184        ],
185        "cmdUnderTest": "$TC actions add action mpls dec_ttl foo index 8",
186        "expExitCode": "255",
187        "verifyCmd": "$TC actions list action mpls",
188        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*foo.*index 8 ref",
189        "matchCount": "0",
190        "teardown": []
191    },
192    {
193        "id": "6ce1",
194        "name": "Add mpls dec_ttl action with label (invalid)",
195        "category": [
196            "actions",
197            "mpls"
198        ],
199        "setup": [
200            [
201                "$TC actions flush action mpls",
202                0,
203                1,
204                255
205            ]
206        ],
207        "cmdUnderTest": "$TC actions add action mpls dec_ttl label 20",
208        "expExitCode": "255",
209        "verifyCmd": "$TC actions list action mpls",
210        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*label.*20.*pipe",
211        "matchCount": "0",
212        "teardown": []
213    },
214    {
215        "id": "352f",
216        "name": "Add mpls dec_ttl action with tc (invalid)",
217        "category": [
218            "actions",
219            "mpls"
220        ],
221        "setup": [
222            [
223                "$TC actions flush action mpls",
224                0,
225                1,
226                255
227            ]
228        ],
229        "cmdUnderTest": "$TC actions add action mpls dec_ttl tc 3",
230        "expExitCode": "255",
231        "verifyCmd": "$TC actions list action mpls",
232        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*tc.*3.*pipe",
233        "matchCount": "0",
234        "teardown": []
235    },
236    {
237        "id": "fa1c",
238        "name": "Add mpls dec_ttl action with ttl (invalid)",
239        "category": [
240            "actions",
241            "mpls"
242        ],
243        "setup": [
244            [
245                "$TC actions flush action mpls",
246                0,
247                1,
248                255
249            ]
250        ],
251        "cmdUnderTest": "$TC actions add action mpls dec_ttl ttl 20",
252        "expExitCode": "255",
253        "verifyCmd": "$TC actions list action mpls",
254        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*ttl.*20.*pipe",
255        "matchCount": "0",
256        "teardown": []
257    },
258    {
259        "id": "6b79",
260        "name": "Add mpls dec_ttl action with bos (invalid)",
261        "category": [
262            "actions",
263            "mpls"
264        ],
265        "setup": [
266            [
267                "$TC actions flush action mpls",
268                0,
269                1,
270                255
271            ]
272        ],
273        "cmdUnderTest": "$TC actions add action mpls dec_ttl bos 1",
274        "expExitCode": "255",
275        "verifyCmd": "$TC actions list action mpls",
276        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*bos.*1.*pipe",
277        "matchCount": "0",
278        "teardown": []
279    },
280    {
281        "id": "d4c4",
282        "name": "Add mpls pop action with ip proto",
283        "category": [
284            "actions",
285            "mpls"
286        ],
287        "setup": [
288            [
289                "$TC actions flush action mpls",
290                0,
291                1,
292                255
293            ]
294        ],
295        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4",
296        "expExitCode": "0",
297        "verifyCmd": "$TC actions list action mpls",
298        "matchPattern": "action order [0-9]+: mpls.*pop.*protocol.*ip.*pipe",
299        "matchCount": "1",
300        "teardown": [
301            "$TC actions flush action mpls"
302        ]
303    },
304    {
305        "id": "92fe",
306        "name": "Add mpls pop action with mpls proto",
307        "category": [
308            "actions",
309            "mpls"
310        ],
311        "setup": [
312            [
313                "$TC actions flush action mpls",
314                0,
315                1,
316                255
317            ]
318        ],
319        "cmdUnderTest": "$TC actions add action mpls pop protocol mpls_mc",
320        "expExitCode": "0",
321        "verifyCmd": "$TC actions list action mpls",
322        "matchPattern": "action order [0-9]+: mpls.*pop.*protocol.*mpls_mc.*pipe",
323        "matchCount": "1",
324        "teardown": [
325            "$TC actions flush action mpls"
326        ]
327    },
328    {
329        "id": "7e23",
330        "name": "Add mpls pop action with no protocol (invalid)",
331        "category": [
332            "actions",
333            "mpls"
334        ],
335        "setup": [
336            [
337                "$TC actions flush action mpls",
338                0,
339                1,
340                255
341            ]
342        ],
343        "cmdUnderTest": "$TC actions add action mpls pop",
344        "expExitCode": "255",
345        "verifyCmd": "$TC actions list action mpls",
346        "matchPattern": "action order [0-9]+: mpls.*pop.*pipe",
347        "matchCount": "0",
348        "teardown": []
349    },
350    {
351        "id": "6182",
352        "name": "Add mpls pop action with label (invalid)",
353        "category": [
354            "actions",
355            "mpls"
356        ],
357        "setup": [
358            [
359                "$TC actions flush action mpls",
360                0,
361                1,
362                255
363            ]
364        ],
365        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 label 20",
366        "expExitCode": "255",
367        "verifyCmd": "$TC actions list action mpls",
368        "matchPattern": "action order [0-9]+: mpls.*pop.*label.*20.*pipe",
369        "matchCount": "0",
370        "teardown": []
371    },
372    {
373        "id": "6475",
374        "name": "Add mpls pop action with tc (invalid)",
375        "category": [
376            "actions",
377            "mpls"
378        ],
379        "setup": [
380            [
381                "$TC actions flush action mpls",
382                0,
383                1,
384                255
385            ]
386        ],
387        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 tc 3",
388        "expExitCode": "255",
389        "verifyCmd": "$TC actions list action mpls",
390        "matchPattern": "action order [0-9]+: mpls.*pop.*tc.*3.*pipe",
391        "matchCount": "0",
392        "teardown": []
393    },
394    {
395        "id": "067b",
396        "name": "Add mpls pop action with ttl (invalid)",
397        "category": [
398            "actions",
399            "mpls"
400        ],
401        "setup": [
402            [
403                "$TC actions flush action mpls",
404                0,
405                1,
406                255
407            ]
408        ],
409        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 ttl 20",
410        "expExitCode": "255",
411        "verifyCmd": "$TC actions list action mpls",
412        "matchPattern": "action order [0-9]+: mpls.*pop.*ttl.*20.*pipe",
413        "matchCount": "0",
414        "teardown": []
415    },
416    {
417        "id": "7316",
418        "name": "Add mpls pop action with bos (invalid)",
419        "category": [
420            "actions",
421            "mpls"
422        ],
423        "setup": [
424            [
425                "$TC actions flush action mpls",
426                0,
427                1,
428                255
429            ]
430        ],
431        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 bos 1",
432        "expExitCode": "255",
433        "verifyCmd": "$TC actions list action mpls",
434        "matchPattern": "action order [0-9]+: mpls.*pop.*bos.*1.*pipe",
435        "matchCount": "0",
436        "teardown": []
437    },
438    {
439        "id": "38cc",
440        "name": "Add mpls push action with label",
441        "category": [
442            "actions",
443            "mpls"
444        ],
445        "setup": [
446            [
447                "$TC actions flush action mpls",
448                0,
449                1,
450                255
451            ]
452        ],
453        "cmdUnderTest": "$TC actions add action mpls push label 20",
454        "expExitCode": "0",
455        "verifyCmd": "$TC actions list action mpls",
456        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*ttl.*[0-9]+.*pipe",
457        "matchCount": "1",
458        "teardown": [
459            "$TC actions flush action mpls"
460        ]
461    },
462    {
463        "id": "c281",
464        "name": "Add mpls push action with mpls_mc protocol",
465        "category": [
466            "actions",
467            "mpls"
468        ],
469        "setup": [
470            [
471                "$TC actions flush action mpls",
472                0,
473                1,
474                255
475            ]
476        ],
477        "cmdUnderTest": "$TC actions add action mpls push protocol mpls_mc label 20",
478        "expExitCode": "0",
479        "verifyCmd": "$TC actions list action mpls",
480        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_mc.*label.*20.*ttl.*[0-9]+.*pipe",
481        "matchCount": "1",
482        "teardown": [
483            "$TC actions flush action mpls"
484        ]
485    },
486    {
487        "id": "5db4",
488        "name": "Add mpls push action with label, tc and ttl",
489        "category": [
490            "actions",
491            "mpls"
492        ],
493        "setup": [
494            [
495                "$TC actions flush action mpls",
496                0,
497                1,
498                255
499            ]
500        ],
501        "cmdUnderTest": "$TC actions add action mpls push label 20 tc 3 ttl 128",
502        "expExitCode": "0",
503        "verifyCmd": "$TC actions list action mpls",
504        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*tc.*3.*ttl.*128.*pipe",
505        "matchCount": "1",
506        "teardown": [
507            "$TC actions flush action mpls"
508        ]
509    },
510    {
511        "id": "16eb",
512        "name": "Add mpls push action with label and bos",
513        "category": [
514            "actions",
515            "mpls"
516        ],
517        "setup": [
518            [
519                "$TC actions flush action mpls",
520                0,
521                1,
522                255
523            ]
524        ],
525        "cmdUnderTest": "$TC actions add action mpls push label 20 bos 1",
526        "expExitCode": "0",
527        "verifyCmd": "$TC actions list action mpls",
528        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*bos.*1.*pipe",
529        "matchCount": "1",
530        "teardown": [
531            "$TC actions flush action mpls"
532        ]
533    },
534    {
535        "id": "d69d",
536        "name": "Add mpls push action with no label (invalid)",
537        "category": [
538            "actions",
539            "mpls"
540        ],
541        "setup": [
542            [
543                "$TC actions flush action mpls",
544                0,
545                1,
546                255
547            ]
548        ],
549        "cmdUnderTest": "$TC actions add action mpls push",
550        "expExitCode": "255",
551        "verifyCmd": "$TC actions list action mpls",
552        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*pipe",
553        "matchCount": "0",
554        "teardown": []
555    },
556    {
557        "id": "e8e4",
558        "name": "Add mpls push action with ipv4 protocol (invalid)",
559        "category": [
560            "actions",
561            "mpls"
562        ],
563        "setup": [
564            [
565                "$TC actions flush action mpls",
566                0,
567                1,
568                255
569            ]
570        ],
571        "cmdUnderTest": "$TC actions add action mpls push protocol ipv4 label 20",
572        "expExitCode": "255",
573        "verifyCmd": "$TC actions list action mpls",
574        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*ttl.*[0-9]+.*pipe",
575        "matchCount": "0",
576        "teardown": []
577    },
578    {
579        "id": "ecd0",
580        "name": "Add mpls push action with out of range label (invalid)",
581        "category": [
582            "actions",
583            "mpls"
584        ],
585        "setup": [
586            [
587                "$TC actions flush action mpls",
588                0,
589                1,
590                255
591            ]
592        ],
593        "cmdUnderTest": "$TC actions add action mpls push label 1048576",
594        "expExitCode": "255",
595        "verifyCmd": "$TC actions list action mpls",
596        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*1048576.*pipe",
597        "matchCount": "0",
598        "teardown": []
599    },
600    {
601        "id": "d303",
602        "name": "Add mpls push action with out of range tc (invalid)",
603        "category": [
604            "actions",
605            "mpls"
606        ],
607        "setup": [
608            [
609                "$TC actions flush action mpls",
610                0,
611                1,
612                255
613            ]
614        ],
615        "cmdUnderTest": "$TC actions add action mpls push label 20 tc 8",
616        "expExitCode": "255",
617        "verifyCmd": "$TC actions list action mpls",
618        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*tc.*8.*pipe",
619        "matchCount": "0",
620        "teardown": []
621    },
622    {
623        "id": "fd6e",
624        "name": "Add mpls push action with ttl of 0 (invalid)",
625        "category": [
626            "actions",
627            "mpls"
628        ],
629        "setup": [
630            [
631                "$TC actions flush action mpls",
632                0,
633                1,
634                255
635            ]
636        ],
637        "cmdUnderTest": "$TC actions add action mpls push label 20 ttl 0",
638        "expExitCode": "255",
639        "verifyCmd": "$TC actions list action mpls",
640        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*ttl.*0.*pipe",
641        "matchCount": "0",
642        "teardown": []
643    },
644    {
645        "id": "19e9",
646        "name": "Add mpls mod action with mpls label",
647        "category": [
648            "actions",
649            "mpls"
650        ],
651        "setup": [
652            [
653                "$TC actions flush action mpls",
654                0,
655                1,
656                255
657            ]
658        ],
659        "cmdUnderTest": "$TC actions add action mpls mod label 20",
660        "expExitCode": "0",
661        "verifyCmd": "$TC actions list action mpls",
662        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*20.*pipe",
663        "matchCount": "1",
664        "teardown": [
665            "$TC actions flush action mpls"
666        ]
667    },
668    {
669        "id": "1fde",
670        "name": "Add mpls mod action with max mpls label",
671        "category": [
672            "actions",
673            "mpls"
674        ],
675        "setup": [
676            [
677                "$TC actions flush action mpls",
678                0,
679                1,
680                255
681            ]
682        ],
683        "cmdUnderTest": "$TC actions add action mpls mod label 0xfffff",
684        "expExitCode": "0",
685        "verifyCmd": "$TC actions list action mpls",
686        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*1048575.*pipe",
687        "matchCount": "1",
688        "teardown": [
689            "$TC actions flush action mpls"
690        ]
691    },
692    {
693        "id": "0c50",
694        "name": "Add mpls mod action with mpls label exceeding max (invalid)",
695        "category": [
696            "actions",
697            "mpls"
698        ],
699        "setup": [
700            [
701                "$TC actions flush action mpls",
702                0,
703                1,
704                255
705            ]
706        ],
707        "cmdUnderTest": "$TC actions add action mpls mod label 0x100000",
708        "expExitCode": "255",
709        "verifyCmd": "$TC actions list action mpls",
710        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*1048576.*pipe",
711        "matchCount": "0",
712        "teardown": []
713    },
714    {
715        "id": "10b6",
716        "name": "Add mpls mod action with mpls label of MPLS_LABEL_IMPLNULL (invalid)",
717        "category": [
718            "actions",
719            "mpls"
720        ],
721        "setup": [
722            [
723                "$TC actions flush action mpls",
724                0,
725                1,
726                255
727            ]
728        ],
729        "cmdUnderTest": "$TC actions add action mpls mod label 3",
730        "expExitCode": "255",
731        "verifyCmd": "$TC actions list action mpls",
732        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*3.*pipe",
733        "matchCount": "0",
734        "teardown": []
735    },
736    {
737        "id": "57c9",
738        "name": "Add mpls mod action with mpls min tc",
739        "category": [
740            "actions",
741            "mpls"
742        ],
743        "setup": [
744            [
745                "$TC actions flush action mpls",
746                0,
747                1,
748                255
749            ]
750        ],
751        "cmdUnderTest": "$TC actions add action mpls mod tc 0",
752        "expExitCode": "0",
753        "verifyCmd": "$TC actions list action mpls",
754        "matchPattern": "action order [0-9]+: mpls.*modify.*tc.*0.*pipe",
755        "matchCount": "1",
756        "teardown": [
757            "$TC actions flush action mpls"
758        ]
759    },
760    {
761        "id": "6872",
762        "name": "Add mpls mod action with mpls max tc",
763        "category": [
764            "actions",
765            "mpls"
766        ],
767        "setup": [
768            [
769                "$TC actions flush action mpls",
770                0,
771                1,
772                255
773            ]
774        ],
775        "cmdUnderTest": "$TC actions add action mpls mod tc 7",
776        "expExitCode": "0",
777        "verifyCmd": "$TC actions list action mpls",
778        "matchPattern": "action order [0-9]+: mpls.*modify.*tc.*7.*pipe",
779        "matchCount": "1",
780        "teardown": [
781            "$TC actions flush action mpls"
782        ]
783    },
784    {
785        "id": "a70a",
786        "name": "Add mpls mod action with mpls tc exceeding max (invalid)",
787        "category": [
788            "actions",
789            "mpls"
790        ],
791        "setup": [
792            [
793                "$TC actions flush action mpls",
794                0,
795                1,
796                255
797            ]
798        ],
799        "cmdUnderTest": "$TC actions add action mpls mod tc 8",
800        "expExitCode": "255",
801        "verifyCmd": "$TC actions list action mpls",
802        "matchPattern": "action order [0-9]+: mpls.*modify.*tc.*4.*pipe",
803        "matchCount": "0",
804        "teardown": []
805    },
806    {
807        "id": "6ed5",
808        "name": "Add mpls mod action with mpls ttl",
809        "category": [
810            "actions",
811            "mpls"
812        ],
813        "setup": [
814            [
815                "$TC actions flush action mpls",
816                0,
817                1,
818                255
819            ]
820        ],
821        "cmdUnderTest": "$TC actions add action mpls mod ttl 128",
822        "expExitCode": "0",
823        "verifyCmd": "$TC actions list action mpls",
824        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*128.*pipe",
825        "matchCount": "1",
826        "teardown": [
827            "$TC actions flush action mpls"
828        ]
829    },
830    {
831        "id": "b80f",
832        "name": "Add mpls mod action with mpls max ttl",
833        "category": [
834            "actions",
835            "mpls"
836        ],
837        "setup": [
838            [
839                "$TC actions flush action mpls",
840                0,
841                1,
842                255
843            ]
844        ],
845        "cmdUnderTest": "$TC actions add action mpls mod ttl 255",
846        "expExitCode": "0",
847        "verifyCmd": "$TC actions list action mpls",
848        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*255.*pipe",
849        "matchCount": "1",
850        "teardown": [
851            "$TC actions flush action mpls"
852        ]
853    },
854    {
855        "id": "8864",
856        "name": "Add mpls mod action with mpls min ttl",
857        "category": [
858            "actions",
859            "mpls"
860        ],
861        "setup": [
862            [
863                "$TC actions flush action mpls",
864                0,
865                1,
866                255
867            ]
868        ],
869        "cmdUnderTest": "$TC actions add action mpls mod ttl 1",
870        "expExitCode": "0",
871        "verifyCmd": "$TC actions list action mpls",
872        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*1.*pipe",
873        "matchCount": "1",
874        "teardown": [
875            "$TC actions flush action mpls"
876        ]
877    },
878    {
879        "id": "6c06",
880        "name": "Add mpls mod action with mpls ttl of 0 (invalid)",
881        "category": [
882            "actions",
883            "mpls"
884        ],
885        "setup": [
886            [
887                "$TC actions flush action mpls",
888                0,
889                1,
890                255
891            ]
892        ],
893        "cmdUnderTest": "$TC actions add action mpls mod ttl 0",
894        "expExitCode": "255",
895        "verifyCmd": "$TC actions list action mpls",
896        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*0.*pipe",
897        "matchCount": "0",
898        "teardown": []
899    },
900    {
901        "id": "b5d8",
902        "name": "Add mpls mod action with mpls ttl exceeding max (invalid)",
903        "category": [
904            "actions",
905            "mpls"
906        ],
907        "setup": [
908            [
909                "$TC actions flush action mpls",
910                0,
911                1,
912                255
913            ]
914        ],
915        "cmdUnderTest": "$TC actions add action mpls mod ttl 256",
916        "expExitCode": "255",
917        "verifyCmd": "$TC actions list action mpls",
918        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*256.*pipe",
919        "matchCount": "0",
920        "teardown": []
921    },
922    {
923        "id": "451f",
924        "name": "Add mpls mod action with mpls max bos",
925        "category": [
926            "actions",
927            "mpls"
928        ],
929        "setup": [
930            [
931                "$TC actions flush action mpls",
932                0,
933                1,
934                255
935            ]
936        ],
937        "cmdUnderTest": "$TC actions add action mpls mod bos 1",
938        "expExitCode": "0",
939        "verifyCmd": "$TC actions list action mpls",
940        "matchPattern": "action order [0-9]+: mpls.*modify.*bos.*1.*pipe",
941        "matchCount": "1",
942        "teardown": [
943            "$TC actions flush action mpls"
944        ]
945    },
946    {
947        "id": "a1ed",
948        "name": "Add mpls mod action with mpls min bos",
949        "category": [
950            "actions",
951            "mpls"
952        ],
953        "setup": [
954            [
955                "$TC actions flush action mpls",
956                0,
957                1,
958                255
959            ]
960        ],
961        "cmdUnderTest": "$TC actions add action mpls mod bos 0",
962        "expExitCode": "0",
963        "verifyCmd": "$TC actions list action mpls",
964        "matchPattern": "action order [0-9]+: mpls.*modify.*bos.*0.*pipe",
965        "matchCount": "1",
966        "teardown": [
967            "$TC actions flush action mpls"
968        ]
969    },
970    {
971        "id": "3dcf",
972        "name": "Add mpls mod action with mpls bos exceeding max (invalid)",
973        "category": [
974            "actions",
975            "mpls"
976        ],
977        "setup": [
978            [
979                "$TC actions flush action mpls",
980                0,
981                1,
982                255
983            ]
984        ],
985        "cmdUnderTest": "$TC actions add action mpls mod bos 2",
986        "expExitCode": "255",
987        "verifyCmd": "$TC actions list action mpls",
988        "matchPattern": "action order [0-9]+: mpls.*modify.*bos.*2.*pipe",
989        "matchCount": "0",
990        "teardown": []
991    },
992    {
993        "id": "db7c",
994        "name": "Add mpls mod action with protocol (invalid)",
995        "category": [
996            "actions",
997            "mpls"
998        ],
999        "setup": [
1000            [
1001                "$TC actions flush action mpls",
1002                0,
1003                1,
1004                255
1005            ]
1006        ],
1007        "cmdUnderTest": "$TC actions add action mpls mod protocol ipv4",
1008        "expExitCode": "255",
1009        "verifyCmd": "$TC actions list action mpls",
1010        "matchPattern": "action order [0-9]+: mpls.*modify.*protocol.*ip.*pipe",
1011        "matchCount": "0",
1012        "teardown": []
1013    },
1014    {
1015        "id": "b070",
1016        "name": "Replace existing mpls push action with new ID",
1017        "category": [
1018            "actions",
1019            "mpls"
1020        ],
1021        "setup": [
1022            [
1023                "$TC actions flush action mpls",
1024                0,
1025                1,
1026                255
1027            ],
1028            "$TC actions add action mpls push label 20 pipe index 12"
1029        ],
1030        "cmdUnderTest": "$TC actions replace action mpls push label 30 pipe index 12",
1031        "expExitCode": "0",
1032        "verifyCmd": "$TC actions get action mpls index 12",
1033        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*30.*pipe.*index 12 ref",
1034        "matchCount": "1",
1035        "teardown": [
1036            "$TC actions flush action mpls"
1037        ]
1038    },
1039    {
1040        "id": "6cce",
1041        "name": "Delete mpls pop action",
1042        "category": [
1043            "actions",
1044            "mpls"
1045        ],
1046        "setup": [
1047            [
1048                "$TC actions flush action mpls",
1049                0,
1050                1,
1051                255
1052            ],
1053            "$TC actions add action mpls pop protocol ipv4 index 44"
1054        ],
1055        "cmdUnderTest": "$TC actions del action mpls index 44",
1056        "expExitCode": "0",
1057        "verifyCmd": "$TC actions list action mpls",
1058        "matchPattern": "action order [0-9]+: mpls.*pop.*index 44 ref",
1059        "matchCount": "0",
1060        "teardown": []
1061    },
1062    {
1063        "id": "d138",
1064        "name": "Flush mpls actions",
1065        "category": [
1066            "actions",
1067            "mpls"
1068        ],
1069        "setup": [
1070            [
1071                "$TC actions flush action mpls",
1072                0,
1073                1,
1074                255
1075            ],
1076            "$TC actions add action mpls push label 10 index 10",
1077            "$TC actions add action mpls push label 20 index 20",
1078            "$TC actions add action mpls push label 30 index 30",
1079            "$TC actions add action mpls push label 40 index 40"
1080        ],
1081        "cmdUnderTest": "$TC actions flush action mpls",
1082        "expExitCode": "0",
1083        "verifyCmd": "$TC actions list action mpls",
1084        "matchPattern": "action order [0-9]+: mpls.*push.*",
1085        "matchCount": "0",
1086        "teardown": []
1087    }
1088]
1089