Commit 29c298d2 authored by Vladimir Oltean's avatar Vladimir Oltean Committed by Jakub Kicinski
Browse files

selftests/tc-testing: verify that a qdisc can be grafted onto a taprio class



The reason behind commit af7b29b1 ("Revert "net/sched: taprio: make
qdisc_leaf() see the per-netdev-queue pfifo child qdiscs"") was that the
patch it reverted caused a crash when attaching a CBS shaper to one of
the taprio classes. Prevent that from happening again by adding a test
case for it, which now passes correctly in both offload and software
modes.

Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Reviewed-by: default avatarPedro Tammela <pctammela@mojatatu.com>
Link: https://lore.kernel.org/r/20230807193324.4128292-12-vladimir.oltean@nxp.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 1890cf08
Loading
Loading
Loading
Loading
+50 −0
Original line number Diff line number Diff line
@@ -206,5 +206,55 @@
            "$TC qdisc del dev $ETH root",
            "echo \"1\" > /sys/bus/netdevsim/del_device"
        ]
    },
    {
        "id": "a7bf",
        "name": "Graft cbs as child of software taprio",
        "category": [
            "qdisc",
            "taprio",
            "cbs"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device",
            "$TC qdisc replace dev $ETH handle 8001: parent root stab overhead 24 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 sched-entry S ff 20000000 clockid CLOCK_TAI"
        ],
        "cmdUnderTest": "$TC qdisc replace dev $ETH handle 8002: parent 8001:8 cbs idleslope 20000 sendslope -980000 hicredit 30 locredit -1470",
        "expExitCode": "0",
        "verifyCmd": "$TC -d qdisc show dev $ETH",
        "matchPattern": "qdisc cbs 8002: parent 8001:8 hicredit 30 locredit -1470 sendslope -980000 idleslope 20000 offload 0",
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $ETH root",
            "echo \"1\" > /sys/bus/netdevsim/del_device"
        ]
    },
    {
        "id": "6a83",
        "name": "Graft cbs as child of offloaded taprio",
        "category": [
            "qdisc",
            "taprio",
            "cbs"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            "echo \"1 1 8\" > /sys/bus/netdevsim/new_device",
            "$TC qdisc replace dev $ETH handle 8001: parent root stab overhead 24 taprio num_tc 8 map 0 1 2 3 4 5 6 7 queues 1@0 1@1 1@2 1@3 1@4 1@5 1@6 1@7 base-time 0 sched-entry S ff 20000000 flags 0x2"
        ],
        "cmdUnderTest": "$TC qdisc replace dev $ETH handle 8002: parent 8001:8 cbs idleslope 20000 sendslope -980000 hicredit 30 locredit -1470",
        "expExitCode": "0",
        "verifyCmd": "$TC -d qdisc show dev $ETH",
        "matchPattern": "qdisc cbs 8002: parent 8001:8 refcnt 2 hicredit 30 locredit -1470 sendslope -980000 idleslope 20000 offload 0",
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $ETH root",
            "echo \"1\" > /sys/bus/netdevsim/del_device"
        ]
    }
]