1 module path-computation {
3 namespace "urn:opendaylight:params:xml:ns:yang:path:computation";
6 import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
7 import graph { prefix gr; revision-date 2022-07-20; }
10 contact "Olivier Dugeon <olivier.dugeon@orange.com>";
13 "This module contains the model of Computed Path
14 used in various Path Computation algorithms.
16 Copyright (c)2020 Orange. All rights reserved.
18 This program and the accompanying materials are made available
19 under the terms of the Eclipse Public License v1.0 which
20 accompanies this distribution, and is available at
21 http://www.eclipse.org/legal/epl-v10.html";
23 revision "2022-03-24" {
25 "add Exclude Route and Include Route to constraints";
29 revision "2022-03-10" {
31 "add new computation status for failures and a type for address-family";
35 revision "2020-01-20" {
41 typedef computation-status {
43 "Status of the Path Computation Algorithm regarding current
47 description "Path Computeation Algorithm has not yet started";
52 "Path Computation has started but no path has been found";
57 "A valid path has been found,
58 but it is perhaps not the best one";
63 "Path Computation Algorithm has completed
64 and a valid computed path found";
68 description "Path Computation Algorithm failed during path computation";
73 "Path Computation Algorithm has not been found a valid path
74 that meets the given constraints";
79 "The given source of the path has not been found
80 in the network topology";
85 "The given destination of the path has not been found
86 in the network topology";
89 enum equal-endpoints {
90 description "The given source and destination are equals";
96 typedef algorithm-type {
97 description "Various type of Path Computation Algorithms";
112 typedef address-family {
113 description "Address family of the computed path";
131 grouping path-constraints {
132 description "Set of Constraints for Path Computation";
134 description "Maximum end to end IGP metric";
138 description "Maximum end to end Traffic Engineering metric";
142 description "Maximum end to end delay";
146 description "Maximum delay variation for selected edges";
150 description "Maximum loss for selected edges";
154 description "Admin group to select edges";
157 leaf address-family {
161 description "Class Type for bandwidth constraints";
167 description "Requested bandwidth for the computed path";
168 type gr:decimal-bandwidth;
171 description "Speficy routes which must be included in the computed path, i.e. IRO";
173 when "../../address-family = 0 or ../../address-family = 2";
174 type inet:ipv4-address;
177 when "../../address-family = 1 or ../../address-family = 3";
178 type inet:ipv6-address;
182 description "Speficy routes which must be excluded in the computed path, i.e. XRO";
184 when "../../address-family = 0 or ../../address-family = 2";
185 type inet:ipv4-address;
188 when "../../address-family = 1 or ../../address-family = 3";
189 type inet:ipv6-address;
194 grouping path-descriptions {
196 "Computed Path description as a list of IPv4, IPv6 or Segment Routing subobject";
197 list path-description {
199 when "path-constraints/address-family = 0 or path-constraints/address-family = 2";
200 type inet:ipv4-address;
203 when "path-constraints/address-family = 1 or path-constraints/address-family = 3";
204 type inet:ipv6-address;
207 description "Remote IPv4 address";
208 when "path-constraints/address-family = 2";
209 type inet:ipv4-address;
212 description "Remote IPv6 address";
213 when "path-constraints/address-family = 3";
214 type inet:ipv6-address;
217 description "Segment Routing Identifier as an Index or MPLS label";
218 when "path-constraints/address-family = 2 or path-constraints/address-family = 3";
224 container constrained-path {
225 description "Computed Path as result of Path Computation Algorithms";
226 uses path-constraints;
233 uses path-descriptions;
235 type computation-status;
239 rpc get-constrained-path {
251 container constraints {
252 uses path-constraints;
259 uses path-descriptions;
261 type computation-status;
263 leaf computed-metric {
266 leaf computed-te-metric {
269 leaf computed-delay {