1 module network-topology-pcep {
2 // vi: set et smarttab sw=4 tabstop=4:
4 namespace "urn:opendaylight:params:xml:ns:yang:topology:pcep";
7 import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
8 import network-topology { prefix nt; revision-date 2013-10-21; }
9 import odl-network-topology { prefix ont; revision-date 2014-01-13; }
10 import pcep-types { prefix pcep; revision-date 2018-11-09; }
11 import rsvp { prefix rsvp; revision-date 2015-08-20; }
13 organization "Cisco Systems, Inc.";
14 contact "Robert Varga <rovarga@cisco.com>";
17 "This module contains the PCEP extensions to base topology model. It
18 exposes the LSPs for which a particular node is the head end.
20 This module exposes three programming instructions,add-lsp,
21 remove-lsp and update-lsp, which map to actively-stateful PCEP
22 operations using PCInitiate and PCUpd messages to initiate,
23 destroy and udpate LSP configuration. The lifecycle of these
24 instructions follows draft-crabbe-pce-pce-initiated-lsp and
25 draft-ietf-pce-stateful-pce, completing execution once the head-end
26 router has acknowledged operation success. Should the router become
27 disconnected, the instruction resolve to Cancelled if the message
28 has not been sent into the TCP socket, or Failed it they have.
30 Copyright (c)2013 Cisco Systems, Inc. All rights reserved.
32 This program and the accompanying materials are made available
33 under the terms of the Eclipse Public License v1.0 which
34 accompanies this distribution, and is available at
35 http://www.eclipse.org/legal/epl-v10.html";
37 revision "2018-11-09" {
44 description "Add release-connection rpc";
47 revision "2013-10-24" {
53 typedef pcc-sync-state {
57 "Initial state resynchronization is being performed.";
59 enum incremental-sync {
61 "Incremental state resynchronization is being performed.";
63 enum triggered-initial-sync {
65 "Triggered initial state resynchronization is being performed.";
67 enum pcep-triggered-resync {
69 "Pcep triggered state resynchronization is being performed.";
73 "State synchronization has been achieved.";
78 grouping topology-pcep-type {
79 container topology-pcep {
80 presence "indicates a PCEP-aware topology";
84 augment "/nt:network-topology/nt:topology/nt:topology-types" {
85 uses topology-pcep-type;
88 grouping pcep-client-attributes {
89 description "Data present in a node which is a PCEP client (PCC).";
91 container path-computation-client {
93 "PCC-related run-time information. This container is only
94 present when the node is connected through PCEP in a PCC
100 "IP address which the node used to connected to the PCE.
101 There are no guarantees as to reachability of the address,
102 nor its relationship to other control, management, or
103 data plane addresses.";
105 type inet:ip-address;
108 container stateful-tlv {
114 when "../stateful-tlv";
130 uses pcep:path-definition;
137 augment "/nt:network-topology/nt:topology/nt:node" {
138 when "../../nt:topology-types/topology-pcep";
140 uses pcep-client-attributes;
143 typedef failure-type {
145 "Enumeration of all the distinct failure modes that can
146 happen while servicing a request towards the PCC.";
151 "The request failed before it was sent to the PCC.
152 PCC's state is guaranteed not to reflect state
153 transition implied by the request. This typically
154 happens if the request is syntactically invalid,
155 the target PCC is not connected or disconnects
156 while the request is enqueued.";
160 "The request has been sent to the PCC, but either the
161 session went down before we have received confirmation
162 of the request being received by the PCC, or the request
163 timed-out waiting for response from PCC. PCC's state is
164 unknown -- the request may or may not be reflected
165 in its internal state. The caller should not make
166 any hard assumptions about PCC state until it reconnects
167 and state synchronization completes.";
171 "The request has been seen by the PCC, where it failed
172 for some external reason. The caller can assume the
173 state transition has not taken place, but is advised
174 to examine the attached error list to gain a deeper
175 understanding of the failure cause.";
196 grouping operation-result {
202 when "../failure = failed";
203 uses pcep:pcep-error-object;
207 grouping lsp-metadata {
211 "Container for external metadata attached to the LSP. Contents of this container
212 are not propagated onto the router itself, so it is persisted only while the LSP
217 grouping add-lsp-args {
220 container arguments {
222 uses pcep:endpoints-object;
224 uses pcep:path-definition;
232 uses ont:network-topology-reference;
236 uses operation-result;
240 grouping remove-lsp-args {
246 uses ont:network-topology-reference;
247 uses remove-lsp-args;
250 uses operation-result;
254 grouping update-lsp-args {
257 container arguments {
259 uses pcep:path-definition;
267 uses ont:network-topology-reference;
268 uses update-lsp-args;
271 uses operation-result;
275 grouping ensure-lsp-operational-args {
278 container arguments {
283 rpc ensure-lsp-operational {
285 "Ensure that the target LSP is provisioned and has specified
286 operational status.";
289 uses ont:network-topology-reference;
290 uses ensure-lsp-operational-args;
293 uses operation-result;
297 grouping trigger-sync-args {
307 uses ont:network-topology-reference;
308 uses trigger-sync-args;
311 uses operation-result;
315 rpc tear-down-session {
316 description "Closes the session between PCE and PCC.";
318 uses ont:network-topology-reference;