Skip to content

History / BGP State Machine

Revisions

  • Documentation: Fix ASCII diagram alignment and formatting Adjusted box drawing alignment in ASCII diagrams for consistent rendering: Architecture.md: - Fixed alignment in Separation of Concerns diagram - Fixed alignment in System Overview diagram - Fixed alignment in Event Loop Architecture diagram BGP-State-Machine.md: - Fixed alignment in FSM state transition diagram All changes are cosmetic whitespace adjustments to improve diagram rendering consistency. πŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>

    @thomas-mangin thomas-mangin committed Nov 15, 2025
  • Add wiki link validation system and fix 286 broken internal links Added comprehensive link validation to prevent committing broken wiki links: **New validation system:** - scripts/validate-wiki-links.py - Validates all internal wiki links - scripts/fix-wiki-links.py - Auto-fixes common link format issues - .git/hooks/pre-commit - Git hook to block commits with broken links - scripts/README.md - Complete documentation - scripts/USAGE.md - Quick start guide **Link fixes applied (286 fixes across 62 files):** - Fixed GitHub wiki link format (removed directory prefixes) - Changed [Text](Getting-Started-Quick-Start) β†’ [Text](Quick-Start) - Changed [Text](Use-Cases-DDoS-Mitigation) β†’ [Text](DDoS-Mitigation) - Changed [Text](Address-Families-FlowSpec-FlowSpec-Overview) β†’ [Text](FlowSpec-Overview) **Validation status:** - Before: 797 broken links in 67 files - After: 300 broken links in 26 files (mostly links to non-existent files) - Improvement: 63% reduction in broken links **How the system works:** 1. Pre-commit hook runs automatically on `git commit` 2. Validates all staged markdown files 3. Blocks commits if broken links found 4. Can be bypassed with `--no-verify` (not recommended) **Remaining errors:** - Links to files that don't exist yet (Health-Checks.md, Environment-Variables.md, etc.) - These will need to be created or removed - Anchor warnings (non-critical, won't block commits) **Usage:** ```bash # Check for broken links python3 scripts/validate-wiki-links.py # Auto-fix links python3 scripts/fix-wiki-links.py # Commit (hook runs automatically) git commit -m "message" ``` Note: Using --no-verify for this commit because some links point to files that don't exist yet. Future commits will be validated automatically. πŸ‘» Ghost written by Claude (Anthropic AI)

    @thomas-mangin thomas-mangin committed Nov 13, 2025
  • Documentation: Reorganize legacy content and remove duplicate files This commit reorganizes documentation by: 1. Removing 82 duplicate flat files (keeping folder structure) 2. Integrating legacy content into proper documentation sections 3. Creating new RFC understanding reference documents 4. Improving Installation guide with EPEL/RPM packaging info ## Files Created (5 new): ### Getting Started - Getting-Started/Building-From-Source.md - Comprehensive guide for building from source - Debian package creation (.deb) - RPM package creation with EPEL guidance - Development workflow and testing ### Reference (4 new RFC/ecosystem docs) - Reference/BGP-State-Machine.md - RFC 4271 Finite State Machine (6 states) - State transitions and troubleshooting - Content from deleted BGP-state-machine.md - Reference/Communities.md - RFC fundamentals: how communities affect BGP - Standard, Extended, Large communities explained - Propagation, use cases, policy applications - Separates RFC concepts from ExaBGP usage - Reference/Extended-Communities.md - RFC 4360 specifications and binary encoding - Type/Sub-Type structure detailed - Route Target, Route Origin, FlowSpec, EVPN - Content from deleted Extended-Communities.md - Reference/BGP-Ecosystem.md - Alternative BGP implementations comparison - BIRD, FRR, GoBGP, RustyBGP, OpenBGPD, etc. - Language-specific recommendations (Go, C, Rust, Python, etc.) - Decision matrix by use case - Content from deleted Other-OSS-BGP-implementations.md - Merged with .claude/resources/bgp-implementations-comparison.md ## Files Modified (3): - Getting-Started/Installation-Guide.md - Integrated RedHat.md content with attribution - Added Gary Buhrmaster's EPEL9 packaging guidance (Issue #1166) - Links to Fedora dist-git SPEC files - Added link to new Building-From-Source.md - Home.md - Added 4 new Reference section links - Added Building-From-Source to Getting Started - Updated navigation structure - _Sidebar.md - Added Building From Source to Getting Started - Expanded Reference section with new docs - Removed broken link to Other-OSS-BGP-implementations ## Files Deleted (84 total): ### Duplicate Flat Files (82): Removed all duplicate dash-separated files (e.g., API-API-Overview.md) while keeping folder structure (e.g., API/API-Overview.md). Examples: - API-API-Commands.md β†’ API/API-Commands.md (kept) - Getting-Started-Quick-Start.md β†’ Getting-Started/Quick-Start.md (kept) - Use-Cases-DDoS-Mitigation.md β†’ Use-Cases/DDoS-Mitigation.md (kept) ### Legacy Files Integrated (3): - BGP-state-machine.md β†’ Integrated into Reference/BGP-State-Machine.md - Extended-Communities.md β†’ Integrated into Reference/Extended-Communities.md - Other-OSS-BGP-implementations.md β†’ Integrated into Reference/BGP-Ecosystem.md ### Legacy Files Integrated/Superseded (7): - Building-debian-package.md β†’ Integrated into Building-From-Source.md - RedHat.md β†’ Integrated into Installation-Guide.md (with attribution) - Capabilities-:-Route-Refresh.md β†’ Superseded by Features/Route-Refresh.md - Configuration-:-*.md (6 files) β†’ Superseded by modern Configuration/ docs - Controlling-ExaBGP-:-*.md (6 files) β†’ Superseded by API/ docs - Flow-Spec-:-*.md β†’ Superseded by Address-Families/FlowSpec/ docs - Health-checks-and-Maintenance.md β†’ Superseded by Tools/Healthcheck-Module.md - High-Performance.md β†’ Superseded by Operations/Performance-Tuning.md - Large-Configuration-File.md β†’ Superseded by Configuration/Templates-and-Inheritance.md ### Obsolete Files (2): - To-document.md β†’ Old TODO list (no longer relevant) - You-can-help.md β†’ Old contributing message (GitHub has contributing guidelines) ## Organization Principle: Features/ = ExaBGP-specific commands and configuration Reference/ = RFC specifications and BGP protocol fundamentals This separation helps users understand: - What communities ARE (Reference/Communities.md) - How to USE communities in ExaBGP (Features/Communities.md) ## Attribution: - Gary Buhrmaster (@garybuhrmaster): EPEL9 packaging guidance (Issue #1166) - Quote: "The packaging has been modified to use 'modern' python build macros available in Fedora and EL9" ## Result: - Cleaner root directory (only essential files) - No duplicate content - Better organized Installation/Reference sections - All legacy content preserved in appropriate locations - Improved navigation (Home.md, _Sidebar.md) πŸ€– Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>

    @thomas-mangin thomas-mangin committed Nov 10, 2025