1 module path-computation {
3 namespace "urn:opendaylight:params:xml:ns:yang:path:computation";
6 import network-concepts { prefix netc; revision-date 2013-11-25; }
7 import ietf-inet-types { prefix inet; revision-date 2013-07-15; }
8 import graph { prefix gr; revision-date 2019-11-25; }
10 organization "Orange";
11 contact "Olivier Dugeon <olivier.dugeon@orange.com>";
14 "This module contains the model of Computed Path
15 used in various Path Computation algorithms.
17 Copyright (c)2020 Orange. All rights reserved.
19 This program and the accompanying materials are made available
20 under the terms of the Eclipse Public License v1.0 which
21 accompanies this distribution, and is available at
22 http://www.eclipse.org/legal/epl-v10.html";
24 revision "2020-01-20" {
30 typedef computation-status {
32 "Status of the Path Computation Algorithm regaring current
36 description "Path Computeation Algorithm has not yet started";
41 "Path Computation has started but no path has been found";
46 "A valid path has been found,
47 but it is perhaps not the best one";
52 "Path Computation Algorithm has completed
53 and a valid computed path found";
62 typedef algorithm-type {
63 description "Various type of Path Computation Algorithms";
78 grouping path-constraints {
79 description "Set of Constraints for Path Computation";
81 description "Maximum end to end IGP metric";
85 description "Maximum end to end Traffic Engineering metric";
89 description "Maximum end to end delay";
93 description "Maximum delay variation for selected edges";
97 description "Maximum loss for selected edges";
101 description "Admin group to select edges";
104 leaf address-family {
105 description "Address family of the computed path";
123 description "Class Type for bandwidth constraints";
129 description "Requested bandwidth for the computed path";
130 type gr:decimal-bandwidth;
134 grouping sr-description {
135 description "Segment Routing path description";
137 description "Segment Routing Identifier as an Index or MPLS label";
138 when "path-constraints/address-family = 2 or path-constraints/address-family = 3";
142 description "Local IPv4 address";
143 when "path-constraints/address-family = 2";
144 type inet:ipv4-address;
147 description "Remote IPv4 address";
148 when "path-constraints/address-family = 2";
149 type inet:ipv4-address;
152 description "Local IPv4 address";
153 when "path-constraints/address-family = 3";
154 type inet:ipv6-address;
157 description "Remote IPv4 address";
158 when "path-constraints/address-family = 3";
159 type inet:ipv6-address;
163 grouping path-descriptions {
165 "Computed Path description as a list of IPv4, IPv6 or Segment Routing subobject";
166 list path-description {
168 when "path-constraints/address-family = 0";
169 type inet:ipv4-address;
172 when "path-constraints/address-family = 1";
173 type inet:ipv6-address;
179 container constrained-path {
180 description "Computed Path as result of Path Computation Algorithms";
181 uses path-constraints;
188 uses path-descriptions;
190 type computation-status;
194 rpc get-constrained-path {
206 container constraints {
207 uses path-constraints;
214 uses path-descriptions;
216 type computation-status;
218 leaf computed-metric {
221 leaf computed-te-metric {
224 leaf computed-delay {