diff --git a/experimental/ietf-extracted-YANG-modules/ietf-rib-extension@2023-06-06.yang b/experimental/ietf-extracted-YANG-modules/ietf-rib-extension@2023-06-06.yang
deleted file mode 100644
index d79c39241..000000000
--- a/experimental/ietf-extracted-YANG-modules/ietf-rib-extension@2023-06-06.yang
+++ /dev/null
@@ -1,336 +0,0 @@
-module ietf-rib-extension {
- yang-version "1.1";
- namespace "urn:ietf:params:xml:ns:yang:ietf-rib-extension";
-
- prefix rib-ext;
-
- import ietf-inet-types {
- prefix "inet";
- reference "RFC 6991: Common YANG Data Types";
- }
-
- import ietf-interfaces {
- prefix "if";
- reference "RFC 8343: A YANG Data Model for Interface
- Management (NMDA Version)";
- }
-
- import ietf-routing {
- prefix "rt";
- reference "RFC 8349: A YANG Data Model for Routing
- Management (NMDA Version)";
- }
-
- import ietf-ipv4-unicast-routing {
- prefix "v4ur";
- reference "RFC 8349: A YANG Data Model for Routing
- Management (NMDA Version)";
- }
-
- import ietf-ipv6-unicast-routing {
- prefix "v6ur";
- reference "RFC 8349: A YANG Data Model for Routing
- Management (NMDA Version)";
- }
-
- organization
- "IETF RTGWG - Routing Working Group";
-
- contact
- "WG Web:
- WG List:
-
- Author: Acee Lindem
-
- Author: Yingzhen Qu
- ";
-
- description
- "This YANG module extends the RIB defined in the ietf-routing
- YANG module with additional route attributes.
-
- This YANG module conforms to the Network Management
- Datastore Architecture (NDMA) as described in RFC 8342.
-
- Copyright (c) 2023 IETF Trust and the persons identified as
- authors of the code. All rights reserved.
-
- Redistribution and use in source and binary forms, with or
- without modification, is permitted pursuant to, and subject to
- the license terms contained in, the Revised BSD License set
- forth in Section 4.c of the IETF Trust's Legal Provisions
- Relating to IETF Documents
- (https://trustee.ietf.org/license-info).
-
- This version of this YANG module is part of RFC XXXX;
- see the RFC itself for full legal notices.";
-
- revision 2023-06-06 {
- description
- "Initial Version";
- reference
- "RFC XXXX: A YANG Data Model for RIB Extensions.";
- }
-
- /* Groupings */
- grouping rib-statistics {
- description
- "Statistics grouping used for RIB augmentation.";
- container statistics {
- config false;
- description
- "Container for RIB statistics.";
- leaf total-routes {
- type uint32;
- description
- "Total number of routes in the RIB";
- }
- leaf total-active-routes {
- type uint32;
- description
- "Total number of active routes in the RIB. An active
- route is the route that is preferred over other routes
- to the same destination prefix.";
- }
- leaf total-route-memory {
- type uint64;
- units "bytes";
- description
- "Total memory for all routes in the RIB.";
- }
- list protocol-statistics {
- description
- "RIB statistics for routing protocols installing
- routes in the RIB.";
- leaf protocol {
- type identityref {
- base rt:routing-protocol;
- }
- description
- "Routing protocol installing routes in the RIB.";
- }
- leaf routes {
- type uint32;
- description
- "Total number of routes in the RIB for the routing
- protocol identified by the 'protocol'.";
- }
- leaf active-routes {
- type uint32;
- description
- "Total number of active routes in the RIB for the routing
- protocol for the routing protocol identified by the
- 'protocol'. An active route is preferred over other
- routes to the same destination prefix.";
- }
- leaf route-memory {
- type uint64;
- units "bytes";
- description
- "Total memory for all routes in the RIB for the routing
- protocol identified by the 'protocol'.";
- }
- }
- }
- }
-
- grouping attributes {
- description
- "Common attributes applicable to all routes.";
- leaf metric {
- type uint32;
- description
- "The metric is a numeric value indicating the cost
- of the route from the perspective of the routing
- protocol installing the route. In general, routes with
- a lower metric installed by the same routing protocol
- are lower cost to reach and are preferable to routes
- with a higher metric. However, metrics from different
- routing protocols are not comparable.";
- }
- leaf-list tag {
- type uint32;
- description
- "A tag is a 32-bit opaque value associated with the
- route that can be used for policy decisions such as
- advertisement and filtering of the route.";
- }
- leaf application-tag {
- type uint32;
- description
- "The application-specific tag is an additional tag that
- can be used by applications that require semantics and/or
- policy different from that of the tag. For example,
- the tag is usually automatically advertised in OSPF
- AS-External Link State Advertisements (LSAs) while this
- application-specific tag is not advertised implicitly.";
- }
- }
- grouping repair-path {
- description
- "Grouping for IP Fast Reroute repair path.";
- container repair-path {
- description
- "IP Fast Reroute next-hop repair path.";
- leaf outgoing-interface {
- type if:interface-state-ref;
- description
- "Name of the outgoing interface.";
- }
- leaf next-hop-address {
- type inet:ip-address-no-zone;
- description
- "IP address of the next hop.";
- }
- leaf metric {
- type uint32;
- description
- "The metric for the repair path. While the IP Fast
- Reroute re-route repair is local and the metric is
- not advertised externally, the metric for repair path
- is useful for troubleshooting purposes.";
- }
- reference
- "RFC 5714: IP Fast Reroute Framework.";
- }
- }
-
- augment "/rt:routing/rt:control-plane-protocols/"
- + "rt:control-plane-protocol/rt:static-routes/v4ur:ipv4/"
- + "v4ur:route/v4ur:next-hop/v4ur:next-hop-options/"
- + "v4ur:simple-next-hop"
- {
- description
- "Augment 'simple-next-hop' case in IPv4 unicast route.";
- leaf preference {
- type uint32;
- default "1";
- description
- "The preference is used to select among multiple static
- routes. Routes with a lower preference next-hop are
- preferred and equal preference routes result in
- Equal-Cost-Multi-Path (ECMP) static routes.";
- }
- leaf tag {
- type uint32;
- default "0";
- description
- "The tag is a 32-bit opaque value associated with the
- route that can be used for policy decisions such as
- advertisement and filtering of the route.";
- }
- }
-
- augment "/rt:routing/rt:control-plane-protocols/"
- + "rt:control-plane-protocol/rt:static-routes/v4ur:ipv4/"
- + "v4ur:route/v4ur:next-hop/v4ur:next-hop-options/"
- + "v4ur:next-hop-list/v4ur:next-hop-list/v4ur:next-hop"
- {
- description
- "Augment static route configuration 'next-hop-list'.";
-
- leaf preference {
- type uint32;
- default "1";
- description
- "The preference is used to select among multiple static
- routes. Routes with a lower preference next-hop are
- preferred and equal preference routes result in
- Equal-Cost-Multi-Path (ECMP) static routes.";
- }
- leaf tag {
- type uint32;
- default "0";
- description
- "The tag is a 32-bit opaque value associated with the
- route that can be used for policy decisions such as
- advertisement and filtering of the route.";
- }
- }
-
- augment "/rt:routing/rt:control-plane-protocols/"
- + "rt:control-plane-protocol/rt:static-routes/v6ur:ipv6/"
- + "v6ur:route/v6ur:next-hop/v6ur:next-hop-options/"
- + "v6ur:simple-next-hop"
- {
- description
- "Augment 'simple-next-hop' case in IPv6 unicast route.";
- leaf preference {
- type uint32;
- default "1";
- description
- "The preference is used to select among multiple static
- routes. Routes with a lower preference next-hop are
- preferred and equal preference routes result in
- Equal-Cost-Multi-Path (ECMP) static routes.";
- }
- leaf tag {
- type uint32;
- default "0";
- description
- "The tag is a 32-bit opaque value associated with the
- route that can be used for policy decisions such as
- advertisement and filtering of the route.";
- }
- }
-
- augment "/rt:routing/rt:control-plane-protocols/"
- + "rt:control-plane-protocol/rt:static-routes/v6ur:ipv6/"
- + "v6ur:route/v6ur:next-hop/v6ur:next-hop-options/"
- + "v6ur:next-hop-list/v6ur:next-hop-list/v6ur:next-hop"
- {
- description
- "Augment static route configuration 'next-hop-list'.";
-
- leaf preference {
- type uint32;
- default "1";
- description
- "The preference is used to select among multiple static
- routes. Routes with a lower preference next-hop are
- preferred and equal preference routes result in
- Equal-Cost-Multi-Path (ECMP) static routes.";
- }
- leaf tag {
- type uint32;
- default "0";
- description
- "The tag is a 32-bit opaque value associated with the
- route that can be used for policy decisions such as
- advertisement and filtering of the route.";
- }
- }
-
- augment "/rt:routing/rt:ribs/rt:rib"
- {
- description
- "Augment a RIB with statistics.";
- uses rib-statistics;
- }
-
- augment "/rt:routing/rt:ribs/rt:rib/"
- + "rt:routes/rt:route"
- {
- description
- "Augment a route in RIB with attributes.";
- uses attributes;
- }
-
- augment "/rt:routing/rt:ribs/rt:rib/"
- + "rt:routes/rt:route/rt:next-hop/rt:next-hop-options/"
- + "rt:simple-next-hop"
- {
- description
- "Augment simple-next-hop with repair-path.";
- uses repair-path;
- }
-
- augment "/rt:routing/rt:ribs/rt:rib/"
- + "rt:routes/rt:route/rt:next-hop/rt:next-hop-options/"
- + "rt:next-hop-list/rt:next-hop-list/rt:next-hop"
- {
- description
- "Augment the next-hop with a repair path.";
- uses repair-path;
- }
-}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-rib-extension@2023-10-13.yang b/experimental/ietf-extracted-YANG-modules/ietf-rib-extension@2023-10-13.yang
new file mode 100644
index 000000000..a65ddd1da
--- /dev/null
+++ b/experimental/ietf-extracted-YANG-modules/ietf-rib-extension@2023-10-13.yang
@@ -0,0 +1,364 @@
+module ietf-rib-extension {
+ yang-version "1.1";
+ namespace "urn:ietf:params:xml:ns:yang:ietf-rib-extension";
+
+ prefix rib-ext;
+
+ import ietf-inet-types {
+ prefix "inet";
+ reference "RFC 6991: Common YANG Data Types";
+ }
+
+ import ietf-interfaces {
+ prefix "if";
+ reference "RFC 8343: A YANG Data Model for Interface
+ Management (NMDA Version)";
+ }
+
+ import ietf-routing {
+ prefix "rt";
+ reference "RFC 8349: A YANG Data Model for Routing
+ Management (NMDA Version)";
+ }
+
+ import ietf-ipv4-unicast-routing {
+ prefix "v4ur";
+ reference "RFC 8349: A YANG Data Model for Routing
+ Management (NMDA Version)";
+ }
+
+ import ietf-ipv6-unicast-routing {
+ prefix "v6ur";
+ reference "RFC 8349: A YANG Data Model for Routing
+ Management (NMDA Version)";
+ }
+
+ import ietf-ospf {
+ prefix "ospf";
+ reference "RFC 9129: A YANG Data Model for the OSPF Protocol";
+ }
+
+ import ietf-isis {
+ prefix "isis";
+ reference "RFC 9130: A YANG Data Model for the IS-IS Protocol";
+ }
+
+ organization
+ "IETF RTGWG - Routing Working Group";
+
+ contact
+ "WG Web:
+ WG List:
+
+ Author: Acee Lindem
+
+ Author: Yingzhen Qu
+ ";
+
+ description
+ "This YANG module extends the RIB defined in the ietf-routing
+ YANG module with additional route attributes.
+
+ This YANG module conforms to the Network Management
+ Datastore Architecture (NDMA) as described in RFC 8342.
+
+ Copyright (c) 2023 IETF Trust and the persons identified as
+ authors of the code. All rights reserved.
+
+ Redistribution and use in source and binary forms, with or
+ without modification, is permitted pursuant to, and subject to
+ the license terms contained in, the Revised BSD License set
+ forth in Section 4.c of the IETF Trust's Legal Provisions
+ Relating to IETF Documents
+ (https://trustee.ietf.org/license-info).
+
+ This version of this YANG module is part of RFC XXXX;
+ see the RFC itself for full legal notices.";
+
+ revision 2023-10-13 {
+ description
+ "Initial Version";
+ reference
+ "RFC XXXX: A YANG Data Model for RIB Extensions.";
+ }
+
+ /* Groupings */
+ grouping rib-statistics {
+ description
+ "Statistics grouping used for RIB augmentation.";
+ container statistics {
+ config false;
+ description
+ "Container for RIB statistics.";
+ leaf total-routes {
+ type uint32;
+ description
+ "Total number of routes in the RIB";
+ }
+ leaf total-active-routes {
+ type uint32;
+ description
+ "Total number of active routes in the RIB. An active
+ route is the route that is preferred over other routes
+ to the same destination prefix.";
+ }
+ leaf total-route-memory {
+ type uint64;
+ units "bytes";
+ description
+ "Total memory for all routes in the RIB.";
+ }
+ list protocol-statistics {
+ description
+ "RIB statistics for routing protocols installing
+ routes in the RIB.";
+ leaf protocol {
+ type identityref {
+ base rt:routing-protocol;
+ }
+ description
+ "Routing protocol installing routes in the RIB.";
+ }
+ leaf routes {
+ type uint32;
+ description
+ "Total number of routes in the RIB for the routing
+ protocol identified by the 'protocol'.";
+ }
+ leaf active-routes {
+ type uint32;
+ description
+ "Total number of active routes in the RIB for the routing
+ protocol for the routing protocol identified by the
+ 'protocol'. An active route is preferred over other
+ routes to the same destination prefix.";
+ }
+ leaf route-memory {
+ type uint64;
+ units "bytes";
+ description
+ "Total memory for all routes in the RIB for the routing
+ protocol identified by the 'protocol'.";
+ }
+ }
+ }
+ }
+
+ grouping repair-path {
+ description
+ "Grouping for IP Fast Reroute repair path.";
+ container repair-path {
+ description
+ "IP Fast Reroute next-hop repair path.";
+ leaf outgoing-interface {
+ type if:interface-state-ref;
+ description
+ "Name of the outgoing interface.";
+ }
+ leaf next-hop-address {
+ type inet:ip-address-no-zone;
+ description
+ "IP address of the next hop.";
+ }
+ leaf metric {
+ type uint32;
+ description
+ "The metric for the repair path. While the IP Fast
+ Reroute re-route repair is local and the metric is
+ not advertised externally, the metric for repair path
+ is useful for troubleshooting purposes.";
+ }
+ reference
+ "RFC 5714: IP Fast Reroute Framework.";
+ }
+ }
+
+ augment "/rt:routing/rt:control-plane-protocols/"
+ + "rt:control-plane-protocol/rt:static-routes/v4ur:ipv4/"
+ + "v4ur:route/v4ur:next-hop/v4ur:next-hop-options/"
+ + "v4ur:simple-next-hop"
+ {
+ description
+ "Augment 'simple-next-hop' case in IPv4 unicast route.";
+ leaf preference {
+ type uint32;
+ default "1";
+ description
+ "The preference is used to select among multiple static
+ routes. Routes with a lower preference next-hop are
+ preferred and equal preference routes result in
+ Equal-Cost-Multi-Path (ECMP) static routes.";
+ }
+ leaf tag {
+ type uint32;
+ default "0";
+ description
+ "The tag is a 32-bit opaque value associated with the
+ route that can be used for policy decisions such as
+ advertisement and filtering of the route.";
+ }
+ }
+
+ augment "/rt:routing/rt:control-plane-protocols/"
+ + "rt:control-plane-protocol/rt:static-routes/v4ur:ipv4/"
+ + "v4ur:route/v4ur:next-hop/v4ur:next-hop-options/"
+ + "v4ur:next-hop-list/v4ur:next-hop-list/v4ur:next-hop"
+ {
+ description
+ "Augment static route configuration 'next-hop-list'.";
+
+ leaf preference {
+ type uint32;
+ default "1";
+ description
+ "The preference is used to select among multiple static
+ routes. Routes with a lower preference next-hop are
+ preferred and equal preference routes result in
+ Equal-Cost-Multi-Path (ECMP) static routes.";
+ }
+ leaf tag {
+ type uint32;
+ default "0";
+ description
+ "The tag is a 32-bit opaque value associated with the
+ route that can be used for policy decisions such as
+ advertisement and filtering of the route.";
+ }
+ }
+
+ augment "/rt:routing/rt:control-plane-protocols/"
+ + "rt:control-plane-protocol/rt:static-routes/v6ur:ipv6/"
+ + "v6ur:route/v6ur:next-hop/v6ur:next-hop-options/"
+ + "v6ur:simple-next-hop"
+ {
+ description
+ "Augment 'simple-next-hop' case in IPv6 unicast route.";
+ leaf preference {
+ type uint32;
+ default "1";
+ description
+ "The preference is used to select among multiple static
+ routes. Routes with a lower preference next-hop are
+ preferred and equal preference routes result in
+ Equal-Cost-Multi-Path (ECMP) static routes.";
+ }
+ leaf tag {
+ type uint32;
+ default "0";
+ description
+ "The tag is a 32-bit opaque value associated with the
+ route that can be used for policy decisions such as
+ advertisement and filtering of the route.";
+ }
+ }
+
+ augment "/rt:routing/rt:control-plane-protocols/"
+ + "rt:control-plane-protocol/rt:static-routes/v6ur:ipv6/"
+ + "v6ur:route/v6ur:next-hop/v6ur:next-hop-options/"
+ + "v6ur:next-hop-list/v6ur:next-hop-list/v6ur:next-hop"
+ {
+ description
+ "Augment static route configuration 'next-hop-list'.";
+
+ leaf preference {
+ type uint32;
+ default "1";
+ description
+ "The preference is used to select among multiple static
+ routes. Routes with a lower preference next-hop are
+ preferred and equal preference routes result in
+ Equal-Cost-Multi-Path (ECMP) static routes.";
+ }
+ leaf tag {
+ type uint32;
+ default "0";
+ description
+ "The tag is a 32-bit opaque value associated with the
+ route that can be used for policy decisions such as
+ advertisement and filtering of the route.";
+ }
+ }
+
+ augment "/rt:routing/rt:ribs/rt:rib"
+ {
+ description
+ "Augment a RIB with statistics.";
+ uses rib-statistics;
+ }
+
+ augment "/rt:routing/rt:ribs/rt:rib/"
+ + "rt:routes/rt:route" {
+ description
+ "Augment a route in RIB with common attributes.";
+ leaf metric {
+ when "not(derived-from("
+ + "/rt:routing/rt:ribs/rt:rib/rt:routes/rt:route"
+ + "/rt:source-protocol, 'ospf:ospf')) "
+ + "and not(derived-from( "
+ + "/rt:routing/rt:ribs/rt:rib/rt:routes/rt:route"
+ + "/rt:source-protocol, 'isis:isis'))" {
+ description
+ "This augmentation is only valid for routes whose
+ source protocol is not OSPF or IS-IS since their YANG
+ models already include a 'metric' augmentation for
+ routes.";
+ }
+ type uint32;
+ description
+ "The metric is a numeric value indicating the cost
+ of the route from the perspective of the routing
+ protocol installing the route. In general, routes with
+ a lower metric installed by the same routing protocol
+ are lower cost to reach and are preferable to routes
+ with a higher metric. However, metrics from different
+ routing protocols are not comparable.";
+ }
+ leaf-list tag {
+ when "not(derived-from("
+ + "/rt:routing/rt:ribs/rt:rib/rt:routes/rt:route"
+ + "/rt:source-protocol, 'ospf:ospf')) "
+ + "and not(derived-from( "
+ + "/rt:routing/rt:ribs/rt:rib/rt:routes/rt:route"
+ + "/rt:source-protocol, 'isis:isis'))" {
+ description
+ "This augmentation is only valid for routes whose
+ source protocol is not OSPF or IS-IS since their YANG
+ models already include a 'tag' augmentation for
+ routes.";
+ }
+ type uint32;
+ description
+ "A tag is a 32-bit opaque value associated with the
+ route that can be used for policy decisions such as
+ advertisement and filtering of the route.";
+ }
+ leaf application-tag {
+ type uint32;
+ description
+ "The application-specific tag is an additional tag that
+ can be used by applications that require semantics and/or
+ policy different from that of the tag. For example,
+ the tag is usually automatically advertised in OSPF
+ AS-External Link State Advertisements (LSAs) while this
+ application-specific tag is not advertised implicitly.";
+ }
+ }
+
+ augment "/rt:routing/rt:ribs/rt:rib/"
+ + "rt:routes/rt:route/rt:next-hop/rt:next-hop-options/"
+ + "rt:simple-next-hop"
+ {
+ description
+ "Augment simple-next-hop with repair-path.";
+ uses repair-path;
+ }
+
+ augment "/rt:routing/rt:ribs/rt:rib/"
+ + "rt:routes/rt:route/rt:next-hop/rt:next-hop-options/"
+ + "rt:next-hop-list/rt:next-hop-list/rt:next-hop"
+ {
+ description
+ "Augment the next-hop with a repair path.";
+ uses repair-path;
+ }
+}
diff --git a/experimental/ietf-extracted-YANG-modules/ietf-vn@2023-09-12.yang b/experimental/ietf-extracted-YANG-modules/ietf-vn@2023-10-14.yang
similarity index 98%
rename from experimental/ietf-extracted-YANG-modules/ietf-vn@2023-09-12.yang
rename to experimental/ietf-extracted-YANG-modules/ietf-vn@2023-10-14.yang
index 3e741ca53..19224ced3 100644
--- a/experimental/ietf-extracted-YANG-modules/ietf-vn@2023-09-12.yang
+++ b/experimental/ietf-extracted-YANG-modules/ietf-vn@2023-10-14.yang
@@ -70,7 +70,7 @@ module ietf-vn {
This version of this YANG module is part of RFC XXXX; see the
RFC itself for full legal notices.";
- revision 2023-09-12 {
+ revision 2023-10-14 {
description
"initial version.";
reference
@@ -368,9 +368,6 @@ module ietf-vn {
description
"A unique VN identifier";
}
- /*An optional identifier to the TE Topology Model
- where the abstract nodes and links of the Topology
- can be found for Type 2 VN Service (VNS)*/
uses te-types:te-topology-identifier;
leaf abstract-node {
type leafref {