4 "name": "Add fw filter with prio at 32-bit maxixum",
10 "requires": "nsPlugin"
13 "$TC qdisc add dev $DEV1 ingress"
15 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 65535 fw action ok",
17 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 65535 protocol all fw",
18 "matchPattern": "pref 65535 fw.*handle 0x1.*gact action pass",
21 "$TC qdisc del dev $DEV1 ingress"
26 "name": "Add fw filter with prio exceeding 32-bit maxixum",
32 "requires": "nsPlugin"
35 "$TC qdisc add dev $DEV1 ingress"
37 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 65536 fw action ok",
39 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 65536 protocol all fw",
40 "matchPattern": "pref 65536 fw.*handle 0x1.*gact action pass",
43 "$TC qdisc del dev $DEV1 ingress"
48 "name": "Add fw filter with action ok",
54 "requires": "nsPlugin"
57 "requires": "nsPlugin"
60 "requires": "nsPlugin"
63 "requires": "nsPlugin"
66 "requires": "nsPlugin"
69 "requires": "nsPlugin"
72 "requires": "nsPlugin"
75 "requires": "nsPlugin"
78 "requires": "nsPlugin"
81 "requires": "nsPlugin"
84 "requires": "nsPlugin"
87 "requires": "nsPlugin"
90 "requires": "nsPlugin"
93 "requires": "nsPlugin"
96 "requires": "nsPlugin"
99 "requires": "nsPlugin"
102 "requires": "nsPlugin"
105 "requires": "nsPlugin"
108 "requires": "nsPlugin"
111 "requires": "nsPlugin"
114 "requires": "nsPlugin"
117 "requires": "nsPlugin"
120 "requires": "nsPlugin"
123 "requires": "nsPlugin"
126 "requires": "nsPlugin"
129 "requires": "nsPlugin"
132 "requires": "nsPlugin"
135 "requires": "nsPlugin"
138 "requires": "nsPlugin"
141 "requires": "nsPlugin"
144 "requires": "nsPlugin"
147 "requires": "nsPlugin"
150 "requires": "nsPlugin"
153 "requires": "nsPlugin"
156 "requires": "nsPlugin"
159 "requires": "nsPlugin"
162 "$TC qdisc add dev $DEV1 ingress"
164 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action ok",
166 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
167 "matchPattern": "handle 0x1.*gact action pass",
170 "$TC qdisc del dev $DEV1 ingress"
175 "name": "Add fw filter with action ok by reference",
176 "__comment": "We add sleep here because action might have not been deleted by workqueue just yet. Remove this when the behaviour is fixed.",
182 "$TC qdisc add dev $DEV1 ingress",
184 "$TC actions add action gact ok index 1"
186 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action gact index 1",
188 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
189 "matchPattern": "handle 0x1.*gact action pass.*index 1 ref 2 bind 1",
192 "$TC qdisc del dev $DEV1 ingress",
194 "$TC actions del action gact index 1"
199 "name": "Add fw filter with action continue",
205 "$TC qdisc add dev $DEV1 ingress"
207 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action continue",
209 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
210 "matchPattern": "handle 0x1.*gact action continue",
213 "$TC qdisc del dev $DEV1 ingress"
218 "name": "Add fw filter with action continue by reference",
219 "__comment": "We add sleep here because action might have not been deleted by workqueue just yet. Remove this when the behaviour is fixed.",
225 "$TC qdisc add dev $DEV1 ingress",
227 "$TC actions add action gact continue index 1"
229 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action gact index 1",
231 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
232 "matchPattern": "handle 0x1.*gact action continue.*index 1 ref 2 bind 1",
235 "$TC qdisc del dev $DEV1 ingress",
237 "$TC actions del action gact index 1"
242 "name": "Add fw filter with action pipe",
248 "$TC qdisc add dev $DEV1 ingress"
250 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action pipe",
252 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
253 "matchPattern": "handle 0x1.*gact action pipe",
256 "$TC qdisc del dev $DEV1 ingress"
261 "name": "Add fw filter with action pipe by reference",
262 "__comment": "We add sleep here because action might have not been deleted by workqueue just yet.",
268 "$TC qdisc add dev $DEV1 ingress",
270 "$TC actions add action gact pipe index 1"
272 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action gact index 1",
274 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
275 "matchPattern": "handle 0x1.*gact action pipe.*index 1 ref 2 bind 1",
278 "$TC qdisc del dev $DEV1 ingress",
280 "$TC actions del action gact index 1"
285 "name": "Add fw filter with action drop",
291 "$TC qdisc add dev $DEV1 ingress"
293 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action drop",
295 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 protocol all prio 1 fw",
296 "matchPattern": "handle 0x1.*gact action drop",
299 "$TC qdisc del dev $DEV1 ingress"
304 "name": "Add fw filter with action drop by reference",
305 "__comment": "We add sleep here because action might have not been deleted by workqueue just yet.",
311 "$TC qdisc add dev $DEV1 ingress",
313 "$TC actions add action gact drop index 1"
315 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action gact index 1",
317 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
318 "matchPattern": "handle 0x1.*gact action drop.*index 1 ref 2 bind 1",
321 "$TC qdisc del dev $DEV1 ingress",
323 "$TC actions del action gact index 1"
328 "name": "Add fw filter with action reclassify",
334 "$TC qdisc add dev $DEV1 ingress"
336 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action reclassify",
338 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
339 "matchPattern": "handle 0x1.*gact action reclassify",
342 "$TC qdisc del dev $DEV1 ingress"
347 "name": "Add fw filter with action reclassify by reference",
348 "__comment": "We add sleep here because action might have not been deleted by workqueue just yet.",
354 "$TC qdisc add dev $DEV1 ingress",
356 "$TC actions add action gact reclassify index 1"
358 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action gact index 1",
360 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
361 "matchPattern": "handle 0x1.*gact action reclassify.*index 1 ref 2 bind 1",
364 "$TC qdisc del dev $DEV1 ingress",
366 "$TC actions del action gact index 1"
371 "name": "Add fw filter with action jump 10",
377 "$TC qdisc add dev $DEV1 ingress"
379 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action jump 10",
381 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
382 "matchPattern": "handle 0x1.*gact action jump 10",
385 "$TC qdisc del dev $DEV1 ingress"
390 "name": "Add fw filter with action jump 10 by reference",
391 "__comment": "We add sleep here because action might have not been deleted by workqueue just yet.",
397 "$TC qdisc add dev $DEV1 ingress",
399 "$TC actions add action gact jump 10 index 1"
401 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action gact index 1",
403 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
404 "matchPattern": "handle 0x1.*gact action jump 10.*index 1 ref 2 bind 1",
407 "$TC qdisc del dev $DEV1 ingress",
409 "$TC actions del action gact index 1"
414 "name": "Add fw filter with action goto chain 5",
420 "$TC qdisc add dev $DEV1 ingress"
422 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action goto chain 5",
424 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
425 "matchPattern": "handle 0x1.*gact action goto chain 5",
428 "$TC qdisc del dev $DEV1 ingress"
433 "name": "Add fw filter with invalid action",
439 "$TC qdisc add dev $DEV1 ingress"
441 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw action pump",
442 "expExitCode": "255",
443 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
444 "matchPattern": "handle 0x1.*gact action pump",
447 "$TC qdisc del dev $DEV1 ingress"
452 "name": "Add fw filter with missing mandatory action",
458 "$TC qdisc add dev $DEV1 ingress"
460 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw",
462 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
463 "matchPattern": "filter protocol all pref [0-9]+ fw.*handle 0x1",
466 "$TC qdisc del dev $DEV1 ingress"
471 "name": "Add fw filter with cookie",
477 "$TC qdisc add dev $DEV1 ingress"
479 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 2 fw action pipe cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
481 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 2 protocol all fw",
482 "matchPattern": "pref 2 fw.*handle 0x1.*gact action pipe.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2",
485 "$TC qdisc del dev $DEV1 ingress"
490 "name": "Add fw filter with invalid cookie",
496 "$TC qdisc add dev $DEV1 ingress"
498 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 2 fw action continue cookie aa11bb22cc33dd44ee55ff66aa11b1b2777888",
499 "expExitCode": "255",
500 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 2 protocol all fw",
501 "matchPattern": "pref 2 fw.*handle 0x1.*gact action continue.*cookie aa11bb22cc33dd44ee55ff66aa11b1b2777888",
504 "$TC qdisc del dev $DEV1 ingress"
509 "name": "Add fw filter with handle in hex",
515 "$TC qdisc add dev $DEV1 ingress"
517 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0xa1b2ff prio 1 fw action ok",
519 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0xa1b2ff prio 1 protocol all fw",
520 "matchPattern": "fw.*handle 0xa1b2ff.*gact action pass",
523 "$TC qdisc del dev $DEV1 ingress"
528 "name": "Add fw filter with handle at 32-bit maximum",
534 "$TC qdisc add dev $DEV1 ingress"
536 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 4294967295 prio 1 fw action ok",
538 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4294967295 prio 1 protocol all fw",
539 "matchPattern": "fw.*handle 0xffffffff.*gact action pass",
542 "$TC qdisc del dev $DEV1 ingress"
547 "name": "Add fw filter with handle exceeding 32-bit maximum",
553 "$TC qdisc add dev $DEV1 ingress"
555 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 4294967296 prio 1 fw action ok",
557 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4294967296 prio 1 protocol all fw",
558 "matchPattern": "fw.*handle 0x.*gact action pass",
561 "$TC qdisc del dev $DEV1 ingress"
566 "name": "Add fw filter with mask in hex",
572 "$TC qdisc add dev $DEV1 ingress"
574 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 10/0xa1b2f prio 1 fw action ok",
576 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 1 protocol all fw",
577 "matchPattern": "fw.*handle 0xa/0xa1b2f",
580 "$TC qdisc del dev $DEV1 ingress"
585 "name": "Add fw filter with mask at 32-bit maximum",
591 "$TC qdisc add dev $DEV1 ingress"
593 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 10/4294967295 prio 1 fw action ok",
595 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 1 protocol all fw",
596 "matchPattern": "fw.*handle 0xa[^/]",
599 "$TC qdisc del dev $DEV1 ingress"
604 "name": "Add fw filter with mask exceeding 32-bit maximum",
610 "$TC qdisc add dev $DEV1 ingress"
612 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 10/4294967296 prio 1 fw action ok",
614 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 1 protocol all fw",
615 "matchPattern": "fw.*handle 0xa",
618 "$TC qdisc del dev $DEV1 ingress"
623 "name": "Add fw filter with handle/mask in hex",
629 "$TC qdisc add dev $DEV1 ingress"
631 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0xa1b2cdff/0x1a2bffdc prio 1 fw action ok",
633 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0xa1b2cdff prio 1 protocol all fw",
634 "matchPattern": "fw.*handle 0xa1b2cdff/0x1a2bffdc",
637 "$TC qdisc del dev $DEV1 ingress"
642 "name": "Add fw filter with handle/mask at 32-bit maximum",
648 "$TC qdisc add dev $DEV1 ingress"
650 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 4294967295/4294967295 prio 1 fw action ok",
652 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 0xffffffff prio 1 protocol all fw",
653 "matchPattern": "fw.*handle 0xffffffff[^/]",
656 "$TC qdisc del dev $DEV1 ingress"
661 "name": "Add fw filter with handle/mask exceeding 32-bit maximum",
667 "$TC qdisc add dev $DEV1 ingress"
669 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 4294967296/4294967296 prio 1 fw action ok",
671 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 1 protocol all fw",
672 "matchPattern": "fw.*handle",
675 "$TC qdisc del dev $DEV1 ingress"
680 "name": "Add fw filter with missing mandatory handle",
686 "$TC qdisc add dev $DEV1 ingress"
688 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 1 fw action ok",
690 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
691 "matchPattern": "filter protocol all.*fw.*handle.*gact action pass",
694 "$TC qdisc del dev $DEV1 ingress"
699 "name": "Add fw filter with invalid parent",
705 "$TC qdisc add dev $DEV1 ingress"
707 "cmdUnderTest": "$TC filter add dev $DEV1 parent aa11b1b2: handle 1 prio 1 fw action ok",
708 "expExitCode": "255",
709 "verifyCmd": "$TC filter dev $DEV1 parent aa11b1b2: handle 1 prio 1 protocol all fw",
710 "matchPattern": "filter protocol all pref 1 fw.*handle 0x1.*gact action pass",
713 "$TC qdisc del dev $DEV1 ingress"
718 "name": "Add fw filter with missing mandatory parent id",
724 "$TC qdisc add dev $DEV1 ingress"
726 "cmdUnderTest": "$TC filter add dev $DEV1 handle 1 prio 1 fw action ok",
728 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
729 "matchPattern": "pref [0-9]+ fw.*handle 0x1.*gact action pass",
732 "$TC qdisc del dev $DEV1 ingress"
737 "name": "Add fw filter with classid",
743 "$TC qdisc add dev $DEV1 ingress"
745 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw classid 3 action ok",
747 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
748 "matchPattern": "fw.*handle 0x1 classid :3.*gact action pass",
751 "$TC qdisc del dev $DEV1 ingress"
756 "name": "Add fw filter with classid at root",
762 "$TC qdisc add dev $DEV1 ingress"
764 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw classid ffff:ffff action ok",
766 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
767 "matchPattern": "pref 1 fw.*handle 0x1 classid root.*gact action pass",
770 "$TC qdisc del dev $DEV1 ingress"
775 "name": "Add fw filter with classid - keeps last 8 (hex) digits",
781 "$TC qdisc add dev $DEV1 ingress"
783 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw classid 98765fedcb action ok",
785 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
786 "matchPattern": "fw.*handle 0x1 classid 765f:edcb.*gact action pass",
789 "$TC qdisc del dev $DEV1 ingress"
794 "name": "Add fw filter with invalid classid",
800 "$TC qdisc add dev $DEV1 ingress"
802 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 prio 1 fw classid 6789defg action ok",
804 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol all fw",
805 "matchPattern": "fw.*handle 0x1 classid 6789:defg.*gact action pass",
808 "$TC qdisc del dev $DEV1 ingress"
813 "name": "Add fw filter with flowid",
819 "$TC qdisc add dev $DEV1 ingress"
821 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 10 prio 1 fw flowid 1:10 action ok",
823 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 1 protocol all fw",
824 "matchPattern": "filter parent ffff: protocol all pref 1 fw.*handle 0xa classid 1:10.*gact action pass",
827 "$TC qdisc del dev $DEV1 ingress"
832 "name": "Add fw filter with flowid then classid (same arg, takes second)",
838 "$TC qdisc add dev $DEV1 ingress"
840 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 11 prio 1 fw flowid 10 classid 4 action ok",
842 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 11 prio 1 protocol all fw",
843 "matchPattern": "filter parent ffff: protocol all pref 1 fw.*handle 0xb classid :4.*gact action pass",
846 "$TC qdisc del dev $DEV1 ingress"
851 "name": "Add fw filter with classid then flowid (same arg, takes second)",
857 "$TC qdisc add dev $DEV1 ingress"
859 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 11 prio 1 fw classid 4 flowid 10 action ok",
861 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 11 prio 1 protocol all fw",
862 "matchPattern": "filter parent ffff: protocol all pref 1 fw.*handle 0xb classid :10.*gact action pass",
865 "$TC qdisc del dev $DEV1 ingress"
870 "name": "Add fw filter with handle val/mask and flowid 10:1000",
876 "$TC qdisc add dev $DEV1 ingress"
878 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 3 handle 10/0xff fw flowid 10:1000 action ok",
880 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 10 prio 3 protocol all fw",
881 "matchPattern": "filter parent ffff: protocol all pref 3 fw.*handle 0xa/0xff classid 10:1000.*gact action pass",
884 "$TC qdisc del dev $DEV1 ingress"
889 "name": "Add fw filter with protocol ip",
895 "$TC qdisc add dev $DEV1 ingress"
897 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol ip prio 1 handle 3 fw action ok",
899 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 3 prio 1 protocol ip fw",
900 "matchPattern": "filter parent ffff: protocol ip pref 1 fw.*handle 0x3.*gact action pass.*index [0-9]+ ref [0-9]+ bind [0-9]+",
903 "$TC qdisc del dev $DEV1 ingress"
908 "name": "Add fw filter with protocol ipv6",
914 "$TC qdisc add dev $DEV1 ingress"
916 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol ipv6 prio 2 handle 4 fw action ok",
918 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4 prio 2 protocol ipv6 fw",
919 "matchPattern": "filter parent ffff: protocol ipv6 pref 2 fw.*handle 0x4.*gact action pass.*index [0-9]+ ref [0-9]+ bind [0-9]+",
922 "$TC qdisc del dev $DEV1 ingress"
927 "name": "Add fw filter with protocol arp",
933 "$TC qdisc add dev $DEV1 ingress"
935 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol arp prio 5 handle 7 fw action drop",
937 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 7 prio 5 protocol arp fw",
938 "matchPattern": "filter parent ffff: protocol arp pref 5 fw.*handle 0x7.*gact action drop.*index [0-9]+ ref [0-9]+ bind [0-9]+",
941 "$TC qdisc del dev $DEV1 ingress"
946 "name": "Add fw filter with protocol 802_3",
952 "$TC qdisc add dev $DEV1 ingress"
954 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol 802_3 handle 1 prio 1 fw action ok",
956 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol 802_3 fw",
957 "matchPattern": "filter parent ffff: protocol 802_3 pref 1 fw.*handle 0x1.*gact action pass",
960 "$TC qdisc del dev $DEV1 ingress"
965 "name": "Add fw filter with invalid protocol",
971 "$TC qdisc add dev $DEV1 ingress"
973 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol igmp handle 1 prio 1 fw action ok",
974 "expExitCode": "255",
975 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 1 prio 1 protocol igmp fw",
976 "matchPattern": "filter parent ffff: protocol igmp pref 1 fw.*handle 0x1.*gact action pass",
979 "$TC qdisc del dev $DEV1 ingress"
984 "name": "Add fw filters protocol 802_3 and ip with conflicting priorities",
990 "requires": "nsPlugin"
993 "$TC qdisc add dev $DEV1 ingress",
994 "$TC filter add dev $DEV1 parent ffff: protocol 802_3 prio 3 handle 7 fw action ok"
996 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: protocol ip prio 3 handle 8 fw action ok",
998 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 8 prio 3 protocol ip fw",
999 "matchPattern": "filter parent ffff: protocol ip pref 3 fw.*handle 0x8",
1002 "$TC qdisc del dev $DEV1 ingress"
1007 "name": "Add fw filters with same index, same action",
1013 "requires": "nsPlugin"
1016 "$TC qdisc add dev $DEV1 ingress",
1017 "$TC filter add dev $DEV1 parent ffff: prio 6 handle 2 fw action continue index 5"
1019 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 8 handle 4 fw action continue index 5",
1021 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4 prio 8 protocol all fw",
1022 "matchPattern": "filter parent ffff: protocol all pref 8 fw.*handle 0x4.*gact action continue.*index 5 ref 2 bind 2",
1025 "$TC qdisc del dev $DEV1 ingress"
1030 "name": "Add fw filters with action police",
1036 "requires": "nsPlugin"
1039 "$TC qdisc add dev $DEV1 ingress"
1041 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 3 handle 4 fw action police rate 1kbit burst 10k index 5",
1043 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4 prio 3 protocol all fw",
1044 "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",
1047 "$TC qdisc del dev $DEV1 ingress"
1052 "name": "Add fw filters with action police linklayer atm",
1058 "requires": "nsPlugin"
1061 "$TC qdisc add dev $DEV1 ingress"
1063 "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: prio 3 handle 4 fw action police rate 2mbit burst 200k linklayer atm index 8",
1065 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4 prio 3 protocol all fw",
1066 "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",
1069 "$TC qdisc del dev $DEV1 ingress"
1074 "name": "Del entire fw filter",
1080 "requires": "nsPlugin"
1083 "$TC qdisc add dev $DEV1 ingress",
1084 "$TC filter add dev $DEV1 parent ffff: handle 5 prio 7 fw action pass",
1085 "$TC filter add dev $DEV1 parent ffff: handle 3 prio 9 fw action pass"
1087 "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff:",
1089 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1090 "matchPattern": "protocol all pref.*handle.*gact action pass",
1093 "$TC qdisc del dev $DEV1 ingress"
1098 "name": "Del single fw filter x1",
1099 "__comment__": "First of two tests to check that one filter is there and the other isn't",
1105 "requires": "nsPlugin"
1108 "$TC qdisc add dev $DEV1 ingress",
1109 "$TC filter add dev $DEV1 parent ffff: handle 5 prio 7 fw action pass",
1110 "$TC filter add dev $DEV1 parent ffff: handle 3 prio 9 fw action pass"
1112 "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: handle 3 prio 9 fw action pass",
1114 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1115 "matchPattern": "protocol all pref 7.*handle 0x5.*gact action pass",
1118 "$TC qdisc del dev $DEV1 ingress"
1123 "name": "Del single fw filter x2",
1124 "__comment__": "Second of two tests to check that one filter is there and the other isn't",
1130 "requires": "nsPlugin"
1133 "$TC qdisc add dev $DEV1 ingress",
1134 "$TC filter add dev $DEV1 parent ffff: handle 5 prio 7 fw action pass",
1135 "$TC filter add dev $DEV1 parent ffff: handle 3 prio 9 fw action pass"
1137 "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: handle 3 prio 9 fw action pass",
1139 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1140 "matchPattern": "protocol all pref 9.*handle 0x3.*gact action pass",
1143 "$TC qdisc del dev $DEV1 ingress"
1148 "name": "Del fw filter by prio",
1154 "requires": "nsPlugin"
1157 "$TC qdisc add dev $DEV1 ingress",
1158 "$TC filter add dev $DEV1 parent ffff: handle 1 prio 4 fw action ok",
1159 "$TC filter add dev $DEV1 parent ffff: handle 2 prio 4 fw action ok"
1161 "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: prio 4",
1163 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1164 "matchPattern": "pref 4 fw.*gact action pass",
1167 "$TC qdisc del dev $DEV1 ingress"
1172 "name": "Del fw filter by chain",
1178 "requires": "nsPlugin"
1181 "$TC qdisc add dev $DEV1 ingress",
1182 "$TC filter add dev $DEV1 parent ffff: handle 4 prio 2 chain 13 fw action pipe",
1183 "$TC filter add dev $DEV1 parent ffff: handle 3 prio 5 chain 13 fw action pipe"
1185 "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: chain 13",
1187 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1188 "matchPattern": "fw chain 13 handle.*gact action pipe",
1191 "$TC qdisc del dev $DEV1 ingress"
1196 "name": "Del fw filter by action (invalid)",
1202 "requires": "nsPlugin"
1205 "$TC qdisc add dev $DEV1 ingress",
1206 "$TC filter add dev $DEV1 parent ffff: handle 2 prio 4 fw action drop"
1208 "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: fw action drop",
1210 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 2 prio 4 protocol all fw",
1211 "matchPattern": "handle 0x2.*gact action drop",
1214 "$TC qdisc del dev $DEV1 ingress"
1219 "name": "Del fw filter by handle (invalid)",
1225 "requires": "nsPlugin"
1228 "$TC qdisc add dev $DEV1 ingress",
1229 "$TC filter add dev $DEV1 parent ffff: handle 3 prio 4 fw action continue"
1231 "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: handle 3 fw",
1233 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 3 prio 4 protocol all fw",
1234 "matchPattern": "handle 0x3.*gact action continue",
1237 "$TC qdisc del dev $DEV1 ingress"
1242 "name": "Del fw filter by protocol (invalid)",
1248 "requires": "nsPlugin"
1251 "$TC qdisc add dev $DEV1 ingress",
1252 "$TC filter add dev $DEV1 parent ffff: handle 4 prio 2 protocol arp fw action pipe"
1254 "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: protocol arp fw",
1256 "verifyCmd": "$TC filter get dev $DEV1 parent ffff: handle 4 prio 2 protocol arp fw",
1257 "matchPattern": "filter parent ffff: protocol arp.*handle 0x4.*gact action pipe",
1260 "$TC qdisc del dev $DEV1 ingress"
1265 "name": "Del fw filter by flowid (invalid)",
1271 "requires": "nsPlugin"
1274 "$TC qdisc add dev $DEV1 ingress",
1275 "$TC filter add dev $DEV1 parent ffff: handle 4 prio 2 fw action pipe flowid 45"
1277 "cmdUnderTest": "$TC filter del dev $DEV1 parent ffff: fw flowid 45",
1279 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1280 "matchPattern": "handle 0x4.*gact action pipe",
1283 "$TC qdisc del dev $DEV1 ingress"
1288 "name": "Replace fw filter action",
1294 "requires": "nsPlugin"
1297 "$TC qdisc add dev $DEV1 ingress",
1298 "$TC filter add dev $DEV1 parent ffff: handle 1 prio 2 fw action ok"
1300 "cmdUnderTest": "$TC filter replace dev $DEV1 parent ffff: handle 1 prio 2 fw action pipe",
1302 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1303 "matchPattern": "pref 2 fw.*handle 0x1.*gact action pipe",
1306 "$TC qdisc del dev $DEV1 ingress"
1311 "name": "Replace fw filter classid",
1317 "requires": "nsPlugin"
1320 "$TC qdisc add dev $DEV1 ingress",
1321 "$TC filter add dev $DEV1 parent ffff: handle 1 prio 2 fw action ok"
1323 "cmdUnderTest": "$TC filter replace dev $DEV1 parent ffff: handle 1 prio 2 fw action pipe classid 2",
1325 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1326 "matchPattern": "pref 2 fw.*handle 0x1 classid :2.*gact action pipe",
1329 "$TC qdisc del dev $DEV1 ingress"
1334 "name": "Replace fw filter index",
1340 "requires": "nsPlugin"
1343 "$TC qdisc add dev $DEV1 ingress",
1344 "$TC filter add dev $DEV1 parent ffff: handle 1 prio 2 fw action ok index 3"
1346 "cmdUnderTest": "$TC filter replace dev $DEV1 parent ffff: handle 1 prio 2 fw action ok index 16",
1348 "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1349 "matchPattern": "pref 2 fw.*handle 0x1.*gact action pass.*index 16",
1352 "$TC qdisc del dev $DEV1 ingress"