draft-ietf-netmod-entity-05.txt | draft-ietf-netmod-entity-06.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: April 19, 2018 Tail-f Systems | Expires: June 21, 2018 Tail-f Systems | |||
J. Dong | J. Dong | |||
Huawei Technologies | Huawei Technologies | |||
D. Romascanu | D. Romascanu | |||
October 16, 2017 | December 18, 2017 | |||
A YANG Data Model for Hardware Management | A YANG Data Model for Hardware Management | |||
draft-ietf-netmod-entity-05 | draft-ietf-netmod-entity-06 | |||
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 35 ¶ | |||
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 April 19, 2018. | This Internet-Draft will expire on June 21, 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 | |||
carefully, as they describe your rights and restrictions with respect | carefully, as they describe your rights and restrictions with respect | |||
to this document. Code Components extracted from this document must | to this document. Code Components extracted from this document must | |||
include Simplified BSD License text as described in Section 4.e of | include Simplified BSD License text as described in Section 4.e of | |||
the Trust Legal Provisions and are provided without warranty as | the Trust Legal Provisions and are provided without warranty as | |||
described in the Simplified BSD License. | described in the Simplified BSD License. | |||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 | 1.1. Terminology . . . . . . . . . . . . . . . . . . . . . . . 2 | |||
1.1.1. Tree Diagrams . . . . . . . . . . . . . . . . . . . . 3 | 1.2. Tree Diagrams . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Objectives . . . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
3. Hardware Data Model . . . . . . . . . . . . . . . . . . . . . 4 | 3. Hardware Data Model . . . . . . . . . . . . . . . . . . . . . 3 | |||
3.1. The Components Lists . . . . . . . . . . . . . . . . . . 5 | 3.1. The Components Lists . . . . . . . . . . . . . . . . . . 5 | |||
4. Relationship to ENTITY-MIB . . . . . . . . . . . . . . . . . 5 | 4. Relationship to ENTITY-MIB . . . . . . . . . . . . . . . . . 5 | |||
5. Relationship to ENTITY-SENSOR-MIB . . . . . . . . . . . . . . 6 | 5. Relationship to ENTITY-SENSOR-MIB . . . . . . . . . . . . . . 6 | |||
6. Relationship to ENTITY-STATE-MIB . . . . . . . . . . . . . . 7 | 6. Relationship to ENTITY-STATE-MIB . . . . . . . . . . . . . . 7 | |||
7. Hardware YANG Module . . . . . . . . . . . . . . . . . . . . 7 | 7. Hardware YANG Module . . . . . . . . . . . . . . . . . . . . 7 | |||
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. Normative References . . . . . . . . . . . . . . . . . . . . 37 | 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 37 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 38 | 11.1. Normative References . . . . . . . . . . . . . . . . . . 37 | |||
11.2. Informative References . . . . . . . . . . . . . . . . . 38 | ||||
Appendix A. Hardware State Data Model . . . . . . . . . . . . . 39 | ||||
A.1. Hardware State YANG Module . . . . . . . . . . . . . . . 40 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 54 | ||||
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 | ||||
Network Management Datastore Architecture (NMDA) | ||||
[I-D.ietf-netmod-revised-datastores]. For implementations that do | ||||
not yet support NMDA, a temporary module with system state data only | ||||
is defined in Appendix A. | ||||
1.1. Terminology | 1.1. Terminology | |||
The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The keywords "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
14, [RFC2119]. | 14, [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | ||||
The following terms are defined in | The following terms are defined in | |||
[I-D.ietf-netmod-revised-datastores] and are not redefined here: | [I-D.ietf-netmod-revised-datastores] and are not redefined here: | |||
o client | o client | |||
o server | o server | |||
o configuration | o configuration | |||
skipping to change at page 3, line 4 ¶ | skipping to change at page 3, line 15 ¶ | |||
The following terms are defined in | The following terms are defined in | |||
[I-D.ietf-netmod-revised-datastores] and are not redefined here: | [I-D.ietf-netmod-revised-datastores] and are not redefined here: | |||
o client | o client | |||
o server | o server | |||
o configuration | o configuration | |||
o system state | o system state | |||
o operational state | o operational state | |||
o intended configuration | o intended configuration | |||
1.1.1. Tree Diagrams | 1.2. Tree Diagrams | |||
A simplified graphical representation of the data model is used in | ||||
this document. The meaning of the symbols in these diagrams is as | ||||
follows: | ||||
o Brackets "[" and "]" enclose list keys. | ||||
o Abbreviations before data node names: "rw" means configuration | ||||
data (read-write) and "ro" state data (read-only). | ||||
o Symbols after data node names: "?" means an optional node, "!" | ||||
means a presence container, and "*" denotes a list and leaf-list. | ||||
o Parentheses enclose choice and case nodes, and case nodes are also | ||||
marked with a colon (":"). | ||||
o Ellipsis ("...") stands for contents of subtrees that are not | Tree diagrams used in this document follow the notation defined in | |||
shown. | [I-D.ietf-netmod-yang-tree-diagrams]. | |||
2. Objectives | 2. Objectives | |||
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 | |||
skipping to change at page 7, line 43 ¶ | skipping to change at page 7, line 43 ¶ | |||
| oper-state | entStateOper | | | oper-state | entStateOper | | |||
| usage-state | entStateUsage | | | usage-state | entStateUsage | | |||
| alarm-state | entStateAlarm | | | alarm-state | entStateAlarm | | |||
| standby-state | entStateStandby | | | standby-state | entStateStandby | | |||
+------------------------------------------+------------------------+ | +------------------------------------------+------------------------+ | |||
YANG Data Nodes and Related ENTITY-SENSOR-MIB Objects | YANG Data Nodes and Related ENTITY-SENSOR-MIB Objects | |||
7. Hardware YANG Module | 7. Hardware YANG Module | |||
<CODE BEGINS> file "ietf-hardware@2017-10-16.yang" | <CODE BEGINS> file "ietf-hardware@2017-12-18.yang" | |||
module ietf-hardware { | module ietf-hardware { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:ietf-hardware"; | namespace "urn:ietf:params:xml:ns:yang:ietf-hardware"; | |||
prefix hw; | prefix hw; | |||
import ietf-inet-types { | import ietf-inet-types { | |||
prefix inet; | prefix inet; | |||
} | } | |||
import ietf-yang-types { | import ietf-yang-types { | |||
prefix yang; | prefix yang; | |||
} | } | |||
import iana-hardware { | import iana-hardware { | |||
prefix ianahw; | prefix ianahw; | |||
} | } | |||
organization | organization | |||
"IETF NETMOD (NETCONF Data Modeling Language) Working Group"; | "IETF NETMOD (Network Modeling) Working Group"; | |||
contact | contact | |||
"WG Web: <http://tools.ietf.org/wg/netmod/> | "WG Web: <http://tools.ietf.org/wg/netmod/> | |||
WG List: <mailto:netmod@ietf.org> | WG List: <mailto:netmod@ietf.org> | |||
Editor: Andy Bierman | Editor: Andy Bierman | |||
<mailto:andy@yumaworks.com> | <mailto:andy@yumaworks.com> | |||
Editor: Martin Bjorklund | Editor: Martin Bjorklund | |||
<mailto:mbj@tail-f.com> | <mailto:mbj@tail-f.com> | |||
skipping to change at page 9, line 7 ¶ | skipping to change at page 9, line 7 ¶ | |||
to the license terms contained in, the Simplified BSD License | to the license terms contained in, the Simplified BSD License | |||
set forth in Section 4.c of the IETF Trust's Legal Provisions | set forth in Section 4.c of the IETF Trust's Legal Provisions | |||
Relating to IETF Documents | Relating to IETF Documents | |||
(http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
// RFC Ed.: update the date below with the date of RFC publication | // RFC Ed.: update the date below with the date of RFC publication | |||
// and remove this note. | // and remove this note. | |||
revision 2017-10-16 { | revision 2017-12-18 { | |||
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 | |||
*/ | */ | |||
skipping to change at page 31, line 31 ¶ | skipping to change at page 31, line 31 ¶ | |||
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> | |||
<CODE BEGINS> file "iana-hardware@2017-10-16.yang" | <CODE BEGINS> file "iana-hardware@2017-12-18.yang" | |||
module iana-hardware { | module iana-hardware { | |||
yang-version 1.1; | yang-version 1.1; | |||
namespace "urn:ietf:params:xml:ns:yang:iana-hardware"; | namespace "urn:ietf:params:xml:ns:yang:iana-hardware"; | |||
prefix ianahw; | prefix ianahw; | |||
organization "IANA"; | organization "IANA"; | |||
contact | contact | |||
" Internet Assigned Numbers Authority | " Internet Assigned Numbers Authority | |||
skipping to change at page 32, line 12 ¶ | skipping to change at page 32, line 12 ¶ | |||
"IANA defined identities for hardware class."; | "IANA defined identities for hardware class."; | |||
reference | reference | |||
// RFC Ed.: replace XXXX with actual path and remove this note. | // RFC Ed.: replace XXXX with actual path and remove this note. | |||
"https://www.iana.org/assignments/XXXX"; | "https://www.iana.org/assignments/XXXX"; | |||
// RFC Ed.: replace XXXX with actual RFC number and remove this | // RFC Ed.: replace XXXX with actual RFC number and remove this | |||
// note. | // note. | |||
// RFC Ed.: update the date below with the date of RFC publication | // RFC Ed.: update the date below with the date of RFC publication | |||
// and remove this note. | // and remove this note. | |||
revision 2017-10-16 { | revision 2017-12-18 { | |||
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"; | |||
} | } | |||
/* | /* | |||
* Identities | * Identities | |||
*/ | */ | |||
skipping to change at page 35, line 31 ¶ | skipping to change at page 35, line 31 ¶ | |||
The "iana-hardware" YANG module is intended to reflect the | The "iana-hardware" YANG module is intended to reflect the | |||
"IANA-ENTITY-MIB" MIB module so that if a new enumeration is added to | "IANA-ENTITY-MIB" MIB module so that if a new enumeration is added to | |||
the "IANAPhysicalClass" TEXTUAL-CONVENTION, the same class is added | the "IANAPhysicalClass" TEXTUAL-CONVENTION, the same class is added | |||
as an identity derived from "ianahw:hardware-class". | as an identity derived from "ianahw:hardware-class". | |||
When the "iana-hardware" YANG module is updated, a new "revision" | When the "iana-hardware" YANG module is updated, a new "revision" | |||
statement must be added in front of the existing revision statements. | statement must be added in front of the existing revision statements. | |||
8.1. URI Registrations | 8.1. URI Registrations | |||
This document registers two URIs in the IETF XML registry [RFC3688]. | This document registers three URIs in the IETF XML registry | |||
Following the format in RFC 3688, the following registrations are | [RFC3688]. Following the format in RFC 3688, the following | |||
requested to be made. | registrations are requested to be made. | |||
URI: urn:ietf:params:xml:ns:yang:iana-hardware | URI: urn:ietf:params:xml:ns:yang:iana-hardware | |||
Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
URI: urn:ietf:params:xml:ns:yang:ietf-hardware | URI: urn:ietf:params:xml:ns:yang:ietf-hardware | |||
Registrant Contact: The IESG. | Registrant Contact: The IESG. | |||
XML: N/A, the requested URI is an XML namespace. | XML: N/A, the requested URI is an XML namespace. | |||
URI: urn:ietf:params:xml:ns:yang:ietf-hardware-state | ||||
Registrant Contact: The IESG. | ||||
XML: N/A, the requested URI is an XML namespace. | ||||
8.2. YANG Module Registrations | 8.2. YANG Module Registrations | |||
This document registers two YANG modules in the YANG Module Names | This document registers three YANG modules in the YANG Module Names | |||
registry [RFC6020]. | registry [RFC6020]. | |||
name: iana-hardware | name: iana-hardware | |||
namespace: urn:ietf:params:xml:ns:yang:iana-hardware | namespace: urn:ietf:params:xml:ns:yang:iana-hardware | |||
prefix: ianahw | prefix: ianahw | |||
reference: RFC XXXX | reference: RFC XXXX | |||
name: ietf-hardware | name: ietf-hardware | |||
namespace: urn:ietf:params:xml:ns:yang:ietf-hardware | namespace: urn:ietf:params:xml:ns:yang:ietf-hardware | |||
prefix: hw | prefix: hw | |||
reference: RFC XXXX | reference: RFC XXXX | |||
name: ietf-hardware-state | ||||
namespace: urn:ietf:params:xml:ns:yang:ietf-hardware-state | ||||
prefix: hw-state | ||||
reference: RFC XXXX | ||||
9. Security Considerations | 9. Security Considerations | |||
The YANG module defined in this memo is designed to be accessed via | The YANG modules defined in this document are designed to be accessed | |||
the NETCONF protocol [RFC6241]. The lowest NETCONF layer is the | via network management protocols such as NETCONF [RFC6241] or | |||
secure transport layer, and the mandatory-to-implement secure | RESTCONF [RFC8040]. The lowest NETCONF layer is the secure transport | |||
transport is Secure Shell (SSH) [RFC6242]. The NETCONF access | layer, and the mandatory-to-implement secure transport is Secure | |||
control model [RFC6536] provides the means to restrict access for | Shell (SSH) [RFC6242]. The lowest RESTCONF layer is HTTPS, and the | |||
particular NETCONF users to a pre-configured subset of all available | mandatory-to-implement secure transport is TLS [RFC5246]. | |||
NETCONF protocol operations and content. | ||||
There are a number of data nodes defined in this YANG module that are | The NETCONF access control model [RFC6536] provides the means to | |||
writable/creatable/deletable (i.e., config true, which is the | restrict access for particular NETCONF or RESTCONF users to a | |||
default). These data nodes may be considered sensitive or vulnerable | preconfigured subset of all available NETCONF or RESTCONF protocol | |||
in some network environments. Write operations (e.g., edit-config) | operations and content. | |||
to these data nodes without proper protection can have a negative | ||||
effect on network operations. These are the subtrees and data nodes | There are a number of data nodes defined in the YANG module | |||
and their sensitivity/vulnerability: | "ietf-hardware" that are writable/creatable/deletable (i.e., config | |||
true, which is the default). These data nodes may be considered | ||||
sensitive or vulnerable in some network environments. Write | ||||
operations (e.g., edit-config) to these data nodes without proper | ||||
protection can have a negative effect on network operations. These | ||||
are the subtrees and data nodes and their sensitivity/vulnerability: | ||||
/hardware/component/admin-state: Setting this node to 'locked' or | /hardware/component/admin-state: Setting this node to 'locked' or | |||
'shutting-down' can cause disruption of services ranging from | 'shutting-down' can cause disruption of services ranging from | |||
those running on a port to those on an entire device, depending on | those running on a port to those on an entire device, depending on | |||
the type of component. | the type of component. | |||
Some of the readable data nodes in this YANG module may be considered | Some of the readable data nodes in these YANG modules may be | |||
sensitive or vulnerable in some network environments. It is thus | considered sensitive or vulnerable in some network environments. It | |||
important to control read access (e.g., via get, get-config, or | is thus important to control read access (e.g., via get, get-config, | |||
notification) to these data nodes. These are the subtrees and data | or notification) to these data nodes. These are the subtrees and | |||
nodes and their sensitivity/vulnerability: | data nodes and their sensitivity/vulnerability: | |||
/hardware/component: The leafs in this list expose information about | /hardware/component: The leafs in this list expose information about | |||
the physical components in a device, which may be used to identify | the physical components in a device, which may be used to identify | |||
the vendor, model, version, and specific device-identification | the vendor, model, version, and specific device-identification | |||
information of each system component. | information of each system component. | |||
/hardware/component/sensor-data/value: This node may expose the | /hardware/component/sensor-data/value: This node may expose the | |||
values of particular physical sensors in a device. | values of particular physical sensors in a device. | |||
/hardware/component/state: Access to this node allows one to figure | /hardware/component/state: Access to this node allows one to figure | |||
out what the active and standby resources in a device are. | out what the active and standby resources in a device are. | |||
10. Acknowledgments | 10. Acknowledgments | |||
The authors wish to thank the following individuals, who all provided | The authors wish to thank the following individuals, who all provided | |||
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. Normative References | 11. 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-03 | Architecture", draft-ietf-netmod-revised-datastores-07 | |||
(work in progress), July 2017. | (work in progress), November 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/RFC2119, March 1997, <https://www.rfc- | DOI 10.17487/RFC2119, March 1997, <https://www.rfc- | |||
editor.org/info/rfc2119>. | editor.org/info/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/RFC3433, December 2002, <https://www.rfc- | DOI 10.17487/RFC3433, December 2002, <https://www.rfc- | |||
editor.org/info/rfc3433>. | editor.org/info/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 | ||||
(TLS) Protocol Version 1.2", RFC 5246, | ||||
DOI 10.17487/RFC5246, August 2008, <https://www.rfc- | ||||
editor.org/info/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>. | |||
skipping to change at page 38, line 19 ¶ | skipping to change at page 38, line 38 ¶ | |||
[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 10.17487/RFC6933, May 2013, <https://www.rfc- | DOI 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 | ||||
Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017, | ||||
<https://www.rfc-editor.org/info/rfc8040>. | ||||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | ||||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | ||||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | ||||
11.2. Informative References | ||||
[I-D.ietf-netmod-yang-tree-diagrams] | ||||
Bjorklund, M. and L. Berger, "YANG Tree Diagrams", draft- | ||||
ietf-netmod-yang-tree-diagrams-02 (work in progress), | ||||
October 2017. | ||||
Appendix A. Hardware State Data Model | ||||
This non-normative appendix contains a data model designed as a | ||||
temporary solution for implementations that do not yet support the | ||||
Network Management Datastore Architecture (NMDA) defined in | ||||
[I-D.ietf-netmod-revised-datastores]. It has the following | ||||
structure: | ||||
module: ietf-hardware-state | ||||
+--ro hardware | ||||
+--ro last-change? yang:date-and-time | ||||
+--ro component* [name] | ||||
+--ro name string | ||||
+--ro class identityref | ||||
+--ro physical-index? int32 {entity-mib}? | ||||
+--ro description? string | ||||
+--ro parent? -> ../../component/name | ||||
+--ro parent-rel-pos? int32 | ||||
+--ro contains-child* -> ../../component/name | ||||
+--ro hardware-rev? string | ||||
+--ro firmware-rev? string | ||||
+--ro software-rev? string | ||||
+--ro serial-num? string | ||||
+--ro mfg-name? string | ||||
+--ro model-name? string | ||||
+--ro alias? string | ||||
+--ro asset-id? string | ||||
+--ro is-fru? boolean | ||||
+--ro mfg-date? yang:date-and-time | ||||
+--ro uri* inet:uri | ||||
+--ro uuid? yang:uuid | ||||
+--ro state {hardware-state}? | ||||
| +--ro state-last-changed? yang:date-and-time | ||||
| +--ro admin-state? hw:admin-state | ||||
| +--ro oper-state? hw:oper-state | ||||
| +--ro usage-state? hw:usage-state | ||||
| +--ro alarm-state? hw:alarm-state | ||||
| +--ro standby-state? hw:standby-state | ||||
+--ro sensor-data {hardware-sensor}? | ||||
+--ro value? hw:sensor-value | ||||
+--ro value-type? hw:sensor-value-type | ||||
+--ro value-scale? hw:sensor-value-scale | ||||
+--ro value-precision? hw:sensor-value-precision | ||||
+--ro oper-status? hw:sensor-status | ||||
+--ro units-display? string | ||||
+--ro value-timestamp? yang:date-and-time | ||||
+--ro value-update-rate? uint32 | ||||
notifications: | ||||
+---n hardware-state-change | ||||
+---n hardware-state-oper-enabled {hardware-state}? | ||||
| +--ro name? -> /hardware/component/name | ||||
| +--ro admin-state? -> /hardware/component/state/admin-state | ||||
| +--ro alarm-state? -> /hardware/component/state/alarm-state | ||||
+---n hardware-state-oper-disabled {hardware-state}? | ||||
+--ro name? -> /hardware/component/name | ||||
+--ro admin-state? -> /hardware/component/state/admin-state | ||||
+--ro alarm-state? -> /hardware/component/state/alarm-state | ||||
A.1. Hardware State YANG Module | ||||
<CODE BEGINS> file "ietf-hardware-state@2017-12-18.yang" | ||||
module ietf-hardware-state { | ||||
yang-version 1.1; | ||||
namespace "urn:ietf:params:xml:ns:yang:ietf-hardware-state"; | ||||
prefix hw-state; | ||||
import ietf-inet-types { | ||||
prefix inet; | ||||
} | ||||
import ietf-yang-types { | ||||
prefix yang; | ||||
} | ||||
import iana-hardware { | ||||
prefix ianahw; | ||||
} | ||||
import ietf-hardware { | ||||
prefix hw; | ||||
} | ||||
organization | ||||
"IETF NETMOD (Network Modeling) Working Group"; | ||||
contact | ||||
"WG Web: <http://tools.ietf.org/wg/netmod/> | ||||
WG List: <mailto:netmod@ietf.org> | ||||
Editor: Andy Bierman | ||||
<mailto:andy@yumaworks.com> | ||||
Editor: Martin Bjorklund | ||||
<mailto:mbj@tail-f.com> | ||||
Editor: Jie Dong | ||||
<mailto:jie.dong@huawei.com> | ||||
Editor: Dan Romascanu | ||||
<mailto:dromasca@gmail.com>"; | ||||
// RFC Ed.: replace XXXX and YYYY with actual RFC numbers and | ||||
// remove this note. | ||||
description | ||||
"This module contains a collection of YANG definitions for | ||||
monitoring hardware. | ||||
This data model is designed as a temporary solution for | ||||
implementations that do not yet support the Network Management | ||||
Datastore Architecture (NMDA) defined in RFC YYYY. Such an | ||||
implementation cannot implement the module 'ietf-hardware' | ||||
properly, since without NMDA support, it is not possible to | ||||
distinguish between instances of nodes in the running | ||||
configuration and operational state. | ||||
The data model in this module is the same as the data model in | ||||
'ietf-hardware', except all nodes are marked as 'config false'. | ||||
If a server that implements this module but doesn't support NMDA | ||||
also supports configuration of hardware components, it SHOULD | ||||
also implement the module 'ietf-hardware' in the configuration | ||||
datastores. The corresponding state data is found in the | ||||
'/hw-state:hardware' subtree. | ||||
Copyright (c) 2017 IETF Trust and the persons identified as | ||||
authors of the code. All rights reserved. | ||||
Redistribution and use in source and binary forms, with or | ||||
without modification, is permitted pursuant to, and subject | ||||
to the license terms contained in, the Simplified BSD License | ||||
set forth in Section 4.c of the IETF Trust's Legal Provisions | ||||
Relating to IETF Documents | ||||
(http://trustee.ietf.org/license-info). | ||||
This version of this YANG module is part of RFC XXXX; see | ||||
the RFC itself for full legal notices."; | ||||
// RFC Ed.: update the date below with the date of RFC publication | ||||
// and remove this note. | ||||
revision 2017-12-18 { | ||||
description | ||||
"Initial revision."; | ||||
reference | ||||
"RFC XXXX: A YANG Data Model for Hardware Management"; | ||||
} | ||||
/* | ||||
* Features | ||||
*/ | ||||
feature entity-mib { | ||||
description | ||||
"This feature indicates that the device implements | ||||
the ENTITY-MIB."; | ||||
reference "RFC 6933: Entity MIB (Version 4)"; | ||||
} | ||||
feature hardware-state { | ||||
description | ||||
"Indicates the ENTITY-STATE-MIB objects are supported"; | ||||
reference "RFC 4268: Entity State MIB"; | ||||
} | ||||
feature hardware-sensor { | ||||
description | ||||
"Indicates the ENTITY-SENSOR-MIB objects are supported"; | ||||
reference "RFC 3433: Entity Sensor MIB"; | ||||
} | ||||
/* | ||||
* Data nodes | ||||
*/ | ||||
container hardware { | ||||
config false; | ||||
description | ||||
"Data nodes representing components."; | ||||
leaf last-change { | ||||
type yang:date-and-time; | ||||
description | ||||
"The time the '/hardware/component' list changed in the | ||||
operational state."; | ||||
} | ||||
list component { | ||||
key name; | ||||
description | ||||
"List of components. | ||||
When the server detects a new hardware component, it | ||||
initializes a list entry in the operational state. | ||||
If the server does not support configuration of hardware | ||||
components, list entries in the operational state are | ||||
initialized with values for all nodes as detected by the | ||||
implementation. | ||||
Otherwise, the following procedure is followed: | ||||
1. If there is an entry in the /hardware/component list in | ||||
the intended configuration with values for the nodes | ||||
'class', 'parent', 'parent-rel-pos' that are equal to | ||||
the detected values, then: | ||||
1a. If the configured entry has a value for 'mfg-name' | ||||
that is equal to the detected value, or if the | ||||
'mfg-name' value cannot be detected, then the list | ||||
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 | ||||
entry), the list entry in the operational state is | ||||
initialized with values for all nodes as detected by | ||||
the implementation. | ||||
If the /hardware/component list in the intended | ||||
configuration is modified, then the system MUST behave as if | ||||
it re-initializes itself, and follow the procedure in (1)."; | ||||
reference "RFC 6933: entPhysicalEntry"; | ||||
leaf name { | ||||
type string; | ||||
description | ||||
"The name assigned to this component. | ||||
This name is not required to be the same as | ||||
entPhysicalName."; | ||||
} | ||||
leaf class { | ||||
type identityref { | ||||
base ianahw:hardware-class; | ||||
} | ||||
mandatory true; | ||||
description | ||||
"An indication of the general hardware type of the | ||||
component."; | ||||
reference "RFC 6933: entPhysicalClass"; | ||||
} | ||||
leaf physical-index { | ||||
if-feature entity-mib; | ||||
type int32 { | ||||
range "1..2147483647"; | ||||
} | ||||
description | ||||
"The entPhysicalIndex for the entPhysicalEntry represented | ||||
by this list entry."; | ||||
reference "RFC 6933: entPhysicalIndex"; | ||||
} | ||||
leaf description { | ||||
type string; | ||||
description | ||||
"A textual description of component. This node should | ||||
contain a string that identifies the manufacturer's name | ||||
for the component and should be set to a distinct value | ||||
for each version or model of the component."; | ||||
reference "RFC 6933: entPhysicalDescr"; | ||||
} | ||||
leaf parent { | ||||
type leafref { | ||||
path "../../component/name"; | ||||
require-instance false; | ||||
} | ||||
description | ||||
"The name of the component that physically contains this | ||||
component. | ||||
If this leaf is not instantiated, it indicates that this | ||||
component is not contained in any other component. | ||||
In the event that a physical component is contained by | ||||
more than one physical component (e.g., double-wide | ||||
modules), this node contains the name of one of these | ||||
components. An implementation MUST use the same name | ||||
every time this node is instantiated."; | ||||
reference "RFC 6933: entPhysicalContainedIn"; | ||||
} | ||||
leaf parent-rel-pos { | ||||
type int32 { | ||||
range "0 .. 2147483647"; | ||||
} | ||||
description | ||||
"An indication of the relative position of this child | ||||
component among all its sibling components. Sibling | ||||
components are defined as components that: | ||||
o Share the same value of the 'parent' node; and | ||||
o Share a common base identity for the 'class' node. | ||||
Note that the last rule gives implementations flexibility | ||||
in how components are numbered. For example, some | ||||
implementations might have a single number series for all | ||||
components derived from 'ianahw:port', while some others | ||||
might have different number series for different | ||||
components with identities derived from 'ianahw:port' (for | ||||
example, one for RJ45 and one for SFP)."; | ||||
reference "RFC 6933: entPhysicalParentRelPos"; | ||||
} | ||||
leaf-list contains-child { | ||||
type leafref { | ||||
path "../../component/name"; | ||||
} | ||||
description | ||||
"The name of the contained component."; | ||||
reference "RFC 6933: entPhysicalChildIndex"; | ||||
} | ||||
leaf hardware-rev { | ||||
type string; | ||||
description | ||||
"The vendor-specific hardware revision string for the | ||||
component. The preferred value is the hardware revision | ||||
identifier actually printed on the component itself (if | ||||
present)."; | ||||
reference "RFC 6933: entPhysicalHardwareRev"; | ||||
} | ||||
leaf firmware-rev { | ||||
type string; | ||||
description | ||||
"The vendor-specific firmware revision string for the | ||||
component."; | ||||
reference "RFC 6933: entPhysicalFirmwareRev"; | ||||
} | ||||
leaf software-rev { | ||||
type string; | ||||
description | ||||
"The vendor-specific software revision string for the | ||||
component."; | ||||
reference "RFC 6933: entPhysicalSoftwareRev"; | ||||
} | ||||
leaf serial-num { | ||||
type string; | ||||
description | ||||
"The vendor-specific serial number string for the | ||||
component. The preferred value is the serial number | ||||
string actually printed on the component itself (if | ||||
present)."; | ||||
reference "RFC 6933: entPhysicalSerialNum"; | ||||
} | ||||
leaf mfg-name { | ||||
type string; | ||||
description | ||||
"The name of the manufacturer of this physical component. | ||||
The preferred value is the manufacturer name string | ||||
actually printed on the component itself (if present). | ||||
Note that comparisons between instances of the model-name, | ||||
firmware-rev, software-rev, and the serial-num nodes are | ||||
only meaningful amongst component with the same value of | ||||
mfg-name. | ||||
If the manufacturer name string associated with the | ||||
physical component is unknown to the server, then this | ||||
node is not instantiated."; | ||||
reference "RFC 6933: entPhysicalMfgName"; | ||||
} | ||||
leaf model-name { | ||||
type string; | ||||
description | ||||
"The vendor-specific model name identifier string | ||||
associated with this physical component. The preferred | ||||
value is the customer-visible part number, which may be | ||||
printed on the component itself. | ||||
If the model name string associated with the physical | ||||
component is unknown to the server, then this node is not | ||||
instantiated."; | ||||
reference "RFC 6933: entPhysicalModelName"; | ||||
} | ||||
leaf alias { | ||||
type string; | ||||
description | ||||
"An 'alias' name for the component, as specified by a | ||||
network manager, and provides a non-volatile 'handle' for | ||||
the component. | ||||
If no configured value exists, the server MAY set the | ||||
value of this node to a locally unique value in the | ||||
operational state. | ||||
A server implementation MAY map this leaf to the | ||||
entPhysicalAlias MIB object. Such an implementation needs | ||||
to use some mechanism to handle the differences in size | ||||
and characters allowed between this leaf and | ||||
entPhysicalAlias. The definition of such a mechanism is | ||||
outside the scope of this document."; | ||||
reference "RFC 6933: entPhysicalAlias"; | ||||
} | ||||
leaf asset-id { | ||||
type string; | ||||
description | ||||
"This node is a user-assigned asset tracking identifier for | ||||
the component. | ||||
A server implementation MAY map this leaf to the | ||||
entPhysicalAssetID MIB object. Such an implementation | ||||
needs to use some mechanism to handle the differences in | ||||
size and characters allowed between this leaf and | ||||
entPhysicalAssetID. The definition of such a mechanism is | ||||
outside the scope of this document."; | ||||
reference "RFC 6933: entPhysicalAssetID"; | ||||
} | ||||
leaf is-fru { | ||||
type boolean; | ||||
description | ||||
"This node indicates whether or not this component is | ||||
considered a 'field replaceable unit' by the vendor. If | ||||
this node contains the value 'true', then this component | ||||
identifies a field replaceable unit. For all components | ||||
that are permanently contained within a field replaceable | ||||
unit, the value 'false' should be returned for this | ||||
node."; | ||||
reference "RFC 6933: entPhysicalIsFRU"; | ||||
} | ||||
leaf mfg-date { | ||||
type yang:date-and-time; | ||||
description | ||||
"The date of manufacturing of the managed component."; | ||||
reference "RFC 6933: entPhysicalMfgDate"; | ||||
} | ||||
leaf-list uri { | ||||
type inet:uri; | ||||
description | ||||
"This node contains identification information about the | ||||
component."; | ||||
reference "RFC 6933: entPhysicalUris"; | ||||
} | ||||
leaf uuid { | ||||
type yang:uuid; | ||||
description | ||||
"A Universally Unique Identifier of the component."; | ||||
reference "RFC 6933: entPhysicalUUID"; | ||||
} | ||||
container state { | ||||
if-feature hardware-state; | ||||
description | ||||
"State-related nodes"; | ||||
reference "RFC 4268: Entity State MIB"; | ||||
leaf state-last-changed { | ||||
type yang:date-and-time; | ||||
description | ||||
"The date and time when the value of any of the | ||||
admin-state, oper-state, usage-state, alarm-state, or | ||||
standby-state changed for this component. | ||||
If there has been no change since the last | ||||
re-initialization of the local system, this node | ||||
contains the date and time of local system | ||||
initialization. If there has been no change since the | ||||
component was added to the local system, this node | ||||
contains the date and time of the insertion."; | ||||
reference "RFC 4268: entStateLastChanged"; | ||||
} | ||||
leaf admin-state { | ||||
type hw:admin-state; | ||||
description | ||||
"The administrative state for this component. | ||||
This node refers to a component's administrative | ||||
permission to service both other components within its | ||||
containment hierarchy as well other users of its | ||||
services defined by means outside the scope of this | ||||
module. | ||||
Some components exhibit only a subset of the remaining | ||||
administrative state values. Some components cannot be | ||||
locked, and hence this node exhibits only the 'unlocked' | ||||
state. Other components cannot be shutdown gracefully, | ||||
and hence this node does not exhibit the 'shutting-down' | ||||
state."; | ||||
reference "RFC 4268: entStateAdmin"; | ||||
} | ||||
leaf oper-state { | ||||
type hw:oper-state; | ||||
description | ||||
"The operational state for this component. | ||||
Note that this node does not follow the administrative | ||||
state. An administrative state of down does not predict | ||||
an operational state of disabled. | ||||
Note that some implementations may not be able to | ||||
accurately report oper-state while the admin-state node | ||||
has a value other than 'unlocked'. In these cases, this | ||||
node MUST have a value of 'unknown'."; | ||||
reference "RFC 4268: entStateOper"; | ||||
} | ||||
leaf usage-state { | ||||
type hw:usage-state; | ||||
description | ||||
"The usage state for this component. | ||||
This node refers to a component's ability to service | ||||
more components in a containment hierarchy. | ||||
Some components will exhibit only a subset of the usage | ||||
state values. Components that are unable to ever | ||||
service any components within a containment hierarchy | ||||
will always have a usage state of 'busy'. Some | ||||
components will only ever be able to support one | ||||
component within its containment hierarchy and will | ||||
therefore only exhibit values of 'idle' and 'busy'."; | ||||
reference "RFC 4268, entStateUsage"; | ||||
} | ||||
leaf alarm-state { | ||||
type hw:alarm-state; | ||||
description | ||||
"The alarm state for this component. It does not | ||||
include the alarms raised on child components within its | ||||
containment hierarchy."; | ||||
reference "RFC 4268: entStateAlarm"; | ||||
} | ||||
leaf standby-state { | ||||
type hw:standby-state; | ||||
description | ||||
"The standby state for this component. | ||||
Some components will exhibit only a subset of the | ||||
remaining standby state values. If this component | ||||
cannot operate in a standby role, the value of this node | ||||
will always be 'providing-service'."; | ||||
reference "RFC 4268: entStateStandby"; | ||||
} | ||||
} | ||||
container sensor-data { | ||||
when 'derived-from-or-self(../class, | ||||
"ianahw:sensor")' { | ||||
description | ||||
"Sensor data nodes present for any component of type | ||||
'sensor'"; | ||||
} | ||||
if-feature hardware-sensor; | ||||
description | ||||
"Sensor-related nodes."; | ||||
reference "RFC 3433: Entity Sensor MIB"; | ||||
leaf value { | ||||
type hw:sensor-value; | ||||
description | ||||
"The most recent measurement obtained by the server | ||||
for this sensor. | ||||
A client that periodically fetches this node should also | ||||
fetch the nodes 'value-type', 'value-scale', and | ||||
'value-precision', since they may change when the value | ||||
is changed."; | ||||
reference "RFC 3433: entPhySensorValue"; | ||||
} | ||||
leaf value-type { | ||||
type hw:sensor-value-type; | ||||
description | ||||
"The type of data units associated with the | ||||
sensor value"; | ||||
reference "RFC 3433: entPhySensorType"; | ||||
} | ||||
leaf value-scale { | ||||
type hw:sensor-value-scale; | ||||
description | ||||
"The (power of 10) scaling factor associated | ||||
with the sensor value"; | ||||
reference "RFC 3433: entPhySensorScale"; | ||||
} | ||||
leaf value-precision { | ||||
type hw:sensor-value-precision; | ||||
description | ||||
"The number of decimal places of precision | ||||
associated with the sensor value"; | ||||
reference "RFC 3433: entPhySensorPrecision"; | ||||
} | ||||
leaf oper-status { | ||||
type hw:sensor-status; | ||||
description | ||||
"The operational status of the sensor."; | ||||
reference "RFC 3433: entPhySensorOperStatus"; | ||||
} | ||||
leaf units-display { | ||||
type string; | ||||
description | ||||
"A textual description of the data units that should be | ||||
used in the display of the sensor value."; | ||||
reference "RFC 3433: entPhySensorUnitsDisplay"; | ||||
} | ||||
leaf value-timestamp { | ||||
type yang:date-and-time; | ||||
description | ||||
"The time the status and/or value of this sensor was last | ||||
obtained by the server."; | ||||
reference "RFC 3433: entPhySensorValueTimeStamp"; | ||||
} | ||||
leaf value-update-rate { | ||||
type uint32; | ||||
units "milliseconds"; | ||||
description | ||||
"An indication of the frequency that the server updates | ||||
the associated 'value' node, representing in | ||||
milliseconds. The value zero indicates: | ||||
- the sensor value is updated on demand (e.g., | ||||
when polled by the server for a get-request), | ||||
- the sensor value is updated when the sensor | ||||
value changes (event-driven), | ||||
- the server does not know the update rate."; | ||||
reference "RFC 3433: entPhySensorValueUpdateRate"; | ||||
} | ||||
} | ||||
} | ||||
} | ||||
/* | ||||
* Notifications | ||||
*/ | ||||
notification hardware-state-change { | ||||
description | ||||
"A hardware-state-change notification is generated when the | ||||
value of /hardware/last-change changes in the operational | ||||
state."; | ||||
reference "RFC 6933, entConfigChange"; | ||||
} | ||||
notification hardware-state-oper-enabled { | ||||
if-feature hardware-state; | ||||
description | ||||
"A hardware-state-oper-enabled notification signifies that a | ||||
component has transitioned into the 'enabled' state."; | ||||
leaf name { | ||||
type leafref { | ||||
path "/hardware/component/name"; | ||||
} | ||||
description | ||||
"The name of the component that has transitioned into the | ||||
'enabled' state."; | ||||
} | ||||
leaf admin-state { | ||||
type leafref { | ||||
path "/hardware/component/state/admin-state"; | ||||
} | ||||
description | ||||
"The administrative state for the component."; | ||||
} | ||||
leaf alarm-state { | ||||
type leafref { | ||||
path "/hardware/component/state/alarm-state"; | ||||
} | ||||
description | ||||
"The alarm state for the component."; | ||||
} | ||||
reference "RFC 4268, entStateOperEnabled"; | ||||
} | ||||
notification hardware-state-oper-disabled { | ||||
if-feature hardware-state; | ||||
description | ||||
"A hardware-state-oper-disabled notification signifies that a | ||||
component has transitioned into the 'disabled' state."; | ||||
leaf name { | ||||
type leafref { | ||||
path "/hardware/component/name"; | ||||
} | ||||
description | ||||
"The name of the component that has transitioned into the | ||||
'disabled' state."; | ||||
} | ||||
leaf admin-state { | ||||
type leafref { | ||||
path "/hardware/component/state/admin-state"; | ||||
} | ||||
description | ||||
"The administrative state for the component."; | ||||
} | ||||
leaf alarm-state { | ||||
type leafref { | ||||
path "/hardware/component/state/alarm-state"; | ||||
} | ||||
description | ||||
"The alarm state for the component."; | ||||
} | ||||
reference "RFC 4268, entStateOperDisabled"; | ||||
} | ||||
} | ||||
<CODE ENDS> | ||||
Authors' Addresses | Authors' Addresses | |||
Andy Bierman | Andy Bierman | |||
YumaWorks | YumaWorks | |||
Email: andy@yumaworks.com | Email: andy@yumaworks.com | |||
Martin Bjorklund | Martin Bjorklund | |||
Tail-f Systems | Tail-f Systems | |||
End of changes. 28 change blocks. | ||||
58 lines changed or deleted | 818 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/ |