You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[voq] Test plan and testcase updates for multiasic (sonic-net#3463)
What is the motivation for this PR?
To run the init, neighbor and IP forwarding tests on chassis with multiasic linecards.
How did you do it?
Scripts in tests/voq were enhanced to handle multiasic cards:
All test cases were changed so that ASICs with no neighbors or router interfaces will be skipped.
The HIDE_INTERNAL route map is let in place and tests in ipfwd script that are affected by it are removed.
CLI and database checks where enhanced to look in the correct namespace on multiasic cards.
Other enhancements:
Neighbor script cleanup was enhanced be more robust when restoring configuration.
PTF port selection was centralized and now uses minigraph.
TTL checks were made optional for running ipfwd script on VS testbed.
Test plan was updated with these changes.
How did you verify/test it?
Ran test suite on VoQ chassis.
Co-authored-by: Tom Custodio <[email protected]>
Copy file name to clipboardExpand all lines: docs/testplan/Distributed-VoQ-Arch-test-plan.md
+15-90
Original file line number
Diff line number
Diff line change
@@ -378,40 +378,7 @@ will allow the tests to validate the various table deletes before the entries ar
378
378
379
379
### Test cases
380
380
381
-
#### Test Case 1. Neighbor established from a remote card.
382
-
383
-
##### Test Objective
384
-
Verify local neighbor behavior is correct when ARP/NDP request is triggered by a packet from a remote line card.
385
-
386
-
##### Test Steps
387
-
* Send ping to from linecard 1 to a VM attached to linecard 2. This will establish a local neighbor on linecard 2 and a remote neighbor on linecard 1.
388
-
389
-
* On linecard 2:
390
-
* Verify ASIC DB entries on local linecard.
391
-
* MAC address matches MAC of neighbor VM.
392
-
* Router interface OID matches back to the correct interface and port the neighbor was learned on.
393
-
* Verify on local linecard CLI, show arp/ndp, ip neigh commands.
394
-
* MAC address matches MAC of neighbor VM.
395
-
* Verify neighbor table in linecard appDB.
396
-
* MAC address matches MAC of neighbor VM.
397
-
398
-
* On supervisor card:
399
-
* Verify SYSTEM_NEIGH table in Chassis AppDB (redis-dump -h <ip> -p 6380 -d 12 on supervisor).
400
-
* Verify encap index and MAC address match between ASICDB the Chassis AppDB
401
-
402
-
* On linecard 1:
403
-
* Verify ASIC DB entries as a remote neighbor.
404
-
* Verify impose index=True in ASIC DB.
405
-
* Verify MAC address in ASIC DB is the remote neighbor mac.
406
-
* Verify encap index for ASIC DB entry matches Chassis App DB.
407
-
* Verify router interface OID matches the interface the neighbor was learned on.
408
-
* Verify on linecard CLI, show arp/ndp, ip neigh commands.
409
-
* For inband port, MAC should be inband port mac in kernel table and LC appDb.
410
-
* For inband vlan mode, MAC will be remote ASIC mac in kernel table and LC appdb.
411
-
* Verify neighbor table in linecard appdb.
412
-
* Verify static route in kernel with /32 for entry.
413
-
414
-
#### Test Case 2. Clear ARP, single address.
381
+
#### Test Case 1. Clear ARP, single address.
415
382
##### Test Objective
416
383
Verify tables, databases, and kernel routes are correctly deleted when a single neighbor adjacency is cleared.
417
384
##### Test Steps
@@ -428,7 +395,7 @@ Verify tables, databases, and kernel routes are correctly deleted when a single
428
395
* Repeat with IPv4, IPv6, dual-stack.
429
396
430
397
431
-
#### Test Case 3. Clear ARP table via sonic command.
398
+
#### Test Case 2. Clear ARP table via sonic command.
432
399
##### Test Objective
433
400
Verify tables, databases, and kernel routes are correctly deleted when the entire neighbor table is cleared.
434
401
##### Test Steps
@@ -446,41 +413,24 @@ Verify tables, databases, and kernel routes are correctly deleted when the entir
446
413
* Repeat with IPv4, IPv6, dual-stack.
447
414
448
415
449
-
#### Test Case 4. Front panel port link flap
416
+
#### Test Case 3. Front panel port link flap
450
417
##### Test Objective
451
-
Verify tables, databases, and kernel routes are correctly deleted when the front panel port flaps.
418
+
Verify tables, databases, and kernel routes are unaffected when the front panel port flaps and restores.
452
419
##### Test Steps
453
420
* Admin down interface on fanout to cause LOS on DUT.
454
421
* On local linecard:
455
-
* Verify ARP/NDP entries are removed from CLI for neighbors on down port.
456
-
* Verify table entries in ASIC, AppDb are removed for addresses on down port.
422
+
* Verify local interface is down, verify ARP is still present in local database.
457
423
* On Supervisor card:
458
-
* Verify Chassis App DB entry are removed for only the cleared address. Entries for addresses on other line cards
459
-
should still be present.
424
+
* Verify Chassis App DB entry are still present.
460
425
* On remote linecards:
461
-
* Verify table entries in ASICDB, APPDB, and host ARP table are removed for cleared addresses.
462
-
* Verify kernel routes for cleared address are deleted.
426
+
* Verify table entries in ASICDB, APPDB, and host ARP table are present for affected addresses.
427
+
* Verify kernel routes are present for affected addresses.
463
428
* Admin interface up, verify recreation after restarting traffic.
429
+
* Verify ARP entries on linecards and supervisors are still correct.
464
430
* Repeat with IPv4, IPv6, dual-stack.
465
431
466
432
467
-
#### Test Case 5. Gratuitous ARP - Previously Known IP
468
-
##### Test Objective
469
-
Verify tables, databases, and kernel routes are correctly updated when receiving a unsolicited ARP packet for a previously known IP address..
470
-
##### Test Steps
471
-
* Clear ARP table on a line card.
472
-
* Send unsolicited ARP packet into linecard for an IP that was known on that card and is now stale.
473
-
* On local linecard:
474
-
* Verify table entries in local ASIC, APP, host arp table are recreated.
475
-
* On supervisor card:
476
-
* Verify Chassis App DB entry is correct for the relearned address.
477
-
* On remote linecards:
478
-
* Verify table entries in remote hosts/ASICs in ASICDB, APPDB, and host ARP table are recreated.
479
-
* Verify kernel routes in remote hosts are still present.
480
-
* Verify that packets can be sent from local and remote linecards to learned address.
481
-
* Repeat with IPv4, IPv6, dual-stack.
482
-
483
-
#### Test Case 6. Gratuitous ARP - Known IP - Mac change
433
+
#### Test Case 4. Gratuitous ARP - Known IP - Mac change
484
434
##### Test Objective
485
435
Verify tables, databases, and kernel routes are correctly updated when a unsolicited ARP packet changes the MAC address of learned neighbor.
486
436
##### Test Steps
@@ -497,7 +447,7 @@ Verify tables, databases, and kernel routes are correctly updated when a unsolic
497
447
* Verify that packets can be sent from local and remote linecards to learned address.
498
448
* Repeat with IPv4, IPv6, dual-stack.
499
449
500
-
#### Test Case 7. ARP Request/Reply - Mac change
450
+
#### Test Case 5. ARP Request/Reply - Mac change
501
451
##### Test Objective
502
452
Verify tables, databases, and kernel routes are correctly updated when the MAC address of a neighbor changes and is updated via request/reply exchange.
503
453
##### Test Steps
@@ -514,7 +464,7 @@ Verify tables, databases, and kernel routes are correctly updated when the MAC a
514
464
* Verify that packets can be sent from local and remote linecards to the learned address.
515
465
* Repeat with IPv4, IPv6, dual-stack.
516
466
517
-
#### Test Case 8. Disruptive Events
467
+
#### Test Case 6. Disruptive Events
518
468
##### Test Objective
519
469
Verify port, router interface, and neighbor recovery after disruptive events.
520
470
##### Test Steps
@@ -570,6 +520,9 @@ Please reference the [T2 topology](https://github.com/Azure/sonic-mgmt/pull/2638
570
520
571
521
VMs attached to line card 1 and line card 2 will be used for this test.
572
522
DUT Port A&B are on line card 1, D is on line card 2.
523
+
524
+
The HIDE_INTERNAL route policy will prevent inband and interface address from being advertised to EBGP peers. Looback addresses will be used to test traffic flows across cards and VMs.
525
+
573
526
```
574
527
---------- DUT ----------
575
528
|--- LC1 ---|--- LC2 ---|
@@ -637,7 +590,6 @@ Verify the kernel route table is correct based on the topology.
637
590
* Verify routes for local inband interfaces are directly connected.
638
591
* Verify BGP established between line cards.
639
592
* Verify routes of remote linecard inband interfaces are connected via local linecard inband interface.
640
-
* Verify IP interface addresses on remote network ports have a next hop of their inband IP. On linecard 1, route 10.0.0.64/31 next hop is 133.133.133.5.
641
593
* Verify all learned prefixes from neighbors have their neighbors as next hop.
642
594
* Repeat for IPv4 only, IPv6 only, dual-stack.
643
595
@@ -647,9 +599,6 @@ Verify Host IP forwarding for IPv4 and IPv6 for various packet sizes and ttls to
647
599
##### Test Steps
648
600
* On linecard 1, send ping from:
649
601
* DUT IP interface A to DUT IP Interface B. (10.0.0.0 to 10.0.0.2)
650
-
* DUT IP interface A to DUT IP Interface D. (10.0.0.0 to 10.0.0.64)
651
-
* On linecard 2, send ping from:
652
-
* DUT IP interface D to DUT IP Interface A.
653
602
* Repeat for TTL 0,1,2,255
654
603
* Repeat for 64, 1500, 9100B packets
655
604
* Repeat for IPv6
@@ -660,13 +609,8 @@ Verify Host IP forwarding for IPv4 and IPv6 for various packet sizes and ttls to
660
609
##### Test Steps
661
610
* On linecard 1, send ping from:
662
611
* DUT IP Interface on port A to directly connected neighbor address. (10.0.0.0 to 10.0.0.1)
663
-
* DUT IP Interface A to neighbor address on port B. (10.0.0.0 to 10.0.0.3)
664
-
* DUT IP Interface A to neighbor address on port D. (10.0.0.0 to 10.0.0.65)
665
-
* On linecard 2, send ping from:
666
-
* DUT IP interface D to neighbor address on port A. (10.0.0.64 to 10.0.0.1)
667
612
* On Router 01T3, send ping from:
668
613
* Router IP interface to DUT address on port A. (10.0.0.1 to 10.0.0.0)
669
-
* Router IP interface to DUT address on port D. (10.0.0.1 to 10.0.0.64)
670
614
* Repeat for TTL 0,1,2,255
671
615
* Repeat for 64, 1500, 9100B packets
672
616
* Repeat for IPv6
@@ -677,13 +621,8 @@ Verify Host IP forwarding for IPv4 and IPv6 for various packet sizes and ttls to
677
621
##### Test Steps
678
622
* On linecard 1, send ping from:
679
623
* DUT IP Interface A to routed loopback address from router 01T3. (10.0.0.0 to 100.1.0.1)
680
-
* DUT IP Interface A to routed loopback address from router 02T3. (10.0.0.0 to 100.1.0.2)
681
-
* DUT IP Interface A to routed loopback address from router 01T1. (10.0.0.0 to 100.1.0.33)
682
-
* On linecard 2, send ping from:
683
-
* DUT IP interface D to routed loopback address from router 01T3. (200.0.0.1 to 100.1.0.1)
684
624
* On Router 01T3, send ping from:
685
625
* Router loopback interface to DUT address on port A. (100.1.0.1 to 10.0.0.0)
686
-
* Router loopback interface to DUT address on port D. (100.1.0.1 to 10.0.0.64)
687
626
* Repeat for TTL 0,1,2,255
688
627
* Repeat for 64, 1500, 9100B packets
689
628
* Repeat for IPv6
@@ -694,21 +633,7 @@ Verify IP connectivity over inband interfaces.
694
633
##### Test Steps
695
634
* On linecard 1 send ping from:
696
635
* Inband interface F0 to inband interface F1 (133.133.133.1 to 133.133.133.5)
697
-
* Inband interface F0 to interface D (133.133.133.1 to 10.0.0.64)
698
636
* Inband interface F0 to neighbor on port A (133.133.133.1 to 10.0.0.1)
699
-
* Inband interface F0 to neighbor on port D (133.133.133.1 to 10.0.0.65)
700
-
* Inband interface F0 to routed loopback from router 01T3 (133.133.133.1 to 100.1.0.1)
701
-
* Inband interface F0 to routed loopback from router 01T1 (133.133.133.1 to 100.1.0.33)
702
-
* On linecard 2, send ping from:
703
-
* Inband interface F1 to inband interface F0 (133.133.133.5 to 133.133.133.1)
704
-
* Inband interface F1 to interface D (133.133.133.5 to 10.0.0.64)
705
-
* Inband interface F1 to neighbor on port A (133.133.133.5 to 10.0.0.1)
706
-
* Inband interface F1 to neighbor on port D (133.133.133.5 to 10.0.0.65)
707
-
* Inband interface F1 to routed loopback from router 01T3 (133.133.133.5 to 100.1.0.1)
708
-
* Inband interface F1 to routed loopback from router 01T1 (133.133.133.5 to 100.1.0.33)
709
-
* On Router 01T3, send ping from:
710
-
* Router loopback interface to DUT inband address on linecard 1. (100.1.0.1 to 133.133.133.1)
711
-
* Router loopback interface to DUT inband address on linecard 2. (100.1.0.1 to 133.133.133.5)
0 commit comments