162306a36Sopenharmony_ci[ 262306a36Sopenharmony_ci { 362306a36Sopenharmony_ci "id": "0582", 462306a36Sopenharmony_ci "name": "Create QFQ with default setting", 562306a36Sopenharmony_ci "category": [ 662306a36Sopenharmony_ci "qdisc", 762306a36Sopenharmony_ci "qfq" 862306a36Sopenharmony_ci ], 962306a36Sopenharmony_ci "plugins": { 1062306a36Sopenharmony_ci "requires": "nsPlugin" 1162306a36Sopenharmony_ci }, 1262306a36Sopenharmony_ci "setup": [ 1362306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true" 1462306a36Sopenharmony_ci ], 1562306a36Sopenharmony_ci "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root qfq", 1662306a36Sopenharmony_ci "expExitCode": "0", 1762306a36Sopenharmony_ci "verifyCmd": "$TC qdisc show dev $DUMMY", 1862306a36Sopenharmony_ci "matchPattern": "qdisc qfq 1: root refcnt [0-9]+", 1962306a36Sopenharmony_ci "matchCount": "1", 2062306a36Sopenharmony_ci "teardown": [ 2162306a36Sopenharmony_ci "$TC qdisc del dev $DUMMY handle 1: root", 2262306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 2362306a36Sopenharmony_ci ] 2462306a36Sopenharmony_ci }, 2562306a36Sopenharmony_ci { 2662306a36Sopenharmony_ci "id": "c9a3", 2762306a36Sopenharmony_ci "name": "Create QFQ with class weight setting", 2862306a36Sopenharmony_ci "category": [ 2962306a36Sopenharmony_ci "qdisc", 3062306a36Sopenharmony_ci "qfq" 3162306a36Sopenharmony_ci ], 3262306a36Sopenharmony_ci "plugins": { 3362306a36Sopenharmony_ci "requires": "nsPlugin" 3462306a36Sopenharmony_ci }, 3562306a36Sopenharmony_ci "setup": [ 3662306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true", 3762306a36Sopenharmony_ci "$TC qdisc add dev $DUMMY handle 1: root qfq" 3862306a36Sopenharmony_ci ], 3962306a36Sopenharmony_ci "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 4062306a36Sopenharmony_ci "expExitCode": "0", 4162306a36Sopenharmony_ci "verifyCmd": "$TC class show dev $DUMMY", 4262306a36Sopenharmony_ci "matchPattern": "class qfq 1:1 root weight 100 maxpkt", 4362306a36Sopenharmony_ci "matchCount": "1", 4462306a36Sopenharmony_ci "teardown": [ 4562306a36Sopenharmony_ci "$TC qdisc del dev $DUMMY handle 1: root", 4662306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 4762306a36Sopenharmony_ci ] 4862306a36Sopenharmony_ci }, 4962306a36Sopenharmony_ci { 5062306a36Sopenharmony_ci "id": "d364", 5162306a36Sopenharmony_ci "name": "Test QFQ with max class weight setting", 5262306a36Sopenharmony_ci "category": [ 5362306a36Sopenharmony_ci "qdisc", 5462306a36Sopenharmony_ci "qfq" 5562306a36Sopenharmony_ci ], 5662306a36Sopenharmony_ci "plugins": { 5762306a36Sopenharmony_ci "requires": "nsPlugin" 5862306a36Sopenharmony_ci }, 5962306a36Sopenharmony_ci "setup": [ 6062306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true", 6162306a36Sopenharmony_ci "$TC qdisc add dev $DUMMY handle 1: root qfq" 6262306a36Sopenharmony_ci ], 6362306a36Sopenharmony_ci "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 9999", 6462306a36Sopenharmony_ci "expExitCode": "2", 6562306a36Sopenharmony_ci "verifyCmd": "$TC class show dev $DUMMY", 6662306a36Sopenharmony_ci "matchPattern": "class qfq 1:1 root weight 9999 maxpkt", 6762306a36Sopenharmony_ci "matchCount": "0", 6862306a36Sopenharmony_ci "teardown": [ 6962306a36Sopenharmony_ci "$TC qdisc del dev $DUMMY handle 1: root", 7062306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 7162306a36Sopenharmony_ci ] 7262306a36Sopenharmony_ci }, 7362306a36Sopenharmony_ci { 7462306a36Sopenharmony_ci "id": "8452", 7562306a36Sopenharmony_ci "name": "Create QFQ with class maxpkt setting", 7662306a36Sopenharmony_ci "category": [ 7762306a36Sopenharmony_ci "qdisc", 7862306a36Sopenharmony_ci "qfq" 7962306a36Sopenharmony_ci ], 8062306a36Sopenharmony_ci "plugins": { 8162306a36Sopenharmony_ci "requires": "nsPlugin" 8262306a36Sopenharmony_ci }, 8362306a36Sopenharmony_ci "setup": [ 8462306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true", 8562306a36Sopenharmony_ci "$TC qdisc add dev $DUMMY handle 1: root qfq" 8662306a36Sopenharmony_ci ], 8762306a36Sopenharmony_ci "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq maxpkt 2000", 8862306a36Sopenharmony_ci "expExitCode": "0", 8962306a36Sopenharmony_ci "verifyCmd": "$TC class show dev $DUMMY", 9062306a36Sopenharmony_ci "matchPattern": "class qfq 1:1 root weight 1 maxpkt 2000", 9162306a36Sopenharmony_ci "matchCount": "1", 9262306a36Sopenharmony_ci "teardown": [ 9362306a36Sopenharmony_ci "$TC qdisc del dev $DUMMY handle 1: root", 9462306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 9562306a36Sopenharmony_ci ] 9662306a36Sopenharmony_ci }, 9762306a36Sopenharmony_ci { 9862306a36Sopenharmony_ci "id": "22df", 9962306a36Sopenharmony_ci "name": "Test QFQ class maxpkt setting lower bound", 10062306a36Sopenharmony_ci "category": [ 10162306a36Sopenharmony_ci "qdisc", 10262306a36Sopenharmony_ci "qfq" 10362306a36Sopenharmony_ci ], 10462306a36Sopenharmony_ci "plugins": { 10562306a36Sopenharmony_ci "requires": "nsPlugin" 10662306a36Sopenharmony_ci }, 10762306a36Sopenharmony_ci "setup": [ 10862306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true", 10962306a36Sopenharmony_ci "$TC qdisc add dev $DUMMY handle 1: root qfq" 11062306a36Sopenharmony_ci ], 11162306a36Sopenharmony_ci "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq maxpkt 128", 11262306a36Sopenharmony_ci "expExitCode": "2", 11362306a36Sopenharmony_ci "verifyCmd": "$TC class show dev $DUMMY", 11462306a36Sopenharmony_ci "matchPattern": "class qfq 1:1 root weight 1 maxpkt 128", 11562306a36Sopenharmony_ci "matchCount": "0", 11662306a36Sopenharmony_ci "teardown": [ 11762306a36Sopenharmony_ci "$TC qdisc del dev $DUMMY handle 1: root", 11862306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 11962306a36Sopenharmony_ci ] 12062306a36Sopenharmony_ci }, 12162306a36Sopenharmony_ci { 12262306a36Sopenharmony_ci "id": "92ee", 12362306a36Sopenharmony_ci "name": "Test QFQ class maxpkt setting upper bound", 12462306a36Sopenharmony_ci "category": [ 12562306a36Sopenharmony_ci "qdisc", 12662306a36Sopenharmony_ci "qfq" 12762306a36Sopenharmony_ci ], 12862306a36Sopenharmony_ci "plugins": { 12962306a36Sopenharmony_ci "requires": "nsPlugin" 13062306a36Sopenharmony_ci }, 13162306a36Sopenharmony_ci "setup": [ 13262306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true", 13362306a36Sopenharmony_ci "$TC qdisc add dev $DUMMY handle 1: root qfq" 13462306a36Sopenharmony_ci ], 13562306a36Sopenharmony_ci "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq maxpkt 99999", 13662306a36Sopenharmony_ci "expExitCode": "2", 13762306a36Sopenharmony_ci "verifyCmd": "$TC class show dev $DUMMY", 13862306a36Sopenharmony_ci "matchPattern": "class qfq 1:1 root weight 1 maxpkt 99999", 13962306a36Sopenharmony_ci "matchCount": "0", 14062306a36Sopenharmony_ci "teardown": [ 14162306a36Sopenharmony_ci "$TC qdisc del dev $DUMMY handle 1: root", 14262306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 14362306a36Sopenharmony_ci ] 14462306a36Sopenharmony_ci }, 14562306a36Sopenharmony_ci { 14662306a36Sopenharmony_ci "id": "d920", 14762306a36Sopenharmony_ci "name": "Create QFQ with multiple class setting", 14862306a36Sopenharmony_ci "category": [ 14962306a36Sopenharmony_ci "qdisc", 15062306a36Sopenharmony_ci "qfq" 15162306a36Sopenharmony_ci ], 15262306a36Sopenharmony_ci "plugins": { 15362306a36Sopenharmony_ci "requires": "nsPlugin" 15462306a36Sopenharmony_ci }, 15562306a36Sopenharmony_ci "setup": [ 15662306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true", 15762306a36Sopenharmony_ci "$TC qdisc add dev $DUMMY handle 1: root qfq", 15862306a36Sopenharmony_ci "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100" 15962306a36Sopenharmony_ci ], 16062306a36Sopenharmony_ci "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:2 qfq weight 200", 16162306a36Sopenharmony_ci "expExitCode": "0", 16262306a36Sopenharmony_ci "verifyCmd": "$TC class show dev $DUMMY", 16362306a36Sopenharmony_ci "matchPattern": "class qfq 1:[0-9]+ root weight [0-9]+00 maxpkt", 16462306a36Sopenharmony_ci "matchCount": "2", 16562306a36Sopenharmony_ci "teardown": [ 16662306a36Sopenharmony_ci "$TC qdisc del dev $DUMMY handle 1: root", 16762306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 16862306a36Sopenharmony_ci ] 16962306a36Sopenharmony_ci }, 17062306a36Sopenharmony_ci { 17162306a36Sopenharmony_ci "id": "0548", 17262306a36Sopenharmony_ci "name": "Delete QFQ with handle", 17362306a36Sopenharmony_ci "category": [ 17462306a36Sopenharmony_ci "qdisc", 17562306a36Sopenharmony_ci "qfq" 17662306a36Sopenharmony_ci ], 17762306a36Sopenharmony_ci "plugins": { 17862306a36Sopenharmony_ci "requires": "nsPlugin" 17962306a36Sopenharmony_ci }, 18062306a36Sopenharmony_ci "setup": [ 18162306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true", 18262306a36Sopenharmony_ci "$TC qdisc add dev $DUMMY handle 1: root qfq", 18362306a36Sopenharmony_ci "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100" 18462306a36Sopenharmony_ci ], 18562306a36Sopenharmony_ci "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root", 18662306a36Sopenharmony_ci "expExitCode": "0", 18762306a36Sopenharmony_ci "verifyCmd": "$TC class show dev $DUMMY", 18862306a36Sopenharmony_ci "matchPattern": "qdisc qfq 1: root refcnt [0-9]+", 18962306a36Sopenharmony_ci "matchCount": "0", 19062306a36Sopenharmony_ci "teardown": [ 19162306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 19262306a36Sopenharmony_ci ] 19362306a36Sopenharmony_ci }, 19462306a36Sopenharmony_ci { 19562306a36Sopenharmony_ci "id": "5901", 19662306a36Sopenharmony_ci "name": "Show QFQ class", 19762306a36Sopenharmony_ci "category": [ 19862306a36Sopenharmony_ci "qdisc", 19962306a36Sopenharmony_ci "qfq" 20062306a36Sopenharmony_ci ], 20162306a36Sopenharmony_ci "plugins": { 20262306a36Sopenharmony_ci "requires": "nsPlugin" 20362306a36Sopenharmony_ci }, 20462306a36Sopenharmony_ci "setup": [ 20562306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true" 20662306a36Sopenharmony_ci ], 20762306a36Sopenharmony_ci "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root qfq", 20862306a36Sopenharmony_ci "expExitCode": "0", 20962306a36Sopenharmony_ci "verifyCmd": "$TC class show dev $DUMMY", 21062306a36Sopenharmony_ci "matchPattern": "class qfq 1:", 21162306a36Sopenharmony_ci "matchCount": "0", 21262306a36Sopenharmony_ci "teardown": [ 21362306a36Sopenharmony_ci "$TC qdisc del dev $DUMMY handle 1: root", 21462306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 21562306a36Sopenharmony_ci ] 21662306a36Sopenharmony_ci }, 21762306a36Sopenharmony_ci { 21862306a36Sopenharmony_ci "id": "85ee", 21962306a36Sopenharmony_ci "name": "QFQ with big MTU", 22062306a36Sopenharmony_ci "category": [ 22162306a36Sopenharmony_ci "qdisc", 22262306a36Sopenharmony_ci "qfq" 22362306a36Sopenharmony_ci ], 22462306a36Sopenharmony_ci "plugins": { 22562306a36Sopenharmony_ci "requires": "nsPlugin" 22662306a36Sopenharmony_ci }, 22762306a36Sopenharmony_ci "setup": [ 22862306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true", 22962306a36Sopenharmony_ci "$IP link set dev $DUMMY mtu 2147483647 || /bin/true", 23062306a36Sopenharmony_ci "$TC qdisc add dev $DUMMY handle 1: root qfq" 23162306a36Sopenharmony_ci ], 23262306a36Sopenharmony_ci "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 23362306a36Sopenharmony_ci "expExitCode": "2", 23462306a36Sopenharmony_ci "verifyCmd": "$TC class show dev $DUMMY", 23562306a36Sopenharmony_ci "matchPattern": "class qfq 1:", 23662306a36Sopenharmony_ci "matchCount": "0", 23762306a36Sopenharmony_ci "teardown": [ 23862306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 23962306a36Sopenharmony_ci ] 24062306a36Sopenharmony_ci }, 24162306a36Sopenharmony_ci { 24262306a36Sopenharmony_ci "id": "ddfa", 24362306a36Sopenharmony_ci "name": "QFQ with small MTU", 24462306a36Sopenharmony_ci "category": [ 24562306a36Sopenharmony_ci "qdisc", 24662306a36Sopenharmony_ci "qfq" 24762306a36Sopenharmony_ci ], 24862306a36Sopenharmony_ci "plugins": { 24962306a36Sopenharmony_ci "requires": "nsPlugin" 25062306a36Sopenharmony_ci }, 25162306a36Sopenharmony_ci "setup": [ 25262306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true", 25362306a36Sopenharmony_ci "$IP link set dev $DUMMY mtu 256 || /bin/true", 25462306a36Sopenharmony_ci "$TC qdisc add dev $DUMMY handle 1: root qfq" 25562306a36Sopenharmony_ci ], 25662306a36Sopenharmony_ci "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 25762306a36Sopenharmony_ci "expExitCode": "2", 25862306a36Sopenharmony_ci "verifyCmd": "$TC class show dev $DUMMY", 25962306a36Sopenharmony_ci "matchPattern": "class qfq 1:", 26062306a36Sopenharmony_ci "matchCount": "0", 26162306a36Sopenharmony_ci "teardown": [ 26262306a36Sopenharmony_ci "$IP link del dev $DUMMY type dummy" 26362306a36Sopenharmony_ci ] 26462306a36Sopenharmony_ci }, 26562306a36Sopenharmony_ci { 26662306a36Sopenharmony_ci "id": "5993", 26762306a36Sopenharmony_ci "name": "QFQ with stab overhead greater than max packet len", 26862306a36Sopenharmony_ci "category": [ 26962306a36Sopenharmony_ci "qdisc", 27062306a36Sopenharmony_ci "qfq", 27162306a36Sopenharmony_ci "scapy" 27262306a36Sopenharmony_ci ], 27362306a36Sopenharmony_ci "plugins": { 27462306a36Sopenharmony_ci "requires": [ 27562306a36Sopenharmony_ci "nsPlugin", 27662306a36Sopenharmony_ci "scapyPlugin" 27762306a36Sopenharmony_ci ] 27862306a36Sopenharmony_ci }, 27962306a36Sopenharmony_ci "setup": [ 28062306a36Sopenharmony_ci "$IP link add dev $DUMMY type dummy || /bin/true", 28162306a36Sopenharmony_ci "$IP link set dev $DUMMY up || /bin/true", 28262306a36Sopenharmony_ci "$TC qdisc add dev $DUMMY handle 1: stab mtu 2048 tsize 512 mpu 0 overhead 999999999 linklayer ethernet root qfq", 28362306a36Sopenharmony_ci "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 28462306a36Sopenharmony_ci "$TC qdisc add dev $DEV1 clsact", 28562306a36Sopenharmony_ci "$TC filter add dev $DEV1 ingress protocol ip flower dst_ip 1.3.3.7/32 action mirred egress mirror dev $DUMMY" 28662306a36Sopenharmony_ci ], 28762306a36Sopenharmony_ci "cmdUnderTest": "$TC filter add dev $DUMMY parent 1: matchall classid 1:1", 28862306a36Sopenharmony_ci "scapy": [ 28962306a36Sopenharmony_ci { 29062306a36Sopenharmony_ci "iface": "$DEV0", 29162306a36Sopenharmony_ci "count": 22, 29262306a36Sopenharmony_ci "packet": "Ether(type=0x800)/IP(src='10.0.0.10',dst='1.3.3.7')/TCP(sport=5000,dport=10)" 29362306a36Sopenharmony_ci } 29462306a36Sopenharmony_ci ], 29562306a36Sopenharmony_ci "expExitCode": "0", 29662306a36Sopenharmony_ci "verifyCmd": "$TC -s qdisc ls dev $DUMMY", 29762306a36Sopenharmony_ci "matchPattern": "dropped 22", 29862306a36Sopenharmony_ci "matchCount": "1", 29962306a36Sopenharmony_ci "teardown": [ 30062306a36Sopenharmony_ci "$TC qdisc del dev $DUMMY handle 1: root qfq" 30162306a36Sopenharmony_ci ] 30262306a36Sopenharmony_ci } 30362306a36Sopenharmony_ci] 304