# 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 (passive and active) - ✅ Locally originated routes with communities, announced to all peers - ✅ HTTP API, live status page and Prometheus metrics - ☐ 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