Commit 5914428e authored by Victor Nogueira's avatar Victor Nogueira Committed by Jakub Kicinski
Browse files

selftests/tc-testing: Create tests to exercise ets classes active list misplacements

Add a test case for a bug fixed by Jamal [1] and for scenario where an
ets drr class is inserted into the active list twice.

- Try to delete ets drr class' qdisc while still keeping it in the
  active list
- Try to add ets class to the active list twice

[1] https://lore.kernel.org/netdev/20251128151919.576920-1-jhs@mojatatu.com/



Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
Signed-off-by: default avatarVictor Nogueira <victor@mojatatu.com>
Reviewed-by: default avatarPetr Machata <petrm@nvidia.com>
Link: https://patch.msgid.link/20251208190125.1868423-2-victor@mojatatu.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent b1e125ae
Loading
Loading
Loading
Loading
+78 −0
Original line number Diff line number Diff line
@@ -1033,5 +1033,83 @@
        "teardown": [
            "$TC qdisc del dev $DUMMY handle 1: root"
        ]
    },
    {
        "id": "6e4f",
        "name": "Try to delete ets drr class' qdisc while still keeping it in the active list",
        "category": [
            "qdisc",
            "ets",
            "tbf"
        ],
        "plugins": {
            "requires": [
                "nsPlugin",
                "scapyPlugin"
            ]
        },
        "setup": [
            "$IP link set dev $DUMMY up || true",
            "$IP addr add 10.10.11.10/24 dev $DUMMY || true",
            "$TC qdisc add dev $DUMMY root handle 1: ets bands 2 strict 1",
            "$TC qdisc add dev $DUMMY parent 1:2 handle 20: tbf rate 8bit burst 100b latency 1s",
            "$TC filter add dev $DUMMY parent 1: basic classid 1:2",
            "ping -c2 -W0.01 -s 56 -I $DUMMY 10.10.11.11 || true",
            "$TC qdisc change dev $DUMMY root handle 1: ets bands 2 strict 2",
            "$TC qdisc change dev $DUMMY root handle 1: ets bands 1 strict 1"
        ],
        "cmdUnderTest": "ping -c1 -W0.01 -s 56 -I $DUMMY 10.10.11.11",
        "expExitCode": "1",
        "verifyCmd": "$TC -s -j qdisc ls dev $DUMMY root",
        "matchJSON": [
            {
                "kind": "ets",
                "handle": "1:",
                "bytes": 196,
                "packets": 2
            }
        ],
        "teardown": [
            "$TC qdisc del dev $DUMMY root handle 1:"
        ]
    },
    {
        "id": "0b8f",
        "name": "Try to add ets class to the active list twice",
        "category": [
            "qdisc",
            "ets",
            "tbf"
        ],
        "plugins": {
            "requires": [
                "nsPlugin",
                "scapyPlugin"
            ]
        },
        "setup": [
            "$IP link set dev $DUMMY up || true",
            "$IP addr add 10.10.11.10/24 dev $DUMMY || true",
            "$TC qdisc add dev $DUMMY root handle 1: ets bands 2 strict 1",
            "$TC qdisc add dev $DUMMY parent 1:2 handle 20: tbf rate 8bit burst 100b latency 1s",
            "$TC filter add dev $DUMMY parent 1: basic classid 1:2",
            "ping -c2 -W0.01 -s 56 -I $DUMMY 10.10.11.11 || true",
            "$TC qdisc change dev $DUMMY root handle 1: ets bands 2 strict 2",
            "$TC qdisc change dev $DUMMY root handle 1: ets bands 2 strict 1"
        ],
        "cmdUnderTest": "ping -c1 -W0.01 -s 56 -I $DUMMY 10.10.11.11",
        "expExitCode": "1",
        "verifyCmd": "$TC -s -j qdisc ls dev $DUMMY root",
        "matchJSON": [
            {
                "kind": "ets",
                "handle": "1:",
                "bytes": 98,
                "packets": 1
            }
        ],
        "teardown": [
            "$TC qdisc del dev $DUMMY root handle 1:"
        ]
    }
]