diff options
author | Javier Garcia <javier.garcia@voltanet.io> | 2021-04-22 16:04:42 +0200 |
---|---|---|
committer | Javier Garcia <javier.garcia@voltanet.io> | 2021-05-10 15:24:59 +0200 |
commit | f2b9485d6f5aa1508334a7e92d26d95faf0e1733 (patch) | |
tree | 18d754185d84e48675820d0c4fb658b53e78d1e6 /yang | |
parent | pathd. TED support . Client to link State - [part 1/4] (diff) | |
download | frr-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.yang | 109 |
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'"; + } } } } |