1856359c0SZhengchao Shao[ 2856359c0SZhengchao Shao { 3856359c0SZhengchao Shao "id": "0582", 4856359c0SZhengchao Shao "name": "Create QFQ with default setting", 5856359c0SZhengchao Shao "category": [ 6856359c0SZhengchao Shao "qdisc", 7856359c0SZhengchao Shao "qfq" 8856359c0SZhengchao Shao ], 9856359c0SZhengchao Shao "plugins": { 10856359c0SZhengchao Shao "requires": "nsPlugin" 11856359c0SZhengchao Shao }, 12856359c0SZhengchao Shao "setup": [ 13856359c0SZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 14856359c0SZhengchao Shao ], 15856359c0SZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root qfq", 16856359c0SZhengchao Shao "expExitCode": "0", 17856359c0SZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 18856359c0SZhengchao Shao "matchPattern": "qdisc qfq 1: root refcnt [0-9]+", 19856359c0SZhengchao Shao "matchCount": "1", 20856359c0SZhengchao Shao "teardown": [ 21856359c0SZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 22856359c0SZhengchao Shao "$IP link del dev $DUMMY type dummy" 23856359c0SZhengchao Shao ] 24856359c0SZhengchao Shao }, 25856359c0SZhengchao Shao { 26856359c0SZhengchao Shao "id": "c9a3", 27856359c0SZhengchao Shao "name": "Create QFQ with class weight setting", 28856359c0SZhengchao Shao "category": [ 29856359c0SZhengchao Shao "qdisc", 30856359c0SZhengchao Shao "qfq" 31856359c0SZhengchao Shao ], 32856359c0SZhengchao Shao "plugins": { 33856359c0SZhengchao Shao "requires": "nsPlugin" 34856359c0SZhengchao Shao }, 35856359c0SZhengchao Shao "setup": [ 36856359c0SZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true", 37856359c0SZhengchao Shao "$TC qdisc add dev $DUMMY handle 1: root qfq" 38856359c0SZhengchao Shao ], 39856359c0SZhengchao Shao "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 40856359c0SZhengchao Shao "expExitCode": "0", 41856359c0SZhengchao Shao "verifyCmd": "$TC class show dev $DUMMY", 42856359c0SZhengchao Shao "matchPattern": "class qfq 1:1 root weight 100 maxpkt", 43856359c0SZhengchao Shao "matchCount": "1", 44856359c0SZhengchao Shao "teardown": [ 45856359c0SZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 46856359c0SZhengchao Shao "$IP link del dev $DUMMY type dummy" 47856359c0SZhengchao Shao ] 48856359c0SZhengchao Shao }, 49856359c0SZhengchao Shao { 507eb060a5SPedro Tammela "id": "d364", 517eb060a5SPedro Tammela "name": "Test QFQ with max class weight setting", 527eb060a5SPedro Tammela "category": [ 537eb060a5SPedro Tammela "qdisc", 547eb060a5SPedro Tammela "qfq" 557eb060a5SPedro Tammela ], 567eb060a5SPedro Tammela "plugins": { 577eb060a5SPedro Tammela "requires": "nsPlugin" 587eb060a5SPedro Tammela }, 597eb060a5SPedro Tammela "setup": [ 607eb060a5SPedro Tammela "$IP link add dev $DUMMY type dummy || /bin/true", 617eb060a5SPedro Tammela "$TC qdisc add dev $DUMMY handle 1: root qfq" 627eb060a5SPedro Tammela ], 637eb060a5SPedro Tammela "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 9999", 647eb060a5SPedro Tammela "expExitCode": "2", 657eb060a5SPedro Tammela "verifyCmd": "$TC class show dev $DUMMY", 667eb060a5SPedro Tammela "matchPattern": "class qfq 1:1 root weight 9999 maxpkt", 677eb060a5SPedro Tammela "matchCount": "0", 687eb060a5SPedro Tammela "teardown": [ 697eb060a5SPedro Tammela "$TC qdisc del dev $DUMMY handle 1: root", 707eb060a5SPedro Tammela "$IP link del dev $DUMMY type dummy" 717eb060a5SPedro Tammela ] 727eb060a5SPedro Tammela }, 737eb060a5SPedro Tammela { 74856359c0SZhengchao Shao "id": "8452", 75856359c0SZhengchao Shao "name": "Create QFQ with class maxpkt setting", 76856359c0SZhengchao Shao "category": [ 77856359c0SZhengchao Shao "qdisc", 78856359c0SZhengchao Shao "qfq" 79856359c0SZhengchao Shao ], 80856359c0SZhengchao Shao "plugins": { 81856359c0SZhengchao Shao "requires": "nsPlugin" 82856359c0SZhengchao Shao }, 83856359c0SZhengchao Shao "setup": [ 84856359c0SZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true", 85856359c0SZhengchao Shao "$TC qdisc add dev $DUMMY handle 1: root qfq" 86856359c0SZhengchao Shao ], 87856359c0SZhengchao Shao "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq maxpkt 2000", 88856359c0SZhengchao Shao "expExitCode": "0", 89856359c0SZhengchao Shao "verifyCmd": "$TC class show dev $DUMMY", 90856359c0SZhengchao Shao "matchPattern": "class qfq 1:1 root weight 1 maxpkt 2000", 91856359c0SZhengchao Shao "matchCount": "1", 92856359c0SZhengchao Shao "teardown": [ 93856359c0SZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 94856359c0SZhengchao Shao "$IP link del dev $DUMMY type dummy" 95856359c0SZhengchao Shao ] 96856359c0SZhengchao Shao }, 97856359c0SZhengchao Shao { 987eb060a5SPedro Tammela "id": "22df", 997eb060a5SPedro Tammela "name": "Test QFQ class maxpkt setting lower bound", 1007eb060a5SPedro Tammela "category": [ 1017eb060a5SPedro Tammela "qdisc", 1027eb060a5SPedro Tammela "qfq" 1037eb060a5SPedro Tammela ], 1047eb060a5SPedro Tammela "plugins": { 1057eb060a5SPedro Tammela "requires": "nsPlugin" 1067eb060a5SPedro Tammela }, 1077eb060a5SPedro Tammela "setup": [ 1087eb060a5SPedro Tammela "$IP link add dev $DUMMY type dummy || /bin/true", 1097eb060a5SPedro Tammela "$TC qdisc add dev $DUMMY handle 1: root qfq" 1107eb060a5SPedro Tammela ], 1117eb060a5SPedro Tammela "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq maxpkt 128", 1127eb060a5SPedro Tammela "expExitCode": "2", 1137eb060a5SPedro Tammela "verifyCmd": "$TC class show dev $DUMMY", 1147eb060a5SPedro Tammela "matchPattern": "class qfq 1:1 root weight 1 maxpkt 128", 1157eb060a5SPedro Tammela "matchCount": "0", 1167eb060a5SPedro Tammela "teardown": [ 1177eb060a5SPedro Tammela "$TC qdisc del dev $DUMMY handle 1: root", 1187eb060a5SPedro Tammela "$IP link del dev $DUMMY type dummy" 1197eb060a5SPedro Tammela ] 1207eb060a5SPedro Tammela }, 1217eb060a5SPedro Tammela { 1227eb060a5SPedro Tammela "id": "92ee", 1237eb060a5SPedro Tammela "name": "Test QFQ class maxpkt setting upper bound", 1247eb060a5SPedro Tammela "category": [ 1257eb060a5SPedro Tammela "qdisc", 1267eb060a5SPedro Tammela "qfq" 1277eb060a5SPedro Tammela ], 1287eb060a5SPedro Tammela "plugins": { 1297eb060a5SPedro Tammela "requires": "nsPlugin" 1307eb060a5SPedro Tammela }, 1317eb060a5SPedro Tammela "setup": [ 1327eb060a5SPedro Tammela "$IP link add dev $DUMMY type dummy || /bin/true", 1337eb060a5SPedro Tammela "$TC qdisc add dev $DUMMY handle 1: root qfq" 1347eb060a5SPedro Tammela ], 1357eb060a5SPedro Tammela "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq maxpkt 99999", 1367eb060a5SPedro Tammela "expExitCode": "2", 1377eb060a5SPedro Tammela "verifyCmd": "$TC class show dev $DUMMY", 1387eb060a5SPedro Tammela "matchPattern": "class qfq 1:1 root weight 1 maxpkt 99999", 1397eb060a5SPedro Tammela "matchCount": "0", 1407eb060a5SPedro Tammela "teardown": [ 1417eb060a5SPedro Tammela "$TC qdisc del dev $DUMMY handle 1: root", 1427eb060a5SPedro Tammela "$IP link del dev $DUMMY type dummy" 1437eb060a5SPedro Tammela ] 1447eb060a5SPedro Tammela }, 1457eb060a5SPedro Tammela { 146856359c0SZhengchao Shao "id": "d920", 147856359c0SZhengchao Shao "name": "Create QFQ with multiple class setting", 148856359c0SZhengchao Shao "category": [ 149856359c0SZhengchao Shao "qdisc", 150856359c0SZhengchao Shao "qfq" 151856359c0SZhengchao Shao ], 152856359c0SZhengchao Shao "plugins": { 153856359c0SZhengchao Shao "requires": "nsPlugin" 154856359c0SZhengchao Shao }, 155856359c0SZhengchao Shao "setup": [ 156856359c0SZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true", 157856359c0SZhengchao Shao "$TC qdisc add dev $DUMMY handle 1: root qfq", 158856359c0SZhengchao Shao "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100" 159856359c0SZhengchao Shao ], 160856359c0SZhengchao Shao "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:2 qfq weight 200", 161856359c0SZhengchao Shao "expExitCode": "0", 162856359c0SZhengchao Shao "verifyCmd": "$TC class show dev $DUMMY", 163856359c0SZhengchao Shao "matchPattern": "class qfq 1:[0-9]+ root weight [0-9]+00 maxpkt", 164856359c0SZhengchao Shao "matchCount": "2", 165856359c0SZhengchao Shao "teardown": [ 166856359c0SZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 167856359c0SZhengchao Shao "$IP link del dev $DUMMY type dummy" 168856359c0SZhengchao Shao ] 169856359c0SZhengchao Shao }, 170856359c0SZhengchao Shao { 171856359c0SZhengchao Shao "id": "0548", 172856359c0SZhengchao Shao "name": "Delete QFQ with handle", 173856359c0SZhengchao Shao "category": [ 174856359c0SZhengchao Shao "qdisc", 175856359c0SZhengchao Shao "qfq" 176856359c0SZhengchao Shao ], 177856359c0SZhengchao Shao "plugins": { 178856359c0SZhengchao Shao "requires": "nsPlugin" 179856359c0SZhengchao Shao }, 180856359c0SZhengchao Shao "setup": [ 181856359c0SZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true", 182856359c0SZhengchao Shao "$TC qdisc add dev $DUMMY handle 1: root qfq", 183856359c0SZhengchao Shao "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100" 184856359c0SZhengchao Shao ], 185856359c0SZhengchao Shao "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root", 186856359c0SZhengchao Shao "expExitCode": "0", 187856359c0SZhengchao Shao "verifyCmd": "$TC class show dev $DUMMY", 188856359c0SZhengchao Shao "matchPattern": "qdisc qfq 1: root refcnt [0-9]+", 189856359c0SZhengchao Shao "matchCount": "0", 190856359c0SZhengchao Shao "teardown": [ 191856359c0SZhengchao Shao "$IP link del dev $DUMMY type dummy" 192856359c0SZhengchao Shao ] 193856359c0SZhengchao Shao }, 194856359c0SZhengchao Shao { 195856359c0SZhengchao Shao "id": "5901", 196856359c0SZhengchao Shao "name": "Show QFQ class", 197856359c0SZhengchao Shao "category": [ 198856359c0SZhengchao Shao "qdisc", 199856359c0SZhengchao Shao "qfq" 200856359c0SZhengchao Shao ], 201856359c0SZhengchao Shao "plugins": { 202856359c0SZhengchao Shao "requires": "nsPlugin" 203856359c0SZhengchao Shao }, 204856359c0SZhengchao Shao "setup": [ 205856359c0SZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 206856359c0SZhengchao Shao ], 207856359c0SZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root qfq", 208856359c0SZhengchao Shao "expExitCode": "0", 209856359c0SZhengchao Shao "verifyCmd": "$TC class show dev $DUMMY", 210856359c0SZhengchao Shao "matchPattern": "class qfq 1:", 211856359c0SZhengchao Shao "matchCount": "0", 212856359c0SZhengchao Shao "teardown": [ 213856359c0SZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 214856359c0SZhengchao Shao "$IP link del dev $DUMMY type dummy" 215856359c0SZhengchao Shao ] 216c5a06fdcSPedro Tammela }, 217c5a06fdcSPedro Tammela { 218c5a06fdcSPedro Tammela "id": "85ee", 219c5a06fdcSPedro Tammela "name": "QFQ with big MTU", 220c5a06fdcSPedro Tammela "category": [ 221c5a06fdcSPedro Tammela "qdisc", 222c5a06fdcSPedro Tammela "qfq" 223c5a06fdcSPedro Tammela ], 224c5a06fdcSPedro Tammela "plugins": { 225c5a06fdcSPedro Tammela "requires": "nsPlugin" 226c5a06fdcSPedro Tammela }, 227c5a06fdcSPedro Tammela "setup": [ 228c5a06fdcSPedro Tammela "$IP link add dev $DUMMY type dummy || /bin/true", 229c5a06fdcSPedro Tammela "$IP link set dev $DUMMY mtu 2147483647 || /bin/true", 230c5a06fdcSPedro Tammela "$TC qdisc add dev $DUMMY handle 1: root qfq" 231c5a06fdcSPedro Tammela ], 232c5a06fdcSPedro Tammela "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 233c5a06fdcSPedro Tammela "expExitCode": "2", 234c5a06fdcSPedro Tammela "verifyCmd": "$TC class show dev $DUMMY", 235c5a06fdcSPedro Tammela "matchPattern": "class qfq 1:", 236c5a06fdcSPedro Tammela "matchCount": "0", 237c5a06fdcSPedro Tammela "teardown": [ 238c5a06fdcSPedro Tammela "$IP link del dev $DUMMY type dummy" 239c5a06fdcSPedro Tammela ] 240c5a06fdcSPedro Tammela }, 241c5a06fdcSPedro Tammela { 242c5a06fdcSPedro Tammela "id": "ddfa", 243c5a06fdcSPedro Tammela "name": "QFQ with small MTU", 244c5a06fdcSPedro Tammela "category": [ 245c5a06fdcSPedro Tammela "qdisc", 246c5a06fdcSPedro Tammela "qfq" 247c5a06fdcSPedro Tammela ], 248c5a06fdcSPedro Tammela "plugins": { 249c5a06fdcSPedro Tammela "requires": "nsPlugin" 250c5a06fdcSPedro Tammela }, 251c5a06fdcSPedro Tammela "setup": [ 252c5a06fdcSPedro Tammela "$IP link add dev $DUMMY type dummy || /bin/true", 253c5a06fdcSPedro Tammela "$IP link set dev $DUMMY mtu 256 || /bin/true", 254c5a06fdcSPedro Tammela "$TC qdisc add dev $DUMMY handle 1: root qfq" 255c5a06fdcSPedro Tammela ], 256c5a06fdcSPedro Tammela "cmdUnderTest": "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 257c5a06fdcSPedro Tammela "expExitCode": "2", 258c5a06fdcSPedro Tammela "verifyCmd": "$TC class show dev $DUMMY", 259c5a06fdcSPedro Tammela "matchPattern": "class qfq 1:", 260c5a06fdcSPedro Tammela "matchCount": "0", 261c5a06fdcSPedro Tammela "teardown": [ 262c5a06fdcSPedro Tammela "$IP link del dev $DUMMY type dummy" 263c5a06fdcSPedro Tammela ] 264*137f6219SPedro Tammela }, 265*137f6219SPedro Tammela { 266*137f6219SPedro Tammela "id": "5993", 267*137f6219SPedro Tammela "name": "QFQ with stab overhead greater than max packet len", 268*137f6219SPedro Tammela "category": [ 269*137f6219SPedro Tammela "qdisc", 270*137f6219SPedro Tammela "qfq", 271*137f6219SPedro Tammela "scapy" 272*137f6219SPedro Tammela ], 273*137f6219SPedro Tammela "plugins": { 274*137f6219SPedro Tammela "requires": [ 275*137f6219SPedro Tammela "nsPlugin", 276*137f6219SPedro Tammela "scapyPlugin" 277*137f6219SPedro Tammela ] 278*137f6219SPedro Tammela }, 279*137f6219SPedro Tammela "setup": [ 280*137f6219SPedro Tammela "$IP link add dev $DUMMY type dummy || /bin/true", 281*137f6219SPedro Tammela "$IP link set dev $DUMMY up || /bin/true", 282*137f6219SPedro Tammela "$TC qdisc add dev $DUMMY handle 1: stab mtu 2048 tsize 512 mpu 0 overhead 999999999 linklayer ethernet root qfq", 283*137f6219SPedro Tammela "$TC class add dev $DUMMY parent 1: classid 1:1 qfq weight 100", 284*137f6219SPedro Tammela "$TC qdisc add dev $DEV1 clsact", 285*137f6219SPedro Tammela "$TC filter add dev $DEV1 ingress protocol ip flower dst_ip 1.3.3.7/32 action mirred egress mirror dev $DUMMY" 286*137f6219SPedro Tammela ], 287*137f6219SPedro Tammela "cmdUnderTest": "$TC filter add dev $DUMMY parent 1: matchall classid 1:1", 288*137f6219SPedro Tammela "scapy": [ 289*137f6219SPedro Tammela { 290*137f6219SPedro Tammela "iface": "$DEV0", 291*137f6219SPedro Tammela "count": 22, 292*137f6219SPedro Tammela "packet": "Ether(type=0x800)/IP(src='10.0.0.10',dst='1.3.3.7')/TCP(sport=5000,dport=10)" 293*137f6219SPedro Tammela } 294*137f6219SPedro Tammela ], 295*137f6219SPedro Tammela "expExitCode": "0", 296*137f6219SPedro Tammela "verifyCmd": "$TC -s qdisc ls dev $DUMMY", 297*137f6219SPedro Tammela "matchPattern": "dropped 22", 298*137f6219SPedro Tammela "matchCount": "1", 299*137f6219SPedro Tammela "teardown": [ 300*137f6219SPedro Tammela "$TC qdisc del dev $DUMMY handle 1: root qfq" 301*137f6219SPedro Tammela ] 302856359c0SZhengchao Shao } 303856359c0SZhengchao Shao] 304