Implementation Plan: Linux Bridge + eBPF Integration#2715
Open
yueguobin wants to merge 14 commits into
Open
Conversation
Add comprehensive roadmap for migrating GNS3 from ubridge-based networking to a hybrid Linux bridge + eBPF + Containerlab architecture. Key objectives: - 5-10x performance improvement for local connections - Access to containerlab's rich network device ecosystem - Kernel-space packet processing with eBPF - Enhanced CI/CD capabilities The roadmap includes: - Network backend abstraction layer design - Hybrid Linux Bridge + Ubridge UDP architecture for multi-compute scenarios - eBPF integration for high-performance packet filtering - Containerlab interoperability - Performance expectations and success metrics This proposal serves as a technical guide for future network architecture evolution in GNS3 3.0+. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add comprehensive technical details addressing production deployment concerns: 1. eBPF Hot-Loading Design - Implement eBPF Maps-based dynamic parameter control - Enable real-time GUI adjustments (<1ms response time) - Eliminate program reload overhead 2. Linux Bridge MTU Optimization - Calculate optimal MTU for UDP tunnel encapsulation - Prevent fragmentation with automatic MTU adjustment (1450 bytes) - Performance comparison: 1.2 Gbps → 2.0 Gbps 3. Containerlab Bridge Synchronization - Compare veth pair vs Open vSwitch approaches - Recommend OVS for unified network fabric - Simplify management with centralized configuration 4. eBPF Security and Isolation - Implement privileged proxy architecture - Restrict capabilities to CAP_BPF only - Add seccomp filtering and namespace isolation 5. Real-Time Performance Monitoring - Leverage eBPF for zero-overhead traffic statistics - Enable sub-100ms GUI updates - Provide bandwidth, packet rate, and drop rate visualization These considerations address critical production requirements including performance optimization, security hardening, and operational excellence. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Create Chinese translation (linux-bridge-ebpf-containerlab-integration_zh.md) - Add Creative Commons BY-SA 4.0 license to both versions - Include proper attribution and licensing terms - Provide bilingual documentation for broader accessibility The Chinese version maintains all technical diagrams, tables, and architecture descriptions while translating content for Chinese-speaking developers and contributors. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Remove redundant Creative Commons website links - Keep only the link to ../LICENSE for full terms - Maintain consistency between English and Chinese versions - Reduce duplication as LICENSE file already contains complete CC BY-SA 4.0 text This makes the documents cleaner and avoids maintaining duplicate license information across multiple files. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Member
|
Also, some ideas in #2498 |
…tion details Add node type adaptation strategy, controller refactoring requirements, network namespace handling, eBPF build pipeline, and containerlab lifecycle management. Reframe performance claims as design targets. Expand risk assessment with codebase-specific risks. Update dependencies. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Add Docker-First POC subsection to Phase 1 with rationale, scope, success criteria, and exit gate. Strengthen references in executive summary and implementation priority. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Convert from RFC proposal to implementation plan - Fix docker_vm.py:1112 -> 1132 (TAP creation line reference) - Fix controller/link.py:69 -> 70 (class Link offset) - Add 'current architecture' baseline section - Document Docker's unique ubridge commands (set_mac_addr, move_to_ns) - Add cleanup/teardown considerations (TAP leakage, _bridges set) - Add node type connection pattern groups (TAP vs UDP tunnel vs Ethernet) - Add IOU's different adapter_add_nio_binding signature - Add BANNED_PORTS, suspend override, capture side selection details - Remove Containerlab integration (out of scope) - Reduce from 4 phases to 3 phases - Version 1.1, status: Implementation Plan
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.
Overview
Implementation plan for migrating GNS3 from ubridge-based networking to a hybrid Linux bridge + eBPF architecture.
Status: Revised after full codebase audit — all line references, architecture claims, and node-type adaptation details validated against actual code.
Key Changes from RFC v1.1
Based on codebase audit, the plan has been corrected to reflect reality:
Fixed Inaccuracies
docker_vm.py:1112→ corrected to 1132 (TAP creation, not container deletion)controller/link.py:69→ corrected to 70 (class Link offset)docker set_mac_addr,docker move_to_ns) that have no Linux bridge equivalentadapter_add_nio_binding(adapter_number, port_number, nio)signatureAdded Missing Details
_bridgesset leakage)tap-gns3-e{index}, 0-4095 scan)Scope Reduction
Phase Plan
View full document