Subscription and Notifications Overview
draft-voit-netconf-subscription-and-notif-overview-00
Provides an introductory context for NETCONF WG drafts on subscriptions and notifications. Through this document, a reader can understand the scope of each draft, as well as the relationships between each draft.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 23, 2018.
Copyright (c) 2017 IETF Trust and the persons identified as the document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
1. Introduction
This document provides an overview of a set of documents that define mechanisms that allow client applications to subscribe to and receive notifications and datastore updates. Specifically, this includes the following documents:
- draft-ietf-netconf-subscribed-notifications
- draft-ietf-netconf-yang-push
- draft-ietf-netconf-netconf-event-notifications
- draft-ietf-netconf-restconf-notif
- draft-ietf-netconf-notification-messages
1.1. Phasing of drafts
This set of drivers has two themes:
- an evolved subscription configuration data model and state transition messages, which, when paired with the existing [RFC5277] encoded one-way operation, provides a solution for yang push.
- a new one-way notification operation that can provide robustness, flexibility, and extensibility.
For theme 1, drafts [subscribed-notifications], [yang-push], [netconf-event-notifications], and [restconf-notif] provide solutions for an evolved subscription data model, pushing of YANG datastore changes as they happen, and periodic reporting of YANG datastore state. Also enabled is the use of the evolved subscription model and subscription state transition messages on publisher based event streams.
For theme 2, solutions are in the early stages for:
- automatic determination of which common headers to use, and selection of if/what transport bundling to use without requiring any change to YANG's 'notification' statement
- continuing, transparent support for RFC5277-encoded notifications from legacy clients
- general strategy to introduce new behavior where a server advertises support for new headers and encodings, and client selects them when available
These items are listed so they are explicitly shown not be covered by Theme 1.
1.2. Terminology
The terms publisher, receiver, and subscriber are defined in [subscribed-notifications].
2. Scope of Drafts
This section describes the intent and contents of each draft.
2.1. draft-ietf-netconf-subscribed-notifications
This document defines the YANG module, RPCs, and Notifications for the customized establishment of subscriptions upon a publisher's event streams. Also defined are delivery mechanisms for instances of the resulting events. Effectively this allows a subscriber to request and receive a continuous, custom influx of publisher-generated information. Included are:
- Dynamic and configured subscriptions
- Multiple subscriptions / transport
- Multiple configured receivers
- Establish, modify, delete, kill RPC
- State change notifications
- Suspend/resume
- Filtering full notifications
- Stream discovery
- Replay (and start time negotiation)
- Prioritization
- Monitoring / reporting
- QoS
- Error responses
2.2. draft-ietf-netconf-yang-push
This document extends the YANG module, RPCs, and Notifications from [subscribed-notifications] to enable the customized establishment of subscriptions to updates from YANG datastores. Using the definitions of this document, a subscriber application may request a continuous, customized stream of updates from a YANG datastore. Included are:
- Datastore on-change and periodic triggers
- Selecting objects within a datastore to subscribe to
- Authorization model per object
- RPC for datastore resynchronization
- Sending of full YANG trees or yang-patch
- Tagging of partial updates
- Tagging of on-change object support
- Negotiation of filters and period lengths
- Datastore-specific error responses and datastore-subscription specific monitoring
2.3. draft-ietf-netconf-netconf-event-notifications
This document provides a NETCONF binding for [subscribed-notifications]. Included are:
- Transport mappings for subscription RPCs and state change notifications
- Transport mapping for RFC-5277 event transport
2.4. draft-ietf-netconf-restconf-notif
This document provides RESTCONF, HTTP2, and HTTP1.1 bindings for the subscribed-notifications. Included are:
- Transport mapping for subscription protocol messages
- Transport mappings for RFC-5277 one-way operation
- Heartbeats and clean-up
2.5. draft-ietf-netconf-notification-messages
This document defines a new notification message format, using yang-data. Included are:
- a new notification mechanism to replace the one way operation of RFC-5277
- a set of common, transport agnostic message header objects to support functionality such as event severity, message signing, message loss discovery, message de-duplication, originating process identification.
- how to bundle multiple event records into a single notification message.
- how to ensure these new capabilities are only used with capable receivers.
This mechanism could have future applicability for updates to [RFC7950] and [RFC8040].
3. Relationships between Drafts
This section describes the relationships between subscription drafts.
RFC-5277 yang-push
| |
(1)| |(2)
v v
subscribed-notifications
^ ^
(3)| |(4)
| |
restconf-notif netconf-event-notifications
| |
(5)| |(6)
v v
notification-messages
Figure 1: Relationships between drafts
A few notes on the figure above. The initial of text leading text of each name has been removed to make the figure more readable. Numbered arrows indicate a relationship of one draft with another. The nature of each arrow is described below.
- Relationship (1)
- Until [notification-messages] becomes available, draft [subscribed-notifications] needs RFC-5277's mechanism for encoding one way notifications.
- Relationship (2)
- The draft [subscribed-notifications] provides the technical foundation upon which YANG datastore specific push mechanisms are layered as specified in [yang-push]. Key here are:
- replacement of event streams with on-change or periodic triggers upon a YANG Datastore.
- replacement of event filters with datastore selectors
- Relationship (3)
- The [restconf-notif] draft supports [subscribed-notifications] by defining transport specific guidance where some form of HTTP is used underneath. Key here are:
- bindings for RPC communications over RESTCONF
- bindings for one-way notifications transported over HTTP2 and HTTP1.1
- end-to-end deployment guidance for Call Home and TLS Heartbeat
- Relationship (4)
- The [netconf-event-notifications] draft supports [subscribed-notifications] by defining NETCONF transport specifics. Key are:
- bindings for RPC communications over NETCONF
- bindings for one-way notifications transported over NETCONF
- Relationship (5)
- The [netconf-event-notifications] draft will not initially have available to it the replacement of RFC-5277 one way operation. When [notification-messages] becomes available, it will be possible to replace the RFC-5277 one-way operation with a solution which includes common headers and the ability to bundle many notifications into a single transportable message.
- Relationship (6)
- The [restconf-notif] draft will not initially have available to it the replacement of RFC-5277 one way operation. When [notification-messages] becomes available, it will be possible to replace the RFC-5277 one-way operation with a solution which includes common headers and the ability to bundle many notifications into a single transportable message.
4. Security Considerations
Not applicable.
5. Acknowledgments
For his valuable comments framing the value and purposed of this document: Kent Watsen.
6. Informative References
[netconf-event-notifications] |
Gonzalez Prieto, A., Clemm, A., Voit, E., Nilsen-Nygaard, E. and A. Tripathy, "NETCONF Support for Event Notifications", July 2017. |
[notification-messages] |
Voit, E., Bierman, A., Clemm, A. and T. Jenkins, "YANG Notification Headers and Bundles", July 2017. |
[restconf-notif] |
Voit, E., Gonzalez Prieto, A., Tripathy, A., Nilsen-Nygaard, E., Clemm, A. and A. Bierman, "RESTCONF and HTTP Transport for Event Notifications", August 2017. |
[RFC5277] |
Chisholm, S. and H. Trevino, "NETCONF Event Notifications", RFC 5277, DOI 10.17487/RFC5277, July 2008. |
[RFC7950] |
Bjorklund, M., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10.17487/RFC7950, August 2016. |
[RFC8040] |
Bierman, A., Bjorklund, M. and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10.17487/RFC8040, January 2017. |
[subscribed-notifications] |
Voit, E., Clemm, A., Gonzalez Prieto, A., Prasad Tripathy, A. and E. Nilsen-Nygaard, "Custom Subscription to Event Notifications", September 2017. |
[yang-push] |
Clemm, A., Voit, E., Gonzalez Prieto, A., Prasad Tripathy, A., Nilsen-Nygaard, E., Bierman, A. and B. Lengyel, "Subscribing to YANG datastore push updates", September 2017. |