|
||
---|---|---|
src | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
LICENSE | ||
README.md | ||
babeld.toml | ||
frr_test.conf | ||
rfc8966.pdf |
README.md
This is an async implementation of the babel routing protocol in Rust for my OpenBSD router. I want it to run everywhere I need a babel routing daemon, because the routing software I use doesn't support the babel protocol.
Note: despite the name, I am not affiliated with the OpenBSD project.
TODO:
3.1
- Message Transmission and Reception
3.2
- All data structures implemented
- Sequence Number Arithmetic
- Node Sequence Number
- Interface Table
- Neighbor Table
- Source Table
- Route Table
- Table of Pending Seqno Requests
3.3
- Acknowledgments and Acknowledgment Requests
3.4
- Neighbour Acquisition
- Reverse Reachability Detection
- Bidirectional Reachability Detection
- Cost Computation
3.5
- Routing Table Maintenance
- The Feasibility Condition
- Metric Computation
- Route Acquisition
- Hold Time
3.6
- Route Selection
3.7
- Sending Updates
- Periodic Updates
- Triggered Updates
- Maintaining Feasibility Distances
- Split Horizon
3.8
- Explicit Requests
- Handling Requests
- Route Requests
- Seqno Requests
- Sending Requests
- Avoiding Starvation
- Dealing with Unfeasible Updates
- Preventing Routes from Expiring
4.1
- Representation of Integers
- Interval
- Router-Id
- Address
- Prefixes
4.6
- Pad1
- PadN
- Acknowledgment Request
- Acknowledgment
- Hello
- IHU
- Router-Id
- Next Hop
- Update
- Route Request
- Seqno Request
4.7
- Sub TLVs