1[
2    {
3        "id": "2b11",
4        "name": "Add tunnel_key set action with mandatory parameters",
5        "category": [
6            "actions",
7            "tunnel_key"
8        ],
9        "setup": [
10            [
11                "$TC actions flush action tunnel_key",
12                0,
13                1,
14                255
15            ]
16        ],
17        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 20.20.20.2 id 1",
18        "expExitCode": "0",
19        "verifyCmd": "$TC actions list action tunnel_key",
20        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 10.10.10.1.*dst_ip 20.20.20.2.*key_id 1",
21        "matchCount": "1",
22        "teardown": [
23            "$TC actions flush action tunnel_key"
24        ]
25    },
26    {
27        "id": "dc6b",
28        "name": "Add tunnel_key set action with missing mandatory src_ip parameter",
29        "category": [
30            "actions",
31            "tunnel_key"
32        ],
33        "setup": [
34            [
35                "$TC actions flush action tunnel_key",
36                0,
37                1,
38                255
39            ]
40        ],
41        "cmdUnderTest": "$TC actions add action tunnel_key set dst_ip 20.20.20.2 id 100",
42        "expExitCode": "255",
43        "verifyCmd": "$TC actions list action tunnel_key",
44        "matchPattern": "action order [0-9]+: tunnel_key set.*dst_ip 20.20.20.2.*key_id 100",
45        "matchCount": "0",
46        "teardown": [
47	    [
48		"$TC actions flush action tunnel_key",
49		0,
50		1,
51		255
52	    ]
53        ]
54    },
55    {
56        "id": "7f25",
57        "name": "Add tunnel_key set action with missing mandatory dst_ip parameter",
58        "category": [
59            "actions",
60            "tunnel_key"
61        ],
62        "setup": [
63            [
64                "$TC actions flush action tunnel_key",
65                0,
66                1,
67                255
68            ]
69        ],
70        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 10.10.10.1 id 100",
71        "expExitCode": "255",
72        "verifyCmd": "$TC actions list action tunnel_key",
73        "matchPattern": "action order [0-9]+: tunnel_key set.*src_ip 10.10.10.1.*key_id 100",
74        "matchCount": "0",
75        "teardown": [
76	    [
77		"$TC actions flush action tunnel_key",
78		0,
79		1,
80		255
81	    ]
82        ]
83    },
84    {
85        "id": "ba4e",
86        "name": "Add tunnel_key set action with missing mandatory id parameter",
87        "category": [
88            "actions",
89            "tunnel_key"
90        ],
91        "setup": [
92            [
93                "$TC actions flush action tunnel_key",
94                0,
95                1,
96                255
97            ]
98        ],
99        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 20.20.20.2",
100        "expExitCode": "255",
101        "verifyCmd": "$TC actions list action tunnel_key",
102        "matchPattern": "action order [0-9]+: tunnel_key set.*src_ip 10.10.10.1.*dst_ip 20.20.20.2",
103        "matchCount": "0",
104        "teardown": [
105	    [
106		"$TC actions flush action tunnel_key",
107		0,
108		1,
109		255
110	    ]
111        ]
112    },
113    {
114        "id": "a5e0",
115        "name": "Add tunnel_key set action with invalid src_ip parameter",
116        "category": [
117            "actions",
118            "tunnel_key"
119        ],
120        "setup": [
121            [
122                "$TC actions flush action tunnel_key",
123                0,
124                1,
125                255
126            ]
127        ],
128        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 300.168.100.1 dst_ip 192.168.200.1 id 7 index 1",
129        "expExitCode": "1",
130        "verifyCmd": "$TC actions get action tunnel_key index 1",
131        "matchPattern": "action order [0-9]+: tunnel_key set.*src_ip 300.168.100.1.*dst_ip 192.168.200.1.*key_id 7.*index 1 ref",
132        "matchCount": "0",
133        "teardown": [
134	    [
135		"$TC actions flush action tunnel_key",
136		0,
137		1,
138		255
139	    ]
140        ]
141    },
142    {
143        "id": "eaa8",
144        "name": "Add tunnel_key set action with invalid dst_ip parameter",
145        "category": [
146            "actions",
147            "tunnel_key"
148        ],
149        "setup": [
150            [
151                "$TC actions flush action tunnel_key",
152                0,
153                1,
154                255
155            ]
156        ],
157        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 192.168.100.1 dst_ip 192.168.800.1 id 10 index 11",
158        "expExitCode": "1",
159        "verifyCmd": "$TC actions get action tunnel_key index 11",
160        "matchPattern": "action order [0-9]+: tunnel_key set.*src_ip 192.168.100.1.*dst_ip 192.168.800.1.*key_id 10.*index 11 ref",
161        "matchCount": "0",
162        "teardown": [
163	    [
164		"$TC actions flush action tunnel_key",
165		0,
166		1,
167		255
168	    ]
169        ]
170    },
171    {
172        "id": "3b09",
173        "name": "Add tunnel_key set action with invalid id parameter",
174        "category": [
175            "actions",
176            "tunnel_key"
177        ],
178        "setup": [
179            [
180                "$TC actions flush action tunnel_key",
181                0,
182                1,
183                255
184            ]
185        ],
186        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 112233445566778899 index 1",
187        "expExitCode": "255",
188        "verifyCmd": "$TC actions get action tunnel_key index 1",
189        "matchPattern": "action order [0-9]+: tunnel_key set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 112233445566778899.*index 1 ref",
190        "matchCount": "0",
191        "teardown": [
192	    [
193		"$TC actions flush action tunnel_key",
194		0,
195		1,
196		255
197	    ]
198        ]
199    },
200    {
201        "id": "9625",
202        "name": "Add tunnel_key set action with invalid dst_port parameter",
203        "category": [
204            "actions",
205            "tunnel_key"
206        ],
207        "setup": [
208            [
209                "$TC actions flush action tunnel_key",
210                0,
211                1,
212                255
213            ]
214        ],
215        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 11 dst_port 998877 index 1",
216        "expExitCode": "255",
217        "verifyCmd": "$TC actions get action tunnel_key index 1",
218        "matchPattern": "action order [0-9]+: tunnel_key set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 11.*dst_port 998877.*index 1 ref",
219        "matchCount": "0",
220        "teardown": [
221	    [
222		"$TC actions flush action tunnel_key",
223		0,
224		1,
225		255
226	    ]
227        ]
228    },
229    {
230        "id": "05af",
231        "name": "Add tunnel_key set action with optional dst_port parameter",
232        "category": [
233            "actions",
234            "tunnel_key"
235        ],
236        "setup": [
237            [
238                "$TC actions flush action tunnel_key",
239                0,
240                1,
241                255
242            ]
243        ],
244        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 192.168.100.1 dst_ip 192.168.200.1 id 789 dst_port 4000 index 10",
245        "expExitCode": "0",
246        "verifyCmd": "$TC actions get action tunnel_key index 10",
247        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 192.168.100.1.*dst_ip 192.168.200.1.*key_id 789.*dst_port 4000.*index 10 ref",
248        "matchCount": "1",
249        "teardown": [
250            "$TC actions flush action tunnel_key"
251        ]
252    },
253    {
254        "id": "da80",
255        "name": "Add tunnel_key set action with index at 32-bit maximum",
256        "category": [
257            "actions",
258            "tunnel_key"
259        ],
260        "setup": [
261            [
262                "$TC actions flush action tunnel_key",
263                0,
264                1,
265                255
266            ]
267        ],
268        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 11 index 4294967295",
269        "expExitCode": "0",
270        "verifyCmd": "$TC actions get action tunnel_key index 4294967295",
271        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*id 11.*index 4294967295 ref",
272        "matchCount": "1",
273        "teardown": [
274            "$TC actions flush action tunnel_key"
275        ]
276    },
277    {
278        "id": "d407",
279        "name": "Add tunnel_key set action with index exceeding 32-bit maximum",
280        "category": [
281            "actions",
282            "tunnel_key"
283        ],
284        "setup": [
285            [
286                "$TC actions flush action tunnel_key",
287                0,
288                1,
289                255
290            ]
291        ],
292        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 11 index 4294967295678",
293        "expExitCode": "255",
294        "verifyCmd": "$TC actions get action tunnel_key index 4294967295678",
295        "matchPattern": "action order [0-9]+: tunnel_key set.*index 4294967295678 ref",
296        "matchCount": "0",
297        "teardown": [
298            [
299                "$TC actions flush action tunnel_key",
300                0,
301                1,
302                255
303            ]
304        ]
305    },
306    {
307        "id": "5cba",
308        "name": "Add tunnel_key set action with id value at 32-bit maximum",
309        "category": [
310            "actions",
311            "tunnel_key"
312        ],
313        "setup": [
314            [
315                "$TC actions flush action tunnel_key",
316                0,
317                1,
318                255
319            ]
320        ],
321        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 4294967295 index 1",
322        "expExitCode": "0",
323        "verifyCmd": "$TC actions get action tunnel_key index 1",
324        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 4294967295.*index 1",
325        "matchCount": "1",
326        "teardown": [
327            "$TC actions flush action tunnel_key"
328        ]
329    },
330    {
331        "id": "e84a",
332        "name": "Add tunnel_key set action with id value exceeding 32-bit maximum",
333        "category": [
334            "actions",
335            "tunnel_key"
336        ],
337        "setup": [
338            [
339                "$TC actions flush action tunnel_key",
340                0,
341                1,
342                255
343            ]
344        ],
345        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 42949672955 index 1",
346        "expExitCode": "255",
347        "verifyCmd": "$TC actions get action tunnel_key index 4294967295",
348        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 42949672955.*index 1",
349        "matchCount": "0",
350        "teardown": [
351            [
352                "$TC actions flush action tunnel_key",
353                0,
354                1,
355                255
356            ]
357	]
358    },
359    {
360        "id": "9c19",
361        "name": "Add tunnel_key set action with dst_port value at 16-bit maximum",
362        "category": [
363            "actions",
364            "tunnel_key"
365        ],
366        "setup": [
367            [
368                "$TC actions flush action tunnel_key",
369                0,
370                1,
371                255
372            ]
373        ],
374        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 429 dst_port 65535 index 1",
375        "expExitCode": "0",
376        "verifyCmd": "$TC actions get action tunnel_key index 1",
377        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 429.*dst_port 65535.*index 1",
378        "matchCount": "1",
379        "teardown": [
380            "$TC actions flush action tunnel_key"
381        ]
382    },
383    {
384        "id": "3bd9",
385        "name": "Add tunnel_key set action with dst_port value exceeding 16-bit maximum",
386        "category": [
387            "actions",
388            "tunnel_key"
389        ],
390        "setup": [
391            [
392                "$TC actions flush action tunnel_key",
393                0,
394                1,
395                255
396            ]
397        ],
398        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 429 dst_port 65535789 index 1",
399        "expExitCode": "255",
400        "verifyCmd": "$TC actions get action tunnel_key index 1",
401        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 429.*dst_port 65535789.*index 1",
402        "matchCount": "0",
403        "teardown": [
404            [
405                "$TC actions flush action tunnel_key",
406                0,
407                1,
408                255
409            ]
410	]
411    },
412    {
413        "id": "68e2",
414        "name": "Add tunnel_key unset action",
415        "category": [
416            "actions",
417            "tunnel_key"
418        ],
419        "setup": [
420            [
421                "$TC actions flush action tunnel_key",
422                0,
423                1,
424                255
425            ]
426        ],
427        "cmdUnderTest": "$TC actions add action tunnel_key unset index 1",
428        "expExitCode": "0",
429        "verifyCmd": "$TC actions get action tunnel_key index 1",
430        "matchPattern": "action order [0-9]+: tunnel_key.*unset.*index 1 ref",
431        "matchCount": "1",
432        "teardown": [
433            "$TC actions flush action tunnel_key"
434        ]
435    },
436    {
437        "id": "6192",
438        "name": "Add tunnel_key unset continue action",
439        "category": [
440            "actions",
441            "tunnel_key"
442        ],
443        "setup": [
444            [
445                "$TC actions flush action tunnel_key",
446                0,
447                1,
448                255
449            ]
450        ],
451        "cmdUnderTest": "$TC actions add action tunnel_key unset continue index 1",
452        "expExitCode": "0",
453        "verifyCmd": "$TC actions get action tunnel_key index 1",
454        "matchPattern": "action order [0-9]+: tunnel_key.*unset continue.*index 1 ref",
455        "matchCount": "1",
456        "teardown": [
457            "$TC actions flush action tunnel_key"
458        ]
459    },
460    {
461        "id": "061d",
462        "name": "Add tunnel_key set continue action with cookie",
463        "category": [
464            "actions",
465            "tunnel_key"
466        ],
467        "setup": [
468            [
469                "$TC actions flush action tunnel_key",
470                0,
471                1,
472                255
473            ]
474        ],
475        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 192.168.10.1 dst_ip 192.168.20.2 id 123 continue index 1 cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
476        "expExitCode": "0",
477        "verifyCmd": "$TC actions get action tunnel_key index 1",
478        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 192.168.10.1.*dst_ip 192.168.20.2.*key_id 123.*csum continue.*index 1.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
479        "matchCount": "1",
480        "teardown": [
481            "$TC actions flush action tunnel_key"
482        ]
483    },
484    {
485        "id": "8acb",
486        "name": "Add tunnel_key set continue action with invalid cookie",
487        "category": [
488            "actions",
489            "tunnel_key"
490        ],
491        "setup": [
492            [
493                "$TC actions flush action tunnel_key",
494                0,
495                1,
496                255
497            ]
498        ],
499        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 192.168.10.1 dst_ip 192.168.20.2 id 123 continue index 1 cookie aa11bb22cc33dd44ee55ff66aa11b1b2777888",
500        "expExitCode": "255",
501        "verifyCmd": "$TC actions get action tunnel_key index 1",
502        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 192.168.10.1.*dst_ip 192.168.20.2.*key_id 123.*csum continue.*index 1.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2777888",
503        "matchCount": "0",
504        "teardown": [
505            [
506                "$TC actions flush action tunnel_key",
507                0,
508                1,
509                255
510            ]
511	]
512    },
513    {
514        "id": "a07e",
515        "name": "Add tunnel_key action with no set/unset command specified",
516        "category": [
517            "actions",
518            "tunnel_key"
519        ],
520        "setup": [
521            [
522                "$TC actions flush action tunnel_key",
523                0,
524                1,
525                255
526            ]
527        ],
528        "cmdUnderTest": "$TC actions add action tunnel_key src_ip 10.10.10.1 dst_ip 20.20.20.2 id 1",
529        "expExitCode": "255",
530        "verifyCmd": "$TC actions get action tunnel_key index 1",
531        "matchPattern": "action order [0-9]+: tunnel_key.*src_ip 10.10.10.1.*dst_ip 20.20.20.2.*key_id 1",
532        "matchCount": "0",
533        "teardown": [
534            [
535                "$TC actions flush action tunnel_key",
536                0,
537                1,
538                255
539            ]
540        ]
541    },
542    {
543        "id": "b227",
544        "name": "Add tunnel_key action with csum option",
545        "category": [
546            "actions",
547            "tunnel_key"
548        ],
549        "setup": [
550            [
551                "$TC actions flush action tunnel_key",
552                0,
553                1,
554                255
555            ]
556        ],
557        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 20.20.20.2 id 1 csum index 99",
558        "expExitCode": "0",
559        "verifyCmd": "$TC actions get action tunnel_key index 99",
560        "matchPattern": "action order [0-9]+: tunnel_key.*src_ip 10.10.10.1.*dst_ip 20.20.20.2.*key_id 1.*csum pipe.*index 99",
561        "matchCount": "1",
562        "teardown": [
563            "$TC actions flush action tunnel_key"
564        ]
565    },
566    {
567        "id": "58a7",
568        "name": "Add tunnel_key action with nocsum option",
569        "category": [
570            "actions",
571            "tunnel_key"
572        ],
573        "setup": [
574            [
575                "$TC actions flush action tunnel_key",
576                0,
577                1,
578                255
579            ]
580        ],
581        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 10.10.10.2 id 7823 nocsum index 234",
582        "expExitCode": "0",
583        "verifyCmd": "$TC actions get action tunnel_key index 234",
584        "matchPattern": "action order [0-9]+: tunnel_key.*src_ip 10.10.10.1.*dst_ip 10.10.10.2.*key_id 7823.*nocsum pipe.*index 234",
585        "matchCount": "1",
586        "teardown": [
587            "$TC actions flush action tunnel_key"
588        ]
589    },
590    {
591        "id": "2575",
592        "name": "Add tunnel_key action with not-supported parameter",
593        "category": [
594            "actions",
595            "tunnel_key"
596        ],
597        "setup": [
598            [
599                "$TC actions flush action tunnel_key",
600                0,
601                1,
602                255
603            ]
604        ],
605        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 10.10.10.2 id 7 foobar 999 index 4",
606        "expExitCode": "255",
607        "verifyCmd": "$TC actions get action tunnel_key index 4",
608        "matchPattern": "action order [0-9]+: tunnel_key.*src_ip 10.10.10.1.*dst_ip 10.10.10.2.*key_id 7.*foobar 999.*index 4",
609        "matchCount": "0",
610        "teardown": [
611            [
612                "$TC actions flush action tunnel_key",
613                0,
614                1,
615                255
616            ]
617        ]
618    },
619    {
620        "id": "7a88",
621        "name": "Add tunnel_key action with cookie parameter",
622        "category": [
623            "actions",
624            "tunnel_key"
625        ],
626        "setup": [
627            [
628                "$TC actions flush action tunnel_key",
629                0,
630                1,
631                255
632            ]
633        ],
634        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 10.10.10.2 id 7 index 4 cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
635        "expExitCode": "0",
636        "verifyCmd": "$TC actions get action tunnel_key index 4",
637        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 10.10.10.1.*dst_ip 10.10.10.2.*key_id 7.*dst_port 0.*csum pipe.*index 4 ref.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
638        "matchCount": "1",
639        "teardown": [
640            "$TC actions flush action tunnel_key"
641        ]
642    },
643    {
644        "id": "4f20",
645        "name": "Add tunnel_key action with a single geneve option parameter",
646        "category": [
647            "actions",
648            "tunnel_key"
649        ],
650        "setup": [
651            [
652                "$TC actions flush action tunnel_key",
653                0,
654                1,
655                255
656            ]
657        ],
658        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 42 dst_port 6081 geneve_opts 0102:80:00880022 index 1",
659        "expExitCode": "0",
660        "verifyCmd": "$TC actions get action tunnel_key index 1",
661        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 42.*dst_port 6081.*geneve_opt 0102:80:00880022.*index 1",
662        "matchCount": "1",
663        "teardown": [
664            "$TC actions flush action tunnel_key"
665        ]
666    },
667    {
668        "id": "e33d",
669        "name": "Add tunnel_key action with multiple geneve options parameter",
670        "category": [
671            "actions",
672            "tunnel_key"
673        ],
674        "setup": [
675            [
676                "$TC actions flush action tunnel_key",
677                0,
678                1,
679                255
680            ]
681        ],
682        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 42 dst_port 6081 geneve_opts 0102:80:00880022,0408:42:0040007611223344,0111:02:1020304011223344 index 1",
683        "expExitCode": "0",
684        "verifyCmd": "$TC actions get action tunnel_key index 1",
685        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 42.*dst_port 6081.*geneve_opt 0102:80:00880022,0408:42:0040007611223344,0111:02:1020304011223344.*index 1",
686        "matchCount": "1",
687        "teardown": [
688            "$TC actions flush action tunnel_key"
689        ]
690    },
691    {
692        "id": "0778",
693        "name": "Add tunnel_key action with invalid class geneve option parameter",
694        "category": [
695            "actions",
696            "tunnel_key"
697        ],
698        "setup": [
699            [
700                "$TC actions flush action tunnel_key",
701                0,
702                1,
703                255
704            ]
705        ],
706        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 42 dst_port 6081 geneve_opts 824212:80:00880022 index 1",
707        "expExitCode": "255",
708        "verifyCmd": "$TC actions get action tunnel_key index 1",
709        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 42.*dst_port 6081.*geneve_opt 824212:80:00880022.*index 1",
710        "matchCount": "0",
711        "teardown": [
712            "$TC actions flush action tunnel_key"
713        ]
714    },
715    {
716        "id": "4ae8",
717        "name": "Add tunnel_key action with invalid type geneve option parameter",
718        "category": [
719            "actions",
720            "tunnel_key"
721        ],
722        "setup": [
723            [
724                "$TC actions flush action tunnel_key",
725                0,
726                1,
727                255
728            ]
729        ],
730        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 42 dst_port 6081 geneve_opts 0102:4224:00880022 index 1",
731        "expExitCode": "255",
732        "verifyCmd": "$TC actions get action tunnel_key index 1",
733        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 42.*dst_port 6081.*geneve_opt 0102:4224:00880022.*index 1",
734        "matchCount": "0",
735        "teardown": [
736            "$TC actions flush action tunnel_key"
737        ]
738    },
739    {
740        "id": "4039",
741        "name": "Add tunnel_key action with short data length geneve option parameter",
742        "category": [
743            "actions",
744            "tunnel_key"
745        ],
746        "setup": [
747            [
748                "$TC actions flush action tunnel_key",
749                0,
750                1,
751                255
752            ]
753        ],
754        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 42 dst_port 6081 geneve_opts 0102:80:4288 index 1",
755        "expExitCode": "255",
756        "verifyCmd": "$TC actions get action tunnel_key index 1",
757        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 42.*dst_port 6081.*geneve_opt 0102:80:4288.*index 1",
758        "matchCount": "0",
759        "teardown": [
760            "$TC actions flush action tunnel_key"
761        ]
762    },
763    {
764        "id": "26a6",
765        "name": "Add tunnel_key action with non-multiple of 4 data length geneve option parameter",
766        "category": [
767            "actions",
768            "tunnel_key"
769        ],
770        "setup": [
771            [
772                "$TC actions flush action tunnel_key",
773                0,
774                1,
775                255
776            ]
777        ],
778        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 42 dst_port 6081 geneve_opts 0102:80:4288428822 index 1",
779        "expExitCode": "255",
780        "verifyCmd": "$TC actions get action tunnel_key index 1",
781        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 42.*dst_port 6081.*geneve_opt 0102:80:4288428822.*index 1",
782        "matchCount": "0",
783        "teardown": [
784            "$TC actions flush action tunnel_key"
785        ]
786    },
787    {
788        "id": "f44d",
789        "name": "Add tunnel_key action with incomplete geneve options parameter",
790        "category": [
791            "actions",
792            "tunnel_key"
793        ],
794        "setup": [
795            [
796                "$TC actions flush action tunnel_key",
797                0,
798                1,
799                255
800            ]
801        ],
802        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 42 dst_port 6081 geneve_opts 0102:80:00880022,0408:42: index 1",
803        "expExitCode": "255",
804        "verifyCmd": "$TC actions get action tunnel_key index 1",
805        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*key_id 42.*dst_port 6081.*geneve_opt 0102:80:00880022,0408:42:.*index 1",
806        "matchCount": "0",
807        "teardown": [
808            "$TC actions flush action tunnel_key"
809        ]
810    },
811    {
812        "id": "7afc",
813        "name": "Replace tunnel_key set action with all parameters",
814        "category": [
815            "actions",
816            "tunnel_key"
817        ],
818        "setup": [
819            [
820                "$TC actions flush action tunnel_key",
821                0,
822                1,
823                255
824            ],
825            "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 20.20.20.2 dst_port 3128 csum id 1 index 1"
826        ],
827        "cmdUnderTest": "$TC actions replace action tunnel_key set src_ip 11.11.11.1 dst_ip 21.21.21.2 dst_port 3129 nocsum id 11 index 1",
828        "expExitCode": "0",
829        "verifyCmd": "$TC actions get action tunnel_key index 1",
830        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 11.11.11.1.*dst_ip 21.21.21.2.*key_id 11.*dst_port 3129.*nocsum pipe.*index 1",
831        "matchCount": "1",
832        "teardown": [
833            "$TC actions flush action tunnel_key"
834        ]
835    },
836    {
837        "id": "364d",
838        "name": "Replace tunnel_key set action with all parameters and cookie",
839        "category": [
840            "actions",
841            "tunnel_key"
842        ],
843        "setup": [
844            [
845                "$TC actions flush action tunnel_key",
846                0,
847                1,
848                255
849            ],
850            "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 20.20.20.2 dst_port 3128 nocsum id 1 index 1 cookie aabbccddeeff112233445566778800a"
851        ],
852        "cmdUnderTest": "$TC actions replace action tunnel_key set src_ip 11.11.11.1 dst_ip 21.21.21.2 dst_port 3129 id 11 csum reclassify index 1 cookie a1b1c1d1",
853        "expExitCode": "0",
854        "verifyCmd": "$TC actions get action tunnel_key index 1",
855        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 11.11.11.1.*dst_ip 21.21.21.2.*key_id 11.*dst_port 3129.*csum reclassify.*index 1.*cookie a1b1c1d1",
856        "matchCount": "1",
857        "teardown": [
858            "$TC actions flush action tunnel_key"
859        ]
860    },
861    {
862        "id": "937c",
863        "name": "Fetch all existing tunnel_key actions",
864        "category": [
865            "actions",
866            "tunnel_key"
867        ],
868        "setup": [
869            [
870                "$TC actions flush action tunnel_key",
871                0,
872                1,
873                255
874            ],
875            "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 20.20.20.2 dst_port 3128 nocsum id 1 pipe index 1",
876            "$TC actions add action tunnel_key set src_ip 11.10.10.1 dst_ip 21.20.20.2 dst_port 3129 csum id 2 jump 10 index 2",
877            "$TC actions add action tunnel_key set src_ip 12.10.10.1 dst_ip 22.20.20.2 dst_port 3130 csum id 3 pass index 3",
878            "$TC actions add action tunnel_key set src_ip 13.10.10.1 dst_ip 23.20.20.2 dst_port 3131 nocsum id 4 continue index 4"
879        ],
880        "cmdUnderTest": "$TC actions list action tunnel_key",
881        "expExitCode": "0",
882        "verifyCmd": "$TC actions list action tunnel_key",
883        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 10.10.10.1.*dst_ip 20.20.20.2.*key_id 1.*dst_port 3128.*nocsum pipe.*index 1.*set.*src_ip 11.10.10.1.*dst_ip 21.20.20.2.*key_id 2.*dst_port 3129.*csum jump 10.*index 2.*set.*src_ip 12.10.10.1.*dst_ip 22.20.20.2.*key_id 3.*dst_port 3130.*csum pass.*index 3.*set.*src_ip 13.10.10.1.*dst_ip 23.20.20.2.*key_id 4.*dst_port 3131.*nocsum continue.*index 4",
884        "matchCount": "1",
885        "teardown": [
886            "$TC actions flush action tunnel_key"
887        ]
888    },
889    {
890        "id": "6783",
891        "name": "Flush all existing tunnel_key actions",
892        "category": [
893            "actions",
894            "tunnel_key"
895        ],
896        "setup": [
897            [
898                "$TC actions flush action tunnel_key",
899                0,
900                1,
901                255
902            ],
903            "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 20.20.20.2 dst_port 3128 nocsum id 1 pipe index 1",
904            "$TC actions add action tunnel_key set src_ip 11.10.10.1 dst_ip 21.20.20.2 dst_port 3129 csum id 2 reclassify index 2",
905            "$TC actions add action tunnel_key set src_ip 12.10.10.1 dst_ip 22.20.20.2 dst_port 3130 csum id 3 pass index 3",
906            "$TC actions add action tunnel_key set src_ip 13.10.10.1 dst_ip 23.20.20.2 dst_port 3131 nocsum id 4 continue index 4"
907        ],
908        "cmdUnderTest": "$TC actions flush action tunnel_key",
909        "expExitCode": "0",
910        "verifyCmd": "$TC actions list action tunnel_key",
911        "matchPattern": "action order [0-9]+:.*",
912        "matchCount": "0",
913        "teardown": [
914	    "$TC actions flush action tunnel_key"
915	]
916    }
917]
918