| [ |
| { |
| "id": "d710", |
| "name": "Release tail references after first action deletion fails", |
| "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 actions add action pass index 2", |
| "$TC actions add action pass index 3", |
| "$TC filter add dev $DEV1 protocol ip ingress u32 match u32 0 0 action gact index 1" |
| ], |
| "cmdUnderTest": "$TC actions del action gact index 1 action gact index 2 action gact index 3", |
| "expExitCode": "255", |
| "verifyCmd": "$TC actions ls action gact", |
| "matchPattern": "total acts 3\\b.*index 1 ref 2 bind 1\\b.*index 2 ref 1 bind 0\\b.*index 3 ref 1 bind 0\\b", |
| "matchCount": "1", |
| "teardown": [ |
| "$TC qdisc del dev $DEV1 ingress", |
| [ |
| "$TC actions flush action gact", |
| 0, |
| 1, |
| 255 |
| ] |
| ] |
| }, |
| { |
| "id": "d711", |
| "name": "Release tail references after middle action deletion fails", |
| "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 actions add action pass index 2", |
| "$TC actions add action pass index 3", |
| "$TC filter add dev $DEV1 protocol ip ingress u32 match u32 0 0 action gact index 2" |
| ], |
| "cmdUnderTest": "$TC actions del action gact index 1 action gact index 2 action gact index 3", |
| "expExitCode": "255", |
| "verifyCmd": "$TC actions ls action gact", |
| "matchPattern": "total acts 2\\b.*index 2 ref 2 bind 1\\b.*index 3 ref 1 bind 0\\b", |
| "matchCount": "1", |
| "teardown": [ |
| "$TC qdisc del dev $DEV1 ingress", |
| [ |
| "$TC actions flush action gact", |
| 0, |
| 1, |
| 255 |
| ] |
| ] |
| }, |
| { |
| "id": "d713", |
| "name": "Delete a tail action once after a failed batch", |
| "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 actions add action pass index 2", |
| "$TC filter add dev $DEV1 protocol ip ingress u32 match u32 0 0 action gact index 1" |
| ], |
| "cmdUnderTest": "$TC actions del action gact index 1 action gact index 2", |
| "expExitCode": "255", |
| "verifyCmd": "sh -c '$TC actions del action gact index 2 && $TC actions ls action gact'", |
| "matchPattern": "total acts 1\\b.*index 1 ref 2 bind 1\\b", |
| "matchCount": "1", |
| "teardown": [ |
| "$TC qdisc del dev $DEV1 ingress", |
| [ |
| "$TC actions flush action gact", |
| 0, |
| 1, |
| 255 |
| ] |
| ] |
| } |
| ] |