fb48fc0a858194ab0f2f0e461db1550f0396b3a6
Phase 3 of the teaching demo. - crates/web serves an embedded, dependency-free status page at /statusz (/ redirects there). Sections: router header with live indicator, peers, announce form (owner remembered locally, well-known community picker, prepend / MED / large communities), local routes with per-session UPDATE bytes segmented into header / lengths / attributes / NLRI, received routes with rows highlighted when a locally announced prefix has come back, and a live event log. Tables refresh on every SSE event. Light and dark themes. - fake_peer example in crates/integration-tests: connects, announces, prints received UPDATEs and with --echo re-announces everything back with its ASN prepended (dropping NO_EXPORT), so one daemon plus one process demonstrates the full loop without lab routers. - README for the binary documents the endpoints and the demo setup. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
BGP
The bgp crate is an implementation of the Border Gateway Protocol, which is used to exchange routing and control plane information between Autonomous Systms.
The aim of this project is to provide a modern, high performance, secure and programatic and customizable software package that can be useful to network operators, researchers, and people interested in Internet.
Current status.
The project is currently being rewritten from scratch to be more modular and maintainable, as well as to fix deeper issues with the previous implementation.
⚠️ Warning: This is currently a work in progress and not ready for use.
🛣️ Roadmap to v1.0
We aim for the 1.0 release to be functional and stable to operate peering sessions, and to install routes in the Linux Kernel.
- ☐ Implement basic parsers for the fundamental types required
- ✅ Path Attributes from RFC4271
- ✅ Open message
- ✅ Capabilities from RFC4271
- ✅ Update message
- ☐ Notification message
- ☐ Implement scaffolding required to start and configure a server
- ☐ Implement connection logic to establish sessions with peers
- ☐ Implement an efficient data structure for storing prefixes (e.g. Poptrie)
- ☐ Filtering for peer RIB in / out
- ☐ Main / auxillary RIBs for exchanging routes between peers
Languages
Rust
92.3%
Shell
4.2%
HTML
3.5%