net, evpn: add routed L3 connectivity tests#4776
net, evpn: add routed L3 connectivity tests#4776servolkov wants to merge 1 commit intoRedHatQE:mainfrom
Conversation
Add L3 endpoint emulation on the external FRR pod: VRF + SVI on the shared bridge, BGP VRF config for Type-5 route advertisement, IP forwarding, and route convergence wait before traffic. Implement stretched L3 connectivity and live migration tests. Make BGP ASN constants public in bgp.py (CLUSTER_FRR_ASN, EXTERNAL_FRR_ASN) for reuse by EVPN L3 FRR configuration. Signed-off-by: Sergei Volkov <sevolkov@redhat.com> Assisted-by: Claude Opus 4.6 <noreply@anthropic.com>
|
ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (4)
📝 WalkthroughWalkthroughThis PR adds Layer 3 routed EVPN endpoint support to the EVPN connectivity test suite. It introduces L3 infrastructure deployment functions that create Linux VRF/SVI/veth pairs with FRR BGP configuration inside the external FRR pod, defines L3-specific network constants, refactors BGP ASN constants for better visibility, creates test fixtures that wire endpoints to VM workloads, and implements two previously-stubbed routed L3 connectivity tests including live-migration validation. ChangesL3 EVPN Endpoint Support
🎯 3 (Moderate) | ⏱️ ~22 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Report bugs in Issues Welcome! 🎉This pull request will be automatically processed with the following features: 🔄 Automatic Actions
📋 Available CommandsPR Status Management
Review & Approval
Testing & Validation
Container Operations
Cherry-pick Operations
Label Management
✅ Merge RequirementsThis PR will be automatically approved when the following conditions are met:
📊 Review ProcessApprovers and ReviewersApprovers:
Reviewers:
Available Labels
AI Features
💡 Tips
For more information, please refer to the project documentation or contact the maintainers. |
|
/verified |
Test execution plan request detailsCRITICAL: You MUST post an inline review comment on the first changed line of the first file. As an expert software testing engineer, analyze all modified files in this PR and create a targeted test execution plan. Analysis Requirements:
Your deliverable: Test Execution Plan
Guidelines:
Hardware-Related Checks (SR-IOV, GPU, DPDK): When PR modifies fixtures for hardware-specific resources:
CRITICAL WORKFLOW COMPLETION RULES: When responding to this test execution plan request, you MUST follow these rules EXACTLY:
ABSOLUTE PROHIBITIONS (violating these creates empty/meaningless reviews):
Remember: The pull request review is visible to users. Additional comments are redundant noise. CRITICAL: Before setting "Run smoke tests: True", you MUST use shell scripts to: |
|
Tip For best results, initiate chat on the files or code changes. 🧩 Analysis chain🏁 Script executed: Length of output: 15542 🏁 Script executed: Length of output: 676 🏁 Script executed: Length of output: 593 🏁 Script executed: Length of output: 11 |
EdDev
left a comment
There was a problem hiding this comment.
Very nice!
See inline about a potential problem, take it into account, although I think you intend to use this only for BM.
Feel free to resolve if you know about this.
/approve
| ) -> list[str]: | ||
| return [ | ||
| "sysctl -w net.ipv4.ip_forward=1", | ||
| "sysctl -w net.ipv6.conf.all.forwarding=1", |
There was a problem hiding this comment.
This may fail on single stack IPv4 setups (e.g. PSI). But I am not 100% sure,.
There was a problem hiding this comment.
single-stack means CNI configuration, not kernel limitation, right? the current setup is Linux kernel-level, the change is harmless on single-stack clusters per my understanding.
But if we have kernel-level limitations on single-stack clusters, so...
BTW, bgp/evpn tests work only on BM environments.
There was a problem hiding this comment.
I asked Claude to explore our deployment scripts, short recap: "Findings: IPv6 is not disabled at boot time for IPv4 single-stack clusters. IPv6 remains enabled at the kernel level on nodes even in IPv4 single-stack clusters."
Anyway, in a follow-up I will adjust the code to avoid future possible discrepancies.
What this PR does / why we need it:
Add L3 endpoint emulation on the external FRR pod: VRF + SVI on the shared bridge, BGP VRF config for Type-5 route advertisement, IP forwarding, and route convergence wait before traffic.
Implement stretched L3 connectivity and live migration tests.
Make BGP ASN constants public in bgp.py (CLUSTER_FRR_ASN, EXTERNAL_FRR_ASN) for reuse by EVPN L3 FRR configuration.
Which issue(s) this PR fixes:
Special notes for reviewer:
jira-ticket: https://redhat.atlassian.net/browse/CNV-84400
Assisted-by: Claude Opus 4.6 noreply@anthropic.com
Summary by CodeRabbit
Tests
Chores