diff --git a/README.md b/README.md index 12ee6db..e4e5a2b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # BGP -This project is an implementation of the Border Gateway Protocol and associated functionality required to run an Autonomous System. +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. @@ -8,4 +8,19 @@ The aim of this project is to provide a modern, high performance, secure and pro 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. \ No newline at end of file +⚠️ 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 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