Now that oxidecomputer/hubris#2650 and oxidecomputer/management-gateway-service#500 have merged, we now have a gateway-sp-comms API for reading VPD from individual components exposed by the SP. This includes PMBus devices (including, importantly, the rectifiers in the power shelf) and FRU EEPROMs, such as those on fan modules, sharkfins, and so forth.
We should update the gateway-sp-comms dep to oxidecomputer/management-gateway-service@438cd18 and add HTTP APIs to the gateway API for Nexus to consume this information. One note here is that for Oxide barcodes, Hubris is reading the raw contents of the relevant TLV-C tag(s) and not normalizing the hyphen in part numbers, so we will want to do something similar to this: https://github.com/oxidecomputer/hubris/blob/0d1ba0453a5d80470f07ea9949eb82bc3c291e01/lib/oxide-barcode/src/lib.rs#L214-L258
before returning them to Nexus.
Now that oxidecomputer/hubris#2650 and oxidecomputer/management-gateway-service#500 have merged, we now have a
gateway-sp-commsAPI for reading VPD from individual components exposed by the SP. This includes PMBus devices (including, importantly, the rectifiers in the power shelf) and FRU EEPROMs, such as those on fan modules, sharkfins, and so forth.We should update the
gateway-sp-commsdep to oxidecomputer/management-gateway-service@438cd18 and add HTTP APIs to the gateway API for Nexus to consume this information. One note here is that for Oxide barcodes, Hubris is reading the raw contents of the relevant TLV-C tag(s) and not normalizing the hyphen in part numbers, so we will want to do something similar to this: https://github.com/oxidecomputer/hubris/blob/0d1ba0453a5d80470f07ea9949eb82bc3c291e01/lib/oxide-barcode/src/lib.rs#L214-L258before returning them to Nexus.