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 2010-09-24; }
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 2013-10-05; }
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 "2013-10-24" {
43 typedef pcc-sync-state {
47 "Initial state resynchronization is being performed.";
51 "State synchronization has been achieved.";
56 grouping topology-pcep-type {
57 container topology-pcep {
58 presence "indicates a PCEP-aware topology";
62 augment "/nt:network-topology/nt:topology/nt:topology-types" {
63 uses topology-pcep-type;
66 grouping pcep-client-attributes {
67 description "Data present in a node which is a PCEP client (PCC).";
69 container path-computation-client {
71 "PCC-related run-time information. This container is only
72 present when the node is connected through PCEP in a PCC
78 "IP address which the node used to connected to the PCE.
79 There are no guarantees as to reachability of the address,
80 nor its relationship to other control, management, or
81 data plane addresses.";
86 container stateful-tlv {
92 when "../stateful-tlv";
108 uses pcep:path-definition;
115 augment "/nt:network-topology/nt:topology/nt:node" {
116 when "../../nt:topology-types/topology-pcep";
118 uses pcep-client-attributes;
121 typedef failure-type {
123 "Enumeration of all the distinct failure modes that can
124 happen while servicing a request towards the PCC.";
129 "The request failed before it was sent to the PCC.
130 PCC's state is guaranteed not to reflect state
131 transition implied by the request. This typically
132 happens if the request is syntactically invalid,
133 the target PCC is not connected or disconnects
134 while the request is enqueued.";
138 "The request has been sent to the PCC, but the session
139 went down before we have received confirmation of the
140 request being received by the PCC. PCC's state is
141 unknown -- the request may or may not be reflected
142 in its internal state. The caller should not make
143 any hard assumptions about PCC state until it reconnects
144 and state synchronization completes.";
148 "The request has been seen by the PCC, where it failed
149 for some external reason. The caller can assume the
150 state transition has not taken place, but is advised
151 to examine the attached error list to gain a deeper
152 understanding of the failure cause.";
169 grouping operation-result {
175 when "../failure = failed";
176 uses pcep:pcep-error-object;
180 grouping lsp-metadata {
184 "Container for external metadata attached to the LSP. Contents of this container
185 are not propagated onto the router itself, so it is persisted only while the LSP
190 grouping add-lsp-args {
193 container arguments {
195 uses pcep:endpoints-object;
197 uses pcep:path-definition;
205 uses ont:network-topology-reference;
209 uses operation-result;
213 grouping remove-lsp-args {
219 uses ont:network-topology-reference;
220 uses remove-lsp-args;
223 uses operation-result;
227 grouping update-lsp-args {
230 container arguments {
232 uses pcep:path-definition;
240 uses ont:network-topology-reference;
241 uses update-lsp-args;
244 uses operation-result;
248 grouping ensure-lsp-operational-args {
251 container arguments {
256 rpc ensure-lsp-operational {
258 "Ensure that the target LSP is provisioned and has specified
259 operational status.";
262 uses ont:network-topology-reference;
263 uses ensure-lsp-operational-args;
266 uses operation-result;