1[ 2 { 3 "id": "983b", 4 "name": "Create FQ with default setting", 5 "category": [ 6 "qdisc", 7 "fq" 8 ], 9 "plugins": { 10 "requires": "nsPlugin" 11 }, 12 "setup": [ 13 "$IP link add dev $DUMMY type dummy || /bin/true" 14 ], 15 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq", 16 "expExitCode": "0", 17 "verifyCmd": "$TC qdisc show dev $DUMMY", 18 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit", 19 "matchCount": "1", 20 "teardown": [ 21 "$TC qdisc del dev $DUMMY handle 1: root", 22 "$IP link del dev $DUMMY type dummy" 23 ] 24 }, 25 { 26 "id": "38a1", 27 "name": "Create FQ with limit packet setting", 28 "category": [ 29 "qdisc", 30 "fq" 31 ], 32 "plugins": { 33 "requires": "nsPlugin" 34 }, 35 "setup": [ 36 "$IP link add dev $DUMMY type dummy || /bin/true" 37 ], 38 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq limit 3000", 39 "expExitCode": "0", 40 "verifyCmd": "$TC qdisc show dev $DUMMY", 41 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 3000p", 42 "matchCount": "1", 43 "teardown": [ 44 "$TC qdisc del dev $DUMMY handle 1: root", 45 "$IP link del dev $DUMMY type dummy" 46 ] 47 }, 48 { 49 "id": "0a18", 50 "name": "Create FQ with flow_limit setting", 51 "category": [ 52 "qdisc", 53 "fq" 54 ], 55 "plugins": { 56 "requires": "nsPlugin" 57 }, 58 "setup": [ 59 "$IP link add dev $DUMMY type dummy || /bin/true" 60 ], 61 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq flow_limit 300", 62 "expExitCode": "0", 63 "verifyCmd": "$TC qdisc show dev $DUMMY", 64 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 300p", 65 "matchCount": "1", 66 "teardown": [ 67 "$TC qdisc del dev $DUMMY handle 1: root", 68 "$IP link del dev $DUMMY type dummy" 69 ] 70 }, 71 { 72 "id": "2390", 73 "name": "Create FQ with quantum setting", 74 "category": [ 75 "qdisc", 76 "fq" 77 ], 78 "plugins": { 79 "requires": "nsPlugin" 80 }, 81 "setup": [ 82 "$IP link add dev $DUMMY type dummy || /bin/true" 83 ], 84 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq quantum 9000", 85 "expExitCode": "0", 86 "verifyCmd": "$TC qdisc show dev $DUMMY", 87 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p buckets.*orphan_mask 1023 quantum 9000b", 88 "matchCount": "1", 89 "teardown": [ 90 "$TC qdisc del dev $DUMMY handle 1: root", 91 "$IP link del dev $DUMMY type dummy" 92 ] 93 }, 94 { 95 "id": "845b", 96 "name": "Create FQ with initial_quantum setting", 97 "category": [ 98 "qdisc", 99 "fq" 100 ], 101 "plugins": { 102 "requires": "nsPlugin" 103 }, 104 "setup": [ 105 "$IP link add dev $DUMMY type dummy || /bin/true" 106 ], 107 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq initial_quantum 900000", 108 "expExitCode": "0", 109 "verifyCmd": "$TC qdisc show dev $DUMMY", 110 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p buckets.*initial_quantum 900000b", 111 "matchCount": "1", 112 "teardown": [ 113 "$TC qdisc del dev $DUMMY handle 1: root", 114 "$IP link del dev $DUMMY type dummy" 115 ] 116 }, 117 { 118 "id": "10f7", 119 "name": "Create FQ with invalid initial_quantum setting", 120 "category": [ 121 "qdisc", 122 "fq" 123 ], 124 "plugins": { 125 "requires": "nsPlugin" 126 }, 127 "setup": [ 128 "$IP link add dev $DUMMY type dummy || /bin/true" 129 ], 130 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq initial_quantum 0x80000000", 131 "expExitCode": "2", 132 "verifyCmd": "$TC qdisc show dev $DUMMY", 133 "matchPattern": "qdisc fq 1: root.*initial_quantum 2048Mb", 134 "matchCount": "0", 135 "teardown": [ 136 "$IP link del dev $DUMMY type dummy" 137 ] 138 }, 139 { 140 "id": "9398", 141 "name": "Create FQ with maxrate setting", 142 "category": [ 143 "qdisc", 144 "fq" 145 ], 146 "plugins": { 147 "requires": "nsPlugin" 148 }, 149 "setup": [ 150 "$IP link add dev $DUMMY type dummy || /bin/true" 151 ], 152 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq maxrate 100000", 153 "expExitCode": "0", 154 "verifyCmd": "$TC qdisc show dev $DUMMY", 155 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p buckets.*maxrate 100Kbit", 156 "matchCount": "1", 157 "teardown": [ 158 "$TC qdisc del dev $DUMMY handle 1: root", 159 "$IP link del dev $DUMMY type dummy" 160 ] 161 }, 162 { 163 "id": "342c", 164 "name": "Create FQ with nopacing setting", 165 "category": [ 166 "qdisc", 167 "fq" 168 ], 169 "plugins": { 170 "requires": "nsPlugin" 171 }, 172 "setup": [ 173 "$IP link add dev $DUMMY type dummy || /bin/true" 174 ], 175 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq nopacing", 176 "expExitCode": "0", 177 "verifyCmd": "$TC qdisc show dev $DUMMY", 178 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*nopacing", 179 "matchCount": "1", 180 "teardown": [ 181 "$TC qdisc del dev $DUMMY handle 1: root", 182 "$IP link del dev $DUMMY type dummy" 183 ] 184 }, 185 { 186 "id": "6391", 187 "name": "Create FQ with refill_delay setting", 188 "category": [ 189 "qdisc", 190 "fq" 191 ], 192 "plugins": { 193 "requires": "nsPlugin" 194 }, 195 "setup": [ 196 "$IP link add dev $DUMMY type dummy || /bin/true" 197 ], 198 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq refill_delay 100ms", 199 "expExitCode": "0", 200 "verifyCmd": "$TC qdisc show dev $DUMMY", 201 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*refill_delay 100ms", 202 "matchCount": "1", 203 "teardown": [ 204 "$TC qdisc del dev $DUMMY handle 1: root", 205 "$IP link del dev $DUMMY type dummy" 206 ] 207 }, 208 { 209 "id": "238b", 210 "name": "Create FQ with low_rate_threshold setting", 211 "category": [ 212 "qdisc", 213 "fq" 214 ], 215 "plugins": { 216 "requires": "nsPlugin" 217 }, 218 "setup": [ 219 "$IP link add dev $DUMMY type dummy || /bin/true" 220 ], 221 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq low_rate_threshold 10000", 222 "expExitCode": "0", 223 "verifyCmd": "$TC qdisc show dev $DUMMY", 224 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*low_rate_threshold 10Kbit", 225 "matchCount": "1", 226 "teardown": [ 227 "$TC qdisc del dev $DUMMY handle 1: root", 228 "$IP link del dev $DUMMY type dummy" 229 ] 230 }, 231 { 232 "id": "7582", 233 "name": "Create FQ with orphan_mask setting", 234 "category": [ 235 "qdisc", 236 "fq" 237 ], 238 "plugins": { 239 "requires": "nsPlugin" 240 }, 241 "setup": [ 242 "$IP link add dev $DUMMY type dummy || /bin/true" 243 ], 244 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq orphan_mask 255", 245 "expExitCode": "0", 246 "verifyCmd": "$TC qdisc show dev $DUMMY", 247 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*orphan_mask 255", 248 "matchCount": "1", 249 "teardown": [ 250 "$TC qdisc del dev $DUMMY handle 1: root", 251 "$IP link del dev $DUMMY type dummy" 252 ] 253 }, 254 { 255 "id": "4894", 256 "name": "Create FQ with timer_slack setting", 257 "category": [ 258 "qdisc", 259 "fq" 260 ], 261 "plugins": { 262 "requires": "nsPlugin" 263 }, 264 "setup": [ 265 "$IP link add dev $DUMMY type dummy || /bin/true" 266 ], 267 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq timer_slack 100", 268 "expExitCode": "0", 269 "verifyCmd": "$TC qdisc show dev $DUMMY", 270 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*timer_slack 100ns", 271 "matchCount": "1", 272 "teardown": [ 273 "$TC qdisc del dev $DUMMY handle 1: root", 274 "$IP link del dev $DUMMY type dummy" 275 ] 276 }, 277 { 278 "id": "324c", 279 "name": "Create FQ with ce_threshold setting", 280 "category": [ 281 "qdisc", 282 "fq" 283 ], 284 "plugins": { 285 "requires": "nsPlugin" 286 }, 287 "setup": [ 288 "$IP link add dev $DUMMY type dummy || /bin/true" 289 ], 290 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq ce_threshold 100", 291 "expExitCode": "0", 292 "verifyCmd": "$TC qdisc show dev $DUMMY", 293 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p", 294 "matchCount": "1", 295 "teardown": [ 296 "$TC qdisc del dev $DUMMY handle 1: root", 297 "$IP link del dev $DUMMY type dummy" 298 ] 299 }, 300 { 301 "id": "424a", 302 "name": "Create FQ with horizon time setting", 303 "category": [ 304 "qdisc", 305 "fq" 306 ], 307 "plugins": { 308 "requires": "nsPlugin" 309 }, 310 "setup": [ 311 "$IP link add dev $DUMMY type dummy || /bin/true" 312 ], 313 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq horizon 100", 314 "expExitCode": "0", 315 "verifyCmd": "$TC qdisc show dev $DUMMY", 316 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*horizon 100us", 317 "matchCount": "1", 318 "teardown": [ 319 "$TC qdisc del dev $DUMMY handle 1: root", 320 "$IP link del dev $DUMMY type dummy" 321 ] 322 }, 323 { 324 "id": "89e1", 325 "name": "Create FQ with horizon_cap setting", 326 "category": [ 327 "qdisc", 328 "fq" 329 ], 330 "plugins": { 331 "requires": "nsPlugin" 332 }, 333 "setup": [ 334 "$IP link add dev $DUMMY type dummy || /bin/true" 335 ], 336 "cmdUnderTest": "$TC qdisc add dev $DUMMY handle 1: root fq horizon_cap", 337 "expExitCode": "0", 338 "verifyCmd": "$TC qdisc show dev $DUMMY", 339 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p flow_limit 100p.*horizon_cap", 340 "matchCount": "1", 341 "teardown": [ 342 "$TC qdisc del dev $DUMMY handle 1: root", 343 "$IP link del dev $DUMMY type dummy" 344 ] 345 }, 346 { 347 "id": "32e1", 348 "name": "Delete FQ with valid handle", 349 "category": [ 350 "qdisc", 351 "fq" 352 ], 353 "plugins": { 354 "requires": "nsPlugin" 355 }, 356 "setup": [ 357 "$IP link add dev $DUMMY type dummy || /bin/true", 358 "$TC qdisc add dev $DUMMY handle 1: root fq" 359 ], 360 "cmdUnderTest": "$TC qdisc del dev $DUMMY handle 1: root", 361 "expExitCode": "0", 362 "verifyCmd": "$TC qdisc show dev $DUMMY", 363 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 10000p", 364 "matchCount": "0", 365 "teardown": [ 366 "$IP link del dev $DUMMY type dummy" 367 ] 368 }, 369 { 370 "id": "49b0", 371 "name": "Replace FQ with limit setting", 372 "category": [ 373 "qdisc", 374 "fq" 375 ], 376 "plugins": { 377 "requires": "nsPlugin" 378 }, 379 "setup": [ 380 "$IP link add dev $DUMMY type dummy || /bin/true", 381 "$TC qdisc add dev $DUMMY handle 1: root fq" 382 ], 383 "cmdUnderTest": "$TC qdisc replace dev $DUMMY handle 1: root fq limit 5000", 384 "expExitCode": "0", 385 "verifyCmd": "$TC qdisc show dev $DUMMY", 386 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 5000p", 387 "matchCount": "1", 388 "teardown": [ 389 "$TC qdisc del dev $DUMMY handle 1: root", 390 "$IP link del dev $DUMMY type dummy" 391 ] 392 }, 393 { 394 "id": "9478", 395 "name": "Change FQ with limit setting", 396 "category": [ 397 "qdisc", 398 "fq" 399 ], 400 "plugins": { 401 "requires": "nsPlugin" 402 }, 403 "setup": [ 404 "$IP link add dev $DUMMY type dummy || /bin/true", 405 "$TC qdisc add dev $DUMMY handle 1: root fq" 406 ], 407 "cmdUnderTest": "$TC qdisc change dev $DUMMY handle 1: root fq limit 100", 408 "expExitCode": "0", 409 "verifyCmd": "$TC qdisc show dev $DUMMY", 410 "matchPattern": "qdisc fq 1: root refcnt [0-9]+ limit 100p", 411 "matchCount": "1", 412 "teardown": [ 413 "$TC qdisc del dev $DUMMY handle 1: root", 414 "$IP link del dev $DUMMY type dummy" 415 ] 416 } 417] 418