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