Files
linux/tools/testing/selftests/tc-testing/tc-tests/qdiscs/cake_mq.json
Jonas Köppeler 8d61f1a9f2 selftests/tc-testing: add selftests for cake_mq qdisc
Test 684b: Create CAKE_MQ with default setting (4 queues)
Test 7ee8: Create CAKE_MQ with bandwidth limit (4 queues)
Test 1f87: Create CAKE_MQ with rtt time (4 queues)
Test e9cf: Create CAKE_MQ with besteffort flag (4 queues)
Test 7c05: Create CAKE_MQ with diffserv8 flag (4 queues)
Test 5a77: Create CAKE_MQ with diffserv4 flag (4 queues)
Test 8f7a: Create CAKE_MQ with flowblind flag (4 queues)
Test 7ef7: Create CAKE_MQ with dsthost and nat flag (4 queues)
Test 2e4d: Create CAKE_MQ with wash flag (4 queues)
Test b3e6: Create CAKE_MQ with flowblind and no-split-gso flag (4 queues)
Test 62cd: Create CAKE_MQ with dual-srchost and ack-filter flag (4 queues)
Test 0df3: Create CAKE_MQ with dual-dsthost and ack-filter-aggressive flag (4 queues)
Test 9a75: Create CAKE_MQ with memlimit and ptm flag (4 queues)
Test cdef: Create CAKE_MQ with fwmark and atm flag (4 queues)
Test 93dd: Create CAKE_MQ with overhead 0 and mpu (4 queues)
Test 1475: Create CAKE_MQ with conservative and ingress flag (4 queues)
Test 7bf1: Delete CAKE_MQ with conservative and ingress flag (4 queues)
Test ee55: Replace CAKE_MQ with mpu (4 queues)
Test 6df9: Change CAKE_MQ with mpu (4 queues)
Test 67e2: Show CAKE_MQ class (4 queues)
Test 2de4: Change bandwidth of CAKE_MQ (4 queues)
Test 5f62: Fail to create CAKE_MQ with autorate-ingress flag (4 queues)
Test 038e: Fail to change setting of sub-qdisc under CAKE_MQ
Test 7bdc: Fail to replace sub-qdisc under CAKE_MQ
Test 18e0: Fail to install CAKE_MQ on single queue device

Reviewed-by: Victor Nogueira <victor@mojatatu.com>
Signed-off-by: Jonas Köppeler <j.koeppeler@tu-berlin.de>
Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
Link: https://patch.msgid.link/20260109-mq-cake-sub-qdisc-v8-6-8d613fece5d8@redhat.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
2026-01-13 11:54:30 +01:00

560 lines
20 KiB
JSON

[
{
"id": "684b",
"name": "Create CAKE_MQ with default setting (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1\" > /sys/bus/netdevsim/del_device || true",
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "7ee8",
"name": "Create CAKE_MQ with bandwidth limit (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq bandwidth 1000",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth 1Kbit diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "1f87",
"name": "Create CAKE_MQ with rtt time (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq rtt 200",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 200us raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "e9cf",
"name": "Create CAKE_MQ with besteffort flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq besteffort",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited besteffort triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "7c05",
"name": "Create CAKE_MQ with diffserv8 flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq diffserv8",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv8 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "5a77",
"name": "Create CAKE_MQ with diffserv4 flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq diffserv4",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv4 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "8f7a",
"name": "Create CAKE_MQ with flowblind flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq flowblind",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 flowblind nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "7ef7",
"name": "Create CAKE_MQ with dsthost and nat flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq dsthost nat",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 dsthost nat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "2e4d",
"name": "Create CAKE_MQ with wash flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq hosts wash",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 hosts nonat wash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "b3e6",
"name": "Create CAKE_MQ with flowblind and no-split-gso flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq flowblind no-split-gso",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 flowblind nonat nowash no-ack-filter no-split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "62cd",
"name": "Create CAKE_MQ with dual-srchost and ack-filter flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq dual-srchost ack-filter",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 dual-srchost nonat nowash ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "0df3",
"name": "Create CAKE_MQ with dual-dsthost and ack-filter-aggressive flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq dual-dsthost ack-filter-aggressive",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 dual-dsthost nonat nowash ack-filter-aggressive split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "9a75",
"name": "Create CAKE_MQ with memlimit and ptm flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq memlimit 10000 ptm",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw ptm overhead 0 memlimit 10000b ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "cdef",
"name": "Create CAKE_MQ with fwmark and atm flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq fwmark 8 atm",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw atm overhead 0 fwmark 0x8 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "93dd",
"name": "Create CAKE_MQ with overhead 0 and mpu (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq overhead 128 mpu 256",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms noatm overhead 128 mpu 256 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "1475",
"name": "Create CAKE_MQ with conservative and ingress flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq conservative ingress",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash ingress no-ack-filter split-gso rtt 100ms atm overhead 48 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "7bf1",
"name": "Delete CAKE_MQ with conservative and ingress flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device",
"$TC qdisc add dev $ETH handle 1: root cake_mq conservative ingress"
],
"cmdUnderTest": "$TC qdisc del dev $ETH handle 1: root",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash ingress no-ack-filter split-gso rtt 100ms atm overhead 48 ",
"matchCount": "0",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "ee55",
"name": "Replace CAKE_MQ with mpu (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device",
"$TC qdisc add dev $ETH handle 1: root cake_mq overhead 128 mpu 256"
],
"cmdUnderTest": "$TC qdisc replace dev $ETH handle 1: root cake_mq mpu 128",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms noatm overhead 128 mpu 128 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "6df9",
"name": "Change CAKE_MQ with mpu (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device",
"$TC qdisc add dev $ETH handle 1: root cake_mq overhead 128 mpu 256"
],
"cmdUnderTest": "$TC qdisc change dev $ETH handle 1: root cake_mq mpu 128",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms noatm overhead 128 mpu 128 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "67e2",
"name": "Show CAKE_MQ class (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq",
"expExitCode": "0",
"verifyCmd": "$TC class show dev $ETH",
"matchPattern": "class cake_mq",
"matchCount": "4",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "2de4",
"name": "Change bandwidth of CAKE_MQ (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device",
"$TC qdisc add dev $ETH handle 1: root cake_mq"
],
"cmdUnderTest": "$TC qdisc replace dev $ETH handle 1: root cake_mq bandwidth 1000",
"expExitCode": "0",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth 1Kbit diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "5f62",
"name": "Fail to create CAKE_MQ with autorate-ingress flag (4 queues)",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq autorate-ingress",
"expExitCode": "2",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited autorate-ingress diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "0",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "038e",
"name": "Fail to change setting of sub-qdisc under CAKE_MQ",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device",
"$TC qdisc add dev $ETH handle 1: root cake_mq"
],
"cmdUnderTest": "$TC qdisc add dev $ETH parent 1:1 cake besteffort flows",
"expExitCode": "2",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "7bdc",
"name": "Fail to replace sub-qdisc under CAKE_MQ",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 4\" > /sys/bus/netdevsim/new_device",
"$TC qdisc add dev $ETH handle 1: root cake_mq"
],
"cmdUnderTest": "$TC qdisc add dev $ETH parent 1:1 fq",
"expExitCode": "2",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "5",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
},
{
"id": "18e0",
"name": "Fail to install CAKE_MQ on single queue device",
"category": [
"qdisc",
"cake_mq"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"echo \"1 1 1\" > /sys/bus/netdevsim/new_device"
],
"cmdUnderTest": "$TC qdisc add dev $ETH handle 1: root cake_mq",
"expExitCode": "2",
"verifyCmd": "$TC qdisc show dev $ETH",
"matchPattern": "qdisc (cake_mq 1: root|cake 0: parent 1:[1-4]) bandwidth unlimited diffserv3 triple-isolate nonat nowash no-ack-filter split-gso rtt 100ms raw overhead 0 ",
"matchCount": "0",
"teardown": [
"echo \"1\" > /sys/bus/netdevsim/del_device"
]
}
]