Commit 5cba412d authored by Victor Nogueira's avatar Victor Nogueira Committed by Paolo Abeni
Browse files

selftests/tc-testing: Test case exercising potential mirred redirect deadlock



Add a test case that reproduces deadlock scenario where the user has
a drr qdisc attached to root and has a mirred action that redirects to
self on egress

Signed-off-by: default avatarVictor Nogueira <victor@mojatatu.com>
Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
Link: https://patch.msgid.link/20251210162255.1057663-2-jhs@mojatatu.com


Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
parent 1d856251
Loading
Loading
Loading
Loading
+46 −0
Original line number Diff line number Diff line
@@ -1052,5 +1052,51 @@
            "$TC qdisc del dev $DEV1 ingress_block 21 clsact",
            "$TC actions flush action mirred"
        ]
    },
    {
        "id": "7eba",
        "name": "Redirect multiport: dummy egress ->  dummy egress (Loop)",
        "category": [
            "filter",
            "mirred"
        ],
        "plugins": {
            "requires": [
                "nsPlugin"
            ]
        },
        "setup": [
            "$IP link set dev $DUMMY up || true",
            "$IP addr add 10.10.10.10/24 dev $DUMMY || true",
            "$TC qdisc add dev $DUMMY handle 1: root drr",
            "$TC filter add dev $DUMMY parent 1: protocol ip prio 10 matchall action mirred egress redirect dev $DUMMY index 1"
        ],
        "cmdUnderTest": "ping -c1 -W0.01 -I $DUMMY 10.10.10.1",
        "expExitCode": "1",
        "verifyCmd": "$TC -j -s actions get action mirred index 1",
        "matchJSON": [
            {
                "total acts": 0
            },
            {
                "actions": [
                    {
                        "order": 1,
                        "kind": "mirred",
                        "mirred_action": "redirect",
                        "direction": "egress",
                        "index": 1,
                        "stats": {
                            "packets": 1,
                            "overlimits": 1
                        },
                        "not_in_hw": true
                    }
                ]
            }
        ],
        "teardown": [
            "$TC qdisc del dev $DUMMY root"
        ]
    }
]