Skip to content

DOCUMENTATION PLAN

Thomas Mangin edited this page Nov 10, 2025 · 1 revision

ExaBGP Complete Documentation Overhaul Plan

Overview

Create comprehensive user documentation covering all tiers (beginner to advanced), organize 98 configuration examples within the wiki, and integrate everything with clear navigation.

Scope: All documentation lives in the wiki/ directory. The main README.md will be updated to link to the wiki. No separate etc/exabgp/README.md will be created - examples will be indexed in wiki/Reference/Examples-Index.md.

File Structure to Create

wiki/
β”œβ”€β”€ Home.md                                    # Wiki homepage with navigation
β”œβ”€β”€ Getting-Started/
β”‚   β”œβ”€β”€ Quick-Start.md                        # 5-minute getting started
β”‚   β”œβ”€β”€ Installation-Guide.md                 # Detailed installation
β”‚   β”œβ”€β”€ First-BGP-Session.md                  # Step-by-step first session
β”‚   β”œβ”€β”€ Architecture-Overview.md              # ExaBGP architecture explained
β”‚   └── Common-Pitfalls.md                    # Troubleshooting for beginners
β”œβ”€β”€ Configuration/
β”‚   β”œβ”€β”€ Configuration-Syntax.md               # File format & syntax
β”‚   β”œβ”€β”€ Neighbor-Configuration.md             # Neighbor settings reference
β”‚   β”œβ”€β”€ Static-Routes.md                      # Route announcement
β”‚   β”œβ”€β”€ Templates-and-Inheritance.md          # Template system
β”‚   β”œβ”€β”€ Environment-Variables.md              # Complete env var reference
β”‚   β”œβ”€β”€ Signal-Handling.md                    # Signal reference
β”‚   └── Directives-Reference.md               # A-Z directive listing
β”œβ”€β”€ API/
β”‚   β”œβ”€β”€ API-Overview.md                       # API concepts
β”‚   β”œβ”€β”€ Text-API-Reference.md                 # Text format complete reference
β”‚   β”œβ”€β”€ JSON-API-Reference.md                 # JSON format complete reference
β”‚   β”œβ”€β”€ Writing-API-Programs.md               # Best practices
β”‚   β”œβ”€β”€ API-Commands.md                       # All commands documented
β”‚   β”œβ”€β”€ Error-Handling.md                     # API error handling
β”‚   └── Production-Best-Practices.md          # Production deployment
β”œβ”€β”€ Address-Families/
β”‚   β”œβ”€β”€ IPv4-IPv6-Unicast.md                  # Basic unicast
β”‚   β”œβ”€β”€ FlowSpec/
β”‚   β”‚   β”œβ”€β”€ FlowSpec-Overview.md              # Introduction
β”‚   β”‚   β”œβ”€β”€ Match-Conditions.md               # All match types
β”‚   β”‚   β”œβ”€β”€ Actions-Reference.md              # All actions
β”‚   β”‚   └── DDoS-Mitigation.md                # DDoS use case
β”‚   β”œβ”€β”€ L3VPN/
β”‚   β”‚   β”œβ”€β”€ VPN-Overview.md                   # L3VPN introduction
β”‚   β”‚   β”œβ”€β”€ Route-Distinguishers.md           # RD types explained
β”‚   β”‚   └── Route-Targets.md                  # RT usage
β”‚   β”œβ”€β”€ EVPN/
β”‚   β”‚   β”œβ”€β”€ EVPN-Overview.md                  # EVPN introduction
β”‚   β”‚   β”œβ”€β”€ Route-Types.md                    # EVPN route types 1-5
β”‚   β”‚   └── MAC-IP-Advertisement.md           # Practical guide
β”‚   β”œβ”€β”€ BGP-LS/
β”‚   β”‚   β”œβ”€β”€ BGP-LS-Overview.md                # Link-State introduction
β”‚   β”‚   β”œβ”€β”€ Topology-Collection.md            # Receive-only mode
β”‚   β”‚   └── Attributes-Reference.md           # BGP-LS attributes
β”‚   β”œβ”€β”€ VPLS.md                               # VPLS/L2VPN guide
β”‚   β”œβ”€β”€ MVPN.md                               # Multicast VPN guide
β”‚   └── SRv6-and-MUP.md                       # Segment Routing
β”œβ”€β”€ Use-Cases/
β”‚   β”œβ”€β”€ DDoS-Mitigation.md                    # Complete DDoS walkthrough
β”‚   β”œβ”€β”€ Anycast-Management.md                 # Anycast patterns
β”‚   β”œβ”€β”€ Service-High-Availability.md          # HA with healthcheck
β”‚   β”œβ”€β”€ Cross-DC-Failover.md                  # Multi-DC patterns
β”‚   β”œβ”€β”€ BGP-LS-Visualization.md               # Topology collection
β”‚   β”œβ”€β”€ CDN-Route-Injection.md                # CDN use case
β”‚   └── Traffic-Engineering.md                # TE patterns
β”œβ”€β”€ Features/
β”‚   β”œβ”€β”€ Capabilities/
β”‚   β”‚   β”œβ”€β”€ ADD-PATH.md                       # Multi-path advertisement
β”‚   β”‚   β”œβ”€β”€ Graceful-Restart.md               # GR implementation
β”‚   β”‚   β”œβ”€β”€ Route-Refresh.md                  # Route refresh
β”‚   β”‚   β”œβ”€β”€ Extended-Message.md               # Large messages
β”‚   β”‚   └── Four-Byte-ASN.md                  # 4-byte ASN support
β”‚   β”œβ”€β”€ Communities/
β”‚   β”‚   β”œβ”€β”€ Standard-Communities.md           # RFC 1997
β”‚   β”‚   β”œβ”€β”€ Extended-Communities.md           # RFC 4360
β”‚   β”‚   └── Large-Communities.md              # RFC 8092
β”‚   β”œβ”€β”€ Attributes/
β”‚   β”‚   β”œβ”€β”€ Well-Known-Attributes.md          # Mandatory attributes
β”‚   β”‚   β”œβ”€β”€ Optional-Attributes.md            # Optional attributes
β”‚   β”‚   └── Generic-Attributes.md             # Generic attribute support
β”‚   └── Route-Reflection.md                   # IBGP route reflection
β”œβ”€β”€ Tools/
β”‚   β”œβ”€β”€ Healthcheck-Module.md                 # Built-in healthcheck
β”‚   β”œβ”€β”€ ExaBGP-CLI.md                         # CLI tool
β”‚   β”œβ”€β”€ Message-Decoder.md                    # Decode tool
β”‚   └── Configuration-Validator.md            # Validation
β”œβ”€β”€ Operations/
β”‚   β”œβ”€β”€ Deployment-Patterns.md                # Production deployment
β”‚   β”œβ”€β”€ Monitoring-and-Metrics.md             # Monitoring guide
β”‚   β”œβ”€β”€ Performance-Tuning.md                 # Optimization
β”‚   β”œβ”€β”€ Debugging-Guide.md                    # Debug methodology
β”‚   β”œβ”€β”€ Log-Analysis.md                       # Log interpretation
β”‚   β”œβ”€β”€ Security-Best-Practices.md            # Security hardening
β”‚   └── Capacity-Planning.md                  # Scaling guide
β”œβ”€β”€ Integration/
β”‚   β”œβ”€β”€ Docker-Deployment.md                  # Docker best practices
β”‚   β”œβ”€β”€ Kubernetes.md                         # K8s deployment
β”‚   β”œβ”€β”€ FRRouting-Integration.md              # FRR integration
β”‚   β”œβ”€β”€ BIRD-Integration.md                   # BIRD integration
β”‚   β”œβ”€β”€ Prometheus-Grafana.md                 # Monitoring setup
β”‚   └── Ansible-Automation.md                 # Automation examples
β”œβ”€β”€ Development/
β”‚   β”œβ”€β”€ Architecture.md                       # From CLAUDE.md
β”‚   β”œβ”€β”€ Contributing.md                       # Contribution guide
β”‚   β”œβ”€β”€ Testing.md                            # Test framework
β”‚   β”œβ”€β”€ Code-Structure.md                     # Codebase layout
β”‚   └── Extending-ExaBGP.md                   # Plugin development
β”œβ”€β”€ Reference/
β”‚   β”œβ”€β”€ Configuration-A-Z.md                  # All directives
β”‚   β”œβ”€β”€ API-Commands-A-Z.md                   # All API commands
β”‚   β”œβ”€β”€ Environment-Variables-A-Z.md          # All env vars
β”‚   β”œβ”€β”€ Error-Codes.md                        # Error reference
β”‚   β”œβ”€β”€ RFC-Compliance.md                     # Link to RFC-SUPPORT.md
β”‚   └── Examples-Index.md                     # Link to examples
└── Migration/
    β”œβ”€β”€ From-3.4-to-4.x.md                    # 3.4 migration
    β”œβ”€β”€ From-4.2-to-5.0.md                    # 5.0 migration (new)
    β”œβ”€β”€ Breaking-Changes.md                   # All breaking changes
    └── Version-Comparison.md                 # Feature comparison

README.md                                     # Update with doc links to wiki

Execution Steps

Phase 1: Setup & Infrastructure (Files 1-2)

  1. Create wiki/Home.md - Main wiki homepage with complete navigation tree
  2. Update main README.md - Add "Documentation" section linking to wiki

Phase 2: Tier 1 Critical Documentation (Files 3-14)

  1. wiki/Getting-Started/Quick-Start.md - 5-minute tutorial
  2. wiki/Getting-Started/Installation-Guide.md - Detailed installation
  3. wiki/Getting-Started/First-BGP-Session.md - First session walkthrough
  4. wiki/API/API-Overview.md - API architecture
  5. wiki/API/Text-API-Reference.md - Complete text API
  6. wiki/API/JSON-API-Reference.md - Complete JSON API
  7. wiki/API/API-Commands.md - All commands reference
  8. wiki/Address-Families/FlowSpec/FlowSpec-Overview.md
  9. wiki/Address-Families/FlowSpec/Match-Conditions.md
  10. wiki/Address-Families/FlowSpec/Actions-Reference.md
  11. wiki/Configuration/Configuration-Syntax.md
  12. wiki/Configuration/Directives-Reference.md

Phase 3: Tier 2 Important Documentation (Files 15-34)

  1. wiki/Use-Cases/DDoS-Mitigation.md
  2. wiki/Use-Cases/Anycast-Management.md
  3. wiki/Use-Cases/Service-High-Availability.md
  4. wiki/Use-Cases/Cross-DC-Failover.md
  5. wiki/Operations/Debugging-Guide.md
  6. wiki/Operations/Log-Analysis.md
  7. wiki/Getting-Started/Common-Pitfalls.md
  8. wiki/Address-Families/EVPN/EVPN-Overview.md
  9. wiki/Address-Families/EVPN/Route-Types.md
  10. wiki/Address-Families/BGP-LS/BGP-LS-Overview.md
  11. wiki/Address-Families/BGP-LS/Topology-Collection.md
  12. wiki/Address-Families/SRv6-and-MUP.md
  13. wiki/Address-Families/L3VPN/VPN-Overview.md
  14. wiki/Tools/Healthcheck-Module.md
  15. wiki/API/Writing-API-Programs.md
  16. wiki/API/Error-Handling.md
  17. wiki/API/Production-Best-Practices.md
  18. wiki/Configuration/Neighbor-Configuration.md
  19. wiki/Configuration/Templates-and-Inheritance.md
  20. wiki/Configuration/Environment-Variables.md

Phase 4: Tier 3 Enhancement Documentation (Files 35-69)

35-44. Complete all remaining Address-Families documentation 45-51. Complete all Use-Cases documentation 52-59. Complete all Features documentation 60-64. Complete all Integration documentation 65-67. Complete all Migration documentation 68-69. Complete all Operations documentation

Phase 5: Reference & Polish (Files 70-75)

  1. wiki/Reference/Configuration-A-Z.md
  2. wiki/Reference/API-Commands-A-Z.md
  3. wiki/Reference/Environment-Variables-A-Z.md
  4. wiki/Reference/Error-Codes.md
  5. wiki/Reference/Examples-Index.md - Comprehensive index of 98 config examples
  6. wiki/Development/Architecture.md (adapted from CLAUDE.md)

Key Content Features

Every Document Will Include:

  • Clear table of contents
  • Practical examples from etc/exabgp/
  • Cross-references to related docs
  • "See Also" section
  • Code examples with explanations
  • Common errors and solutions

Navigation Strategy:

  • Home.md: Complete documentation tree
  • Each section index links to subsections
  • Breadcrumb references
  • Related documents cross-linked
  • README.md gateway to all docs

Examples Index Strategy:

wiki/Reference/Examples-Index.md will categorize 98 config files by:

  • User experience level (Beginner/Intermediate/Advanced)
  • Use case (DDoS/Anycast/VPN/etc)
  • Feature (FlowSpec/EVPN/BGP-LS/etc)
  • Protocol family (IPv4/IPv6/VPN/etc)
  • All examples link directly to the etc/exabgp/ directory in the repository

README.md Updates

Add new "Documentation" section:

## Documentation

Complete documentation is available in the [ExaBGP Wiki](https://github.com/Exa-Networks/exabgp/wiki):

- **[Quick Start Guide](https://github.com/Exa-Networks/exabgp/wiki/Getting-Started/Quick-Start)** - Get running in 5 minutes
- **[API Reference](https://github.com/Exa-Networks/exabgp/wiki/API/API-Overview)** - Complete API documentation
- **[Configuration Guide](https://github.com/Exa-Networks/exabgp/wiki/Configuration/Configuration-Syntax)** - Configuration reference
- **[Use Cases](https://github.com/Exa-Networks/exabgp/wiki/Use-Cases)** - DDoS mitigation, anycast, HA, and more
- **[Address Families](https://github.com/Exa-Networks/exabgp/wiki/Address-Families)** - FlowSpec, EVPN, BGP-LS, L3VPN, SRv6
- **[Examples Index](https://github.com/Exa-Networks/exabgp/wiki/Reference/Examples-Index)** - Browse 98 configuration examples
- **[RFC Compliance](https://github.com/Exa-Networks/exabgp/wiki/Reference/RFC-Compliance)** - 55+ RFCs implemented

Estimated Scope

  • Total files: ~75 markdown files (all in wiki/)
  • Total content: ~600-800 pages equivalent
  • Examples covered: All 98 configuration files indexed and explained in wiki
  • Cross-references: ~300+ internal links

Success Criteria

βœ… Complete documentation coverage (beginner to advanced) βœ… All 98 examples categorized and explained in wiki/Reference/Examples-Index.md βœ… API fully documented (text + JSON) βœ… Every address family has guide βœ… Every major use case has tutorial βœ… Clear navigation from README.md to wiki βœ… Cross-referenced throughout βœ… Practical examples in every doc βœ… Emphasis on "No RIB/FIB manipulation" throughout

Implementation Notes

This plan creates a comprehensive documentation system that:

  1. Guides new users from installation to first BGP session in minutes
  2. Provides complete API reference for the 90% of users who need it
  3. Covers all address families with practical examples
  4. Documents all major use cases with step-by-step tutorials
  5. Includes advanced topics for production deployments
  6. Makes all 98 configuration examples discoverable through wiki/Reference/Examples-Index.md
  7. Cross-references everything for easy navigation
  8. Links from main README.md for discoverability
  9. Clearly communicates that ExaBGP does NOT manipulate RIB/FIB

Clone this wiki locally