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

selftests: tc-testing: add mirred to block tdc tests



Add 8 new mirred tdc tests that target mirred to block:

- Add mirred mirror to egress block action
- Add mirred mirror to ingress block action
- Add mirred redirect to egress block action
- Add mirred redirect to ingress block action
- Try to add mirred action with both dev and block
- Try to add mirred action without specifying neither dev nor block
- Replace mirred redirect to dev action with redirect to block
- Replace mirred redirect to block action with mirror to dev

Signed-off-by: default avatarVictor Nogueira <victor@mojatatu.com>
Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
Link: https://lore.kernel.org/r/20240202020726.529170-1-victor@mojatatu.com


Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 709990df
Loading
Loading
Loading
Loading
+396 −0
Original line number Diff line number Diff line
@@ -649,5 +649,401 @@
        "teardown": [
            "$TC actions flush action mirred"
        ]
    },
    {
        "id": "456d",
        "name": "Add mirred mirror to egress block action",
        "category": [
            "actions",
            "mirred"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            [
                "$TC actions flush action mirred",
                0,
                1,
                255
            ],
            [
                "$TC qdisc add dev $DEV1 egress_block 21 clsact",
                0
            ]
        ],
        "cmdUnderTest": "$TC actions add action mirred egress mirror index 1 blockid 21",
        "expExitCode": "0",
        "verifyCmd": "$TC -j actions get action mirred index 1",
        "matchJSON": [
            {
                "total acts": 0
            },
            {
                "actions": [
                    {
                        "order": 1,
                        "kind": "mirred",
                        "mirred_action": "mirror",
                        "direction": "egress",
                        "to_blockid": 21,
                        "control_action": {
                            "type": "pipe"
                        },
                        "index": 1,
                        "ref": 1,
                        "bind": 0,
                        "not_in_hw": true
                    }
                ]
            }
        ],
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 egress_block 21 clsact",
            "$TC actions flush action mirred"
        ]
    },
    {
        "id": "2358",
        "name": "Add mirred mirror to ingress block action",
        "category": [
            "actions",
            "mirred"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            [
                "$TC actions flush action mirred",
                0,
                1,
                255
            ],
            [
                "$TC qdisc add dev $DEV1 ingress_block 21 clsact",
                0
            ]
        ],
        "cmdUnderTest": "$TC actions add action mirred ingress mirror index 1 blockid 21",
        "expExitCode": "0",
        "verifyCmd": "$TC -j actions get action mirred index 1",
        "matchJSON": [
            {
                "total acts": 0
            },
            {
                "actions": [
                    {
                        "order": 1,
                        "kind": "mirred",
                        "mirred_action": "mirror",
                        "direction": "ingress",
                        "to_blockid": 21,
                        "control_action": {
                            "type": "pipe"
                        },
                        "index": 1,
                        "ref": 1,
                        "bind": 0,
                        "not_in_hw": true
                    }
                ]
            }
        ],
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 ingress_block 21 clsact",
            "$TC actions flush action mirred"
        ]
    },
    {
        "id": "fdb1",
        "name": "Add mirred redirect to egress block action",
        "category": [
            "actions",
            "mirred"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            [
                "$TC actions flush action mirred",
                0,
                1,
                255
            ],
            [
                "$TC qdisc add dev $DEV1 ingress_block 21 clsact",
                0
            ]
        ],
        "cmdUnderTest": "$TC actions add action mirred egress redirect index 1 blockid 21",
        "expExitCode": "0",
        "verifyCmd": "$TC -j actions get action mirred index 1",
        "matchJSON": [
            {
                "total acts": 0
            },
            {
                "actions": [
                    {
                        "order": 1,
                        "kind": "mirred",
                        "mirred_action": "redirect",
                        "direction": "egress",
                        "to_blockid": 21,
                        "control_action": {
                            "type": "stolen"
                        },
                        "index": 1,
                        "ref": 1,
                        "bind": 0,
                        "not_in_hw": true
                    }
                ]
            }
        ],
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 ingress_block 21 clsact",
            "$TC actions flush action mirred"
        ]
    },
    {
        "id": "20cc",
        "name": "Add mirred redirect to ingress block action",
        "category": [
            "actions",
            "mirred"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            [
                "$TC actions flush action mirred",
                0,
                1,
                255
            ],
            [
                "$TC qdisc add dev $DEV1 ingress_block 21 clsact",
                0
            ]
        ],
        "cmdUnderTest": "$TC actions add action mirred ingress redirect index 1 blockid 21",
        "expExitCode": "0",
        "verifyCmd": "$TC -j actions get action mirred index 1",
        "matchJSON": [
            {
                "total acts": 0
            },
            {
                "actions": [
                    {
                        "order": 1,
                        "kind": "mirred",
                        "mirred_action": "redirect",
                        "direction": "ingress",
                        "to_blockid": 21,
                        "control_action": {
                            "type": "stolen"
                        },
                        "index": 1,
                        "ref": 1,
                        "bind": 0,
                        "not_in_hw": true
                    }
                ]
            }
        ],
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 ingress_block 21 clsact",
            "$TC actions flush action mirred"
        ]
    },
    {
        "id": "e739",
        "name": "Try to add mirred action with both dev and block",
        "category": [
            "actions",
            "mirred"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            [
                "$TC actions flush action mirred",
                0,
                1,
                255
            ],
            [
                "$TC qdisc add dev $DEV1 ingress_block 21 clsact",
                0
            ]
        ],
        "cmdUnderTest": "$TC actions add action mirred ingress redirect index 1 blockid 21 dev $DEV1",
        "expExitCode": "255",
        "verifyCmd": "$TC -j actions list action mirred",
        "matchJSON": [],
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 ingress_block 21 clsact",
            "$TC actions flush action mirred"
        ]
    },
    {
        "id": "2f47",
        "name": "Try to add mirred action without specifying neither dev nor block",
        "category": [
            "actions",
            "mirred"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            [
                "$TC actions flush action mirred",
                0,
                1,
                255
            ],
            [
                "$TC qdisc add dev $DEV1 ingress_block 21 clsact",
                0
            ]
        ],
        "cmdUnderTest": "$TC actions add action mirred ingress redirect index 1",
        "expExitCode": "255",
        "verifyCmd": "$TC -j actions list action mirred",
        "matchJSON": [],
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 ingress_block 21 clsact",
            "$TC actions flush action mirred"
        ]
    },
    {
        "id": "3188",
        "name": "Replace mirred redirect to dev action with redirect to block",
        "category": [
            "actions",
            "mirred"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            [
                "$TC actions flush action mirred",
                0,
                1,
                255
            ],
            [
                "$TC qdisc add dev $DEV1 ingress_block 21 clsact",
                0
            ],
            [
                "$TC actions add action mirred ingress redirect index 1 dev $DEV1",
                0
            ]
        ],
        "cmdUnderTest": "$TC actions replace action mirred egress redirect index 1 blockid 21",
        "expExitCode": "0",
        "verifyCmd": "$TC -j actions get action mirred index 1",
        "matchJSON": [
            {
                "total acts": 0
            },
            {
                "actions": [
                    {
                        "order": 1,
                        "kind": "mirred",
                        "mirred_action": "redirect",
                        "direction": "egress",
                        "to_blockid": 21,
                        "control_action": {
                            "type": "stolen"
                        },
                        "index": 1,
                        "ref": 1,
                        "bind": 0,
                        "not_in_hw": true
                    }
                ]
            }
        ],
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 ingress_block 21 clsact",
            "$TC actions flush action mirred"
        ]
    },
    {
        "id": "83cc",
        "name": "Replace mirred redirect to block action with mirror to dev",
        "category": [
            "actions",
            "mirred"
        ],
        "plugins": {
            "requires": "nsPlugin"
        },
        "setup": [
            [
                "$TC actions flush action mirred",
                0,
                1,
                255
            ],
            [
                "$TC qdisc add dev $DEV1 ingress_block 21 clsact",
                0
            ],
            [
                "$TC actions add action mirred egress redirect index 1 blockid 21",
                0
            ]
        ],
        "cmdUnderTest": "$TC actions replace action mirred ingress mirror index 1 dev lo",
        "expExitCode": "0",
        "verifyCmd": "$TC -j actions get action mirred index 1",
        "matchJSON": [
            {
                "total acts": 0
            },
            {
                "actions": [
                    {
                        "order": 1,
                        "kind": "mirred",
                        "mirred_action": "mirror",
                        "direction": "ingress",
                        "to_dev": "lo",
                        "control_action": {
                            "type": "pipe"
                        },
                        "index": 1,
                        "ref": 1,
                        "bind": 0,
                        "not_in_hw": true
                    }
                ]
            }
        ],
        "matchCount": "1",
        "teardown": [
            "$TC qdisc del dev $DEV1 ingress_block 21 clsact",
            "$TC actions flush action mirred"
        ]
    }
]