Message ID | 20220916030544.228274-14-shaozhengchao@huawei.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | refactor duplicate codes in the qdisc class walk function | expand |
On Fri, Sep 16, 2022 at 12:04 AM Zhengchao Shao <shaozhengchao@huawei.com> wrote: > > Test cb28: Create NETEM with default setting > Test a089: Create NETEM with limit flag > Test 3449: Create NETEM with delay time > Test 3782: Create NETEM with distribution and corrupt flag > Test a932: Create NETEM with distribution and duplicate flag > Test e01a: Create NETEM with distribution and loss state flag > Test ba29: Create NETEM with loss gemodel flag > Test 0492: Create NETEM with reorder flag > Test 7862: Create NETEM with rate limit > Test 7235: Create NETEM with multiple slot rate > Test 5439: Create NETEM with multiple slot setting > Test 5029: Change NETEM with loss state > Test 3785: Replace NETEM with delay time > Test 4502: Delete NETEM with handle > Test 0785: Show NETEM class > > Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> > --- > .../tc-testing/tc-tests/qdiscs/netem.json | 372 ++++++++++++++++++ > 1 file changed, 372 insertions(+) > create mode 100644 tools/testing/selftests/tc-testing/tc-tests/qdiscs/netem.json > > diff --git a/tools/testing/selftests/tc-testing/tc-tests/qdiscs/netem.json b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/netem.json > new file mode 100644 > index 000000000000..c8ce7883bd9f > --- /dev/null > +++ b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/netem.json > @@ -0,0 +1,372 @@ > +[ > + { > + "id": "cb28", > + "name": "Create NETEM with default setting", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ limit", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "a089", > + "name": "Create NETEM with limit flag", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem limit 200", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ limit 200", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "3449", > + "name": "Create NETEM with delay time", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "3782", > + "name": "Create NETEM with distribution and corrupt flag", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal corrupt 1%", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms corrupt 1%", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "a932", > + "name": "Create NETEM with distribution and duplicate flag", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal duplicate 1%", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms duplicate 1%", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "a932", Be careful, you are using ID a932 in the previous test case. > + "name": "Create NETEM with distribution and loss flag", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution pareto loss 1%", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms loss 1%", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "e01a", > + "name": "Create NETEM with distribution and loss state flag", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution paretonormal loss state 1", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms loss state p13 1% p31 99% p32 0% p23 100% p14 0%", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "ba29", > + "name": "Create NETEM with loss gemodel flag", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem loss gemodel 1%", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*loss gemodel p 1%", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "0492", > + "name": "Create NETEM with reorder flag", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms reorder 2% gap 100", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*reorder 2%", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "7862", > + "name": "Create NETEM with rate limit", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem rate 20000", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*rate 20Kbit", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "7235", > + "name": "Create NETEM with multiple slot rate", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem slot 10 200 packets 2000 bytes 9000", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*slot 10ns 200ns packets 2000 bytes 9000", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "5439", > + "name": "Create NETEM with multiple slot setting", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem slot distribution pareto 1ms 0.1ms", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*slot distribution 1ms 100us", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "5029", > + "name": "Change NETEM with loss state", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true", > + "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 1%" > + ], > + "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 2%", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*loss 2%", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "3785", > + "name": "Replace NETEM with delay time", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true", > + "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 1%" > + ], > + "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root netem delay 200ms 10ms", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 200ms 10ms", > + "matchCount": "1", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "4502", > + "name": "Delete NETEM with handle", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true", > + "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal" > + ], > + "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root", > + "expExitCode": "0", > + "verifyCmd": "$TC qdisc show dev $DUMMY", > + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms", > + "matchCount": "0", > + "teardown": [ > + "$IP link del dev $DUMMY type dummy" > + ] > + }, > + { > + "id": "0785", > + "name": "Show NETEM class", > + "category": [ > + "qdisc", > + "netem" > + ], > + "plugins": { > + "requires": "nsPlugin" > + }, > + "setup": [ > + "$IP link add dev $DUMMY type dummy || /bin/true" > + ], > + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem", > + "expExitCode": "0", > + "verifyCmd": "$TC class show dev $DUMMY", > + "matchPattern": "class netem 1:", > + "matchCount": "0", > + "teardown": [ > + "$TC qdisc del dev $DUMMY handle 1: root", > + "$IP link del dev $DUMMY type dummy" > + ] > + } > +] > -- > 2.17.1 >
diff --git a/tools/testing/selftests/tc-testing/tc-tests/qdiscs/netem.json b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/netem.json new file mode 100644 index 000000000000..c8ce7883bd9f --- /dev/null +++ b/tools/testing/selftests/tc-testing/tc-tests/qdiscs/netem.json @@ -0,0 +1,372 @@ +[ + { + "id": "cb28", + "name": "Create NETEM with default setting", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ limit", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "a089", + "name": "Create NETEM with limit flag", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem limit 200", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ limit 200", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "3449", + "name": "Create NETEM with delay time", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "3782", + "name": "Create NETEM with distribution and corrupt flag", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal corrupt 1%", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms corrupt 1%", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "a932", + "name": "Create NETEM with distribution and duplicate flag", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal duplicate 1%", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms duplicate 1%", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "a932", + "name": "Create NETEM with distribution and loss flag", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution pareto loss 1%", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms loss 1%", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "e01a", + "name": "Create NETEM with distribution and loss state flag", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution paretonormal loss state 1", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms loss state p13 1% p31 99% p32 0% p23 100% p14 0%", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "ba29", + "name": "Create NETEM with loss gemodel flag", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem loss gemodel 1%", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*loss gemodel p 1%", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "0492", + "name": "Create NETEM with reorder flag", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms reorder 2% gap 100", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*reorder 2%", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "7862", + "name": "Create NETEM with rate limit", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem rate 20000", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*rate 20Kbit", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "7235", + "name": "Create NETEM with multiple slot rate", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem slot 10 200 packets 2000 bytes 9000", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*slot 10ns 200ns packets 2000 bytes 9000", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "5439", + "name": "Create NETEM with multiple slot setting", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem slot distribution pareto 1ms 0.1ms", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*slot distribution 1ms 100us", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "5029", + "name": "Change NETEM with loss state", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true", + "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 1%" + ], + "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 2%", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*loss 2%", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "3785", + "name": "Replace NETEM with delay time", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true", + "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 1%" + ], + "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root netem delay 200ms 10ms", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 200ms 10ms", + "matchCount": "1", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "4502", + "name": "Delete NETEM with handle", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true", + "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal" + ], + "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root", + "expExitCode": "0", + "verifyCmd": "$TC qdisc show dev $DUMMY", + "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms", + "matchCount": "0", + "teardown": [ + "$IP link del dev $DUMMY type dummy" + ] + }, + { + "id": "0785", + "name": "Show NETEM class", + "category": [ + "qdisc", + "netem" + ], + "plugins": { + "requires": "nsPlugin" + }, + "setup": [ + "$IP link add dev $DUMMY type dummy || /bin/true" + ], + "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem", + "expExitCode": "0", + "verifyCmd": "$TC class show dev $DUMMY", + "matchPattern": "class netem 1:", + "matchCount": "0", + "teardown": [ + "$TC qdisc del dev $DUMMY handle 1: root", + "$IP link del dev $DUMMY type dummy" + ] + } +]
Test cb28: Create NETEM with default setting Test a089: Create NETEM with limit flag Test 3449: Create NETEM with delay time Test 3782: Create NETEM with distribution and corrupt flag Test a932: Create NETEM with distribution and duplicate flag Test e01a: Create NETEM with distribution and loss state flag Test ba29: Create NETEM with loss gemodel flag Test 0492: Create NETEM with reorder flag Test 7862: Create NETEM with rate limit Test 7235: Create NETEM with multiple slot rate Test 5439: Create NETEM with multiple slot setting Test 5029: Change NETEM with loss state Test 3785: Replace NETEM with delay time Test 4502: Delete NETEM with handle Test 0785: Show NETEM class Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> --- .../tc-testing/tc-tests/qdiscs/netem.json | 372 ++++++++++++++++++ 1 file changed, 372 insertions(+) create mode 100644 tools/testing/selftests/tc-testing/tc-tests/qdiscs/netem.json