Add L3VNI host mobility test cases (L3VNI_dci:59, 60, 62, 63)#16
Open
Add L3VNI host mobility test cases (L3VNI_dci:59, 60, 62, 63)#16
Conversation
- Add verify_l3vni_host_mobility_dci() helper method combining MAC move mechanics with L3VNI cross-DC traffic verification (10-phase pattern) - Add test_base_dci_l3vni_host_mobility_within_dc (L3VNI_dci:59) - Add test_base_dci_l3vni_host_mobility_across_dci (L3VNI_dci:60) - Add test_base_dci_l3vni_host_mobility_orphan_to_mh (L3VNI_dci:62) - Add test_base_dci_l3vni_host_mobility_mh_to_mh_across_dci (L3VNI_dci:63) - Add new move_dir configurations for L3VNI scenarios - Update _get_dci_mh_expected_nodes for new move directions
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description of PR
Summary: Adds four new L3VNI host mobility test cases to the VXLAN DCI test suite, covering host movement scenarios with L3VNI cross-DC traffic validation.
New test cases:
test_base_dci_l3vni_host_mobility_within_dctest_base_dci_l3vni_host_mobility_across_dcitest_base_dci_l3vni_host_mobility_orphan_to_mhtest_base_dci_l3vni_host_mobility_mh_to_mh_across_dciKey addition:
verify_l3vni_host_mobility_dci()— a shared 10-phase helper that combines the existing MAC move infrastructure with L3VNI traffic verification (learn → verify MAC → verify L3 traffic → move → verify MAC seq → verify L3 traffic → move back → verify MAC seq → verify L3 traffic → cleanup).Only
test_vxlan_dci.pyis modified. No changes tovxlan_helper.py— existing helpers (verify_mac_seq,verify_traffic, etc.) are sufficient.Type of change
Back port request
Approach
What is the motivation for this PR?
Enable L3VNI host mobility test coverage for the VXLAN DCI solution per the DCI Solution Testplan (L3VNI_dci:59, 60, 62, 63). These scenarios validate that L3VNI cross-DC traffic correctly converges to the new host location after MAC moves.
How did you do it?
move_direntries (l3vni_orphan_within_dc,l3vni_orphan_across_dc,l3vni_orphan_to_mh_within_dc,l3vni_mh_to_mh_across_dc) to themove_config,_MAC_SUFFIX, and_MOVE_BANDdictionaries to define node mappings, unique MAC addresses, and IP bands for each scenario._get_dci_mh_expected_nodes()to handle the new MH-related move directions.verify_l3vni_host_mobility_dci()following the existingverify_mac_move_dci()9-phase pattern, extending it with L3VNI traffic verification at phases 3, 6, and 9.How did you verify/test it?
python3 -m py_compilepasses (no syntax errors)flake8 --select=E9,F63,F7,F82shows only pre-existing F824 warnings (unused globals in the original code)l3vni_orphan_to_mh_within_dchasdest1_node == dest2_node == 'leaf0_dc1'— the move is from an orphan port to a PortChannel on the same leaf pair (differentiated bydest2_prefer_pc=True). Please confirm this matches the testplan intent for L3VNI_dci:62._MOVE_BANDspacing — values are50, 60, 70, 75. The last entry breaks the 10-octet spacing pattern. Please verify band 75 won't overlap with band 70 given the logic in_dci_mm_host_last_octets().All four tests use
host_type="mac+ipv4"— confirm this is correct for all L3VNI scenarios or whether any should usemac+ipv6.L3VNI_dci:59 (within-DC) uses
l3_traffic_scope='cross'— verify that cross-DC L3VNI streams are the correct traffic to validate for a within-DC host move.mm_handleskey access — The helper directly accesses keys likesrc1_stream_handle,dest1_handle,mm_hostwithout.get(). Ifget_stream_handles_dci()doesn't populate these for the new move directions, tests will hit KeyError at runtime.Any platform specific information?
Requires 3-DC EVPN-VXLAN topology with BGW spines and IXIA traffic generation (spytest framework).
Supported testbed topology if it's a new test case?
3-datacenter EVPN-VXLAN DCI topology (DC1: 4 leafs + 2 spines + 2 BGW spines, DC2: 2 leafs + 2 BGW spines, DC3: 1 leaf + 1 BGW spine).
Documentation
Test cases are documented in
DCI_Solution_Testplan.xlsx(L3VNI_dci:59, 60, 62, 63).Link to Devin session: https://cisco-demo.devinenterprise.com/sessions/61b3aeaa669d43f18dfd488a3991c980
Requested by: @bpar9