oxidecomputer / oxidecomputer/dendrite
Allow fec/speed settings to be modified without destroying link
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 20
- Forks
- 3
- Avg merge
- 3d 11h
- Merged PRs (30d)
- 4
Description
Many settings (addresses, routes, etc) in dendrite and omicron refer to a link by name. Right now if we want to change low-level settings on a link (e.g., if we swap out a transceiver), we have to delete and re-create that link. If the link re-creation fails for any reason, all of those remaining settings will be pointing at a non-existent entity. While the tofino SDE will not allow us to change settings on an existing link, there is no reason that limitation should be propagated all the way through dendrite and omicron.
We should add to dendrite the notion of a disconnected link (name subject to discussion) which exists for configuration purposes, but doesn't actually connect to a port on the ASIC. This gives us a transitional state in which a link can live while we are doing the SDE-level destroy/re-create. It also gives us a sane state in which to leave the link should the re-create operation fail. We could also make this an explicit user-requested transition, which could be triggered prior to performing a transceiver swap.
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
No file or test is named. Start by tracing how dendrite represents links and preserves settings that reference them, then clarify the disconnected-link state and transition semantics with maintainers. Done means a link can remain available for configuration while its ASIC connection is recreated, including when recreation fails.
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
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100