GNU Linux-libre 4.19.264-gnu1
[releases.git] / tools / testing / selftests / tc-testing / tc-tests / filters / fw.json
1 [
2     {
3         "id": "901f",
4         "name": "Add fw filter with prio at 32-bit maxixum",
5         "category": [
6             "filter",
7             "fw"
8         ],
9         "setup": [
10             "$TC qdisc add dev $DEV1 ingress"
11         ],
12         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 65535 fw action ok",
13         "expExitCode": "0",
14         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 65535 protocol all fw",
15         "matchPattern": "pref 65535 fw.*handle 0x1.*gact action pass",
16         "matchCount": "1",
17         "teardown": [
18             "$TC qdisc del dev $DEV1 ingress"
19         ]
20     },
21     {
22         "id": "51e2",
23         "name": "Add fw filter with prio exceeding 32-bit maxixum",
24         "category": [
25             "filter",
26             "fw"
27         ],
28         "setup": [
29             "$TC qdisc add dev $DEV1 ingress"
30         ],
31         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 65536 fw action ok",
32         "expExitCode": "255",
33         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 65536 protocol all fw",
34         "matchPattern": "pref 65536 fw.*handle 0x1.*gact action pass",
35         "matchCount": "0",
36         "teardown": [
37             "$TC qdisc del dev $DEV1 ingress"
38         ]
39     },
40     {
41         "id": "d987",
42         "name": "Add fw filter with action ok",
43         "category": [
44             "filter",
45             "fw"
46         ],
47         "setup": [
48             "$TC qdisc add dev $DEV1 ingress"
49         ],
50         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action ok",
51         "expExitCode": "0",
52         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
53         "matchPattern": "handle 0x1.*gact action pass",
54         "matchCount": "1",
55         "teardown": [
56             "$TC qdisc del dev $DEV1 ingress"
57         ]
58     },
59     {
60         "id": "affe",
61         "name": "Add fw filter with action continue",
62         "category": [
63             "filter",
64             "fw"
65         ],
66         "setup": [
67             "$TC qdisc add dev $DEV1 ingress"
68         ],
69         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action continue",
70         "expExitCode": "0",
71         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
72         "matchPattern": "handle 0x1.*gact action continue",
73         "matchCount": "1",
74         "teardown": [
75             "$TC qdisc del dev $DEV1 ingress"
76         ]
77     },
78     {
79         "id": "28bc",
80         "name": "Add fw filter with action pipe",
81         "category": [
82             "filter",
83             "fw"
84         ],
85         "setup": [
86             "$TC qdisc add dev $DEV1 ingress"
87         ],
88         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action pipe",
89         "expExitCode": "0",
90         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
91         "matchPattern": "handle 0x1.*gact action pipe",
92         "matchCount": "1",
93         "teardown": [
94             "$TC qdisc del dev $DEV1 ingress"
95         ]
96     },
97     {
98         "id": "8da2",
99         "name": "Add fw filter with action drop",
100         "category": [
101             "filter",
102             "fw"
103         ],
104         "setup": [
105             "$TC qdisc add dev $DEV1 ingress"
106         ],
107         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action drop",
108         "expExitCode": "0",
109         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 protocol all prio 1 fw",
110         "matchPattern": "handle 0x1.*gact action drop",
111         "matchCount": "1",
112         "teardown": [
113             "$TC qdisc del dev $DEV1 ingress"
114         ]
115     },
116     {
117         "id": "9436",
118         "name": "Add fw filter with action reclassify",
119         "category": [
120             "filter",
121             "fw"
122         ],
123         "setup": [
124             "$TC qdisc add dev $DEV1 ingress"
125         ],
126         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action reclassify",
127         "expExitCode": "0",
128         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
129         "matchPattern": "handle 0x1.*gact action reclassify",
130         "matchCount": "1",
131         "teardown": [
132             "$TC qdisc del dev $DEV1 ingress"
133         ]
134     },
135     {
136         "id": "95bb",
137         "name": "Add fw filter with action jump 10",
138         "category": [
139             "filter",
140             "fw"
141         ],
142         "setup": [
143             "$TC qdisc add dev $DEV1 ingress"
144         ],
145         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action jump 10",
146         "expExitCode": "0",
147         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
148         "matchPattern": "handle 0x1.*gact action jump 10",
149         "matchCount": "1",
150         "teardown": [
151             "$TC qdisc del dev $DEV1 ingress"
152         ]
153     },
154     {
155         "id": "3d74",
156         "name": "Add fw filter with action goto chain 5",
157         "category": [
158             "filter",
159             "fw"
160         ],
161         "setup": [
162             "$TC qdisc add dev $DEV1 ingress"
163         ],
164         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action goto chain 5",
165         "expExitCode": "0",
166         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
167         "matchPattern": "handle 0x1.*gact action goto chain 5",
168         "matchCount": "1",
169         "teardown": [
170             "$TC qdisc del dev $DEV1 ingress"
171         ]
172     },
173     {
174         "id": "eb8f",
175         "name": "Add fw filter with invalid action",
176         "category": [
177             "filter",
178             "fw"
179         ],
180         "setup": [
181             "$TC qdisc add dev $DEV1 ingress"
182         ],
183         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action pump",
184         "expExitCode": "255",
185         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
186         "matchPattern": "handle 0x1.*gact action pump",
187         "matchCount": "0",
188         "teardown": [
189             "$TC qdisc del dev $DEV1 ingress"
190         ]
191     },
192     {
193         "id": "6a79",
194         "name": "Add fw filter with missing mandatory action",
195         "category": [
196             "filter",
197             "fw"
198         ],
199         "setup": [
200             "$TC qdisc add dev $DEV1 ingress"
201         ],
202         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw",
203         "expExitCode": "2",
204         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
205         "matchPattern": "filter protocol all pref [0-9]+ fw.*handle 0x1",
206         "matchCount": "0",
207         "teardown": [
208             "$TC qdisc del dev $DEV1 ingress"
209         ]
210     },
211     {
212         "id": "8298",
213         "name": "Add fw filter with cookie",
214         "category": [
215             "filter",
216             "fw"
217         ],
218         "setup": [
219             "$TC qdisc add dev $DEV1 ingress"
220         ],
221         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 2 fw action pipe cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
222         "expExitCode": "0",
223         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 2 protocol all fw",
224         "matchPattern": "pref 2 fw.*handle 0x1.*gact action pipe.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
225         "matchCount": "1",
226         "teardown": [
227             "$TC qdisc del dev $DEV1 ingress"
228         ]
229     },
230     {
231         "id": "a88c",
232         "name": "Add fw filter with invalid cookie",
233         "category": [
234             "filter",
235             "fw"
236         ],
237         "setup": [
238             "$TC qdisc add dev $DEV1 ingress"
239         ],
240         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 2 fw action continue cookie aa11bb22cc33dd44ee55ff66aa11b1b2777888",
241         "expExitCode": "255",
242         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 2 protocol all fw",
243         "matchPattern": "pref 2 fw.*handle 0x1.*gact action continue.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2777888",
244         "matchCount": "0",
245         "teardown": [
246             "$TC qdisc del dev $DEV1 ingress"
247         ]
248     },
249     {
250         "id": "10f6",
251         "name": "Add fw filter with handle in hex",
252         "category": [
253             "filter",
254             "fw"
255         ],
256         "setup": [
257             "$TC qdisc add dev $DEV1 ingress"
258         ],
259         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0xa1b2ff prio 1 fw action ok",
260         "expExitCode": "0",
261         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0xa1b2ff prio 1 protocol all fw",
262         "matchPattern": "fw.*handle 0xa1b2ff.*gact action pass",
263         "matchCount": "1",
264         "teardown": [
265             "$TC qdisc del dev $DEV1 ingress"
266         ]
267     },
268     {
269         "id": "9d51",
270         "name": "Add fw filter with handle at 32-bit maximum",
271         "category": [
272             "filter",
273             "fw"
274         ],
275         "setup": [
276             "$TC qdisc add dev $DEV1 ingress"
277         ],
278         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 4294967295 prio 1 fw action ok",
279         "expExitCode": "0",
280         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4294967295 prio 1 protocol all fw",
281         "matchPattern": "fw.*handle 0xffffffff.*gact action pass",
282         "matchCount": "1",
283         "teardown": [
284             "$TC qdisc del dev $DEV1 ingress"
285         ]
286     },
287     {
288         "id": "d939",
289         "name": "Add fw filter with handle exceeding 32-bit maximum",
290         "category": [
291             "filter",
292             "fw"
293         ],
294         "setup": [
295             "$TC qdisc add dev $DEV1 ingress"
296         ],
297         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 4294967296 prio 1 fw action ok",
298         "expExitCode": "1",
299         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4294967296 prio 1 protocol all fw",
300         "matchPattern": "fw.*handle 0x.*gact action pass",
301         "matchCount": "0",
302         "teardown": [
303             "$TC qdisc del dev $DEV1 ingress"
304         ]
305     },
306     {
307         "id": "658c",
308         "name": "Add fw filter with mask in hex",
309         "category": [
310             "filter",
311             "fw"
312         ],
313         "setup": [
314             "$TC qdisc add dev $DEV1 ingress"
315         ],
316         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 10/0xa1b2f prio 1 fw action ok",
317         "expExitCode": "0",
318         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 1 protocol all fw",
319         "matchPattern": "fw.*handle 0xa/0xa1b2f",
320         "matchCount": "1",
321         "teardown": [
322             "$TC qdisc del dev $DEV1 ingress"
323         ]
324     },
325     {
326         "id": "86be",
327         "name": "Add fw filter with mask at 32-bit maximum",
328         "category": [
329             "filter",
330             "fw"
331         ],
332         "setup": [
333             "$TC qdisc add dev $DEV1 ingress"
334         ],
335         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 10/4294967295 prio 1 fw action ok",
336         "expExitCode": "0",
337         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 1 protocol all fw",
338         "matchPattern": "fw.*handle 0xa[^/]",
339         "matchCount": "1",
340         "teardown": [
341             "$TC qdisc del dev $DEV1 ingress"
342         ]
343     },
344     {
345         "id": "e635",
346         "name": "Add fw filter with mask exceeding 32-bit maximum",
347         "category": [
348             "filter",
349             "fw"
350         ],
351         "setup": [
352             "$TC qdisc add dev $DEV1 ingress"
353         ],
354         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 10/4294967296 prio 1 fw action ok",
355         "expExitCode": "1",
356         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 1 protocol all fw",
357         "matchPattern": "fw.*handle 0xa",
358         "matchCount": "0",
359         "teardown": [
360             "$TC qdisc del dev $DEV1 ingress"
361         ]
362     },
363     {
364         "id": "6cab",
365         "name": "Add fw filter with handle/mask in hex",
366         "category": [
367             "filter",
368             "fw"
369         ],
370         "setup": [
371             "$TC qdisc add dev $DEV1 ingress"
372         ],
373         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0xa1b2cdff/0x1a2bffdc prio 1 fw action ok",
374         "expExitCode": "0",
375         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0xa1b2cdff prio 1 protocol all fw",
376         "matchPattern": "fw.*handle 0xa1b2cdff/0x1a2bffdc",
377         "matchCount": "1",
378         "teardown": [
379             "$TC qdisc del dev $DEV1 ingress"
380         ]
381     },
382     {
383         "id": "8700",
384         "name": "Add fw filter with handle/mask at 32-bit maximum",
385         "category": [
386             "filter",
387             "fw"
388         ],
389         "setup": [
390             "$TC qdisc add dev $DEV1 ingress"
391         ],
392         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 4294967295/4294967295 prio 1 fw action ok",
393         "expExitCode": "0",
394         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0xffffffff prio 1 protocol all fw",
395         "matchPattern": "fw.*handle 0xffffffff[^/]",
396         "matchCount": "1",
397         "teardown": [
398             "$TC qdisc del dev $DEV1 ingress"
399         ]
400     },
401     {
402         "id": "7d62",
403         "name": "Add fw filter with handle/mask exceeding 32-bit maximum",
404         "category": [
405             "filter",
406             "fw"
407         ],
408         "setup": [
409             "$TC qdisc add dev $DEV1 ingress"
410         ],
411         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 4294967296/4294967296 prio 1 fw action ok",
412         "expExitCode": "1",
413         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 1 protocol all fw",
414         "matchPattern": "fw.*handle",
415         "matchCount": "0",
416         "teardown": [
417             "$TC qdisc del dev $DEV1 ingress"
418         ]
419     },
420     {
421         "id": "7b69",
422         "name": "Add fw filter with missing mandatory handle",
423         "category": [
424             "filter",
425             "fw"
426         ],
427         "setup": [
428             "$TC qdisc add dev $DEV1 ingress"
429         ],
430         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 1 fw action ok",
431         "expExitCode": "2",
432         "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
433         "matchPattern": "filter protocol all.*fw.*handle.*gact action pass",
434         "matchCount": "0",
435         "teardown": [
436             "$TC qdisc del dev $DEV1 ingress"
437         ]
438     },
439     {
440         "id": "d68b",
441         "name": "Add fw filter with invalid parent",
442         "category": [
443             "filter",
444             "fw"
445         ],
446         "setup": [
447             "$TC qdisc add dev $DEV1 ingress"
448         ],
449         "cmdUnderTest": "$TC filter add dev $DEV1 parent aa11b1b2: handle 1 prio 1 fw action ok",
450         "expExitCode": "255",
451         "verifyCmd": "$TC filter dev $DEV1 parent aa11b1b2: handle 1 prio 1 protocol all fw",
452         "matchPattern": "filter protocol all pref 1 fw.*handle 0x1.*gact action pass",
453         "matchCount": "0",
454         "teardown": [
455             "$TC qdisc del dev $DEV1 ingress"
456         ]
457     },
458     {
459         "id": "66e0",
460         "name": "Add fw filter with missing mandatory parent id",
461         "category": [
462             "filter",
463             "fw"
464         ],
465         "setup": [
466             "$TC qdisc add dev $DEV1 ingress"
467         ],
468         "cmdUnderTest": "$TC filter add dev $DEV1 handle 1 prio 1 fw action ok",
469         "expExitCode": "2",
470         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
471         "matchPattern": "pref [0-9]+ fw.*handle 0x1.*gact action pass",
472         "matchCount": "0",
473         "teardown": [
474             "$TC qdisc del dev $DEV1 ingress"
475         ]
476     },
477     {
478         "id": "0ff3",
479         "name": "Add fw filter with classid",
480         "category": [
481             "filter",
482             "fw"
483         ],
484         "setup": [
485             "$TC qdisc add dev $DEV1 ingress"
486         ],
487         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw classid 3 action ok",
488         "expExitCode": "0",
489         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
490         "matchPattern": "fw.*handle 0x1 classid :3.*gact action pass",
491         "matchCount": "1",
492         "teardown": [
493             "$TC qdisc del dev $DEV1 ingress"
494         ]
495     },
496     {
497         "id": "9849",
498         "name": "Add fw filter with classid at root",
499         "category": [
500             "filter",
501             "fw"
502         ],
503         "setup": [
504             "$TC qdisc add dev $DEV1 ingress"
505         ],
506         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw classid ffff:ffff action ok",
507         "expExitCode": "0",
508         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
509         "matchPattern": "pref 1 fw.*handle 0x1 classid root.*gact action pass",
510         "matchCount": "1",
511         "teardown": [
512             "$TC qdisc del dev $DEV1 ingress"
513         ]
514     },
515     {
516         "id": "b7ff",
517         "name": "Add fw filter with classid - keeps last 8 (hex) digits",
518         "category": [
519             "filter",
520             "fw"
521         ],
522         "setup": [
523             "$TC qdisc add dev $DEV1 ingress"
524         ],
525         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw classid 98765fedcb action ok",
526         "expExitCode": "0",
527         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
528         "matchPattern": "fw.*handle 0x1 classid 765f:edcb.*gact action pass",
529         "matchCount": "1",
530         "teardown": [
531             "$TC qdisc del dev $DEV1 ingress"
532         ]
533     },
534     {
535         "id": "2b18",
536         "name": "Add fw filter with invalid classid",
537         "category": [
538             "filter",
539             "fw"
540         ],
541         "setup": [
542             "$TC qdisc add dev $DEV1 ingress"
543         ],
544         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw classid 6789defg action ok",
545         "expExitCode": "1",
546         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
547         "matchPattern": "fw.*handle 0x1 classid 6789:defg.*gact action pass",
548         "matchCount": "0",
549         "teardown": [
550             "$TC qdisc del dev $DEV1 ingress"
551         ]
552     },
553     {
554         "id": "fade",
555         "name": "Add fw filter with flowid",
556         "category": [
557             "filter",
558             "fw"
559         ],
560         "setup": [
561             "$TC qdisc add dev $DEV1 ingress"
562         ],
563         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 10 prio 1 fw flowid 1:10 action ok",
564         "expExitCode": "0",
565         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 1 protocol all fw",
566         "matchPattern": "filter parent ffff: protocol all pref 1 fw.*handle 0xa classid 1:10.*gact action pass",
567         "matchCount": "1",
568         "teardown": [
569             "$TC qdisc del dev $DEV1 ingress"
570         ]
571     },
572     {
573         "id": "33af",
574         "name": "Add fw filter with flowid then classid (same arg, takes second)",
575         "category": [
576             "filter",
577             "fw"
578         ],
579         "setup": [
580             "$TC qdisc add dev $DEV1 ingress"
581         ],
582         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 11 prio 1 fw flowid 10 classid 4 action ok",
583         "expExitCode": "0",
584         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 11 prio 1 protocol all fw",
585         "matchPattern": "filter parent ffff: protocol all pref 1 fw.*handle 0xb classid :4.*gact action pass",
586         "matchCount": "1",
587         "teardown": [
588             "$TC qdisc del dev $DEV1 ingress"
589         ]
590     },
591     {
592         "id": "8a8c",
593         "name": "Add fw filter with classid then flowid (same arg, takes second)",
594         "category": [
595             "filter",
596             "fw"
597         ],
598         "setup": [
599             "$TC qdisc add dev $DEV1 ingress"
600         ],
601         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 11 prio 1 fw classid 4 flowid 10 action ok",
602         "expExitCode": "0",
603         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 11 prio 1 protocol all fw",
604         "matchPattern": "filter parent ffff: protocol all pref 1 fw.*handle 0xb classid :10.*gact action pass",
605         "matchCount": "1",
606         "teardown": [
607             "$TC qdisc del dev $DEV1 ingress"
608         ]
609     },
610     {
611         "id": "b50d",
612         "name": "Add fw filter with handle val/mask and flowid 10:1000",
613         "category": [
614             "filter",
615             "fw"
616         ],
617         "setup": [
618             "$TC qdisc add dev $DEV1 ingress"
619         ],
620         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 3 handle 10/0xff fw flowid 10:1000 action ok",
621         "expExitCode": "0",
622         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 3 protocol all fw",
623         "matchPattern": "filter parent ffff: protocol all pref 3 fw.*handle 0xa/0xff classid 10:1000.*gact action pass",
624         "matchCount": "1",
625         "teardown": [
626             "$TC qdisc del dev $DEV1 ingress"
627         ]
628     },
629     {
630         "id": "7207",
631         "name": "Add fw filter with protocol ip",
632         "category": [
633             "filter",
634             "fw"
635         ],
636         "setup": [
637             "$TC qdisc add dev $DEV1 ingress"
638         ],
639         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol ip prio 1 handle 3 fw action ok",
640         "expExitCode": "0",
641         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 3 prio 1 protocol ip fw",
642         "matchPattern": "filter parent ffff: protocol ip pref 1 fw.*handle 0x3.*gact action pass.*index [0-9]+ ref [0-9]+ bind [0-9]+",
643         "matchCount": "1",
644         "teardown": [
645             "$TC qdisc del dev $DEV1 ingress"
646         ]
647     },
648     {
649         "id": "306d",
650         "name": "Add fw filter with protocol ipv6",
651         "category": [
652             "filter",
653             "fw"
654         ],
655         "setup": [
656             "$TC qdisc add dev $DEV1 ingress"
657         ],
658         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol ipv6 prio 2 handle 4 fw action ok",
659         "expExitCode": "0",
660         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4 prio 2 protocol ipv6 fw",
661         "matchPattern": "filter parent ffff: protocol ipv6 pref 2 fw.*handle 0x4.*gact action pass.*index [0-9]+ ref [0-9]+ bind [0-9]+",
662         "matchCount": "1",
663         "teardown": [
664             "$TC qdisc del dev $DEV1 ingress"
665         ]
666     },
667     {
668         "id": "9a78",
669         "name": "Add fw filter with protocol arp",
670         "category": [
671             "filter",
672             "fw"
673         ],
674         "setup": [
675             "$TC qdisc add dev $DEV1 ingress"
676         ],
677         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol arp prio 5 handle 7 fw action drop",
678         "expExitCode": "0",
679         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 7 prio 5 protocol arp fw",
680         "matchPattern": "filter parent ffff: protocol arp pref 5 fw.*handle 0x7.*gact action drop.*index [0-9]+ ref [0-9]+ bind [0-9]+",
681         "matchCount": "1",
682         "teardown": [
683             "$TC qdisc del dev $DEV1 ingress"
684         ]
685     },
686     {
687         "id": "1821",
688         "name": "Add fw filter with protocol 802_3",
689         "category": [
690             "filter",
691             "fw"
692         ],
693         "setup": [
694             "$TC qdisc add dev $DEV1 ingress"
695         ],
696         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol 802_3 handle 1 prio 1 fw action ok",
697         "expExitCode": "0",
698         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol 802_3 fw",
699         "matchPattern": "filter parent ffff: protocol 802_3 pref 1 fw.*handle 0x1.*gact action pass",
700         "matchCount": "1",
701         "teardown": [
702             "$TC qdisc del dev $DEV1 ingress"
703         ]
704     },
705     {
706         "id": "2260",
707         "name": "Add fw filter with invalid protocol",
708         "category": [
709             "filter",
710             "fw"
711         ],
712         "setup": [
713             "$TC qdisc add dev $DEV1 ingress"
714         ],
715         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol igmp handle 1 prio 1 fw action ok",
716         "expExitCode": "255",
717         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol igmp fw",
718         "matchPattern": "filter parent ffff: protocol igmp pref 1 fw.*handle 0x1.*gact action pass",
719         "matchCount": "0",
720         "teardown": [
721             "$TC qdisc del dev $DEV1 ingress"
722         ]
723     },
724     {
725         "id": "09d7",
726         "name": "Add fw filters protocol 802_3 and ip with conflicting priorities",
727         "category": [
728             "filter",
729             "fw"
730         ],
731         "setup": [
732             "$TC qdisc add dev $DEV1 ingress",
733             "$TC filter add dev $DEV1 parent ffff: protocol 802_3 prio 3 handle 7 fw action ok"
734         ],
735         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol ip prio 3 handle 8 fw action ok",
736         "expExitCode": "2",
737         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 8 prio 3 protocol ip fw",
738         "matchPattern": "filter parent ffff: protocol ip pref 3 fw.*handle 0x8",
739         "matchCount": "0",
740         "teardown": [
741             "$TC qdisc del dev $DEV1 ingress"
742         ]
743     },
744     {
745         "id": "6973",
746         "name": "Add fw filters with same index, same action",
747         "category": [
748             "filter",
749             "fw"
750         ],
751         "setup": [
752             "$TC qdisc add dev $DEV1 ingress",
753             "$TC filter add dev $DEV1 parent ffff: prio 6 handle 2 fw action continue index 5"
754         ],
755         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 8 handle 4 fw action continue index 5",
756         "expExitCode": "0",
757         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4 prio 8 protocol all fw",
758         "matchPattern": "filter parent ffff: protocol all pref 8 fw.*handle 0x4.*gact action continue.*index 5 ref 2 bind 2",
759         "matchCount": "1",
760         "teardown": [
761             "$TC qdisc del dev $DEV1 ingress"
762         ]
763     },
764     {
765         "id": "fc06",
766         "name": "Add fw filters with action police",
767         "category": [
768             "filter",
769             "fw"
770         ],
771         "setup": [
772             "$TC qdisc add dev $DEV1 ingress"
773         ],
774         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 3 handle 4 fw action police rate 1kbit burst 10k index 5",
775         "expExitCode": "0",
776         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4 prio 3 protocol all fw",
777         "matchPattern": "filter parent ffff: protocol all pref 3 fw.*handle 0x4.*police 0x5 rate 1Kbit burst 10Kb mtu 2Kb action reclassify overhead 0b.*ref 1 bind 1",
778         "matchCount": "1",
779         "teardown": [
780             "$TC qdisc del dev $DEV1 ingress"
781         ]
782     },
783     {
784         "id": "aac7",
785         "name": "Add fw filters with action police linklayer atm",
786         "category": [
787             "filter",
788             "fw"
789         ],
790         "setup": [
791             "$TC qdisc add dev $DEV1 ingress"
792         ],
793         "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 3 handle 4 fw action police rate 2mbit burst 200k linklayer atm index 8",
794         "expExitCode": "0",
795         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4 prio 3 protocol all fw",
796         "matchPattern": "filter parent ffff: protocol all pref 3 fw.*handle 0x4.*police 0x8 rate 2Mbit burst 200Kb mtu 2Kb action reclassify overhead 0b linklayer atm.*ref 1 bind 1",
797         "matchCount": "1",
798         "teardown": [
799             "$TC qdisc del dev $DEV1 ingress"
800         ]
801     },
802     {
803         "id": "5339",
804         "name": "Del entire fw filter",
805         "category": [
806             "filter",
807             "fw"
808         ],
809         "setup": [
810             "$TC qdisc add dev $DEV1 ingress",
811             "$TC filter add dev $DEV1 parent ffff: handle 5 prio 7 fw action pass",
812             "$TC filter add dev $DEV1 parent ffff: handle 3 prio 9 fw action pass"
813         ],
814         "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff:",
815         "expExitCode": "0",
816         "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
817         "matchPattern": "protocol all pref.*handle.*gact action pass",
818         "matchCount": "0",
819         "teardown": [
820             "$TC qdisc del dev $DEV1 ingress"
821         ]
822     },
823     {
824         "id": "0e99",
825         "name": "Del single fw filter x1",
826         "__comment__": "First of two tests to check that one filter is there and the other isn't",
827         "category": [
828             "filter",
829             "fw"
830         ],
831         "setup": [
832             "$TC qdisc add dev $DEV1 ingress",
833             "$TC filter add dev $DEV1 parent ffff: handle 5 prio 7 fw action pass",
834             "$TC filter add dev $DEV1 parent ffff: handle 3 prio 9 fw action pass"
835         ],
836         "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: handle 3 prio 9 fw action pass",
837         "expExitCode": "0",
838         "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
839         "matchPattern": "protocol all pref 7.*handle 0x5.*gact action pass",
840         "matchCount": "1",
841         "teardown": [
842             "$TC qdisc del dev $DEV1 ingress"
843         ]
844     },
845     {
846         "id": "f54c",
847         "name": "Del single fw filter x2",
848         "__comment__": "Second of two tests to check that one filter is there and the other isn't",
849         "category": [
850             "filter",
851             "fw"
852         ],
853         "setup": [
854             "$TC qdisc add dev $DEV1 ingress",
855             "$TC filter add dev $DEV1 parent ffff: handle 5 prio 7 fw action pass",
856             "$TC filter add dev $DEV1 parent ffff: handle 3 prio 9 fw action pass"
857         ],
858         "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: handle 3 prio 9 fw action pass",
859         "expExitCode": "0",
860         "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
861         "matchPattern": "protocol all pref 9.*handle 0x3.*gact action pass",
862         "matchCount": "0",
863         "teardown": [
864             "$TC qdisc del dev $DEV1 ingress"
865         ]
866     },
867     {
868         "id": "ba94",
869         "name": "Del fw filter by prio",
870         "category": [
871             "filter",
872             "fw"
873         ],
874         "setup": [
875             "$TC qdisc add dev $DEV1 ingress",
876             "$TC filter add dev $DEV1 parent ffff: handle 1 prio 4 fw action ok",
877             "$TC filter add dev $DEV1 parent ffff: handle 2 prio 4 fw action ok"
878         ],
879         "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: prio 4",
880         "expExitCode": "0",
881         "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
882         "matchPattern": "pref 4 fw.*gact action pass",
883         "matchCount": "0",
884         "teardown": [
885             "$TC qdisc del dev $DEV1 ingress"
886         ]
887     },
888     {
889         "id": "4acb",
890         "name": "Del fw filter by chain",
891         "category": [
892             "filter",
893             "fw"
894         ],
895         "setup": [
896             "$TC qdisc add dev $DEV1 ingress",
897             "$TC filter add dev $DEV1 parent ffff: handle 4 prio 2 chain 13 fw action pipe",
898             "$TC filter add dev $DEV1 parent ffff: handle 3 prio 5 chain 13 fw action pipe"
899         ],
900         "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: chain 13",
901         "expExitCode": "0",
902         "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
903         "matchPattern": "fw chain 13 handle.*gact action pipe",
904         "matchCount": "0",
905         "teardown": [
906             "$TC qdisc del dev $DEV1 ingress"
907         ]
908     },
909     {
910         "id": "3424",
911         "name": "Del fw filter by action (invalid)",
912         "category": [
913             "filter",
914             "fw"
915         ],
916         "setup": [
917             "$TC qdisc add dev $DEV1 ingress",
918             "$TC filter add dev $DEV1 parent ffff: handle 2 prio 4 fw action drop"
919         ],
920         "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: fw action drop",
921         "expExitCode": "2",
922         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 2 prio 4 protocol all fw",
923         "matchPattern": "handle 0x2.*gact action drop",
924         "matchCount": "1",
925         "teardown": [
926             "$TC qdisc del dev $DEV1 ingress"
927         ]
928     },
929     {
930         "id": "da89",
931         "name": "Del fw filter by handle (invalid)",
932         "category": [
933             "filter",
934             "fw"
935         ],
936         "setup": [
937             "$TC qdisc add dev $DEV1 ingress",
938             "$TC filter add dev $DEV1 parent ffff: handle 3 prio 4 fw action continue"
939         ],
940         "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: handle 3 fw",
941         "expExitCode": "2",
942         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 3 prio 4 protocol all fw",
943         "matchPattern": "handle 0x3.*gact action continue",
944         "matchCount": "1",
945         "teardown": [
946             "$TC qdisc del dev $DEV1 ingress"
947         ]
948     },
949     {
950         "id": "4d95",
951         "name": "Del fw filter by protocol (invalid)",
952         "category": [
953             "filter",
954             "fw"
955         ],
956         "setup": [
957             "$TC qdisc add dev $DEV1 ingress",
958             "$TC filter add dev $DEV1 parent ffff: handle 4 prio 2 protocol arp fw action pipe"
959         ],
960         "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: protocol arp fw",
961         "expExitCode": "2",
962         "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4 prio 2 protocol arp fw",
963         "matchPattern": "filter parent ffff: protocol arp.*handle 0x4.*gact action pipe",
964         "matchCount": "1",
965         "teardown": [
966             "$TC qdisc del dev $DEV1 ingress"
967         ]
968     },
969     {
970         "id": "4736",
971         "name": "Del fw filter by flowid (invalid)",
972         "category": [
973             "filter",
974             "fw"
975         ],
976         "setup": [
977             "$TC qdisc add dev $DEV1 ingress",
978             "$TC filter add dev $DEV1 parent ffff: handle 4 prio 2 fw action pipe flowid 45"
979         ],
980         "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: fw flowid 45",
981         "expExitCode": "2",
982         "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
983         "matchPattern": "handle 0x4.*gact action pipe",
984         "matchCount": "1",
985         "teardown": [
986             "$TC qdisc del dev $DEV1 ingress"
987         ]
988     },
989     {
990         "id": "3dcb",
991         "name": "Replace fw filter action",
992         "category": [
993             "filter",
994             "fw"
995         ],
996         "setup": [
997             "$TC qdisc add dev $DEV1 ingress",
998             "$TC filter add dev $DEV1 parent ffff: handle 1 prio 2 fw action ok"
999         ],
1000         "cmdUnderTest": "$TC filter replace dev $DEV1 parent ffff: handle 1 prio 2 fw action pipe",
1001         "expExitCode": "0",
1002         "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1003         "matchPattern": "pref 2 fw.*handle 0x1.*gact action pipe",
1004         "matchCount": "1",
1005         "teardown": [
1006             "$TC qdisc del dev $DEV1 ingress"
1007         ]
1008     },
1009     {
1010         "id": "eb4d",
1011         "name": "Replace fw filter classid",
1012         "category": [
1013             "filter",
1014             "fw"
1015         ],
1016         "setup": [
1017             "$TC qdisc add dev $DEV1 ingress",
1018             "$TC filter add dev $DEV1 parent ffff: handle 1 prio 2 fw action ok"
1019         ],
1020         "cmdUnderTest": "$TC filter replace dev $DEV1 parent ffff: handle 1 prio 2 fw action pipe classid 2",
1021         "expExitCode": "0",
1022         "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1023         "matchPattern": "pref 2 fw.*handle 0x1 classid :2.*gact action pipe",
1024         "matchCount": "1",
1025         "teardown": [
1026             "$TC qdisc del dev $DEV1 ingress"
1027         ]
1028     },
1029     {
1030         "id": "67ec",
1031         "name": "Replace fw filter index",
1032         "category": [
1033             "filter",
1034             "fw"
1035         ],
1036         "setup": [
1037             "$TC qdisc add dev $DEV1 ingress",
1038             "$TC filter add dev $DEV1 parent ffff: handle 1 prio 2 fw action ok index 3"
1039         ],
1040         "cmdUnderTest": "$TC filter replace dev $DEV1 parent ffff: handle 1 prio 2 fw action ok index 16",
1041         "expExitCode": "0",
1042         "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1043         "matchPattern": "pref 2 fw.*handle 0x1.*gact action pass.*index 16",
1044         "matchCount": "1",
1045         "teardown": [
1046             "$TC qdisc del dev $DEV1 ingress"
1047         ]
1048     }
1049 ]