1*779f966fSZhengchao Shao[ 2*779f966fSZhengchao Shao { 3*779f966fSZhengchao Shao "id": "cb28", 4*779f966fSZhengchao Shao "name": "Create NETEM with default setting", 5*779f966fSZhengchao Shao "category": [ 6*779f966fSZhengchao Shao "qdisc", 7*779f966fSZhengchao Shao "netem" 8*779f966fSZhengchao Shao ], 9*779f966fSZhengchao Shao "plugins": { 10*779f966fSZhengchao Shao "requires": "nsPlugin" 11*779f966fSZhengchao Shao }, 12*779f966fSZhengchao Shao "setup": [ 13*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 14*779f966fSZhengchao Shao ], 15*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem", 16*779f966fSZhengchao Shao "expExitCode": "0", 17*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 18*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ limit", 19*779f966fSZhengchao Shao "matchCount": "1", 20*779f966fSZhengchao Shao "teardown": [ 21*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 22*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 23*779f966fSZhengchao Shao ] 24*779f966fSZhengchao Shao }, 25*779f966fSZhengchao Shao { 26*779f966fSZhengchao Shao "id": "a089", 27*779f966fSZhengchao Shao "name": "Create NETEM with limit flag", 28*779f966fSZhengchao Shao "category": [ 29*779f966fSZhengchao Shao "qdisc", 30*779f966fSZhengchao Shao "netem" 31*779f966fSZhengchao Shao ], 32*779f966fSZhengchao Shao "plugins": { 33*779f966fSZhengchao Shao "requires": "nsPlugin" 34*779f966fSZhengchao Shao }, 35*779f966fSZhengchao Shao "setup": [ 36*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 37*779f966fSZhengchao Shao ], 38*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem limit 200", 39*779f966fSZhengchao Shao "expExitCode": "0", 40*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 41*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ limit 200", 42*779f966fSZhengchao Shao "matchCount": "1", 43*779f966fSZhengchao Shao "teardown": [ 44*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 45*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 46*779f966fSZhengchao Shao ] 47*779f966fSZhengchao Shao }, 48*779f966fSZhengchao Shao { 49*779f966fSZhengchao Shao "id": "3449", 50*779f966fSZhengchao Shao "name": "Create NETEM with delay time", 51*779f966fSZhengchao Shao "category": [ 52*779f966fSZhengchao Shao "qdisc", 53*779f966fSZhengchao Shao "netem" 54*779f966fSZhengchao Shao ], 55*779f966fSZhengchao Shao "plugins": { 56*779f966fSZhengchao Shao "requires": "nsPlugin" 57*779f966fSZhengchao Shao }, 58*779f966fSZhengchao Shao "setup": [ 59*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 60*779f966fSZhengchao Shao ], 61*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms", 62*779f966fSZhengchao Shao "expExitCode": "0", 63*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 64*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms", 65*779f966fSZhengchao Shao "matchCount": "1", 66*779f966fSZhengchao Shao "teardown": [ 67*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 68*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 69*779f966fSZhengchao Shao ] 70*779f966fSZhengchao Shao }, 71*779f966fSZhengchao Shao { 72*779f966fSZhengchao Shao "id": "3782", 73*779f966fSZhengchao Shao "name": "Create NETEM with distribution and corrupt flag", 74*779f966fSZhengchao Shao "category": [ 75*779f966fSZhengchao Shao "qdisc", 76*779f966fSZhengchao Shao "netem" 77*779f966fSZhengchao Shao ], 78*779f966fSZhengchao Shao "plugins": { 79*779f966fSZhengchao Shao "requires": "nsPlugin" 80*779f966fSZhengchao Shao }, 81*779f966fSZhengchao Shao "setup": [ 82*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 83*779f966fSZhengchao Shao ], 84*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal corrupt 1%", 85*779f966fSZhengchao Shao "expExitCode": "0", 86*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 87*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms corrupt 1%", 88*779f966fSZhengchao Shao "matchCount": "1", 89*779f966fSZhengchao Shao "teardown": [ 90*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 91*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 92*779f966fSZhengchao Shao ] 93*779f966fSZhengchao Shao }, 94*779f966fSZhengchao Shao { 95*779f966fSZhengchao Shao "id": "2b82", 96*779f966fSZhengchao Shao "name": "Create NETEM with distribution and duplicate flag", 97*779f966fSZhengchao Shao "category": [ 98*779f966fSZhengchao Shao "qdisc", 99*779f966fSZhengchao Shao "netem" 100*779f966fSZhengchao Shao ], 101*779f966fSZhengchao Shao "plugins": { 102*779f966fSZhengchao Shao "requires": "nsPlugin" 103*779f966fSZhengchao Shao }, 104*779f966fSZhengchao Shao "setup": [ 105*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 106*779f966fSZhengchao Shao ], 107*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal duplicate 1%", 108*779f966fSZhengchao Shao "expExitCode": "0", 109*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 110*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms duplicate 1%", 111*779f966fSZhengchao Shao "matchCount": "1", 112*779f966fSZhengchao Shao "teardown": [ 113*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 114*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 115*779f966fSZhengchao Shao ] 116*779f966fSZhengchao Shao }, 117*779f966fSZhengchao Shao { 118*779f966fSZhengchao Shao "id": "a932", 119*779f966fSZhengchao Shao "name": "Create NETEM with distribution and loss flag", 120*779f966fSZhengchao Shao "category": [ 121*779f966fSZhengchao Shao "qdisc", 122*779f966fSZhengchao Shao "netem" 123*779f966fSZhengchao Shao ], 124*779f966fSZhengchao Shao "plugins": { 125*779f966fSZhengchao Shao "requires": "nsPlugin" 126*779f966fSZhengchao Shao }, 127*779f966fSZhengchao Shao "setup": [ 128*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 129*779f966fSZhengchao Shao ], 130*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution pareto loss 1%", 131*779f966fSZhengchao Shao "expExitCode": "0", 132*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 133*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms loss 1%", 134*779f966fSZhengchao Shao "matchCount": "1", 135*779f966fSZhengchao Shao "teardown": [ 136*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 137*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 138*779f966fSZhengchao Shao ] 139*779f966fSZhengchao Shao }, 140*779f966fSZhengchao Shao { 141*779f966fSZhengchao Shao "id": "e01a", 142*779f966fSZhengchao Shao "name": "Create NETEM with distribution and loss state flag", 143*779f966fSZhengchao Shao "category": [ 144*779f966fSZhengchao Shao "qdisc", 145*779f966fSZhengchao Shao "netem" 146*779f966fSZhengchao Shao ], 147*779f966fSZhengchao Shao "plugins": { 148*779f966fSZhengchao Shao "requires": "nsPlugin" 149*779f966fSZhengchao Shao }, 150*779f966fSZhengchao Shao "setup": [ 151*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 152*779f966fSZhengchao Shao ], 153*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution paretonormal loss state 1", 154*779f966fSZhengchao Shao "expExitCode": "0", 155*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 156*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms loss state p13 1% p31 99% p32 0% p23 100% p14 0%", 157*779f966fSZhengchao Shao "matchCount": "1", 158*779f966fSZhengchao Shao "teardown": [ 159*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 160*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 161*779f966fSZhengchao Shao ] 162*779f966fSZhengchao Shao }, 163*779f966fSZhengchao Shao { 164*779f966fSZhengchao Shao "id": "ba29", 165*779f966fSZhengchao Shao "name": "Create NETEM with loss gemodel flag", 166*779f966fSZhengchao Shao "category": [ 167*779f966fSZhengchao Shao "qdisc", 168*779f966fSZhengchao Shao "netem" 169*779f966fSZhengchao Shao ], 170*779f966fSZhengchao Shao "plugins": { 171*779f966fSZhengchao Shao "requires": "nsPlugin" 172*779f966fSZhengchao Shao }, 173*779f966fSZhengchao Shao "setup": [ 174*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 175*779f966fSZhengchao Shao ], 176*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem loss gemodel 1%", 177*779f966fSZhengchao Shao "expExitCode": "0", 178*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 179*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*loss gemodel p 1%", 180*779f966fSZhengchao Shao "matchCount": "1", 181*779f966fSZhengchao Shao "teardown": [ 182*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 183*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 184*779f966fSZhengchao Shao ] 185*779f966fSZhengchao Shao }, 186*779f966fSZhengchao Shao { 187*779f966fSZhengchao Shao "id": "0492", 188*779f966fSZhengchao Shao "name": "Create NETEM with reorder flag", 189*779f966fSZhengchao Shao "category": [ 190*779f966fSZhengchao Shao "qdisc", 191*779f966fSZhengchao Shao "netem" 192*779f966fSZhengchao Shao ], 193*779f966fSZhengchao Shao "plugins": { 194*779f966fSZhengchao Shao "requires": "nsPlugin" 195*779f966fSZhengchao Shao }, 196*779f966fSZhengchao Shao "setup": [ 197*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 198*779f966fSZhengchao Shao ], 199*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms reorder 2% gap 100", 200*779f966fSZhengchao Shao "expExitCode": "0", 201*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 202*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*reorder 2%", 203*779f966fSZhengchao Shao "matchCount": "1", 204*779f966fSZhengchao Shao "teardown": [ 205*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 206*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 207*779f966fSZhengchao Shao ] 208*779f966fSZhengchao Shao }, 209*779f966fSZhengchao Shao { 210*779f966fSZhengchao Shao "id": "7862", 211*779f966fSZhengchao Shao "name": "Create NETEM with rate limit", 212*779f966fSZhengchao Shao "category": [ 213*779f966fSZhengchao Shao "qdisc", 214*779f966fSZhengchao Shao "netem" 215*779f966fSZhengchao Shao ], 216*779f966fSZhengchao Shao "plugins": { 217*779f966fSZhengchao Shao "requires": "nsPlugin" 218*779f966fSZhengchao Shao }, 219*779f966fSZhengchao Shao "setup": [ 220*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 221*779f966fSZhengchao Shao ], 222*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem rate 20000", 223*779f966fSZhengchao Shao "expExitCode": "0", 224*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 225*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*rate 20Kbit", 226*779f966fSZhengchao Shao "matchCount": "1", 227*779f966fSZhengchao Shao "teardown": [ 228*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 229*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 230*779f966fSZhengchao Shao ] 231*779f966fSZhengchao Shao }, 232*779f966fSZhengchao Shao { 233*779f966fSZhengchao Shao "id": "7235", 234*779f966fSZhengchao Shao "name": "Create NETEM with multiple slot rate", 235*779f966fSZhengchao Shao "category": [ 236*779f966fSZhengchao Shao "qdisc", 237*779f966fSZhengchao Shao "netem" 238*779f966fSZhengchao Shao ], 239*779f966fSZhengchao Shao "plugins": { 240*779f966fSZhengchao Shao "requires": "nsPlugin" 241*779f966fSZhengchao Shao }, 242*779f966fSZhengchao Shao "setup": [ 243*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 244*779f966fSZhengchao Shao ], 245*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem slot 10 200 packets 2000 bytes 9000", 246*779f966fSZhengchao Shao "expExitCode": "0", 247*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 248*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*slot 10ns 200ns packets 2000 bytes 9000", 249*779f966fSZhengchao Shao "matchCount": "1", 250*779f966fSZhengchao Shao "teardown": [ 251*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 252*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 253*779f966fSZhengchao Shao ] 254*779f966fSZhengchao Shao }, 255*779f966fSZhengchao Shao { 256*779f966fSZhengchao Shao "id": "5439", 257*779f966fSZhengchao Shao "name": "Create NETEM with multiple slot setting", 258*779f966fSZhengchao Shao "category": [ 259*779f966fSZhengchao Shao "qdisc", 260*779f966fSZhengchao Shao "netem" 261*779f966fSZhengchao Shao ], 262*779f966fSZhengchao Shao "plugins": { 263*779f966fSZhengchao Shao "requires": "nsPlugin" 264*779f966fSZhengchao Shao }, 265*779f966fSZhengchao Shao "setup": [ 266*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 267*779f966fSZhengchao Shao ], 268*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem slot distribution pareto 1ms 0.1ms", 269*779f966fSZhengchao Shao "expExitCode": "0", 270*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 271*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*slot distribution 1ms 100us", 272*779f966fSZhengchao Shao "matchCount": "1", 273*779f966fSZhengchao Shao "teardown": [ 274*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 275*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 276*779f966fSZhengchao Shao ] 277*779f966fSZhengchao Shao }, 278*779f966fSZhengchao Shao { 279*779f966fSZhengchao Shao "id": "5029", 280*779f966fSZhengchao Shao "name": "Change NETEM with loss state", 281*779f966fSZhengchao Shao "category": [ 282*779f966fSZhengchao Shao "qdisc", 283*779f966fSZhengchao Shao "netem" 284*779f966fSZhengchao Shao ], 285*779f966fSZhengchao Shao "plugins": { 286*779f966fSZhengchao Shao "requires": "nsPlugin" 287*779f966fSZhengchao Shao }, 288*779f966fSZhengchao Shao "setup": [ 289*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true", 290*779f966fSZhengchao Shao "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 1%" 291*779f966fSZhengchao Shao ], 292*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 2%", 293*779f966fSZhengchao Shao "expExitCode": "0", 294*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 295*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*loss 2%", 296*779f966fSZhengchao Shao "matchCount": "1", 297*779f966fSZhengchao Shao "teardown": [ 298*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 299*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 300*779f966fSZhengchao Shao ] 301*779f966fSZhengchao Shao }, 302*779f966fSZhengchao Shao { 303*779f966fSZhengchao Shao "id": "3785", 304*779f966fSZhengchao Shao "name": "Replace NETEM with delay time", 305*779f966fSZhengchao Shao "category": [ 306*779f966fSZhengchao Shao "qdisc", 307*779f966fSZhengchao Shao "netem" 308*779f966fSZhengchao Shao ], 309*779f966fSZhengchao Shao "plugins": { 310*779f966fSZhengchao Shao "requires": "nsPlugin" 311*779f966fSZhengchao Shao }, 312*779f966fSZhengchao Shao "setup": [ 313*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true", 314*779f966fSZhengchao Shao "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal loss 1%" 315*779f966fSZhengchao Shao ], 316*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root netem delay 200ms 10ms", 317*779f966fSZhengchao Shao "expExitCode": "0", 318*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 319*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 200ms 10ms", 320*779f966fSZhengchao Shao "matchCount": "1", 321*779f966fSZhengchao Shao "teardown": [ 322*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 323*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 324*779f966fSZhengchao Shao ] 325*779f966fSZhengchao Shao }, 326*779f966fSZhengchao Shao { 327*779f966fSZhengchao Shao "id": "4502", 328*779f966fSZhengchao Shao "name": "Delete NETEM with handle", 329*779f966fSZhengchao Shao "category": [ 330*779f966fSZhengchao Shao "qdisc", 331*779f966fSZhengchao Shao "netem" 332*779f966fSZhengchao Shao ], 333*779f966fSZhengchao Shao "plugins": { 334*779f966fSZhengchao Shao "requires": "nsPlugin" 335*779f966fSZhengchao Shao }, 336*779f966fSZhengchao Shao "setup": [ 337*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true", 338*779f966fSZhengchao Shao "$TC qdisc add dev $DUMMY handle 1: root netem delay 100ms 10ms distribution normal" 339*779f966fSZhengchao Shao ], 340*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root", 341*779f966fSZhengchao Shao "expExitCode": "0", 342*779f966fSZhengchao Shao "verifyCmd": "$TC qdisc show dev $DUMMY", 343*779f966fSZhengchao Shao "matchPattern": "qdisc netem 1: root refcnt [0-9]+ .*delay 100ms 10ms", 344*779f966fSZhengchao Shao "matchCount": "0", 345*779f966fSZhengchao Shao "teardown": [ 346*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 347*779f966fSZhengchao Shao ] 348*779f966fSZhengchao Shao }, 349*779f966fSZhengchao Shao { 350*779f966fSZhengchao Shao "id": "0785", 351*779f966fSZhengchao Shao "name": "Show NETEM class", 352*779f966fSZhengchao Shao "category": [ 353*779f966fSZhengchao Shao "qdisc", 354*779f966fSZhengchao Shao "netem" 355*779f966fSZhengchao Shao ], 356*779f966fSZhengchao Shao "plugins": { 357*779f966fSZhengchao Shao "requires": "nsPlugin" 358*779f966fSZhengchao Shao }, 359*779f966fSZhengchao Shao "setup": [ 360*779f966fSZhengchao Shao "$IP link add dev $DUMMY type dummy || /bin/true" 361*779f966fSZhengchao Shao ], 362*779f966fSZhengchao Shao "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root netem", 363*779f966fSZhengchao Shao "expExitCode": "0", 364*779f966fSZhengchao Shao "verifyCmd": "$TC class show dev $DUMMY", 365*779f966fSZhengchao Shao "matchPattern": "class netem 1:", 366*779f966fSZhengchao Shao "matchCount": "0", 367*779f966fSZhengchao Shao "teardown": [ 368*779f966fSZhengchao Shao "$TC qdisc del dev $DUMMY handle 1: root", 369*779f966fSZhengchao Shao "$IP link del dev $DUMMY type dummy" 370*779f966fSZhengchao Shao ] 371*779f966fSZhengchao Shao } 372*779f966fSZhengchao Shao] 373