5390d8e3b72fde2282abd5a6534f467ca1fbbd80
[bgpcep.git] / pcep / topology-provider / src / main / yang / odl-pcep-topology-provider-cfg.yang
1 // vi: set smarttab et sw=4 tabstop=4:
2 module odl-pcep-topology-provider-cfg {
3     yang-version 1;
4     namespace "urn:opendaylight:params:xml:ns:yang:controller:pcep:topology:provider";
5     prefix "p2p";
6
7     import config { prefix config; revision-date 2013-04-05; }
8     import odl-programming-spi-cfg { prefix pgmspi; revision-date 2013-11-15; }
9     import odl-topology-api-cfg { prefix topo; revision-date 2013-11-15; }
10     import ietf-inet-types { prefix inet; revision-date 2010-09-24; }
11     import network-topology { prefix nt; revision-date 2013-10-21; }
12     import odl-pcep-api-cfg { prefix pcep; revision-date 2013-04-09; }
13     import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
14     import odl-tcpmd5-cfg { prefix tcpmd5; revision-date 2014-04-27; }
15
16     organization "Cisco Systems, Inc.";
17
18     contact "Robert Varga <rovarga@cisco.com>";
19
20     description
21         "This module contains the base YANG definitions for
22         PCEP topology provider service.
23
24         Copyright (c)2013 Cisco Systems, Inc. All rights reserved.;
25
26         This program and the accompanying materials are made available
27         under the terms of the Eclipse Public License v1.0 which
28         accompanies this distribution, and is available at
29         http://www.eclipse.org/legal/epl-v10.html";
30
31     revision "2013-11-15" {
32         description
33             "Initial revision";
34     }
35
36     identity pcep-topology-stateful {
37         description
38             "Service representing a stateful draft support module";
39
40         base "config:service-type";
41         config:java-class "org.opendaylight.bgpcep.pcep.topology.provider.TopologySessionListenerFactory";
42     }
43
44     identity pcep-topology-stateful02 {
45         base config:module-type;
46         config:provided-service pcep-topology-stateful;
47         config:java-name-prefix Stateful02TopologySessionListener;
48     }
49
50     augment "/config:modules/config:module/config:configuration" {
51         case pcep-topology-stateful02 {
52             when "/config:modules/config:module/config:type = 'pcep-topology-stateful02'";
53         }
54     }
55
56     identity pcep-topology-stateful07 {
57         base config:module-type;
58         config:provided-service pcep-topology-stateful;
59         config:java-name-prefix Stateful07TopologySessionListener;
60     }
61
62     augment "/config:modules/config:module/config:configuration" {
63         case pcep-topology-stateful07 {
64             when "/config:modules/config:module/config:type = 'pcep-topology-stateful07'";
65         }
66     }
67
68     identity pcep-topology-reference {
69         description
70             "Service representing a PCEP-enabled topology.";
71
72         // FIXME: should be a topology-reference, really
73         //base "topo:topology-reference";
74         base "config:service-type";
75         config:java-class "org.opendaylight.bgpcep.topology.TopologyReference";
76     }
77
78     identity pcep-topology-provider {
79         base config:module-type;
80         config:provided-service pcep-topology-reference;
81         config:java-name-prefix PCEPTopologyProvider;
82     }
83
84     augment "/config:modules/config:module/config:configuration" {
85         case pcep-topology-provider {
86             when "/config:modules/config:module/config:type = 'pcep-topology-provider'";
87
88             container data-provider {
89                 uses config:service-ref {
90                     refine type {
91                         mandatory true;
92                         config:required-identity mdsal:binding-async-data-broker;
93                     }
94                 }
95             }
96
97             container rpc-registry {
98                 uses config:service-ref {
99                     refine type {
100                         mandatory true;
101                         config:required-identity mdsal:binding-rpc-registry;
102                     }
103                 }
104             }
105
106             container dispatcher {
107                 uses config:service-ref {
108                     refine type {
109                         mandatory true;
110                         config:required-identity pcep:pcep-dispatcher;
111                     }
112                 }
113             }
114
115             container scheduler {
116                 uses config:service-ref {
117                     refine type {
118                         mandatory true;
119                         config:required-identity pgmspi:instruction-scheduler;
120                     }
121                 }
122             }
123
124             container stateful-plugin {
125                 uses config:service-ref {
126                     refine type {
127                         mandatory true;
128                         config:required-identity pcep-topology-stateful;
129                     }
130                 }
131             }
132
133             leaf topology-id {
134                 type nt:topology-id;
135                 mandatory true;
136             }
137
138             leaf listen-address {
139                 type inet:ip-address;
140                 default "0.0.0.0";
141             }
142
143             leaf listen-port {
144                 type inet:port-number;
145                 default 4189;
146             }
147
148             list client {
149                 leaf address {
150                     type inet:ip-address;
151                 }
152                 key "address";
153
154                 leaf password {
155                     type tcpmd5:rfc2385-key;
156                     description "RFC2385 shared secret";
157                 }
158             }
159         }
160     }
161 }
162