module openconfig-platform-types { yang-version "1"; // namespace namespace "http://openconfig.net/yang/platform-types"; prefix "oc-platform-types"; import openconfig-types { prefix oc-types; } import openconfig-extensions { prefix oc-ext; } // meta organization "OpenConfig working group"; contact "OpenConfig working group www.openconfig.net"; description "This module defines data types (e.g., YANG identities) to support the OpenConfig component inventory model."; oc-ext:openconfig-version "0.8.0"; revision "2018-01-16" { description "Added new per-component common data; add temp alarm"; reference "0.8.0"; } revision "2017-12-14" { description "Added anchor containers for component data, added new component types"; reference "0.7.0"; } revision "2017-08-16" { description "Added power state enumerated type"; reference "0.6.0"; } revision "2016-12-22" { description "Added temperature state variable to component"; reference "0.5.0"; } // grouping statements grouping avg-min-max-instant-stats-precision1-celsius { description "Common grouping for recording temperature values in Celsius with 1 decimal precision. Values include the instantaneous, average, minimum, and maximum statistics"; leaf instant { type decimal64 { fraction-digits 1; } units celsius; description "The instantaneous value of the statistic."; } leaf avg { type decimal64 { fraction-digits 1; } units celsius; description "The arithmetic mean value of the statistic over the sampling period."; } leaf min { type decimal64 { fraction-digits 1; } units celsius; description "The minimum value of the statistic over the sampling period"; } leaf max { type decimal64 { fraction-digits 1; } units celsius; description "The maximum value of the statistic over the sampling period"; } leaf interval { type oc-types:stat-interval; description "The time interval over which the min/max/average statistics are computed by the system."; } } // identity statements identity OPENCONFIG_HARDWARE_COMPONENT { description "Base identity for hardware related components in a managed device. Derived identities are partially based on contents of the IANA Entity MIB."; reference "IANA Entity MIB and RFC 6933"; } identity OPENCONFIG_SOFTWARE_COMPONENT { description "Base identity for software-related components in a managed device"; } // hardware types identity CHASSIS { base OPENCONFIG_HARDWARE_COMPONENT; description "Chassis component, typically with multiple slots / shelves"; } identity BACKPLANE { base OPENCONFIG_HARDWARE_COMPONENT; description "Backplane component for aggregating traffic, typically contained in a chassis component"; } identity FABRIC { base OPENCONFIG_HARDWARE_COMPONENT; description "Interconnect between ingress and egress ports on the device (e.g., a crossbar switch)."; } identity POWER_SUPPLY { base OPENCONFIG_HARDWARE_COMPONENT; description "Component that is supplying power to the device"; } identity FAN { base OPENCONFIG_HARDWARE_COMPONENT; description "Cooling fan, or could be some other heat-reduction component"; } identity SENSOR { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical sensor, e.g., a temperature sensor in a chassis"; } identity FRU { base OPENCONFIG_HARDWARE_COMPONENT; description "Replaceable hardware component that does not have a more specific defined schema."; } identity LINECARD { base OPENCONFIG_HARDWARE_COMPONENT; description "Linecard component, typically inserted into a chassis slot"; } identity PORT { base OPENCONFIG_HARDWARE_COMPONENT; description "Physical port, e.g., for attaching pluggables and networking cables"; } identity TRANSCEIVER { base OPENCONFIG_HARDWARE_COMPONENT; description "Pluggable module present in a port"; } identity CPU { base OPENCONFIG_HARDWARE_COMPONENT; description "Processing unit, e.g., a management processor"; } identity STORAGE { base OPENCONFIG_HARDWARE_COMPONENT; description "A storage subsystem on the device (disk, SSD, etc.)"; } identity INTEGRATED_CIRCUIT { base OPENCONFIG_HARDWARE_COMPONENT; description "A special purpose processing unit, typically for traffic switching/forwarding (e.g., switching ASIC, NPU, forwarding chip, etc.)"; } identity OPERATING_SYSTEM { base OPENCONFIG_SOFTWARE_COMPONENT; description "Operating system running on a component"; } identity COMPONENT_OPER_STATUS { description "Current operational status of a platform component"; } identity ACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled and active (i.e., up)"; } identity INACTIVE { base COMPONENT_OPER_STATUS; description "Component is enabled but inactive (i.e., down)"; } identity DISABLED { base COMPONENT_OPER_STATUS; description "Component is administratively disabled."; } // typedef statements typedef component-power-type { type enumeration { enum POWER_ENABLED { description "Enable power on the component"; } enum POWER_DISABLED { description "Disable power on the component"; } } description "A generic type reflecting whether a hardware component is powered on or off"; } }