1 // vi: set smarttab et sw=4 tabstop=4:
2 module odl-pcep-topology-provider-cfg {
4 namespace "urn:opendaylight:params:xml:ns:yang:controller:pcep:topology:provider";
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 import rpc-context { prefix rpcx; revision-date 2013-06-17; }
16 import pcep-session-stats { prefix pcep-stats; revision-date 2014-10-06; }
18 organization "Cisco Systems, Inc.";
20 contact "Robert Varga <rovarga@cisco.com>";
23 "This module contains the base YANG definitions for
24 PCEP topology provider service.
26 Copyright (c)2013 Cisco Systems, Inc. All rights reserved.;
28 This program and the accompanying materials are made available
29 under the terms of the Eclipse Public License v1.0 which
30 accompanies this distribution, and is available at
31 http://www.eclipse.org/legal/epl-v10.html";
33 revision "2013-11-15" {
38 identity pcep-topology-stateful {
40 "Service representing a stateful draft support module";
42 base "config:service-type";
43 config:java-class "org.opendaylight.bgpcep.pcep.topology.provider.TopologySessionListenerFactory";
46 identity pcep-topology-stateful02 {
47 base config:module-type;
48 config:provided-service pcep-topology-stateful;
49 config:java-name-prefix Stateful02TopologySessionListener;
52 augment "/config:modules/config:module/config:configuration" {
53 case pcep-topology-stateful02 {
54 when "/config:modules/config:module/config:type = 'pcep-topology-stateful02'";
58 identity pcep-topology-stateful07 {
59 base config:module-type;
60 config:provided-service pcep-topology-stateful;
61 config:java-name-prefix Stateful07TopologySessionListener;
64 augment "/config:modules/config:module/config:configuration" {
65 case pcep-topology-stateful07 {
66 when "/config:modules/config:module/config:type = 'pcep-topology-stateful07'";
70 identity pcep-topology-reference {
72 "Service representing a PCEP-enabled topology.";
74 // FIXME: should be a topology-reference, really
75 //base "topo:topology-reference";
76 base "config:service-type";
77 config:java-class "org.opendaylight.bgpcep.topology.TopologyReference";
80 identity pcep-topology-provider {
81 base config:module-type;
82 config:provided-service pcep-topology-reference;
83 config:java-name-prefix PCEPTopologyProvider;
86 augment "/config:modules/config:module/config:configuration" {
87 case pcep-topology-provider {
88 when "/config:modules/config:module/config:type = 'pcep-topology-provider'";
90 container data-provider {
91 uses config:service-ref {
94 config:required-identity mdsal:binding-async-data-broker;
99 container rpc-registry {
100 uses config:service-ref {
103 config:required-identity mdsal:binding-rpc-registry;
108 container dispatcher {
109 uses config:service-ref {
112 config:required-identity pcep:pcep-dispatcher;
117 container scheduler {
118 uses config:service-ref {
121 config:required-identity pgmspi:instruction-scheduler;
126 container stateful-plugin {
127 uses config:service-ref {
130 config:required-identity pcep-topology-stateful;
140 leaf listen-address {
141 type inet:ip-address;
146 type inet:port-number;
152 type inet:ip-address;
157 type tcpmd5:rfc2385-key;
158 description "RFC2385 shared secret";
164 identity session-rpc;
166 grouping stateful-preferences {
168 description "Represents peer's instantiation capability.";
174 description "Represents peer's stateful/stateless capability.";
180 description "Represents peer's LSP update capability.";
186 augment "/config:modules/config:module/config:state" {
187 case pcep-topology-provider {
188 when "/config:modules/config:module/config:type = 'pcep-topology-provider'";
189 list listener-state {
190 description "Statistics gained from session listener.";
191 config:inner-state-bean;
192 rpcx:rpc-context-instance "session-rpc";
200 container session-state {
201 leaf session-duration {
202 description "Elapsed time (in d:H:m:s) from session-up until now.";
205 uses pcep-stats:pcep-session-state;
208 container peer-capabilities {
209 description "Remote peer's (PCC) advertised stateful capabilities.";
210 uses stateful-preferences;
213 leaf delegated-lsps-count {
214 description "The number of delegated LSPs (tunnels) from PCC.";
219 description "Represents synchronization status.";
223 container stateful-messages {
224 description "The statistics of sent/received PCEP stateful messages.";
225 leaf last-received-rpt-msg-timestamp {
226 description "The timestamp of last received PCRpt message.";
230 leaf received-rpt-msg-count {
231 description "The number of received PcRpt messages.";
235 leaf sent-upd-msg-count {
236 description "The number of sent PCUpd messages.";
240 leaf sent-init-msg-count {
241 description "The number of sent PCInitiate messages.";
246 container reply-time {
247 description "Measures time elapsed from request's send to reply's received.";
250 description "Average time (in milliseconds) of gauged values.";
255 description "Minimal measured time value (in milliseconds).";
260 description "Maximal measured time value (in milliseconds).";
268 rpc tear-down-session {
269 description "Closes the session between PCE and PCC.";
271 uses rpcx:rpc-context-ref {
272 refine context-instance {
273 rpcx:rpc-context-instance session-rpc;
280 description "Resets statistics like message counters and timestamps. (set to 0)";
282 uses rpcx:rpc-context-ref {
283 refine context-instance {
284 rpcx:rpc-context-instance session-rpc;