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.

Slides:



Advertisements
Similar presentations
© 2009 Cisco Systems, Inc. All rights reserved. Cisco Public Presentation_ID 1 Diffserv Yang Model
Advertisements

Abierman-nanog-30may03 1 XML Router Configs BOF Operator Involvement Andy Bierman
© Hitachi, Ltd All rights reserved. NETCONF Configuration I/F Advertisement by WSDL and XSD Hideki Okita, Tomoyuki Iijima, Yoshifumi Atarashi, Ray.
© 2014 Cisco - Cisco INTERNAL only – All Rights Reserved1 Requirements for Subscription to YANG Datastores draft-ietf-i2rs-pub-sub-requirements-01 NECONF.
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.
IETF 69 SIPPING WG Meeting Mohammad Vakil Microsoft An Extension to Session Initiation Protocol (SIP) Events for Pausing and Resuming.
Abierman-netconf-mar07 1 NETCONF WG 68 th IETF Prague, CZ March 19, 2007.
Subscribing to datastore push updates draft-netmod-clemm-datastore-push-00.txt Alexander Clemm, Alberto Gonzalez Prieto, Eric Voit.
Netconf Schema Query Mark Scott IETF 70 Vancouver December 2007
Draft-kwatsen-netconf-server Configuration Model for SSH and TLS Transports.
Notification + Yang-push Kickoff 26 - April
Notification + Yang-push Meeting #2 3 - May
I2rs Requirements for NETCONF IETF 93. Requirement Documents
I2RS Building the NG routing interface Sue Hares, Eric Voit, andothesr I2RS built for High performance Not the Pizza box CLI.
1 Peer Mount Eric Voit Alexander Clemm 5-Nov-2015.
Netconf Notifications Sharon Chisholm Hector Trevino IETF 67 November 2006.
Subscriptions for Event Notification + Yang-push IETF NETCONF WG Contributors Call 26 - May
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 Modelling and NETCONF Protocol Discussion
YANG/NETCONF/RESTCONF
NETCONF Server and RESTCONF Server Configuration Models draft-ietf-netconf-server-model-07 NETCONF WG IETF 93 Prague.
Junos Automation Stack
YANG Data Model For RIB Extensions IETF 97, Seoul
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.
YANG Data Model for RIP draft-liu-rtgwg-yang-rip-01
draft-litkowski-isis-yang-isis-cfg IETF 90 - Toronto
draft-ietf-teas-yang-te-topo-06
Routing Area Yang Architecture Design Team Update
draft-ietf-teas-yang-te-topo-01
IETF 95 – Buenos Aires April 2016
pim wg multicast YANG team
YANG Data Models for TE and RSVP draft-ietf-teas-yang-te-03 draft-ietf-teas-yang-rsvp-03 Tarek Saad (Presenter)
Subscribing to YANG datastore push updates draft-netconf-yang-push-00 IETF #94 Yokohama A. Clemm A. Gonzalez Prieto
NETCONF Configuration I/F Advertisement by WSDL and XSD
NETCONF Discussion Draft-ietf-i2rs-ephemeral-state-14.txt
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
IETF #101 - NETCONF WG session
UDP based Publication Channel for Streaming Telemetry
Factory default Setting draft-wu-netmod-factory-default-01
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
NMDA Q & A draft-dsdt-nmda-guidelines &
YANG Mount draft-clemm-netmod-mount IETF 98 Chicago, 30 March 2017
IGMP & MLD Snooping YANG Model
draft-liu-netmod-yang-schedule-02
Distributed Data Collection
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.
YANG Data Models for TE and RSVP draft-ietf-teas-yang-te-06 draft-ietf-teas-yang-rsvp-07 draft-ietf-teas-yang-rsvp-te-00 draft-ietf-mpls-base-yang-04 code.
draft-ietf-teas-yang-te-topo-08
CCAMP IETF 102 Giuseppe Fioccola, Telecom Italia Kwang-Koog Lee, KT
Smart filters for Push Updates – Problem Statement draft-clemm-netconf-push-smart-filters-ps-00 Alexander Clemm, Eric Voit, Xufeng Liu, Igor Bryskin,
Subscription to Multiple Stream Originators
IETF Prague BFD Unsolicited
QoS Yang Model Aseem Choudhary, Norm Strahle, Ing-Whar Chen,
Device Management Profile and Requirements
RIFT YANG draft-zhang-rift-yang-01
YANG Data Models for TE and RSVP draft-ietf-teas-yang-te-21 draft-ietf-teas-yang-rsvp-11 draft-ietf-teas-yang-rsvp-te-07 Tarek Saad, Juniper Networks Rakesh.
Schema version selection Reshad Rahman (presenting), Rob Wilton
An HTTPS-based Transport for Subscribed Notifications
YANG Data Models for TE and RSVP draft-ietf-teas-yang-te-21 draft-ietf-teas-yang-rsvp-11 draft-ietf-teas-yang-rsvp-te-07 Tarek Saad, Juniper Networks Rakesh.
Comparison of NMDA datastores draft-ietf-netmod-nmda-diff-02
Presentation transcript:

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 Prieto Eric Voit Ambika Prasad Tripathy Einar Nilsen-Nygaard <alex|albertgo|evoit|ambripa|einarnn@cisco.com>

draft-ietf-netconf-yang-push Streaming of updates Customized to recipient On-change or Periodic Subscribing to updates Any YANG subtree on device Statically configured or dynamically signaled Datastore Publisher Subscription interface Streaming mechanism Any Model Vendor Model YANG

Differentiating NETCONF Notification & YANG Push complimentary What you need Consume a stream of Publisher generated messages at the cadence determined by the Publisher Consume a stream of Publisher generated YANG data updates at a cadence negotiated with the Subscriber What to Use NETCONF Event Notifications YANG Push Drafts / RFCs RFC 5277 draft-gonzalez-netconf-5277bis draft-ietf-i2rs-pub-sub-requirements draft-ietf-netconf-yang-push draft-voit-netconf-restconf-yang-push For discussion at NETCONF (Thursday) Focus today

Support requirements of draft-ietf-i2rs-pub-sub-requirements VRF support Parameter negotiation Dynamic Multiple receivers Static Start/stop time Event Notification Push synchronization Configuration Visibility Periodic Operations Burst dampening Trigger Subscriptions On-change Modify Stateful Filters Security Subtree Substring Per leaf/subtree Range Encoding Transport Netconf DDoS protection QoS Restconf Admission Control Prioritized Push HTTP/2 JSON XML

draft-ietf-netconf-yang-push Key items in –v02 subscription Data Model +--rw datastore-push-subscription* +--rw subscription-id +--rw stream? +--rw encoding? +--rw subscription-start-time? +--rw subscription-stop-time? +--rw (filterspec)? | +--rw (filter-type)? | +--:(subtree) | | +--rw subtree-filter | +--:(xpath) | +--rw xpath-filter? +--rw (update-trigger)? | +--:(periodic) | | +--rw period | +--:(on-change) | +--rw no-synch-on-start? | +--rw dampening-period | +--rw excluded change* +--rw dscp? +--rw subscription-priority? +--rw subscription-dependency? Config? Operational? Ephemeral? Multiple? Other? Encode in XML? in JSON? Timeframe of interest Filter stream so that just items desired are pushed Signaled (Dynamic) Subscriptions Extensible for multiple filter types The amount of time between periodic updates Send full initial state? Minimum interval between pushes Push object adds/deletes? Property changes? Network QoS Class Dequeuing precedence | +--rw receiver* [address] | +--rw address | +--rw port? +--rw (push-source)? +--:(address-originated) | +--rw source-vrf? : +--rw source-address + also for Configured (Static) Subscriptions One or more pre-configured recipients Should the Push egress from a specific place?

YANG Push draft Support, and Gaps IETF MUST OC-Telemetry. yang Dynamic subscriptions Periodic Dampened Eventing On-change Parameter negotiation Static subscriptions Netconf Restconf* Subtree filtering Security by subtree GBP gRPC Value and Range filtering JSON Start/stop time Multiple receivers DDoS vector protection DSCP Push synchronization HTTP/2* Prioritized subscriptions VRF support XML Open Question: How do we support market requested, non-IETF technologies? * via draft-voit-netconf-restconf-yang-push

YANG Push results at IETF95 Hackathon Objective Extend OpenDaylight’s YANG Push Client Coded / Demonstrated Create Subscription (via OpenDaylight) Delete Subscription (via NETCONF session) On-change subscription (via NETCONF session) Interested? Will Show again this Thursday night’s “Bits & Bytes” March 2016

Questions? Also will do a deeper dive in NETCONF on Thursday….

Thank you!

Model overview: streams + filters module: ietf-yang-push +--ro update-streams | +--ro update-stream* update-stream +--rw filters | +--rw filter* [filter-id] | +--rw filter-id filter-id | +--rw (filter-type)? | +--:(subtree) | | +--rw subtree-filter | +--:(xpath) | | +--rw xpath-filter? yang:xpath1.0 | +--:(rfc5277) | +--rw filter

Model overview: Subscription configuration +--rw subscription-config {configured-subscriptions}? | +--rw yang-push-subscription* [subscription-id] | +--rw subscription-id subscription-id | +--rw stream? update-stream | +--rw encoding? encoding | +--rw subscription-start-time? yang:date-and-time | +--rw subscription-stop-time? yang:date-and-time | +--rw (filterspec)? | | +--:(inline) | | | +--rw (filter-type)? | | | +--:(subtree) | | | | +--rw subtree-filter | | | +--:(xpath) | | | | +--rw xpath-filter? yang:xpath1.0 | | | +--:(rfc5277) | | | +--rw filter | | +--:(by-reference) | | +--rw filter-ref? filter-ref Optional feature, only applies to static subscriptions

Model overview: Subscription configuration (contd) +--rw subscription-config {configured-subscriptions}? | +--rw yang-push-subscription* [subscription-id] … | +--rw (update-trigger)? | | +--:(periodic) | | | +--rw period yang:timeticks | | +--:(on-change) {on-change}? | | +--rw no-synch-on-start? empty | | +--rw dampening-period yang:timeticks | | +--rw excluded-change* change-type | +--rw receiver* [address] | | +--rw address inet:host | | +--rw port? inet:port-number | | +--rw protocol? transport-protocol | +--rw (push-source)? | | +--:(interface-originated) | | | +--rw source-interface? if:interface-ref | | +--:(address-originated) | | +--rw source-vrf? uint32 | | +--rw source-address inet:ip-address-no-zone | +--rw dscp? inet:dscp {configured-subscriptions}? | +--rw subscription-priority? uint8 | +--rw subscription-dependency? String Note: items in blue are new or modified since -00

Model overview: Subscription monitoring +--ro subscriptions +--ro yang-push-subscription* [subscription-id] +--ro subscription-id subscription-id +--ro configured-subscription?empty {configured-subscriptions}? +--ro subscription-status? identityref +--ro stream? update-stream +--ro encoding? encoding +--ro subscription-start-time? yang:date-and-time +--ro subscription-stop-time? yang:date-and-time +--ro (filterspec)? | +--:(inline) … | +--:(by-reference) | +--ro filter-ref? filter-ref +--ro (update-trigger)? | +--:(periodic) | | +--ro period yang:timeticks | +--:(on-change) {on-change}? | +--ro no-synch-on-start? empty | +--ro dampening-period yang:timeticks | +--ro excluded-change* change-type +--ro receiver* [address] | +--ro address inet:host | +--ro port? inet:port-number | +--ro protocol? transport-protocol +--ro (push-source)? | +--:(interface-originated) | | +--ro source-interface? if:interface-ref | +--:(address-originated) | +--ro source-vrf? uint32 | +--ro source-address inet:ip-address-no-zone +--ro dscp? inet:dscp {configured-subscriptions}? +--ro subscription-priority? uint8 +--ro subscription-dependency? string Applies to both dynamic and static subscriptions Mirrors subscription parameters from RPC or config Note: items in blue are new or modified since -00

Model overview: RPCs (input) +---x establish-subscription | +---w input | | +---w stream? update-stream | | +---w encoding? encoding | | +---w subscription-start-time? yang:date-and-time | | +---w subscription-stop-time? yang:date-and-time | | +---w (filterspec)? | | | +--:(inline) | | | | +---w (filter-type)? | | | | +--:(subtree) | | | | | +---w subtree-filter | | | | +--:(xpath) | | | | | +---w xpath-filter? yang:xpath1.0 | | | | +--:(rfc5277) | | | | +---w filter | | | +--:(by-reference) | | | +---w filter-ref? filter-ref | | +---w (update-trigger)? | | | +--:(periodic) | | | | +---w period yang:timeticks | | | +--:(on-change) {on-change}? | | | +---w no-synch-on-start? empty | | | +---w dampening-period yang:timeticks | | | +---w excluded-change* change-type | | +---w dscp? inet:dscp {configured-subscriptions}? | | +---w subscription-priority? uint8 | | +---w subscription-dependency? string Input parameters mirror those of static subscription, except for receiver specification Same underlying groupings Note: items in blue are new or modified since -00

Model overview: RPCs (output) +---x establish-subscription | +--ro output | +--ro subscription-result subscription-result | +--ro (result)? | +--:(success) | | +--ro subscription-id subscription-id | +--:(no-success) | +--ro stream? update-stream | +--ro encoding? encoding | +--ro subscription-start-time? yang:date-and-time | +--ro subscription-stop-time? yang:date-and-time | +--ro (filterspec)? | | +--:(inline) | | | +--ro (filter-type)? | | | +--:(subtree) | | | | +--ro subtree-filter | | | +--:(xpath) | | | | +--ro xpath-filter? yang:xpath1.0 | | | +--:(rfc5277) | | | +--ro filter | | +--:(by-reference) | | +--ro filter-ref? filter-ref | +--ro (update-trigger)? | | +--:(periodic) | | | +--ro period yang:timeticks | | +--:(on-change) {on-change}? | | +--ro no-synch-on-start? empty | | +--ro dampening-period yang:timeticks | | +--ro excluded-change* change-type | +--ro dscp? inet:dscp {configured-subscriptions}? | +--ro subscription-priority? uint8 | +--ro subscription-dependency? string “No success” returns parameter settings that should be changed to lead to future success (subscription negotiation) Note: items in blue are new or modified since -00

Model overview (contd.) Not depicted: RPCs for modify, delete subscription Notifications Push updates Push-update, push-change-update Control notifications Subscription started, stopped, suspended, resumed