mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-12-27 14:41:22 -05:00
selftests/tc-testing: Add tests for restrictions on netem duplication
Ensure that a duplicating netem cannot exist in a tree with other netems in both qdisc addition and change. This is meant to prevent the soft lockup and OOM loop scenario discussed in [1]. Also adjust a HFSC's re-entrancy test case with netem for this new restriction - KASAN still triggers upon its failure. [1] https://lore.kernel.org/netdev/8DuRWwfqjoRDLDmBMlIfbrsZg9Gx50DHJc1ilxsEBNe2D6NMoigR_eIRIG0LOjMc3r10nUUZtArXx4oZBIdUfZQrwjcQhdinnMis_0G7VEk=@willsroot.io/ Signed-off-by: William Liu <will@willsroot.io> Reviewed-by: Savino Dicanosa <savy@syst3mfailure.io> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Link: https://patch.msgid.link/20250708164219.875521-1-will@willsroot.io Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
committed by
Jakub Kicinski
parent
ec8e0e3d7a
commit
ecdec65ec7
@@ -478,7 +478,6 @@
|
||||
"$TC qdisc add dev $DUMMY parent 1:1 handle 2:0 netem duplicate 100%",
|
||||
"$TC filter add dev $DUMMY parent 1:0 protocol ip prio 1 u32 match ip dst 10.10.10.1/32 flowid 1:1",
|
||||
"$TC class add dev $DUMMY parent 1:0 classid 1:2 hfsc ls m2 10Mbit",
|
||||
"$TC qdisc add dev $DUMMY parent 1:2 handle 3:0 netem duplicate 100%",
|
||||
"$TC filter add dev $DUMMY parent 1:0 protocol ip prio 2 u32 match ip dst 10.10.10.2/32 flowid 1:2",
|
||||
"ping -c 1 10.10.10.1 -I$DUMMY > /dev/null || true",
|
||||
"$TC filter del dev $DUMMY parent 1:0 protocol ip prio 1",
|
||||
@@ -491,8 +490,8 @@
|
||||
{
|
||||
"kind": "hfsc",
|
||||
"handle": "1:",
|
||||
"bytes": 392,
|
||||
"packets": 4
|
||||
"bytes": 294,
|
||||
"packets": 3
|
||||
}
|
||||
],
|
||||
"matchCount": "1",
|
||||
|
||||
@@ -336,5 +336,86 @@
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DUMMY handle 1: root"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "d34d",
|
||||
"name": "NETEM test qdisc duplication restriction in qdisc tree in netem_change root",
|
||||
"category": ["qdisc", "netem"],
|
||||
"plugins": {
|
||||
"requires": "nsPlugin"
|
||||
},
|
||||
"setup": [
|
||||
"$TC qdisc add dev $DUMMY root handle 1: netem limit 1",
|
||||
"$TC qdisc add dev $DUMMY parent 1: handle 2: netem limit 1"
|
||||
],
|
||||
"cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: netem duplicate 50%",
|
||||
"expExitCode": "2",
|
||||
"verifyCmd": "$TC -s qdisc show dev $DUMMY",
|
||||
"matchPattern": "qdisc netem",
|
||||
"matchCount": "2",
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DUMMY handle 1:0 root"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "b33f",
|
||||
"name": "NETEM test qdisc duplication restriction in qdisc tree in netem_change non-root",
|
||||
"category": ["qdisc", "netem"],
|
||||
"plugins": {
|
||||
"requires": "nsPlugin"
|
||||
},
|
||||
"setup": [
|
||||
"$TC qdisc add dev $DUMMY root handle 1: netem limit 1",
|
||||
"$TC qdisc add dev $DUMMY parent 1: handle 2: netem limit 1"
|
||||
],
|
||||
"cmdUnderTest": "$TC qdisc change dev $DUMMY handle 2: netem duplicate 50%",
|
||||
"expExitCode": "2",
|
||||
"verifyCmd": "$TC -s qdisc show dev $DUMMY",
|
||||
"matchPattern": "qdisc netem",
|
||||
"matchCount": "2",
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DUMMY handle 1:0 root"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "cafe",
|
||||
"name": "NETEM test qdisc duplication restriction in qdisc tree",
|
||||
"category": ["qdisc", "netem"],
|
||||
"plugins": {
|
||||
"requires": "nsPlugin"
|
||||
},
|
||||
"setup": [
|
||||
"$TC qdisc add dev $DUMMY root handle 1: netem limit 1 duplicate 100%"
|
||||
],
|
||||
"cmdUnderTest": "$TC qdisc add dev $DUMMY parent 1: handle 2: netem duplicate 100%",
|
||||
"expExitCode": "2",
|
||||
"verifyCmd": "$TC -s qdisc show dev $DUMMY",
|
||||
"matchPattern": "qdisc netem",
|
||||
"matchCount": "1",
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DUMMY handle 1:0 root"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "1337",
|
||||
"name": "NETEM test qdisc duplication restriction in qdisc tree across branches",
|
||||
"category": ["qdisc", "netem"],
|
||||
"plugins": {
|
||||
"requires": "nsPlugin"
|
||||
},
|
||||
"setup": [
|
||||
"$TC qdisc add dev $DUMMY parent root handle 1:0 hfsc",
|
||||
"$TC class add dev $DUMMY parent 1:0 classid 1:1 hfsc rt m2 10Mbit",
|
||||
"$TC qdisc add dev $DUMMY parent 1:1 handle 2:0 netem",
|
||||
"$TC class add dev $DUMMY parent 1:0 classid 1:2 hfsc rt m2 10Mbit"
|
||||
],
|
||||
"cmdUnderTest": "$TC qdisc add dev $DUMMY parent 1:2 handle 3:0 netem duplicate 100%",
|
||||
"expExitCode": "2",
|
||||
"verifyCmd": "$TC -s qdisc show dev $DUMMY",
|
||||
"matchPattern": "qdisc netem",
|
||||
"matchCount": "1",
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DUMMY handle 1:0 root"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user