[ { "id": "a4c7", "name": "Create DualPI2 with default setting", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p.* step_thresh 1ms min_qlen_step 0p coupling_factor 2 drop_on_overload drop_dequeue classic_protection 10% l4s_ect split_gso", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "1ea4", "name": "Create DualPI2 with memlimit", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 memlimit 20000000", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p.* memlimit 20000000B", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "2130", "name": "Create DualPI2 with typical_rtt and max_rtt", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 typical_rtt 20ms max_rtt 200ms", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p.* target 20ms tupdate 20ms alpha 0.042969 beta 1.496094", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "90c1", "name": "Create DualPI2 with max_rtt", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 max_rtt 300ms", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p.* target 50ms tupdate 50ms alpha 0.050781 beta 0.996094", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "7b3c", "name": "Create DualPI2 with any_ect option", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 any_ect", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p .* any_ect", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "49a3", "name": "Create DualPI2 with overflow option", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 overflow", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p.* overflow", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "d0a1", "name": "Create DualPI2 with drop_enqueue option", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 drop_enqueue", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p .* drop_enqueue", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "f051", "name": "Create DualPI2 with no_split_gso option", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 no_split_gso", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p .* no_split_gso", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "456b", "name": "Create DualPI2 with packet step_thresh", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 step_thresh 3p", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p .* step_thresh 3p", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "610c", "name": "Create DualPI2 with packet min_qlen_step", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 min_qlen_step 1", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p .* min_qlen_step 1p", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "b4fa", "name": "Create DualPI2 with packet coupling_factor", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 coupling_factor 1", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p .* coupling_factor 1", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "37f1", "name": "Create DualPI2 with packet classic_protection", "category": [ "qdisc", "dualpi2" ], "plugins": { "requires": "nsPlugin" }, "setup": [ ], "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root dualpi2 classic_protection 0", "expExitCode": "0", "verifyCmd": "$TC qdisc show dev $DUMMY", "matchPattern": "qdisc dualpi2 1: root refcnt [0-9]+ limit 10000p .* classic_protection 0%", "matchCount": "1", "teardown": [ "$TC qdisc del dev $DUMMY handle 1: root" ] }, { "id": "891f", "name": "Verify DualPI2 GSO backlog accounting with QFQ parent", "category": [ "qdisc", "dualpi2", "qfq", "gso" ], "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 root handle 1: qfq", "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 1 maxpkt 4096", "$TC qdisc add dev $DUMMY parent 1:1 handle 2: dualpi2", "$TC filter add dev $DUMMY parent 1: matchall classid 1:1" ], "cmdUnderTest": "./tdc_gso.py 10.10.10.10 10.10.10.1 9000 1200 2400", "expExitCode": "0", "verifyCmd": "$TC -j -s qdisc ls dev $DUMMY", "matchJSON": [ { "kind": "qfq", "handle": "1:", "packets": 2, "backlog": 0, "qlen": 0 }, { "kind": "dualpi2", "handle": "2:", "packets": 2, "backlog": 0, "qlen": 0 } ], "teardown": [ "$TC qdisc del dev $DUMMY root", "$IP addr del 10.10.10.10/24 dev $DUMMY || true" ] } ]