summaryrefslogtreecommitdiffstats
path: root/yang
diff options
context:
space:
mode:
authorJavier Garcia <javier.garcia@voltanet.io>2021-04-22 16:04:42 +0200
committerJavier Garcia <javier.garcia@voltanet.io>2021-05-10 15:24:59 +0200
commitf2b9485d6f5aa1508334a7e92d26d95faf0e1733 (patch)
tree18d754185d84e48675820d0c4fb658b53e78d1e6 /yang
parentpathd. TED support . Client to link State - [part 1/4] (diff)
downloadfrr-f2b9485d6f5aa1508334a7e92d26d95faf0e1733.tar.xz
frr-f2b9485d6f5aa1508334a7e92d26d95faf0e1733.zip
pathd. TED support . Validation of candidate path - [part 2/4]
- Explicit segment list nai will be resolved to corresponded sid. - Dynamic segment list (from pce) will be validated. - If segment list could not be resolved or validated won't be used. - Now this new config is supported segment-list sl-1 index 10 nai prefix 10.1.2.1/32 iface 1 index 30 nai adjacency 10.2.5.2 10.2.5.5 index 40 nai prefix 10.10.10.5/32 algorithm 0 Signed-off-by: Javier Garcia <javier.garcia@voltanet.io>
Diffstat (limited to 'yang')
-rw-r--r--yang/frr-pathd.yang109
1 files changed, 67 insertions, 42 deletions
diff --git a/yang/frr-pathd.yang b/yang/frr-pathd.yang
index 03f0d3b02..30f9875a6 100644
--- a/yang/frr-pathd.yang
+++ b/yang/frr-pathd.yang
@@ -84,51 +84,71 @@ module frr-pathd {
leaf index {
type uint32;
description "Segment index";
- }
- leaf sid-value {
- type rt-types:mpls-label;
+ }
+ leaf sid-value {
+ type rt-types:mpls-label;
+ description "MPLS label value";
+ }
+ container nai {
+ presence "The segment has a Node or Adjacency Identifier";
+ leaf type {
+ description "NAI type";
mandatory true;
- description "MPLS label value";
- }
- container nai {
- presence "The segement has a Node or Adjacency Identifier";
- leaf type {
- description "NAI type";
- mandatory true;
- type enumeration {
- enum ipv4_node {
- value 1;
- description "IPv4 node identifier";
- }
- enum ipv6_node {
- value 2;
- description "IPv6 node identifier";
- }
- enum ipv4_adjacency {
- value 3;
- description "IPv4 adjacency";
- }
- enum ipv6_adjacency {
- value 4;
- description "IPv6 adjacency";
- }
- enum ipv4_unnumbered_adjacency {
- value 5;
- description "IPv4 unnumbered adjacency";
- }
+ type enumeration {
+ enum ipv4_node {
+ value 1;
+ description "IPv4 node identifier";
+ }
+ enum ipv6_node {
+ value 2;
+ description "IPv6 node identifier";
+ }
+ enum ipv4_adjacency {
+ value 3;
+ description "IPv4 adjacency";
+ }
+ enum ipv6_adjacency {
+ value 4;
+ description "IPv6 adjacency";
+ }
+ enum ipv4_unnumbered_adjacency {
+ value 5;
+ description "IPv4 unnumbered adjacency";
+ }
+ enum ipv4_local_iface {
+ value 7;
+ description "IPv4 prefix with local interface id";
+ }
+ enum ipv6_local_iface {
+ value 8;
+ description "IPv6 prefix with local interface id";
+ }
+ enum ipv4_algo {
+ value 9;
+ description "IPv4 prefix with optional algorithm";
+ }
+ enum ipv6_algo {
+ value 10;
+ description "IPv6 prefix with optional algorithm";
}
}
- leaf local-address {
- type inet:ip-address;
- mandatory true;
- }
- leaf local-interface {
- type uint32;
- mandatory true;
- when "../type = 'ipv4_unnumbered_adjacency'";
- }
- leaf remote-address {
- type inet:ip-address;
+ }
+ leaf local-address {
+ type inet:ip-address;
+ mandatory true;
+ }
+ leaf local-prefix-len {
+ type uint8;
+ mandatory true;
+ when "../type = 'ipv4_local_iface' or ../type = 'ipv6_local_iface' or ../type = 'ipv4_algo' or ../type = 'ipv6_algo'";
+ }
+ leaf local-interface {
+ type uint32;
+ mandatory true;
+ when "../type = 'ipv4_local_iface' or ../type = 'ipv6_local_iface' or ../type = 'ipv4_unnumbered_adjacency'";
+ }
+ leaf remote-address {
+ type inet:ip-address;
mandatory true;
when "../type = 'ipv4_adjacency' or ../type = 'ipv6_adjacency' or ../type = 'ipv4_unnumbered_adjacency'";
}
@@ -137,6 +157,11 @@ module frr-pathd {
mandatory true;
when "../type = 'ipv4_unnumbered_adjacency'";
}
+ leaf algorithm {
+ type uint8;
+ mandatory true;
+ when "../type = 'ipv4_algo' or ../type = 'ipv6_algo'";
+ }
}
}
}