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-stateful07 {
47 base config:module-type;
48 config:provided-service pcep-topology-stateful;
49 config:java-name-prefix Stateful07TopologySessionListener;
52 augment "/config:modules/config:module/config:configuration" {
53 case pcep-topology-stateful07 {
54 when "/config:modules/config:module/config:type = 'pcep-topology-stateful07'";
58 identity pcep-topology-reference {
60 "Service representing a PCEP-enabled topology.";
62 // FIXME: should be a topology-reference, really
63 //base "topo:topology-reference";
64 base "config:service-type";
65 config:java-class "org.opendaylight.bgpcep.topology.TopologyReference";
68 identity pcep-topology-provider {
69 base config:module-type;
70 config:provided-service pcep-topology-reference;
71 config:java-name-prefix PCEPTopologyProvider;
74 augment "/config:modules/config:module/config:configuration" {
75 case pcep-topology-provider {
76 when "/config:modules/config:module/config:type = 'pcep-topology-provider'";
78 container data-provider {
79 uses config:service-ref {
82 config:required-identity mdsal:binding-async-data-broker;
87 container rpc-registry {
88 uses config:service-ref {
91 config:required-identity mdsal:binding-rpc-registry;
96 container dispatcher {
97 uses config:service-ref {
100 config:required-identity pcep:pcep-dispatcher;
105 container scheduler {
106 uses config:service-ref {
109 config:required-identity pgmspi:instruction-scheduler;
114 container stateful-plugin {
115 uses config:service-ref {
118 config:required-identity pcep-topology-stateful;
128 leaf listen-address {
129 type inet:ip-address;
134 type inet:port-number;
140 type inet:ip-address;
145 type tcpmd5:rfc2385-key;
146 description "RFC2385 shared secret";
157 identity session-rpc;
159 grouping stateful-preferences {
161 description "Represents peer's instantiation capability.";
167 description "Represents peer's stateful/stateless capability.";
173 description "Represents peer's LSP update capability.";
179 augment "/config:modules/config:module/config:state" {
180 case pcep-topology-provider {
181 when "/config:modules/config:module/config:type = 'pcep-topology-provider'";
182 list listener-state {
183 description "Statistics gained from session listener.";
184 config:inner-state-bean;
185 rpcx:rpc-context-instance "session-rpc";
193 container session-state {
194 leaf session-duration {
195 description "Elapsed time (in d:H:m:s) from session-up until now.";
198 uses pcep-stats:pcep-session-state;
201 container peer-capabilities {
202 description "Remote peer's (PCC) advertised stateful capabilities.";
203 uses stateful-preferences;
206 leaf delegated-lsps-count {
207 description "The number of delegated LSPs (tunnels) from PCC.";
212 description "Represents synchronization status.";
216 container stateful-messages {
217 description "The statistics of sent/received PCEP stateful messages.";
218 leaf last-received-rpt-msg-timestamp {
219 description "The timestamp of last received PCRpt message.";
223 leaf received-rpt-msg-count {
224 description "The number of received PcRpt messages.";
228 leaf sent-upd-msg-count {
229 description "The number of sent PCUpd messages.";
233 leaf sent-init-msg-count {
234 description "The number of sent PCInitiate messages.";
239 container reply-time {
240 description "Measures time elapsed from request's send to reply's received.";
243 description "Average time (in milliseconds) of gauged values.";
248 description "Minimal measured time value (in milliseconds).";
253 description "Maximal measured time value (in milliseconds).";
261 rpc tear-down-session {
262 description "Closes the session between PCE and PCC.";
264 uses rpcx:rpc-context-ref {
265 refine context-instance {
266 rpcx:rpc-context-instance session-rpc;
273 description "Resets statistics like message counters and timestamps. (set to 0)";
275 uses rpcx:rpc-context-ref {
276 refine context-instance {
277 rpcx:rpc-context-instance session-rpc;