Subscribing to YANG datastore push updates draft-netconf-yang-push-00 IETF #94 Yokohama A. Clemm <alex@cisco.com> A. Gonzalez Prieto <albertgo@cisco.com>

Slides:



Advertisements
Similar presentations
Service Description: WSDL COMP6017 Topics on Web Services Dr Nicholas Gibbins –
Advertisements

Simple tutorial Yang & Netconf.
XML Configuration Access Protocol (XCAP) Jonathan Rosenberg dynamicsoft.
XMLCONF IETF 57 – Vienna Rob Enns
NETCONF Server and RESTCONF Server Configuration Models draft-ietf-netconf-server-model-06 NETCONF WG IETF #92 Dallas, TX, USA.
Abierman-nanog-30may03 1 XML Router Configs BOF Operator Involvement Andy Bierman
Yang Shi, Chris Elliott, Yong Zhang IETF 73 rd 18 Nov 2008, Minneapolis CAPWAP WG MIB Drafts Report.
© 2014 Cisco - Cisco INTERNAL only – All Rights Reserved1 Requirements for Subscription to YANG Datastores draft-ietf-i2rs-pub-sub-requirements-01 NECONF.
NETCONF WG IETF 92 - Dallas TUESDAY, March 24, CDT Mehmet Ersue Mahesh Jethanandani 3/24/ IETF #92- NETCONF WG session.
YANG in a Nutshell The YANG Gang IETF 71. YANG has... A reasonable self-contained specification A focus on readers and reviewers Text-based , patch,
1 YANG PUB-SUB Proposed project to Beryllium release of ODL Aug 6 th 2015 Alexander Clemm Ambika Prasad Tripathy Einar Nilsen-Nygaard Eric Voit Suryamani.
Protocol for I2RS I2RS WG IETF #89 London, UK Dean Bogdanovic v0.1.
March 2006 CAPWAP Protocol Specification Update March 2006
Representing Netconf Data Models using Document Schema Definition Languages (DSDL) Rohan Mahy Sharon Chisholm Lada Lhotka IETF 72 - Dublin.
Abierman-netconf-mar07 1 NETCONF WG 68 th IETF Prague, CZ March 19, 2007.
IETF 54, Yokohama Kutscher/Ott/Bormann 1 SDPng Update Dirk Jörg Carsten draft-ietf-mmusic-sdpng-05.txt.
Hyperion Artifact Life Cycle Management Agenda  Overview  Demo  Tips & Tricks  Takeaways  Queries.
Subscribing to datastore push updates draft-netmod-clemm-datastore-push-00.txt Alexander Clemm, Alberto Gonzalez Prieto, Eric Voit.
Using XML Schema to define NETCONF Content Sharon Chisholm Alex Clemm TJ Tjong
Netconf Schema Query Mark Scott IETF 70 Vancouver December 2007
Module 5: Managing Content. Overview Publishing Content Executing Reports Creating Cached Instances Creating Snapshots and Report History Creating Subscriptions.
Draft-kwatsen-netconf-server Configuration Model for SSH and TLS Transports.
YANG Background and Discussion: Why we need a new language for NETCONF configuration modeling The YANG Gang IETF 70 Vancouver, Canada.
Notification + Yang-push Kickoff 26 - April
Notification + Yang-push Meeting #2 3 - May
Conditional Enablement draft-kwatsen-conditional-enablement-00.
I2rs Requirements for NETCONF IETF 93. Requirement Documents
Draft-ietf-netconf-server-model-04 NETCONF Server Configuration Model
Subscribing to Events and YANG datastores IETF #96 Berlin 21-July-2016 Balazs Lengyel Alberto Gonzalez Prieto Hector Trevino Ambika Prasad Tripathy Eric.
1 Needing an extensible Mount syntax across Schema, Alias, & Peers IETF 95 Eric Voit, Alex Clemm April 4 th 2016.
YANG Roque Gagliano.
NETCONF Server and RESTCONF Server Configuration Models draft-ietf-netconf-server-model-07 NETCONF WG IETF 93 Prague.
Cisco implementation of ACL yang model
Session-Independent Policies draft-ietf-sipping-session-indep-policy-02 Volker Hilt Jonathan Rosenberg Gonzalo.
Lesson # 9 HP UCMDB 8.0 Essentials
Evolution of the Subscription & Event Notification Drafts IETF #97 Seoul 17-Nov-2016 NETCONF Charter Item 6: “Enhance RFC 5277 with the ability to delete.
NETCONF WG IETF 93 - Prague, Czech Republic THURSDAY, July 23, 2015
draft-ietf-teas-yang-te-topo-06
draft-ietf-teas-yang-te-topo-01
NETCONF Configuration I/F Advertisement by WSDL and XSD
NETCONF Discussion Draft-ietf-i2rs-ephemeral-state-14.txt
Subscribing to YANG datastore push updates draft-ietf-netconf-yang-push-02 NETMOD WG IETF #95 Buenos Aires 4-April-2015 Alexander Clemm Alberto Gonzalez.
Evolution of the Subscription & Event Notification Drafts IETF #98 Chicago Eric Voit 28-Mar-2017 DRAFT Authors on at least 1 drafts Andy Bierman Alexander.
NETCONF Base Notifications for NMDA
Subscriptions for Event Notification + Yang-push
Comparison of NMDA datastores draft-ietf-netmod-nmda-diff-00
draft-levin-xcon-cccp-02.txt Orit Levin
UDP based Publication Channel for Streaming Telemetry
Factory default Setting draft-wu-netmod-factory-default-01
Henning Schulzrinne Dept. of Computer Science Columbia University
Binary encoding draft-MAHESH-NETCONF-binary-encoding
Stream Issues Alex, Ambika, Eric, Tim
YANG-Push and related drafts 1
NETMOD IETF 103 Bangkok Nov , 2018
With Thanks to... Authors on at least 1 WG draft Andy Bierman
YANG Mount draft-clemm-netmod-mount IETF 98 Chicago, 30 March 2017
Post WG LC NMDA datastore architecture draft
Distributed Data Collection
Jonathan Rosenberg dynamicsoft
Evolution of the Subscription & Event Notification Drafts IETF #98 Chicago Eric Voit 28-Mar-2017 DRAFT Authors on at least 1 drafts Andy Bierman Alexander.
draft-ietf-teas-yang-te-topo-08
Zero Touch Provisioning for NETCONF/RESTCONF Call Home draft-ietf-netconf-zerotouch-19 NETCONF WG IETF 100 (Singapore)
YANG Instance Data for Documenting Server Capabilities
Subscription to Multiple Stream Originators
János Farkas, Balázs Varga, Rodney Cummings, Jiang Yuanlong
Device Management Profile and Requirements
TAPI and RFC8345 Network Topology Analysis
Schema version selection Reshad Rahman (presenting), Rob Wilton
An HTTPS-based Transport for Subscribed Notifications
Comparison of NMDA datastores draft-ietf-netmod-nmda-diff-02
Presentation transcript:

Subscribing to YANG datastore push updates draft-netconf-yang-push-00 IETF #94 Yokohama A. Clemm <alex@cisco.com> A. Gonzalez Prieto <albertgo@cisco.com> E. Voit <evoit@cisco.com>

Refresher Subscription model that allows applications to receive datastore updates Define update messages that can be pushed via Netconf Purpose: Alternative to polling Make updates easy to consume Avoid inundating clients with unnecessary data they are not interested in Filtering On change Addresses requirements stated in ietf-i2rs-pub-sub-requirements Adopted as WG document after Prague

Updates from last draft version Support for creating subscriptions via configuration In addition to RPCs Clarify on-change subscription updates Support reusable filter definitions Specify RPCs using YANG (RFC 5277 predated YANG) Various editorial improvements More examples New overview section for the data model

1) Subscriptions created via configuration Allows subscriptions to be established by modifying a server's configuration A receiver needs to be specified The receiver and subscriber need not be the same entity Allows to persist subscriptions

1) Subscriptions created via configuration module: ietf-datastore-push +--rw subscription-config | +--rw datastore-push-subscription* [subscription-id] | +--rw subscription-id subscription-id | +--rw target-datastore? datastore | +--rw stream? system-stream | +--rw encoding? encoding | +--rw start-time? yang:date-and-time | +--rw stop-time? yang:date-and-time | +--rw (update-trigger)? | | +--:(periodic) | | | +--rw period? yang:timeticks | | +--:(on-change) | | +--rw no-synch-on-start? empty | | +--rw dampening-period yang:timeticks | | +--rw excluded-change* change-type | +--rw (filterspec)? | | +--:(inline) | | | +--rw (filter-type)? | | | +--:(subtree) | | | | +--rw subtree-filter? subtree-filter | | | +--:(xpath) | | | +--rw xpath-filter? yang:xpath1.0 | | +--:(by-reference) | | +--rw filter-ref? filter-ref | +--rw receiver-address | +--rw (push-base-transport)? | +--:(tcpudp) | +--rw tcpudp | +--rw address? inet:host | +--rw port? inet:port-number Same parameters as RPC-based subscription A receiver needs to be specified

1) Subscriptions created via configuration +--rw receiver-address +--rw (push-base-transport)? +--:(tcpudp) +--rw tcpudp +--rw address? inet:host +--rw port? inet:port-number

2) On-change subscription updates XML encoding rules correspond to input in edit-config operations [RFC6241] "operation" attributes in the data subtree: create: element has been added since the last update. delete: element has been deleted since the last update. merge: element has been changed since the last update. replace: element has been replaced since the last update. move: (To be added in the next version) insert: (To be added in the next version)

2) On-change subscription updates JSON encoding rules roughly analogous to YANG-patch operation No edit-ids needed

3) Filter re-use Users can configure filters independently from subscriptions Those filters can be referenced in a subscription Rationale: facilitate reuse of filter definitions important in case of complex filter conditions Custom data streams which had a similar objective have been removed

3) Filter re-use module: ietf-datastore-push +--rw filter* [filter-id] +--rw filter-id filter-id +--rw (filter-type)? +--:(subtree) | +--rw subtree-filter? subtree-filter +--:(xpath) +--rw xpath-filter? yang:xpath1.0

4) New subscription property: datastore When creating a subscription, subscriber can specify the target datastore Mandatory to support “running”, which is the default one Optional to support startup

5) Other Yang model changes Rpc’s formalized {create|modify|delete}-subscription Notifications Modified: push-update added leaf time-of-update added “choice encoding” w/ datastore contents before, just datastore-contents New: push-change-update, subscription-started

5) Other Yang model changes grouping subscription-info start-time modified definition It now matches the requirements document “Designates the time at which a subscription is supposed to start, or immediately, in case the start-time is in the past. For periodic subscription, the start time also serves as anchor time from which the time of the next update is computed. (...)"; Added choice filterspec: “inline” or “by-reference”

Next Steps Add operations (move, insert) for on-change for efficiency Extend config subscription so that it can support multiple receivers Review security input

Backup Slides

On-change JSON encoding <?xml version="1.0" encoding="UTF-8"?> <notification xmlns="urn:ietf:params:xml:ns:netconf:notification:1.0"> <subscription-id xmlns="urn:ietf:params:xml:ns:netconf: datastore-push:1.0"> my-on-change-sub </subscription-id> <eventTime>2015-10-13T12:13:02Z</eventTime> <datastore-changes-json xmlns="urn:ietf:params:xml:ns:netconf:datastore-push:1.0"> { "ietf-yang-patch:yang-patch": { "patch-id": [ null], "edit": [ { "edit-id": "edit1", "operation": "merge", "target": "/alpha/beta", "value": { "beta": 1500 } } ] } } </datastore-changes-json> </notification>

RPC create-subscription rpc create-subscription { description "This RPC allows a subscriber to create a subscription on its own behalf. If successful, the subscription remains in effect for the duration of the subscriber's association with the publisher, or until the subscription is terminated by virtue of a delete-subscription request."; input { uses subscription-info; } output { leaf subscription-id { type subscription-id; "Identifier used for this subscription."; } } }

RPC modify-subscription rpc modify-subscription { description "This RPC allows a subscriber to modify a subscription that was previously created using create-subscription. If successful, the subscription remains in effect for the duration of the subscriber's association with the publisher, or until the subscription is terminated by virtue of a delete-subscription request."; input { leaf subscription-id { type subscription-id; "Identifier to use for this subscription."; } uses subscription-info; } }

RPC delete-subscription rpc delete-subscription { description "This RPC allows a subscriber to delete a subscription that was previously created using create-subscription."; input { leaf subscription-id { type subscription-id; "Identifier of the subscription that is to be deleted. Only subscriptions that were created using create-subscription can be deleted via this RPC."; } } }

More Yang model changes New features: on-change, json Identities Added subscription-deleted (base subscription-errors) Added system-streams (and derived from it datastore-push, operational-push, config-push) Added datastore (and derived from it running, startup Typedefs: datastore-contents has been refined into 4 typedefs: datastore-{contents|change}-{xml|json} New: filter-id, datastore, system-stream, filter-ref New data nodes: container system-streams