1*4882a593Smuzhiyun[ 2*4882a593Smuzhiyun { 3*4882a593Smuzhiyun "id": "a519", 4*4882a593Smuzhiyun "name": "Add bfifo qdisc with system default parameters on egress", 5*4882a593Smuzhiyun "__comment": "When omitted, queue size in bfifo is calculated as: txqueuelen * (MTU + LinkLayerHdrSize), where LinkLayerHdrSize=14 for Ethernet", 6*4882a593Smuzhiyun "category": [ 7*4882a593Smuzhiyun "qdisc", 8*4882a593Smuzhiyun "fifo" 9*4882a593Smuzhiyun ], 10*4882a593Smuzhiyun "setup": [ 11*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 12*4882a593Smuzhiyun ], 13*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root bfifo", 14*4882a593Smuzhiyun "expExitCode": "0", 15*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 16*4882a593Smuzhiyun "matchPattern": "qdisc bfifo 1: root.*limit [0-9]+b", 17*4882a593Smuzhiyun "matchCount": "1", 18*4882a593Smuzhiyun "teardown": [ 19*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root bfifo", 20*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 21*4882a593Smuzhiyun ] 22*4882a593Smuzhiyun }, 23*4882a593Smuzhiyun { 24*4882a593Smuzhiyun "id": "585c", 25*4882a593Smuzhiyun "name": "Add pfifo qdisc with system default parameters on egress", 26*4882a593Smuzhiyun "__comment": "When omitted, queue size in pfifo is defaulted to the interface's txqueuelen value.", 27*4882a593Smuzhiyun "category": [ 28*4882a593Smuzhiyun "qdisc", 29*4882a593Smuzhiyun "fifo" 30*4882a593Smuzhiyun ], 31*4882a593Smuzhiyun "setup": [ 32*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 33*4882a593Smuzhiyun ], 34*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root pfifo", 35*4882a593Smuzhiyun "expExitCode": "0", 36*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 37*4882a593Smuzhiyun "matchPattern": "qdisc pfifo 1: root.*limit [0-9]+p", 38*4882a593Smuzhiyun "matchCount": "1", 39*4882a593Smuzhiyun "teardown": [ 40*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root pfifo", 41*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 42*4882a593Smuzhiyun ] 43*4882a593Smuzhiyun }, 44*4882a593Smuzhiyun { 45*4882a593Smuzhiyun "id": "a86e", 46*4882a593Smuzhiyun "name": "Add bfifo qdisc with system default parameters on egress with handle of maximum value", 47*4882a593Smuzhiyun "category": [ 48*4882a593Smuzhiyun "qdisc", 49*4882a593Smuzhiyun "fifo" 50*4882a593Smuzhiyun ], 51*4882a593Smuzhiyun "setup": [ 52*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 53*4882a593Smuzhiyun ], 54*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY root handle ffff: bfifo", 55*4882a593Smuzhiyun "expExitCode": "0", 56*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 57*4882a593Smuzhiyun "matchPattern": "qdisc bfifo ffff: root.*limit [0-9]+b", 58*4882a593Smuzhiyun "matchCount": "1", 59*4882a593Smuzhiyun "teardown": [ 60*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle ffff: root bfifo", 61*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 62*4882a593Smuzhiyun ] 63*4882a593Smuzhiyun }, 64*4882a593Smuzhiyun { 65*4882a593Smuzhiyun "id": "9ac8", 66*4882a593Smuzhiyun "name": "Add bfifo qdisc on egress with queue size of 3000 bytes", 67*4882a593Smuzhiyun "category": [ 68*4882a593Smuzhiyun "qdisc", 69*4882a593Smuzhiyun "fifo" 70*4882a593Smuzhiyun ], 71*4882a593Smuzhiyun "setup": [ 72*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 73*4882a593Smuzhiyun ], 74*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root bfifo limit 3000b", 75*4882a593Smuzhiyun "expExitCode": "0", 76*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 77*4882a593Smuzhiyun "matchPattern": "qdisc bfifo 1: root.*limit 3000b", 78*4882a593Smuzhiyun "matchCount": "1", 79*4882a593Smuzhiyun "teardown": [ 80*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root bfifo", 81*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 82*4882a593Smuzhiyun ] 83*4882a593Smuzhiyun }, 84*4882a593Smuzhiyun { 85*4882a593Smuzhiyun "id": "f4e6", 86*4882a593Smuzhiyun "name": "Add pfifo qdisc on egress with queue size of 3000 packets", 87*4882a593Smuzhiyun "category": [ 88*4882a593Smuzhiyun "qdisc", 89*4882a593Smuzhiyun "fifo" 90*4882a593Smuzhiyun ], 91*4882a593Smuzhiyun "setup": [ 92*4882a593Smuzhiyun "$IP link add dev $DUMMY txqueuelen 3000 type dummy || /bin/true" 93*4882a593Smuzhiyun ], 94*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root pfifo limit 3000", 95*4882a593Smuzhiyun "expExitCode": "0", 96*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 97*4882a593Smuzhiyun "matchPattern": "qdisc pfifo 1: root.*limit 3000p", 98*4882a593Smuzhiyun "matchCount": "1", 99*4882a593Smuzhiyun "teardown": [ 100*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root pfifo", 101*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 102*4882a593Smuzhiyun ] 103*4882a593Smuzhiyun }, 104*4882a593Smuzhiyun { 105*4882a593Smuzhiyun "id": "b1b1", 106*4882a593Smuzhiyun "name": "Add bfifo qdisc with system default parameters on egress with invalid handle exceeding maximum value", 107*4882a593Smuzhiyun "category": [ 108*4882a593Smuzhiyun "qdisc", 109*4882a593Smuzhiyun "fifo" 110*4882a593Smuzhiyun ], 111*4882a593Smuzhiyun "setup": [ 112*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 113*4882a593Smuzhiyun ], 114*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY root handle 10000: bfifo", 115*4882a593Smuzhiyun "expExitCode": "255", 116*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 117*4882a593Smuzhiyun "matchPattern": "qdisc bfifo 10000: root.*limit [0-9]+b", 118*4882a593Smuzhiyun "matchCount": "0", 119*4882a593Smuzhiyun "teardown": [ 120*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 121*4882a593Smuzhiyun ] 122*4882a593Smuzhiyun }, 123*4882a593Smuzhiyun { 124*4882a593Smuzhiyun "id": "8d5e", 125*4882a593Smuzhiyun "name": "Add bfifo qdisc on egress with unsupported argument", 126*4882a593Smuzhiyun "category": [ 127*4882a593Smuzhiyun "qdisc", 128*4882a593Smuzhiyun "fifo" 129*4882a593Smuzhiyun ], 130*4882a593Smuzhiyun "setup": [ 131*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 132*4882a593Smuzhiyun ], 133*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root bfifo foorbar", 134*4882a593Smuzhiyun "expExitCode": "1", 135*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 136*4882a593Smuzhiyun "matchPattern": "qdisc bfifo 1: root", 137*4882a593Smuzhiyun "matchCount": "0", 138*4882a593Smuzhiyun "teardown": [ 139*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 140*4882a593Smuzhiyun ] 141*4882a593Smuzhiyun }, 142*4882a593Smuzhiyun { 143*4882a593Smuzhiyun "id": "7787", 144*4882a593Smuzhiyun "name": "Add pfifo qdisc on egress with unsupported argument", 145*4882a593Smuzhiyun "category": [ 146*4882a593Smuzhiyun "qdisc", 147*4882a593Smuzhiyun "fifo" 148*4882a593Smuzhiyun ], 149*4882a593Smuzhiyun "setup": [ 150*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 151*4882a593Smuzhiyun ], 152*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root pfifo foorbar", 153*4882a593Smuzhiyun "expExitCode": "1", 154*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 155*4882a593Smuzhiyun "matchPattern": "qdisc pfifo 1: root", 156*4882a593Smuzhiyun "matchCount": "0", 157*4882a593Smuzhiyun "teardown": [ 158*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 159*4882a593Smuzhiyun ] 160*4882a593Smuzhiyun }, 161*4882a593Smuzhiyun { 162*4882a593Smuzhiyun "id": "c4b6", 163*4882a593Smuzhiyun "name": "Replace bfifo qdisc on egress with new queue size", 164*4882a593Smuzhiyun "category": [ 165*4882a593Smuzhiyun "qdisc", 166*4882a593Smuzhiyun "fifo" 167*4882a593Smuzhiyun ], 168*4882a593Smuzhiyun "setup": [ 169*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy || /bin/true", 170*4882a593Smuzhiyun "$IP link add dev $DUMMY txqueuelen 1000 type dummy", 171*4882a593Smuzhiyun "$TC qdisc add dev $DUMMY handle 1: root bfifo" 172*4882a593Smuzhiyun ], 173*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root bfifo limit 3000b", 174*4882a593Smuzhiyun "expExitCode": "0", 175*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 176*4882a593Smuzhiyun "matchPattern": "qdisc bfifo 1: root.*limit 3000b", 177*4882a593Smuzhiyun "matchCount": "1", 178*4882a593Smuzhiyun "teardown": [ 179*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root bfifo", 180*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 181*4882a593Smuzhiyun ] 182*4882a593Smuzhiyun }, 183*4882a593Smuzhiyun { 184*4882a593Smuzhiyun "id": "3df6", 185*4882a593Smuzhiyun "name": "Replace pfifo qdisc on egress with new queue size", 186*4882a593Smuzhiyun "category": [ 187*4882a593Smuzhiyun "qdisc", 188*4882a593Smuzhiyun "fifo" 189*4882a593Smuzhiyun ], 190*4882a593Smuzhiyun "setup": [ 191*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy || /bin/true", 192*4882a593Smuzhiyun "$IP link add dev $DUMMY txqueuelen 1000 type dummy", 193*4882a593Smuzhiyun "$TC qdisc add dev $DUMMY handle 1: root pfifo" 194*4882a593Smuzhiyun ], 195*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root pfifo limit 30", 196*4882a593Smuzhiyun "expExitCode": "0", 197*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 198*4882a593Smuzhiyun "matchPattern": "qdisc pfifo 1: root.*limit 30p", 199*4882a593Smuzhiyun "matchCount": "1", 200*4882a593Smuzhiyun "teardown": [ 201*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root pfifo", 202*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 203*4882a593Smuzhiyun ] 204*4882a593Smuzhiyun }, 205*4882a593Smuzhiyun { 206*4882a593Smuzhiyun "id": "7a67", 207*4882a593Smuzhiyun "name": "Add bfifo qdisc on egress with queue size in invalid format", 208*4882a593Smuzhiyun "category": [ 209*4882a593Smuzhiyun "qdisc", 210*4882a593Smuzhiyun "fifo" 211*4882a593Smuzhiyun ], 212*4882a593Smuzhiyun "setup": [ 213*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 214*4882a593Smuzhiyun ], 215*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root bfifo limit foo-bar", 216*4882a593Smuzhiyun "expExitCode": "1", 217*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 218*4882a593Smuzhiyun "matchPattern": "qdisc bfifo 1: root.*limit foo-bar", 219*4882a593Smuzhiyun "matchCount": "0", 220*4882a593Smuzhiyun "teardown": [ 221*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 222*4882a593Smuzhiyun ] 223*4882a593Smuzhiyun }, 224*4882a593Smuzhiyun { 225*4882a593Smuzhiyun "id": "1298", 226*4882a593Smuzhiyun "name": "Add duplicate bfifo qdisc on egress", 227*4882a593Smuzhiyun "category": [ 228*4882a593Smuzhiyun "qdisc", 229*4882a593Smuzhiyun "fifo" 230*4882a593Smuzhiyun ], 231*4882a593Smuzhiyun "setup": [ 232*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true", 233*4882a593Smuzhiyun "$TC qdisc add dev $DUMMY handle 1: root bfifo" 234*4882a593Smuzhiyun ], 235*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root bfifo", 236*4882a593Smuzhiyun "expExitCode": "2", 237*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 238*4882a593Smuzhiyun "matchPattern": "qdisc bfifo 1: root", 239*4882a593Smuzhiyun "matchCount": "1", 240*4882a593Smuzhiyun "teardown": [ 241*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root bfifo", 242*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 243*4882a593Smuzhiyun ] 244*4882a593Smuzhiyun }, 245*4882a593Smuzhiyun { 246*4882a593Smuzhiyun "id": "45a0", 247*4882a593Smuzhiyun "name": "Delete nonexistent bfifo qdisc", 248*4882a593Smuzhiyun "category": [ 249*4882a593Smuzhiyun "qdisc", 250*4882a593Smuzhiyun "fifo" 251*4882a593Smuzhiyun ], 252*4882a593Smuzhiyun "setup": [ 253*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 254*4882a593Smuzhiyun ], 255*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc del dev $DUMMY root handle 1: bfifo", 256*4882a593Smuzhiyun "expExitCode": "2", 257*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 258*4882a593Smuzhiyun "matchPattern": "qdisc bfifo 1: root", 259*4882a593Smuzhiyun "matchCount": "0", 260*4882a593Smuzhiyun "teardown": [ 261*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 262*4882a593Smuzhiyun ] 263*4882a593Smuzhiyun }, 264*4882a593Smuzhiyun { 265*4882a593Smuzhiyun "id": "972b", 266*4882a593Smuzhiyun "name": "Add prio qdisc on egress with invalid format for handles", 267*4882a593Smuzhiyun "category": [ 268*4882a593Smuzhiyun "qdisc", 269*4882a593Smuzhiyun "fifo" 270*4882a593Smuzhiyun ], 271*4882a593Smuzhiyun "setup": [ 272*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 273*4882a593Smuzhiyun ], 274*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY root handle 123^ bfifo limit 100b", 275*4882a593Smuzhiyun "expExitCode": "255", 276*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 277*4882a593Smuzhiyun "matchPattern": "qdisc bfifo 123 root", 278*4882a593Smuzhiyun "matchCount": "0", 279*4882a593Smuzhiyun "teardown": [ 280*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 281*4882a593Smuzhiyun ] 282*4882a593Smuzhiyun }, 283*4882a593Smuzhiyun { 284*4882a593Smuzhiyun "id": "4d39", 285*4882a593Smuzhiyun "name": "Delete bfifo qdisc twice", 286*4882a593Smuzhiyun "category": [ 287*4882a593Smuzhiyun "qdisc", 288*4882a593Smuzhiyun "fifo" 289*4882a593Smuzhiyun ], 290*4882a593Smuzhiyun "setup": [ 291*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true", 292*4882a593Smuzhiyun "$TC qdisc add dev $DUMMY root handle 1: bfifo", 293*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY root handle 1: bfifo" 294*4882a593Smuzhiyun ], 295*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root bfifo", 296*4882a593Smuzhiyun "expExitCode": "2", 297*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 298*4882a593Smuzhiyun "matchPattern": "qdisc bfifo 1: root", 299*4882a593Smuzhiyun "matchCount": "0", 300*4882a593Smuzhiyun "teardown": [ 301*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 302*4882a593Smuzhiyun ] 303*4882a593Smuzhiyun } 304*4882a593Smuzhiyun] 305