3 namespace "http://frrouting.org/yang/pathd";
6 import ietf-inet-types {
9 import ietf-yang-types {
12 import ietf-routing-types {
15 import frr-interface {
22 "FRR Users List: <mailto:frog@lists.frrouting.org>
23 FRR Development List: <mailto:dev@lists.frrouting.org>";
25 "This module defines a model for managing FRR pathd daemon.";
32 typedef protocol-origin-type {
34 "Indication for the protocol origin of an object.";
38 description "The object was created through PCEP";
42 description "The object was created through GBP";
46 description "The object was created through CLI, Yang model via Netconf, gRPC, etc";
51 typedef originator-type {
56 "Identifier of the originator of an object, could be 'config', '1.1.1.1:4189' or '2001:db8:85a3::8a2e:370:7334:4189'";
63 description "Segment-list properties";
68 description "Segment-list name";
70 leaf protocol-origin {
71 type protocol-origin-type;
74 "Indication for the protocol origin of the segment list.";
79 description "Originator of the segment list";
83 description "Configure Segment/hop at the index";
86 description "Segment index";
89 type rt-types:mpls-label;
91 description "MPLS label value";
94 presence "The segement has a Node or Adjacency Identifier";
96 description "NAI type";
101 description "IPv4 node identifier";
105 description "IPv6 node identifier";
107 enum ipv4_adjacency {
109 description "IPv4 adjacency";
111 enum ipv6_adjacency {
113 description "IPv6 adjacency";
115 enum ipv4_unnumbered_adjacency {
117 description "IPv4 unnumbered adjacency";
122 type inet:ip-address;
125 leaf local-interface {
128 when "../type = 'ipv4_unnumbered_adjacency'";
130 leaf remote-address {
131 type inet:ip-address;
133 when "../type = 'ipv4_adjacency' or ../type = 'ipv6_adjacency' or ../type = 'ipv4_unnumbered_adjacency'";
135 leaf remote-interface {
138 when "../type = 'ipv4_unnumbered_adjacency'";
144 key "color endpoint";
149 "Color of the SR Policy.";
152 type inet:ip-address;
154 "Indication for the endpoint of the SR Policy.";
161 "Name of the SR Policy.";
164 type rt-types:mpls-label;
166 "BSID of the SR Policy.";
168 leaf is-operational {
172 "True if a valid candidate path of this policy is operational in zebra, False otherwise";
174 list candidate-path {
177 "List of Candidate Paths of the SR Policy.";
182 "Administrative preference.";
190 "Symbolic Name of the Candidate Path.";
192 leaf is-best-candidate-path {
196 "True if the candidate path is the best candidate path, False otherwise";
198 leaf protocol-origin {
199 type protocol-origin-type;
202 "Indication for the protocol origin of the Candidate Path.";
205 type originator-type;
207 description "Originator of the candidate path";
212 description "Candidate path distinguisher";
216 "Type of the Candidate Path.";
227 leaf segment-list-name {
229 path ../../../segment-list/name;
232 "The name of the Segment List to use as LSP.";
234 container constraints {
235 when "../type = 'dynamic'";
237 "Generic dynamic path constraints";
238 container bandwidth {
239 presence "If the candidate has a bandwidth constraint";
241 "The bandwidth needed by the candidate path.";
246 "If the bandwidth limitation is a requirement or only a suggestion";
257 "Affinity let you configure how the links should be used when calculating a path.";
261 "A 32-bit vector representing a set of attribute filters which renders a link unacceptable.";
266 "A 32-bit vector representing a set of attribute filters which renders a link acceptable. A null set (all bits set to zero) automatically passes.";
271 "A 32-bit vector representing a set of attribute filters which must be present for a link to be acceptable. A null set (all bits set to zero) automatically passes.";
278 "Type of the metric.";
282 description "IGP metric";
286 description "TE metric";
290 description "Hop Counts";
294 description "Aggregate bandwidth consumption";
298 description "Load of the most loaded link";
302 description "Cumulative IGP cost";
306 description "Cumulative TE cost";
310 description "P2MP IGP metric";
314 description "P2MP TE metric";
318 description "P2MP hop count metric";
322 description "Segment-ID (SID) Depth";
326 description "Path Delay metric";
330 description "Path Delay Variation metric";
334 description "Path Loss metric";
338 description "P2MP Path Delay metric";
342 description "P2MP Path Delay variation metric";
346 description "P2MP Path Loss metric";
350 description "Number of adaptations on a path";
354 description "Number of layers on a path";
358 description "Domain Count metric";
362 description "Border Node Count metric";
370 "If the metric is a requirement, or if it is only a suggestion";
375 "Defines if the value is a bound (a maximum) for the path metric that must not be exceeded.";
380 "Defines if the value has been generated by the originator of the path.";
389 container objective-function {
390 presence "If the candidate has an objective function constraint";
392 "Define objective function constraint as a list of prefered functions";
397 "If an objective function is a requirement, or if it is only a suggestion";
401 "Type of objective function.";
406 description "Minimum Cost Path";
410 description "Minimum Load Path";
414 description "Maximum residual Bandwidth Path";
418 description "Minimize aggregate Bandwidth Consumption";
422 description "Minimize the Load of the most loaded Link";
426 description "Minimize the Cumulative Cost of a set of paths";
430 description "Shortest Path Tree";
434 description "Minimum Cost Tree";
438 description "Minimum Packet Loss Path";
442 description "Maximum Under-Utilized Path";
446 description "Maximum Reserved Under-Utilized Path";
450 description "Minimize the number of Transit Domains";
454 description "Minimize the number of Border Nodes";
458 description "Minimize the number of Common Transit Domains";
462 description "Minimize the number of Shared Links";
466 description "Minimize the number of Shared SRLGs";
470 description "Minimize the number of Shared Nodes";