oxidecomputer / oxidecomputer/maghemite
BGP bestpath algorithm should more closely follow RFC 4271
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 94
- Forks
- 6
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 12
Description
The current BGP bestpath algorithm does not implement the full Phase 2 tie breaking rules from RFC 4271.
When the BESTPATH_FANOUT is set to 1 (which is currently a const, but won't always be), we don't select the singular best path via the full tie-breaking process outlined in the spec.
Some quick (but not exhaustive) examples are:
- we don't look at the
originattribute - we don't look at the peer's Router-ID
- we don't look at the IP address we use to connect to the peer
- we don't pick the oldest path if all else is the same
This is something we should do to bring us into better alignment with the standards, and so that there's a little more determinism in which path gets picked in non multipath scenarios
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the current BGP bestpath algorithm and the BESTPATH_FANOUT setting, then compare the singular-best-path behavior with RFC 4271's Phase 2 tie-breaking rules. Completion means considering the origin, peer Router-ID, peer connection IP address, and oldest-path criteria so non-multipath selection is deterministic.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100