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 &gt; 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 &lt; 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/