oxidecomputer / oxidecomputer/maghemite
ddm protocol version negotiation
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 94
- Forks
- 6
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 12
Description
Things currently work between v1 and v2 peers because ddm v1 does no version checking at all. So ddm v2 speakers can send out discovery packets with the version set to 2, and ddm v1 speakers can send out discovery packets with the version set to 1, and as long a v2 router speaks version 1 after discovering a v1 peer, things will work. However, this will not work for version 3. So we need to implement version negotiation. This would also not work for changes in the discovery protocol, if we were to have changes there. So we need to come up with a general way for both protocols to evolve.
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 tracing DDM discovery packets and the existing v1/v2 version handling. Define a general negotiation approach that lets peers select a compatible protocol version and can accommodate future discovery-protocol changes. Done means v1, v2, and future v3 peers can negotiate compatibility without relying on v1's lack of version checking.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100