Add L3VNI DCI MAC move test cases (L3VNI_dci:59,60,62,63)#17
Open
Add L3VNI DCI MAC move test cases (L3VNI_dci:59,60,62,63)#17
Conversation
- Add get_l3vni_mac_move_params() helper in vxlan_helper.py for cross-VLAN host mobility endpoint generation (VLAN 11 host, VLAN 13 source, VRF 101) - Add _get_dci_l3vni_mac_move_cfg() config function in test_vxlan_dci.py - Add verify_l3vni_mac_move_dci() 9-phase MAC move verification method reusing the pattern from verify_mac_move_dci for L3VNI routing - Add get_l3vni_stream_handles_dci() for cross-VLAN IXIA stream creation - Add 4 test cases in TestVxlanDCIBase: - test_base_dci_l3vni_mac_move_within_dc (L3VNI_dci:59) - test_base_dci_l3vni_mac_move_across_dci (L3VNI_dci:60) - test_base_dci_l3vni_mac_move_orphan_to_mh (L3VNI_dci:62) - test_base_dci_l3vni_mac_move_mh_to_mh (L3VNI_dci:63)
🤖 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
TestVxlanDCIBasecovering cross-VLAN (L3-routed) MAC move scenarios across a 3-DC EVPN-VXLAN fabric. A helper function is added tovxlan_helper.pyfor L3VNI endpoint parameter generation.Key difference from existing L2 MAC move tests: Traffic source is on VLAN 13 and host is on VLAN 11, both in VRF 101, so traffic is routed via L3VNI rather than bridged via L2VNI.
Type of change
Back port request
Approach
What is the motivation for this PR?
Enable L3VNI_dci:59, L3VNI_dci:60, L3VNI_dci:62, L3VNI_dci:63 from the DCI Solution Testplan, covering L3VNI host mobility with cross-subnet traffic verification.
How did you do it?
vxlan_helper.py:get_l3vni_mac_move_params()— generates IP/MAC/gateway parameters for cross-VLAN MAC move tests (host on VLAN 11, source on VLAN 13, VRF 101). Includes VRF-VLAN binding validation against the topology config.test_vxlan_dci.py:_get_dci_l3vni_mac_move_cfg()module-level config function that merges L3VNI params with burst/rate settings from the base MAC move config.TestVxlanDCIBasefor TGEN handle resolution, traffic send/stop, MAC diagnostic, and cleanup.get_l3vni_stream_handles_dci()— creates IXIA device groups on VLAN 11 (dest1/dest2) and VLAN 13 (source), builds two traffic streams for routed L3 traffic.verify_l3vni_mac_move_dci()— 9-phase MAC mobility verification following the same pattern asverify_mac_move_dci: learn → verify MAC → traffic → move → verify seq=1 → traffic → move back → verify seq=2 → traffic.test_base_dci_l3vni_mac_move_within_dctest_base_dci_l3vni_mac_move_across_dcitest_base_dci_l3vni_mac_move_orphan_to_mhtest_base_dci_l3vni_mac_move_mh_to_mhHow did you verify/test it?
python3 -m py_compilepasses for both files.Traffic routing assumption: The test creates two streams (
src→dest1_port,src→dest2_port) and usesvalidate_statsto check which port receives traffic. For L3-routed traffic, the fabric routes based on the host's Type-2 EVPN route — reviewer should confirm that IXIAvalidate_statscorrectly reports rx stats on the port where the routed packet is delivered, even though the stream's configuredemulation_dst_handleis a raw port handle.IP/MAC address range: Host IPs use
.51/.52on VLAN 11 (80.11.0.51/52) and source uses.51on VLAN 13 (80.13.0.51). MACs use02:00:00:{04|06}:{0b|0d}:{51|52}scheme. Verify these don't collide with existing SAG host device groups (range 10–30) or other test streams.Code duplication: Helper methods (
_l3vni_get_first_orphan_handle,_l3vni_get_first_pc_handle, etc.) are structurally similar to counterparts inTestVxlanDciMacMoveTriggers. This was done to keepTestVxlanDCIBaseself-contained. Consider whether refactoring into shared module-level functions is preferred.Hardcoded node names in
move_config(e.g.,leaf0_dc1,leaf2_dc1) — matches existing patterns inTestVxlanDciMacMoveTriggersbut should be confirmed against the testbed topology.Any platform specific information?
DCI topology with 3 datacenters and IXIA traffic generation required.
Supported testbed topology if it's a new test case?
3-DC EVPN-VXLAN DCI topology (DC1: 4 leafs + 2 spines + 2 BGW spines, DC2: 2 leafs + 2 BGW spines, DC3: 1 leaf + 1 BGW spine) with IXIA/IxNetwork TGEN.
Documentation
N/A — test cases follow existing patterns documented in the DCI Solution Testplan.
Link to Devin session: https://cisco-demo.devinenterprise.com/sessions/0b27f9d58262480bb0754f522f75c69d
Requested by: @bpar9