Add blueprint wiring for netconf-tcp
[netconf.git] / netconf / netconf-topology / src / main / yang / netconf-topology.yang
1 module netconf-topology {
2
3     yang-version 1;
4     namespace "urn:opendaylight:params:xml:ns:yang:controller:netconf:topology";
5     prefix "nt";
6
7     import config { prefix config; revision-date 2013-04-05; }
8     import threadpool {prefix th;}
9     import netty {prefix netty;}
10     import opendaylight-md-sal-dom {prefix dom;}
11     import opendaylight-md-sal-binding {prefix md-sal-binding; revision-date 2013-10-28;}
12     import odl-netconf-cfg { prefix cfg-net; revision-date 2014-04-08; }
13     import shared-schema-repository { prefix sh; revision-date 2015-07-27; }
14
15     description
16             "Module definition for Netconf topolgy. Netconf topology provides a set of common configuration ";
17
18     revision "2015-07-27" {
19         description
20             "Initial revision";
21     }
22
23     identity netconf-topology {
24         base config:service-type;
25         config:java-class "org.opendaylight.netconf.topology.NetconfTopology";
26     }
27
28     identity netconf-topology-impl {
29         base config:module-type;
30         config:java-name-prefix NetconfTopology;
31         config:provided-service netconf-topology;
32     }
33
34     augment "/config:modules/config:module/config:configuration" {
35         case netconf-topology-impl {
36             when "/config:modules/config:module/config:type = 'netconf-topology-impl'";
37
38             leaf topology-id {
39                 mandatory true;
40                 type string;
41             }
42
43             container dom-registry {
44                 uses config:service-ref {
45                     refine type {
46                         mandatory true;
47                         config:required-identity dom:dom-broker-osgi-registry;
48                     }
49                 }
50             }
51
52             container binding-registry {
53                 uses config:service-ref {
54                     refine type {
55                         mandatory true;
56                         config:required-identity md-sal-binding:binding-broker-osgi-registry;
57                     }
58                 }
59             }
60
61             container event-executor {
62                 uses config:service-ref {
63                     refine type {
64                         mandatory true;
65                         config:required-identity netty:netty-event-executor;
66                     }
67                 }
68             }
69
70             container processing-executor {
71                 uses config:service-ref {
72                     refine type {
73                         mandatory true;
74                         config:required-identity th:threadpool;
75                     }
76                 }
77
78                 description "Makes up for flaws in netty threading design";
79             }
80
81             container client-dispatcher {
82                 uses config:service-ref {
83                     refine type {
84                         mandatory false;
85                         config:required-identity cfg-net:netconf-client-dispatcher;
86                     }
87                 }
88             }
89
90             container keepalive-executor {
91                 uses config:service-ref {
92                     refine type {
93                         mandatory false;
94                         config:required-identity th:scheduled-threadpool;
95                     }
96                 }
97
98                 description "Dedicated solely to keepalive execution";
99             }
100
101             container shared-schema-repository {
102                 uses config:service-ref {
103                     refine type {
104                         mandatory true;
105                         config:required-identity sh:shared-schema-repository;
106                     }
107                 }
108             }
109         }
110     }
111 }