oxidecomputer / oxidecomputer/omicron

oxide hardware switch-port show-status should not query EEPROM of transceivers by default

Open
#7,143 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement networking
Dominant language
Rust
Stars
572
Forks
97
Avg merge
2d 12h
Merged PRs (30d)
96

Description

In my experience, it's uncommon for an operator to query the EEPROM of a transceiver unless they are troubleshooting an L1 issue, whereas it's quite common to want to look at the link state of ports regardless of whether there is a problem (e.g. to check which links are in use).

In systems where all transceivers are connected to a shared I2C bus, these I2C reads need to happen serially.
Additionally, querying the EEPROM of a bad optic via I2C read can cause said optic to act up (e.g. returning bad info, going unresponsive, or even locking up the bus).

Given the relative infrequency of these EEPROM queries (and how "small" (cognitively) of a request it is to check MAC addr + link state), I think it would make sense to remove the EEPROM query from the default behavior.
e.g.
Maybe move the EEPROM query behind a separate API endpoint, or move it behind an optional parameter to the existing API endpoint.

Example proposed output:

✕ treyaspelund@Tallon-IV 12:30:42 PM | ~/Downloads
‣ ./oxide --profile colo-admin system hardware switch-port show-status
switch0
=======
Port    Configured  Enabled  MAC                Autoneg  FEC   Link/FSM State  Media    Speed
qsfp0   true        true     a8:40:25:05:15:23  false    RS    up/LinkUp       Optical  Speed100G
qsfp1   true        true     a8:40:25:05:15:27  false    None  up/LinkUp       Optical  Speed100G
qsfp10  false       -        -                  -        -     -               -        -
qsfp11  false       -        -                  -        -     -               -        -
qsfp12  false       -        -                  -        -     -               -        -
qsfp13  false       -        -                  -        -     -               -        -
qsfp14  false       -        -                  -        -     -               -        -
qsfp15  false       -        -                  -        -     -               -        -
qsfp16  false       -        -                  -        -     -               -        -
qsfp17  false       -        -                  -        -     -               -        -
qsfp18  false       -        -                  -        -     -               -        -
qsfp19  false       -        -                  -        -     -               -        -
qsfp2   false       -        -                  -        -     -               -        -
qsfp20  false       -        -                  -        -     -               -        -
qsfp21  false       -        -                  -        -     -               -        -
qsfp22  false       -        -                  -        -     -               -        -
qsfp23  false       -        -                  -        -     -               -        -
qsfp24  false       -        -                  -        -     -               -        -
qsfp25  false       -        -                  -        -     -               -        -
qsfp26  false       -        -                  -        -     -               -        -
qsfp27  false       -        -                  -        -     -               -        -
qsfp28  false       -        -                  -        -     -               -        -
qsfp29  false       -        -                  -        -     -               -        -
qsfp3   false       -        -                  -        -     -               -        -
qsfp30  false       -        -                  -        -     -               -        -
qsfp31  false       -        -                  -        -     -               -        -
qsfp4   false       -        -                  -        -     -               -        -
qsfp5   false       -        -                  -        -     -               -        -
qsfp6   false       -        -                  -        -     -               -        -
qsfp7   false       -        -                  -        -     -               -        -
qsfp8   true        true     a8:40:25:05:15:43  false    RS    up/LinkUp       Optical  Speed100G
qsfp9   false       -        -                  -        -     -               -        -

switch1
=======
Port    Configured  Enabled  MAC                Autoneg  FEC   Link/FSM State  Media    Speed
qsfp0   true        true     a8:40:25:05:0f:23  false    RS    up/LinkUp       Optical  Speed100G
qsfp1   true        true     a8:40:25:05:0f:27  false    None  up/LinkUp       Optical  Speed100G
qsfp10  false       -        -                  -        -     -               -        -
qsfp11  false       -        -                  -        -     -               -        -
qsfp12  false       -        -                  -        -     -               -        -
qsfp13  false       -        -                  -        -     -               -        -
qsfp14  false       -        -                  -        -     -               -        -
qsfp15  false       -        -                  -        -     -               -        -
qsfp16  false       -        -                  -        -     -               -        -
qsfp17  false       -        -                  -        -     -               -        -
qsfp18  false       -        -                  -        -     -               -        -
qsfp19  false       -        -                  -        -     -               -        -
qsfp2   false       -        -                  -        -     -               -        -
qsfp20  false       -        -                  -        -     -               -        -
qsfp21  false       -        -                  -        -     -               -        -
qsfp22  false       -        -                  -        -     -               -        -
qsfp23  false       -        -                  -        -     -               -        -
qsfp24  false       -        -                  -        -     -               -        -
qsfp25  false       -        -                  -        -     -               -        -
qsfp26  false       -        -                  -        -     -               -        -
qsfp27  false       -        -                  -        -     -               -        -
qsfp28  false       -        -                  -        -     -               -        -
qsfp29  false       -        -                  -        -     -               -        -
qsfp3   false       -        -                  -        -     -               -        -
qsfp30  false       -        -                  -        -     -               -        -
qsfp31  false       -        -                  -        -     -               -        -
qsfp4   false       -        -                  -        -     -               -        -
qsfp5   false       -        -                  -        -     -               -        -
qsfp6   false       -        -                  -        -     -               -        -
qsfp7   false       -        -                  -        -     -               -        -
qsfp8   true        true     a8:40:25:05:0f:43  false    RS    up/LinkUp       Optical  Speed100G
qsfp9   false       -        -                  -        -     -               -        -

Example current output:

✕ treyaspelund@Tallon-IV 12:30:42 PM | ~/Downloads
‣ ./oxide --profile colo-admin system hardware switch-port show-status
switch0
=======
Port    Configured  Enabled  MAC                Autoneg  FEC   Link/FSM State  Media    Speed
qsfp0   true        true     a8:40:25:05:15:23  false    RS    up/LinkUp       Optical  Speed100G
qsfp1   true        true     a8:40:25:05:15:27  false    None  up/LinkUp       Optical  Speed100G
qsfp10  false       -        -                  -        -     -               -        -
qsfp11  false       -        -                  -        -     -               -        -
qsfp12  false       -        -                  -        -     -               -        -
qsfp13  false       -        -                  -        -     -               -        -
qsfp14  false       -        -                  -        -     -               -        -
qsfp15  false       -        -                  -        -     -               -        -
qsfp16  false       -        -                  -        -     -               -        -
qsfp17  false       -        -                  -        -     -               -        -
qsfp18  false       -        -                  -        -     -               -        -
qsfp19  false       -        -                  -        -     -               -        -
qsfp2   false       -        -                  -        -     -               -        -
qsfp20  false       -        -                  -        -     -               -        -
qsfp21  false       -        -                  -        -     -               -        -
qsfp22  false       -        -                  -        -     -               -        -
qsfp23  false       -        -                  -        -     -               -        -
qsfp24  false       -        -                  -        -     -               -        -
qsfp25  false       -        -                  -        -     -               -        -
qsfp26  false       -        -                  -        -     -               -        -
qsfp27  false       -        -                  -        -     -               -        -
qsfp28  false       -        -                  -        -     -               -        -
qsfp29  false       -        -                  -        -     -               -        -
qsfp3   false       -        -                  -        -     -               -        -
qsfp30  false       -        -                  -        -     -               -        -
qsfp31  false       -        -                  -        -     -               -        -
qsfp4   false       -        -                  -        -     -               -        -
qsfp5   false       -        -                  -        -     -               -        -
qsfp6   false       -        -                  -        -     -               -        -
qsfp7   false       -        -                  -        -     -               -        -
qsfp8   true        true     a8:40:25:05:15:43  false    RS    up/LinkUp       Optical  Speed100G
qsfp9   false       -        -                  -        -     -               -        -

Receiver Power                                                               Transmitter Bias Current          Transmitter Power
[Average(1.3845), Average(1.2108), Average(1.1593), Average(1.0652)]         [47.88, 48.45, 47.88, 47.88]      [0.76060003, 0.6331, 0.86630005, 1.1315]
[Average(1.5959), Average(1.1918), Average(1.0427), Average(1.2492)]         [43.522, 43.276, 43.866, 43.658]  [1.51, 1.4474, 1.6165999, 1.8414]
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
-                                                                            -                                 -
[Average(1.2421), Average(0.9875001), Average(0.89040005), Average(1.0207)]  [47.88, 47.88, 47.88, 47.88]      [1.0199, 0.8388, 1.0103, 1.055]
-                                                                            -                                 -

switch1
=======
Port    Configured  Enabled  MAC                Autoneg  FEC   Link/FSM State  Media    Speed
qsfp0   true        true     a8:40:25:05:0f:23  false    RS    up/LinkUp       Optical  Speed100G
qsfp1   true        true     a8:40:25:05:0f:27  false    None  up/LinkUp       Optical  Speed100G
qsfp10  false       -        -                  -        -     -               -        -
qsfp11  false       -        -                  -        -     -               -        -
qsfp12  false       -        -                  -        -     -               -        -
qsfp13  false       -        -                  -        -     -               -        -
qsfp14  false       -        -                  -        -     -               -        -
qsfp15  false       -        -                  -        -     -               -        -
qsfp16  false       -        -                  -        -     -               -        -
qsfp17  false       -        -                  -        -     -               -        -
qsfp18  false       -        -                  -        -     -               -        -
qsfp19  false       -        -                  -        -     -               -        -
qsfp2   false       -        -                  -        -     -               -        -
qsfp20  false       -        -                  -        -     -               -        -
qsfp21  false       -        -                  -        -     -               -        -
qsfp22  false       -        -                  -        -     -               -        -
qsfp23  false       -        -                  -        -     -               -        -
qsfp24  false       -        -                  -        -     -               -        -
qsfp25  false       -        -                  -        -     -               -        -
qsfp26  false       -        -                  -        -     -               -        -
qsfp27  false       -        -                  -        -     -               -        -
qsfp28  false       -        -                  -        -     -               -        -
qsfp29  false       -        -                  -        -     -               -        -
qsfp3   false       -        -                  -        -     -               -        -
qsfp30  false       -        -                  -        -     -               -        -
qsfp31  false       -        -                  -        -     -               -        -
qsfp4   false       -        -                  -        -     -               -        -
qsfp5   false       -        -                  -        -     -               -        -
qsfp6   false       -        -                  -        -     -               -        -
qsfp7   false       -        -                  -        -     -               -        -
qsfp8   true        true     a8:40:25:05:0f:43  false    RS    up/LinkUp       Optical  Speed100G
qsfp9   false       -        -                  -        -     -               -        -

Receiver Power                                                        Transmitter Bias Current      Transmitter Power
[Average(1.4576), Average(1.1553), Average(1.424), Average(1.3786)]   [47.88, 47.88, 47.88, 47.88]  [1.1952, 0.889, 1.0997, 1.1837001]
[Average(0.592), Average(1.1238), Average(0.6778), Average(0.787)]    [80.37, 75.24, 75.24, 75.24]  [1.1037, 1.1454, 1.439, 1.3084]
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
-                                                                     -                             -
[Average(1.2229), Average(0.8772), Average(0.9954), Average(1.1318)]  [47.88, 47.88, 47.88, 47.88]  [0.9629, 0.7113, 0.88100004, 1.2583001]
-                                                                     -                             -

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 the system hardware switch-port show-status command and trace how its current output obtains transceiver EEPROM data. Decide whether the EEPROM query belongs behind an optional parameter or a separate API endpoint, then verify that the default output retains port link information without performing those reads.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
api, cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.