Created documentation off of Ambika's & the standard ODL template.
[docs.git] / manuals / user-guide / src / main / asciidoc / yang-push / odl-yang-push-user.adoc
1 == YANG-PUSH
2 This section describes how to use the YANG-PUSH feature in OpenDaylight
3 and contains contains configuration, administration, and management
4 sections for the feature.
5
6 === Overview
7 YANG PUBSUB project allows applications to place subscriptions upon targeted subtrees of YANG datastores residing on remote devices. Changes in YANG objects within the remote subtree can be pushed to an OpenDaylight MD-SAL and to the application as specified without a requiring the controller to make a continuous set of fetch requests.
8
9 ==== YANG-PUSH capabilities available
10
11 This module contains the base code which embodies the intent of YANG-PUSH requirements for subscription as defined in {i2rs-pub-sub-requirements} [https://datatracker.ietf.org/doc/draft-ietf-i2rs-pub-sub-requirements/].   The mechanism for delivering on these YANG-PUSH requirements over Netconf transport is defined in {netconf-yang-push} [netconf-yang-push: https://tools.ietf.org/html/draft-ietf-netconf-yang-push-00].  
12
13 Note that in the current release, not all capabilities of draft-ietf-netconf-yang-push are realized.   Currently only implemented is *create-subscription* RPC support from ietf-datastore-push@2015-10-15.yang; and this will be for periodic subscriptions only.  There of course is intent to provide much additional functionality in future OpenDaylight releases.
14
15 ==== Future YANG-PUSH capabilities
16
17 Over time, the intent is to flesh out more robust capabilities which will allow OpenDaylight applications to subscribe to YANG-PUSH compliant devices.  Capabilities for future releases will include:
18
19 Support for subscription change/delete:
20 *modify-subscription* rpc support for all mountpoint devices or particular mountpoint device
21 *delete-subscription* rpc support for all mountpoint devices or particular mountpoint device
22
23 Support for static subscriptions:
24 This will enable the receipt of subscription updates pushed from publishing devices where no signaling from the controller has been used to establish the subscriptions.
25
26 Support for additional transports:
27 NETCONF is not the only transport of interest to OpenDaylight or the subscribed devices.  Over time this code will support Restconf and HTTP/2 transport requirements defined in {netconf-restconf-yang-push} [https://tools.ietf.org/html/draft-voit-netconf-restconf-yang-push-01]
28
29
30 === YANG-PUSH Architecture
31 The code architecture of Yang push consists of two main elements
32
33 YANGPUSH Provider
34 YANGPUSH Listener
35
36 YANGPUSH Provider receives create-subscription requests from applications and then establishes/registers the corresponding listener which will receive information pushed by a publisher.  In addition, YANGPUSH Provider also invokes an augmented OpenDaylight create-subscription RPC which enables applications to register for notification as per rfc5277. This augmentation adds periodic time period (duration) and subscription-id values to the existing RPC parameters. The Java package supporting this capability is “org.opendaylight.yangpush.impl”. YangpushDomProvider is the class which supports this YANGPUSH Provider capability. 
37
38 The YANGPUSH Listener accepts update notifications from a device after they have been de-encapsulated from the NETCONF transport.  The YANGPUSH Listener then passes these updates to MD-SAL.  This function is implemented via the YangpushDOMNotificationListener class within the “org.opendaylight.yangpush.listner” Java package.  Applications should monitor MD-SAL for the availability of newly pushed subscription updates.
39
40 === YANG-PUSH Catalog
41 The NF Catalog contains metadata describing a NF.
42
43 ==== Configuring YANG-PUSH Catalog
44 TBD: Describe how to configure YANG-PUSH Catalog after installation.
45
46 ==== Administering YANG-PUSH Catalog
47 TBD: Include related command reference or operations
48 for using YANG-PUSH Catalog.
49
50 === YANG-PUSH Workload Manager
51 The Workload Manager defines RPCs to manage instances.
52
53 === Configuring YANG-PUSH Workload Manager
54 TBD: Describe how to configure YANG-PUSH Workload Manager after installation.
55
56 === Administering YANG-PUSH Workload Manager
57 TBD: Include related command reference or operations
58 for using YANG-PUSH Workload Manager.
59
60 === Tutorials
61 Below are tutorials for YANG-PUSH.
62
63 ==== Using YANG-PUSH Catalog
64 TBD: State the purpose of tutorial
65
66 ===== Overview
67 TBD: An overview of the YANG-PUSH Catalog tutorial
68
69 ===== Prerequisites
70 TBD: Provide any prerequisite information, assumed knowledge, or environment
71 required to execute the use case.
72
73 ===== Target Environment
74 There are no topology requirement for using YANG-PUSH.  A single node able interact as per https://tools.ietf.org/html/draft-ietf-netconf-yang-push-00 is sufficient to use this capability.
75
76 ===== Instructions
77 TBD: Step by step procedure for using YANG-PUSH Catalog.
78
79 ==== Using YANG-PUSH Workload Manager
80 TBD: State the purpose of tutorial
81
82 ===== Overview
83 TBD: An overview of the YANG-PUSH Workload Manager tutorial
84
85 ===== Prerequisites
86 TBD: Provide any prerequisite information, assumed knowledge, or environment
87 required to execute the use case.
88
89 ===== Target Environment
90 TBD: Include any topology requirement for the use case.
91
92 ===== Instructions
93 TBD: Step by step procedure for using YANG-PUSH Workload Manager.