Skip to content

Commit 440ea4a

Browse files
dcarattidavem330
authored andcommitted
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 <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 82792a0 commit 440ea4a

File tree

1 file changed

+289
-0
lines changed
  • tools/testing/selftests/tc-testing/tc-tests/actions

1 file changed

+289
-0
lines changed
Lines changed: 289 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
]

0 commit comments

Comments
 (0)