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": "09d2",
172        "name": "Add mpls dec_ttl action with opcode and cookie",
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 pipe index 8 cookie aabbccddeeff",
186        "expExitCode": "0",
187        "verifyCmd": "$TC actions list action mpls",
188        "matchPattern": "action order [0-9]+: mpls.*dec_ttl pipe.*index 8 ref.*cookie aabbccddeeff",
189        "matchCount": "1",
190        "teardown": [
191            "$TC actions flush action mpls"
192        ]
193    },
194    {
195        "id": "c170",
196        "name": "Add mpls dec_ttl action with opcode and cookie of max length",
197        "category": [
198            "actions",
199            "mpls"
200        ],
201        "setup": [
202            [
203                "$TC actions flush action mpls",
204                0,
205                1,
206                255
207            ]
208        ],
209        "cmdUnderTest": "$TC actions add action mpls dec_ttl continue index 8 cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
210        "expExitCode": "0",
211        "verifyCmd": "$TC actions list action mpls",
212        "matchPattern": "action order [0-9]+: mpls.*dec_ttl continue.*index 8 ref.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
213        "matchCount": "1",
214        "teardown": [
215            "$TC actions flush action mpls"
216        ]
217    },
218    {
219        "id": "9118",
220        "name": "Add mpls dec_ttl action with invalid opcode",
221        "category": [
222            "actions",
223            "mpls"
224        ],
225        "setup": [
226            [
227                "$TC actions flush action mpls",
228                0,
229                1,
230                255
231            ]
232        ],
233        "cmdUnderTest": "$TC actions add action mpls dec_ttl foo index 8",
234        "expExitCode": "255",
235        "verifyCmd": "$TC actions list action mpls",
236        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*foo.*index 8 ref",
237        "matchCount": "0",
238        "teardown": []
239    },
240    {
241        "id": "6ce1",
242        "name": "Add mpls dec_ttl action with label (invalid)",
243        "category": [
244            "actions",
245            "mpls"
246        ],
247        "setup": [
248            [
249                "$TC actions flush action mpls",
250                0,
251                1,
252                255
253            ]
254        ],
255        "cmdUnderTest": "$TC actions add action mpls dec_ttl label 20",
256        "expExitCode": "255",
257        "verifyCmd": "$TC actions list action mpls",
258        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*label.*20.*pipe",
259        "matchCount": "0",
260        "teardown": []
261    },
262    {
263        "id": "352f",
264        "name": "Add mpls dec_ttl action with tc (invalid)",
265        "category": [
266            "actions",
267            "mpls"
268        ],
269        "setup": [
270            [
271                "$TC actions flush action mpls",
272                0,
273                1,
274                255
275            ]
276        ],
277        "cmdUnderTest": "$TC actions add action mpls dec_ttl tc 3",
278        "expExitCode": "255",
279        "verifyCmd": "$TC actions list action mpls",
280        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*tc.*3.*pipe",
281        "matchCount": "0",
282        "teardown": []
283    },
284    {
285        "id": "fa1c",
286        "name": "Add mpls dec_ttl action with ttl (invalid)",
287        "category": [
288            "actions",
289            "mpls"
290        ],
291        "setup": [
292            [
293                "$TC actions flush action mpls",
294                0,
295                1,
296                255
297            ]
298        ],
299        "cmdUnderTest": "$TC actions add action mpls dec_ttl ttl 20",
300        "expExitCode": "255",
301        "verifyCmd": "$TC actions list action mpls",
302        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*ttl.*20.*pipe",
303        "matchCount": "0",
304        "teardown": []
305    },
306    {
307        "id": "6b79",
308        "name": "Add mpls dec_ttl action with bos (invalid)",
309        "category": [
310            "actions",
311            "mpls"
312        ],
313        "setup": [
314            [
315                "$TC actions flush action mpls",
316                0,
317                1,
318                255
319            ]
320        ],
321        "cmdUnderTest": "$TC actions add action mpls dec_ttl bos 1",
322        "expExitCode": "255",
323        "verifyCmd": "$TC actions list action mpls",
324        "matchPattern": "action order [0-9]+: mpls.*dec_ttl.*bos.*1.*pipe",
325        "matchCount": "0",
326        "teardown": []
327    },
328    {
329        "id": "d4c4",
330        "name": "Add mpls pop action with ip proto",
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 protocol ipv4",
344        "expExitCode": "0",
345        "verifyCmd": "$TC actions list action mpls",
346        "matchPattern": "action order [0-9]+: mpls.*pop.*protocol.*ip.*pipe",
347        "matchCount": "1",
348        "teardown": [
349            "$TC actions flush action mpls"
350        ]
351    },
352    {
353        "id": "91fb",
354        "name": "Add mpls pop action with ip proto and cookie",
355        "category": [
356            "actions",
357            "mpls"
358        ],
359        "setup": [
360            [
361                "$TC actions flush action mpls",
362                0,
363                1,
364                255
365            ]
366        ],
367        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 cookie 12345678",
368        "expExitCode": "0",
369        "verifyCmd": "$TC actions list action mpls",
370        "matchPattern": "action order [0-9]+: mpls.*pop.*protocol.*ip.*pipe.*ref 1.*cookie 12345678",
371        "matchCount": "1",
372        "teardown": [
373            "$TC actions flush action mpls"
374        ]
375    },
376    {
377        "id": "92fe",
378        "name": "Add mpls pop action with mpls proto",
379        "category": [
380            "actions",
381            "mpls"
382        ],
383        "setup": [
384            [
385                "$TC actions flush action mpls",
386                0,
387                1,
388                255
389            ]
390        ],
391        "cmdUnderTest": "$TC actions add action mpls pop protocol mpls_mc",
392        "expExitCode": "0",
393        "verifyCmd": "$TC actions list action mpls",
394        "matchPattern": "action order [0-9]+: mpls.*pop.*protocol.*mpls_mc.*pipe",
395        "matchCount": "1",
396        "teardown": [
397            "$TC actions flush action mpls"
398        ]
399    },
400    {
401        "id": "7e23",
402        "name": "Add mpls pop action with no protocol (invalid)",
403        "category": [
404            "actions",
405            "mpls"
406        ],
407        "setup": [
408            [
409                "$TC actions flush action mpls",
410                0,
411                1,
412                255
413            ]
414        ],
415        "cmdUnderTest": "$TC actions add action mpls pop",
416        "expExitCode": "255",
417        "verifyCmd": "$TC actions list action mpls",
418        "matchPattern": "action order [0-9]+: mpls.*pop.*pipe",
419        "matchCount": "0",
420        "teardown": []
421    },
422    {
423        "id": "6182",
424        "name": "Add mpls pop action with label (invalid)",
425        "category": [
426            "actions",
427            "mpls"
428        ],
429        "setup": [
430            [
431                "$TC actions flush action mpls",
432                0,
433                1,
434                255
435            ]
436        ],
437        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 label 20",
438        "expExitCode": "255",
439        "verifyCmd": "$TC actions list action mpls",
440        "matchPattern": "action order [0-9]+: mpls.*pop.*label.*20.*pipe",
441        "matchCount": "0",
442        "teardown": []
443    },
444    {
445        "id": "6475",
446        "name": "Add mpls pop action with tc (invalid)",
447        "category": [
448            "actions",
449            "mpls"
450        ],
451        "setup": [
452            [
453                "$TC actions flush action mpls",
454                0,
455                1,
456                255
457            ]
458        ],
459        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 tc 3",
460        "expExitCode": "255",
461        "verifyCmd": "$TC actions list action mpls",
462        "matchPattern": "action order [0-9]+: mpls.*pop.*tc.*3.*pipe",
463        "matchCount": "0",
464        "teardown": []
465    },
466    {
467        "id": "067b",
468        "name": "Add mpls pop action with ttl (invalid)",
469        "category": [
470            "actions",
471            "mpls"
472        ],
473        "setup": [
474            [
475                "$TC actions flush action mpls",
476                0,
477                1,
478                255
479            ]
480        ],
481        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 ttl 20",
482        "expExitCode": "255",
483        "verifyCmd": "$TC actions list action mpls",
484        "matchPattern": "action order [0-9]+: mpls.*pop.*ttl.*20.*pipe",
485        "matchCount": "0",
486        "teardown": []
487    },
488    {
489        "id": "7316",
490        "name": "Add mpls pop action with bos (invalid)",
491        "category": [
492            "actions",
493            "mpls"
494        ],
495        "setup": [
496            [
497                "$TC actions flush action mpls",
498                0,
499                1,
500                255
501            ]
502        ],
503        "cmdUnderTest": "$TC actions add action mpls pop protocol ipv4 bos 1",
504        "expExitCode": "255",
505        "verifyCmd": "$TC actions list action mpls",
506        "matchPattern": "action order [0-9]+: mpls.*pop.*bos.*1.*pipe",
507        "matchCount": "0",
508        "teardown": []
509    },
510    {
511        "id": "38cc",
512        "name": "Add mpls push action with label",
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",
526        "expExitCode": "0",
527        "verifyCmd": "$TC actions list action mpls",
528        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*ttl.*[0-9]+.*pipe",
529        "matchCount": "1",
530        "teardown": [
531            "$TC actions flush action mpls"
532        ]
533    },
534    {
535        "id": "c281",
536        "name": "Add mpls push action with mpls_mc protocol",
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 protocol mpls_mc label 20",
550        "expExitCode": "0",
551        "verifyCmd": "$TC actions list action mpls",
552        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_mc.*label.*20.*ttl.*[0-9]+.*pipe",
553        "matchCount": "1",
554        "teardown": [
555            "$TC actions flush action mpls"
556        ]
557    },
558    {
559        "id": "5db4",
560        "name": "Add mpls push action with label, tc and ttl",
561        "category": [
562            "actions",
563            "mpls"
564        ],
565        "setup": [
566            [
567                "$TC actions flush action mpls",
568                0,
569                1,
570                255
571            ]
572        ],
573        "cmdUnderTest": "$TC actions add action mpls push label 20 tc 3 ttl 128",
574        "expExitCode": "0",
575        "verifyCmd": "$TC actions list action mpls",
576        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*tc.*3.*ttl.*128.*pipe",
577        "matchCount": "1",
578        "teardown": [
579            "$TC actions flush action mpls"
580        ]
581    },
582    {
583        "id": "7c34",
584        "name": "Add mpls push action with label, tc ttl and cookie of max length",
585        "category": [
586            "actions",
587            "mpls"
588        ],
589        "setup": [
590            [
591                "$TC actions flush action mpls",
592                0,
593                1,
594                255
595            ]
596        ],
597        "cmdUnderTest": "$TC actions add action mpls push label 20 tc 3 ttl 128 cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
598        "expExitCode": "0",
599        "verifyCmd": "$TC actions list action mpls",
600        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*tc.*3.*ttl.*128.*pipe.*ref 1.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
601        "matchCount": "1",
602        "teardown": [
603            "$TC actions flush action mpls"
604        ]
605    },
606    {
607        "id": "16eb",
608        "name": "Add mpls push action with label and bos",
609        "category": [
610            "actions",
611            "mpls"
612        ],
613        "setup": [
614            [
615                "$TC actions flush action mpls",
616                0,
617                1,
618                255
619            ]
620        ],
621        "cmdUnderTest": "$TC actions add action mpls push label 20 bos 1",
622        "expExitCode": "0",
623        "verifyCmd": "$TC actions list action mpls",
624        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*bos.*1.*pipe",
625        "matchCount": "1",
626        "teardown": [
627            "$TC actions flush action mpls"
628        ]
629    },
630    {
631        "id": "d69d",
632        "name": "Add mpls push action with no label (invalid)",
633        "category": [
634            "actions",
635            "mpls"
636        ],
637        "setup": [
638            [
639                "$TC actions flush action mpls",
640                0,
641                1,
642                255
643            ]
644        ],
645        "cmdUnderTest": "$TC actions add action mpls push",
646        "expExitCode": "255",
647        "verifyCmd": "$TC actions list action mpls",
648        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*pipe",
649        "matchCount": "0",
650        "teardown": []
651    },
652    {
653        "id": "e8e4",
654        "name": "Add mpls push action with ipv4 protocol (invalid)",
655        "category": [
656            "actions",
657            "mpls"
658        ],
659        "setup": [
660            [
661                "$TC actions flush action mpls",
662                0,
663                1,
664                255
665            ]
666        ],
667        "cmdUnderTest": "$TC actions add action mpls push protocol ipv4 label 20",
668        "expExitCode": "255",
669        "verifyCmd": "$TC actions list action mpls",
670        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*ttl.*[0-9]+.*pipe",
671        "matchCount": "0",
672        "teardown": []
673    },
674    {
675        "id": "ecd0",
676        "name": "Add mpls push action with out of range label (invalid)",
677        "category": [
678            "actions",
679            "mpls"
680        ],
681        "setup": [
682            [
683                "$TC actions flush action mpls",
684                0,
685                1,
686                255
687            ]
688        ],
689        "cmdUnderTest": "$TC actions add action mpls push label 1048576",
690        "expExitCode": "255",
691        "verifyCmd": "$TC actions list action mpls",
692        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*1048576.*pipe",
693        "matchCount": "0",
694        "teardown": []
695    },
696    {
697        "id": "d303",
698        "name": "Add mpls push action with out of range tc (invalid)",
699        "category": [
700            "actions",
701            "mpls"
702        ],
703        "setup": [
704            [
705                "$TC actions flush action mpls",
706                0,
707                1,
708                255
709            ]
710        ],
711        "cmdUnderTest": "$TC actions add action mpls push label 20 tc 8",
712        "expExitCode": "255",
713        "verifyCmd": "$TC actions list action mpls",
714        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*tc.*8.*pipe",
715        "matchCount": "0",
716        "teardown": []
717    },
718    {
719        "id": "fd6e",
720        "name": "Add mpls push action with ttl of 0 (invalid)",
721        "category": [
722            "actions",
723            "mpls"
724        ],
725        "setup": [
726            [
727                "$TC actions flush action mpls",
728                0,
729                1,
730                255
731            ]
732        ],
733        "cmdUnderTest": "$TC actions add action mpls push label 20 ttl 0",
734        "expExitCode": "255",
735        "verifyCmd": "$TC actions list action mpls",
736        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*20.*ttl.*0.*pipe",
737        "matchCount": "0",
738        "teardown": []
739    },
740    {
741        "id": "19e9",
742        "name": "Add mpls mod action with mpls label",
743        "category": [
744            "actions",
745            "mpls"
746        ],
747        "setup": [
748            [
749                "$TC actions flush action mpls",
750                0,
751                1,
752                255
753            ]
754        ],
755        "cmdUnderTest": "$TC actions add action mpls mod label 20",
756        "expExitCode": "0",
757        "verifyCmd": "$TC actions list action mpls",
758        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*20.*pipe",
759        "matchCount": "1",
760        "teardown": [
761            "$TC actions flush action mpls"
762        ]
763    },
764    {
765        "id": "1fde",
766        "name": "Add mpls mod action with max mpls label",
767        "category": [
768            "actions",
769            "mpls"
770        ],
771        "setup": [
772            [
773                "$TC actions flush action mpls",
774                0,
775                1,
776                255
777            ]
778        ],
779        "cmdUnderTest": "$TC actions add action mpls mod label 0xfffff",
780        "expExitCode": "0",
781        "verifyCmd": "$TC actions list action mpls",
782        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*1048575.*pipe",
783        "matchCount": "1",
784        "teardown": [
785            "$TC actions flush action mpls"
786        ]
787    },
788    {
789        "id": "0c50",
790        "name": "Add mpls mod action with mpls label exceeding max (invalid)",
791        "category": [
792            "actions",
793            "mpls"
794        ],
795        "setup": [
796            [
797                "$TC actions flush action mpls",
798                0,
799                1,
800                255
801            ]
802        ],
803        "cmdUnderTest": "$TC actions add action mpls mod label 0x100000",
804        "expExitCode": "255",
805        "verifyCmd": "$TC actions list action mpls",
806        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*1048576.*pipe",
807        "matchCount": "0",
808        "teardown": []
809    },
810    {
811        "id": "10b6",
812        "name": "Add mpls mod action with mpls label of MPLS_LABEL_IMPLNULL (invalid)",
813        "category": [
814            "actions",
815            "mpls"
816        ],
817        "setup": [
818            [
819                "$TC actions flush action mpls",
820                0,
821                1,
822                255
823            ]
824        ],
825        "cmdUnderTest": "$TC actions add action mpls mod label 3",
826        "expExitCode": "255",
827        "verifyCmd": "$TC actions list action mpls",
828        "matchPattern": "action order [0-9]+: mpls.*modify.*label.*3.*pipe",
829        "matchCount": "0",
830        "teardown": []
831    },
832    {
833        "id": "57c9",
834        "name": "Add mpls mod action with mpls min tc",
835        "category": [
836            "actions",
837            "mpls"
838        ],
839        "setup": [
840            [
841                "$TC actions flush action mpls",
842                0,
843                1,
844                255
845            ]
846        ],
847        "cmdUnderTest": "$TC actions add action mpls mod tc 0",
848        "expExitCode": "0",
849        "verifyCmd": "$TC actions list action mpls",
850        "matchPattern": "action order [0-9]+: mpls.*modify.*tc.*0.*pipe",
851        "matchCount": "1",
852        "teardown": [
853            "$TC actions flush action mpls"
854        ]
855    },
856    {
857        "id": "6872",
858        "name": "Add mpls mod action with mpls max tc",
859        "category": [
860            "actions",
861            "mpls"
862        ],
863        "setup": [
864            [
865                "$TC actions flush action mpls",
866                0,
867                1,
868                255
869            ]
870        ],
871        "cmdUnderTest": "$TC actions add action mpls mod tc 7",
872        "expExitCode": "0",
873        "verifyCmd": "$TC actions list action mpls",
874        "matchPattern": "action order [0-9]+: mpls.*modify.*tc.*7.*pipe",
875        "matchCount": "1",
876        "teardown": [
877            "$TC actions flush action mpls"
878        ]
879    },
880    {
881        "id": "a70a",
882        "name": "Add mpls mod action with mpls tc exceeding max (invalid)",
883        "category": [
884            "actions",
885            "mpls"
886        ],
887        "setup": [
888            [
889                "$TC actions flush action mpls",
890                0,
891                1,
892                255
893            ]
894        ],
895        "cmdUnderTest": "$TC actions add action mpls mod tc 8",
896        "expExitCode": "255",
897        "verifyCmd": "$TC actions list action mpls",
898        "matchPattern": "action order [0-9]+: mpls.*modify.*tc.*4.*pipe",
899        "matchCount": "0",
900        "teardown": []
901    },
902    {
903        "id": "6ed5",
904        "name": "Add mpls mod action with mpls ttl",
905        "category": [
906            "actions",
907            "mpls"
908        ],
909        "setup": [
910            [
911                "$TC actions flush action mpls",
912                0,
913                1,
914                255
915            ]
916        ],
917        "cmdUnderTest": "$TC actions add action mpls mod ttl 128",
918        "expExitCode": "0",
919        "verifyCmd": "$TC actions list action mpls",
920        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*128.*pipe",
921        "matchCount": "1",
922        "teardown": [
923            "$TC actions flush action mpls"
924        ]
925    },
926    {
927        "id": "77c1",
928        "name": "Add mpls mod action with mpls ttl and cookie",
929        "category": [
930            "actions",
931            "mpls"
932        ],
933        "setup": [
934            [
935                "$TC actions flush action mpls",
936                0,
937                1,
938                255
939            ]
940        ],
941        "cmdUnderTest": "$TC actions add action mpls mod ttl 128 cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
942        "expExitCode": "0",
943        "verifyCmd": "$TC actions list action mpls",
944        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*128.*pipe.*ref 1.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
945        "matchCount": "1",
946        "teardown": [
947            "$TC actions flush action mpls"
948        ]
949    },
950    {
951        "id": "b80f",
952        "name": "Add mpls mod action with mpls max ttl",
953        "category": [
954            "actions",
955            "mpls"
956        ],
957        "setup": [
958            [
959                "$TC actions flush action mpls",
960                0,
961                1,
962                255
963            ]
964        ],
965        "cmdUnderTest": "$TC actions add action mpls mod ttl 255",
966        "expExitCode": "0",
967        "verifyCmd": "$TC actions list action mpls",
968        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*255.*pipe",
969        "matchCount": "1",
970        "teardown": [
971            "$TC actions flush action mpls"
972        ]
973    },
974    {
975        "id": "8864",
976        "name": "Add mpls mod action with mpls min ttl",
977        "category": [
978            "actions",
979            "mpls"
980        ],
981        "setup": [
982            [
983                "$TC actions flush action mpls",
984                0,
985                1,
986                255
987            ]
988        ],
989        "cmdUnderTest": "$TC actions add action mpls mod ttl 1",
990        "expExitCode": "0",
991        "verifyCmd": "$TC actions list action mpls",
992        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*1.*pipe",
993        "matchCount": "1",
994        "teardown": [
995            "$TC actions flush action mpls"
996        ]
997    },
998    {
999        "id": "6c06",
1000        "name": "Add mpls mod action with mpls ttl of 0 (invalid)",
1001        "category": [
1002            "actions",
1003            "mpls"
1004        ],
1005        "setup": [
1006            [
1007                "$TC actions flush action mpls",
1008                0,
1009                1,
1010                255
1011            ]
1012        ],
1013        "cmdUnderTest": "$TC actions add action mpls mod ttl 0",
1014        "expExitCode": "255",
1015        "verifyCmd": "$TC actions list action mpls",
1016        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*0.*pipe",
1017        "matchCount": "0",
1018        "teardown": []
1019    },
1020    {
1021        "id": "b5d8",
1022        "name": "Add mpls mod action with mpls ttl exceeding max (invalid)",
1023        "category": [
1024            "actions",
1025            "mpls"
1026        ],
1027        "setup": [
1028            [
1029                "$TC actions flush action mpls",
1030                0,
1031                1,
1032                255
1033            ]
1034        ],
1035        "cmdUnderTest": "$TC actions add action mpls mod ttl 256",
1036        "expExitCode": "255",
1037        "verifyCmd": "$TC actions list action mpls",
1038        "matchPattern": "action order [0-9]+: mpls.*modify.*ttl.*256.*pipe",
1039        "matchCount": "0",
1040        "teardown": []
1041    },
1042    {
1043        "id": "451f",
1044        "name": "Add mpls mod action with mpls max bos",
1045        "category": [
1046            "actions",
1047            "mpls"
1048        ],
1049        "setup": [
1050            [
1051                "$TC actions flush action mpls",
1052                0,
1053                1,
1054                255
1055            ]
1056        ],
1057        "cmdUnderTest": "$TC actions add action mpls mod bos 1",
1058        "expExitCode": "0",
1059        "verifyCmd": "$TC actions list action mpls",
1060        "matchPattern": "action order [0-9]+: mpls.*modify.*bos.*1.*pipe",
1061        "matchCount": "1",
1062        "teardown": [
1063            "$TC actions flush action mpls"
1064        ]
1065    },
1066    {
1067        "id": "a1ed",
1068        "name": "Add mpls mod action with mpls min bos",
1069        "category": [
1070            "actions",
1071            "mpls"
1072        ],
1073        "setup": [
1074            [
1075                "$TC actions flush action mpls",
1076                0,
1077                1,
1078                255
1079            ]
1080        ],
1081        "cmdUnderTest": "$TC actions add action mpls mod bos 0",
1082        "expExitCode": "0",
1083        "verifyCmd": "$TC actions list action mpls",
1084        "matchPattern": "action order [0-9]+: mpls.*modify.*bos.*0.*pipe",
1085        "matchCount": "1",
1086        "teardown": [
1087            "$TC actions flush action mpls"
1088        ]
1089    },
1090    {
1091        "id": "3dcf",
1092        "name": "Add mpls mod action with mpls bos exceeding max (invalid)",
1093        "category": [
1094            "actions",
1095            "mpls"
1096        ],
1097        "setup": [
1098            [
1099                "$TC actions flush action mpls",
1100                0,
1101                1,
1102                255
1103            ]
1104        ],
1105        "cmdUnderTest": "$TC actions add action mpls mod bos 2",
1106        "expExitCode": "255",
1107        "verifyCmd": "$TC actions list action mpls",
1108        "matchPattern": "action order [0-9]+: mpls.*modify.*bos.*2.*pipe",
1109        "matchCount": "0",
1110        "teardown": []
1111    },
1112    {
1113        "id": "db7c",
1114        "name": "Add mpls mod action with protocol (invalid)",
1115        "category": [
1116            "actions",
1117            "mpls"
1118        ],
1119        "setup": [
1120            [
1121                "$TC actions flush action mpls",
1122                0,
1123                1,
1124                255
1125            ]
1126        ],
1127        "cmdUnderTest": "$TC actions add action mpls mod protocol ipv4",
1128        "expExitCode": "255",
1129        "verifyCmd": "$TC actions list action mpls",
1130        "matchPattern": "action order [0-9]+: mpls.*modify.*protocol.*ip.*pipe",
1131        "matchCount": "0",
1132        "teardown": []
1133    },
1134    {
1135        "id": "b070",
1136        "name": "Replace existing mpls push action with new ID",
1137        "category": [
1138            "actions",
1139            "mpls"
1140        ],
1141        "setup": [
1142            [
1143                "$TC actions flush action mpls",
1144                0,
1145                1,
1146                255
1147            ],
1148            "$TC actions add action mpls push label 20 pipe index 12"
1149        ],
1150        "cmdUnderTest": "$TC actions replace action mpls push label 30 pipe index 12",
1151        "expExitCode": "0",
1152        "verifyCmd": "$TC actions get action mpls index 12",
1153        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*30.*pipe.*index 12 ref",
1154        "matchCount": "1",
1155        "teardown": [
1156            "$TC actions flush action mpls"
1157        ]
1158    },
1159    {
1160        "id": "95a9",
1161        "name": "Replace existing mpls push action with new label, tc, ttl and cookie",
1162        "category": [
1163            "actions",
1164            "mpls"
1165        ],
1166        "setup": [
1167            [
1168                "$TC actions flush action mpls",
1169                0,
1170                1,
1171                255
1172            ],
1173            "$TC actions add action mpls push label 20 tc 3 ttl 128 index 1 cookie aa11bb22cc33dd44ee55ff66aa11b1b2"
1174        ],
1175        "cmdUnderTest": "$TC actions replace action mpls push label 30 tc 2 ttl 125 pipe index 1 cookie aa11bb22cc33",
1176        "expExitCode": "0",
1177        "verifyCmd": "$TC actions get action mpls index 1",
1178        "matchPattern": "action order [0-9]+: mpls.*push.*protocol.*mpls_uc.*label.*30 tc 2 ttl 125 pipe.*index 1.*cookie aa11bb22cc33",
1179        "matchCount": "1",
1180        "teardown": [
1181            "$TC actions flush action mpls"
1182        ]
1183    },
1184    {
1185        "id": "6cce",
1186        "name": "Delete mpls pop action",
1187        "category": [
1188            "actions",
1189            "mpls"
1190        ],
1191        "setup": [
1192            [
1193                "$TC actions flush action mpls",
1194                0,
1195                1,
1196                255
1197            ],
1198            "$TC actions add action mpls pop protocol ipv4 index 44"
1199        ],
1200        "cmdUnderTest": "$TC actions del action mpls index 44",
1201        "expExitCode": "0",
1202        "verifyCmd": "$TC actions list action mpls",
1203        "matchPattern": "action order [0-9]+: mpls.*pop.*index 44 ref",
1204        "matchCount": "0",
1205        "teardown": []
1206    },
1207    {
1208        "id": "d138",
1209        "name": "Flush mpls actions",
1210        "category": [
1211            "actions",
1212            "mpls"
1213        ],
1214        "setup": [
1215            [
1216                "$TC actions flush action mpls",
1217                0,
1218                1,
1219                255
1220            ],
1221            "$TC actions add action mpls push label 10 index 10",
1222            "$TC actions add action mpls push label 20 index 20",
1223            "$TC actions add action mpls push label 30 index 30",
1224            "$TC actions add action mpls push label 40 index 40"
1225        ],
1226        "cmdUnderTest": "$TC actions flush action mpls",
1227        "expExitCode": "0",
1228        "verifyCmd": "$TC actions list action mpls",
1229        "matchPattern": "action order [0-9]+: mpls.*push.*",
1230        "matchCount": "0",
1231        "teardown": []
1232    }
1233]
1234