xref: /openbmc/linux/tools/testing/selftests/tc-testing/tc-tests/actions/bpf.json (revision b240b419db5d624ce7a5a397d6f62a1a686009ec)
1[
2    {
3        "id": "d959",
4        "name": "Add cBPF action with valid bytecode",
5        "category": [
6            "actions",
7            "bpf"
8        ],
9        "setup": [
10            [
11                "$TC action flush action bpf",
12                0,
13                1,
14                255
15            ]
16        ],
17        "cmdUnderTest": "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' index 100",
18        "expExitCode": "0",
19        "verifyCmd": "$TC action get action bpf index 100",
20        "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' default-action pipe.*index 100 ref",
21        "matchCount": "1",
22        "teardown": [
23            "$TC action flush action bpf"
24        ]
25    },
26    {
27        "id": "f84a",
28        "name": "Add cBPF action with invalid bytecode",
29        "category": [
30            "actions",
31            "bpf"
32        ],
33        "setup": [
34            [
35                "$TC actions flush action bpf",
36                0,
37                1,
38                255
39            ]
40        ],
41        "cmdUnderTest": "$TC action add action bpf bytecode '4,40 0 0 12,31 0 1 2048,6 0 0 262144,6 0 0 0' index 100",
42        "expExitCode": "255",
43        "verifyCmd": "$TC action get action bpf index 100",
44        "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,31 0 1 2048,6 0 0 262144,6 0 0 0' default-action pipe.*index 100 ref",
45        "matchCount": "0",
46        "teardown": [
47            "$TC actions flush action bpf"
48        ]
49    },
50    {
51        "id": "e939",
52        "name": "Add eBPF action with valid object-file",
53        "category": [
54            "actions",
55            "bpf"
56        ],
57        "setup": [
58            "printf '#include <linux/bpf.h>\nchar l[] __attribute__((section(\"license\"),used))=\"GPL\"; __attribute__((section(\"action\"),used)) int m(struct __sk_buff *s) { return 2; }' | clang -O2 -x c -c - -target bpf -o _b.o",
59            [
60                "$TC action flush action bpf",
61                0,
62                1,
63                255
64            ]
65        ],
66        "cmdUnderTest": "$TC action add action bpf object-file _b.o index 667",
67        "expExitCode": "0",
68        "verifyCmd": "$TC action get action bpf index 667",
69        "matchPattern": "action order [0-9]*: bpf _b.o:\\[action\\] id [0-9]* tag 3b185187f1855c4c default-action pipe.*index 667 ref",
70        "matchCount": "1",
71        "teardown": [
72            "$TC action flush action bpf",
73            "rm -f _b.o"
74        ]
75    },
76    {
77        "id": "282d",
78        "name": "Add eBPF action with invalid object-file",
79        "category": [
80            "actions",
81            "bpf"
82        ],
83        "setup": [
84            "printf '#include <linux/bpf.h>\nchar l[] __attribute__((section(\"license\"),used))=\"GPL\"; __attribute__((section(\"action\"),used)) int m(struct __sk_buff *s) { s->data = 0x0; return 2; }' | clang -O2 -x c -c - -target bpf -o _c.o",
85            [
86                "$TC action flush action bpf",
87                0,
88                1,
89                255
90            ]
91        ],
92        "cmdUnderTest": "$TC action add action bpf object-file _c.o index 667",
93        "expExitCode": "255",
94        "verifyCmd": "$TC action get action bpf index 667",
95        "matchPattern": "action order [0-9]*: bpf _b.o:\\[action\\] id [0-9].*index 667 ref",
96        "matchCount": "0",
97        "teardown": [
98            "$TC action flush action bpf",
99            "rm -f _c.o"
100        ]
101    },
102    {
103        "id": "d819",
104        "name": "Replace cBPF bytecode and action control",
105        "category": [
106            "actions",
107            "bpf"
108        ],
109        "setup": [
110            [
111                "$TC actions flush action bpf",
112                0,
113                1,
114                255
115            ],
116            [
117                "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' index 555",
118                0,
119                1,
120                255
121            ]
122        ],
123        "cmdUnderTest": "$TC action replace action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' drop index 555",
124        "expExitCode": "0",
125        "verifyCmd": "$TC action get action bpf index 555",
126        "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' default-action drop.*index 555 ref",
127        "matchCount": "1",
128        "teardown": [
129            "$TC action flush action bpf"
130        ]
131    },
132    {
133        "id": "6ae3",
134        "name": "Delete cBPF action ",
135        "category": [
136            "actions",
137            "bpf"
138        ],
139        "setup": [
140            [
141                "$TC actions flush action bpf",
142                0,
143                1,
144                255
145            ],
146            [
147                "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' index 444",
148                0,
149                1,
150                255
151            ]
152        ],
153        "cmdUnderTest": "$TC action delete action bpf index 444",
154        "expExitCode": "0",
155        "verifyCmd": "$TC action get action bpf index 444",
156        "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' default-action pipe.*index 444 ref",
157        "matchCount": "0",
158        "teardown": [
159            "$TC action flush action bpf"
160        ]
161    },
162    {
163        "id": "3e0d",
164        "name": "List cBPF actions",
165        "category": [
166            "actions",
167            "bpf"
168        ],
169        "setup": [
170            [
171                "$TC action flush action bpf",
172                0,
173                1,
174                255
175            ],
176            "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' ok index 101",
177            "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' drop index 102",
178            "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 33024,6 0 0 262144,6 0 0 0' continue index 103"
179        ],
180        "cmdUnderTest": "$TC action list action bpf",
181        "expExitCode": "0",
182        "verifyCmd": "$TC action list action bpf",
183        "matchPattern": "action order [0-9]*: bpf bytecode",
184        "matchCount": "3",
185        "teardown": [
186            "$TC actions flush action bpf"
187        ]
188    },
189    {
190        "id": "55ce",
191        "name": "Flush BPF actions",
192        "category": [
193            "actions",
194            "bpf"
195        ],
196        "setup": [
197            [
198                "$TC actions flush action bpf",
199                0,
200                1,
201                255
202            ],
203            "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' ok index 101",
204            "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' drop index 102",
205            "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 33024,6 0 0 262144,6 0 0 0' continue index 103"
206        ],
207        "cmdUnderTest": "$TC action flush action bpf",
208        "expExitCode": "0",
209        "verifyCmd": "$TC action list action bpf",
210        "matchPattern": "action order [0-9]*: bpf bytecode",
211        "matchCount": "0",
212        "teardown": [
213            "$TC actions flush action bpf"
214        ]
215    },
216    {
217        "id": "ccc3",
218        "name": "Add cBPF action with duplicate index",
219        "category": [
220            "actions",
221            "bpf"
222        ],
223        "setup": [
224            [
225                "$TC actions flush action bpf",
226                0,
227                1,
228                255
229            ],
230            "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' index 4294967295"
231        ],
232        "cmdUnderTest": "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' index 4294967295",
233        "expExitCode": "255",
234        "verifyCmd": "$TC action get action bpf index 4294967295",
235        "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' default-action pipe.*index 4294967295",
236        "matchCount": "1",
237        "teardown": [
238            "$TC action flush action bpf"
239        ]
240    },
241    {
242        "id": "89c7",
243        "name": "Add cBPF action with invalid index",
244        "category": [
245            "actions",
246            "bpf"
247        ],
248        "setup": [
249            [
250                "$TC actions flush action bpf",
251                0,
252                1,
253                255
254            ]
255        ],
256        "cmdUnderTest": "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' index 4294967296 cookie 12345",
257        "expExitCode": "255",
258        "verifyCmd": "$TC action ls action bpf",
259        "matchPattern": "action order [0-9]*: bpf bytecode '4,40 0 0 12,21 0 1 2048,6 0 0 262144,6 0 0 0' default-action pipe.*cookie 12345",
260        "matchCount": "0",
261        "teardown": [
262            "$TC action flush action bpf"
263        ]
264    },
265    {
266        "id": "7ab9",
267        "name": "Add cBPF action with cookie",
268        "category": [
269            "actions",
270            "bpf"
271        ],
272        "setup": [
273            [
274                "$TC actions flush action bpf",
275                0,
276                1,
277                255
278            ]
279        ],
280        "cmdUnderTest": "$TC action add action bpf bytecode '4,40 0 0 12,21 0 1 2054,6 0 0 262144,6 0 0 0' cookie d0d0d0d0d0d0d0d0",
281        "expExitCode": "0",
282        "verifyCmd": "$TC action list action bpf",
283        "matchPattern": "action order [0-9]*: bpf.*cookie d0d0d0d0d0d0d0",
284        "matchCount": "1",
285        "teardown": [
286            "$TC action flush action bpf"
287        ]
288    }
289]
290