draft-ietf-netmod-entity-06.txt   draft-ietf-netmod-entity-07.txt 
Network Working Group A. Bierman Network Working Group A. Bierman
Internet-Draft YumaWorks Internet-Draft YumaWorks
Intended status: Standards Track M. Bjorklund Intended status: Standards Track M. Bjorklund
Expires: June 21, 2018 Tail-f Systems Expires: June 24, 2018 Tail-f Systems
J. Dong J. Dong
Huawei Technologies Huawei Technologies
D. Romascanu D. Romascanu
December 18, 2017
December 21, 2017
A YANG Data Model for Hardware Management A YANG Data Model for Hardware Management
draft-ietf-netmod-entity-06 draft-ietf-netmod-entity-07
Abstract Abstract
This document defines a YANG data model for the management of This document defines a YANG data model for the management of
hardware on a single server. hardware on a single server.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
skipping to change at page 1, line 35 skipping to change at page 1, line 36
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on June 21, 2018. This Internet-Draft will expire on June 24, 2018.
Copyright Notice Copyright Notice
Copyright (c) 2017 IETF Trust and the persons identified as the Copyright (c) 2017 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 29 skipping to change at page 2, line 29
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 35
8.1. URI Registrations . . . . . . . . . . . . . . . . . . . . 35 8.1. URI Registrations . . . . . . . . . . . . . . . . . . . . 35
8.2. YANG Module Registrations . . . . . . . . . . . . . . . . 35 8.2. YANG Module Registrations . . . . . . . . . . . . . . . . 35
9. Security Considerations . . . . . . . . . . . . . . . . . . . 36 9. Security Considerations . . . . . . . . . . . . . . . . . . . 36
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 37 10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 37
11. References . . . . . . . . . . . . . . . . . . . . . . . . . 37 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 37
11.1. Normative References . . . . . . . . . . . . . . . . . . 37 11.1. Normative References . . . . . . . . . . . . . . . . . . 37
11.2. Informative References . . . . . . . . . . . . . . . . . 38 11.2. Informative References . . . . . . . . . . . . . . . . . 38
Appendix A. Hardware State Data Model . . . . . . . . . . . . . 39 Appendix A. Hardware State Data Model . . . . . . . . . . . . . 39
A.1. Hardware State YANG Module . . . . . . . . . . . . . . . 40 A.1. Hardware State YANG Module . . . . . . . . . . . . . . . 40
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 54 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 55
1. Introduction 1. Introduction
This document defines a YANG [RFC7950] data model for the management This document defines a YANG [RFC7950] data model for the management
of hardware on a single server. of hardware on a single server.
The data model includes configuration and system state (status The data model includes configuration and system state (status
information and counters for the collection of statistics). information and counters for the collection of statistics).
The data model in this document is designed to be compliant with the The data model in this document is designed to be compliant with the
skipping to change at page 3, line 37 skipping to change at page 3, line 37
This section describes some of the design objectives for the hardware This section describes some of the design objectives for the hardware
model. model.
o There are many common properties used to identify hardware o There are many common properties used to identify hardware
components, which need to be supported in the hardware data model. components, which need to be supported in the hardware data model.
o There are many important information and states about the o There are many important information and states about the
components, which needs to be collected from the devices which components, which needs to be collected from the devices which
support the hardware data model. support the hardware data model.
o The hardware data model SHOULD be suitable for new implementations o The hardware data model should be suitable for new implementations
to use as is. to use as is.
o The hardware data model defined in this document can be o The hardware data model defined in this document can be
implemented on a system that also implements ENTITY-MIB, thus the implemented on a system that also implements ENTITY-MIB, thus the
mapping between the hardware data model and ENTITY-MIB SHOULD be mapping between the hardware data model and ENTITY-MIB should be
clear. clear.
o The data model should support pre-provisioning of hardware o The data model should support pre-provisioning of hardware
components. components.
3. Hardware Data Model 3. Hardware Data Model
This document defines the YANG module "ietf-hardware", which has the This document defines the YANG module "ietf-hardware", which has the
following structure: following structure:
skipping to change at page 4, line 19 skipping to change at page 4, line 19
+--rw name string +--rw name string
+--rw class identityref +--rw class identityref
+--ro physical-index? int32 {entity-mib}? +--ro physical-index? int32 {entity-mib}?
+--ro description? string +--ro description? string
+--rw parent? -> ../../component/name +--rw parent? -> ../../component/name
+--rw parent-rel-pos? int32 +--rw parent-rel-pos? int32
+--ro contains-child* -> ../../component/name +--ro contains-child* -> ../../component/name
+--ro hardware-rev? string +--ro hardware-rev? string
+--ro firmware-rev? string +--ro firmware-rev? string
+--ro software-rev? string +--ro software-rev? string
+--ro serial-num? string +--rw serial-num? string
+--rw mfg-name? string +--rw mfg-name? string
+--ro model-name? string +--rw model-name? string
+--rw alias? string +--rw alias? string
+--rw asset-id? string +--rw asset-id? string
+--ro is-fru? boolean +--ro is-fru? boolean
+--ro mfg-date? yang:date-and-time +--ro mfg-date? yang:date-and-time
+--rw uri* inet:uri +--rw uri* inet:uri
+--ro uuid? yang:uuid +--ro uuid? yang:uuid
+--rw state {hardware-state}? +--rw state {hardware-state}?
| +--ro state-last-changed? yang:date-and-time | +--ro state-last-changed? yang:date-and-time
| +--rw admin-state? admin-state | +--rw admin-state? admin-state
| +--ro oper-state? oper-state | +--ro oper-state? oper-state
skipping to change at page 20, line 16 skipping to change at page 20, line 16
If the server does not support configuration of hardware If the server does not support configuration of hardware
components, list entries in the operational state are components, list entries in the operational state are
initialized with values for all nodes as detected by the initialized with values for all nodes as detected by the
implementation. implementation.
Otherwise, the following procedure is followed: Otherwise, the following procedure is followed:
1. If there is an entry in the /hardware/component list in 1. If there is an entry in the /hardware/component list in
the intended configuration with values for the nodes the intended configuration with values for the nodes
'class', 'parent', 'parent-rel-pos' that are equal to 'class', 'parent', 'parent-rel-pos' that are equal to
the detected values, then: the detected values, then the list entry in operational
state is initialized with the configured values,
1a. If the configured entry has a value for 'mfg-name' including the 'name'. The leafs 'serial-num',
that is equal to the detected value, or if the 'mfg-name', and 'model-name' are treated specially; see
'mfg-name' value cannot be detected, then the list their descriptions for details.
entry in the operational state is initialized with the
configured values for all configured nodes, including
the 'name'.
Otherwise, the list entry in the operational state is
initialized with values for all nodes as detected by
the implementation. The implementation may raise an
alarm that informs about the 'mfg-name' mismatch
condition. How this is done is outside the scope of
this document.
1b. Otherwise (i.e., there is no matching configuration 2. Otherwise (i.e., there is no matching configuration
entry), the list entry in the operational state is entry), the list entry in the operational state is
initialized with values for all nodes as detected by initialized with values for all nodes as detected by
the implementation. the implementation.
If the /hardware/component list in the intended If the /hardware/component list in the intended
configuration is modified, then the system MUST behave as if configuration is modified, then the system MUST behave as if
it re-initializes itself, and follow the procedure in (1)."; it re-initializes itself, and follow the procedure in (1).";
reference "RFC 6933: entPhysicalEntry"; reference "RFC 6933: entPhysicalEntry";
leaf name { leaf name {
type string; type string;
description description
"The name assigned to this component. "The name assigned to this component.
skipping to change at page 23, line 27 skipping to change at page 23, line 15
type string; type string;
config false; config false;
description description
"The vendor-specific software revision string for the "The vendor-specific software revision string for the
component."; component.";
reference "RFC 6933: entPhysicalSoftwareRev"; reference "RFC 6933: entPhysicalSoftwareRev";
} }
leaf serial-num { leaf serial-num {
type string; type string;
config false;
description description
"The vendor-specific serial number string for the "The vendor-specific serial number string for the
component. The preferred value is the serial number component. The preferred value is the serial number
string actually printed on the component itself (if string actually printed on the component itself (if
present)."; present).
This leaf can be configured. The configured value is used
only if the server cannot determine the vendor-specific
serial number from the component itself.";
reference "RFC 6933: entPhysicalSerialNum"; reference "RFC 6933: entPhysicalSerialNum";
} }
leaf mfg-name { leaf mfg-name {
type string; type string;
description description
"The name of the manufacturer of this physical component. "The name of the manufacturer of this physical component.
The preferred value is the manufacturer name string The preferred value is the manufacturer name string
actually printed on the component itself (if present). actually printed on the component itself (if present).
Note that comparisons between instances of the model-name, Note that comparisons between instances of the model-name,
firmware-rev, software-rev, and the serial-num nodes are firmware-rev, software-rev, and the serial-num nodes are
only meaningful amongst component with the same value of only meaningful amongst component with the same value of
mfg-name. mfg-name.
If the manufacturer name string associated with the If the manufacturer name string associated with the
physical component is unknown to the server, then this physical component is unknown to the server, then this
node is not instantiated."; node is not instantiated.
This leaf can be configured. The configured value is used
only if the server cannot determine the vendor-specific
serial number from the component itself.";
reference "RFC 6933: entPhysicalMfgName"; reference "RFC 6933: entPhysicalMfgName";
} }
leaf model-name { leaf model-name {
type string; type string;
config false;
description description
"The vendor-specific model name identifier string "The vendor-specific model name identifier string
associated with this physical component. The preferred associated with this physical component. The preferred
value is the customer-visible part number, which may be value is the customer-visible part number, which may be
printed on the component itself. printed on the component itself.
If the model name string associated with the physical If the model name string associated with the physical
component is unknown to the server, then this node is not component is unknown to the server, then this node is not
instantiated."; instantiated.
This leaf can be configured. The configured value is used
only if the server cannot determine the vendor-specific
serial number from the component itself.";
reference "RFC 6933: entPhysicalModelName"; reference "RFC 6933: entPhysicalModelName";
} }
leaf alias { leaf alias {
type string; type string;
description description
"An 'alias' name for the component, as specified by a "An 'alias' name for the component, as specified by a
network manager, and provides a non-volatile 'handle' for network manager, and provides a non-volatile 'handle' for
the component. the component.
skipping to change at page 36, line 22 skipping to change at page 36, line 22
prefix: hw prefix: hw
reference: RFC XXXX reference: RFC XXXX
name: ietf-hardware-state name: ietf-hardware-state
namespace: urn:ietf:params:xml:ns:yang:ietf-hardware-state namespace: urn:ietf:params:xml:ns:yang:ietf-hardware-state
prefix: hw-state prefix: hw-state
reference: RFC XXXX reference: RFC XXXX
9. Security Considerations 9. Security Considerations
The YANG modules defined in this document are designed to be accessed The YANG modules specified in this document define a schema for data
via network management protocols such as NETCONF [RFC6241] or that is designed to be accessed via network management protocols such
RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport as NETCONF [RFC6241] or RESTCONF [RFC8040]. The lowest NETCONF layer
layer, and the mandatory-to-implement secure transport is Secure is the secure transport layer, and the mandatory-to-implement secure
Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the transport is Secure Shell (SSH) [RFC6242]. The lowest RESTCONF layer
mandatory-to-implement secure transport is TLS [RFC5246]. is HTTPS, and the mandatory-to-implement secure transport is TLS
[RFC5246].
The NETCONF access control model [RFC6536] provides the means to The NETCONF access control model [RFC6536] provides the means to
restrict access for particular NETCONF or RESTCONF users to a restrict access for particular NETCONF or RESTCONF users to a
preconfigured subset of all available NETCONF or RESTCONF protocol preconfigured subset of all available NETCONF or RESTCONF protocol
operations and content. operations and content.
There are a number of data nodes defined in the YANG module There are a number of data nodes defined in the YANG module
"ietf-hardware" that are writable/creatable/deletable (i.e., config "ietf-hardware" that are writable/creatable/deletable (i.e., config
true, which is the default). These data nodes may be considered true, which is the default). These data nodes may be considered
sensitive or vulnerable in some network environments. Write sensitive or vulnerable in some network environments. Write
skipping to change at page 37, line 29 skipping to change at page 37, line 29
helpful comments on various draft versions of this document: Bart helpful comments on various draft versions of this document: Bart
Bogaert, Timothy Carey, William Lupton, Juergen Schoenwaelder. Bogaert, Timothy Carey, William Lupton, Juergen Schoenwaelder.
11. References 11. References
11.1. Normative References 11.1. Normative References
[I-D.ietf-netmod-revised-datastores] [I-D.ietf-netmod-revised-datastores]
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K.,
and R. Wilton, "Network Management Datastore and R. Wilton, "Network Management Datastore
Architecture", draft-ietf-netmod-revised-datastores-07 Architecture", draft-ietf-netmod-revised-datastores-08
(work in progress), November 2017. (work in progress), December 2017.
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119, DOI 10.17487/
DOI 10.17487/RFC2119, March 1997, <https://www.rfc- RFC2119, March 1997, <https://www.rfc-editor.org/info/
editor.org/info/rfc2119>. rfc2119>.
[RFC3433] Bierman, A., Romascanu, D., and K. Norseth, "Entity Sensor [RFC3433] Bierman, A., Romascanu, D., and K. Norseth, "Entity Sensor
Management Information Base", RFC 3433, Management Information Base", RFC 3433, DOI 10.17487/
DOI 10.17487/RFC3433, December 2002, <https://www.rfc- RFC3433, December 2002, <https://www.rfc-editor.org/info/
editor.org/info/rfc3433>. rfc3433>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
DOI 10.17487/RFC3688, January 2004, <https://www.rfc- DOI 10.17487/RFC3688, January 2004, <https://www.rfc-
editor.org/info/rfc3688>. editor.org/info/rfc3688>.
[RFC4268] Chisholm, S. and D. Perkins, "Entity State MIB", RFC 4268, [RFC4268] Chisholm, S. and D. Perkins, "Entity State MIB", RFC 4268,
DOI 10.17487/RFC4268, November 2005, <https://www.rfc- DOI 10.17487/RFC4268, November 2005, <https://www.rfc-
editor.org/info/rfc4268>. editor.org/info/rfc4268>.
[RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security [RFC5246] Dierks, T. and E. Rescorla, "The Transport Layer Security
(TLS) Protocol Version 1.2", RFC 5246, (TLS) Protocol Version 1.2", RFC 5246, DOI 10.17487/
DOI 10.17487/RFC5246, August 2008, <https://www.rfc- RFC5246, August 2008, <https://www.rfc-editor.org/info/
editor.org/info/rfc5246>. rfc5246>.
[RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
the Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
DOI 10.17487/RFC6020, October 2010, <https://www.rfc- DOI 10.17487/RFC6020, October 2010, <https://www.rfc-
editor.org/info/rfc6020>. editor.org/info/rfc6020>.
[RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
and A. Bierman, Ed., "Network Configuration Protocol and A. Bierman, Ed., "Network Configuration Protocol
(NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011, (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<https://www.rfc-editor.org/info/rfc6241>. <https://www.rfc-editor.org/info/rfc6241>.
[RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure [RFC6242] Wasserman, M., "Using the NETCONF Protocol over Secure
Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011, Shell (SSH)", RFC 6242, DOI 10.17487/RFC6242, June 2011,
<https://www.rfc-editor.org/info/rfc6242>. <https://www.rfc-editor.org/info/rfc6242>.
[RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration [RFC6536] Bierman, A. and M. Bjorklund, "Network Configuration
Protocol (NETCONF) Access Control Model", RFC 6536, Protocol (NETCONF) Access Control Model", RFC 6536, DOI
DOI 10.17487/RFC6536, March 2012, <https://www.rfc- 10.17487/RFC6536, March 2012, <https://www.rfc-
editor.org/info/rfc6536>. editor.org/info/rfc6536>.
[RFC6933] Bierman, A., Romascanu, D., Quittek, J., and M. [RFC6933] Bierman, A., Romascanu, D., Quittek, J., and M.
Chandramouli, "Entity MIB (Version 4)", RFC 6933, Chandramouli, "Entity MIB (Version 4)", RFC 6933, DOI
DOI 10.17487/RFC6933, May 2013, <https://www.rfc- 10.17487/RFC6933, May 2013, <https://www.rfc-
editor.org/info/rfc6933>. editor.org/info/rfc6933>.
[RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", [RFC7950] Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language",
RFC 7950, DOI 10.17487/RFC7950, August 2016, RFC 7950, DOI 10.17487/RFC7950, August 2016,
<https://www.rfc-editor.org/info/rfc7950>. <https://www.rfc-editor.org/info/rfc7950>.
[RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF [RFC8040] Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017,
<https://www.rfc-editor.org/info/rfc8040>. <https://www.rfc-editor.org/info/rfc8040>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>. May 2017, <https://www.rfc-editor.org/info/rfc8174>.
11.2. Informative References 11.2. Informative References
[I-D.ietf-netmod-yang-tree-diagrams] [I-D.ietf-netmod-yang-tree-diagrams]
Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft-
ietf-netmod-yang-tree-diagrams-02 (work in progress), ietf-netmod-yang-tree-diagrams-03 (work in progress),
October 2017. December 2017.
Appendix A. Hardware State Data Model Appendix A. Hardware State Data Model
This non-normative appendix contains a data model designed as a This non-normative appendix contains a data model designed as a
temporary solution for implementations that do not yet support the temporary solution for implementations that do not yet support the
Network Management Datastore Architecture (NMDA) defined in Network Management Datastore Architecture (NMDA) defined in
[I-D.ietf-netmod-revised-datastores]. It has the following [I-D.ietf-netmod-revised-datastores]. It has the following
structure: structure:
module: ietf-hardware-state module: ietf-hardware-state
+--ro hardware x--ro hardware
+--ro last-change? yang:date-and-time x--ro last-change? yang:date-and-time
+--ro component* [name] x--ro component* [name]
+--ro name string x--ro name string
+--ro class identityref x--ro class identityref
+--ro physical-index? int32 {entity-mib}? x--ro physical-index? int32 {entity-mib}?
+--ro description? string x--ro description? string
+--ro parent? -> ../../component/name x--ro parent? -> ../../component/name
+--ro parent-rel-pos? int32 x--ro parent-rel-pos? int32
+--ro contains-child* -> ../../component/name x--ro contains-child* -> ../../component/name
+--ro hardware-rev? string x--ro hardware-rev? string
+--ro firmware-rev? string x--ro firmware-rev? string
+--ro software-rev? string x--ro software-rev? string
+--ro serial-num? string x--ro serial-num? string
+--ro mfg-name? string x--ro mfg-name? string
+--ro model-name? string x--ro model-name? string
+--ro alias? string x--ro alias? string
+--ro asset-id? string x--ro asset-id? string
+--ro is-fru? boolean x--ro is-fru? boolean
+--ro mfg-date? yang:date-and-time x--ro mfg-date? yang:date-and-time
+--ro uri* inet:uri x--ro uri* inet:uri
+--ro uuid? yang:uuid x--ro uuid? yang:uuid
+--ro state {hardware-state}? x--ro state {hardware-state}?
| +--ro state-last-changed? yang:date-and-time | x--ro state-last-changed? yang:date-and-time
| +--ro admin-state? hw:admin-state | x--ro admin-state? hw:admin-state
| +--ro oper-state? hw:oper-state | x--ro oper-state? hw:oper-state
| +--ro usage-state? hw:usage-state | x--ro usage-state? hw:usage-state
| +--ro alarm-state? hw:alarm-state | x--ro alarm-state? hw:alarm-state
| +--ro standby-state? hw:standby-state | x--ro standby-state? hw:standby-state
+--ro sensor-data {hardware-sensor}? x--ro sensor-data {hardware-sensor}?
+--ro value? hw:sensor-value x--ro value? hw:sensor-value
+--ro value-type? hw:sensor-value-type x--ro value-type? hw:sensor-value-type
+--ro value-scale? hw:sensor-value-scale x--ro value-scale? hw:sensor-value-scale
+--ro value-precision? hw:sensor-value-precision x--ro value-precision? hw:sensor-value-precision
+--ro oper-status? hw:sensor-status x--ro oper-status? hw:sensor-status
+--ro units-display? string x--ro units-display? string
+--ro value-timestamp? yang:date-and-time x--ro value-timestamp? yang:date-and-time
+--ro value-update-rate? uint32 x--ro value-update-rate? uint32
notifications: notifications:
+---n hardware-state-change x---n hardware-state-change
+---n hardware-state-oper-enabled {hardware-state}? x---n hardware-state-oper-enabled {hardware-state}?
| +--ro name? -> /hardware/component/name | x--ro name? -> /hardware/component/name
| +--ro admin-state? -> /hardware/component/state/admin-state | x--ro admin-state? -> /hardware/component/state/admin-state
| +--ro alarm-state? -> /hardware/component/state/alarm-state | x--ro alarm-state? -> /hardware/component/state/alarm-state
+---n hardware-state-oper-disabled {hardware-state}? x---n hardware-state-oper-disabled {hardware-state}?
+--ro name? -> /hardware/component/name x--ro name? -> /hardware/component/name
+--ro admin-state? -> /hardware/component/state/admin-state x--ro admin-state? -> /hardware/component/state/admin-state
+--ro alarm-state? -> /hardware/component/state/alarm-state x--ro alarm-state? -> /hardware/component/state/alarm-state
A.1. Hardware State YANG Module A.1. Hardware State YANG Module
<CODE BEGINS> file "ietf-hardware-state@2017-12-18.yang" <CODE BEGINS> file "ietf-hardware-state@2017-12-18.yang"
module ietf-hardware-state { module ietf-hardware-state {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-hardware-state"; namespace "urn:ietf:params:xml:ns:yang:ietf-hardware-state";
prefix hw-state; prefix hw-state;
skipping to change at page 42, line 9 skipping to change at page 42, line 9
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for Hardware Management"; "RFC XXXX: A YANG Data Model for Hardware Management";
} }
/* /*
* Features * Features
*/ */
feature entity-mib { feature entity-mib {
status deprecated;
description description
"This feature indicates that the device implements "This feature indicates that the device implements
the ENTITY-MIB."; the ENTITY-MIB.";
reference "RFC 6933: Entity MIB (Version 4)"; reference "RFC 6933: Entity MIB (Version 4)";
} }
feature hardware-state { feature hardware-state {
status deprecated;
description description
"Indicates the ENTITY-STATE-MIB objects are supported"; "Indicates the ENTITY-STATE-MIB objects are supported";
reference "RFC 4268: Entity State MIB"; reference "RFC 4268: Entity State MIB";
} }
feature hardware-sensor { feature hardware-sensor {
status deprecated;
description description
"Indicates the ENTITY-SENSOR-MIB objects are supported"; "Indicates the ENTITY-SENSOR-MIB objects are supported";
reference "RFC 3433: Entity Sensor MIB"; reference "RFC 3433: Entity Sensor MIB";
} }
/* /*
* Data nodes * Data nodes
*/ */
container hardware { container hardware {
config false; config false;
status deprecated;
description description
"Data nodes representing components."; "Data nodes representing components.";
leaf last-change { leaf last-change {
type yang:date-and-time; type yang:date-and-time;
status deprecated;
description description
"The time the '/hardware/component' list changed in the "The time the '/hardware/component' list changed in the
operational state."; operational state.";
} }
list component { list component {
key name; key name;
status deprecated;
description description
"List of components. "List of components.
When the server detects a new hardware component, it When the server detects a new hardware component, it
initializes a list entry in the operational state. initializes a list entry in the operational state.
If the server does not support configuration of hardware If the server does not support configuration of hardware
components, list entries in the operational state are components, list entries in the operational state are
initialized with values for all nodes as detected by the initialized with values for all nodes as detected by the
implementation. implementation.
skipping to change at page 43, line 41 skipping to change at page 43, line 47
initialized with values for all nodes as detected by initialized with values for all nodes as detected by
the implementation. the implementation.
If the /hardware/component list in the intended If the /hardware/component list in the intended
configuration is modified, then the system MUST behave as if configuration is modified, then the system MUST behave as if
it re-initializes itself, and follow the procedure in (1)."; it re-initializes itself, and follow the procedure in (1).";
reference "RFC 6933: entPhysicalEntry"; reference "RFC 6933: entPhysicalEntry";
leaf name { leaf name {
type string; type string;
status deprecated;
description description
"The name assigned to this component. "The name assigned to this component.
This name is not required to be the same as This name is not required to be the same as
entPhysicalName."; entPhysicalName.";
} }
leaf class { leaf class {
type identityref { type identityref {
base ianahw:hardware-class; base ianahw:hardware-class;
} }
mandatory true; mandatory true;
status deprecated;
description description
"An indication of the general hardware type of the "An indication of the general hardware type of the
component."; component.";
reference "RFC 6933: entPhysicalClass"; reference "RFC 6933: entPhysicalClass";
} }
leaf physical-index { leaf physical-index {
if-feature entity-mib; if-feature entity-mib;
type int32 { type int32 {
range "1..2147483647"; range "1..2147483647";
} }
status deprecated;
description description
"The entPhysicalIndex for the entPhysicalEntry represented "The entPhysicalIndex for the entPhysicalEntry represented
by this list entry."; by this list entry.";
reference "RFC 6933: entPhysicalIndex"; reference "RFC 6933: entPhysicalIndex";
} }
leaf description { leaf description {
type string; type string;
status deprecated;
description description
"A textual description of component. This node should "A textual description of component. This node should
contain a string that identifies the manufacturer's name contain a string that identifies the manufacturer's name
for the component and should be set to a distinct value for the component and should be set to a distinct value
for each version or model of the component."; for each version or model of the component.";
reference "RFC 6933: entPhysicalDescr"; reference "RFC 6933: entPhysicalDescr";
} }
leaf parent { leaf parent {
type leafref { type leafref {
path "../../component/name"; path "../../component/name";
require-instance false; require-instance false;
} }
status deprecated;
description description
"The name of the component that physically contains this "The name of the component that physically contains this
component. component.
If this leaf is not instantiated, it indicates that this If this leaf is not instantiated, it indicates that this
component is not contained in any other component. component is not contained in any other component.
In the event that a physical component is contained by In the event that a physical component is contained by
more than one physical component (e.g., double-wide more than one physical component (e.g., double-wide
modules), this node contains the name of one of these modules), this node contains the name of one of these
skipping to change at page 45, line 4 skipping to change at page 45, line 15
If this leaf is not instantiated, it indicates that this If this leaf is not instantiated, it indicates that this
component is not contained in any other component. component is not contained in any other component.
In the event that a physical component is contained by In the event that a physical component is contained by
more than one physical component (e.g., double-wide more than one physical component (e.g., double-wide
modules), this node contains the name of one of these modules), this node contains the name of one of these
components. An implementation MUST use the same name components. An implementation MUST use the same name
every time this node is instantiated."; every time this node is instantiated.";
reference "RFC 6933: entPhysicalContainedIn"; reference "RFC 6933: entPhysicalContainedIn";
} }
leaf parent-rel-pos { leaf parent-rel-pos {
type int32 { type int32 {
range "0 .. 2147483647"; range "0 .. 2147483647";
} }
status deprecated;
description description
"An indication of the relative position of this child "An indication of the relative position of this child
component among all its sibling components. Sibling component among all its sibling components. Sibling
components are defined as components that: components are defined as components that:
o Share the same value of the 'parent' node; and o Share the same value of the 'parent' node; and
o Share a common base identity for the 'class' node. o Share a common base identity for the 'class' node.
Note that the last rule gives implementations flexibility Note that the last rule gives implementations flexibility
skipping to change at page 45, line 32 skipping to change at page 45, line 45
components with identities derived from 'ianahw:port' (for components with identities derived from 'ianahw:port' (for
example, one for RJ45 and one for SFP)."; example, one for RJ45 and one for SFP).";
reference "RFC 6933: entPhysicalParentRelPos"; reference "RFC 6933: entPhysicalParentRelPos";
} }
leaf-list contains-child { leaf-list contains-child {
type leafref { type leafref {
path "../../component/name"; path "../../component/name";
} }
status deprecated;
description description
"The name of the contained component."; "The name of the contained component.";
reference "RFC 6933: entPhysicalChildIndex"; reference "RFC 6933: entPhysicalChildIndex";
} }
leaf hardware-rev { leaf hardware-rev {
type string; type string;
status deprecated;
description description
"The vendor-specific hardware revision string for the "The vendor-specific hardware revision string for the
component. The preferred value is the hardware revision component. The preferred value is the hardware revision
identifier actually printed on the component itself (if identifier actually printed on the component itself (if
present)."; present).";
reference "RFC 6933: entPhysicalHardwareRev"; reference "RFC 6933: entPhysicalHardwareRev";
} }
leaf firmware-rev { leaf firmware-rev {
type string; type string;
status deprecated;
description description
"The vendor-specific firmware revision string for the "The vendor-specific firmware revision string for the
component."; component.";
reference "RFC 6933: entPhysicalFirmwareRev"; reference "RFC 6933: entPhysicalFirmwareRev";
} }
leaf software-rev { leaf software-rev {
type string; type string;
status deprecated;
description description
"The vendor-specific software revision string for the "The vendor-specific software revision string for the
component."; component.";
reference "RFC 6933: entPhysicalSoftwareRev"; reference "RFC 6933: entPhysicalSoftwareRev";
} }
leaf serial-num { leaf serial-num {
type string; type string;
status deprecated;
description description
"The vendor-specific serial number string for the "The vendor-specific serial number string for the
component. The preferred value is the serial number component. The preferred value is the serial number
string actually printed on the component itself (if string actually printed on the component itself (if
present)."; present).";
reference "RFC 6933: entPhysicalSerialNum"; reference "RFC 6933: entPhysicalSerialNum";
} }
leaf mfg-name { leaf mfg-name {
type string; type string;
status deprecated;
description description
"The name of the manufacturer of this physical component. "The name of the manufacturer of this physical component.
The preferred value is the manufacturer name string The preferred value is the manufacturer name string
actually printed on the component itself (if present). actually printed on the component itself (if present).
Note that comparisons between instances of the model-name, Note that comparisons between instances of the model-name,
firmware-rev, software-rev, and the serial-num nodes are firmware-rev, software-rev, and the serial-num nodes are
only meaningful amongst component with the same value of only meaningful amongst component with the same value of
mfg-name. mfg-name.
If the manufacturer name string associated with the If the manufacturer name string associated with the
physical component is unknown to the server, then this physical component is unknown to the server, then this
node is not instantiated."; node is not instantiated.";
reference "RFC 6933: entPhysicalMfgName"; reference "RFC 6933: entPhysicalMfgName";
} }
leaf model-name { leaf model-name {
type string; type string;
status deprecated;
description description
"The vendor-specific model name identifier string "The vendor-specific model name identifier string
associated with this physical component. The preferred associated with this physical component. The preferred
value is the customer-visible part number, which may be value is the customer-visible part number, which may be
printed on the component itself. printed on the component itself.
If the model name string associated with the physical If the model name string associated with the physical
component is unknown to the server, then this node is not component is unknown to the server, then this node is not
instantiated."; instantiated.";
reference "RFC 6933: entPhysicalModelName"; reference "RFC 6933: entPhysicalModelName";
} }
leaf alias { leaf alias {
type string; type string;
status deprecated;
description description
"An 'alias' name for the component, as specified by a "An 'alias' name for the component, as specified by a
network manager, and provides a non-volatile 'handle' for network manager, and provides a non-volatile 'handle' for
the component. the component.
If no configured value exists, the server MAY set the If no configured value exists, the server MAY set the
value of this node to a locally unique value in the value of this node to a locally unique value in the
operational state. operational state.
A server implementation MAY map this leaf to the A server implementation MAY map this leaf to the
entPhysicalAlias MIB object. Such an implementation needs entPhysicalAlias MIB object. Such an implementation needs
to use some mechanism to handle the differences in size to use some mechanism to handle the differences in size
and characters allowed between this leaf and and characters allowed between this leaf and
entPhysicalAlias. The definition of such a mechanism is entPhysicalAlias. The definition of such a mechanism is
outside the scope of this document."; outside the scope of this document.";
reference "RFC 6933: entPhysicalAlias"; reference "RFC 6933: entPhysicalAlias";
} }
leaf asset-id { leaf asset-id {
type string; type string;
status deprecated;
description description
"This node is a user-assigned asset tracking identifier for "This node is a user-assigned asset tracking identifier for
the component. the component.
A server implementation MAY map this leaf to the A server implementation MAY map this leaf to the
entPhysicalAssetID MIB object. Such an implementation entPhysicalAssetID MIB object. Such an implementation
needs to use some mechanism to handle the differences in needs to use some mechanism to handle the differences in
size and characters allowed between this leaf and size and characters allowed between this leaf and
entPhysicalAssetID. The definition of such a mechanism is entPhysicalAssetID. The definition of such a mechanism is
outside the scope of this document."; outside the scope of this document.";
reference "RFC 6933: entPhysicalAssetID"; reference "RFC 6933: entPhysicalAssetID";
} }
leaf is-fru { leaf is-fru {
type boolean; type boolean;
status deprecated;
description description
"This node indicates whether or not this component is "This node indicates whether or not this component is
considered a 'field replaceable unit' by the vendor. If considered a 'field replaceable unit' by the vendor. If
this node contains the value 'true', then this component this node contains the value 'true', then this component
identifies a field replaceable unit. For all components identifies a field replaceable unit. For all components
that are permanently contained within a field replaceable that are permanently contained within a field replaceable
unit, the value 'false' should be returned for this unit, the value 'false' should be returned for this
node."; node.";
reference "RFC 6933: entPhysicalIsFRU"; reference "RFC 6933: entPhysicalIsFRU";
} }
leaf mfg-date { leaf mfg-date {
type yang:date-and-time; type yang:date-and-time;
status deprecated;
description description
"The date of manufacturing of the managed component."; "The date of manufacturing of the managed component.";
reference "RFC 6933: entPhysicalMfgDate"; reference "RFC 6933: entPhysicalMfgDate";
} }
leaf-list uri { leaf-list uri {
type inet:uri; type inet:uri;
status deprecated;
description description
"This node contains identification information about the "This node contains identification information about the
component."; component.";
reference "RFC 6933: entPhysicalUris"; reference "RFC 6933: entPhysicalUris";
} }
leaf uuid { leaf uuid {
type yang:uuid; type yang:uuid;
status deprecated;
description description
"A Universally Unique Identifier of the component."; "A Universally Unique Identifier of the component.";
reference "RFC 6933: entPhysicalUUID"; reference "RFC 6933: entPhysicalUUID";
} }
container state { container state {
if-feature hardware-state; if-feature hardware-state;
status deprecated;
description description
"State-related nodes"; "State-related nodes";
reference "RFC 4268: Entity State MIB"; reference "RFC 4268: Entity State MIB";
leaf state-last-changed { leaf state-last-changed {
type yang:date-and-time; type yang:date-and-time;
status deprecated;
description description
"The date and time when the value of any of the "The date and time when the value of any of the
admin-state, oper-state, usage-state, alarm-state, or admin-state, oper-state, usage-state, alarm-state, or
standby-state changed for this component. standby-state changed for this component.
If there has been no change since the last If there has been no change since the last
re-initialization of the local system, this node re-initialization of the local system, this node
contains the date and time of local system contains the date and time of local system
initialization. If there has been no change since the initialization. If there has been no change since the
component was added to the local system, this node component was added to the local system, this node
skipping to change at page 49, line 4 skipping to change at page 49, line 31
standby-state changed for this component. standby-state changed for this component.
If there has been no change since the last If there has been no change since the last
re-initialization of the local system, this node re-initialization of the local system, this node
contains the date and time of local system contains the date and time of local system
initialization. If there has been no change since the initialization. If there has been no change since the
component was added to the local system, this node component was added to the local system, this node
contains the date and time of the insertion."; contains the date and time of the insertion.";
reference "RFC 4268: entStateLastChanged"; reference "RFC 4268: entStateLastChanged";
} }
leaf admin-state { leaf admin-state {
type hw:admin-state; type hw:admin-state;
status deprecated;
description description
"The administrative state for this component. "The administrative state for this component.
This node refers to a component's administrative This node refers to a component's administrative
permission to service both other components within its permission to service both other components within its
containment hierarchy as well other users of its containment hierarchy as well other users of its
services defined by means outside the scope of this services defined by means outside the scope of this
module. module.
Some components exhibit only a subset of the remaining Some components exhibit only a subset of the remaining
skipping to change at page 49, line 23 skipping to change at page 50, line 4
module. module.
Some components exhibit only a subset of the remaining Some components exhibit only a subset of the remaining
administrative state values. Some components cannot be administrative state values. Some components cannot be
locked, and hence this node exhibits only the 'unlocked' locked, and hence this node exhibits only the 'unlocked'
state. Other components cannot be shutdown gracefully, state. Other components cannot be shutdown gracefully,
and hence this node does not exhibit the 'shutting-down' and hence this node does not exhibit the 'shutting-down'
state."; state.";
reference "RFC 4268: entStateAdmin"; reference "RFC 4268: entStateAdmin";
} }
leaf oper-state { leaf oper-state {
type hw:oper-state; type hw:oper-state;
status deprecated;
description description
"The operational state for this component. "The operational state for this component.
Note that this node does not follow the administrative Note that this node does not follow the administrative
state. An administrative state of down does not predict state. An administrative state of down does not predict
an operational state of disabled. an operational state of disabled.
Note that some implementations may not be able to Note that some implementations may not be able to
accurately report oper-state while the admin-state node accurately report oper-state while the admin-state node
has a value other than 'unlocked'. In these cases, this has a value other than 'unlocked'. In these cases, this
node MUST have a value of 'unknown'."; node MUST have a value of 'unknown'.";
reference "RFC 4268: entStateOper"; reference "RFC 4268: entStateOper";
} }
leaf usage-state { leaf usage-state {
type hw:usage-state; type hw:usage-state;
status deprecated;
description description
"The usage state for this component. "The usage state for this component.
This node refers to a component's ability to service This node refers to a component's ability to service
more components in a containment hierarchy. more components in a containment hierarchy.
Some components will exhibit only a subset of the usage Some components will exhibit only a subset of the usage
state values. Components that are unable to ever state values. Components that are unable to ever
service any components within a containment hierarchy service any components within a containment hierarchy
will always have a usage state of 'busy'. Some will always have a usage state of 'busy'. Some
components will only ever be able to support one components will only ever be able to support one
component within its containment hierarchy and will component within its containment hierarchy and will
therefore only exhibit values of 'idle' and 'busy'."; therefore only exhibit values of 'idle' and 'busy'.";
reference "RFC 4268, entStateUsage"; reference "RFC 4268, entStateUsage";
} }
leaf alarm-state { leaf alarm-state {
type hw:alarm-state; type hw:alarm-state;
status deprecated;
description description
"The alarm state for this component. It does not "The alarm state for this component. It does not
include the alarms raised on child components within its include the alarms raised on child components within its
containment hierarchy."; containment hierarchy.";
reference "RFC 4268: entStateAlarm"; reference "RFC 4268: entStateAlarm";
} }
leaf standby-state { leaf standby-state {
type hw:standby-state; type hw:standby-state;
status deprecated;
description description
"The standby state for this component. "The standby state for this component.
Some components will exhibit only a subset of the Some components will exhibit only a subset of the
remaining standby state values. If this component remaining standby state values. If this component
cannot operate in a standby role, the value of this node cannot operate in a standby role, the value of this node
will always be 'providing-service'."; will always be 'providing-service'.";
reference "RFC 4268: entStateStandby"; reference "RFC 4268: entStateStandby";
} }
} }
container sensor-data { container sensor-data {
when 'derived-from-or-self(../class, when 'derived-from-or-self(../class,
"ianahw:sensor")' { "ianahw:sensor")' {
description description
"Sensor data nodes present for any component of type "Sensor data nodes present for any component of type
'sensor'"; 'sensor'";
} }
if-feature hardware-sensor; if-feature hardware-sensor;
status deprecated;
description description
"Sensor-related nodes."; "Sensor-related nodes.";
reference "RFC 3433: Entity Sensor MIB"; reference "RFC 3433: Entity Sensor MIB";
leaf value { leaf value {
type hw:sensor-value; type hw:sensor-value;
status deprecated;
description description
"The most recent measurement obtained by the server "The most recent measurement obtained by the server
for this sensor. for this sensor.
A client that periodically fetches this node should also A client that periodically fetches this node should also
fetch the nodes 'value-type', 'value-scale', and fetch the nodes 'value-type', 'value-scale', and
'value-precision', since they may change when the value 'value-precision', since they may change when the value
is changed."; is changed.";
reference "RFC 3433: entPhySensorValue"; reference "RFC 3433: entPhySensorValue";
} }
leaf value-type { leaf value-type {
type hw:sensor-value-type; type hw:sensor-value-type;
status deprecated;
description description
"The type of data units associated with the "The type of data units associated with the
sensor value"; sensor value";
reference "RFC 3433: entPhySensorType"; reference "RFC 3433: entPhySensorType";
} }
leaf value-scale { leaf value-scale {
type hw:sensor-value-scale; type hw:sensor-value-scale;
status deprecated;
description description
"The (power of 10) scaling factor associated "The (power of 10) scaling factor associated
with the sensor value"; with the sensor value";
reference "RFC 3433: entPhySensorScale"; reference "RFC 3433: entPhySensorScale";
} }
leaf value-precision { leaf value-precision {
type hw:sensor-value-precision; type hw:sensor-value-precision;
status deprecated;
description description
"The number of decimal places of precision "The number of decimal places of precision
associated with the sensor value"; associated with the sensor value";
reference "RFC 3433: entPhySensorPrecision"; reference "RFC 3433: entPhySensorPrecision";
} }
leaf oper-status { leaf oper-status {
type hw:sensor-status; type hw:sensor-status;
status deprecated;
description description
"The operational status of the sensor."; "The operational status of the sensor.";
reference "RFC 3433: entPhySensorOperStatus"; reference "RFC 3433: entPhySensorOperStatus";
} }
leaf units-display { leaf units-display {
type string; type string;
status deprecated;
description description
"A textual description of the data units that should be "A textual description of the data units that should be
used in the display of the sensor value."; used in the display of the sensor value.";
reference "RFC 3433: entPhySensorUnitsDisplay"; reference "RFC 3433: entPhySensorUnitsDisplay";
} }
leaf value-timestamp { leaf value-timestamp {
type yang:date-and-time; type yang:date-and-time;
status deprecated;
description description
"The time the status and/or value of this sensor was last "The time the status and/or value of this sensor was last
obtained by the server."; obtained by the server.";
reference "RFC 3433: entPhySensorValueTimeStamp"; reference "RFC 3433: entPhySensorValueTimeStamp";
} }
leaf value-update-rate { leaf value-update-rate {
type uint32; type uint32;
units "milliseconds"; units "milliseconds";
status deprecated;
description description
"An indication of the frequency that the server updates "An indication of the frequency that the server updates
the associated 'value' node, representing in the associated 'value' node, representing in
milliseconds. The value zero indicates: milliseconds. The value zero indicates:
- the sensor value is updated on demand (e.g., - the sensor value is updated on demand (e.g.,
when polled by the server for a get-request), when polled by the server for a get-request),
- the sensor value is updated when the sensor - the sensor value is updated when the sensor
value changes (event-driven), value changes (event-driven),
- the server does not know the update rate."; - the server does not know the update rate.";
skipping to change at page 52, line 33 skipping to change at page 53, line 25
} }
} }
} }
} }
/* /*
* Notifications * Notifications
*/ */
notification hardware-state-change { notification hardware-state-change {
status deprecated;
description description
"A hardware-state-change notification is generated when the "A hardware-state-change notification is generated when the
value of /hardware/last-change changes in the operational value of /hardware/last-change changes in the operational
state."; state.";
reference "RFC 6933, entConfigChange"; reference "RFC 6933, entConfigChange";
} }
notification hardware-state-oper-enabled { notification hardware-state-oper-enabled {
if-feature hardware-state; if-feature hardware-state;
status deprecated;
description description
"A hardware-state-oper-enabled notification signifies that a "A hardware-state-oper-enabled notification signifies that a
component has transitioned into the 'enabled' state."; component has transitioned into the 'enabled' state.";
leaf name { leaf name {
type leafref { type leafref {
path "/hardware/component/name"; path "/hardware/component/name";
} }
status deprecated;
description description
"The name of the component that has transitioned into the "The name of the component that has transitioned into the
'enabled' state."; 'enabled' state.";
} }
leaf admin-state { leaf admin-state {
type leafref { type leafref {
path "/hardware/component/state/admin-state"; path "/hardware/component/state/admin-state";
} }
status deprecated;
description description
"The administrative state for the component."; "The administrative state for the component.";
} }
leaf alarm-state { leaf alarm-state {
type leafref { type leafref {
path "/hardware/component/state/alarm-state"; path "/hardware/component/state/alarm-state";
} }
status deprecated;
description description
"The alarm state for the component."; "The alarm state for the component.";
} }
reference "RFC 4268, entStateOperEnabled"; reference "RFC 4268, entStateOperEnabled";
} }
notification hardware-state-oper-disabled { notification hardware-state-oper-disabled {
if-feature hardware-state; if-feature hardware-state;
status deprecated;
description description
"A hardware-state-oper-disabled notification signifies that a "A hardware-state-oper-disabled notification signifies that a
component has transitioned into the 'disabled' state."; component has transitioned into the 'disabled' state.";
leaf name { leaf name {
type leafref { type leafref {
path "/hardware/component/name"; path "/hardware/component/name";
} }
status deprecated;
description description
"The name of the component that has transitioned into the "The name of the component that has transitioned into the
'disabled' state."; 'disabled' state.";
} }
leaf admin-state { leaf admin-state {
type leafref { type leafref {
path "/hardware/component/state/admin-state"; path "/hardware/component/state/admin-state";
} }
status deprecated;
description description
"The administrative state for the component."; "The administrative state for the component.";
} }
leaf alarm-state { leaf alarm-state {
type leafref { type leafref {
path "/hardware/component/state/alarm-state"; path "/hardware/component/state/alarm-state";
} }
status deprecated;
description description
"The alarm state for the component."; "The alarm state for the component.";
} }
reference "RFC 4268, entStateOperDisabled"; reference "RFC 4268, entStateOperDisabled";
} }
} }
<CODE ENDS> <CODE ENDS>
Authors' Addresses Authors' Addresses
Andy Bierman Andy Bierman
YumaWorks YumaWorks
 End of changes. 84 change blocks. 
107 lines changed or deleted 159 lines changed or added

This html diff was produced by rfcdiff 1.46. The latest version is available from http://tools.ietf.org/tools/rfcdiff/