| edition = "2023"; |
| |
| package milotic_tlbmc; |
| |
| import "resource.proto"; |
| |
| message RawFruTable { |
| map<string, RawFru> key_to_raw_fru = 1; |
| } |
| |
| message FruTable { |
| map<string, Fru> key_to_fru = 1; |
| } |
| |
| message RawFru { |
| // Key in raw fru table. |
| string key = 1; |
| |
| // Transport information. |
| oneof transport { |
| I2CAddress i2c_info = 2; |
| } |
| // FRU data. |
| FruData data = 3; |
| } |
| |
| // FRU information. |
| message Fru { |
| // FRU attributes. |
| Attributes attributes = 1; |
| // Transport information. |
| oneof transport { |
| I2CAddress i2c_info = 2; |
| } |
| // FRU data. |
| FruData data = 3; |
| } |
| |
| // I2C information. |
| message I2CAddress { |
| // I2C bus number. |
| uint64 bus = 1; |
| // I2C address. |
| uint64 address = 2; |
| } |
| |
| message FruI2CInfo { |
| string board_manufacturer = 1; |
| string board_product_name = 2; |
| string board_serial_number = 3; |
| string board_part_number = 4; |
| string product_manufacturer = 5; |
| string product_product_name = 6; |
| string product_serial_number = 7; |
| string product_part_number = 8; |
| string product_version = 9; |
| string product_asset_tag = 10; |
| } |
| |
| // The relevant asset information for the FRU. An asset information field can |
| // either be derived from FRU, or from the specified string value in config. |
| message AssetInfo { |
| string manufacturer = 1; |
| string product_name = 2; |
| string serial_number = 3; |
| string part_number = 4; |
| string version = 5; |
| string asset_tag = 6; |
| } |
| |
| // Fans have special properties that need to be exposed. |
| message FanInfo { |
| string name = 1; |
| string model = 2; |
| bool is_hotpluggable = 3; |
| string pwm_sensor_name = 4; |
| string tach_sensor_name = 5; |
| } |
| |
| // FRU data. |
| message FruData { |
| map<string, string> fields = 1; |
| FruI2CInfo fru_info = 2; |
| AssetInfo asset_info = 3; |
| |
| // There are many different types of FRUs, so we need the relevant data for |
| // each type of FRU. |
| oneof subtype { |
| FanInfo fan_info = 4; |
| } |
| } |