+++ /dev/null
-module ietf-hardware {\r
-yang-version 1.1;\r
-namespace "urn:ietf:params:xml:ns:yang:ietf-hardware";\r
-prefix hw;\r
-\r
-import ietf-inet-types {\r
- prefix inet;\r
-}\r
-import ietf-yang-types {\r
- prefix yang;\r
-}\r
-import iana-hardware {\r
- prefix ianahw;\r
-}\r
-\r
-organization\r
- "IETF NETMOD (Network Modeling) Working Group";\r
-\r
-contact\r
- "WG Web: <https://datatracker.ietf.org/wg/netmod/>\r
- WG List: <mailto:netmod@ietf.org>\r
- Editor: Andy Bierman\r
- <mailto:andy@yumaworks.com>\r
- Editor: Martin Bjorklund\r
- <mailto:mbj@tail-f.com>\r
- Editor: Jie Dong\r
- <mailto:jie.dong@huawei.com>\r
- Editor: Dan Romascanu\r
- <mailto:dromasca@gmail.com>";\r
-\r
-description\r
- "This module contains a collection of YANG definitions for\r
- managing hardware.\r
- This data model is designed for the Network Management Datastore\r
- Architecture (NMDA) defined in RFC 8342.\r
- Copyright (c) 2018 IETF Trust and the persons identified as\r
- authors of the code. All rights reserved.\r
- Redistribution and use in source and binary forms, with or\r
- without modification, is permitted pursuant to, and subject\r
- to the license terms contained in, the Simplified BSD License\r
- set forth in Section 4.c of the IETF Trust's Legal Provisions\r
- Relating to IETF Documents\r
- (https://trustee.ietf.org/license-info).\r
- This version of this YANG module is part of RFC 8348; see\r
- the RFC itself for full legal notices.";\r
-\r
-revision 2018-03-13 {\r
- description\r
- "Initial revision.";\r
- reference\r
- "RFC 8348: A YANG Data Model for Hardware Management";\r
-}\r
-\r
-/*\r
- * Features\r
- */\r
-\r
-feature entity-mib {\r
- description\r
- "This feature indicates that the device implements\r
- the ENTITY-MIB.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4)";\r
-}\r
-\r
-feature hardware-state {\r
- description\r
- "Indicates that ENTITY-STATE-MIB objects are supported";\r
- reference\r
- "RFC 4268: Entity State MIB";\r
-}\r
-\r
-feature hardware-sensor {\r
- description\r
- "Indicates that ENTITY-SENSOR-MIB objects are supported";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base";\r
-}\r
-\r
-/*\r
- * Typedefs\r
- */\r
-\r
-typedef admin-state {\r
- type enumeration {\r
- enum unknown {\r
- value 1;\r
- description\r
- "The resource is unable to report administrative state.";\r
- }\r
- enum locked {\r
- value 2;\r
- description\r
- "The resource is administratively prohibited from use.";\r
- }\r
- enum shutting-down {\r
- value 3;\r
- description\r
- "The resource usage is administratively limited to current\r
- instances of use.";\r
- }\r
- enum unlocked {\r
- value 4;\r
- description\r
- "The resource is not administratively prohibited from\r
- use.";\r
- }\r
- }\r
- description\r
- "Represents the various possible administrative states.";\r
- reference\r
- "RFC 4268: Entity State MIB - EntityAdminState";\r
-}\r
-\r
-typedef oper-state {\r
- type enumeration {\r
- enum unknown {\r
- value 1;\r
- description\r
- "The resource is unable to report its operational state.";\r
- }\r
- enum disabled {\r
- value 2;\r
- description\r
- "The resource is totally inoperable.";\r
- }\r
- enum enabled {\r
- value 3;\r
-\r
- description\r
- "The resource is partially or fully operable.";\r
- }\r
- enum testing {\r
- value 4;\r
- description\r
- "The resource is currently being tested and cannot\r
- therefore report whether or not it is operational.";\r
- }\r
- }\r
- description\r
- "Represents the possible values of operational states.";\r
- reference\r
- "RFC 4268: Entity State MIB - EntityOperState";\r
-}\r
-\r
-typedef usage-state {\r
- type enumeration {\r
- enum unknown {\r
- value 1;\r
- description\r
- "The resource is unable to report usage state.";\r
- }\r
- enum idle {\r
- value 2;\r
- description\r
- "The resource is servicing no users.";\r
- }\r
- enum active {\r
- value 3;\r
- description\r
- "The resource is currently in use, and it has sufficient\r
- spare capacity to provide for additional users.";\r
- }\r
- enum busy {\r
- value 4;\r
- description\r
- "The resource is currently in use, but it currently has no\r
- spare capacity to provide for additional users.";\r
- }\r
- }\r
- description\r
- "Represents the possible values of usage states.";\r
- reference\r
- "RFC 4268: Entity State MIB - EntityUsageState";\r
-}\r
-\r
-typedef alarm-state {\r
- type bits {\r
- bit unknown {\r
- position 0;\r
- description\r
- "The resource is unable to report alarm state.";\r
- }\r
- bit under-repair {\r
- position 1;\r
- description\r
- "The resource is currently being repaired, which, depending\r
- on the implementation, may make the other values in this\r
- bit string not meaningful.";\r
- }\r
- bit critical {\r
- position 2;\r
- description\r
- "One or more critical alarms are active against the\r
- resource.";\r
- }\r
- bit major {\r
- position 3;\r
- description\r
- "One or more major alarms are active against the\r
- resource.";\r
- }\r
- bit minor {\r
- position 4;\r
- description\r
- "One or more minor alarms are active against the\r
- resource.";\r
- }\r
- bit warning {\r
- position 5;\r
- description\r
- "One or more warning alarms are active against the\r
- resource.";\r
- }\r
- bit indeterminate {\r
- position 6;\r
- description\r
- "One or more alarms of whose perceived severity cannot be\r
- determined are active against this resource.";\r
- }\r
- }\r
- description\r
- "Represents the possible values of alarm states. An alarm is a\r
- persistent indication of an error or warning condition.\r
- When no bits of this attribute are set, then no active alarms\r
- are known against this component and it is not under repair.";\r
- reference\r
- "RFC 4268: Entity State MIB - EntityAlarmStatus";\r
-}\r
-\r
-typedef standby-state {\r
- type enumeration {\r
- enum unknown {\r
- value 1;\r
- description\r
- "The resource is unable to report standby state.";\r
- }\r
- enum hot-standby {\r
- value 2;\r
- description\r
- "The resource is not providing service, but it will be\r
- immediately able to take over the role of the resource to\r
- be backed up, without the need for initialization\r
- activity, and will contain the same information as the\r
- resource to be backed up.";\r
- }\r
- enum cold-standby {\r
- value 3;\r
- description\r
- "The resource is to back up another resource, but it will\r
- not be immediately able to take over the role of a\r
- resource to be backed up and will require some\r
- initialization activity.";\r
- }\r
- enum providing-service {\r
- value 4;\r
- description\r
- "The resource is providing service.";\r
- }\r
- }\r
- description\r
- "Represents the possible values of standby states.";\r
- reference\r
- "RFC 4268: Entity State MIB - EntityStandbyStatus";\r
-}\r
-\r
-typedef sensor-value-type {\r
- type enumeration {\r
- enum other {\r
- value 1;\r
- description\r
- "A measure other than those listed below.";\r
- }\r
- enum unknown {\r
- value 2;\r
- description\r
- "An unknown measurement or arbitrary, relative numbers";\r
- }\r
- enum volts-AC {\r
- value 3;\r
- description\r
- "A measure of electric potential (alternating current).";\r
- }\r
- enum volts-DC {\r
- value 4;\r
- description\r
- "A measure of electric potential (direct current).";\r
- }\r
- enum amperes {\r
- value 5;\r
- description\r
- "A measure of electric current.";\r
- }\r
- enum watts {\r
- value 6;\r
- description\r
- "A measure of power.";\r
- }\r
- enum hertz {\r
- value 7;\r
- description\r
- "A measure of frequency.";\r
- }\r
- enum celsius {\r
- value 8;\r
- description\r
- "A measure of temperature.";\r
- }\r
- enum percent-RH {\r
- value 9;\r
- description\r
- "A measure of percent relative humidity.";\r
- }\r
- enum rpm {\r
- value 10;\r
- description\r
- "A measure of shaft revolutions per minute.";\r
- }\r
- enum cmm {\r
- value 11;\r
- description\r
- "A measure of cubic meters per minute (airflow).";\r
- }\r
- enum truth-value {\r
- value 12;\r
- description\r
- "Value is one of 1 (true) or 2 (false)";\r
- }\r
- }\r
- description\r
- "A node using this data type represents the sensor measurement\r
- data type associated with a physical sensor value. The actual\r
- data units are determined by examining a node of this type\r
- together with the associated sensor-value-scale node.\r
- A node of this type SHOULD be defined together with nodes of\r
- type sensor-value-scale and type sensor-value-precision.\r
- These three types are used to identify the semantics of a node\r
- of type sensor-value.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- EntitySensorDataType";\r
-}\r
-\r
-typedef sensor-value-scale {\r
- type enumeration {\r
- enum yocto {\r
- value 1;\r
- description\r
- "Data scaling factor of 10^-24.";\r
- }\r
- enum zepto {\r
- value 2;\r
- description\r
- "Data scaling factor of 10^-21.";\r
- }\r
- enum atto {\r
- value 3;\r
- description\r
- "Data scaling factor of 10^-18.";\r
- }\r
- enum femto {\r
- value 4;\r
- description\r
- "Data scaling factor of 10^-15.";\r
- }\r
- enum pico {\r
- value 5;\r
- description\r
- "Data scaling factor of 10^-12.";\r
- }\r
- enum nano {\r
- value 6;\r
- description\r
- "Data scaling factor of 10^-9.";\r
- }\r
- enum micro {\r
- value 7;\r
- description\r
- "Data scaling factor of 10^-6.";\r
- }\r
- enum milli {\r
- value 8;\r
- description\r
- "Data scaling factor of 10^-3.";\r
- }\r
- enum units {\r
- value 9;\r
- description\r
- "Data scaling factor of 10^0.";\r
- }\r
- enum kilo {\r
- value 10;\r
- description\r
- "Data scaling factor of 10^3.";\r
- }\r
- enum mega {\r
- value 11;\r
- description\r
- "Data scaling factor of 10^6.";\r
- }\r
- enum giga {\r
- value 12;\r
- description\r
- "Data scaling factor of 10^9.";\r
- }\r
- enum tera {\r
- value 13;\r
- description\r
- "Data scaling factor of 10^12.";\r
- }\r
- enum peta {\r
- value 14;\r
- description\r
- "Data scaling factor of 10^15.";\r
- }\r
- enum exa {\r
- value 15;\r
- description\r
- "Data scaling factor of 10^18.";\r
- }\r
- enum zetta {\r
- value 16;\r
- description\r
- "Data scaling factor of 10^21.";\r
- }\r
- enum yotta {\r
- value 17;\r
- description\r
- "Data scaling factor of 10^24.";\r
- }\r
- }\r
- description\r
- "A node using this data type represents a data scaling factor,\r
- represented with an International System of Units (SI) prefix.\r
- The actual data units are determined by examining a node of\r
- this type together with the associated sensor-value-type.\r
- A node of this type SHOULD be defined together with nodes of\r
- type sensor-value-type and type sensor-value-precision.\r
- Together, associated nodes of these three types are used to\r
- identify the semantics of a node of type sensor-value.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- EntitySensorDataScale";\r
-}\r
-\r
-typedef sensor-value-precision {\r
- type int8 {\r
- range "-8 .. 9";\r
- }\r
- description\r
- "A node using this data type represents a sensor value\r
- precision range.\r
- A node of this type SHOULD be defined together with nodes of\r
- type sensor-value-type and type sensor-value-scale. Together,\r
- associated nodes of these three types are used to identify the\r
- semantics of a node of type sensor-value.\r
- If a node of this type contains a value in the range 1 to 9,\r
- it represents the number of decimal places in the fractional\r
- part of an associated sensor-value fixed-point number.\r
- If a node of this type contains a value in the range -8 to -1,\r
- it represents the number of accurate digits in the associated\r
- sensor-value fixed-point number.\r
- The value zero indicates the associated sensor-value node is\r
- not a fixed-point number.\r
- Server implementers must choose a value for the associated\r
- sensor-value-precision node so that the precision and accuracy\r
- of the associated sensor-value node is correctly indicated.\r
- For example, a component representing a temperature sensor\r
- that can measure 0 to 100 degrees C in 0.1 degree\r
- increments, +/- 0.05 degrees, would have a\r
- sensor-value-precision value of '1', a sensor-value-scale\r
- value of 'units', and a sensor-value ranging from '0' to\r
- '1000'. The sensor-value would be interpreted as\r
- 'degrees C * 10'.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- EntitySensorPrecision";\r
-}\r
-\r
-typedef sensor-value {\r
- type int32 {\r
- range "-1000000000 .. 1000000000";\r
- }\r
- description\r
- "A node using this data type represents a sensor value.\r
- A node of this type SHOULD be defined together with nodes of\r
- type sensor-value-type, type sensor-value-scale, and\r
- type sensor-value-precision. Together, associated nodes of\r
- those three types are used to identify the semantics of a node\r
- of this data type.\r
- The semantics of a node using this data type are determined by\r
- the value of the associated sensor-value-type node.\r
- If the associated sensor-value-type node is equal to 'voltsAC',\r
- 'voltsDC', 'amperes', 'watts', 'hertz', 'celsius', or 'cmm',\r
- then a node of this type MUST contain a fixed-point number\r
- ranging from -999,999,999 to +999,999,999. The value\r
- -1000000000 indicates an underflow error. The value\r
- +1000000000 indicates an overflow error. The\r
- sensor-value-precision indicates how many fractional digits\r
- are represented in the associated sensor-value node.\r
- If the associated sensor-value-type node is equal to\r
- 'percentRH', then a node of this type MUST contain a number\r
- ranging from 0 to 100.\r
- If the associated sensor-value-type node is equal to 'rpm',\r
- then a node of this type MUST contain a number ranging from\r
- -999,999,999 to +999,999,999.\r
- If the associated sensor-value-type node is equal to\r
- 'truth-value', then a node of this type MUST contain either the\r
- value 1 (true) or the value 2 (false).\r
- If the associated sensor-value-type node is equal to 'other' or\r
- 'unknown', then a node of this type MUST contain a number\r
- ranging from -1000000000 to 1000000000.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- EntitySensorValue";\r
-}\r
-\r
-typedef sensor-status {\r
- type enumeration {\r
- enum ok {\r
- value 1;\r
- description\r
- "Indicates that the server can obtain the sensor value.";\r
- }\r
- enum unavailable {\r
- value 2;\r
- description\r
- "Indicates that the server presently cannot obtain the\r
- sensor value.";\r
- }\r
- enum nonoperational {\r
- value 3;\r
- description\r
- "Indicates that the server believes the sensor is broken.\r
- The sensor could have a hard failure (disconnected wire)\r
- or a soft failure such as out-of-range, jittery, or wildly\r
- fluctuating readings.";\r
- }\r
- }\r
- description\r
- "A node using this data type represents the operational status\r
- of a physical sensor.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- EntitySensorStatus";\r
-}\r
-\r
-/*\r
- * Data nodes\r
- */\r
-\r
-container hardware {\r
- description\r
- "Data nodes representing components.\r
- If the server supports configuration of hardware components,\r
- then this data model is instantiated in the configuration\r
- datastores supported by the server. The leaf-list 'datastore'\r
- for the module 'ietf-hardware' in the YANG library provides\r
- this information.";\r
-\r
- leaf last-change {\r
- type yang:date-and-time;\r
- config false;\r
- description\r
- "The time the '/hardware/component' list changed in the\r
- operational state.";\r
- }\r
-\r
- list component {\r
- key name;\r
- description\r
- "List of components.\r
- When the server detects a new hardware component, it\r
- initializes a list entry in the operational state.\r
- If the server does not support configuration of hardware\r
- components, list entries in the operational state are\r
- initialized with values for all nodes as detected by the\r
- implementation.\r
- Otherwise, this procedure is followed:\r
- 1. If there is an entry in the '/hardware/component' list\r
- in the intended configuration with values for the nodes\r
- 'class', 'parent', and 'parent-rel-pos' that are equal\r
- to the detected values, then the list entry in the\r
- operational state is initialized with the configured\r
- values, including the 'name'.\r
- 2. Otherwise (i.e., there is no matching configuration\r
- entry), the list entry in the operational state is\r
- initialized with values for all nodes as detected by\r
- the implementation.\r
- If the '/hardware/component' list in the intended\r
- configuration is modified, then the system MUST behave as if\r
- it re-initializes itself and follow the procedure in (1).";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalEntry";\r
-\r
- leaf name {\r
- type string;\r
- description\r
- "The name assigned to this component.\r
- This name is not required to be the same as\r
- entPhysicalName.";\r
- }\r
-\r
- leaf class {\r
- type identityref {\r
- base ianahw:hardware-class;\r
- }\r
- mandatory true;\r
- description\r
- "An indication of the general hardware type of the\r
- component.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalClass";\r
- }\r
-\r
- leaf physical-index {\r
- if-feature entity-mib;\r
- type int32 {\r
- range "1..2147483647";\r
- }\r
- config false;\r
- description\r
- "The entPhysicalIndex for the entPhysicalEntry represented\r
- by this list entry.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalIndex";\r
- }\r
-\r
- leaf description {\r
- type string;\r
- config false;\r
- description\r
- "A textual description of the component. This node should\r
- contain a string that identifies the manufacturer's name\r
- for the component and should be set to a distinct value\r
- for each version or model of the component.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalDescr";\r
- }\r
-\r
- leaf parent {\r
- type leafref {\r
- path "../../component/name";\r
- require-instance false;\r
- }\r
- description\r
- "The name of the component that physically contains this\r
- component.\r
- If this leaf is not instantiated, it indicates that this\r
- component is not contained in any other component.\r
- In the event that a physical component is contained by\r
- more than one physical component (e.g., double-wide\r
- modules), this node contains the name of one of these\r
- components. An implementation MUST use the same name\r
- every time this node is instantiated.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalContainedIn";\r
- }\r
-\r
- leaf parent-rel-pos {\r
- type int32 {\r
- range "0 .. 2147483647";\r
- }\r
- description\r
- "An indication of the relative position of this child\r
- component among all its sibling components. Sibling\r
- components are defined as components that:\r
- o share the same value of the 'parent' node and\r
- o share a common base identity for the 'class' node.\r
- Note that the last rule gives implementations flexibility\r
- in how components are numbered. For example, some\r
- implementations might have a single number series for all\r
- components derived from 'ianahw:port', while some others\r
- might have different number series for different\r
- components with identities derived from 'ianahw:port' (for\r
- example, one for registered jack 45 (RJ45) and one for\r
- small form-factor pluggable (SFP)).";\r
-\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) -\r
- entPhysicalParentRelPos";\r
- }\r
-\r
- leaf-list contains-child {\r
- type leafref {\r
- path "../../component/name";\r
- }\r
- config false;\r
- description\r
- "The name of the contained component.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalChildIndex";\r
- }\r
-\r
- leaf hardware-rev {\r
- type string;\r
- config false;\r
- description\r
- "The vendor-specific hardware revision string for the\r
- component. The preferred value is the hardware revision\r
- identifier actually printed on the component itself (if\r
- present).";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) -\r
- entPhysicalHardwareRev";\r
- }\r
-\r
- leaf firmware-rev {\r
- type string;\r
- config false;\r
- description\r
- "The vendor-specific firmware revision string for the\r
- component.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) -\r
- entPhysicalFirmwareRev";\r
- }\r
-\r
- leaf software-rev {\r
- type string;\r
- config false;\r
-\r
- description\r
- "The vendor-specific software revision string for the\r
- component.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) -\r
- entPhysicalSoftwareRev";\r
- }\r
-\r
- leaf serial-num {\r
- type string;\r
- config false;\r
- description\r
- "The vendor-specific serial number string for the\r
- component. The preferred value is the serial number\r
- string actually printed on the component itself (if\r
- present).";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalSerialNum";\r
- }\r
-\r
- leaf mfg-name {\r
- type string;\r
- config false;\r
- description\r
- "The name of the manufacturer of this physical component.\r
- The preferred value is the manufacturer name string\r
- actually printed on the component itself (if present).\r
- Note that comparisons between instances of the\r
- 'model-name', 'firmware-rev', 'software-rev', and\r
- 'serial-num' nodes are only meaningful amongst components\r
- with the same value of 'mfg-name'.\r
- If the manufacturer name string associated with the\r
- physical component is unknown to the server, then this\r
- node is not instantiated.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgName";\r
- }\r
-\r
- leaf model-name {\r
- type string;\r
- config false;\r
- description\r
- "The vendor-specific model name identifier string\r
- associated with this physical component. The preferred\r
- value is the customer-visible part number, which may be\r
- printed on the component itself.\r
- If the model name string associated with the physical\r
- component is unknown to the server, then this node is not\r
- instantiated.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalModelName";\r
- }\r
-\r
- leaf alias {\r
- type string;\r
- description\r
- "An 'alias' name for the component, as specified by a\r
- network manager, that provides a non-volatile 'handle' for\r
- the component.\r
- If no configured value exists, the server MAY set the\r
- value of this node to a locally unique value in the\r
- operational state.\r
- A server implementation MAY map this leaf to the\r
- entPhysicalAlias MIB object. Such an implementation needs\r
- to use some mechanism to handle the differences in size\r
- and characters allowed between this leaf and\r
- entPhysicalAlias. The definition of such a mechanism is\r
- outside the scope of this document.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalAlias";\r
- }\r
-\r
- leaf asset-id {\r
- type string;\r
- description\r
- "This node is a user-assigned asset tracking identifier for\r
- the component.\r
- A server implementation MAY map this leaf to the\r
- entPhysicalAssetID MIB object. Such an implementation\r
- needs to use some mechanism to handle the differences in\r
- size and characters allowed between this leaf and\r
- entPhysicalAssetID. The definition of such a mechanism is\r
- outside the scope of this document.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalAssetID";\r
- }\r
-\r
- leaf is-fru {\r
- type boolean;\r
- config false;\r
-\r
- description\r
- "This node indicates whether or not this component is\r
- considered a 'field-replaceable unit' by the vendor. If\r
- this node contains the value 'true', then this component\r
- identifies a field-replaceable unit. For all components\r
- that are permanently contained within a field-replaceable\r
- unit, the value 'false' should be returned for this\r
- node.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalIsFRU";\r
- }\r
-\r
- leaf mfg-date {\r
- type yang:date-and-time;\r
- config false;\r
- description\r
- "The date of manufacturing of the managed component.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalMfgDate";\r
- }\r
-\r
- leaf-list uri {\r
- type inet:uri;\r
- description\r
- "This node contains identification information about the\r
- component.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalUris";\r
- }\r
-\r
- leaf uuid {\r
- type yang:uuid;\r
- config false;\r
- description\r
- "A Universally Unique Identifier of the component.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entPhysicalUUID";\r
- }\r
-\r
- container state {\r
- if-feature hardware-state;\r
- description\r
- "State-related nodes";\r
- reference\r
- "RFC 4268: Entity State MIB";\r
-\r
- leaf state-last-changed {\r
- type yang:date-and-time;\r
- config false;\r
- description\r
- "The date and time when the value of any of the\r
- admin-state, oper-state, usage-state, alarm-state, or\r
- standby-state changed for this component.\r
- If there has been no change since the last\r
- re-initialization of the local system, this node\r
- contains the date and time of local system\r
- initialization. If there has been no change since the\r
- component was added to the local system, this node\r
- contains the date and time of the insertion.";\r
- reference\r
- "RFC 4268: Entity State MIB - entStateLastChanged";\r
- }\r
-\r
- leaf admin-state {\r
- type admin-state;\r
- description\r
- "The administrative state for this component.\r
- This node refers to a component's administrative\r
- permission to service both other components within its\r
- containment hierarchy as well other users of its\r
- services defined by means outside the scope of this\r
- module.\r
- Some components exhibit only a subset of the remaining\r
- administrative state values. Some components cannot be\r
- locked; hence, this node exhibits only the 'unlocked'\r
- state. Other components cannot be shut down gracefully;\r
- hence, this node does not exhibit the 'shutting-down'\r
- state.";\r
- reference\r
- "RFC 4268: Entity State MIB - entStateAdmin";\r
- }\r
-\r
- leaf oper-state {\r
- type oper-state;\r
- config false;\r
- description\r
- "The operational state for this component.\r
- Note that this node does not follow the administrative\r
- state. An administrative state of 'down' does not\r
- predict an operational state of 'disabled'.\r
- Note that some implementations may not be able to\r
- accurately report oper-state while the admin-state node\r
- has a value other than 'unlocked'. In these cases, this\r
- node MUST have a value of 'unknown'.";\r
- reference\r
- "RFC 4268: Entity State MIB - entStateOper";\r
- }\r
-\r
- leaf usage-state {\r
- type usage-state;\r
- config false;\r
- description\r
- "The usage state for this component.\r
- This node refers to a component's ability to service\r
- more components in a containment hierarchy.\r
- Some components will exhibit only a subset of the usage\r
- state values. Components that are unable to ever\r
- service any components within a containment hierarchy\r
- will always have a usage state of 'busy'. In some\r
- cases, a component will be able to support only one\r
- other component within its containment hierarchy and\r
- will therefore only exhibit values of 'idle' and\r
- 'busy'.";\r
- reference\r
- "RFC 4268: Entity State MIB - entStateUsage";\r
- }\r
-\r
- leaf alarm-state {\r
- type alarm-state;\r
- config false;\r
- description\r
- "The alarm state for this component. It does not\r
- include the alarms raised on child components within its\r
- containment hierarchy.";\r
- reference\r
- "RFC 4268: Entity State MIB - entStateAlarm";\r
- }\r
-\r
- leaf standby-state {\r
- type standby-state;\r
- config false;\r
- description\r
- "The standby state for this component.\r
- Some components will exhibit only a subset of the\r
- remaining standby state values. If this component\r
- cannot operate in a standby role, the value of this node\r
- will always be 'providing-service'.";\r
- reference\r
- "RFC 4268: Entity State MIB - entStateStandby";\r
- }\r
- }\r
-\r
- container sensor-data {\r
- when 'derived-from-or-self(../class,\r
- "ianahw:sensor")' {\r
- description\r
- "Sensor data nodes present for any component of type\r
- 'sensor'";\r
- }\r
- if-feature hardware-sensor;\r
- config false;\r
-\r
- description\r
- "Sensor-related nodes.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base";\r
-\r
- leaf value {\r
- type sensor-value;\r
- description\r
- "The most recent measurement obtained by the server\r
- for this sensor.\r
- A client that periodically fetches this node should also\r
- fetch the nodes 'value-type', 'value-scale', and\r
- 'value-precision', since they may change when the value\r
- is changed.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- entPhySensorValue";\r
- }\r
-\r
- leaf value-type {\r
- type sensor-value-type;\r
- description\r
- "The type of data units associated with the\r
- sensor value";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- entPhySensorType";\r
- }\r
- leaf value-scale {\r
- type sensor-value-scale;\r
- description\r
- "The (power of 10) scaling factor associated\r
- with the sensor value";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- entPhySensorScale";\r
- }\r
-\r
- leaf value-precision {\r
- type sensor-value-precision;\r
- description\r
- "The number of decimal places of precision\r
- associated with the sensor value";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- entPhySensorPrecision";\r
- }\r
-\r
- leaf oper-status {\r
- type sensor-status;\r
- description\r
- "The operational status of the sensor.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- entPhySensorOperStatus";\r
- }\r
-\r
- leaf units-display {\r
- type string;\r
- description\r
- "A textual description of the data units that should be\r
- used in the display of the sensor value.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- entPhySensorUnitsDisplay";\r
- }\r
-\r
- leaf value-timestamp {\r
- type yang:date-and-time;\r
- description\r
- "The time the status and/or value of this sensor was last\r
- obtained by the server.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- entPhySensorValueTimeStamp";\r
- }\r
- leaf value-update-rate {\r
- type uint32;\r
- units "milliseconds";\r
- description\r
- "An indication of the frequency that the server updates\r
- the associated 'value' node, represented in\r
- milliseconds. The value zero indicates:\r
- - the sensor value is updated on demand (e.g.,\r
- when polled by the server for a get-request),\r
- - the sensor value is updated when the sensor\r
- value changes (event-driven), or\r
- - the server does not know the update rate.";\r
- reference\r
- "RFC 3433: Entity Sensor Management Information Base -\r
- entPhySensorValueUpdateRate";\r
- }\r
- }\r
- }\r
-}\r
-\r
-/*\r
- * Notifications\r
- */\r
-\r
-notification hardware-state-change {\r
- description\r
- "A hardware-state-change notification is generated when the\r
- value of /hardware/last-change changes in the operational\r
- state.";\r
- reference\r
- "RFC 6933: Entity MIB (Version 4) - entConfigChange";\r
-}\r
-\r
-notification hardware-state-oper-enabled {\r
- if-feature hardware-state;\r
- description\r
- "A hardware-state-oper-enabled notification signifies that a\r
- component has transitioned into the 'enabled' state.";\r
-\r
- leaf name {\r
- type leafref {\r
- path "/hardware/component/name";\r
- }\r
-\r
- description\r
- "The name of the component that has transitioned into the\r
- 'enabled' state.";\r
- }\r
- leaf admin-state {\r
- type leafref {\r
- path "/hardware/component/state/admin-state";\r
- }\r
- description\r
- "The administrative state for the component.";\r
- }\r
- leaf alarm-state {\r
- type leafref {\r
- path "/hardware/component/state/alarm-state";\r
- }\r
- description\r
- "The alarm state for the component.";\r
- }\r
- reference\r
- "RFC 4268: Entity State MIB - entStateOperEnabled";\r
-}\r
-\r
-notification hardware-state-oper-disabled {\r
- if-feature hardware-state;\r
- description\r
- "A hardware-state-oper-disabled notification signifies that a\r
- component has transitioned into the 'disabled' state.";\r
-\r
- leaf name {\r
- type leafref {\r
- path "/hardware/component/name";\r
- }\r
- description\r
- "The name of the component that has transitioned into the\r
- 'disabled' state.";\r
- }\r
- leaf admin-state {\r
- type leafref {\r
- path "/hardware/component/state/admin-state";\r
- }\r
- description\r
- "The administrative state for the component.";\r
- }\r
- leaf alarm-state {\r
- type leafref {\r
- path "/hardware/component/state/alarm-state";\r
- }\r
-\r
- description\r
- "The alarm state for the component.";\r
- }\r
- reference\r
- "RFC 4268: Entity State MIB - entStateOperDisabled";\r
-}\r
-\r
-}\r