summaryrefslogtreecommitdiffstats
path: root/src/plugins/yang/openconfig/openconfig-platform.yang
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/yang/openconfig/openconfig-platform.yang')
-rw-r--r--src/plugins/yang/openconfig/openconfig-platform.yang762
1 files changed, 0 insertions, 762 deletions
diff --git a/src/plugins/yang/openconfig/openconfig-platform.yang b/src/plugins/yang/openconfig/openconfig-platform.yang
deleted file mode 100644
index 399cf24..0000000
--- a/src/plugins/yang/openconfig/openconfig-platform.yang
+++ /dev/null
@@ -1,762 +0,0 @@
-module openconfig-platform {
-
- yang-version "1";
-
- // namespace
- namespace "http://openconfig.net/yang/platform";
-
- prefix "oc-platform";
-
- import openconfig-platform-types { prefix oc-platform-types; }
- import openconfig-extensions { prefix oc-ext; }
- import openconfig-alarm-types { prefix oc-alarm-types; }
- import openconfig-yang-types { prefix oc-yang; }
-
-
- // meta
- organization "OpenConfig working group";
-
- contact
- "OpenConfig working group
- www.openconfig.net";
-
- description
- "This module defines a data model for representing a system
- component inventory, which can include hardware or software
- elements arranged in an arbitrary structure. The primary
- relationship supported by the model is containment, e.g.,
- components containing subcomponents.
-
- It is expected that this model reflects every field replacable
- unit on the device at a minimum (i.e., additional information
- may be supplied about non-replacable components).
-
- Every element in the inventory is termed a 'component' with each
- component expected to have a unique name and type, and optionally
- a unique system-assigned identifier and FRU number. The
- uniqueness is guaranteed by the system within the device.
-
- Components may have properties defined by the system that are
- modeled as a list of key-value pairs. These may or may not be
- user-configurable. The model provides a flag for the system
- to optionally indicate which properties are user configurable.
-
- Each component also has a list of 'subcomponents' which are
- references to other components. Appearance in a list of
- subcomponents indicates a containment relationship as described
- above. For example, a linecard component may have a list of
- references to port components that reside on the linecard.
-
- This schema is generic to allow devices to express their own
- platform-specific structure. It may be augmented by additional
- component type-specific schemas that provide a common structure
- for well-known component types. In these cases, the system is
- expected to populate the common component schema, and may
- optionally also represent the component and its properties in the
- generic structure.
-
- The properties for each component may include dynamic values,
- e.g., in the 'state' part of the schema. For example, a CPU
- component may report its utilization, temperature, or other
- physical properties. The intent is to capture all platform-
- specific physical data in one location, including inventory
- (presence or absence of a component) and state (physical
- attributes or status).";
-
- oc-ext:openconfig-version "0.12.0";
-
- revision "2018-06-29" {
- description
- "Added location description for components";
- reference "0.12.0";
- }
-
- revision "2018-06-03" {
- description
- "Added parent reference, empty flag and preconfiguration
- for components";
- reference "0.11.0";
- }
-
- revision "2018-04-20" {
- description
- "Added new per-component state data: mfg-date and removable";
- reference "0.10.0";
- }
-
- revision "2018-01-30" {
- description
- "Amended approach for modelling CPU - rather than having
- a local CPU utilisation state variable, a component with
- a CPU should create a subcomponent of type CPU to report
- statistics.";
- reference "0.9.0";
- }
-
- revision "2018-01-16" {
- description
- "Added new per-component common data; add temp alarm;
- moved hardware-port reference to port model";
- 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 platform-component-properties-config {
- description
- "System-defined configuration data for component properties";
-
- leaf name {
- type string;
- description
- "System-supplied name of the property -- this is typically
- non-configurable";
- }
-
- leaf value {
- type union {
- type string;
- type boolean;
- type int64;
- type uint64;
- type decimal64 {
- fraction-digits 2;
- }
- }
- description
- "Property values can take on a variety of types. Signed and
- unsigned integer types may be provided in smaller sizes,
- e.g., int8, uint16, etc.";
- }
- }
-
- grouping platform-component-properties-state {
- description
- "Operational state data for component properties";
-
- leaf configurable {
- type boolean;
- description
- "Indication whether the property is user-configurable";
- }
- }
-
- grouping platform-component-properties-top {
- description
- "Top-level grouping ";
-
- container properties {
- description
- "Enclosing container ";
-
- list property {
- key "name";
- description
- "List of system properties for the component";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the property name.";
- }
-
- container config {
- description
- "Configuration data for each property";
-
- uses platform-component-properties-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for each property";
-
- uses platform-component-properties-config;
- uses platform-component-properties-state;
- }
- }
- }
- }
-
- grouping platform-subcomponent-ref-config {
- description
- "Configuration data for subcomponent references";
-
- leaf name {
- type leafref {
- path "../../../../../component/config/name";
- }
- description
- "Reference to the name of the subcomponent";
- }
- }
-
- grouping platform-subcomponent-ref-state {
- description
- "Operational state data for subcomponent references";
-
- }
-
- grouping platform-subcomponent-ref-top {
- description
- "Top-level grouping for list of subcomponent references";
-
- container subcomponents {
- description
- "Enclosing container for subcomponent references";
-
- list subcomponent {
- key "name";
- description
- "List of subcomponent references";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "Reference to the name list key";
- }
-
- container config {
- description
- "Configuration data for the subcomponent";
-
- uses platform-subcomponent-ref-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for the subcomponent";
-
- uses platform-subcomponent-ref-config;
- uses platform-subcomponent-ref-state;
- }
- }
- }
- }
-
- grouping platform-component-config {
- description
- "Configuration data for components";
-
- leaf name {
- type string;
- description
- "Device name for the component -- this may not be a
- configurable parameter on many implementations. Where
- component preconfiguration is supported, for example,
- the component name may be configurable.";
- }
- }
-
- grouping platform-component-state {
- description
- "Operational state data for device components.";
-
- leaf type {
- type union {
- type identityref {
- base oc-platform-types:OPENCONFIG_HARDWARE_COMPONENT;
- }
- type identityref {
- base oc-platform-types:OPENCONFIG_SOFTWARE_COMPONENT;
- }
- }
- description
- "Type of component as identified by the system";
- }
-
- leaf id {
- type string;
- description
- "Unique identifier assigned by the system for the
- component";
- }
-
- leaf location {
- type string;
- description
- "System-supplied description of the location of the
- component within the system. This could be a bay position,
- slot number, socket location, etc. For component types that
- have an explicit slot-id attribute, such as linecards, the
- system should populate the more specific slot-id.";
- }
-
- leaf description {
- type string;
- description
- "System-supplied description of the component";
- }
-
- leaf mfg-name {
- type string;
- description
- "System-supplied identifier for the manufacturer of the
- component. This data is particularly useful when a
- component manufacturer is different than the overall
- device vendor.";
- }
-
- leaf mfg-date {
- type oc-yang:date;
- description
- "System-supplied representation of the component's
- manufacturing date.";
- }
-
- leaf hardware-version {
- type string;
- description
- "For hardware components, this is the hardware revision of
- the component.";
- }
-
- leaf firmware-version {
- type string;
- description
- "For hardware components, this is the version of associated
- firmware that is running on the component, if applicable.";
- }
-
- leaf software-version {
- type string;
- description
- "For software components such as operating system or other
- software module, this is the version of the currently
- running software.";
- }
-
- leaf serial-no {
- type string;
- description
- "System-assigned serial number of the component.";
- }
-
- leaf part-no {
- type string;
- description
- "System-assigned part number for the component. This should
- be present in particular if the component is also an FRU
- (field replaceable unit)";
- }
-
- leaf removable {
- type boolean;
- description
- "If true, this component is removable or is a field
- replaceable unit";
- }
-
- leaf oper-status {
- type identityref {
- base oc-platform-types:COMPONENT_OPER_STATUS;
- }
- description
- "If applicable, this reports the current operational status
- of the component.";
- }
-
- leaf empty {
- type boolean;
- default false;
- description
- "The empty leaf may be used by the device to indicate that a
- component position exists but is not populated. Using this
- flag, it is possible for the management system to learn how
- many positions are available (e.g., occupied vs. empty
- linecard slots in a chassis).";
- }
-
- leaf parent {
- type leafref {
- path "../../config/name";
- }
- description
- "Reference to the name of the parent component. Note that
- this reference must be kept synchronized with the
- corresponding subcomponent reference from the parent
- component.";
- }
- }
-
- grouping platform-component-temp-alarm-state {
- description
- "Temperature alarm data for platform components";
-
- // TODO(aashaikh): consider if these leaves could be in a
- // reusable grouping (not temperature-specific); threshold
- // may always need to be units specific.
-
- leaf alarm-status {
- type boolean;
- description
- "A value of true indicates the alarm has been raised or
- asserted. The value should be false when the alarm is
- cleared.";
- }
-
- leaf alarm-threshold {
- type uint32;
- description
- "The threshold value that was crossed for this alarm.";
- }
-
- leaf alarm-severity {
- type identityref {
- base oc-alarm-types:OPENCONFIG_ALARM_SEVERITY;
- }
- description
- "The severity of the current alarm.";
- }
- }
-
- grouping platform-component-power-state {
- description
- "Power-related operational state for device components.";
-
- leaf allocated-power {
- type uint32;
- units watts;
- description
- "Power allocated by the system for the component.";
- }
-
- leaf used-power {
- type uint32;
- units watts;
- description
- "Actual power used by the component.";
- }
- }
-
- grouping platform-component-temp-state {
- description
- "Temperature state data for device components";
-
- container temperature {
- description
- "Temperature in degrees Celsius of the component. Values include
- the instantaneous, average, minimum, and maximum statistics. If
- avg/min/max statistics are not supported, the target is expected
- to just supply the instant value";
-
- uses oc-platform-types:avg-min-max-instant-stats-precision1-celsius;
- uses platform-component-temp-alarm-state;
- }
- }
-
- grouping platform-component-memory-state {
- description
- "Per-component memory statistics";
-
- container memory {
- description
- "For components that have associated memory, these values
- report information about available and utilized memory.";
-
- leaf available {
- type uint64;
- units bytes;
- description
- "The available memory physically installed, or logically
- allocated to the component.";
- }
-
- // TODO(aashaikh): consider if this needs to be a
- // min/max/avg statistic
- leaf utilized {
- type uint64;
- units bytes;
- description
- "The memory currently in use by processes running on
- the component, not considering reserved memory that is
- not available for use.";
- }
- }
- }
-
- grouping platform-anchors-top {
- description
- "This grouping is used to add containers for components that
- are common across systems, but do not have a defined schema
- within the openconfig-platform module. Containers should be
- added to this grouping for components that are expected to
- exist in multiple systems, with corresponding modules
- augmenting the config/state containers directly.";
-
- container chassis {
- description
- "Data for chassis components";
-
- container config {
- description
- "Configuration data for chassis components";
- }
-
- container state {
- config false;
- description
- "Operational state data for chassis components";
- }
- }
-
-// TODO(aashaikh): linecard container is already defined in
-// openconfig-platform-linecard; will move to this module
-// in future.
- /*
- container linecard {
- description
- "Data for linecard components";
-
- container config {
- description
- "Configuration data for linecard components";
- }
-
- container state {
- config false;
- description
- "Operational state data for linecard components";
- }
- }
- */
-
- container port {
- description
- "Data for physical port components";
-
- container config {
- description
- "Configuration data for physical port components";
- }
-
- container state {
- config false;
- description
- "Operational state data for physical port components";
- }
- }
-
-// TODO(aashaikh): transceiver container is already defined in
-// openconfig-platform-transceiver; will move to this module
-// in future.
- /*
- container transceiver {
- description
- "Data for transceiver components";
-
- container config {
- description
- "Configuration data for transceiver components";
- }
-
- container state {
- config false;
- description
- "Operational state data for transceiver components";
- }
- }
- */
-
- container power-supply {
- description
- "Data for power supply components";
-
- container config {
- description
- "Configuration data for power supply components";
- }
-
- container state {
- config false;
- description
- "Operational state data for power supply components";
- }
- }
-
- container fan {
- description
- "Data for fan components";
-
- container config {
- description
- "Configuration data for fan components";
- }
-
- container state {
- config false;
- description
- "Operational state data for fan components";
- }
- }
-
- container fabric {
- description
- "Data for fabric components";
-
- container config {
- description
- "Configuration data for fabric components";
- }
-
- container state {
- config false;
- description
- "Operational state data for fabric components";
- }
- }
-
- container storage {
- description
- "Data for storage components";
-
- container config {
- description
- "Configuration data for storage components";
- }
-
- container state {
- config false;
- description
- "Operational state data for storage components";
- }
- }
-
- container cpu {
- description
- "Data for cpu components";
-
- container config {
- description
- "Configuration data for cpu components";
- }
-
- container state {
- config false;
- description
- "Operational state data for cpu components";
- }
- }
-
- container integrated-circuit {
- description
- "Data for chip components, such as ASIC, NPUs, etc.";
-
- container config {
- description
- "Configuration data for chip components";
- }
-
- container state {
- config false;
- description
- "Operational state data for chip components";
- }
- }
-
- container backplane {
- description
- "Data for backplane components";
-
- container config {
- description
- "Configuration data for backplane components";
- }
-
- container state {
- config false;
- description
- "Operational state data for backplane components";
- }
- }
- }
-
- grouping platform-component-top {
- description
- "Top-level grouping for components in the device inventory";
-
- container components {
- description
- "Enclosing container for the components in the system.";
-
- list component {
- key "name";
- description
- "List of components, keyed by component name.";
-
- leaf name {
- type leafref {
- path "../config/name";
- }
- description
- "References the component name";
- }
-
- container config {
- description
- "Configuration data for each component";
-
- uses platform-component-config;
- }
-
- container state {
-
- config false;
-
- description
- "Operational state data for each component";
-
- uses platform-component-config;
- uses platform-component-state;
- uses platform-component-temp-state;
- uses platform-component-memory-state;
- uses platform-component-power-state;
- }
-
- uses platform-component-properties-top;
- uses platform-subcomponent-ref-top;
- uses platform-anchors-top;
- }
- }
- }
-
-
- // data definition statements
-
- uses platform-component-top;
-
-
- // augments
-
-
-}