netconfcentral logo

openconfig-platform-types@2019-06-03



  module openconfig-platform-types {

    yang-version 1;

    namespace
      "http://openconfig.net/yang/platform-types";

    prefix oc-platform-types;

    import openconfig-types {
      prefix oc-types;
    }
    import openconfig-extensions {
      prefix oc-ext;
    }

    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.";

    revision "2019-06-03" {
      description
        "Add OpenConfig component operating system patch type.";
      reference
        "1.0.0";

    }

    revision "2018-11-21" {
      description
        "Add OpenConfig module metadata extensions.";
      reference
        "0.10.1";

    }

    revision "2018-11-16" {
      description
        "Added FEC_MODE_TYPE and FEC_STATUS_TYPE";
      reference
        "0.10.0";

    }

    revision "2018-05-05" {
      description
        "Added min-max-time to
avg-min-max-instant-stats-precision1-celsius,
added new CONTROLLER_CARD identity";
      reference
        "0.9.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";

    }

    oc-ext:openconfig-version "1.0.0";
    oc-ext:regexp-posix;
    oc-ext:catalog-organization "openconfig";
    oc-ext:origin "openconfig";

    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";
      }

      uses oc-types:stat-interval-state;

      uses oc-types:min-max-time;
    }  // grouping avg-min-max-instant-stats-precision1-celsius

    identity OPENCONFIG_HARDWARE_COMPONENT {
      base 
      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 {
      base 
      description
        "Base identity for software-related components in a managed
device";
    }

    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 CONTROLLER_CARD {
      base OPENCONFIG_HARDWARE_COMPONENT;
      description
        "A type of linecard whose primary role is management or control
rather than data forwarding.";
    }

    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 OPERATING_SYSTEM_UPDATE {
      base OPENCONFIG_SOFTWARE_COMPONENT;
      description
        "An operating system update - which should be a subcomponent
of the `OPERATING_SYSTEM` running on a component. An update is
defined to be a set of software changes that are atomically
installed (and uninstalled) together. Multiple updates may be
present for the Operating System. A system should not list all
installed software packages using this type -- but rather
updates that are bundled together as a single installable
item";
    }

    identity COMPONENT_OPER_STATUS {
      base 
      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.";
    }

    identity FEC_MODE_TYPE {
      base 
      description
        "Base identity for FEC operational modes.";
    }

    identity FEC_ENABLED {
      base FEC_MODE_TYPE;
      description
        "FEC is administratively enabled.";
    }

    identity FEC_DISABLED {
      base FEC_MODE_TYPE;
      description
        "FEC is administratively disabled.";
    }

    identity FEC_AUTO {
      base FEC_MODE_TYPE;
      description
        "System will determine whether to enable or disable
FEC on a transceiver.";
    }

    identity FEC_STATUS_TYPE {
      base 
      description
        "Base identity for FEC operational statuses.";
    }

    identity FEC_STATUS_LOCKED {
      base FEC_STATUS_TYPE;
      description
        "FEC is operationally locked.";
    }

    identity FEC_STATUS_UNLOCKED {
      base FEC_STATUS_TYPE;
      description
        "FEC is operationally unlocked.";
    }

    typedef component-power-type {
      type enumeration {
        enum "POWER_ENABLED" {
          value 0;
          description
            "Enable power on the component";
        }
        enum "POWER_DISABLED" {
          value 1;
          description
            "Disable power on the component";
        }
      }
      description
        "A generic type reflecting whether a hardware component
is powered on or off";
    }
  }  // module openconfig-platform-types