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": "a5e0",
86        "name": "Add tunnel_key set action with invalid src_ip 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 300.168.100.1 dst_ip 192.168.200.1 id 7 index 1",
100        "expExitCode": "1",
101        "verifyCmd": "$TC actions get action tunnel_key index 1",
102        "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",
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": "eaa8",
115        "name": "Add tunnel_key set action with invalid dst_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 192.168.100.1 dst_ip 192.168.800.1 id 10 index 11",
129        "expExitCode": "1",
130        "verifyCmd": "$TC actions get action tunnel_key index 11",
131        "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",
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": "3b09",
144        "name": "Add tunnel_key set action with invalid id 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 1.1.1.1 dst_ip 2.2.2.2 id 112233445566778899 index 1",
158        "expExitCode": "255",
159        "verifyCmd": "$TC actions get action tunnel_key index 1",
160        "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",
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": "9625",
173        "name": "Add tunnel_key set action with invalid dst_port 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 11 dst_port 998877 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 11.*dst_port 998877.*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": "05af",
202        "name": "Add tunnel_key set action with optional 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 192.168.100.1 dst_ip 192.168.200.1 id 789 dst_port 4000 index 10",
216        "expExitCode": "0",
217        "verifyCmd": "$TC actions get action tunnel_key index 10",
218        "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",
219        "matchCount": "1",
220        "teardown": [
221            "$TC actions flush action tunnel_key"
222        ]
223    },
224    {
225        "id": "da80",
226        "name": "Add tunnel_key set action with index at 32-bit maximum",
227        "category": [
228            "actions",
229            "tunnel_key"
230        ],
231        "setup": [
232            [
233                "$TC actions flush action tunnel_key",
234                0,
235                1,
236                255
237            ]
238        ],
239        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 11 index 4294967295",
240        "expExitCode": "0",
241        "verifyCmd": "$TC actions get action tunnel_key index 4294967295",
242        "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",
243        "matchCount": "1",
244        "teardown": [
245            "$TC actions flush action tunnel_key"
246        ]
247    },
248    {
249        "id": "d407",
250        "name": "Add tunnel_key set action with index exceeding 32-bit maximum",
251        "category": [
252            "actions",
253            "tunnel_key"
254        ],
255        "setup": [
256            [
257                "$TC actions flush action tunnel_key",
258                0,
259                1,
260                255
261            ]
262        ],
263        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 11 index 4294967295678",
264        "expExitCode": "255",
265        "verifyCmd": "$TC actions get action tunnel_key index 4294967295678",
266        "matchPattern": "action order [0-9]+: tunnel_key set.*index 4294967295678 ref",
267        "matchCount": "0",
268        "teardown": [
269            [
270                "$TC actions flush action tunnel_key",
271                0,
272                1,
273                255
274            ]
275        ]
276    },
277    {
278        "id": "5cba",
279        "name": "Add tunnel_key set action with id value at 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 4294967295 index 1",
293        "expExitCode": "0",
294        "verifyCmd": "$TC actions get action tunnel_key index 1",
295        "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",
296        "matchCount": "1",
297        "teardown": [
298            "$TC actions flush action tunnel_key"
299        ]
300    },
301    {
302        "id": "e84a",
303        "name": "Add tunnel_key set action with id value exceeding 32-bit maximum",
304        "category": [
305            "actions",
306            "tunnel_key"
307        ],
308        "setup": [
309            [
310                "$TC actions flush action tunnel_key",
311                0,
312                1,
313                255
314            ]
315        ],
316        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 id 42949672955 index 1",
317        "expExitCode": "255",
318        "verifyCmd": "$TC actions get action tunnel_key index 4294967295",
319        "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",
320        "matchCount": "0",
321        "teardown": [
322            [
323                "$TC actions flush action tunnel_key",
324                0,
325                1,
326                255
327            ]
328	]
329    },
330    {
331        "id": "9c19",
332        "name": "Add tunnel_key set action with dst_port value at 16-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 429 dst_port 65535 index 1",
346        "expExitCode": "0",
347        "verifyCmd": "$TC actions get action tunnel_key index 1",
348        "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",
349        "matchCount": "1",
350        "teardown": [
351            "$TC actions flush action tunnel_key"
352        ]
353    },
354    {
355        "id": "3bd9",
356        "name": "Add tunnel_key set action with dst_port value exceeding 16-bit maximum",
357        "category": [
358            "actions",
359            "tunnel_key"
360        ],
361        "setup": [
362            [
363                "$TC actions flush action tunnel_key",
364                0,
365                1,
366                255
367            ]
368        ],
369        "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",
370        "expExitCode": "255",
371        "verifyCmd": "$TC actions get action tunnel_key index 1",
372        "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",
373        "matchCount": "0",
374        "teardown": [
375            [
376                "$TC actions flush action tunnel_key",
377                0,
378                1,
379                255
380            ]
381	]
382    },
383    {
384        "id": "68e2",
385        "name": "Add tunnel_key unset action",
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 unset index 1",
399        "expExitCode": "0",
400        "verifyCmd": "$TC actions get action tunnel_key index 1",
401        "matchPattern": "action order [0-9]+: tunnel_key.*unset.*index 1 ref",
402        "matchCount": "1",
403        "teardown": [
404            "$TC actions flush action tunnel_key"
405        ]
406    },
407    {
408        "id": "6192",
409        "name": "Add tunnel_key unset continue action",
410        "category": [
411            "actions",
412            "tunnel_key"
413        ],
414        "setup": [
415            [
416                "$TC actions flush action tunnel_key",
417                0,
418                1,
419                255
420            ]
421        ],
422        "cmdUnderTest": "$TC actions add action tunnel_key unset continue index 1",
423        "expExitCode": "0",
424        "verifyCmd": "$TC actions get action tunnel_key index 1",
425        "matchPattern": "action order [0-9]+: tunnel_key.*unset continue.*index 1 ref",
426        "matchCount": "1",
427        "teardown": [
428            "$TC actions flush action tunnel_key"
429        ]
430    },
431    {
432        "id": "061d",
433        "name": "Add tunnel_key set continue action with cookie",
434        "category": [
435            "actions",
436            "tunnel_key"
437        ],
438        "setup": [
439            [
440                "$TC actions flush action tunnel_key",
441                0,
442                1,
443                255
444            ]
445        ],
446        "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",
447        "expExitCode": "0",
448        "verifyCmd": "$TC actions get action tunnel_key index 1",
449        "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",
450        "matchCount": "1",
451        "teardown": [
452            "$TC actions flush action tunnel_key"
453        ]
454    },
455    {
456        "id": "8acb",
457        "name": "Add tunnel_key set continue action with invalid cookie",
458        "category": [
459            "actions",
460            "tunnel_key"
461        ],
462        "setup": [
463            [
464                "$TC actions flush action tunnel_key",
465                0,
466                1,
467                255
468            ]
469        ],
470        "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",
471        "expExitCode": "255",
472        "verifyCmd": "$TC actions get action tunnel_key index 1",
473        "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",
474        "matchCount": "0",
475        "teardown": [
476            [
477                "$TC actions flush action tunnel_key",
478                0,
479                1,
480                255
481            ]
482	]
483    },
484    {
485        "id": "a07e",
486        "name": "Add tunnel_key action with no set/unset command specified",
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 src_ip 10.10.10.1 dst_ip 20.20.20.2 id 1",
500        "expExitCode": "255",
501        "verifyCmd": "$TC actions get action tunnel_key index 1",
502        "matchPattern": "action order [0-9]+: tunnel_key.*src_ip 10.10.10.1.*dst_ip 20.20.20.2.*key_id 1",
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": "b227",
515        "name": "Add tunnel_key action with csum option",
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 set src_ip 10.10.10.1 dst_ip 20.20.20.2 id 1 csum index 99",
529        "expExitCode": "0",
530        "verifyCmd": "$TC actions get action tunnel_key index 99",
531        "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",
532        "matchCount": "1",
533        "teardown": [
534            "$TC actions flush action tunnel_key"
535        ]
536    },
537    {
538        "id": "58a7",
539        "name": "Add tunnel_key action with nocsum option",
540        "category": [
541            "actions",
542            "tunnel_key"
543        ],
544        "setup": [
545            [
546                "$TC actions flush action tunnel_key",
547                0,
548                1,
549                255
550            ]
551        ],
552        "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",
553        "expExitCode": "0",
554        "verifyCmd": "$TC actions get action tunnel_key index 234",
555        "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",
556        "matchCount": "1",
557        "teardown": [
558            "$TC actions flush action tunnel_key"
559        ]
560    },
561    {
562        "id": "2575",
563        "name": "Add tunnel_key action with not-supported parameter",
564        "category": [
565            "actions",
566            "tunnel_key"
567        ],
568        "setup": [
569            [
570                "$TC actions flush action tunnel_key",
571                0,
572                1,
573                255
574            ]
575        ],
576        "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",
577        "expExitCode": "255",
578        "verifyCmd": "$TC actions get action tunnel_key index 4",
579        "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",
580        "matchCount": "0",
581        "teardown": [
582            [
583                "$TC actions flush action tunnel_key",
584                0,
585                1,
586                255
587            ]
588        ]
589    },
590    {
591        "id": "7a88",
592        "name": "Add tunnel_key action with cookie 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 index 4 cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
606        "expExitCode": "0",
607        "verifyCmd": "$TC actions get action tunnel_key index 4",
608        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 10.10.10.1.*dst_ip 10.10.10.2.*key_id 7.*csum pipe.*index 4 ref.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
609        "matchCount": "1",
610        "teardown": [
611            "$TC actions flush action tunnel_key"
612        ]
613    },
614    {
615        "id": "4f20",
616        "name": "Add tunnel_key action with a single geneve option parameter",
617        "category": [
618            "actions",
619            "tunnel_key"
620        ],
621        "setup": [
622            [
623                "$TC actions flush action tunnel_key",
624                0,
625                1,
626                255
627            ]
628        ],
629        "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",
630        "expExitCode": "0",
631        "verifyCmd": "$TC actions get action tunnel_key index 1",
632        "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[s]? 0102:80:00880022.*index 1",
633        "matchCount": "1",
634        "teardown": [
635            "$TC actions flush action tunnel_key"
636        ]
637    },
638    {
639        "id": "e33d",
640        "name": "Add tunnel_key action with multiple geneve options parameter",
641        "category": [
642            "actions",
643            "tunnel_key"
644        ],
645        "setup": [
646            [
647                "$TC actions flush action tunnel_key",
648                0,
649                1,
650                255
651            ]
652        ],
653        "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",
654        "expExitCode": "0",
655        "verifyCmd": "$TC actions get action tunnel_key index 1",
656        "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[s]? 0102:80:00880022,0408:42:0040007611223344,0111:02:1020304011223344.*index 1",
657        "matchCount": "1",
658        "teardown": [
659            "$TC actions flush action tunnel_key"
660        ]
661    },
662    {
663        "id": "0778",
664        "name": "Add tunnel_key action with invalid class geneve option parameter",
665        "category": [
666            "actions",
667            "tunnel_key"
668        ],
669        "setup": [
670            [
671                "$TC actions flush action tunnel_key",
672                0,
673                1,
674                255
675            ]
676        ],
677        "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",
678        "expExitCode": "255",
679        "verifyCmd": "$TC actions get action tunnel_key index 1",
680        "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[s]? 824212:80:00880022.*index 1",
681        "matchCount": "0",
682        "teardown": [
683            "$TC actions flush action tunnel_key"
684        ]
685    },
686    {
687        "id": "4ae8",
688        "name": "Add tunnel_key action with invalid type geneve option parameter",
689        "category": [
690            "actions",
691            "tunnel_key"
692        ],
693        "setup": [
694            [
695                "$TC actions flush action tunnel_key",
696                0,
697                1,
698                255
699            ]
700        ],
701        "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",
702        "expExitCode": "255",
703        "verifyCmd": "$TC actions get action tunnel_key index 1",
704        "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[s]? 0102:4224:00880022.*index 1",
705        "matchCount": "0",
706        "teardown": [
707            "$TC actions flush action tunnel_key"
708        ]
709    },
710    {
711        "id": "4039",
712        "name": "Add tunnel_key action with short data length geneve option parameter",
713        "category": [
714            "actions",
715            "tunnel_key"
716        ],
717        "setup": [
718            [
719                "$TC actions flush action tunnel_key",
720                0,
721                1,
722                255
723            ]
724        ],
725        "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",
726        "expExitCode": "255",
727        "verifyCmd": "$TC actions get action tunnel_key index 1",
728        "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[s]? 0102:80:4288.*index 1",
729        "matchCount": "0",
730        "teardown": [
731            "$TC actions flush action tunnel_key"
732        ]
733    },
734    {
735        "id": "26a6",
736        "name": "Add tunnel_key action with non-multiple of 4 data length geneve option parameter",
737        "category": [
738            "actions",
739            "tunnel_key"
740        ],
741        "setup": [
742            [
743                "$TC actions flush action tunnel_key",
744                0,
745                1,
746                255
747            ]
748        ],
749        "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",
750        "expExitCode": "255",
751        "verifyCmd": "$TC actions get action tunnel_key index 1",
752        "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[s]? 0102:80:4288428822.*index 1",
753        "matchCount": "0",
754        "teardown": [
755            "$TC actions flush action tunnel_key"
756        ]
757    },
758    {
759        "id": "f44d",
760        "name": "Add tunnel_key action with incomplete geneve options parameter",
761        "category": [
762            "actions",
763            "tunnel_key"
764        ],
765        "setup": [
766            [
767                "$TC actions flush action tunnel_key",
768                0,
769                1,
770                255
771            ]
772        ],
773        "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",
774        "expExitCode": "255",
775        "verifyCmd": "$TC actions get action tunnel_key index 1",
776        "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[s]? 0102:80:00880022,0408:42:.*index 1",
777        "matchCount": "0",
778        "teardown": [
779            "$TC actions flush action tunnel_key"
780        ]
781    },
782    {
783        "id": "7afc",
784        "name": "Replace tunnel_key set action with all parameters",
785        "category": [
786            "actions",
787            "tunnel_key"
788        ],
789        "setup": [
790            [
791                "$TC actions flush action tunnel_key",
792                0,
793                1,
794                255
795            ],
796            "$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"
797        ],
798        "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",
799        "expExitCode": "0",
800        "verifyCmd": "$TC actions get action tunnel_key index 1",
801        "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",
802        "matchCount": "1",
803        "teardown": [
804            "$TC actions flush action tunnel_key"
805        ]
806    },
807    {
808        "id": "364d",
809        "name": "Replace tunnel_key set action with all parameters and cookie",
810        "category": [
811            "actions",
812            "tunnel_key"
813        ],
814        "setup": [
815            [
816                "$TC actions flush action tunnel_key",
817                0,
818                1,
819                255
820            ],
821            "$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 123456"
822        ],
823        "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 123456",
824        "expExitCode": "0",
825        "verifyCmd": "$TC actions get action tunnel_key index 1",
826        "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 123456",
827        "matchCount": "1",
828        "teardown": [
829            "$TC actions flush action tunnel_key"
830        ]
831    },
832    {
833        "id": "937c",
834        "name": "Fetch all existing tunnel_key actions",
835        "category": [
836            "actions",
837            "tunnel_key"
838        ],
839        "setup": [
840            [
841                "$TC actions flush action tunnel_key",
842                0,
843                1,
844                255
845            ],
846            "$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",
847            "$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",
848            "$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",
849            "$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"
850        ],
851        "cmdUnderTest": "$TC actions list action tunnel_key",
852        "expExitCode": "0",
853        "verifyCmd": "$TC actions list action tunnel_key",
854        "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",
855        "matchCount": "1",
856        "teardown": [
857            "$TC actions flush action tunnel_key"
858        ]
859    },
860    {
861        "id": "6783",
862        "name": "Flush all existing tunnel_key actions",
863        "category": [
864            "actions",
865            "tunnel_key"
866        ],
867        "setup": [
868            [
869                "$TC actions flush action tunnel_key",
870                0,
871                1,
872                255
873            ],
874            "$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",
875            "$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",
876            "$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",
877            "$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"
878        ],
879        "cmdUnderTest": "$TC actions flush action tunnel_key",
880        "expExitCode": "0",
881        "verifyCmd": "$TC actions list action tunnel_key",
882        "matchPattern": "action order [0-9]+:.*",
883        "matchCount": "0",
884        "teardown": [
885	    "$TC actions flush action tunnel_key"
886	]
887    },
888    {
889        "id": "8242",
890        "name": "Replace tunnel_key set action with invalid goto chain",
891        "category": [
892            "actions",
893            "tunnel_key"
894        ],
895        "setup": [
896            [
897                "$TC actions flush action tunnel_key",
898                0,
899                1,
900                255
901            ],
902            "$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 pass index 90"
903        ],
904        "cmdUnderTest": "$TC actions replace action tunnel_key set src_ip 10.10.10.2 dst_ip 20.20.20.1 dst_port 3129 id 2 csum goto chain 42 index 90 cookie c1a0c1a0",
905        "expExitCode": "255",
906        "verifyCmd": "$TC actions get action tunnel_key index 90",
907        "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.*csum pass.*index 90 ref",
908        "matchCount": "1",
909        "teardown": [
910            "$TC actions flush action tunnel_key"
911        ]
912    },
913    {
914        "id": "0cd2",
915        "name": "Add tunnel_key set action with no_percpu flag",
916        "category": [
917            "actions",
918            "tunnel_key"
919        ],
920        "setup": [
921            [
922                "$TC actions flush action tunnel_key",
923                0,
924                1,
925                255
926            ]
927        ],
928        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 20.20.20.2 id 1 no_percpu",
929        "expExitCode": "0",
930        "verifyCmd": "$TC actions list action tunnel_key",
931        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 10.10.10.1.*dst_ip 20.20.20.2.*key_id 1.*no_percpu",
932        "matchCount": "1",
933        "teardown": [
934            "$TC actions flush action tunnel_key"
935        ]
936    },
937    {
938        "id": "3671",
939        "name": "Delete tunnel_key set action with valid index",
940	"category": [
941            "actions",
942            "tunnel_key"
943        ],
944        "setup": [
945            [
946                "$TC actions flush action tunnel_key",
947                0,
948                1,
949                255
950            ],
951	    "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 index 1"
952        ],
953        "cmdUnderTest": "$TC actions del action tunnel_key index 1",
954        "expExitCode": "0",
955        "verifyCmd": "$TC actions list action tunnel_key",
956        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*index 1",
957        "matchCount": "0",
958        "teardown": [
959            "$TC actions flush action tunnel_key"
960        ]
961    },
962    {
963        "id": "8597",
964        "name": "Delete tunnel_key set action with invalid index",
965        "category": [
966            "actions",
967            "tunnel_key"
968        ],
969        "setup": [
970            [
971                "$TC actions flush action tunnel_key",
972                0,
973                1,
974                255
975            ],
976            "$TC actions add action tunnel_key set src_ip 1.1.1.1 dst_ip 2.2.2.2 index 1"
977        ],
978        "cmdUnderTest": "$TC actions del action tunnel_key index 10",
979        "expExitCode": "255",
980        "verifyCmd": "$TC actions list action tunnel_key",
981        "matchPattern": "action order [0-9]+: tunnel_key.*set.*src_ip 1.1.1.1.*dst_ip 2.2.2.2.*index 1",
982        "matchCount": "1",
983        "teardown": [
984            "$TC actions flush action tunnel_key"
985        ]
986    },
987    {
988        "id": "6bda",
989        "name": "Add tunnel_key action with nofrag option",
990        "category": [
991            "actions",
992            "tunnel_key"
993        ],
994        "dependsOn": "$TC actions add action tunnel_key help 2>&1 | grep -q nofrag",
995        "setup": [
996            [
997                "$TC action flush action tunnel_key",
998                0,
999                1,
1000                255
1001            ]
1002        ],
1003        "cmdUnderTest": "$TC actions add action tunnel_key set src_ip 10.10.10.1 dst_ip 10.10.10.2 id 1111 nofrag index 222",
1004        "expExitCode": "0",
1005        "verifyCmd": "$TC actions get action tunnel_key index 222",
1006        "matchPattern": "action order [0-9]+: tunnel_key.*src_ip 10.10.10.1.*dst_ip 10.10.10.2.*key_id 1111.*csum.*nofrag pipe.*index 222",
1007        "matchCount": "1",
1008        "teardown": [
1009            "$TC actions flush action tunnel_key"
1010        ]
1011    }
1012]
1013