draft-ietf-netconf-notification-capabilities-03.txt   draft-ietf-netconf-notification-capabilities-04.txt 
NETCONF B. Lengyel NETCONF B. Lengyel
Internet-Draft Ericsson Internet-Draft Ericsson
Intended status: Standards Track A. Clemm Intended status: Standards Track A. Clemm
Expires: February 14, 2020 Futurewei Expires: March 7, 2020 Futurewei
B. Claise B. Claise
Cisco Systems, Inc. Cisco Systems, Inc.
August 13, 2019 September 4, 2019
Yang-Push Notification Capabilities Yang-Push Notification Capabilities
draft-ietf-netconf-notification-capabilities-03 draft-ietf-netconf-notification-capabilities-04
Abstract Abstract
This document proposes a YANG module that allows a server to specify This document proposes a YANG module that allows a server to specify
server capabilities related to "Subscription to YANG Datastores" server capabilities related to "Subscription to YANG Datastores"
(Yang-Push). It proposes to use YANG Instance Data to document this (Yang-Push). It proposes to use YANG Instance Data to document this
information and make it already available at implementation time, but information and make it already available at implementation time, but
also allow it to be reported at runtime. also allow it to be reported at run-time.
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 February 14, 2020. This Internet-Draft will expire on March 7, 2020.
Copyright Notice Copyright Notice
Copyright (c) 2019 IETF Trust and the persons identified as the Copyright (c) 2019 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
skipping to change at page 2, line 25 skipping to change at page 2, line 25
4. Security Considerations . . . . . . . . . . . . . . . . . . . 12 4. Security Considerations . . . . . . . . . . . . . . . . . . . 12
5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12
5.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 12 5.1. The IETF XML Registry . . . . . . . . . . . . . . . . . . 12
5.2. The YANG Module Names Registry . . . . . . . . . . . . . 12 5.2. The YANG Module Names Registry . . . . . . . . . . . . . 12
6. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 12 6. Open Issues . . . . . . . . . . . . . . . . . . . . . . . . . 12
7. References . . . . . . . . . . . . . . . . . . . . . . . . . 13 7. References . . . . . . . . . . . . . . . . . . . . . . . . . 13
7.1. Normative References . . . . . . . . . . . . . . . . . . 13 7.1. Normative References . . . . . . . . . . . . . . . . . . 13
7.2. Informative References . . . . . . . . . . . . . . . . . 13 7.2. Informative References . . . . . . . . . . . . . . . . . 13
Appendix A. Instance data examples . . . . . . . . . . . . . . . 14 Appendix A. Instance data examples . . . . . . . . . . . . . . . 14
Appendix B. Changes between revisions . . . . . . . . . . . . . 17 Appendix B. Changes between revisions . . . . . . . . . . . . . 17
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 17 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 18
1. Terminology 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.
The terms Yang-Push, On-change subscription and Periodic subscription The terms Yang-Push, On-change subscription and Periodic subscription
skipping to change at page 2, line 47 skipping to change at page 2, line 47
On-change Notification Capability: The capability of the server to On-change Notification Capability: The capability of the server to
support On-change subscriptions. support On-change subscriptions.
The term Server is used as defined in [RFC8342] The term Server is used as defined in [RFC8342]
Implementation-time information: Information about the server's Implementation-time information: Information about the server's
behavior that is made available during the implementation of the behavior that is made available during the implementation of the
server, available from a source other then a running server. server, available from a source other then a running server.
Runtime-information: Information about the server's behavior that is Run-time information: Information about the server's behavior that is
available from the running server via management protocols such as available from the running server via management protocols such as
NETCONF [RFC6241] or RESTCONF [RFC8040]. NETCONF [RFC6241] or RESTCONF [RFC8040].
2. Introduction 2. Introduction
As defined in [I-D.ietf-netconf-yang-push] a server may allow clients As defined in [I-D.ietf-netconf-yang-push] a server may allow clients
to subscribe to updates from a datastore and subsequently push such to subscribe to updates from a datastore and subsequently push such
update notifications to the client. Notifications may be sent update notifications to the client. Notifications may be sent
periodically or on-change (more or less immediately after each periodically or on-change (more or less immediately after each
change). change).
skipping to change at page 5, line 41 skipping to change at page 5, line 41
ietf-notification-capabilities module: ietf-notification-capabilities module:
o For the implementation-time use-case: It SHALL be provided by the o For the implementation-time use-case: It SHALL be provided by the
implementer as YANG instance data file complying to implementer as YANG instance data file complying to
[I-D.ietf-netmod-yang-instance-file-format]. The file SHALL be [I-D.ietf-netmod-yang-instance-file-format]. The file SHALL be
available already in implementation time retrievable in a way that available already in implementation time retrievable in a way that
does not depend on a live network node. E.g. download from does not depend on a live network node. E.g. download from
product Website. product Website.
o For the run-time use-case: It SHALL be available via NETCONF o For the run-time use-case: It SHALL be available via NETCONF
[RFC6241] or RESTCONF [RFC8040] from the live server during [RFC6241] or RESTCONF [RFC8040] from the live server during run-
runtime. As these capabilities might change during run-time, time. Implementations which support changing these capabilities
implementations that support the YANG-Push on-change feature, at run-time SHOULD support on-change notifications about the
SHOULD support sending on-change notifications about this module. datastore-subscription-capabilities container.
3.1. Tree Diagram 3.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-notification-capabilities module: ietf-notification-capabilities
+--ro datastore-subscription-capabilities +--ro datastore-subscription-capabilities
+--ro (update-period)? +--ro (update-period)?
| +--:(minimum-update-period) | +--:(minimum-update-period)
skipping to change at page 8, line 45 skipping to change at page 8, line 45
type uint32; type uint32;
units "centiseconds"; units "centiseconds";
description description
"Minimum update period supported for a "Minimum update period supported for a
periodic subscription."; periodic subscription.";
} }
leaf-list supported-update-period { leaf-list supported-update-period {
type uint32; type uint32;
units "centiseconds"; units "centiseconds";
description description "Supported update period values for a
"Specific supported update period values periodic subscription (used if only these specific
for a periodic subscription."; values are supported).";
} }
} }
leaf max-objects-per-update { leaf max-objects-per-update {
type uint32 { type uint32 {
range "1..max"; range "1..max";
} }
description description
"Maximum number of objects that can be sent "Maximum number of objects that can be sent
in an update."; in an update.";
skipping to change at page 16, line 5 skipping to change at page 16, line 4
</content-data> </content-data>
</instance-data-set> </instance-data-set>
Figure 1: Notification Capabilities with default settings Figure 1: Notification Capabilities with default settings
The following is the instance-data describing the notification The following is the instance-data describing 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 not config=false data from operational. Interface statistics are not
reported on-change only 2 important counters. reported on-change only 2 important counters. Datastore subscription
capabilities are not reported on-change as they never change on the
acme-router during run-time.
<?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>
<module>ietf-notification-capabilities@2019-08-13.yang</module> <module>ietf-notification-capabilities@2019-08-13.yang</module>
<!-- 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
skipping to change at page 16, line 40 skipping to change at page 16, line 41
</datastore-capabilities> </datastore-capabilities>
<datastore-capabilities> <datastore-capabilities>
<datastore xmlns="urn:ietf:params:xml:ns:yang:ietf-datastores"> <datastore xmlns="urn:ietf:params:xml:ns:yang:ietf-datastores">
operational operational
</datastore> </datastore>
<on-change-supported-for-state> <on-change-supported-for-state>
true true
</on-change-supported-for-state> </on-change-supported-for-state>
<per-node-capabilities> <per-node-capabilities>
<node-selector> <node-selector>
/inc:datastore-subscription-capabilities</node-selector>
<on-change-supported>false</on-change-supported>
</per-node-capabilities>
<per-node-capabilities>
<node-selector>
/if:interfaces/if:interface/if:statistics</node-selector> /if:interfaces/if:interface/if:statistics</node-selector>
<on-change-supported>false</on-change-supported> <on-change-supported>false</on-change-supported>
</per-node-capabilities> </per-node-capabilities>
<per-node-capabilities> <per-node-capabilities>
<node-selector> <node-selector>
/if:interfaces/if:interface/if:statistics/if:in-octets /if:interfaces/if:interface/if:statistics/if:in-octets
</node-selector> </node-selector>
<minimum-dampening-period>10</minimum-dampening-period> <minimum-dampening-period>10</minimum-dampening-period>
<on-change-supported>true</on-change-supported> <on-change-supported>true</on-change-supported>
</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>
<on-change-supported>true</on-change-supported> <on-change-supported>true</on-change-supported>
<minimum-dampening-period>10</minimum-dampening-period> <minimum-dampening-period>10</minimum-dampening-period>
skipping to change at page 17, line 18 skipping to change at page 17, line 25
</per-node-capabilities> </per-node-capabilities>
</datastore-capabilities> </datastore-capabilities>
</datastore-subscription-capabilities> </datastore-subscription-capabilities>
</content-data> </content-data>
</instance-data-set> </instance-data-set>
Figure 2: Notification Capabilities with data node specific settings Figure 2: Notification Capabilities with data node specific settings
Appendix B. Changes between revisions Appendix B. Changes between revisions
v03 - v04
o Clarified recommended support for on-change notifications about
the datastore-subscription-capabilities.
v02 - v03 v02 - v03
o Allow throughput related capabilities to be defined on top, o Allow throughput related capabilities to be defined on top,
datastore or data node level. Described that specific capability datastore or data node level. Described that specific capability
values always override generic ones. values always override generic ones.
o Indicate that non-NMDA servers can also use this model. o Indicate that non-NMDA servers can also use this model.
o Updated according to draft-ietf-netmod-yang-instance-file- o Updated according to draft-ietf-netmod-yang-instance-file-
format-04 format-04
 End of changes. 13 change blocks. 
15 lines changed or deleted 28 lines changed or added

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