subscribing to yang datastore push updates
play

Subscribing to YANG datastore push updates - PowerPoint PPT Presentation

Subscribing to YANG datastore push updates dra6-ie8-netconf-yang-push-02 NETCONF WG IETF #95 Buenos Aires 7-April-2015 Alexander Clemm Alberto


  1. Subscribing ¡to ¡YANG ¡datastore ¡push ¡updates ¡ dra6-­‑ie8-­‑netconf-­‑yang-­‑push-­‑02 ¡ NETCONF ¡WG ¡ IETF ¡#95 ¡Buenos ¡Aires ¡ 7-­‑April-­‑2015 ¡ Alexander ¡Clemm ¡ Alberto ¡Gonzalez ¡Prieto ¡ Eric ¡Voit ¡ Ambika ¡Prasad ¡Tripathy ¡ ¡ Einar ¡Nilsen-­‑Nygaard ¡ ¡ ¡ <alex|albertgo|evoit|ambripa|einarnn@cisco.com> ¡

  2. Updates ¡since ¡IETF ¡#94 ¡ • Two ¡revision ¡updates ¡(00 à 01 à 02) ¡ • Establish-­‑subscripRon ¡replaces ¡create-­‑subscripRon ¡ – Use ¡for ¡negoRated ¡subscripRon ¡vs ¡unnegoRated ¡(RFC ¡5277) ¡ • Updated ¡RPC ¡definiRons ¡for ¡establish, ¡modify, ¡delete ¡subscripRon ¡ ¡ – e.g. ¡error ¡return ¡codes ¡ ¡ ¡ • Added ¡push ¡source ¡configuraRon ¡for ¡staRc ¡subscripRons ¡(e.g., ¡VRF) ¡ • Incorporated ¡content ¡from ¡draY-­‑voit-­‑netconf-­‑restconf-­‑yang-­‑push ¡ – SubscripRon ¡prioriRzaRon, ¡state ¡machine, ¡YANG ¡ – NOT ¡transport ¡(RESTCONF, ¡HTTP, ¡HTTP/2) ¡ • Adopted ¡capabiliRes ¡from ¡OC-­‑Telemetry.yang ¡ – MulRple ¡staRc ¡receivers, ¡DSCP ¡ • Made ¡associated ¡YANG ¡updates ¡ ¡ 2 ¡

  3. Vision ¡ • Common ¡subscripRon ¡control ¡mechanisms ¡ ¡ – YANG-­‑Push ¡for ¡YANG ¡Datastore ¡updates ¡ ¡ – Event ¡NoRficaRons ¡for ¡General ¡NoRficaRons ¡ • Robust, ¡Flexible, ¡Extensible ¡ Negotiation VRF Multiple receivers Dynamic Static Start/stop time Synchronization Modify Periodic Configuration Trigger On-change Dampening Operations – Dynamic ¡& ¡staRc ¡subscripRons ¡ Visibility Notification Subscriptions – On-­‑change ¡& ¡periodic ¡triggers ¡ Subtree Substring Security – Transport ¡& ¡encoding ¡opRons ¡ Per leaf/subtree Filters – Add, ¡modify, ¡delete ¡ ¡ Range DDoS protection Transport QoS Netconf Encoding – Augmentable ¡filter ¡and ¡stream ¡types ¡ Restconf Admission Control Priority XML – Evolved ¡NoRficaRon ¡framework ¡RFC-­‑5277 ¡ JSON HTTP/2 • Incrementally ¡addressable ¡components ¡/ ¡draYs ¡ 3 ¡

  4. NETCONF ¡Event ¡NoRficaRon ¡& ¡YANG ¡ Push ¡DraYs ¡-­‑ ¡Key ¡Elements ¡ draft-ietf-netconf- yang-push Event ¡NoRficaRons ¡ YANG ¡Push ¡ 1.0 1.1 Types ¡of ¡SubscripRon Dynamic Dynamic ¡and ¡StaRc SubscripRon ¡ SubscripRons ¡per ¡Session ¡ one many NegoRaRon ¡ No ¡ Yes ¡ RPCs create establish, ¡modify, ¡delete started, ¡suspended, ¡resumed, ¡ Control ¡Plane ¡NoRficaRons ¡ None ¡ terminated, ¡modified push-­‑update, ¡ ¡ Data ¡Plane ¡NoRficaRons ¡ noRficaRon ¡ +subscripRon-­‑id ¡ push-­‑change-­‑update Transport ¡ NETCONF ¡ Yes RESTConf, ¡HTTP, ¡HTTP2 ¡ No ¡ Yes

  5. IETF95 ¡Hackathon ¡– ¡YANG ¡Push ¡ • YANG-­‑PUSH ¡Client ¡from ¡ YANG-­‑ REST ¡ OpenDaylight ¡Beryllium ¡ PUSH ¡ APIs ¡ • XR ¡Router ¡Demo ¡Code ¡ Subscriber ¡ Terminal ¡ • Extended ¡implementaRon: ¡ Service ¡AbstracRon ¡ ¡ Layer ¡(SAL) ¡ Subscriber ¡ draY-­‑iei-­‑netconf-­‑yang-­‑push ¡ ¡ NETCONF ¡ NETCONF ¡ – Create ¡SubscripRon ¡ – Delete ¡SubscripRon ¡ – On-­‑Change ¡ NETCONF ¡ – Periodic ¡ Publisher ¡ • Hands-­‑on ¡Demo ¡at ¡tonight’s ¡ Interface ¡ ACLs ¡ Routes ¡ State ¡ Bits-­‑N-­‑Bytes ¡ XR ¡ ¡ 5

  6. 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 ¡ ¡ 6 ¡

  7. Model ¡overview: ¡ ¡ SubscripRon ¡configuraRon ¡ +--rw subscription-config {configured-subscriptions} ? | +--rw yang-push-subscription* [subscription-id] | +--rw subscription-id subscription-id OpRonal ¡feature, ¡ ¡ | +--rw stream? update-stream only ¡applies ¡to ¡staRc ¡ | +--rw encoding? encoding subscripRons ¡ | +--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 7 ¡

  8. Model ¡overview: ¡ ¡ SubscripRon ¡configuraRon ¡(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 8 ¡ Note: ¡items ¡in ¡blue ¡are ¡new ¡or ¡modified ¡since ¡-­‑00 ¡

  9. Model ¡overview: ¡ ¡ SubscripRon ¡monitoring ¡ +--ro subscriptions +--ro yang-push-subscription* [subscription-id] +--ro subscription-id subscription-id • Applies ¡to ¡both ¡ +--ro configured-subscription?empty {configured-subscriptions}? dynamic ¡and ¡staRc ¡ +--ro subscription-status? identityref +--ro stream? update-stream subscripRons ¡ +--ro encoding? encoding • Mirrors ¡subscripRon ¡ +--ro subscription-start-time? yang:date-and-time +--ro subscription-stop-time? yang:date-and-time parameters ¡from ¡RPC ¡ +--ro (filterspec)? or ¡config ¡ | +--:(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}? 9 ¡ +--ro subscription-priority? uint8 Note: ¡items ¡in ¡blue ¡are ¡new ¡or ¡modified ¡since ¡-­‑00 ¡ +--ro subscription-dependency? string

  10. Model ¡overview: ¡RPCs ¡(input) ¡ +---x establish-subscription | +---w input | | +---w stream? update-stream • Input ¡parameters ¡mirror ¡ | | +---w encoding? encoding those ¡of ¡staRc ¡subscripRon, ¡ | | +---w subscription-start-time? yang:date-and-time | | +---w subscription-stop-time? yang:date-and-time except ¡for ¡receiver ¡ | | +---w (filterspec)? specificaRon ¡ | | | +--:(inline) | | | | +---w (filter-type)? • Same ¡underlying ¡groupings ¡ | | | | +--:(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 ¡ ¡ 10 ¡ Note: ¡items ¡in ¡blue ¡are ¡new ¡or ¡modified ¡since ¡-­‑00 ¡

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend