oxidecomputer / oxidecomputer/hubris
transceivers: Should thermal models come from the host?
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 239
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 23
Description
As of now, transceivers_server::decode_interface() attempts to decode the interface type, and if it is an SFF-8636 (QSFP+ or QSFP28) or CMIS (QSFPDD or OSFP) type device, we give it a model defined as:
ThermalProperties {
target_temperature: Celsius(65.0),
critical_temperature: Celsius(70.0),
power_down_temperature: Celsius(80.0),
temperature_slew_deg_per_sec: 0.5,
}
There is at least one comment that this model should come from the host, but currently as far as I can see there is no way for the host to do so.
If the transceiver isn't detected as one of those two types, the thermal loop isn't informed about it.
We may want to decide if we want the host to provide this for us, or if not, we could potentially simplify this code by not forcing the transceivers-server to send it to the thermal task.
Contributor guide
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 at transceivers_server::decode_interface() and trace how ThermalProperties are sent to the thermal loop. Compare the SFF-8636 and CMIS paths with transceivers that are not detected as either type, then determine whether the host should provide the model or whether the transceivers-server should stop sending it. Done requires an agreed design and consistent thermal handling for all relevant transceivers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- embedded-iot
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100