oxidecomputer / oxidecomputer/hubris

transceivers: Should thermal models come from the host?

Open
#2,670 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.