Presentation is loading. Please wait.

Presentation is loading. Please wait.

Subscribing to Events and YANG datastores IETF #96 Berlin 21-July-2016 Balazs Lengyel Alberto Gonzalez Prieto Hector Trevino Ambika Prasad Tripathy Eric.

Similar presentations


Presentation on theme: "Subscribing to Events and YANG datastores IETF #96 Berlin 21-July-2016 Balazs Lengyel Alberto Gonzalez Prieto Hector Trevino Ambika Prasad Tripathy Eric."— Presentation transcript:

1 Subscribing to Events and YANG datastores IETF #96 Berlin 21-July-2016 Balazs Lengyel Alberto Gonzalez Prieto Hector Trevino Ambika Prasad Tripathy Eric Voit Kent Watsen Guangying Zheng (Walker) Andy Bierman Sharon Chisholm Alexander Clemm Einar Nilsen-Nygaard Yan Gang Peipei Guo Susan Hares Tim Jenkins

2 Subscribing Device Device Continuous Polling Device Must have Alternative to Polling Anything different? Just the new stuff push Up-to-date objects delivered Reaction speed CPU, Bandwidth reduced New use cases based on distributed synched state Well known cost/scale limits with continuous polling Propagation latency CPU, Bandwidth Multiple Polling devices No. NO! Yeah. fetch Anything different? no

3 Subscriptions Device Subscriber Subscription Request Publisher Datastore ResponsePushed Updates Events Receiver

4 Generalized Publisher Capabilities Streaming of updates Customized to recipient On-change or Periodic Publisher Streaming mechanism Subscription interface Subscribing to updates Event Stream or Subtree(s) of YANG Datastore Statically configured or dynamically signaled Any Model Vendor Model Events Datastore

5 Many Consumption Models Collector Subscriber Controller Subscriber Network Element Application Subscriber Network Element Network Element Subscriber Orchestration Subscriber NMS Subscriber Publisher Config Capacity Config Counters Status Routes Config Routes Status Config Counters Flows Config Routes Counters Status Application Datastore Events Publisher Subscriber

6 Controller/Collector Datastore Applicability beyond the Network Element YANG Models describing network state can be published as well. Which in turn can be integrated as part of fast reacting multi-layered abstraction NMS Application Network Element Network Element Subscriber Publisher Subscriber Publisher Events

7 Differentiating Event Notifications & YANG Datastore Push 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 5277bis Event NotificationsYANG Push Requirements RFC 5277 + NETCONF WG DiscussionsRFC 7923 complimentary Events Datastore

8 Tracking the Subscription work Github repository for 4 drafts under discussion https://github.com/netconf-wg https://github.com/netconf-wg Subscription Mechanism: YANG Datastore Push draft-ietf-netconf-yang-push yang-push Subscriptions for Event Notifications draft-gonzalez-netconf-5277bis rfc5277bis Choice of Transports: NETCONF Transport for Event Notifications draft-gonzalez-netconf-event-notifications notif-netconf RESTCONF & HTTP Transport for Event Notifications draft-voit-netconf-restconf-notif notif-restconf Future Transport Notification drafts Current draftGit name

9 Functional Partitioning Event NotificationsYANG Datastore Push 5277 ModeEnhanced Types of SubscriptionDynamicDynamic and Configured Subscriptions per Session onemany NegotiationNoYes RPCscreateestablish, modify, delete Control Plane NotificationsNone started, suspended, resumed, terminated, modified Data Plane Notificationsnotification+subscription-id push-update, push-change-update NETCONF Yes RESTConf, HTTP, HTTP2No Yes Subscription Transport YANG Datastore Push Subscriptions for Event Notifications NETCONF Transport for Event Notifications RESTCONF Transport for Event Notifications Legend Compatibility with RFC-5277

10 Subscriptions for Event Notifications (Base Subscription Draft) Support for many subscriptions / transport Dynamic & Configured state machines Multiple configured receivers New stream types (syslog?) Authorization model per stream RFC5277 & XPATH filters RPCs: Establish, modify, delete Error responses (under error-info?) Notifications: started, suspended, resumed, terminated, modified YANG Datastore Push (includes functions above Base Subscription Draft): Datastore on-change and periodic triggers YANG filters per RFC6241 Authorization model per object Negotiation NETCONF Transport for Event Notifications Transport mapping 5277 mode RESTCONF & HTTP Transport for Event Notifications Transport mappings Subscriber/receiver different Heartbeats and clean-up Subscription to HTTP2 stream Out of Scope/future: dynamic stream creation, new undefined filter types Current Functional Partitioning Context Stream discovery Stream configuration Data Plane Notification 5277 mode & YANG model Replay (by Stream type) Prioritization Monitoring Push-update, Push- change-update New stream types & stuff

11 Requirements of RFC 7923 Periodic On-change Dynamic Configured Multiple receivers VRF support Subtree Netconf Restconf HTTP/2 Security Start/stop time Push synchronization Prioritized Push Parameter negotiation DDoS protection Trigger Burst dampening Configuration Transport Substring Range Filters Admission Control QoS Stateful Per leaf/subtree JSON Encoding XML Operations Modify Visibility Subscriptions Event Notification Only for YANG Datastore Push

12 Context with OC-Telemetry.yang Periodic On-change Dampened Eventing Dynamic subscriptions Configured subscriptions GBP gRPC Multiple receivers VRF support Subtree filtering Netconf Restconf HTTP/2 Value and Range filtering Start/stop time Push synchronization Prioritized subscriptions Parameter negotiation DSCP DDoS vector protection Security by subtree XML JSON Recurring requirement: specification of market requested, non-IETF technologies RFC-5277 Compatibility Only for YANG Datastore Push

13 MUST UPDATE 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? Filter stream so that just items desired are pushed The amount of time between periodic updates Minimum interval between pushes Timeframe of interest Send full initial state? Push object adds/deletes? Property changes? +--rw receiver* [address] | +--rw address | +--rw port? +--rw (push-source)? +--:(address-originated) | +--rw source-vrf? : +--rw source-address One or more pre-configured recipients Should the Push egress from a specific place? + also for Configured (Static) Subscriptions Signaled (Dynamic) Subscriptions Network QoS Class Dequeuing precedence | Extensible for multiple filter types

14 Transport for Event Notifications Transport bindings defined Subscriber XML YANG Netconf Client Publisher XML YANG Netconf Server Requests Subscription Subscriber Restconf Client JSON YANG Publisher Restconf Server JSON YANG Requests Subscription Configured HTTP Receiver JSON YANG HTTP2 Server Publisher JSON YANG HTTP2 Client Stream Subscription NETCONFRESTCONFLocally Configured

15 RESTCONF & HTTP Transport for Event Notifications Appendix Subscriber Restconf Client JSON YANG Publisher Restconf Server JSON YANG Requests Subscription Separate Subscriber & Receiver Receiver HTTP Server JSON YANG Subscription HTTP Client

16 YANG Push results at IETF95 Hackathon March 2016 Objective Extend OpenDaylight’s YANG Push Client Coded / Demonstrated Create Subscription (via OpenDaylight) Delete Subscription (via NETCONF session) On-change subscription (via NETCONF session)

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

18 Subtree and XPATH Filtering Can enable a reduction in sent objects by order(s) of magnitude Subtree and XPATH cannot be combined Interfaces-state interface [name] oper-status name phys-address speed statistics in-octets discontinuity-time out-octets in-discards … XPATH Filtering Subscribe to this target node Use when you want to explicitly exclude (or include) all of an object type: Use when you want a subset of instances from a list (e.g.: [E0, E1]) Subtree Filtering

19 Dampening Period & Suppressed Periodic Behavior Events Subscription to interface state Subscription Interfaces-state interface [name] oper-status E0E1 E0 E1 E0 E1 E0 10200405030 E0 E1 E0 E1 E0 1121233343 100 YANG Push Dampening period =10 On-change OC-Telemetry.yang Period =10 Suppress Redundant = Yes Interface UP Interface DOWN Time Update Stream Faster reaction Shows flaps underway Update Stream State at a certain time

20 Dampening Period & Suppressed Periodic Behavior Subscription to Access Control List Subscription ACL* ACL entries ACE YANG Push Dampening period = 60 On-change OC-Telemetry.yang Period = 60 Suppress Redundant = Yes Time matches action 50 access-list permit ip any any 100 access-list permit host 192.168.1.1 200 access-list deny any any 601200 125 8525 create 200 Update Stream Exposes existence of transient config create 100 delete 50 create 100 200 Security Vulnerability commit 100 200 commit 50 100 200 commit 100 200 commit 200

21 Thank you! 21


Download ppt "Subscribing to Events and YANG datastores IETF #96 Berlin 21-July-2016 Balazs Lengyel Alberto Gonzalez Prieto Hector Trevino Ambika Prasad Tripathy Eric."

Similar presentations


Ads by Google