blob: 6f289a49e5ecf01552026bef35534a93d8cd136c [file] [log] [blame]
Davide Caratti440ea4a2018-03-22 19:12:19 +01001[
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",
Davide Carattif7017ca2018-05-09 18:45:42 +020069 "matchPattern": "action order [0-9]*: bpf _b.o:\\[action\\] id [0-9]* tag 3b185187f1855c4c( jited)? default-action pipe.*index 667 ref",
Davide Caratti440ea4a2018-03-22 19:12:19 +010070 "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",
Davide Carattif7017ca2018-05-09 18:45:42 +020095 "matchPattern": "action order [0-9]*: bpf _c.o:\\[action\\] id [0-9].*index 667 ref",
Davide Caratti440ea4a2018-03-22 19:12:19 +010096 "matchCount": "0",
97 "teardown": [
Davide Carattif7017ca2018-05-09 18:45:42 +020098 [
99 "$TC action flush action bpf",
100 0,
101 1,
102 255
103 ],
Davide Caratti440ea4a2018-03-22 19:12:19 +0100104 "rm -f _c.o"
105 ]
106 },
107 {
108 "id": "d819",
109 "name": "Replace cBPF bytecode and action control",
110 "category": [
111 "actions",
112 "bpf"
113 ],
114 "setup": [
115 [
116 "$TC actions flush action bpf",
117 0,
118 1,
119 255
120 ],
121 [
122 "$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",
123 0,
124 1,
125 255
126 ]
127 ],
128 "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",
129 "expExitCode": "0",
130 "verifyCmd": "$TC action get action bpf index 555",
131 "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",
132 "matchCount": "1",
133 "teardown": [
134 "$TC action flush action bpf"
135 ]
136 },
137 {
138 "id": "6ae3",
139 "name": "Delete cBPF action ",
140 "category": [
141 "actions",
142 "bpf"
143 ],
144 "setup": [
145 [
146 "$TC actions flush action bpf",
147 0,
148 1,
149 255
150 ],
151 [
152 "$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",
153 0,
154 1,
155 255
156 ]
157 ],
158 "cmdUnderTest": "$TC action delete action bpf index 444",
159 "expExitCode": "0",
160 "verifyCmd": "$TC action get action bpf index 444",
161 "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",
162 "matchCount": "0",
163 "teardown": [
164 "$TC action flush action bpf"
165 ]
166 },
167 {
168 "id": "3e0d",
169 "name": "List cBPF actions",
170 "category": [
171 "actions",
172 "bpf"
173 ],
174 "setup": [
175 [
176 "$TC action flush action bpf",
177 0,
178 1,
179 255
180 ],
181 "$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",
182 "$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",
183 "$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"
184 ],
185 "cmdUnderTest": "$TC action list action bpf",
186 "expExitCode": "0",
187 "verifyCmd": "$TC action list action bpf",
188 "matchPattern": "action order [0-9]*: bpf bytecode",
189 "matchCount": "3",
190 "teardown": [
191 "$TC actions flush action bpf"
192 ]
193 },
194 {
195 "id": "55ce",
196 "name": "Flush BPF actions",
197 "category": [
198 "actions",
199 "bpf"
200 ],
201 "setup": [
202 [
203 "$TC actions flush action bpf",
204 0,
205 1,
206 255
207 ],
208 "$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",
209 "$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",
210 "$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"
211 ],
212 "cmdUnderTest": "$TC action flush action bpf",
213 "expExitCode": "0",
214 "verifyCmd": "$TC action list action bpf",
215 "matchPattern": "action order [0-9]*: bpf bytecode",
216 "matchCount": "0",
217 "teardown": [
218 "$TC actions flush action bpf"
219 ]
220 },
221 {
222 "id": "ccc3",
223 "name": "Add cBPF action with duplicate index",
224 "category": [
225 "actions",
226 "bpf"
227 ],
228 "setup": [
229 [
230 "$TC actions flush action bpf",
231 0,
232 1,
233 255
234 ],
235 "$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"
236 ],
237 "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",
238 "expExitCode": "255",
239 "verifyCmd": "$TC action get action bpf index 4294967295",
240 "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",
241 "matchCount": "1",
242 "teardown": [
243 "$TC action flush action bpf"
244 ]
245 },
246 {
247 "id": "89c7",
248 "name": "Add cBPF action with invalid index",
249 "category": [
250 "actions",
251 "bpf"
252 ],
253 "setup": [
254 [
255 "$TC actions flush action bpf",
256 0,
257 1,
258 255
259 ]
260 ],
261 "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",
262 "expExitCode": "255",
263 "verifyCmd": "$TC action ls action bpf",
264 "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",
265 "matchCount": "0",
266 "teardown": [
267 "$TC action flush action bpf"
268 ]
269 },
270 {
271 "id": "7ab9",
272 "name": "Add cBPF action with cookie",
273 "category": [
274 "actions",
275 "bpf"
276 ],
277 "setup": [
278 [
279 "$TC actions flush action bpf",
280 0,
281 1,
282 255
283 ]
284 ],
285 "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",
286 "expExitCode": "0",
287 "verifyCmd": "$TC action list action bpf",
288 "matchPattern": "action order [0-9]*: bpf.*cookie d0d0d0d0d0d0d0",
289 "matchCount": "1",
290 "teardown": [
291 "$TC action flush action bpf"
292 ]
293 }
294]