diff options
author | Davide Caratti <dcaratti@redhat.com> | 2018-03-22 14:12:19 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-03-23 12:58:52 -0400 |
commit | 440ea4ae182820cfced77cee2b7f3e6eaa8ac5d3 (patch) | |
tree | f7fc4f281974b31f592e91d72124a03f1340890c /tools/testing/selftests/tc-testing | |
parent | 82792a070b168a9659c78e6a19efe5b6d1a7ce73 (diff) |
tc-testing: add selftests for 'bpf' action
Test d959: Add cBPF action with valid bytecode
Test f84a: Add cBPF action with invalid bytecode
Test e939: Add eBPF action with valid object-file
Test 282d: Add eBPF action with invalid object-file
Test d819: Replace cBPF bytecode and action control
Test 6ae3: Delete cBPF action
Test 3e0d: List cBPF actions
Test 55ce: Flush BPF actions
Test ccc3: Add cBPF action with duplicate index
Test 89c7: Add cBPF action with invalid index
Test 7ab9: Add cBPF action with cookie
Changes since v1:
- use index=2^32-1 in test ccc3, add tests 7a89, 89c7 (thanks Roman Mashak)
- added test 282d
Signed-off-by: Davide Caratti <dcaratti@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'tools/testing/selftests/tc-testing')
-rw-r--r-- | tools/testing/selftests/tc-testing/tc-tests/actions/bpf.json | 289 |
1 files changed, 289 insertions, 0 deletions
diff --git a/tools/testing/selftests/tc-testing/tc-tests/actions/bpf.json b/tools/testing/selftests/tc-testing/tc-tests/actions/bpf.json new file mode 100644 index 000000000000..5b012f4981d4 --- /dev/null +++ b/tools/testing/selftests/tc-testing/tc-tests/actions/bpf.json | |||
@@ -0,0 +1,289 @@ | |||
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 | ] | ||