|
352 | 352 | "$TC qdisc del dev $DUMMY handle 1:0 root",
|
353 | 353 | "$IP addr del 10.10.10.10/24 dev $DUMMY || true"
|
354 | 354 | ]
|
| 355 | + }, |
| 356 | + { |
| 357 | + "id": "90ec", |
| 358 | + "name": "Test DRR's enqueue reentrant behaviour with netem", |
| 359 | + "category": [ |
| 360 | + "qdisc", |
| 361 | + "drr" |
| 362 | + ], |
| 363 | + "plugins": { |
| 364 | + "requires": "nsPlugin" |
| 365 | + }, |
| 366 | + "setup": [ |
| 367 | + "$IP link set dev $DUMMY up || true", |
| 368 | + "$IP addr add 10.10.10.10/24 dev $DUMMY || true", |
| 369 | + "$TC qdisc add dev $DUMMY handle 1:0 root drr", |
| 370 | + "$TC class replace dev $DUMMY parent 1:0 classid 1:1 drr", |
| 371 | + "$TC qdisc add dev $DUMMY parent 1:1 handle 2:0 netem duplicate 100%", |
| 372 | + "$TC filter add dev $DUMMY parent 1:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:1" |
| 373 | + ], |
| 374 | + "cmdUnderTest": "ping -c 1 -I $DUMMY 10.10.10.1 > /dev/null || true", |
| 375 | + "expExitCode": "0", |
| 376 | + "verifyCmd": "$TC -j -s qdisc ls dev $DUMMY handle 1:0", |
| 377 | + "matchJSON": [ |
| 378 | + { |
| 379 | + "kind": "drr", |
| 380 | + "handle": "1:", |
| 381 | + "bytes": 196, |
| 382 | + "packets": 2 |
| 383 | + } |
| 384 | + ], |
| 385 | + "matchCount": "1", |
| 386 | + "teardown": [ |
| 387 | + "$TC qdisc del dev $DUMMY handle 1:0 root", |
| 388 | + "$IP addr del 10.10.10.10/24 dev $DUMMY || true" |
| 389 | + ] |
| 390 | + }, |
| 391 | + { |
| 392 | + "id": "1f1f", |
| 393 | + "name": "Test ETS's enqueue reentrant behaviour with netem", |
| 394 | + "category": [ |
| 395 | + "qdisc", |
| 396 | + "ets" |
| 397 | + ], |
| 398 | + "plugins": { |
| 399 | + "requires": "nsPlugin" |
| 400 | + }, |
| 401 | + "setup": [ |
| 402 | + "$IP link set dev $DUMMY up || true", |
| 403 | + "$IP addr add 10.10.10.10/24 dev $DUMMY || true", |
| 404 | + "$TC qdisc add dev $DUMMY handle 1:0 root ets bands 2", |
| 405 | + "$TC class replace dev $DUMMY parent 1:0 classid 1:1 ets quantum 1500", |
| 406 | + "$TC qdisc add dev $DUMMY parent 1:1 handle 2:0 netem duplicate 100%", |
| 407 | + "$TC filter add dev $DUMMY parent 1:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:1" |
| 408 | + ], |
| 409 | + "cmdUnderTest": "ping -c 1 -I $DUMMY 10.10.10.1 > /dev/null || true", |
| 410 | + "expExitCode": "0", |
| 411 | + "verifyCmd": "$TC -j -s class show dev $DUMMY", |
| 412 | + "matchJSON": [ |
| 413 | + { |
| 414 | + "class": "ets", |
| 415 | + "handle": "1:1", |
| 416 | + "stats": { |
| 417 | + "bytes": 196, |
| 418 | + "packets": 2 |
| 419 | + } |
| 420 | + } |
| 421 | + ], |
| 422 | + "matchCount": "1", |
| 423 | + "teardown": [ |
| 424 | + "$TC qdisc del dev $DUMMY handle 1:0 root", |
| 425 | + "$IP addr del 10.10.10.10/24 dev $DUMMY || true" |
| 426 | + ] |
| 427 | + }, |
| 428 | + { |
| 429 | + "id": "5e6d", |
| 430 | + "name": "Test QFQ's enqueue reentrant behaviour with netem", |
| 431 | + "category": [ |
| 432 | + "qdisc", |
| 433 | + "qfq" |
| 434 | + ], |
| 435 | + "plugins": { |
| 436 | + "requires": "nsPlugin" |
| 437 | + }, |
| 438 | + "setup": [ |
| 439 | + "$IP link set dev $DUMMY up || true", |
| 440 | + "$IP addr add 10.10.10.10/24 dev $DUMMY || true", |
| 441 | + "$TC qdisc add dev $DUMMY handle 1:0 root qfq", |
| 442 | + "$TC class replace dev $DUMMY parent 1:0 classid 1:1 qfq weight 100 maxpkt 1500", |
| 443 | + "$TC qdisc add dev $DUMMY parent 1:1 handle 2:0 netem duplicate 100%", |
| 444 | + "$TC filter add dev $DUMMY parent 1:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:1" |
| 445 | + ], |
| 446 | + "cmdUnderTest": "ping -c 1 -I $DUMMY 10.10.10.1 > /dev/null || true", |
| 447 | + "expExitCode": "0", |
| 448 | + "verifyCmd": "$TC -j -s qdisc ls dev $DUMMY handle 1:0", |
| 449 | + "matchJSON": [ |
| 450 | + { |
| 451 | + "kind": "qfq", |
| 452 | + "handle": "1:", |
| 453 | + "bytes": 196, |
| 454 | + "packets": 2 |
| 455 | + } |
| 456 | + ], |
| 457 | + "matchCount": "1", |
| 458 | + "teardown": [ |
| 459 | + "$TC qdisc del dev $DUMMY handle 1:0 root", |
| 460 | + "$IP addr del 10.10.10.10/24 dev $DUMMY || true" |
| 461 | + ] |
| 462 | + }, |
| 463 | + { |
| 464 | + "id": "bf1d", |
| 465 | + "name": "Test HFSC's enqueue reentrant behaviour with netem", |
| 466 | + "category": [ |
| 467 | + "qdisc", |
| 468 | + "hfsc" |
| 469 | + ], |
| 470 | + "plugins": { |
| 471 | + "requires": "nsPlugin" |
| 472 | + }, |
| 473 | + "setup": [ |
| 474 | + "$IP link set dev $DUMMY up || true", |
| 475 | + "$IP addr add 10.10.10.10/24 dev $DUMMY || true", |
| 476 | + "$TC qdisc add dev $DUMMY handle 1:0 root hfsc", |
| 477 | + "$TC class add dev $DUMMY parent 1:0 classid 1:1 hfsc ls m2 10Mbit", |
| 478 | + "$TC qdisc add dev $DUMMY parent 1:1 handle 2:0 netem duplicate 100%", |
| 479 | + "$TC filter add dev $DUMMY parent 1:0 protocol ip prio 1 u32 match ip dst 10.10.10.1/32 flowid 1:1", |
| 480 | + "$TC class add dev $DUMMY parent 1:0 classid 1:2 hfsc ls m2 10Mbit", |
| 481 | + "$TC qdisc add dev $DUMMY parent 1:2 handle 3:0 netem duplicate 100%", |
| 482 | + "$TC filter add dev $DUMMY parent 1:0 protocol ip prio 2 u32 match ip dst 10.10.10.2/32 flowid 1:2", |
| 483 | + "ping -c 1 10.10.10.1 -I$DUMMY > /dev/null || true", |
| 484 | + "$TC filter del dev $DUMMY parent 1:0 protocol ip prio 1", |
| 485 | + "$TC class del dev $DUMMY classid 1:1" |
| 486 | + ], |
| 487 | + "cmdUnderTest": "ping -c 1 10.10.10.2 -I$DUMMY > /dev/null || true", |
| 488 | + "expExitCode": "0", |
| 489 | + "verifyCmd": "$TC -j -s qdisc ls dev $DUMMY handle 1:0", |
| 490 | + "matchJSON": [ |
| 491 | + { |
| 492 | + "kind": "hfsc", |
| 493 | + "handle": "1:", |
| 494 | + "bytes": 392, |
| 495 | + "packets": 4 |
| 496 | + } |
| 497 | + ], |
| 498 | + "matchCount": "1", |
| 499 | + "teardown": [ |
| 500 | + "$TC qdisc del dev $DUMMY handle 1:0 root", |
| 501 | + "$IP addr del 10.10.10.10/24 dev $DUMMY || true" |
| 502 | + ] |
| 503 | + }, |
| 504 | + { |
| 505 | + "id": "7c3b", |
| 506 | + "name": "Test nested DRR's enqueue reentrant behaviour with netem", |
| 507 | + "category": [ |
| 508 | + "qdisc", |
| 509 | + "drr" |
| 510 | + ], |
| 511 | + "plugins": { |
| 512 | + "requires": "nsPlugin" |
| 513 | + }, |
| 514 | + "setup": [ |
| 515 | + "$IP link set dev $DUMMY up || true", |
| 516 | + "$IP addr add 10.10.10.10/24 dev $DUMMY || true", |
| 517 | + "$TC qdisc add dev $DUMMY handle 1:0 root drr", |
| 518 | + "$TC class add dev $DUMMY parent 1:0 classid 1:1 drr", |
| 519 | + "$TC filter add dev $DUMMY parent 1:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 1:1", |
| 520 | + "$TC qdisc add dev $DUMMY handle 2:0 parent 1:1 drr", |
| 521 | + "$TC class add dev $DUMMY classid 2:1 parent 2:0 drr", |
| 522 | + "$TC filter add dev $DUMMY parent 2:0 protocol ip prio 1 u32 match ip protocol 1 0xff flowid 2:1", |
| 523 | + "$TC qdisc add dev $DUMMY parent 2:1 handle 3:0 netem duplicate 100%" |
| 524 | + ], |
| 525 | + "cmdUnderTest": "ping -c 1 -I $DUMMY 10.10.10.1 > /dev/null || true", |
| 526 | + "expExitCode": "0", |
| 527 | + "verifyCmd": "$TC -j -s qdisc ls dev $DUMMY handle 1:0", |
| 528 | + "matchJSON": [ |
| 529 | + { |
| 530 | + "kind": "drr", |
| 531 | + "handle": "1:", |
| 532 | + "bytes": 196, |
| 533 | + "packets": 2 |
| 534 | + } |
| 535 | + ], |
| 536 | + "matchCount": "1", |
| 537 | + "teardown": [ |
| 538 | + "$TC qdisc del dev $DUMMY handle 1:0 root", |
| 539 | + "$IP addr del 10.10.10.10/24 dev $DUMMY || true" |
| 540 | + ] |
355 | 541 | }
|
356 | 542 | ]
|
0 commit comments