mirror of
https://github.com/torvalds/linux.git
synced 2025-11-02 09:40:27 +02:00
selftests/tc-testing: Create test cases for adding qdiscs to invalid qdisc parents
As described in a previous commit [1], Lion's patch [2] revealed an ancient bug in the qdisc API. Whenever a user tries to add a qdisc to an invalid parent (not a class, root, or ingress qdisc), the qdisc API will detect this after qdisc_create is called. Some qdiscs (like fq_codel, pie, and sfq) call functions (on their init callback) which assume the parent is valid, so qdisc_create itself may have caused a NULL pointer dereference in such cases. This commit creates 3 TDC tests that attempt to add fq_codel, pie and sfq qdiscs to invalid parents - Attempts to add an fq_codel qdisc to an hhf qdisc parent - Attempts to add a pie qdisc to a drr qdisc parent - Attempts to add an sfq qdisc to an inexistent hfsc classid (which would belong to a valid hfsc qdisc) [1] https://lore.kernel.org/all/20250707210801.372995-1-victor@mojatatu.com/ [2] https://lore.kernel.org/netdev/d912cbd7-193b-4269-9857-525bee8bbb6a@gmail.com/ Signed-off-by: Victor Nogueira <victor@mojatatu.com> Link: https://patch.msgid.link/20250712145035.705156-1-victor@mojatatu.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
60ada4fe64
commit
e18f348632
1 changed files with 66 additions and 0 deletions
|
|
@ -672,5 +672,71 @@
|
|||
"teardown": [
|
||||
"$TC qdisc del dev $DUMMY root handle 1: drr"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "be28",
|
||||
"name": "Try to add fq_codel qdisc as a child of an hhf qdisc",
|
||||
"category": [
|
||||
"qdisc",
|
||||
"fq_codel",
|
||||
"hhf"
|
||||
],
|
||||
"plugins": {
|
||||
"requires": "nsPlugin"
|
||||
},
|
||||
"setup": [
|
||||
"$TC qdisc add dev $DUMMY root handle a: hhf"
|
||||
],
|
||||
"cmdUnderTest": "$TC qdisc add dev $DUMMY parent a: handle b: fq_codel",
|
||||
"expExitCode": "2",
|
||||
"verifyCmd": "$TC -j qdisc ls dev $DUMMY handle b:",
|
||||
"matchJSON": [],
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DUMMY root"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "fcb5",
|
||||
"name": "Try to add pie qdisc as a child of a drr qdisc",
|
||||
"category": [
|
||||
"qdisc",
|
||||
"pie",
|
||||
"drr"
|
||||
],
|
||||
"plugins": {
|
||||
"requires": "nsPlugin"
|
||||
},
|
||||
"setup": [
|
||||
"$TC qdisc add dev $DUMMY root handle a: drr"
|
||||
],
|
||||
"cmdUnderTest": "$TC qdisc add dev $DUMMY parent a: handle b: pie",
|
||||
"expExitCode": "2",
|
||||
"verifyCmd": "$TC -j qdisc ls dev $DUMMY handle b:",
|
||||
"matchJSON": [],
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DUMMY root"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "7801",
|
||||
"name": "Try to add fq qdisc as a child of an inexistent hfsc class",
|
||||
"category": [
|
||||
"qdisc",
|
||||
"sfq",
|
||||
"hfsc"
|
||||
],
|
||||
"plugins": {
|
||||
"requires": "nsPlugin"
|
||||
},
|
||||
"setup": [
|
||||
"$TC qdisc add dev $DUMMY root handle a: hfsc"
|
||||
],
|
||||
"cmdUnderTest": "$TC qdisc add dev $DUMMY parent a:fff2 sfq limit 4",
|
||||
"expExitCode": "2",
|
||||
"verifyCmd": "$TC -j qdisc ls dev $DUMMY handle b:",
|
||||
"matchJSON": [],
|
||||
"teardown": [
|
||||
"$TC qdisc del dev $DUMMY root"
|
||||
]
|
||||
}
|
||||
]
|
||||
|
|
|
|||
Loading…
Reference in a new issue