1*4882a593Smuzhiyun[ 2*4882a593Smuzhiyun { 3*4882a593Smuzhiyun "id": "ddd9", 4*4882a593Smuzhiyun "name": "Add prio qdisc on egress", 5*4882a593Smuzhiyun "category": [ 6*4882a593Smuzhiyun "qdisc", 7*4882a593Smuzhiyun "prio" 8*4882a593Smuzhiyun ], 9*4882a593Smuzhiyun "setup": [ 10*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 11*4882a593Smuzhiyun ], 12*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio", 13*4882a593Smuzhiyun "expExitCode": "0", 14*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 15*4882a593Smuzhiyun "matchPattern": "qdisc prio 1: root", 16*4882a593Smuzhiyun "matchCount": "1", 17*4882a593Smuzhiyun "teardown": [ 18*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root prio", 19*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 20*4882a593Smuzhiyun ] 21*4882a593Smuzhiyun }, 22*4882a593Smuzhiyun { 23*4882a593Smuzhiyun "id": "aa71", 24*4882a593Smuzhiyun "name": "Add prio qdisc on egress with handle of maximum value", 25*4882a593Smuzhiyun "category": [ 26*4882a593Smuzhiyun "qdisc", 27*4882a593Smuzhiyun "prio" 28*4882a593Smuzhiyun ], 29*4882a593Smuzhiyun "setup": [ 30*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 31*4882a593Smuzhiyun ], 32*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY root handle ffff: prio", 33*4882a593Smuzhiyun "expExitCode": "0", 34*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 35*4882a593Smuzhiyun "matchPattern": "qdisc prio ffff: root", 36*4882a593Smuzhiyun "matchCount": "1", 37*4882a593Smuzhiyun "teardown": [ 38*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 39*4882a593Smuzhiyun ] 40*4882a593Smuzhiyun }, 41*4882a593Smuzhiyun { 42*4882a593Smuzhiyun "id": "db37", 43*4882a593Smuzhiyun "name": "Add prio qdisc on egress with invalid handle exceeding maximum value", 44*4882a593Smuzhiyun "category": [ 45*4882a593Smuzhiyun "qdisc", 46*4882a593Smuzhiyun "prio" 47*4882a593Smuzhiyun ], 48*4882a593Smuzhiyun "setup": [ 49*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 50*4882a593Smuzhiyun ], 51*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY root handle 10000: prio", 52*4882a593Smuzhiyun "expExitCode": "255", 53*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 54*4882a593Smuzhiyun "matchPattern": "qdisc prio 10000: root", 55*4882a593Smuzhiyun "matchCount": "0", 56*4882a593Smuzhiyun "teardown": [ 57*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 58*4882a593Smuzhiyun ] 59*4882a593Smuzhiyun }, 60*4882a593Smuzhiyun { 61*4882a593Smuzhiyun "id": "39d8", 62*4882a593Smuzhiyun "name": "Add prio qdisc on egress with unsupported argument", 63*4882a593Smuzhiyun "category": [ 64*4882a593Smuzhiyun "qdisc", 65*4882a593Smuzhiyun "prio" 66*4882a593Smuzhiyun ], 67*4882a593Smuzhiyun "setup": [ 68*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 69*4882a593Smuzhiyun ], 70*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio foorbar", 71*4882a593Smuzhiyun "expExitCode": "1", 72*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 73*4882a593Smuzhiyun "matchPattern": "qdisc prio 1: root", 74*4882a593Smuzhiyun "matchCount": "0", 75*4882a593Smuzhiyun "teardown": [ 76*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 77*4882a593Smuzhiyun ] 78*4882a593Smuzhiyun }, 79*4882a593Smuzhiyun { 80*4882a593Smuzhiyun "id": "5769", 81*4882a593Smuzhiyun "name": "Add prio qdisc on egress with 4 bands and new priomap", 82*4882a593Smuzhiyun "category": [ 83*4882a593Smuzhiyun "qdisc", 84*4882a593Smuzhiyun "prio" 85*4882a593Smuzhiyun ], 86*4882a593Smuzhiyun "setup": [ 87*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 88*4882a593Smuzhiyun ], 89*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio bands 4 priomap 1 1 2 2 3 3 0 0 1 2 3 0 0 0 0 0", 90*4882a593Smuzhiyun "expExitCode": "0", 91*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 92*4882a593Smuzhiyun "matchPattern": "qdisc prio 1: root.*bands 4 priomap.*1 1 2 2 3 3 0 0 1 2 3 0 0 0 0 0", 93*4882a593Smuzhiyun "matchCount": "1", 94*4882a593Smuzhiyun "teardown": [ 95*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root prio", 96*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 97*4882a593Smuzhiyun ] 98*4882a593Smuzhiyun }, 99*4882a593Smuzhiyun { 100*4882a593Smuzhiyun "id": "fe0f", 101*4882a593Smuzhiyun "name": "Add prio qdisc on egress with 4 bands and priomap exceeding TC_PRIO_MAX entries", 102*4882a593Smuzhiyun "category": [ 103*4882a593Smuzhiyun "qdisc", 104*4882a593Smuzhiyun "prio" 105*4882a593Smuzhiyun ], 106*4882a593Smuzhiyun "setup": [ 107*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 108*4882a593Smuzhiyun ], 109*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio bands 4 priomap 1 1 2 2 3 3 0 0 1 2 3 0 0 0 0 0 1 1", 110*4882a593Smuzhiyun "expExitCode": "1", 111*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 112*4882a593Smuzhiyun "matchPattern": "qdisc prio 1: root.*bands 4 priomap.*1 1 2 2 3 3 0 0 1 2 3 0 0 0 0 0 1 1", 113*4882a593Smuzhiyun "matchCount": "0", 114*4882a593Smuzhiyun "teardown": [ 115*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 116*4882a593Smuzhiyun ] 117*4882a593Smuzhiyun }, 118*4882a593Smuzhiyun { 119*4882a593Smuzhiyun "id": "1f91", 120*4882a593Smuzhiyun "name": "Add prio qdisc on egress with 4 bands and priomap's values exceeding bands number", 121*4882a593Smuzhiyun "category": [ 122*4882a593Smuzhiyun "qdisc", 123*4882a593Smuzhiyun "prio" 124*4882a593Smuzhiyun ], 125*4882a593Smuzhiyun "setup": [ 126*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 127*4882a593Smuzhiyun ], 128*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio bands 4 priomap 1 1 2 2 7 5 0 0 1 2 3 0 0 0 0 0", 129*4882a593Smuzhiyun "expExitCode": "1", 130*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 131*4882a593Smuzhiyun "matchPattern": "qdisc prio 1: root.*bands 4 priomap.*1 1 2 2 7 5 0 0 1 2 3 0 0 0 0 0", 132*4882a593Smuzhiyun "matchCount": "0", 133*4882a593Smuzhiyun "teardown": [ 134*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 135*4882a593Smuzhiyun ] 136*4882a593Smuzhiyun }, 137*4882a593Smuzhiyun { 138*4882a593Smuzhiyun "id": "d248", 139*4882a593Smuzhiyun "name": "Add prio qdisc on egress with invalid bands value (< 2)", 140*4882a593Smuzhiyun "category": [ 141*4882a593Smuzhiyun "qdisc", 142*4882a593Smuzhiyun "prio" 143*4882a593Smuzhiyun ], 144*4882a593Smuzhiyun "setup": [ 145*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 146*4882a593Smuzhiyun ], 147*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio bands 1 priomap 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0", 148*4882a593Smuzhiyun "expExitCode": "2", 149*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 150*4882a593Smuzhiyun "matchPattern": "qdisc prio 1: root.*bands 1 priomap.*0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0", 151*4882a593Smuzhiyun "matchCount": "0", 152*4882a593Smuzhiyun "teardown": [ 153*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 154*4882a593Smuzhiyun ] 155*4882a593Smuzhiyun }, 156*4882a593Smuzhiyun { 157*4882a593Smuzhiyun "id": "1d0e", 158*4882a593Smuzhiyun "name": "Add prio qdisc on egress with invalid bands value exceeding TCQ_PRIO_BANDS", 159*4882a593Smuzhiyun "category": [ 160*4882a593Smuzhiyun "qdisc", 161*4882a593Smuzhiyun "prio" 162*4882a593Smuzhiyun ], 163*4882a593Smuzhiyun "setup": [ 164*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 165*4882a593Smuzhiyun ], 166*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio bands 1024 priomap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16", 167*4882a593Smuzhiyun "expExitCode": "2", 168*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 169*4882a593Smuzhiyun "matchPattern": "qdisc prio 1: root.*bands 1024 priomap.*1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16", 170*4882a593Smuzhiyun "matchCount": "0", 171*4882a593Smuzhiyun "teardown": [ 172*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 173*4882a593Smuzhiyun ] 174*4882a593Smuzhiyun }, 175*4882a593Smuzhiyun { 176*4882a593Smuzhiyun "id": "1971", 177*4882a593Smuzhiyun "name": "Replace default prio qdisc on egress with 8 bands and new priomap", 178*4882a593Smuzhiyun "category": [ 179*4882a593Smuzhiyun "qdisc", 180*4882a593Smuzhiyun "prio" 181*4882a593Smuzhiyun ], 182*4882a593Smuzhiyun "setup": [ 183*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true", 184*4882a593Smuzhiyun "$TC qdisc add dev $DUMMY handle 1: root prio" 185*4882a593Smuzhiyun ], 186*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root prio bands 8 priomap 1 1 2 2 3 3 4 4 5 5 6 6 7 7 0 0", 187*4882a593Smuzhiyun "expExitCode": "0", 188*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 189*4882a593Smuzhiyun "matchPattern": "qdisc prio 1: root.*bands 8 priomap.*1 1 2 2 3 3 4 4 5 5 6 6 7 7 0 0", 190*4882a593Smuzhiyun "matchCount": "1", 191*4882a593Smuzhiyun "teardown": [ 192*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root prio", 193*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 194*4882a593Smuzhiyun ] 195*4882a593Smuzhiyun }, 196*4882a593Smuzhiyun { 197*4882a593Smuzhiyun "id": "d88a", 198*4882a593Smuzhiyun "name": "Add duplicate prio qdisc on egress", 199*4882a593Smuzhiyun "category": [ 200*4882a593Smuzhiyun "qdisc", 201*4882a593Smuzhiyun "prio" 202*4882a593Smuzhiyun ], 203*4882a593Smuzhiyun "setup": [ 204*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true", 205*4882a593Smuzhiyun "$TC qdisc add dev $DUMMY handle 1: root prio" 206*4882a593Smuzhiyun ], 207*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root prio", 208*4882a593Smuzhiyun "expExitCode": "2", 209*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 210*4882a593Smuzhiyun "matchPattern": "qdisc prio 1: root", 211*4882a593Smuzhiyun "matchCount": "1", 212*4882a593Smuzhiyun "teardown": [ 213*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY handle 1: root prio", 214*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 215*4882a593Smuzhiyun ] 216*4882a593Smuzhiyun }, 217*4882a593Smuzhiyun { 218*4882a593Smuzhiyun "id": "5948", 219*4882a593Smuzhiyun "name": "Delete nonexistent prio qdisc", 220*4882a593Smuzhiyun "category": [ 221*4882a593Smuzhiyun "qdisc", 222*4882a593Smuzhiyun "prio" 223*4882a593Smuzhiyun ], 224*4882a593Smuzhiyun "setup": [ 225*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 226*4882a593Smuzhiyun ], 227*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc del dev $DUMMY root handle 1: prio", 228*4882a593Smuzhiyun "expExitCode": "2", 229*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 230*4882a593Smuzhiyun "matchPattern": "qdisc prio 1: root", 231*4882a593Smuzhiyun "matchCount": "0", 232*4882a593Smuzhiyun "teardown": [ 233*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 234*4882a593Smuzhiyun ] 235*4882a593Smuzhiyun }, 236*4882a593Smuzhiyun { 237*4882a593Smuzhiyun "id": "6c0a", 238*4882a593Smuzhiyun "name": "Add prio qdisc on egress with invalid format for handles", 239*4882a593Smuzhiyun "category": [ 240*4882a593Smuzhiyun "qdisc", 241*4882a593Smuzhiyun "prio" 242*4882a593Smuzhiyun ], 243*4882a593Smuzhiyun "setup": [ 244*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true" 245*4882a593Smuzhiyun ], 246*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc add dev $DUMMY root handle 123^ prio", 247*4882a593Smuzhiyun "expExitCode": "255", 248*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 249*4882a593Smuzhiyun "matchPattern": "qdisc prio 123 root", 250*4882a593Smuzhiyun "matchCount": "0", 251*4882a593Smuzhiyun "teardown": [ 252*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 253*4882a593Smuzhiyun ] 254*4882a593Smuzhiyun }, 255*4882a593Smuzhiyun { 256*4882a593Smuzhiyun "id": "0175", 257*4882a593Smuzhiyun "name": "Delete prio qdisc twice", 258*4882a593Smuzhiyun "category": [ 259*4882a593Smuzhiyun "qdisc", 260*4882a593Smuzhiyun "prio" 261*4882a593Smuzhiyun ], 262*4882a593Smuzhiyun "setup": [ 263*4882a593Smuzhiyun "$IP link add dev $DUMMY type dummy || /bin/true", 264*4882a593Smuzhiyun "$TC qdisc add dev $DUMMY root handle 1: prio", 265*4882a593Smuzhiyun "$TC qdisc del dev $DUMMY root handle 1: prio" 266*4882a593Smuzhiyun ], 267*4882a593Smuzhiyun "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root prio", 268*4882a593Smuzhiyun "expExitCode": "2", 269*4882a593Smuzhiyun "verifyCmd": "$TC qdisc show dev $DUMMY", 270*4882a593Smuzhiyun "matchPattern": "qdisc ingress ffff:", 271*4882a593Smuzhiyun "matchCount": "0", 272*4882a593Smuzhiyun "teardown": [ 273*4882a593Smuzhiyun "$IP link del dev $DUMMY type dummy" 274*4882a593Smuzhiyun ] 275*4882a593Smuzhiyun } 276*4882a593Smuzhiyun] 277