Skip to content

Latest commit

 

History

History

docs

README.md

rustbgpd documentation

Document class: CURRENT. This maintained page reflects the project as it is now; dated sections remain bounded to their stated scope.

Find the guide, reference, or evidence for the task at hand.

Contents

Tutorials · How-to · Reference · Explanation · Evidence · Project

Tutorials

Learn by running a small example.

Page Scope
Quickstart Start a daemon, establish a session, and use the CLI.
Operator labs Introduce a local policy fault, explain the rejected routes, and recover.
Docker Compose demo Run rustbgpd and an FRR peer together.
EVPN leaf example Follow a leaf-mode configuration walkthrough.

How-to

Follow a procedure for a specific task.

Page Scope
Deployment Install, validate, reload, and upgrade a daemon.
Explain route decisions Find why a route was selected, rejected, or advertised.
Compare advertised routes Compare a shadow route server with the incumbent.
Settlement watchdog Recover when configuration settlement cannot be proved.
EVPN VTEP setup Prepare bridge, VXLAN, and VRF interfaces.
EVPN VTEP troubleshooting Diagnose the bidirectional VTEP dataplane.
EVPN alpha-soak checklist Historical: the VTEP confidence checklist from the gate-landing releases.
Grafana and alerting Import dashboards and load Prometheus alert rules.
Kernel dataplane runner Run the privileged Linux dataplane checks.
Fuzzing Build and run the parser fuzz targets.
Add a configuration field Cover validation, reload, persistence, and documentation.
Answer route questions from an AI agent Expose the explain surfaces to an MCP host, read-only.
Scenario cookbook Choose a complete deployment recipe.
iBGP route reflector Deploy a route reflector for an iBGP client fleet.
L3VPN route reflector Reflect VPN routes with RT-Constrain filtering.
IXP route server Configure members and policy by hand.
IXP filter pipeline Keep an ARouteServer configuration workflow.
IXP Manager route server Provision from IXP Manager and manage activation.
Route-server shadow pilot Evaluate beside an incumbent without taking authority.
Route-server migration Plan a shadow trial, cutover, and rollback.
MANRS IXP Action 1 Map the requirements to configuration and verification.
Controller and monitoring feed Export BMP, live events, and MRT.
EVPN fabric route reflector Reflect EVPN routes in a leaf/spine fabric.
Policy quickstart Test and activate a typed routing policy.
Backup route with conditional advertisement Announce to a backup upstream only while the primary route is gone.
Peer-flap triage Find and contain a recurring session failure.
Route-reflector pair operations Maintain a redundant pair through routine changes.
Paired route servers Stage updates, compare output, and drain for maintenance.
Activation manual recovery Resolve an interrupted activation or lifecycle operation.

Reference

Look up commands, configuration, and compatibility boundaries.

Page Scope
rbgp commands CLI command groups, usage, and examples.
Configuration TOML fields and examples.
Configuration schema Machine-readable schema for editor integration.
Reload matrix When each configuration change takes effect.
Operations Reload semantics, metrics, failure modes, and audit events.
gRPC API Services, RPCs, and request examples.
gRPC authorization inventory Method tiers and their authorization classification.
gRPC inventory JSON Machine-readable authorization inventory.
gNMI and OpenConfig Supported telemetry paths and operations.
Policy language The typed routing-policy language and its tools.
Rust libraries Workspace crates and their embedding boundaries.
Security posture Management API protection and deployment tiers.
Limitations Current product boundaries and unsupported behavior.
Known issues Known defects, workarounds, and operational caveats.
Stability and compatibility Daemon, library, adapter, and authorization contracts.
Narrow v1 contract The route-server, route-reflector, and scoped FlowSpec controller compatibility promise.
Stable surface inventory Machine-readable inventory of the narrow v1 contract.
Capability evidence Scoped capabilities linked to the dated interop evidence behind them.
Format and version namespaces Independent versions for stored and exchanged formats.
RFC implementation notes Protocol interpretations and deviations.
ASPA conformance Verification procedures and route-server scope.
NOTIFICATION registry Error code and subcode descriptions for session diagnostics.
Path-attribute registry Implementation, propagation, and evidence by attribute.
Familiar command map Translate FRR and BIRD commands to the CLI.

Explanation

Understand the design and choose a deployment role.

Page Scope
Feature tour Capabilities behind the repository overview.
Use cases Deployment roles and their architecture.
Architecture Workspace structure and subsystem boundaries.
Design Constraints, tradeoffs, and protocol scope.
Implementation comparison Capability and scope comparisons with other BGP daemons.
GoBGP parity Detailed capability comparison against the pinned release.
IXP evaluation Assess route-server fit using configuration and evidence.
EVPN reflector inventory proposal Historical: how the scoped EVPN route-reflector v1 boundary was chosen.

Evidence

Inspect the receipts behind protocol, performance, and operational claims.

Page Scope
Receipts index Find the lab or measurement behind a claim.
Operational proof Review the operational evidence across subsystems.
Interoperability Validation against real BGP peers and network operating systems.
Benchmarks Microbenchmarks and their measured scope.
Performance archive Dated performance receipts and their supporting artifacts.
v0.80.1 flap-storm addendum S3-only re-measurement at v0.80.1 (measured 2026-10-25): the member-flap withdraw p50 is 0.24–0.30 s again after the v0.80.0 regression, against the v0.80.0 queue's OpenBGPD 9.3 rows.
v0.80.0 cross-daemon refresh Latest full cross-daemon matrix (v0.80.0, measured 2026-10-25; the v0.80.1 addendum above re-measures S3 only): rustbgpd v0.80.0 against OpenBGPD 9.3 on the IXP matrix, with BIRD 3.3.3 added in the IRR reload roots, measured on one host, including an S3 withdraw regression from v0.75.0.
v0.75.0 cross-daemon refresh The previous cross-daemon measurement (v0.75.0, measured 2026-10-04 to 2026-10-05), with BIRD 3.3.2 in the IRR roots.
Reload boundary measurement null result Six-process receiver/publication method fails both stall-overhead bars; complete diagnostic evidence retained without production attribution.
Reload observer-tail diagnostic First-chunk release, admission, writer, and receiver timing with complete observer coverage and explicit probe limits.
First UPDATE phase attribution Measured 2026-10-06: 18 flap rounds at 700 peers; initial-table occupancy is the lead for the first-survivor delay.
Initial-table reconciliation qualification Measured 2026-10-06: first-survivor p50 improved 23.660 ms in ordinary S3; complete A/B evidence and withdrawal-tail limits.
Join-cohort converged-rejoin qualification Measured 2026-10-10: 50 simultaneous GR-retained rejoins at 700 members finish in 0.282 s instead of 5.972 s (median slowest joiner); same-host A/B with readiness and survivor bars.
TCP unsent-threshold screens Separate 64 KiB and 128 KiB memory/completion screens and container sizing guidance.
Current-source IRR comparison Measured 2026-10-06: unreleased dcc9b6384, BIRD 3.3.3 and OpenBGPD 9.3 at 320 members × 183,040 prefixes, 0% overlap; three roots and 36 reload rows.
Soak archive Long-running test reports, acceptance gates, and receipt templates.
Raw artifacts Preserved data supporting published findings.

Project

Follow development plans, contribution guidance, and release history.

Page Scope
Roadmap Current development direction and remaining work.
EVPN enablement Historical: the staged EVPN plan and its completion evidence.
Release checklist Required checks for publishing a release.
Contributing Build, test, and submit a change.
Support Get help and check platform support.
Report a vulnerability Report a security issue privately.
Changelog Unreleased changes and releases since 0.68.0; pending entries live in changelog.d/.
Older releases Archived release notes.
Roadmap history Completed development phases.
Milestone history Archived build orders and exit criteria.
Upstream findings Dated observations from interoperability testing.
Architecture decisions Recorded decisions and their original context.

Document classes

CURRENT pages describe the maintained system; REFERENCE pages define a contract, specification, or reusable procedure such as a release checklist or acceptance gate (how-to guides and cookbooks are CURRENT unless their header marks them otherwise); HISTORICAL pages preserve a dated decision or observation.

Historical records retain their original scope. Archive indexes guide readers to individual receipts, decisions, and supporting artifacts.