[
{
"id": "5124",
"name": "Add mirred mirror to egress action",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred egress mirror index 1 dev lo",
"expExitCode": "0",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "action order [0-9]*: mirred \\(Egress Mirror to device lo\\).*index 1 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "6fb4",
"name": "Add mirred redirect to egress action",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred egress redirect index 2 dev lo action pipe",
"expExitCode": "0",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "action order [0-9]*: mirred \\(Egress Redirect to device lo\\).*index 2 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred",
"$TC actions flush action gact"
]
},
{
"id": "ba38",
"name": "Get mirred actions",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
],
"$TC actions add action mirred egress mirror index 1 dev lo",
"$TC actions add action mirred egress redirect index 2 dev lo"
],
"cmdUnderTest": "$TC actions show action mirred",
"expExitCode": "0",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "[Mirror|Redirect] to device lo",
"matchCount": "2",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "d7c0",
"name": "Add invalid mirred direction",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred inbound mirror index 20 dev lo",
"expExitCode": "255",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "action order [0-9]*: mirred \\(.*to device lo\\).*index 20 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "e213",
"name": "Add invalid mirred action",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred egress remirror index 20 dev lo",
"expExitCode": "255",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "action order [0-9]*: mirred \\(Egress.*to device lo\\).*index 20 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "2d89",
"name": "Add mirred action with invalid device",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred egress mirror index 20 dev eltoh",
"expExitCode": "255",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "action order [0-9]*: mirred \\(.*to device eltoh\\).*index 20 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "300b",
"name": "Add mirred action with duplicate index",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
],
"$TC actions add action mirred egress redirect index 15 dev lo"
],
"cmdUnderTest": "$TC actions add action mirred egress mirror index 15 dev lo",
"expExitCode": "255",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "action order [0-9]*: mirred \\(.*to device lo\\).*index 15 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "8917",
"name": "Add mirred mirror action with control pass",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo pass index 1",
"expExitCode": "0",
"verifyCmd": "$TC actions get action mirred index 1",
"matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) pass.*index 1 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "1054",
"name": "Add mirred mirror action with control pipe",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo pipe index 15",
"expExitCode": "0",
"verifyCmd": "$TC actions get action mirred index 15",
"matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) pipe.*index 15 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "9887",
"name": "Add mirred mirror action with control continue",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo continue index 15",
"expExitCode": "0",
"verifyCmd": "$TC actions get action mirred index 15",
"matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) continue.*index 15 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "e4aa",
"name": "Add mirred mirror action with control reclassify",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo reclassify index 150",
"expExitCode": "0",
"verifyCmd": "$TC actions get action mirred index 150",
"matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) reclassify.*index 150 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "ece9",
"name": "Add mirred mirror action with control drop",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo drop index 99",
"expExitCode": "0",
"verifyCmd": "$TC actions get action mirred index 99",
"matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) drop.*index 99 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "0031",
"name": "Add mirred mirror action with control jump",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo jump 10 index 99",
"expExitCode": "0",
"verifyCmd": "$TC actions get action mirred index 99",
"matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) jump 10.*index 99 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "407c",
"name": "Add mirred mirror action with cookie",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo reclassify cookie aa11bb22cc33dd44ee55",
"expExitCode": "0",
"verifyCmd": "$TC actions ls action mirred",
"matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) reclassify.*cookie aa11bb22cc33dd44ee55",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "8b69",
"name": "Add mirred mirror action with index at 32-bit maximum",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo pipe index 4294967295",
"expExitCode": "0",
"verifyCmd": "$TC actions get action mirred index 4294967295",
"matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) pipe.*index 4294967295",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "3f66",
"name": "Add mirred mirror action with index exceeding 32-bit maximum",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred ingress mirror dev lo pipe index 429496729555",
"expExitCode": "255",
"verifyCmd": "$TC actions get action mirred index 429496729555",
"matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) pipe.*index 429496729555",
"matchCount": "0",
"teardown": []
},
{
"id": "a70e",
"name": "Delete mirred mirror action",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
],
"$TC actions add action mirred egress mirror index 5 dev lo"
],
"cmdUnderTest": "$TC actions del action mirred index 5",
"expExitCode": "0",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "action order [0-9]*: mirred \\(Egress Mirror to device lo\\).*index 5 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "3fb3",
"name": "Delete mirred redirect action",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
],
"$TC actions add action mirred egress redirect index 5 dev lo"
],
"cmdUnderTest": "$TC actions del action mirred index 5",
"expExitCode": "0",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "action order [0-9]*: mirred \\(Egress Redirect to device lo\\).*index 5 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "2a9a",
"name": "Replace mirred action with invalid goto chain control",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
],
"$TC actions add action mirred ingress mirror dev lo drop index 90"
],
"cmdUnderTest": "$TC actions replace action mirred ingress mirror dev lo goto chain 42 index 90 cookie c1a0c1a0",
"expExitCode": "255",
"verifyCmd": "$TC actions get action mirred index 90",
"matchPattern": "action order [0-9]*: mirred \\(Ingress Mirror to device lo\\) drop.*index 90 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "4749",
"name": "Add batch of 32 mirred redirect egress actions with cookie",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred egress redirect dev lo index \\$i cookie aabbccddeeff112233445566778800a1 \\\"; args=\"\\$args\\$cmd\"; done && $TC actions add \\$args\"",
"expExitCode": "0",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "^[ \t]+index [0-9]+ ref",
"matchCount": "32",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "5c69",
"name": "Delete batch of 32 mirred redirect egress actions",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
],
"bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred egress redirect dev lo index \\$i \\\"; args=\\\"\\$args\\$cmd\\\"; done && $TC actions add \\$args\""
],
"cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred index \\$i \\\"; args=\"\\$args\\$cmd\"; done && $TC actions del \\$args\"",
"expExitCode": "0",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "^[ \t]+index [0-9]+ ref",
"matchCount": "0",
"teardown": []
},
{
"id": "d3c0",
"name": "Add batch of 32 mirred mirror ingress actions with cookie",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred ingress mirror dev lo index \\$i cookie aabbccddeeff112233445566778800a1 \\\"; args=\"\\$args\\$cmd\"; done && $TC actions add \\$args\"",
"expExitCode": "0",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "^[ \t]+index [0-9]+ ref",
"matchCount": "32",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "e684",
"name": "Delete batch of 32 mirred mirror ingress actions",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
],
"bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred ingress mirror dev lo index \\$i \\\"; args=\\\"\\$args\\$cmd\\\"; done && $TC actions add \\$args\""
],
"cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action mirred index \\$i \\\"; args=\"\\$args\\$cmd\"; done && $TC actions del \\$args\"",
"expExitCode": "0",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "^[ \t]+index [0-9]+ ref",
"matchCount": "0",
"teardown": []
},
{
"id": "31e3",
"name": "Add mirred mirror to egress action with no_percpu flag",
"category": [
"actions",
"mirred"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action mirred",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action mirred egress mirror dev lo no_percpu",
"expExitCode": "0",
"verifyCmd": "$TC actions list action mirred",
"matchPattern": "action order [0-9]*: mirred \\(Egress Mirror to device lo\\).*no_percpu",
"matchCount": "1",
"teardown": [
"$TC actions flush action mirred"
]
},
{
"id": "456d",
"name": "Add mirred mirror to egress block action",
"category": [
"actions",
"mirred"
],
"dependsOn": "$TC actions add action mirred help 2>&1 | grep -q blockid",
"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"
],
"dependsOn": "$TC actions add action mirred help 2>&1 | grep -q blockid",
"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"
],
"dependsOn": "$TC actions add action mirred help 2>&1 | grep -q blockid",
"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"
],
"dependsOn": "$TC actions add action mirred help 2>&1 | grep -q blockid",
"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"
],
"dependsOn": "$TC actions add action mirred help 2>&1 | grep -q blockid",
"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"
],
"dependsOn": "$TC actions add action mirred help 2>&1 | grep -q blockid",
"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"
],
"dependsOn": "$TC actions add action mirred help 2>&1 | grep -q blockid",
"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"
]
}
]