edition = "2023";

package milotic_tlbmc;

import "entity_common_config.proto";
import "hal_common_config.proto";
import "threshold_config.proto";

enum IntelCpuSensorType {
  INTEL_CPU_SENSOR_TYPE0_UNKNOWN = 0;
  INTEL_CPU_SENSOR_TYPE1_XEON_CPU = 1;
}

// Config for an Intel CPU sensor device.
// A single device config might generate multiple sensors.
message IntelCpuSensorConfig {
  IntelCpuSensorType type = 1;
  HalCommonConfig hal_common_config = 2;
  // The thresholds that we want to monitor for the sensor.
  ThresholdConfigs thresholds = 3;
  EntityCommonConfig entity_common_config = 4;
  string name = 5;
  // Each IntelCpuSensorConfig is associated with a single CPU. The CPU ID is a
  // unique numeric identifier to concatenate with CPU to form the expected CPU
  // sensor name e.g. temperature_Die_CPU0
  uint32 cpu_id = 6;
  // The sensor group that this sensor belongs to. Likely a unique identifier
  // for the root bus that this sensor is associated with.
  string sensor_group = 7;
  map<string, string> label_to_name = 8;
  // Dts offset represents an optional scaled offset to the Digital Thermal
  // Sensor (DTS) reading
  // https://lwn.net/Articles/758101/#:~:text=Introduction%20of%20the%20Platform%20Environment,via%20the%20processor%20PECI%20client.
  double dts_offset = 9;
  // IntelCpuSensors can be associated with separate related items despite being
  // defined in the same config e.g. DIMMs, CPUs. This map allows for specifying
  // the related item for each sensor name.
  // If not specified, default to the associated cpu (determined by cpu_id)
  map<string, RelatedItem> name_to_related_item = 10;
}
