1*33c41192SZhengchao Shao[
2*33c41192SZhengchao Shao    {
3*33c41192SZhengchao Shao        "id": "6273",
4*33c41192SZhengchao Shao        "name": "Add cgroup filter with cmp ematch u8/link layer and drop action",
5*33c41192SZhengchao Shao        "category": [
6*33c41192SZhengchao Shao            "filter",
7*33c41192SZhengchao Shao            "cgroup"
8*33c41192SZhengchao Shao        ],
9*33c41192SZhengchao Shao        "plugins": {
10*33c41192SZhengchao Shao            "requires": "nsPlugin"
11*33c41192SZhengchao Shao        },
12*33c41192SZhengchao Shao        "setup": [
13*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
14*33c41192SZhengchao Shao        ],
15*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff gt 10)' action drop",
16*33c41192SZhengchao Shao        "expExitCode": "0",
17*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
18*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref [0-9]+ cgroup chain [0-9]+.*handle 0x1.*cmp\\(u8 at 0 layer 0 mask 0xff gt 10\\)",
19*33c41192SZhengchao Shao        "matchCount": "1",
20*33c41192SZhengchao Shao        "teardown": [
21*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
22*33c41192SZhengchao Shao        ]
23*33c41192SZhengchao Shao    },
24*33c41192SZhengchao Shao    {
25*33c41192SZhengchao Shao        "id": "4721",
26*33c41192SZhengchao Shao        "name": "Add cgroup filter with cmp ematch u8/link layer with trans flag and pass action",
27*33c41192SZhengchao Shao        "category": [
28*33c41192SZhengchao Shao            "filter",
29*33c41192SZhengchao Shao            "cgroup"
30*33c41192SZhengchao Shao        ],
31*33c41192SZhengchao Shao        "plugins": {
32*33c41192SZhengchao Shao            "requires": "nsPlugin"
33*33c41192SZhengchao Shao        },
34*33c41192SZhengchao Shao        "setup": [
35*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
36*33c41192SZhengchao Shao        ],
37*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff trans gt 10)' action pass",
38*33c41192SZhengchao Shao        "expExitCode": "0",
39*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
40*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref [0-9]+ cgroup chain [0-9]+.*handle 0x1.*cmp\\(u8 at 0 layer 0 mask 0xff trans gt 10\\)",
41*33c41192SZhengchao Shao        "matchCount": "1",
42*33c41192SZhengchao Shao        "teardown": [
43*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
44*33c41192SZhengchao Shao        ]
45*33c41192SZhengchao Shao    },
46*33c41192SZhengchao Shao    {
47*33c41192SZhengchao Shao        "id": "d392",
48*33c41192SZhengchao Shao        "name": "Add cgroup filter with cmp ematch u16/link layer and pipe action",
49*33c41192SZhengchao Shao        "category": [
50*33c41192SZhengchao Shao            "filter",
51*33c41192SZhengchao Shao            "cgroup"
52*33c41192SZhengchao Shao        ],
53*33c41192SZhengchao Shao        "plugins": {
54*33c41192SZhengchao Shao            "requires": "nsPlugin"
55*33c41192SZhengchao Shao        },
56*33c41192SZhengchao Shao        "setup": [
57*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
58*33c41192SZhengchao Shao        ],
59*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u16 at 0 layer 0 mask 0xff00 lt 3)' action pipe",
60*33c41192SZhengchao Shao        "expExitCode": "0",
61*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
62*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref [0-9]+ cgroup chain [0-9]+.*handle 0x1.*cmp\\(u16 at 0 layer 0 mask 0xff00 lt 3\\).*action pipe",
63*33c41192SZhengchao Shao        "matchCount": "1",
64*33c41192SZhengchao Shao        "teardown": [
65*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
66*33c41192SZhengchao Shao        ]
67*33c41192SZhengchao Shao    },
68*33c41192SZhengchao Shao    {
69*33c41192SZhengchao Shao        "id": "0234",
70*33c41192SZhengchao Shao        "name": "Add cgroup filter with cmp ematch u32/link layer and miltiple actions",
71*33c41192SZhengchao Shao        "category": [
72*33c41192SZhengchao Shao            "filter",
73*33c41192SZhengchao Shao            "cgroup"
74*33c41192SZhengchao Shao        ],
75*33c41192SZhengchao Shao        "plugins": {
76*33c41192SZhengchao Shao            "requires": "nsPlugin"
77*33c41192SZhengchao Shao        },
78*33c41192SZhengchao Shao        "setup": [
79*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
80*33c41192SZhengchao Shao        ],
81*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u32 at 4 layer link mask 0xff00ff00 eq 3)' action skbedit mark 7 pipe action gact drop",
82*33c41192SZhengchao Shao        "expExitCode": "0",
83*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
84*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref [0-9]+ cgroup chain [0-9]+.*handle 0x1.*cmp\\(u32 at 4 layer 0 mask 0xff00ff00 eq 3\\).*action.*skbedit.*mark 7 pipe.*action.*gact action drop",
85*33c41192SZhengchao Shao        "matchCount": "1",
86*33c41192SZhengchao Shao        "teardown": [
87*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
88*33c41192SZhengchao Shao        ]
89*33c41192SZhengchao Shao    },
90*33c41192SZhengchao Shao    {
91*33c41192SZhengchao Shao        "id": "8499",
92*33c41192SZhengchao Shao        "name": "Add cgroup filter with cmp ematch u8/network layer and pass action",
93*33c41192SZhengchao Shao        "category": [
94*33c41192SZhengchao Shao            "filter",
95*33c41192SZhengchao Shao            "cgroup"
96*33c41192SZhengchao Shao        ],
97*33c41192SZhengchao Shao        "plugins": {
98*33c41192SZhengchao Shao            "requires": "nsPlugin"
99*33c41192SZhengchao Shao        },
100*33c41192SZhengchao Shao        "setup": [
101*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
102*33c41192SZhengchao Shao        ],
103*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0xab protocol ip prio 11 cgroup match 'cmp(u8 at 0 layer 1 mask 0xff gt 10)' action pass",
104*33c41192SZhengchao Shao        "expExitCode": "0",
105*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show  dev $DEV1 parent ffff:",
106*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 11 cgroup.*handle 0xab.*cmp\\(u8 at 0 layer 1 mask 0xff gt 10\\)",
107*33c41192SZhengchao Shao        "matchCount": "1",
108*33c41192SZhengchao Shao        "teardown": [
109*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
110*33c41192SZhengchao Shao        ]
111*33c41192SZhengchao Shao    },
112*33c41192SZhengchao Shao    {
113*33c41192SZhengchao Shao        "id": "b273",
114*33c41192SZhengchao Shao        "name": "Add cgroup filter with cmp ematch u8/network layer with trans flag and drop action",
115*33c41192SZhengchao Shao        "category": [
116*33c41192SZhengchao Shao            "filter",
117*33c41192SZhengchao Shao            "cgroup"
118*33c41192SZhengchao Shao        ],
119*33c41192SZhengchao Shao        "plugins": {
120*33c41192SZhengchao Shao            "requires": "nsPlugin"
121*33c41192SZhengchao Shao        },
122*33c41192SZhengchao Shao        "setup": [
123*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
124*33c41192SZhengchao Shao        ],
125*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0xab protocol ip prio 11 cgroup match 'cmp(u8 at 0 layer 1 mask 0xff trans gt 10)' action drop",
126*33c41192SZhengchao Shao        "expExitCode": "0",
127*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
128*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 11 cgroup.*handle 0xab.*cmp\\(u8 at 0 layer 1 mask 0xff trans gt 10\\)",
129*33c41192SZhengchao Shao        "matchCount": "1",
130*33c41192SZhengchao Shao        "teardown": [
131*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
132*33c41192SZhengchao Shao        ]
133*33c41192SZhengchao Shao    },
134*33c41192SZhengchao Shao    {
135*33c41192SZhengchao Shao        "id": "1934",
136*33c41192SZhengchao Shao        "name": "Add cgroup filter with cmp ematch u16/network layer and pipe action",
137*33c41192SZhengchao Shao        "category": [
138*33c41192SZhengchao Shao            "filter",
139*33c41192SZhengchao Shao            "cgroup"
140*33c41192SZhengchao Shao        ],
141*33c41192SZhengchao Shao        "plugins": {
142*33c41192SZhengchao Shao            "requires": "nsPlugin"
143*33c41192SZhengchao Shao        },
144*33c41192SZhengchao Shao        "setup": [
145*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
146*33c41192SZhengchao Shao        ],
147*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0x100 protocol ip prio 100 cgroup match 'cmp(u16 at 0 layer network mask 0xff00 lt 3)' action pipe",
148*33c41192SZhengchao Shao        "expExitCode": "0",
149*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
150*33c41192SZhengchao Shao        "matchPattern": "filter protocol ip pref 100 cgroup.*handle 0x100..*cmp\\(u16 at 0 layer 1 mask 0xff00 lt 3\\)",
151*33c41192SZhengchao Shao        "matchCount": "1",
152*33c41192SZhengchao Shao        "teardown": [
153*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
154*33c41192SZhengchao Shao        ]
155*33c41192SZhengchao Shao    },
156*33c41192SZhengchao Shao    {
157*33c41192SZhengchao Shao        "id": "2733",
158*33c41192SZhengchao Shao        "name": "Add cgroup filter with cmp ematch u32/network layer and miltiple actions",
159*33c41192SZhengchao Shao        "category": [
160*33c41192SZhengchao Shao            "filter",
161*33c41192SZhengchao Shao            "cgroup"
162*33c41192SZhengchao Shao        ],
163*33c41192SZhengchao Shao        "plugins": {
164*33c41192SZhengchao Shao            "requires": "nsPlugin"
165*33c41192SZhengchao Shao        },
166*33c41192SZhengchao Shao        "setup": [
167*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
168*33c41192SZhengchao Shao        ],
169*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 0x112233 protocol ip prio 7 cgroup match 'cmp(u32 at 4 layer network mask 0xff00ff00 eq 3)' action skbedit mark 7 pipe action gact drop",
170*33c41192SZhengchao Shao        "expExitCode": "0",
171*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
172*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 7 cgroup.*handle 0x112233.*cmp\\(u32 at 4 layer 1 mask 0xff00ff00 eq 3\\).*action.*skbedit.*mark 7 pipe.*action.*gact action drop",
173*33c41192SZhengchao Shao        "matchCount": "1",
174*33c41192SZhengchao Shao        "teardown": [
175*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
176*33c41192SZhengchao Shao        ]
177*33c41192SZhengchao Shao    },
178*33c41192SZhengchao Shao    {
179*33c41192SZhengchao Shao        "id": "3271",
180*33c41192SZhengchao Shao        "name": "Add cgroup filter with NOT cmp ematch rule and pass action",
181*33c41192SZhengchao Shao        "category": [
182*33c41192SZhengchao Shao            "filter",
183*33c41192SZhengchao Shao            "cgroup"
184*33c41192SZhengchao Shao        ],
185*33c41192SZhengchao Shao        "plugins": {
186*33c41192SZhengchao Shao            "requires": "nsPlugin"
187*33c41192SZhengchao Shao        },
188*33c41192SZhengchao Shao        "setup": [
189*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
190*33c41192SZhengchao Shao        ],
191*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'not cmp(u8 at 0 layer link mask 0xff eq 3)' action pass",
192*33c41192SZhengchao Shao        "expExitCode": "0",
193*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
194*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*NOT cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\)",
195*33c41192SZhengchao Shao        "matchCount": "1",
196*33c41192SZhengchao Shao        "teardown": [
197*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
198*33c41192SZhengchao Shao        ]
199*33c41192SZhengchao Shao    },
200*33c41192SZhengchao Shao    {
201*33c41192SZhengchao Shao        "id": "2362",
202*33c41192SZhengchao Shao        "name": "Add cgroup filter with two ANDed cmp ematch rules and single action",
203*33c41192SZhengchao Shao        "category": [
204*33c41192SZhengchao Shao            "filter",
205*33c41192SZhengchao Shao            "cgroup"
206*33c41192SZhengchao Shao        ],
207*33c41192SZhengchao Shao        "plugins": {
208*33c41192SZhengchao Shao            "requires": "nsPlugin"
209*33c41192SZhengchao Shao        },
210*33c41192SZhengchao Shao        "setup": [
211*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
212*33c41192SZhengchao Shao        ],
213*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff eq 3) and cmp(u16 at 8 layer link mask 0x00ff gt 7)' action gact drop",
214*33c41192SZhengchao Shao        "expExitCode": "0",
215*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
216*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\).*AND cmp\\(u16 at 8 layer 0 mask 0xff gt 7\\).*action.*gact action drop",
217*33c41192SZhengchao Shao        "matchCount": "1",
218*33c41192SZhengchao Shao        "teardown": [
219*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
220*33c41192SZhengchao Shao        ]
221*33c41192SZhengchao Shao    },
222*33c41192SZhengchao Shao    {
223*33c41192SZhengchao Shao        "id": "9993",
224*33c41192SZhengchao Shao        "name": "Add cgroup filter with two ORed cmp ematch rules and single action",
225*33c41192SZhengchao Shao        "category": [
226*33c41192SZhengchao Shao            "filter",
227*33c41192SZhengchao Shao            "cgroup"
228*33c41192SZhengchao Shao        ],
229*33c41192SZhengchao Shao        "plugins": {
230*33c41192SZhengchao Shao            "requires": "nsPlugin"
231*33c41192SZhengchao Shao        },
232*33c41192SZhengchao Shao        "setup": [
233*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
234*33c41192SZhengchao Shao        ],
235*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff eq 3) or cmp(u16 at 8 layer link mask 0x00ff gt 7)' action gact drop",
236*33c41192SZhengchao Shao        "expExitCode": "0",
237*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
238*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\).*OR cmp\\(u16 at 8 layer 0 mask 0xff gt 7\\).*action.*gact action drop",
239*33c41192SZhengchao Shao        "matchCount": "1",
240*33c41192SZhengchao Shao        "teardown": [
241*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
242*33c41192SZhengchao Shao        ]
243*33c41192SZhengchao Shao    },
244*33c41192SZhengchao Shao    {
245*33c41192SZhengchao Shao        "id": "2331",
246*33c41192SZhengchao Shao        "name": "Add cgroup filter with two ANDed cmp ematch rules and one ORed ematch rule and single action",
247*33c41192SZhengchao Shao        "category": [
248*33c41192SZhengchao Shao            "filter",
249*33c41192SZhengchao Shao            "cgroup"
250*33c41192SZhengchao Shao        ],
251*33c41192SZhengchao Shao        "plugins": {
252*33c41192SZhengchao Shao            "requires": "nsPlugin"
253*33c41192SZhengchao Shao        },
254*33c41192SZhengchao Shao        "setup": [
255*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
256*33c41192SZhengchao Shao        ],
257*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff eq 3) and cmp(u16 at 8 layer link mask 0x00ff gt 7) or cmp(u32 at 4 layer network mask 0xa0a0 lt 3)' action gact drop",
258*33c41192SZhengchao Shao        "expExitCode": "0",
259*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
260*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\).*AND cmp\\(u16 at 8 layer 0 mask 0xff gt 7\\).*OR cmp\\(u32 at 4 layer 1 mask 0xa0a0 lt 3\\).*action.*gact action drop",
261*33c41192SZhengchao Shao        "matchCount": "1",
262*33c41192SZhengchao Shao        "teardown": [
263*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
264*33c41192SZhengchao Shao        ]
265*33c41192SZhengchao Shao    },
266*33c41192SZhengchao Shao    {
267*33c41192SZhengchao Shao        "id": "3645",
268*33c41192SZhengchao Shao        "name": "Add cgroup filter with two ANDed cmp ematch rules and one NOT ORed ematch rule and single action",
269*33c41192SZhengchao Shao        "category": [
270*33c41192SZhengchao Shao            "filter",
271*33c41192SZhengchao Shao            "cgroup"
272*33c41192SZhengchao Shao        ],
273*33c41192SZhengchao Shao        "plugins": {
274*33c41192SZhengchao Shao            "requires": "nsPlugin"
275*33c41192SZhengchao Shao        },
276*33c41192SZhengchao Shao        "setup": [
277*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
278*33c41192SZhengchao Shao        ],
279*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff eq 3) and cmp(u16 at 8 layer link mask 0x00ff gt 7) or not cmp(u32 at 4 layer network mask 0xa0a0 lt 3)' action gact drop",
280*33c41192SZhengchao Shao        "expExitCode": "0",
281*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
282*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*cmp\\(u8 at 0 layer 0 mask 0xff eq 3\\).*AND cmp\\(u16 at 8 layer 0 mask 0xff gt 7\\).*OR NOT cmp\\(u32 at 4 layer 1 mask 0xa0a0 lt 3\\).*action.*gact action drop",
283*33c41192SZhengchao Shao        "matchCount": "1",
284*33c41192SZhengchao Shao        "teardown": [
285*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
286*33c41192SZhengchao Shao        ]
287*33c41192SZhengchao Shao    },
288*33c41192SZhengchao Shao    {
289*33c41192SZhengchao Shao        "id": "b124",
290*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/zero offset and drop action",
291*33c41192SZhengchao Shao        "category": [
292*33c41192SZhengchao Shao            "filter",
293*33c41192SZhengchao Shao            "cgroup"
294*33c41192SZhengchao Shao        ],
295*33c41192SZhengchao Shao        "plugins": {
296*33c41192SZhengchao Shao            "requires": "nsPlugin"
297*33c41192SZhengchao Shao        },
298*33c41192SZhengchao Shao        "setup": [
299*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
300*33c41192SZhengchao Shao        ],
301*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 0x11 0x0f at 0)' action drop",
302*33c41192SZhengchao Shao        "expExitCode": "0",
303*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
304*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(01000000/0f000000 at 0\\)",
305*33c41192SZhengchao Shao        "matchCount": "1",
306*33c41192SZhengchao Shao        "teardown": [
307*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
308*33c41192SZhengchao Shao        ]
309*33c41192SZhengchao Shao    },
310*33c41192SZhengchao Shao    {
311*33c41192SZhengchao Shao        "id": "7381",
312*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/zero offset and invalid value >0xFF",
313*33c41192SZhengchao Shao        "category": [
314*33c41192SZhengchao Shao            "filter",
315*33c41192SZhengchao Shao            "cgroup"
316*33c41192SZhengchao Shao        ],
317*33c41192SZhengchao Shao        "plugins": {
318*33c41192SZhengchao Shao            "requires": "nsPlugin"
319*33c41192SZhengchao Shao        },
320*33c41192SZhengchao Shao        "setup": [
321*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
322*33c41192SZhengchao Shao        ],
323*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 basic match 'u32(u8 0x1122 0x0f at 0)' action pass",
324*33c41192SZhengchao Shao        "expExitCode": "1",
325*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
326*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11220000/0f000000 at 0\\)",
327*33c41192SZhengchao Shao        "matchCount": "0",
328*33c41192SZhengchao Shao        "teardown": [
329*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
330*33c41192SZhengchao Shao        ]
331*33c41192SZhengchao Shao    },
332*33c41192SZhengchao Shao    {
333*33c41192SZhengchao Shao        "id": "2231",
334*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/positive offset and drop action",
335*33c41192SZhengchao Shao        "category": [
336*33c41192SZhengchao Shao            "filter",
337*33c41192SZhengchao Shao            "cgroup"
338*33c41192SZhengchao Shao        ],
339*33c41192SZhengchao Shao        "plugins": {
340*33c41192SZhengchao Shao            "requires": "nsPlugin"
341*33c41192SZhengchao Shao        },
342*33c41192SZhengchao Shao        "setup": [
343*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
344*33c41192SZhengchao Shao        ],
345*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 0x77 0x1f at 12)' action drop",
346*33c41192SZhengchao Shao        "expExitCode": "0",
347*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
348*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(17000000/1f000000 at 12\\)",
349*33c41192SZhengchao Shao        "matchCount": "1",
350*33c41192SZhengchao Shao        "teardown": [
351*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
352*33c41192SZhengchao Shao        ]
353*33c41192SZhengchao Shao    },
354*33c41192SZhengchao Shao    {
355*33c41192SZhengchao Shao        "id": "1882",
356*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/invalid mask >0xFF",
357*33c41192SZhengchao Shao        "category": [
358*33c41192SZhengchao Shao            "filter",
359*33c41192SZhengchao Shao            "cgroup"
360*33c41192SZhengchao Shao        ],
361*33c41192SZhengchao Shao        "plugins": {
362*33c41192SZhengchao Shao            "requires": "nsPlugin"
363*33c41192SZhengchao Shao        },
364*33c41192SZhengchao Shao        "setup": [
365*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
366*33c41192SZhengchao Shao        ],
367*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 0x77 0xff00 at 12)' action drop",
368*33c41192SZhengchao Shao        "expExitCode": "1",
369*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
370*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77000000/ff000000 at 12\\)",
371*33c41192SZhengchao Shao        "matchCount": "0",
372*33c41192SZhengchao Shao        "teardown": [
373*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
374*33c41192SZhengchao Shao        ]
375*33c41192SZhengchao Shao    },
376*33c41192SZhengchao Shao    {
377*33c41192SZhengchao Shao        "id": "1237",
378*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/missing offset",
379*33c41192SZhengchao Shao        "category": [
380*33c41192SZhengchao Shao            "filter",
381*33c41192SZhengchao Shao            "cgroup"
382*33c41192SZhengchao Shao        ],
383*33c41192SZhengchao Shao        "plugins": {
384*33c41192SZhengchao Shao            "requires": "nsPlugin"
385*33c41192SZhengchao Shao        },
386*33c41192SZhengchao Shao        "setup": [
387*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
388*33c41192SZhengchao Shao        ],
389*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 0x77 0xff at)' action pipe",
390*33c41192SZhengchao Shao        "expExitCode": "1",
391*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
392*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77000000 at 12\\)",
393*33c41192SZhengchao Shao        "matchCount": "0",
394*33c41192SZhengchao Shao        "teardown": [
395*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
396*33c41192SZhengchao Shao        ]
397*33c41192SZhengchao Shao    },
398*33c41192SZhengchao Shao    {
399*33c41192SZhengchao Shao        "id": "3812",
400*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/missing AT keyword",
401*33c41192SZhengchao Shao        "category": [
402*33c41192SZhengchao Shao            "filter",
403*33c41192SZhengchao Shao            "cgroup"
404*33c41192SZhengchao Shao        ],
405*33c41192SZhengchao Shao        "plugins": {
406*33c41192SZhengchao Shao            "requires": "nsPlugin"
407*33c41192SZhengchao Shao        },
408*33c41192SZhengchao Shao        "setup": [
409*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
410*33c41192SZhengchao Shao        ],
411*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 0x77 0xff 0)' action pass",
412*33c41192SZhengchao Shao        "expExitCode": "1",
413*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
414*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77000000 at 12\\)",
415*33c41192SZhengchao Shao        "matchCount": "0",
416*33c41192SZhengchao Shao        "teardown": [
417*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
418*33c41192SZhengchao Shao        ]
419*33c41192SZhengchao Shao    },
420*33c41192SZhengchao Shao    {
421*33c41192SZhengchao Shao        "id": "1112",
422*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/missing value",
423*33c41192SZhengchao Shao        "category": [
424*33c41192SZhengchao Shao            "filter",
425*33c41192SZhengchao Shao            "cgroup"
426*33c41192SZhengchao Shao        ],
427*33c41192SZhengchao Shao        "plugins": {
428*33c41192SZhengchao Shao            "requires": "nsPlugin"
429*33c41192SZhengchao Shao        },
430*33c41192SZhengchao Shao        "setup": [
431*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
432*33c41192SZhengchao Shao        ],
433*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 at 12)' action drop",
434*33c41192SZhengchao Shao        "expExitCode": "1",
435*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
436*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(at 12\\)",
437*33c41192SZhengchao Shao        "matchCount": "0",
438*33c41192SZhengchao Shao        "teardown": [
439*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
440*33c41192SZhengchao Shao        ]
441*33c41192SZhengchao Shao    },
442*33c41192SZhengchao Shao    {
443*33c41192SZhengchao Shao        "id": "3241",
444*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/non-numeric value",
445*33c41192SZhengchao Shao        "category": [
446*33c41192SZhengchao Shao            "filter",
447*33c41192SZhengchao Shao            "cgroup"
448*33c41192SZhengchao Shao        ],
449*33c41192SZhengchao Shao        "plugins": {
450*33c41192SZhengchao Shao            "requires": "nsPlugin"
451*33c41192SZhengchao Shao        },
452*33c41192SZhengchao Shao        "setup": [
453*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
454*33c41192SZhengchao Shao        ],
455*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 zero 0xff at 0)' action pipe",
456*33c41192SZhengchao Shao        "expExitCode": "1",
457*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
458*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1 flowid 1:1.*u32\\(00000000/ff000000 at 0\\)",
459*33c41192SZhengchao Shao        "matchCount": "0",
460*33c41192SZhengchao Shao        "teardown": [
461*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
462*33c41192SZhengchao Shao        ]
463*33c41192SZhengchao Shao    },
464*33c41192SZhengchao Shao    {
465*33c41192SZhengchao Shao        "id": "e231",
466*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/non-numeric mask",
467*33c41192SZhengchao Shao        "category": [
468*33c41192SZhengchao Shao            "filter",
469*33c41192SZhengchao Shao            "cgroup"
470*33c41192SZhengchao Shao        ],
471*33c41192SZhengchao Shao        "plugins": {
472*33c41192SZhengchao Shao            "requires": "nsPlugin"
473*33c41192SZhengchao Shao        },
474*33c41192SZhengchao Shao        "setup": [
475*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
476*33c41192SZhengchao Shao        ],
477*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 0x11 mask at 0)' action pass",
478*33c41192SZhengchao Shao        "expExitCode": "1",
479*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
480*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11000000/00000000 at 0\\)",
481*33c41192SZhengchao Shao        "matchCount": "0",
482*33c41192SZhengchao Shao        "teardown": [
483*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
484*33c41192SZhengchao Shao        ]
485*33c41192SZhengchao Shao    },
486*33c41192SZhengchao Shao    {
487*33c41192SZhengchao Shao        "id": "4652",
488*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/negative offset and pass action",
489*33c41192SZhengchao Shao        "category": [
490*33c41192SZhengchao Shao            "filter",
491*33c41192SZhengchao Shao            "cgroup"
492*33c41192SZhengchao Shao        ],
493*33c41192SZhengchao Shao        "plugins": {
494*33c41192SZhengchao Shao            "requires": "nsPlugin"
495*33c41192SZhengchao Shao        },
496*33c41192SZhengchao Shao        "setup": [
497*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
498*33c41192SZhengchao Shao        ],
499*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 0xaa 0xf0 at -14)' action pass",
500*33c41192SZhengchao Shao        "expExitCode": "0",
501*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
502*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(0000a000/0000f000 at -16\\)",
503*33c41192SZhengchao Shao        "matchCount": "1",
504*33c41192SZhengchao Shao        "teardown": [
505*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
506*33c41192SZhengchao Shao        ]
507*33c41192SZhengchao Shao    },
508*33c41192SZhengchao Shao    {
509*33c41192SZhengchao Shao        "id": "7566",
510*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u8/nexthdr+ offset and drop action",
511*33c41192SZhengchao Shao        "category": [
512*33c41192SZhengchao Shao            "filter",
513*33c41192SZhengchao Shao            "drop"
514*33c41192SZhengchao Shao        ],
515*33c41192SZhengchao Shao        "plugins": {
516*33c41192SZhengchao Shao            "requires": "nsPlugin"
517*33c41192SZhengchao Shao        },
518*33c41192SZhengchao Shao        "setup": [
519*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
520*33c41192SZhengchao Shao        ],
521*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 0xaa 0xf0 at nexthdr+0)' action drop",
522*33c41192SZhengchao Shao        "expExitCode": "0",
523*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
524*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(a0000000/f0000000 at nexthdr\\+0\\)",
525*33c41192SZhengchao Shao        "matchCount": "1",
526*33c41192SZhengchao Shao        "teardown": [
527*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
528*33c41192SZhengchao Shao        ]
529*33c41192SZhengchao Shao    },
530*33c41192SZhengchao Shao    {
531*33c41192SZhengchao Shao        "id": "1331",
532*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/zero offset and pipe action",
533*33c41192SZhengchao Shao        "category": [
534*33c41192SZhengchao Shao            "filter",
535*33c41192SZhengchao Shao            "cgroup"
536*33c41192SZhengchao Shao        ],
537*33c41192SZhengchao Shao        "plugins": {
538*33c41192SZhengchao Shao            "requires": "nsPlugin"
539*33c41192SZhengchao Shao        },
540*33c41192SZhengchao Shao        "setup": [
541*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
542*33c41192SZhengchao Shao        ],
543*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u16 0x1122 0xffff at 0)' action pipe",
544*33c41192SZhengchao Shao        "expExitCode": "0",
545*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
546*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11220000/ffff0000 at 0\\)",
547*33c41192SZhengchao Shao        "matchCount": "1",
548*33c41192SZhengchao Shao        "teardown": [
549*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
550*33c41192SZhengchao Shao        ]
551*33c41192SZhengchao Shao    },
552*33c41192SZhengchao Shao    {
553*33c41192SZhengchao Shao        "id": "e354",
554*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/zero offset and invalid value >0xFFFF",
555*33c41192SZhengchao Shao        "category": [
556*33c41192SZhengchao Shao            "filter",
557*33c41192SZhengchao Shao            "cgroup"
558*33c41192SZhengchao Shao        ],
559*33c41192SZhengchao Shao        "plugins": {
560*33c41192SZhengchao Shao            "requires": "nsPlugin"
561*33c41192SZhengchao Shao        },
562*33c41192SZhengchao Shao        "setup": [
563*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
564*33c41192SZhengchao Shao        ],
565*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u16 0x112233 0xffff at 0)'",
566*33c41192SZhengchao Shao        "expExitCode": "1",
567*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
568*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11223300/ffff0000 at 0\\)",
569*33c41192SZhengchao Shao        "matchCount": "0",
570*33c41192SZhengchao Shao        "teardown": [
571*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
572*33c41192SZhengchao Shao        ]
573*33c41192SZhengchao Shao    },
574*33c41192SZhengchao Shao    {
575*33c41192SZhengchao Shao        "id": "3538",
576*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/positive offset and drop action",
577*33c41192SZhengchao Shao        "category": [
578*33c41192SZhengchao Shao            "filter",
579*33c41192SZhengchao Shao            "cgroup"
580*33c41192SZhengchao Shao        ],
581*33c41192SZhengchao Shao        "plugins": {
582*33c41192SZhengchao Shao            "requires": "nsPlugin"
583*33c41192SZhengchao Shao        },
584*33c41192SZhengchao Shao        "setup": [
585*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
586*33c41192SZhengchao Shao        ],
587*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u16 0x7788 0x1fff at 12)' action drop",
588*33c41192SZhengchao Shao        "expExitCode": "0",
589*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
590*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(17880000/1fff0000 at 12\\)",
591*33c41192SZhengchao Shao        "matchCount": "1",
592*33c41192SZhengchao Shao        "teardown": [
593*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
594*33c41192SZhengchao Shao        ]
595*33c41192SZhengchao Shao    },
596*33c41192SZhengchao Shao    {
597*33c41192SZhengchao Shao        "id": "4576",
598*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/invalid mask >0xFFFF",
599*33c41192SZhengchao Shao        "category": [
600*33c41192SZhengchao Shao            "filter",
601*33c41192SZhengchao Shao            "cgroup"
602*33c41192SZhengchao Shao        ],
603*33c41192SZhengchao Shao        "plugins": {
604*33c41192SZhengchao Shao            "requires": "nsPlugin"
605*33c41192SZhengchao Shao        },
606*33c41192SZhengchao Shao        "setup": [
607*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
608*33c41192SZhengchao Shao        ],
609*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u16 0x7788 0xffffffff at 12)' action pass",
610*33c41192SZhengchao Shao        "expExitCode": "1",
611*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
612*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77880000/ffffffff at 12\\)",
613*33c41192SZhengchao Shao        "matchCount": "0",
614*33c41192SZhengchao Shao        "teardown": [
615*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
616*33c41192SZhengchao Shao        ]
617*33c41192SZhengchao Shao    },
618*33c41192SZhengchao Shao    {
619*33c41192SZhengchao Shao        "id": "b842",
620*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/missing offset",
621*33c41192SZhengchao Shao        "category": [
622*33c41192SZhengchao Shao            "filter",
623*33c41192SZhengchao Shao            "cgroup"
624*33c41192SZhengchao Shao        ],
625*33c41192SZhengchao Shao        "plugins": {
626*33c41192SZhengchao Shao            "requires": "nsPlugin"
627*33c41192SZhengchao Shao        },
628*33c41192SZhengchao Shao        "setup": [
629*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
630*33c41192SZhengchao Shao        ],
631*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u16 0x7788 0xffff at)' action pass",
632*33c41192SZhengchao Shao        "expExitCode": "1",
633*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
634*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77880000 at 12\\)",
635*33c41192SZhengchao Shao        "matchCount": "0",
636*33c41192SZhengchao Shao        "teardown": [
637*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
638*33c41192SZhengchao Shao        ]
639*33c41192SZhengchao Shao    },
640*33c41192SZhengchao Shao    {
641*33c41192SZhengchao Shao        "id": "c924",
642*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/missing AT keyword",
643*33c41192SZhengchao Shao        "category": [
644*33c41192SZhengchao Shao            "filter",
645*33c41192SZhengchao Shao            "cgroup"
646*33c41192SZhengchao Shao        ],
647*33c41192SZhengchao Shao        "plugins": {
648*33c41192SZhengchao Shao            "requires": "nsPlugin"
649*33c41192SZhengchao Shao        },
650*33c41192SZhengchao Shao        "setup": [
651*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
652*33c41192SZhengchao Shao        ],
653*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u16 0x7788 0xffff 0)' action pass",
654*33c41192SZhengchao Shao        "expExitCode": "1",
655*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
656*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77880000/ffff0000 at 0\\)",
657*33c41192SZhengchao Shao        "matchCount": "0",
658*33c41192SZhengchao Shao        "teardown": [
659*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
660*33c41192SZhengchao Shao        ]
661*33c41192SZhengchao Shao    },
662*33c41192SZhengchao Shao    {
663*33c41192SZhengchao Shao        "id": "cc93",
664*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/missing value",
665*33c41192SZhengchao Shao        "category": [
666*33c41192SZhengchao Shao            "filter",
667*33c41192SZhengchao Shao            "cgroup"
668*33c41192SZhengchao Shao        ],
669*33c41192SZhengchao Shao        "plugins": {
670*33c41192SZhengchao Shao            "requires": "nsPlugin"
671*33c41192SZhengchao Shao        },
672*33c41192SZhengchao Shao        "setup": [
673*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
674*33c41192SZhengchao Shao        ],
675*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u16 at 12)' action pass",
676*33c41192SZhengchao Shao        "expExitCode": "1",
677*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
678*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(at 12\\)",
679*33c41192SZhengchao Shao        "matchCount": "0",
680*33c41192SZhengchao Shao        "teardown": [
681*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
682*33c41192SZhengchao Shao        ]
683*33c41192SZhengchao Shao    },
684*33c41192SZhengchao Shao    {
685*33c41192SZhengchao Shao        "id": "123c",
686*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/non-numeric value",
687*33c41192SZhengchao Shao        "category": [
688*33c41192SZhengchao Shao            "filter",
689*33c41192SZhengchao Shao            "cgroup"
690*33c41192SZhengchao Shao        ],
691*33c41192SZhengchao Shao        "plugins": {
692*33c41192SZhengchao Shao            "requires": "nsPlugin"
693*33c41192SZhengchao Shao        },
694*33c41192SZhengchao Shao        "setup": [
695*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
696*33c41192SZhengchao Shao        ],
697*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u16 zero 0xffff at 0)' action pass",
698*33c41192SZhengchao Shao        "expExitCode": "1",
699*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
700*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(00000000/ffff0000 at 0\\)",
701*33c41192SZhengchao Shao        "matchCount": "0",
702*33c41192SZhengchao Shao        "teardown": [
703*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
704*33c41192SZhengchao Shao        ]
705*33c41192SZhengchao Shao    },
706*33c41192SZhengchao Shao    {
707*33c41192SZhengchao Shao        "id": "3675",
708*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/non-numeric mask",
709*33c41192SZhengchao Shao        "category": [
710*33c41192SZhengchao Shao            "filter",
711*33c41192SZhengchao Shao            "cgroup"
712*33c41192SZhengchao Shao        ],
713*33c41192SZhengchao Shao        "plugins": {
714*33c41192SZhengchao Shao            "requires": "nsPlugin"
715*33c41192SZhengchao Shao        },
716*33c41192SZhengchao Shao        "setup": [
717*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
718*33c41192SZhengchao Shao        ],
719*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u8 0x1122 mask at 0)' action pass",
720*33c41192SZhengchao Shao        "expExitCode": "1",
721*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
722*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11220000/00000000 at 0\\)",
723*33c41192SZhengchao Shao        "matchCount": "0",
724*33c41192SZhengchao Shao        "teardown": [
725*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
726*33c41192SZhengchao Shao        ]
727*33c41192SZhengchao Shao    },
728*33c41192SZhengchao Shao    {
729*33c41192SZhengchao Shao        "id": "1123",
730*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/negative offset and drop action",
731*33c41192SZhengchao Shao        "category": [
732*33c41192SZhengchao Shao            "filter",
733*33c41192SZhengchao Shao            "cgroup"
734*33c41192SZhengchao Shao        ],
735*33c41192SZhengchao Shao        "plugins": {
736*33c41192SZhengchao Shao            "requires": "nsPlugin"
737*33c41192SZhengchao Shao        },
738*33c41192SZhengchao Shao        "setup": [
739*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
740*33c41192SZhengchao Shao        ],
741*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u16 0xaabb 0xffff at -12)' action drop",
742*33c41192SZhengchao Shao        "expExitCode": "0",
743*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
744*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(aabb0000/ffff0000 at -12\\)",
745*33c41192SZhengchao Shao        "matchCount": "1",
746*33c41192SZhengchao Shao        "teardown": [
747*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
748*33c41192SZhengchao Shao        ]
749*33c41192SZhengchao Shao    },
750*33c41192SZhengchao Shao    {
751*33c41192SZhengchao Shao        "id": "4234",
752*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u16/nexthdr+ offset and pass action",
753*33c41192SZhengchao Shao        "category": [
754*33c41192SZhengchao Shao            "filter",
755*33c41192SZhengchao Shao            "cgroup"
756*33c41192SZhengchao Shao        ],
757*33c41192SZhengchao Shao        "plugins": {
758*33c41192SZhengchao Shao            "requires": "nsPlugin"
759*33c41192SZhengchao Shao        },
760*33c41192SZhengchao Shao        "setup": [
761*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
762*33c41192SZhengchao Shao        ],
763*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u16 0xaabb 0xf0f0 at nexthdr+0)' action pass",
764*33c41192SZhengchao Shao        "expExitCode": "0",
765*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
766*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(a0b00000/f0f00000 at nexthdr\\+0\\)",
767*33c41192SZhengchao Shao        "matchCount": "1",
768*33c41192SZhengchao Shao        "teardown": [
769*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
770*33c41192SZhengchao Shao        ]
771*33c41192SZhengchao Shao    },
772*33c41192SZhengchao Shao    {
773*33c41192SZhengchao Shao        "id": "e912",
774*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u32/zero offset and pipe action",
775*33c41192SZhengchao Shao        "category": [
776*33c41192SZhengchao Shao            "filter",
777*33c41192SZhengchao Shao            "cgroup"
778*33c41192SZhengchao Shao        ],
779*33c41192SZhengchao Shao        "plugins": {
780*33c41192SZhengchao Shao            "requires": "nsPlugin"
781*33c41192SZhengchao Shao        },
782*33c41192SZhengchao Shao        "setup": [
783*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
784*33c41192SZhengchao Shao        ],
785*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u32 0xaabbccdd 0xffffffff at 0)' action pipe",
786*33c41192SZhengchao Shao        "expExitCode": "0",
787*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
788*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(aabbccdd/ffffffff at 0\\)",
789*33c41192SZhengchao Shao        "matchCount": "1",
790*33c41192SZhengchao Shao        "teardown": [
791*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
792*33c41192SZhengchao Shao        ]
793*33c41192SZhengchao Shao    },
794*33c41192SZhengchao Shao    {
795*33c41192SZhengchao Shao        "id": "1435",
796*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u32/positive offset and drop action",
797*33c41192SZhengchao Shao        "category": [
798*33c41192SZhengchao Shao            "filter",
799*33c41192SZhengchao Shao            "cgroup"
800*33c41192SZhengchao Shao        ],
801*33c41192SZhengchao Shao        "plugins": {
802*33c41192SZhengchao Shao            "requires": "nsPlugin"
803*33c41192SZhengchao Shao        },
804*33c41192SZhengchao Shao        "setup": [
805*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
806*33c41192SZhengchao Shao        ],
807*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u32 0x11227788 0x1ffff0f0 at 12)' action drop",
808*33c41192SZhengchao Shao        "expExitCode": "0",
809*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
810*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11227080/1ffff0f0 at 12\\)",
811*33c41192SZhengchao Shao        "matchCount": "1",
812*33c41192SZhengchao Shao        "teardown": [
813*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
814*33c41192SZhengchao Shao        ]
815*33c41192SZhengchao Shao    },
816*33c41192SZhengchao Shao    {
817*33c41192SZhengchao Shao        "id": "1282",
818*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u32/missing offset",
819*33c41192SZhengchao Shao        "category": [
820*33c41192SZhengchao Shao            "filter",
821*33c41192SZhengchao Shao            "cgroup"
822*33c41192SZhengchao Shao        ],
823*33c41192SZhengchao Shao        "plugins": {
824*33c41192SZhengchao Shao            "requires": "nsPlugin"
825*33c41192SZhengchao Shao        },
826*33c41192SZhengchao Shao        "setup": [
827*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
828*33c41192SZhengchao Shao        ],
829*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u32 0x11227788 0xffffffff at)' action pass",
830*33c41192SZhengchao Shao        "expExitCode": "1",
831*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
832*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11227788/ffffffff at 12\\)",
833*33c41192SZhengchao Shao        "matchCount": "0",
834*33c41192SZhengchao Shao        "teardown": [
835*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
836*33c41192SZhengchao Shao        ]
837*33c41192SZhengchao Shao    },
838*33c41192SZhengchao Shao    {
839*33c41192SZhengchao Shao        "id": "6456",
840*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u32/missing AT keyword",
841*33c41192SZhengchao Shao        "category": [
842*33c41192SZhengchao Shao            "filter",
843*33c41192SZhengchao Shao            "cgroup"
844*33c41192SZhengchao Shao        ],
845*33c41192SZhengchao Shao        "plugins": {
846*33c41192SZhengchao Shao            "requires": "nsPlugin"
847*33c41192SZhengchao Shao        },
848*33c41192SZhengchao Shao        "setup": [
849*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
850*33c41192SZhengchao Shao        ],
851*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u32 0x77889900 0xfffff0f0 0)' action pipe",
852*33c41192SZhengchao Shao        "expExitCode": "1",
853*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
854*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(77889900/fffff0f0 at 0\\)",
855*33c41192SZhengchao Shao        "matchCount": "0",
856*33c41192SZhengchao Shao        "teardown": [
857*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
858*33c41192SZhengchao Shao        ]
859*33c41192SZhengchao Shao    },
860*33c41192SZhengchao Shao    {
861*33c41192SZhengchao Shao        "id": "4231",
862*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u32/missing value",
863*33c41192SZhengchao Shao        "category": [
864*33c41192SZhengchao Shao            "filter",
865*33c41192SZhengchao Shao            "cgroup"
866*33c41192SZhengchao Shao        ],
867*33c41192SZhengchao Shao        "plugins": {
868*33c41192SZhengchao Shao            "requires": "nsPlugin"
869*33c41192SZhengchao Shao        },
870*33c41192SZhengchao Shao        "setup": [
871*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
872*33c41192SZhengchao Shao        ],
873*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u32 at 12)' action pipe",
874*33c41192SZhengchao Shao        "expExitCode": "1",
875*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
876*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(at 12\\)",
877*33c41192SZhengchao Shao        "matchCount": "0",
878*33c41192SZhengchao Shao        "teardown": [
879*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
880*33c41192SZhengchao Shao        ]
881*33c41192SZhengchao Shao    },
882*33c41192SZhengchao Shao    {
883*33c41192SZhengchao Shao        "id": "2131",
884*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u32/non-numeric value",
885*33c41192SZhengchao Shao        "category": [
886*33c41192SZhengchao Shao            "filter",
887*33c41192SZhengchao Shao            "cgroup"
888*33c41192SZhengchao Shao        ],
889*33c41192SZhengchao Shao        "plugins": {
890*33c41192SZhengchao Shao            "requires": "nsPlugin"
891*33c41192SZhengchao Shao        },
892*33c41192SZhengchao Shao        "setup": [
893*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
894*33c41192SZhengchao Shao        ],
895*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u32 zero 0xffff at 0)' action pipe",
896*33c41192SZhengchao Shao        "expExitCode": "1",
897*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
898*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(00000000/ffff0000 at 0\\)",
899*33c41192SZhengchao Shao        "matchCount": "0",
900*33c41192SZhengchao Shao        "teardown": [
901*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
902*33c41192SZhengchao Shao        ]
903*33c41192SZhengchao Shao    },
904*33c41192SZhengchao Shao    {
905*33c41192SZhengchao Shao        "id": "f125",
906*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u32/non-numeric mask",
907*33c41192SZhengchao Shao        "category": [
908*33c41192SZhengchao Shao            "filter",
909*33c41192SZhengchao Shao            "cgroup"
910*33c41192SZhengchao Shao        ],
911*33c41192SZhengchao Shao        "plugins": {
912*33c41192SZhengchao Shao            "requires": "nsPlugin"
913*33c41192SZhengchao Shao        },
914*33c41192SZhengchao Shao        "setup": [
915*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
916*33c41192SZhengchao Shao        ],
917*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u32 0x11223344 mask at 0)' action pass",
918*33c41192SZhengchao Shao        "expExitCode": "1",
919*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
920*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(11223344/00000000 at 0\\)",
921*33c41192SZhengchao Shao        "matchCount": "0",
922*33c41192SZhengchao Shao        "teardown": [
923*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
924*33c41192SZhengchao Shao        ]
925*33c41192SZhengchao Shao    },
926*33c41192SZhengchao Shao    {
927*33c41192SZhengchao Shao        "id": "4316",
928*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u32/negative offset and drop action",
929*33c41192SZhengchao Shao        "category": [
930*33c41192SZhengchao Shao            "filter",
931*33c41192SZhengchao Shao            "cgroup"
932*33c41192SZhengchao Shao        ],
933*33c41192SZhengchao Shao        "plugins": {
934*33c41192SZhengchao Shao            "requires": "nsPlugin"
935*33c41192SZhengchao Shao        },
936*33c41192SZhengchao Shao        "setup": [
937*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
938*33c41192SZhengchao Shao        ],
939*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u32 0xaabbccdd 0xff00ff00 at -12)' action drop",
940*33c41192SZhengchao Shao        "expExitCode": "0",
941*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
942*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(aa00cc00/ff00ff00 at -12\\)",
943*33c41192SZhengchao Shao        "matchCount": "1",
944*33c41192SZhengchao Shao        "teardown": [
945*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
946*33c41192SZhengchao Shao        ]
947*33c41192SZhengchao Shao    },
948*33c41192SZhengchao Shao    {
949*33c41192SZhengchao Shao        "id": "23ae",
950*33c41192SZhengchao Shao        "name": "Add cgroup filter with u32 ematch u32/nexthdr+ offset and pipe action",
951*33c41192SZhengchao Shao        "category": [
952*33c41192SZhengchao Shao            "filter",
953*33c41192SZhengchao Shao            "cgroup"
954*33c41192SZhengchao Shao        ],
955*33c41192SZhengchao Shao        "plugins": {
956*33c41192SZhengchao Shao            "requires": "nsPlugin"
957*33c41192SZhengchao Shao        },
958*33c41192SZhengchao Shao        "setup": [
959*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
960*33c41192SZhengchao Shao        ],
961*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'u32(u32 0xaabbccdd 0xffffffff at nexthdr+0)' action pipe",
962*33c41192SZhengchao Shao        "expExitCode": "0",
963*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
964*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*u32\\(aabbccdd/ffffffff at nexthdr\\+0\\)",
965*33c41192SZhengchao Shao        "matchCount": "1",
966*33c41192SZhengchao Shao        "teardown": [
967*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
968*33c41192SZhengchao Shao        ]
969*33c41192SZhengchao Shao    },
970*33c41192SZhengchao Shao    {
971*33c41192SZhengchao Shao        "id": "23a1",
972*33c41192SZhengchao Shao        "name": "Add cgroup filter with canid ematch and single SFF",
973*33c41192SZhengchao Shao        "category": [
974*33c41192SZhengchao Shao            "filter",
975*33c41192SZhengchao Shao            "cgroup"
976*33c41192SZhengchao Shao        ],
977*33c41192SZhengchao Shao        "plugins": {
978*33c41192SZhengchao Shao            "requires": "nsPlugin"
979*33c41192SZhengchao Shao        },
980*33c41192SZhengchao Shao        "setup": [
981*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
982*33c41192SZhengchao Shao        ],
983*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'canid(sff 1)' action pass",
984*33c41192SZhengchao Shao        "expExitCode": "0",
985*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
986*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(sff 0x1\\)",
987*33c41192SZhengchao Shao        "matchCount": "1",
988*33c41192SZhengchao Shao        "teardown": [
989*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
990*33c41192SZhengchao Shao        ]
991*33c41192SZhengchao Shao    },
992*33c41192SZhengchao Shao    {
993*33c41192SZhengchao Shao        "id": "324f",
994*33c41192SZhengchao Shao        "name": "Add cgroup filter with canid ematch and single SFF with mask",
995*33c41192SZhengchao Shao        "category": [
996*33c41192SZhengchao Shao            "filter",
997*33c41192SZhengchao Shao            "cgroup"
998*33c41192SZhengchao Shao        ],
999*33c41192SZhengchao Shao        "plugins": {
1000*33c41192SZhengchao Shao            "requires": "nsPlugin"
1001*33c41192SZhengchao Shao        },
1002*33c41192SZhengchao Shao        "setup": [
1003*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
1004*33c41192SZhengchao Shao        ],
1005*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'canid(sff 0xaabb:0x00ff)' action pass",
1006*33c41192SZhengchao Shao        "expExitCode": "0",
1007*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1008*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(sff 0x2BB:0xFF\\)",
1009*33c41192SZhengchao Shao        "matchCount": "1",
1010*33c41192SZhengchao Shao        "teardown": [
1011*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1012*33c41192SZhengchao Shao        ]
1013*33c41192SZhengchao Shao    },
1014*33c41192SZhengchao Shao    {
1015*33c41192SZhengchao Shao        "id": "2576",
1016*33c41192SZhengchao Shao        "name": "Add cgroup filter with canid ematch and multiple SFF",
1017*33c41192SZhengchao Shao        "category": [
1018*33c41192SZhengchao Shao            "filter",
1019*33c41192SZhengchao Shao            "cgroup"
1020*33c41192SZhengchao Shao        ],
1021*33c41192SZhengchao Shao        "plugins": {
1022*33c41192SZhengchao Shao            "requires": "nsPlugin"
1023*33c41192SZhengchao Shao        },
1024*33c41192SZhengchao Shao        "setup": [
1025*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
1026*33c41192SZhengchao Shao        ],
1027*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'canid(sff 1 sff 2 sff 3)' action pass",
1028*33c41192SZhengchao Shao        "expExitCode": "0",
1029*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1030*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(sff 0x1 sff 0x2 sff 0x3\\)",
1031*33c41192SZhengchao Shao        "matchCount": "1",
1032*33c41192SZhengchao Shao        "teardown": [
1033*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1034*33c41192SZhengchao Shao        ]
1035*33c41192SZhengchao Shao    },
1036*33c41192SZhengchao Shao    {
1037*33c41192SZhengchao Shao        "id": "4839",
1038*33c41192SZhengchao Shao        "name": "Add cgroup filter with canid ematch and multiple SFF with masks",
1039*33c41192SZhengchao Shao        "category": [
1040*33c41192SZhengchao Shao            "filter",
1041*33c41192SZhengchao Shao            "cgroup"
1042*33c41192SZhengchao Shao        ],
1043*33c41192SZhengchao Shao        "plugins": {
1044*33c41192SZhengchao Shao            "requires": "nsPlugin"
1045*33c41192SZhengchao Shao        },
1046*33c41192SZhengchao Shao        "setup": [
1047*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
1048*33c41192SZhengchao Shao        ],
1049*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'canid(sff 0xaa:0x01 sff 0xbb:0x02 sff 0xcc:0x03)' action drop",
1050*33c41192SZhengchao Shao        "expExitCode": "0",
1051*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1052*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(sff 0xAA:0x1 sff 0xBB:0x2 sff 0xCC:0x3\\)",
1053*33c41192SZhengchao Shao        "matchCount": "1",
1054*33c41192SZhengchao Shao        "teardown": [
1055*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1056*33c41192SZhengchao Shao        ]
1057*33c41192SZhengchao Shao    },
1058*33c41192SZhengchao Shao    {
1059*33c41192SZhengchao Shao        "id": "6713",
1060*33c41192SZhengchao Shao        "name": "Add cgroup filter with canid ematch and single EFF",
1061*33c41192SZhengchao Shao        "category": [
1062*33c41192SZhengchao Shao            "filter",
1063*33c41192SZhengchao Shao            "cgroup"
1064*33c41192SZhengchao Shao        ],
1065*33c41192SZhengchao Shao        "plugins": {
1066*33c41192SZhengchao Shao            "requires": "nsPlugin"
1067*33c41192SZhengchao Shao        },
1068*33c41192SZhengchao Shao        "setup": [
1069*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
1070*33c41192SZhengchao Shao        ],
1071*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'canid(eff 1)' action pipe",
1072*33c41192SZhengchao Shao        "expExitCode": "0",
1073*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1074*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0x1\\)",
1075*33c41192SZhengchao Shao        "matchCount": "1",
1076*33c41192SZhengchao Shao        "teardown": [
1077*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1078*33c41192SZhengchao Shao        ]
1079*33c41192SZhengchao Shao    },
1080*33c41192SZhengchao Shao    {
1081*33c41192SZhengchao Shao        "id": "4572",
1082*33c41192SZhengchao Shao        "name": "Add cgroup filter with canid ematch and single EFF with mask",
1083*33c41192SZhengchao Shao        "category": [
1084*33c41192SZhengchao Shao            "filter",
1085*33c41192SZhengchao Shao            "cgroup"
1086*33c41192SZhengchao Shao        ],
1087*33c41192SZhengchao Shao        "plugins": {
1088*33c41192SZhengchao Shao            "requires": "nsPlugin"
1089*33c41192SZhengchao Shao        },
1090*33c41192SZhengchao Shao        "setup": [
1091*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
1092*33c41192SZhengchao Shao        ],
1093*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'canid(eff 0xaabb:0xf1f1)' action pass",
1094*33c41192SZhengchao Shao        "expExitCode": "0",
1095*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1096*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0xAABB:0xF1F1\\)",
1097*33c41192SZhengchao Shao        "matchCount": "1",
1098*33c41192SZhengchao Shao        "teardown": [
1099*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1100*33c41192SZhengchao Shao        ]
1101*33c41192SZhengchao Shao    },
1102*33c41192SZhengchao Shao    {
1103*33c41192SZhengchao Shao        "id": "8031",
1104*33c41192SZhengchao Shao        "name": "Add cgroup filter with canid ematch and multiple EFF",
1105*33c41192SZhengchao Shao        "category": [
1106*33c41192SZhengchao Shao            "filter",
1107*33c41192SZhengchao Shao            "cgroup"
1108*33c41192SZhengchao Shao        ],
1109*33c41192SZhengchao Shao        "plugins": {
1110*33c41192SZhengchao Shao            "requires": "nsPlugin"
1111*33c41192SZhengchao Shao        },
1112*33c41192SZhengchao Shao        "setup": [
1113*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
1114*33c41192SZhengchao Shao        ],
1115*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'canid(eff 1 eff 2 eff 3)' action pass",
1116*33c41192SZhengchao Shao        "expExitCode": "0",
1117*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1118*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0x1 eff 0x2 eff 0x3\\)",
1119*33c41192SZhengchao Shao        "matchCount": "1",
1120*33c41192SZhengchao Shao        "teardown": [
1121*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1122*33c41192SZhengchao Shao        ]
1123*33c41192SZhengchao Shao    },
1124*33c41192SZhengchao Shao    {
1125*33c41192SZhengchao Shao        "id": "ab9d",
1126*33c41192SZhengchao Shao        "name": "Add cgroup filter with canid ematch and multiple EFF with masks",
1127*33c41192SZhengchao Shao        "category": [
1128*33c41192SZhengchao Shao            "filter",
1129*33c41192SZhengchao Shao            "cgroup"
1130*33c41192SZhengchao Shao        ],
1131*33c41192SZhengchao Shao        "plugins": {
1132*33c41192SZhengchao Shao            "requires": "nsPlugin"
1133*33c41192SZhengchao Shao        },
1134*33c41192SZhengchao Shao        "setup": [
1135*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
1136*33c41192SZhengchao Shao        ],
1137*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'canid(eff 0xaa:0x01 eff 0xbb:0x02 eff 0xcc:0x03)' action pass",
1138*33c41192SZhengchao Shao        "expExitCode": "0",
1139*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1140*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0xAA:0x1 eff 0xBB:0x2 eff 0xCC:0x3\\)",
1141*33c41192SZhengchao Shao        "matchCount": "1",
1142*33c41192SZhengchao Shao        "teardown": [
1143*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1144*33c41192SZhengchao Shao        ]
1145*33c41192SZhengchao Shao    },
1146*33c41192SZhengchao Shao    {
1147*33c41192SZhengchao Shao        "id": "5349",
1148*33c41192SZhengchao Shao        "name": "Add cgroup filter with canid ematch and a combination of SFF/EFF",
1149*33c41192SZhengchao Shao        "category": [
1150*33c41192SZhengchao Shao            "filter",
1151*33c41192SZhengchao Shao            "cgroup"
1152*33c41192SZhengchao Shao        ],
1153*33c41192SZhengchao Shao        "plugins": {
1154*33c41192SZhengchao Shao            "requires": "nsPlugin"
1155*33c41192SZhengchao Shao        },
1156*33c41192SZhengchao Shao        "setup": [
1157*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
1158*33c41192SZhengchao Shao        ],
1159*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'canid(sff 0x01 eff 0x02)' action pass",
1160*33c41192SZhengchao Shao        "expExitCode": "0",
1161*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1162*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0x2 sff 0x1\\)",
1163*33c41192SZhengchao Shao        "matchCount": "1",
1164*33c41192SZhengchao Shao        "teardown": [
1165*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1166*33c41192SZhengchao Shao        ]
1167*33c41192SZhengchao Shao    },
1168*33c41192SZhengchao Shao    {
1169*33c41192SZhengchao Shao        "id": "c934",
1170*33c41192SZhengchao Shao        "name": "Add cgroup filter with canid ematch and a combination of SFF/EFF with masks",
1171*33c41192SZhengchao Shao        "category": [
1172*33c41192SZhengchao Shao            "filter",
1173*33c41192SZhengchao Shao            "cgroup"
1174*33c41192SZhengchao Shao        ],
1175*33c41192SZhengchao Shao        "plugins": {
1176*33c41192SZhengchao Shao            "requires": "nsPlugin"
1177*33c41192SZhengchao Shao        },
1178*33c41192SZhengchao Shao        "setup": [
1179*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress"
1180*33c41192SZhengchao Shao        ],
1181*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'canid(sff 0x01:0xf eff 0x02:0xf)' action drop",
1182*33c41192SZhengchao Shao        "expExitCode": "0",
1183*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1184*33c41192SZhengchao Shao        "matchPattern": "^filter protocol ip pref 1 cgroup.*handle 0x1.*canid\\(eff 0x2:0xF sff 0x1:0xF\\)",
1185*33c41192SZhengchao Shao        "matchCount": "1",
1186*33c41192SZhengchao Shao        "teardown": [
1187*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1188*33c41192SZhengchao Shao        ]
1189*33c41192SZhengchao Shao    },
1190*33c41192SZhengchao Shao    {
1191*33c41192SZhengchao Shao        "id": "4319",
1192*33c41192SZhengchao Shao        "name": "Replace cgroup filter with diffferent match",
1193*33c41192SZhengchao Shao        "category": [
1194*33c41192SZhengchao Shao            "filter",
1195*33c41192SZhengchao Shao            "cgroup"
1196*33c41192SZhengchao Shao        ],
1197*33c41192SZhengchao Shao        "plugins": {
1198*33c41192SZhengchao Shao            "requires": "nsPlugin"
1199*33c41192SZhengchao Shao        },
1200*33c41192SZhengchao Shao        "setup": [
1201*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress",
1202*33c41192SZhengchao Shao            "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff gt 10)' action pass"
1203*33c41192SZhengchao Shao        ],
1204*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter replace dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff gt 8)' action pass",
1205*33c41192SZhengchao Shao        "expExitCode": "0",
1206*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1207*33c41192SZhengchao Shao        "matchPattern": "cmp\\(u8 at 0 layer 0 mask 0xff gt 8\\)",
1208*33c41192SZhengchao Shao        "matchCount": "1",
1209*33c41192SZhengchao Shao        "teardown": [
1210*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1211*33c41192SZhengchao Shao        ]
1212*33c41192SZhengchao Shao    },
1213*33c41192SZhengchao Shao    {
1214*33c41192SZhengchao Shao        "id": "4636",
1215*33c41192SZhengchao Shao        "name": "Delete cgroup filter",
1216*33c41192SZhengchao Shao        "category": [
1217*33c41192SZhengchao Shao            "filter",
1218*33c41192SZhengchao Shao            "cgroup"
1219*33c41192SZhengchao Shao        ],
1220*33c41192SZhengchao Shao        "plugins": {
1221*33c41192SZhengchao Shao            "requires": "nsPlugin"
1222*33c41192SZhengchao Shao        },
1223*33c41192SZhengchao Shao        "setup": [
1224*33c41192SZhengchao Shao            "$TC qdisc add dev $DEV1 ingress",
1225*33c41192SZhengchao Shao            "$TC filter add dev $DEV1 parent ffff: handle 1 protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff gt 10)' action pass"
1226*33c41192SZhengchao Shao        ],
1227*33c41192SZhengchao Shao        "cmdUnderTest": "$TC filter delete dev $DEV1 parent ffff: protocol ip prio 1 cgroup match 'cmp(u8 at 0 layer link mask 0xff gt 10)' action pass",
1228*33c41192SZhengchao Shao        "expExitCode": "0",
1229*33c41192SZhengchao Shao        "verifyCmd": "$TC filter show dev $DEV1 parent ffff:",
1230*33c41192SZhengchao Shao        "matchPattern": "cmp\\(u8 at 0 layer 0 mask 0xff gt 8\\)",
1231*33c41192SZhengchao Shao        "matchCount": "0",
1232*33c41192SZhengchao Shao        "teardown": [
1233*33c41192SZhengchao Shao            "$TC qdisc del dev $DEV1 ingress"
1234*33c41192SZhengchao Shao        ]
1235*33c41192SZhengchao Shao    }
1236*33c41192SZhengchao Shao]
1237