Updated git submodules
[docs.git] / docs / user-guide / yang-push.rst
1 YANG-PUSH
2 =========
3
4 This section describes how to use the YANG-PUSH feature in OpenDaylight
5 and contains contains configuration, administration, and management
6 sections for the feature.
7
8 Overview
9 --------
10
11 YANG PUBSUB project allows applications to place subscriptions upon
12 targeted subtrees of YANG datastores residing on remote devices. Changes
13 in YANG objects within the remote subtree can be pushed to an
14 OpenDaylight MD-SAL and to the application as specified without a
15 requiring the controller to make a continuous set of fetch requests.
16
17 YANG-PUSH capabilities available
18 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19
20 This module contains the base code which embodies the intent of
21 YANG-PUSH requirements for subscription as defined in
22 {i2rs-pub-sub-requirements}
23 [https://datatracker.ietf.org/doc/draft-ietf-i2rs-pub-sub-requirements/].
24 The mechanism for delivering on these YANG-PUSH requirements over
25 Netconf transport is defined in {netconf-yang-push} [netconf-yang-push:
26 https://tools.ietf.org/html/draft-ietf-netconf-yang-push-00].
27
28 Note that in the current release, not all capabilities of
29 draft-ietf-netconf-yang-push are realized. Currently only implemented is
30 **create-subscription** RPC support from
31 ietf-datastore-push@2015-10-15.yang; and this will be for periodic
32 subscriptions only. There of course is intent to provide much additional
33 functionality in future OpenDaylight releases.
34
35 Future YANG-PUSH capabilities
36 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37
38 Over time, the intent is to flesh out more robust capabilities which
39 will allow OpenDaylight applications to subscribe to YANG-PUSH compliant
40 devices. Capabilities for future releases will include:
41
42 Support for subscription change/delete: **modify-subscription** rpc
43 support for all mountpoint devices or particular mountpoint device
44 **delete-subscription** rpc support for all mountpoint devices or
45 particular mountpoint device
46
47 Support for static subscriptions: This will enable the receipt of
48 subscription updates pushed from publishing devices where no signaling
49 from the controller has been used to establish the subscriptions.
50
51 Support for additional transports: NETCONF is not the only transport of
52 interest to OpenDaylight or the subscribed devices. Over time this code
53 will support Restconf and HTTP/2 transport requirements defined in
54 {netconf-restconf-yang-push}
55 [https://tools.ietf.org/html/draft-voit-netconf-restconf-yang-push-01]
56
57 YANG-PUSH Architecture
58 ----------------------
59
60 The code architecture of Yang push consists of two main elements
61
62 YANGPUSH Provider YANGPUSH Listener
63
64 YANGPUSH Provider receives create-subscription requests from
65 applications and then establishes/registers the corresponding listener
66 which will receive information pushed by a publisher. In addition,
67 YANGPUSH Provider also invokes an augmented OpenDaylight
68 create-subscription RPC which enables applications to register for
69 notification as per rfc5277. This augmentation adds periodic time period
70 (duration) and subscription-id values to the existing RPC parameters.
71 The Java package supporting this capability is
72 “org.opendaylight.yangpush.impl”. YangpushDomProvider is the class which
73 supports this YANGPUSH Provider capability.
74
75 The YANGPUSH Listener accepts update notifications from a device after
76 they have been de-encapsulated from the NETCONF transport. The YANGPUSH
77 Listener then passes these updates to MD-SAL. This function is
78 implemented via the YangpushDOMNotificationListener class within the
79 “org.opendaylight.yangpush.listner” Java package. Applications should
80 monitor MD-SAL for the availability of newly pushed subscription
81 updates.
82