[
{
"id": "e89a",
"name": "Add valid pass action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action pass index 8",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action pass.*index 8 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "a02c",
"name": "Add valid pipe action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action pipe index 6",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action pipe.*index 6 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "feef",
"name": "Add valid reclassify action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action reclassify index 5",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action reclassify.*index 5 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "8a7a",
"name": "Add valid drop action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action drop index 30",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action drop.*index 30 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "9a52",
"name": "Add valid continue action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action continue index 432",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action continue.*index 432 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "d700",
"name": "Add invalid action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action pump index 386",
"expExitCode": "255",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action.*index 386 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "9215",
"name": "Add action with duplicate index",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC actions add action pipe index 15"
],
"cmdUnderTest": "$TC actions add action drop index 15",
"expExitCode": "255",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action drop.*index 15 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "798e",
"name": "Add action with index exceeding 32-bit maximum",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action drop index 4294967296",
"expExitCode": "255",
"verifyCmd": "actions list action gact",
"matchPattern": "action order [0-9]*: gact action drop.*index 4294967296 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "22be",
"name": "Add action with index at 32-bit maximum",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action drop index 4294967295",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action drop.*index 4294967295 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "ac2a",
"name": "List actions",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC actions add action reclassify index 101",
"$TC actions add action reclassify index 102",
"$TC actions add action reclassify index 103",
"$TC actions add action reclassify index 104",
"$TC actions add action reclassify index 105"
],
"cmdUnderTest": "$TC actions list action gact",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action reclassify",
"matchCount": "5",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "3edf",
"name": "Flush gact actions",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
"$TC actions add action reclassify index 101",
"$TC actions add action reclassify index 102",
"$TC actions add action reclassify index 103",
"$TC actions add action reclassify index 104",
"$TC actions add action reclassify index 105"
],
"cmdUnderTest": "$TC actions flush action gact",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action reclassify",
"matchCount": "0",
"teardown": []
},
{
"id": "63ec",
"name": "Delete pass action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC actions add action pass index 1"
],
"cmdUnderTest": "$TC actions del action gact index 1",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action pass.*index 1 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "46be",
"name": "Delete pipe action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC actions add action pipe index 9"
],
"cmdUnderTest": "$TC actions del action gact index 9",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action pipe.*index 9 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "2e08",
"name": "Delete reclassify action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC actions add action reclassify index 65536"
],
"cmdUnderTest": "$TC actions del action gact index 65536",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action reclassify.*index 65536 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "99c4",
"name": "Delete drop action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC actions add action drop index 16"
],
"cmdUnderTest": "$TC actions del action gact index 16",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action drop.*index 16 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "fb6b",
"name": "Delete continue action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC actions add action continue index 32"
],
"cmdUnderTest": "$TC actions del action gact index 32",
"expExitCode": "0",
"verifyCmd": "actions list action gact",
"matchPattern": "action order [0-9]*: gact action continue.*index 32 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "0eb3",
"name": "Delete non-existent action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions del action gact index 2",
"expExitCode": "255",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action",
"matchCount": "0",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "f02c",
"name": "Replace gact action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC actions add action drop index 10",
"$TC actions add action drop index 12"
],
"cmdUnderTest": "$TC actions replace action ok index 12",
"expExitCode": "0",
"verifyCmd": "$TC actions ls action gact",
"matchPattern": "action order [0-9]*: gact action pass",
"matchCount": "1",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "525f",
"name": "Get gact action by index",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC actions add action drop index 3900800700"
],
"cmdUnderTest": "$TC actions get action gact index 3900800700",
"expExitCode": "0",
"verifyCmd": "$TC actions get action gact index 3900800700",
"matchPattern": "index 3900800700",
"matchCount": "1",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "1021",
"name": "Add batch of 32 gact pass actions",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action pass index \\$i \\\"; args=\"\\$args\\$cmd\"; done && $TC actions add \\$args\"",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "^[ \t]+index [0-9]+ ref",
"matchCount": "32",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "da7a",
"name": "Add batch of 32 gact continue actions with cookie",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action continue index \\$i cookie aabbccddeeff112233445566778800a1 \\\"; args=\"\\$args\\$cmd\"; done && $TC actions add \\$args\"",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "^[ \t]+index [0-9]+ ref",
"matchCount": "32",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "8aa3",
"name": "Delete batch of 32 gact continue actions",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action continue index \\$i \\\"; args=\\\"\\$args\\$cmd\\\"; done && $TC actions add \\$args\""
],
"cmdUnderTest": "bash -c \"for i in \\`seq 1 32\\`; do cmd=\\\"action gact index \\$i \\\"; args=\"\\$args\\$cmd\"; done && $TC actions del \\$args\"",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "^[ \t]+index [0-9]+ ref",
"matchCount": "0",
"teardown": []
},
{
"id": "8e47",
"name": "Add gact action with random determ goto chain control action",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action pass random determ goto chain 1 2 index 90",
"expExitCode": "255",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action pass random type determ goto chain 1 val 2.*index 90 ref",
"matchCount": "0",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "ca89",
"name": "Replace gact action with invalid goto chain control",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC actions add action pass random determ drop 2 index 90"
],
"cmdUnderTest": "$TC actions replace action goto chain 42 random determ drop 5 index 90 cookie c1a0c1a0",
"expExitCode": "255",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action pass.*random type determ drop val 2.*index 90 ref",
"matchCount": "1",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "95ad",
"name": "Add gact pass action with no_percpu flag",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
]
],
"cmdUnderTest": "$TC actions add action pass no_percpu",
"expExitCode": "0",
"verifyCmd": "$TC actions list action gact",
"matchPattern": "action order [0-9]*: gact action pass.*no_percpu",
"matchCount": "1",
"teardown": [
"$TC actions flush action gact"
]
},
{
"id": "7f52",
"name": "Try to flush action which is referenced by filter",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC qdisc add dev $DEV1 ingress",
"$TC actions add action pass index 1",
"$TC filter add dev $DEV1 protocol all ingress prio 1 handle 0x1234 matchall action gact index 1"
],
"cmdUnderTest": "$TC actions flush action gact",
"expExitCode": "1",
"verifyCmd": "$TC actions ls action gact",
"matchPattern": "total acts 1.*action order [0-9]*: gact action pass.*index 1 ref 2 bind 1",
"matchCount": "1",
"teardown": [
"$TC qdisc del dev $DEV1 ingress",
[
"sleep 1; $TC actions flush action gact",
0,
1
]
]
},
{
"id": "ae1e",
"name": "Try to flush actions when last one is referenced by filter",
"category": [
"actions",
"gact"
],
"plugins": {
"requires": "nsPlugin"
},
"setup": [
[
"$TC actions flush action gact",
0,
1,
255
],
"$TC qdisc add dev $DEV1 ingress",
[
"$TC actions add action pass index 1",
0,
1,
255
],
"$TC actions add action reclassify index 2",
"$TC actions add action drop index 3",
"$TC filter add dev $DEV1 protocol all ingress prio 1 handle 0x1234 matchall action gact index 3"
],
"cmdUnderTest": "$TC actions flush action gact",
"expExitCode": "0",
"verifyCmd": "$TC actions ls action gact",
"matchPattern": "total acts 1.*action order [0-9]*: gact action drop.*index 3 ref 2 bind 1",
"matchCount": "1",
"teardown": [
"$TC qdisc del dev $DEV1 ingress",
[
"sleep 1; $TC actions flush action gact",
0,
1
]
]
}
]