draft-tao-netconf-data-export-capabilities-02.txt | draft-tao-netconf-data-export-capabilities-03.txt | |||
---|---|---|---|---|
NETCONF Working Group Q. Wu | NETCONF Working Group Q. Wu | |||
Internet-Draft Q. Ma | Internet-Draft Q. Ma | |||
Intended status: Standards Track Huawei | Intended status: Standards Track Huawei | |||
Expires: May 2, 2021 L. Geng | Expires: July 24, 2021 P. Liu | |||
P. Liu | ||||
China Mobile | China Mobile | |||
October 29, 2020 | January 20, 2021 | |||
Telemetry Data Export capability | Telemetry Data Export capability | |||
draft-tao-netconf-data-export-capabilities-02 | draft-tao-netconf-data-export-capabilities-03 | |||
Abstract | Abstract | |||
This document proposes a YANG module for telemetry data export | This document proposes a YANG module for telemetry data export | |||
capability which augments system Capabilities model and provides | capabilities which augments system Capabilities model and provides | |||
additional telemetry data export attributes associated with system | additional telemetry data export attributes associated with system | |||
capability for transport dependent capability negotiation. | capabilities for transport dependent capability advertisement. | |||
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. | |||
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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 May 2, 2021. | This Internet-Draft will expire on July 24, 2021. | |||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2020 IETF Trust and the persons identified as the | Copyright (c) 2021 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 | |||
(https://trustee.ietf.org/license-info) in effect on the date of | (https://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 . . . . . . . . . . . . . . . . . . . . . . . 3 | |||
2. Data Export capability . . . . . . . . . . . . . . . . . . . 3 | 2. Data Export capability . . . . . . . . . . . . . . . . . . . 3 | |||
2.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Tree Diagram . . . . . . . . . . . . . . . . . . . . . . 4 | |||
3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 4 | 3. YANG Module . . . . . . . . . . . . . . . . . . . . . . . . . 4 | |||
4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 | 4. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | |||
4.1. Updates to the IETF XML Registry . . . . . . . . . . . . 9 | 4.1. Updates to the IETF XML Registry . . . . . . . . . . . . 10 | |||
4.2. Updates to the YANG Module Names Registry . . . . . . . . 10 | 4.2. Updates to the YANG Module Names Registry . . . . . . . . 10 | |||
5. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 5. Security Considerations . . . . . . . . . . . . . . . . . . . 11 | |||
6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 11 | 6. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 11 | |||
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 12 | |||
7.1. Normative References . . . . . . . . . . . . . . . . . . 11 | 7.1. Normative References . . . . . . . . . . . . . . . . . . 12 | |||
7.2. Informative References . . . . . . . . . . . . . . . . . 12 | 7.2. Informative References . . . . . . . . . . . . . . . . . 13 | |||
Appendix A. Usage Example of interaction between telemetry data | Appendix A. Usage Example of interaction with Adaptive | |||
export capabilities and Adaptive Subscription . . . 13 | Subscription . . . . . . . . . . . . . . . . . . . . 14 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 15 | Appendix B. Usage Example of interaction with UDP based | |||
Transport for Configured Subscription . . . . . . . 16 | ||||
Appendix C. Changes between Revisions . . . . . . . . . . . . . 17 | ||||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18 | ||||
1. Introduction | 1. Introduction | |||
Notification capability model defined in [I-D.netconf-notification- | Notification capabilities model defined in [I-D.netconf-notification- | |||
capabilities] allows a client to discover a set of capabilities | capabilities] allows a client to discover a set of capabilities | |||
supported by the server (e.g., basic system capability and YANG-Push | supported by the server (e.g., basic system capabilities and YANG- | |||
related capabilities) both at implementation-time and run-time. | Push related capabilities) both at implementation-time and run-time. | |||
These "capabilities" permit the client to adjust its behavior to take | These capabilities permit the client to adjust its behavior to take | |||
advantage of the features exposed by the device. | advantage of the features exposed by the device. | |||
However pre-configuration for some transport specific parameters | However the client and the server may still support various different | |||
(e.g., transport protocol, encoding format, encryption by the client | transport specific parameters (e.g., transport protocol, encoding | |||
is still inevitable, which may cause unexpected failure and | format, encryption). As described in section 3.1 of [RFC8641], a | |||
additional message exchange between client and server. | simple negotiation (i.e., inserting hints into error responses to a | |||
failed RPC request) between subscribers and publishers for | ||||
subscription parameters increases the likelihood of success for | ||||
subsequent RPC requests, but not guaranteed, which may cause | ||||
unexpected failure or additional message exchange between client and | ||||
server. | ||||
This document proposes a YANG module for telemetry data export | This document defines a corresponding solution that is built on top | |||
capability which augments System Capabilities model and provide | of [I-D.netconf-notification-capabilities]. Supplementing that work | |||
additional data export attributes for transport dependent capability | are YANG data model augmentations for transport dependent capability | |||
negotiation. | advertisement. | |||
1.1. Terminology | 1.1. Terminology | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "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] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
2. Data Export capability | 2. Data Export capability | |||
skipping to change at page 3, line 27 ¶ | skipping to change at page 3, line 35 ¶ | |||
level or on specific data nodes (and their contained sub-tree) of | level or on specific data nodes (and their contained sub-tree) of | |||
a specific datastore. Capability values on a smaller, more | a specific datastore. Capability values on a smaller, more | |||
specific part of the server's data always override more generic | specific part of the server's data always override more generic | |||
values. | values. | |||
o On-change capability is not specified on a server level as | o On-change capability is not specified on a server level as | |||
different datastores usually have different on-change | different datastores usually have different on-change | |||
capabilities. On a datastore level on-change capability for | capabilities. On a datastore level on-change capability for | |||
configuration and state data can be specified separately. | configuration and state data can be specified separately. | |||
These server capabilities are transport independent and session level | These server capabilities are transport independent, session level | |||
capabilities and can be provided either at implementation time or | capabilities. They can be provided either at the implementation time | |||
reported at run time. | or reported at the run time. | |||
This document augments system Capabilities model and provides | This document augments system Capabilities model and provides | |||
additional data export attributes associated with system | additional data export attributes associated with system | |||
capabilities: | capabilities: | |||
o Specification of transport protocol the client can use to | o Specification of transport protocol the client can use to | |||
establish transport connection; | establish a transport connection; | |||
o Specification of encoding selection(e.g., XML or JSON, to binary) | o Specification of the encoding selection used (e.g., XML or JSON, | |||
of Data Modeled with YANG; | Binary) for Data Modeled with YANG; | |||
o Specification of secure transport mechanisms that are needed by | o Specification of secure transport mechanisms that are needed by | |||
the client to communicate with the server; | the client to communicate with the server; | |||
o Specification of the type of data compression algorithm (e.g., | o Specification of the type of data compression algorithm (e.g., | |||
lossless data compression) the client can use for file compression | lossless data compression) the client can use for file compression | |||
and decompression | and decompression | |||
o Specification of the notification message encapsulation type, | o Specification of the notification message encapsulation type, | |||
either one notification per message or multiple notifications per | either one notification per message or multiple notifications per | |||
skipping to change at page 4, line 16 ¶ | skipping to change at page 4, line 24 ¶ | |||
trigger, timer event based trigger, count threshold trigger, | trigger, timer event based trigger, count threshold trigger, | |||
redundant suppression. | redundant suppression. | |||
2.1. Tree Diagram | 2.1. Tree Diagram | |||
The following tree diagram [RFC8340] provides an overview of the data | The following tree diagram [RFC8340] provides an overview of the data | |||
model. | model. | |||
module: ietf-data-export-capabilities | module: ietf-data-export-capabilities | |||
augment /sysc:system-capabilities: | augment /sysc:system-capabilities: | |||
+--ro data-export-capabilities | +--ro data-export-capabilities* [] | |||
+--ro transport-protocol? identityref | +--ro transport-protocol? identityref | |||
+--ro encoding-format? identityref | +--ro encoding-format? identityref | |||
+--ro security-protocol? identityref | +--ro security-protocol? identityref | |||
+--ro compression-mode? identityref | +--ro compression-mode? identityref | |||
augment /sysc:system-capabilities/inc:subscription-capabilities: | augment /sysc:system-capabilities/inc:subscription-capabilities: | |||
+--ro data-export-capabilities | +--ro data-export-capabilities | |||
+--ro message-bundling-support? boolean | +--ro message-bundling-support? boolean | |||
augment /sysc:system-capabilities/sysc:datastore-capabilities/sysc:per-node-capabilities: | augment /sysc:system-capabilities/sysc:datastore-capabilities/sysc:per-node-capabilities: | |||
+--ro data-export-capabilities | +--ro data-export-capabilities | |||
+--ro adaptive-interval-support boolean | +--ro adaptive-interval-support boolean | |||
skipping to change at page 5, line 38 ¶ | skipping to change at page 5, line 44 ¶ | |||
} | } | |||
identity transport-protocol { | identity transport-protocol { | |||
description | description | |||
"Base identity for transport protocol type."; | "Base identity for transport protocol type."; | |||
} | } | |||
identity tcp { | identity tcp { | |||
base transport-protocol; | base transport-protocol; | |||
description | description | |||
"Identity for tcp transport protocol."; | "Identity for tcp as transport protocol."; | |||
} | } | |||
identity udp { | identity udp-notif { | |||
base transport-protocol; | base transport-protocol; | |||
description | description | |||
"Identity for udp transport protocol."; | "Identity for udp notif as transport protocol."; | |||
reference | ||||
"draft-ietf-netconf-udp-notif:UDP-based Transport | ||||
for Configured Subscriptions"; | ||||
} | ||||
identity http-notif { | ||||
base transport-protocol; | ||||
description | ||||
"Identity for http notif as transport protocol."; | ||||
reference | ||||
"draft-ietf-netconf-https-notif: An HTTPS-based | ||||
Transport for Configured Subscriptions"; | ||||
} | } | |||
identity grpc { | identity grpc { | |||
base transport-protocol; | base transport-protocol; | |||
description | description | |||
"Identity for grpc transport protocol."; | "Identity for grpc as transport protocol."; | |||
} | } | |||
identity security-protocol { | identity security-protocol { | |||
description | description | |||
"Base identity for security protocol type."; | "Base identity for security protocol type."; | |||
} | } | |||
identity tls { | identity tls { | |||
base security-protocol; | base security-protocol; | |||
description | description | |||
"Identity for tls security protocol."; | "Identity for tls security protocol."; | |||
} | } | |||
skipping to change at page 6, line 38 ¶ | skipping to change at page 7, line 9 ¶ | |||
description | description | |||
"Identity for xml encoding format."; | "Identity for xml encoding format."; | |||
} | } | |||
identity json { | identity json { | |||
base encoding-format; | base encoding-format; | |||
description | description | |||
"Identity for json encoding format."; | "Identity for json encoding format."; | |||
} | } | |||
identity gpb { | identity binary { | |||
base encoding-format; | base encoding-format; | |||
description | description | |||
"Identity for binary encoding format."; | ||||
} | ||||
identity gpb { | ||||
base binary; | ||||
description | ||||
"Identity for gpb encoding format."; | "Identity for gpb encoding format."; | |||
} | } | |||
identity cbor { | identity cbor { | |||
base encoding-format; | base binary; | |||
description | description | |||
"Identity for cbor encoding format."; | "Identity for cbor encoding format."; | |||
} | } | |||
identity compression-mode { | identity compression-mode { | |||
description | description | |||
"Base identity for compression mode."; | "Base identity for compression mode."; | |||
} | } | |||
identity gzip { | identity gzip { | |||
base security-protocol; | base compression-mode; | |||
description | description | |||
"Identity for gzip compression mode."; | "Identity for gzip compression mode."; | |||
} | } | |||
identity deflate { | identity deflate { | |||
base security-protocol; | base compression-mode; | |||
description | description | |||
"Identity for deflate compression mode."; | "Identity for deflate compression mode."; | |||
} | } | |||
identity subscription-mode { | identity subscription-mode { | |||
description | description | |||
"Base identity for subscription mode."; | "Base identity for subscription mode."; | |||
} | } | |||
identity periodic { | identity periodic { | |||
skipping to change at page 7, line 51 ¶ | skipping to change at page 8, line 28 ¶ | |||
typedef centiseconds { | typedef centiseconds { | |||
type uint32; | type uint32; | |||
description | description | |||
"A period of time, measured in units of 0.01 seconds."; | "A period of time, measured in units of 0.01 seconds."; | |||
} | } | |||
augment "/sysc:system-capabilities" { | augment "/sysc:system-capabilities" { | |||
description | description | |||
"Add system level capability."; | "Add system level capability."; | |||
container data-export-capabilities { | list data-export-capabilities { | |||
description | description | |||
"Capabilities related to telemetry data export capability negotiation."; | "Capabilities related to telemetry data export capabilities negotiation."; | |||
leaf transport-protocol { | leaf transport-protocol { | |||
type identityref { | type identityref { | |||
base transport-protocol; | base transport-protocol; | |||
} | } | |||
description | description | |||
"Type of transport protocol."; | "Type of transport protocol."; | |||
} | } | |||
leaf encoding-format { | leaf encoding-format { | |||
type identityref { | type identityref { | |||
base encoding-format; | base encoding-format; | |||
skipping to change at page 11, line 4 ¶ | skipping to change at page 11, line 29 ¶ | |||
There are a number of data nodes defined in this YANG module that are | There are a number of data nodes defined in this YANG module that are | |||
writable/creatable/deletable (i.e., config true, which is the | writable/creatable/deletable (i.e., config true, which is the | |||
default). These data nodes may be considered sensitive in some | default). These data nodes may be considered sensitive in some | |||
network environments. Write operations (e.g., edit-config) to these | network environments. Write operations (e.g., edit-config) to these | |||
data nodes without proper protection can have a negative effect on | data nodes without proper protection can have a negative effect on | |||
network operations. These are the subtrees and data nodes and their | network operations. These are the subtrees and data nodes and their | |||
sensitivity/vulnerability: | sensitivity/vulnerability: | |||
o /sysc:system-capabilities/dec:transport-protocol | o /sysc:system-capabilities/dec:transport-protocol | |||
o /sysc:system-capabilities/dec:encoding-format | o /sysc:system-capabilities/dec:encoding-format | |||
o /sysc:system-capabilities/dec:secure-transport | o /sysc:system-capabilities/dec:security-protocol | |||
o /sysc:system-capabilities/dec:compression-mode | o /sysc:system-capabilities/dec:compression-mode | |||
o /sysc:system-capabilities/inc:subscription-capabilities/ | o /sysc:system-capabilities/inc:subscription-capabilities/ | |||
dec:message-bundling-support | dec:message-bundling-support | |||
o /sysc:system-capabilities/inc:subscription-capabilities/ | 6. Contributors | |||
dec:subscription-mode | Ran Tao | |||
Huawei | ||||
101 Software Avenue, Yuhua District | ||||
Nanjing, Jiangsu 210012 | ||||
China | ||||
Email: taoran20@huawei.com | ||||
o /sysc:system-capabilities/sysc:datastore-capabilities/sysc:per- | Liang Geng | |||
node-capabilities/dec:sampling-interval | China Mobile | |||
32 Xuanwumen West St, Xicheng District | ||||
Beijing 10053 | ||||
6. Contributors | Email: gengliang@chinamobile.com | |||
The authors would like to thank Ran Tao for his major contributions | Thomas Graf | |||
to the initial modeling and use cases. | Swisscom | |||
Binzring 17 | ||||
Zuerich 8045 | ||||
Switzerland | ||||
Email: thomas.graf@swisscom.com | ||||
7. References | 7. References | |||
7.1. Normative References | 7.1. Normative References | |||
[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, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
skipping to change at page 12, line 35 ¶ | skipping to change at page 13, line 35 ¶ | |||
Documents Containing YANG Data Models", BCP 216, RFC 8407, | Documents Containing YANG Data Models", BCP 216, RFC 8407, | |||
DOI 10.17487/RFC8407, October 2018, | DOI 10.17487/RFC8407, October 2018, | |||
<https://www.rfc-editor.org/info/rfc8407>. | <https://www.rfc-editor.org/info/rfc8407>. | |||
[RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | [RFC8446] Rescorla, E., "The Transport Layer Security (TLS) Protocol | |||
Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | Version 1.3", RFC 8446, DOI 10.17487/RFC8446, August 2018, | |||
<https://www.rfc-editor.org/info/rfc8446>. | <https://www.rfc-editor.org/info/rfc8446>. | |||
7.2. Informative References | 7.2. Informative References | |||
[I-D.ietf-netconf-https-notif] | ||||
Jethanandani, M. and K. Watsen, "An HTTPS-based Transport | ||||
for Configured Subscriptions", draft-ietf-netconf-https- | ||||
notif-06 (work in progress), November 2020. | ||||
[I-D.ietf-netconf-udp-notif] | ||||
Zheng, G., Zhou, T., Graf, T., Francois, P., and P. | ||||
Lucente, "UDP-based Transport for Configured | ||||
Subscriptions", draft-ietf-netconf-udp-notif-01 (work in | ||||
progress), November 2020. | ||||
[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, | DOI 10.17487/RFC3688, January 2004, | |||
<https://www.rfc-editor.org/info/rfc3688>. | <https://www.rfc-editor.org/info/rfc3688>. | |||
[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, | DOI 10.17487/RFC6020, October 2010, | |||
<https://www.rfc-editor.org/info/rfc6020>. | <https://www.rfc-editor.org/info/rfc6020>. | |||
[RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | [RFC8340] Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", | |||
BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | BCP 215, RFC 8340, DOI 10.17487/RFC8340, March 2018, | |||
<https://www.rfc-editor.org/info/rfc8340>. | <https://www.rfc-editor.org/info/rfc8340>. | |||
Appendix A. Usage Example of interaction between telemetry data export | Appendix A. Usage Example of interaction with Adaptive Subscription | |||
capabilities and Adaptive Subscription | ||||
The following instance-data example describes the notification | The following instance-data example describes the notification | |||
capabilities of a hypothetical "acme-router". The router implements | capabilities of a hypothetical "acme-router". The router implements | |||
the running, and operational datastores. Every change can be | the running, and operational datastores. Every change can be | |||
reported on-change from running, but only config=true nodes and some | reported on-change from running, but only config=true nodes and some | |||
config=false data from operational. Interface statistics are | config=false data from operational. Interface statistics are | |||
reported only when both adaptive-interval-support and count- | reported only when both adaptive-interval-support and count- | |||
threshold-support are set to true. | threshold-support are set to true. | |||
<CODE BEGINS> file "acme-router-notification-capabilities.xml" | ||||
========== NOTE: '\' line wrapping per BCP YYY (RFC YYYY) =========== | ||||
<?xml version="1.0" encoding="UTF-8"?> | <?xml version="1.0" encoding="UTF-8"?> | |||
<instance-data-set xmlns=\ | <instance-data-set xmlns= | |||
"urn:ietf:params:xml:ns:yang:ietf-yang-instance-data"> | "urn:ietf:params:xml:ns:yang:ietf-yang-instance-data"> | |||
<name>acme-router-notification-capabilities</name> | <name>acme-router-notification-capabilities</name> | |||
<content-schema> | <content-schema> | |||
<module>ietf-system-capabilities@2020-03-23</module> | <module>ietf-system-capabilities@2020-03-23</module> | |||
<module>ietf-notification-capabilities@2020-03-23</module> | <module>ietf-notification-capabilities@2020-03-23</module> | |||
<module>ietf-data-export-capabilities@2020-03-23</module> | <module>ietf-data-export-capabilities@2020-03-23</module> | |||
</content-schema> | </content-schema> | |||
<!-- revision date, contact, etc. --> | <!-- revision date, contact, etc. --> | |||
<description>Defines the notification capabilities of an acme-router. | <description>Defines the notification capabilities of an acme-router. | |||
The router only has running, and operational datastores. | The router only has running, and operational datastores. | |||
Every change can be reported on-change from running, but | Every change can be reported on-change from running, but | |||
only config=true nodes and some config=false data from operational. | only config=true nodes and some config=false data from operational. | |||
Statistics are not reported based on timer based trigger and counter | Statistics are not reported based on timer based trigger and counter | |||
threshold based trigger. | threshold based trigger. | |||
</description> | </description> | |||
<content-data> | <content-data> | |||
<system-capabilities \ | <system-capabilities | |||
xmlns="urn:ietf:params:xml:ns:yang:ietf-system-capabilities" \ | xmlns="urn:ietf:params:xml:ns:yang:ietf-system-capabilities" | |||
xmlns:inc=\ | xmlns:inc= | |||
"urn:ietf:params:xml:ns:yang:ietf-notification-capabilities" \ | "urn:ietf:params:xml:ns:yang:ietf-notification-capabilities" | |||
xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores"> | xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores"> | |||
<datastore-capabilities> | <datastore-capabilities | |||
xmlns:dec="urn:ietf:params:xml:ns:yang:ietf-data-export-capabilities"> | ||||
<datastore>ds:operational</datastore> | <datastore>ds:operational</datastore> | |||
<per-node-capabilities> | <per-node-capabilities> | |||
<node-selector>\ | <node-selector> | |||
/if:interfaces/if:interface/if:statistics\ | /if:interfaces/if:interface/if:statistics | |||
</node-selector> | </node-selector> | |||
<inc:subscription-capabilities> | <inc:subscription-capabilities> | |||
<inc:minimum-dampening-period>5 | <inc:minimum-dampening-period>5 | |||
</inc:minimum-dampening-period> | </inc:minimum-dampening-period> | |||
<inc:on-change-supported>\ | <inc:on-change-supported> | |||
state-changes\ | state-changes | |||
</inc:on-change-supported> | </inc:on-change-supported> | |||
</inc:subscription-capabilities> | </inc:subscription-capabilities> | |||
</per-node-capabilities> | </per-node-capabilities> | |||
<per-node-capabilities> | <per-node-capabilities> | |||
<node-selector>\ | <node-selector> | |||
/if:interfaces/if:interface/if:statistics/if:out-octets\ | /if:interfaces/if:interface/if:statistics/if:out-octets | |||
</node-selector> | </node-selector> | |||
<dec:data-export-capabilities> | <dec:data-export-capabilities> | |||
<dec:adaptive-interval-support>false</dec:adaptive-interval-support> | <dec:adaptive-interval-support>false</dec:adaptive-interval-support> | |||
<dec:threshold-event-support>false</dec:threshold-event-support> | <dec:threshold-event-support>false</dec:threshold-event-support> | |||
</dec:data-export-capabilities> | </dec:data-export-capabilities> | |||
</per-node-capabilities> | </per-node-capabilities> | |||
</per-node-capabilities> | ||||
<per-node-capabilities> | <per-node-capabilities> | |||
<node-selector>\ | <node-selector> | |||
/if:interfaces/if:interface/if:statistics/if:in-errors\ | /if:interfaces/if:interface/if:statistics/if:in-errors | |||
</node-selector> | </node-selector> | |||
<dec:data-export-capabilities> | <dec:data-export-capabilities> | |||
<dec:adaptive-interval-support>true</dec:adaptive-interval-support> | <dec:adaptive-interval-support>true</dec:adaptive-interval-support> | |||
<dec:threshold-event-support>true</dec:threshold-event-support> | <dec:threshold-event-support>true</dec:threshold-event-support> | |||
</dec:data-export-capabilities> | </dec:data-export-capabilities> | |||
</per-node-capabilities> | </per-node-capabilities> | |||
</datastore-capabilities> | </datastore-capabilities> | |||
</system-capabilities> | </system-capabilities> | |||
</content-data> | </content-data> | |||
</instance-data-set> | </instance-data-set> | |||
The client configure adaptive subscription parameters on the server. | The client configure adaptive subscription parameters on the server. | |||
The adaptive subscription configuration parameters require the server | The adaptive subscription configuration parameters require the server | |||
to scan all interface of specific type every 5 seconds up to 30 | to scan all interface of specific type every 5 seconds if the value | |||
seconds if the value of interface in-errors is greater than 1000; If | of interface in-errors is greater than 1000; If the interface in- | |||
the interface in-errors value is less than 1000, switch to 60 seconds | errors value is less than 1000, switch to 60 seconds period value, | |||
period value, and then scan all client every 60 seconds up to 360 | and then scan all client every 60 seconds. | |||
seconds. 30 seconds and 360 seconds can be seen as time window. The | ||||
time window lenght is 6 period values. Irrespective of period value | ||||
set for adaptive subscription, 6 event records during the time window | ||||
should be generated for the same subscription and send to the | ||||
receivers. | ||||
<rpc message-id="101" | <rpc message-id="101" | |||
xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | xmlns="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
<edit-config> | <edit-config> | |||
<target> | <target> | |||
<running/> | <running/> | |||
</target> | </target> | |||
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"> | <config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0"> | |||
<top xmlns="http://example.com/schema/1.2/config"> | <top xmlns="http://example.com/schema/1.2/config" | |||
xmlns:yp="urn:ietf:params:xml:ns:yang:ietf-yang-push" | ||||
> | ||||
<yp:datastore | <yp:datastore | |||
xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores"> | xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores"> | |||
ds:running | ds:running | |||
</yp:datastore> | </yp:datastore> | |||
<yp:datastore-xpath-filter | <yp:datastore-xpath-filter | |||
xmlns:ex="https://example.com/sample-data/1.0"> | xmlns:ex="https://example.com/sample-data/1.0"> | |||
/if:ietf-interfaces | /if:ietf-interfaces | |||
</yp:datastore-xpath-filter> | </yp:datastore-xpath-filter> | |||
<as:adaptive-subscriptions | <as:adaptive-subscriptions | |||
xmlns:as="urn:ietf:params:xml:ns:yang:ietf-adaptive-subscription"> | xmlns:as="urn:ietf:params:xml:ns:yang:ietf-adaptive-subscription"> | |||
<as:data-path>/if:interfaces/if:interface/if:statistics</as:data-path> | <as:data-path>/if:interfaces/if:interface/if:statistics</as:data-path> | |||
<as:target>in-errors</as:target> | <as:target>in-errors</as:target> | |||
<as:adaptive-period> | <as:adaptive-period> | |||
<as:condition-expression>in-errors < 1000</as:condition-expressioni> | <as:xpath-external-eval>in-errors > 1000</as:xpath-external-eval> | |||
<as:watermark>1000</as:watermark> | <as:watermark>1000</as:watermark> | |||
<as:period>5</as:period> | <as:period>5</as:period> | |||
<as:count>12</as:count> | ||||
</as:adaptive-period> | </as:adaptive-period> | |||
<as:adaptive-period> | <as:adaptive-period> | |||
<as:condition-expression>in-errors < 1000</as:condition-expressioni> | <as:xpath-external-eval>in-errors < 1000</as:xpath-external-eval> | |||
<as:watermark>1000</as:watermark> | <as:watermark>1000</as:watermark> | |||
<as:period>60</as:period> | <as:period>60</as:period> | |||
<as:count>12</as:count> | ||||
</as:adaptive-period> | </as:adaptive-period> | |||
</as:adaptive-subscriptions> | </as:adaptive-subscriptions> | |||
</top> | </top> | |||
</config> | </config> | |||
</edit-config> | </edit-config> | |||
</rpc> | </rpc> | |||
Appendix B. Usage Example of interaction with UDP based Transport for | ||||
Configured Subscription | ||||
<?xml version="1.0" encoding="UTF-8"?> | ||||
<instance-data-set xmlns= | ||||
"urn:ietf:params:xml:ns:yang:ietf-yang-instance-data"> | ||||
<name>acme-router-notification-capabilities</name> | ||||
<content-schema> | ||||
<module>ietf-system-capabilities@2020-03-23</module> | ||||
<module>ietf-notification-capabilities@2020-03-23</module> | ||||
<module>ietf-data-export-capabilities@2020-03-23</module> | ||||
</content-schema> | ||||
<!-- revision date, contact, etc. --> | ||||
<description>Defines the notification capabilities of an acme-router. | ||||
The router only has running, and operational datastores. | ||||
Every change can be reported on-change from running, but | ||||
only config=true nodes and some config=false data from operational. | ||||
Statistics are not reported based on timer based trigger and counter | ||||
threshold based trigger. | ||||
</description> | ||||
<content-data> | ||||
<system-capabilities | ||||
xmlns="urn:ietf:params:xml:ns:yang:ietf-system-capabilities" | ||||
xmlns:inc="urn:ietf:params:xml:ns:yang:ietf-notification-capabilities" | ||||
xmlns:ds="urn:ietf:params:xml:ns:yang:ietf-datastores"> | ||||
<data-export-capabilities> | ||||
<transport-protocol>udp</transport-protocol> | ||||
<encoding-format>binary</encoding-format> | ||||
</data-export-capabilities> | ||||
</system-capabilities> | ||||
</content-data> | ||||
</instance-data-set> | ||||
Appendix C. Changes between Revisions | ||||
v02 - v03 | ||||
o Change 'data-export-capabilities' into list type to support | ||||
multiple transport protocol, encoding on the server. | ||||
o Add Usage Example of interaction with UDP based Transport for | ||||
Configured Subscription. | ||||
o Add Thomas Graf as a contributor; | ||||
o Update motivation in the introduction to clarify why this work is | ||||
needed. | ||||
o Support udp notif and http notif as two optional transport in the | ||||
YANG data model. | ||||
Authors' Addresses | Authors' Addresses | |||
Qin Wu | Qin Wu | |||
Huawei | Huawei | |||
101 Software Avenue, Yuhua District | 101 Software Avenue, Yuhua District | |||
Nanjing, Jiangsu 210012 | Nanjing, Jiangsu 210012 | |||
China | China | |||
Email: bill.wu@huawei.com | Email: bill.wu@huawei.com | |||
Qiufang Ma | Qiufang Ma | |||
Huawei | Huawei | |||
101 Software Avenue, Yuhua District | 101 Software Avenue, Yuhua District | |||
Nanjing, Jiangsu 210012 | Nanjing, Jiangsu 210012 | |||
China | China | |||
Email: maqiufang1@huawei.com | Email: maqiufang1@huawei.com | |||
Liang Geng | ||||
China Mobile | ||||
32 Xuanwumen West St, Xicheng District | ||||
Beijing 10053 | ||||
Email: gengliang@chinamobile.com | ||||
Peng Liu | Peng Liu | |||
China Mobile | China Mobile | |||
32 Xuanwumen West St, Xicheng District | 32 Xuanwumen West St, Xicheng District | |||
Beijing 10053 | Beijing 10053 | |||
Email: liupengyjy@chinamobile.com | Email: liupengyjy@chinamobile.com | |||
End of changes. 57 change blocks. | ||||
97 lines changed or deleted | 183 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |