Skip to content

Commit 8c06cbd

Browse files
BitsByWillkuba-moo
authored andcommitted
selftests/tc-testing: Check backlog stats in gso_skb case
Add tests to ensure proper backlog accounting in hhf, codel, pie, fq, fq_pie, and fq_codel qdiscs. We check for the bug pattern originally found in fq, fq_pie, and fq_codel, which was an underflow in the tbf parent backlog stats upon child qdisc removal. Signed-off-by: William Liu <[email protected]> Reviewed-by: Savino Dicanosa <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Jakub Kicinski <[email protected]>
1 parent 52bf272 commit 8c06cbd

File tree

1 file changed

+198
-0
lines changed
  • tools/testing/selftests/tc-testing/tc-tests/infra

1 file changed

+198
-0
lines changed

tools/testing/selftests/tc-testing/tc-tests/infra/qdiscs.json

Lines changed: 198 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,204 @@
185185
"$IP addr del 10.10.10.10/24 dev $DUMMY || true"
186186
]
187187
},
188+
{
189+
"id": "34c0",
190+
"name": "Test TBF with HHF Backlog Accounting in gso_skb case against underflow",
191+
"category": [
192+
"qdisc",
193+
"tbf",
194+
"hhf"
195+
],
196+
"plugins": {
197+
"requires": [
198+
"nsPlugin"
199+
]
200+
},
201+
"setup": [
202+
"$IP link set dev $DUMMY up || true",
203+
"$IP addr add 10.10.11.10/24 dev $DUMMY || true",
204+
"$TC qdisc add dev $DUMMY root handle 1: tbf rate 8bit burst 100b latency 100ms",
205+
"$TC qdisc replace dev $DUMMY handle 2: parent 1:1 hhf limit 1000",
206+
[
207+
"ping -I $DUMMY -c2 10.10.11.11",
208+
1
209+
],
210+
"$TC qdisc change dev $DUMMY handle 2: parent 1:1 hhf limit 1"
211+
],
212+
"cmdUnderTest": "$TC qdisc del dev $DUMMY handle 2: parent 1:1",
213+
"expExitCode": "0",
214+
"verifyCmd": "$TC -s qdisc show dev $DUMMY",
215+
"matchPattern": "backlog 0b 0p",
216+
"matchCount": "1",
217+
"teardown": [
218+
"$TC qdisc del dev $DUMMY handle 1: root"
219+
]
220+
},
221+
{
222+
"id": "fd68",
223+
"name": "Test TBF with CODEL Backlog Accounting in gso_skb case against underflow",
224+
"category": [
225+
"qdisc",
226+
"tbf",
227+
"codel"
228+
],
229+
"plugins": {
230+
"requires": [
231+
"nsPlugin"
232+
]
233+
},
234+
"setup": [
235+
"$IP link set dev $DUMMY up || true",
236+
"$IP addr add 10.10.11.10/24 dev $DUMMY || true",
237+
"$TC qdisc add dev $DUMMY root handle 1: tbf rate 8bit burst 100b latency 100ms",
238+
"$TC qdisc replace dev $DUMMY handle 2: parent 1:1 codel limit 1000",
239+
[
240+
"ping -I $DUMMY -c2 10.10.11.11",
241+
1
242+
],
243+
"$TC qdisc change dev $DUMMY handle 2: parent 1:1 codel limit 1"
244+
],
245+
"cmdUnderTest": "$TC qdisc del dev $DUMMY handle 2: parent 1:1",
246+
"expExitCode": "0",
247+
"verifyCmd": "$TC -s qdisc show dev $DUMMY",
248+
"matchPattern": "backlog 0b 0p",
249+
"matchCount": "1",
250+
"teardown": [
251+
"$TC qdisc del dev $DUMMY handle 1: root"
252+
]
253+
},
254+
{
255+
"id": "514e",
256+
"name": "Test TBF with PIE Backlog Accounting in gso_skb case against underflow",
257+
"category": [
258+
"qdisc",
259+
"tbf",
260+
"pie"
261+
],
262+
"plugins": {
263+
"requires": [
264+
"nsPlugin"
265+
]
266+
},
267+
"setup": [
268+
"$IP link set dev $DUMMY up || true",
269+
"$IP addr add 10.10.11.10/24 dev $DUMMY || true",
270+
"$TC qdisc add dev $DUMMY root handle 1: tbf rate 8bit burst 100b latency 100ms",
271+
"$TC qdisc replace dev $DUMMY handle 2: parent 1:1 pie limit 1000",
272+
[
273+
"ping -I $DUMMY -c2 10.10.11.11",
274+
1
275+
],
276+
"$TC qdisc change dev $DUMMY handle 2: parent 1:1 pie limit 1"
277+
],
278+
"cmdUnderTest": "$TC qdisc del dev $DUMMY handle 2: parent 1:1",
279+
"expExitCode": "0",
280+
"verifyCmd": "$TC -s qdisc show dev $DUMMY",
281+
"matchPattern": "backlog 0b 0p",
282+
"matchCount": "1",
283+
"teardown": [
284+
"$TC qdisc del dev $DUMMY handle 1: root"
285+
]
286+
},
287+
{
288+
"id": "6c97",
289+
"name": "Test TBF with FQ Backlog Accounting in gso_skb case against underflow",
290+
"category": [
291+
"qdisc",
292+
"tbf",
293+
"fq"
294+
],
295+
"plugins": {
296+
"requires": [
297+
"nsPlugin"
298+
]
299+
},
300+
"setup": [
301+
"$IP link set dev $DUMMY up || true",
302+
"$IP addr add 10.10.11.10/24 dev $DUMMY || true",
303+
"$TC qdisc add dev $DUMMY root handle 1: tbf rate 8bit burst 100b latency 100ms",
304+
"$TC qdisc replace dev $DUMMY handle 2: parent 1:1 fq limit 1000",
305+
[
306+
"ping -I $DUMMY -c2 10.10.11.11",
307+
1
308+
],
309+
"$TC qdisc change dev $DUMMY handle 2: parent 1:1 fq limit 1"
310+
],
311+
"cmdUnderTest": "$TC qdisc del dev $DUMMY handle 2: parent 1:1",
312+
"expExitCode": "0",
313+
"verifyCmd": "$TC -s qdisc show dev $DUMMY",
314+
"matchPattern": "backlog 0b 0p",
315+
"matchCount": "1",
316+
"teardown": [
317+
"$TC qdisc del dev $DUMMY handle 1: root"
318+
]
319+
},
320+
{
321+
"id": "5d0b",
322+
"name": "Test TBF with FQ_CODEL Backlog Accounting in gso_skb case against underflow",
323+
"category": [
324+
"qdisc",
325+
"tbf",
326+
"fq_codel"
327+
],
328+
"plugins": {
329+
"requires": [
330+
"nsPlugin"
331+
]
332+
},
333+
"setup": [
334+
"$IP link set dev $DUMMY up || true",
335+
"$IP addr add 10.10.11.10/24 dev $DUMMY || true",
336+
"$TC qdisc add dev $DUMMY root handle 1: tbf rate 8bit burst 100b latency 100ms",
337+
"$TC qdisc replace dev $DUMMY handle 2: parent 1:1 fq_codel limit 1000",
338+
[
339+
"ping -I $DUMMY -c2 10.10.11.11",
340+
1
341+
],
342+
"$TC qdisc change dev $DUMMY handle 2: parent 1:1 fq_codel limit 1"
343+
],
344+
"cmdUnderTest": "$TC qdisc del dev $DUMMY handle 2: parent 1:1",
345+
"expExitCode": "0",
346+
"verifyCmd": "$TC -s qdisc show dev $DUMMY",
347+
"matchPattern": "backlog 0b 0p",
348+
"matchCount": "1",
349+
"teardown": [
350+
"$TC qdisc del dev $DUMMY handle 1: root"
351+
]
352+
},
353+
{
354+
"id": "21c3",
355+
"name": "Test TBF with FQ_PIE Backlog Accounting in gso_skb case against underflow",
356+
"category": [
357+
"qdisc",
358+
"tbf",
359+
"fq_pie"
360+
],
361+
"plugins": {
362+
"requires": [
363+
"nsPlugin"
364+
]
365+
},
366+
"setup": [
367+
"$IP link set dev $DUMMY up || true",
368+
"$IP addr add 10.10.11.10/24 dev $DUMMY || true",
369+
"$TC qdisc add dev $DUMMY root handle 1: tbf rate 8bit burst 100b latency 100ms",
370+
"$TC qdisc replace dev $DUMMY handle 2: parent 1:1 fq_pie limit 1000",
371+
[
372+
"ping -I $DUMMY -c2 10.10.11.11",
373+
1
374+
],
375+
"$TC qdisc change dev $DUMMY handle 2: parent 1:1 fq_pie limit 1"
376+
],
377+
"cmdUnderTest": "$TC qdisc del dev $DUMMY handle 2: parent 1:1",
378+
"expExitCode": "0",
379+
"verifyCmd": "$TC -s qdisc show dev $DUMMY",
380+
"matchPattern": "backlog 0b 0p",
381+
"matchCount": "1",
382+
"teardown": [
383+
"$TC qdisc del dev $DUMMY handle 1: root"
384+
]
385+
},
188386
{
189387
"id": "a4bb",
190388
"name": "Test FQ_CODEL with HTB parent - force packet drop with empty queue",

0 commit comments

Comments
 (0)