aboutsummaryrefslogtreecommitdiffstats
path: root/tools/testing/selftests/tc-testing
diff options
context:
space:
mode:
authorDavide Caratti <dcaratti@redhat.com>2018-03-22 14:12:19 -0400
committerDavid S. Miller <davem@davemloft.net>2018-03-23 12:58:52 -0400
commit440ea4ae182820cfced77cee2b7f3e6eaa8ac5d3 (patch)
treef7fc4f281974b31f592e91d72124a03f1340890c /tools/testing/selftests/tc-testing
parent82792a070b168a9659c78e6a19efe5b6d1a7ce73 (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.json289
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]