diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-sr@2023-07-09.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-sr@2023-11-19.yang similarity index 79% rename from experimental/ietf-extracted-YANG-modules/ietf-isis-sr@2023-07-09.yang rename to experimental/ietf-extracted-YANG-modules/ietf-isis-sr@2023-11-19.yang index 464eaee5d..776ab02bf 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-isis-sr@2023-07-09.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-sr@2023-11-19.yang @@ -1,7 +1,7 @@ module ietf-isis-sr { yang-version 1.1; - namespace "urn:ietf:params:xml:ns:" - + "yang:ietf-isis-sr"; + namespace "urn:ietf:params:xml:ns:yang:ietf-isis-sr"; + prefix isis-sr; import ietf-routing { @@ -41,28 +41,35 @@ module ietf-isis-sr { "RFC 8294 - Common YANG Data Types for the Routing Area"; } + import ietf-routing-types { + prefix rt-types; + reference + "RFC 8294 - Common YANG Data Types for the Routing Area"; + } + organization - "IETF LSR - LSR Working Group"; + "IETF LSR - Link State Routing Working Group"; contact - "WG List: + "WG Web: + WG List: Author: Stephane Litkowski - - Author: Acee Lindem - + Author: Yingzhen Qu - + + Author: Acee Lindem + Author: Pushpasis Sarkar - + Author: Ing-Wher Chen - + Author: Jeff Tantsura - + "; description - "The YANG module defines a generic configuration model for - Segment routing ISIS extensions common across all of the vendor - implementations. + "The YANG module defines the generic configuration and + operational state for Segment Routing ISIS extensions, which is + common across all of the vendor implementations. This YANG model conforms to the Network Management Datastore Architecture (NMDA) as described in RFC 8342. @@ -92,11 +99,11 @@ module ietf-isis-sr { reference "RFC XXXX"; - revision 2023-07-09 { + revision 2023-11-19 { description "Initial revision."; reference - "RFC XXXX"; + "RFC XXXX: A YANG Data Model for IS-IS Segment Routing"; } /* Identities */ @@ -113,7 +120,6 @@ module ietf-isis-sr { processing SR MPLS encapsulated IPv4 packets on all interfaces."; } - identity mpls-ipv6 { base sr-capability; description @@ -162,7 +168,6 @@ module ietf-isis-sr { description "Local Flag."; } - identity adj-sid-bit { description "Base identity for adj sid sub-tlv bits."; @@ -197,6 +202,7 @@ module ietf-isis-sr { description "Group flag."; } + identity pe-bit { base adj-sid-bit; description @@ -244,11 +250,14 @@ module ietf-isis-sr { feature remote-lfa-sr { description "Enhance rLFA to use SR path."; + reference + "RFC 8102: Remote-LFA Node Protection and Manageability"; } + feature ti-lfa { description - "Enhance IPFRR with ti-lfa - support"; + "Topology-Independent Loop-Free Alternate (TI-LFA) + computation using segment routing."; } /* Groupings */ @@ -310,7 +319,9 @@ module ietf-isis-sr { description "All SR algorithms."; leaf-list sr-algorithm { - type uint8; + type identityref { + base sr-cmn:prefix-sid-algorithm; + } description "The Segment Routing (SR) algorithms that the router is currently using."; @@ -328,7 +339,7 @@ module ietf-isis-sr { description "Segment Routing Local Block."; leaf range-size { - type uint32; + type rt-types:uint24; description "The SID range."; } @@ -413,7 +424,9 @@ module ietf-isis-sr { segment ID."; } leaf algorithm { - type uint8; + type identityref { + base sr-cmn:prefix-sid-algorithm; + } description "Algorithm to be used for path computation."; } @@ -505,7 +518,7 @@ module ietf-isis-sr { "Defines binding TLV for database."; } - /* Cfg */ + /* Configuration */ augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol" @@ -542,13 +555,101 @@ module ietf-isis-sr { augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol" + "/isis:isis/isis:interfaces/isis:interface" - + "/isis:fast-reroute" { - when "derived-from-or-self(../../../../rt:type, 'isis:isis')" { + + "/isis:fast-reroute/isis:lfa" { + when "derived-from-or-self(../../../../../rt:type," + + "'isis:isis')" { + description + "This augment ISIS routing protocol when used"; + } + description + "This augments ISIS interface IP FRR with TILFA."; + container ti-lfa { + if-feature "ti-lfa"; + leaf enable { + type boolean; + default false; + description + "Enables TI-LFA computation."; + } + container selection-tie-breakers { + container node-protection { + presence "Presence of container enables the node + protection tie-breaker"; + leaf priority { + type uint8; + default 128; + description + "Priority for node protection tie-breaker with + a lower priority being more preferred."; + } + description + "Enable node protection as a TI-LFA path + selection tie-breaker. A path providing node + protection will be selected over one that + doesn't provide node protection."; + } + container srlg-disjoint { + presence "Presence of container enables the SRLG + disjoint tie-breaker"; + leaf priority { + type uint8; + default 128; + description + "Priority for SRLG disjoint tie-breaker with + a lower priority being more preferred."; + } + description + "Enable SRLG (Shared Resource Link Group) + disjoint as a TI-LFA path selection tie-breaker. + A path providing node a disjoint path for SRLG + links from the primary path will be selected over + one that doesn't provide an SRLG disjoint path."; + } + description + "Configure path selection tie-breakers and their + respective priorities for the TI-LFA computation."; + } + description + "Topology Independent Loop Free Alternate + (TI-LFA) support."; + } + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:interfaces/isis:interface" + + "/isis:fast-reroute/isis:lfa/isis:level-1" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { + description + "This augment ISIS routing protocol when used"; + } + description + "This augments ISIS interface level-1 IP FRR with TILFA."; + container ti-lfa { + if-feature "ti-lfa"; + leaf enable { + type boolean; + default false; + description + "Enables TI-LFA computation."; + } + description + "TI-LFA configuration."; + } + } + + augment "/rt:routing/" + + "rt:control-plane-protocols/rt:control-plane-protocol" + + "/isis:isis/isis:interfaces/isis:interface" + + "/isis:fast-reroute/isis:lfa/isis:level-2" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { description "This augment ISIS routing protocol when used"; } description - "This augments ISIS IP FRR with TILFA."; + "This augments ISIS IP interface level-2 FRR with TILFA."; container ti-lfa { if-feature "ti-lfa"; leaf enable { diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2022-10-11.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2023-11-20.yang similarity index 95% rename from experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2022-10-11.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2023-11-20.yang index 71e9eec7d..2acc2d27a 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2022-10-11.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospf-admin-tags@2023-11-20.yang @@ -11,7 +11,7 @@ module ietf-ospf-admin-tags { import ietf-ospf { prefix ospf; - reference "RFC xxxx: YANG Data Model for OSPF Protocol."; + reference "RFC 9129: YANG Data Model for OSPF Protocol."; } import ietf-inet-types { @@ -34,7 +34,7 @@ module ietf-ospf-admin-tags { Author: Yingzhen Qu Author: Acee Lindem - + Author: Peter Psenak "; @@ -66,7 +66,7 @@ module ietf-ospf-admin-tags { reference "RFC XXXX"; - revision 2022-10-11 { + revision 2023-11-20 { description "Initial revision."; reference @@ -76,7 +76,8 @@ module ietf-ospf-admin-tags { grouping prefix-admin-tag-sub-tlvs { description "Prefix Administrative Tag sub-TLVs."; - container perfix-admin-tag-sub-tlvs{ + container perfix-admin-tag-sub-tlvs { + config false; description "Prefix admin tag sub-TLV."; list admin-tag-sub-tlv { description "Prefix admin tag sub-TLV."; @@ -128,7 +129,6 @@ module ietf-ospf-admin-tags { "This augments the OSPF protocol interface configuration with Administrative Tags. The configured tags will be advertised with local prefixes configured for the interface."; - container admin-tags { list tags { key "tag"; @@ -279,14 +279,14 @@ module ietf-ospf-admin-tags { augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol/" - + "ospf:ospf/ospf:database/" - + "ospf:as-scope-lsa-type/ospf:as-scope-lsas/" - + "ospf:as-scope-lsa/ospf:version/ospf:ospfv3/" + + "ospf:ospf/ospf:areas/ospf:area/ospf:database/" + + "ospf:area-scope-lsa-type/ospf:area-scope-lsas/" + + "ospf:area-scope-lsa/ospf:version/ospf:ospfv3/" + "ospf:ospfv3/ospf:body/ospfv3-e-lsa:e-nssa/" + "ospfv3-e-lsa:e-external-tlvs/" + "ospfv3-e-lsa:external-prefix-tlv" { - when "derived-from-or-self(../../../../../../../../" - + "../../rt:type, 'ospf:ospfv3')" { + when "/rt:routing/rt:control-plane-protocols" + + "/rt:control-plane-protocol/rt:type = 'ospf:ospfv3'" { description "This augmentation is only valid for OSPFv3."; } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-ospf-sr@2023-07-09.yang b/experimental/ietf-extracted-YANG-modules/ietf-ospf-sr@2023-11-19.yang similarity index 97% rename from experimental/ietf-extracted-YANG-modules/ietf-ospf-sr@2023-07-09.yang rename to experimental/ietf-extracted-YANG-modules/ietf-ospf-sr@2023-11-19.yang index 51d1c7480..61355f035 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-ospf-sr@2023-07-09.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-ospf-sr@2023-11-19.yang @@ -5,41 +5,46 @@ module ietf-ospf-sr { prefix ospf-sr; import ietf-inet-types { - prefix "inet"; - reference "RFC 6991 - Common YANG Data Types"; + prefix inet; + reference + "RFC 6991 - Common YANG Data Types"; } import ietf-yang-types { - prefix "yang"; - reference "RFC 6991 - Common YANG Data Types"; + prefix yang; + reference + "RFC 6991 - Common YANG Data Types"; } import ietf-routing-types { - prefix "rt-types"; - reference "RFC 8249 - Common YANG Data Types for the Routing Area"; + prefix rt-types; + reference + "RFC 8294 - Common YANG Data Types for the Routing Area"; } import ietf-routing { - prefix "rt"; - reference "RFC 8349 - A YANG Data Model for Routing - Management (NMDA Version)"; + prefix rt; + reference + "RFC 8349 - A YANG Data Model for Routing + Management (NMDA Version)"; } import ietf-segment-routing-common { - prefix "sr-cmn"; - reference "RFC 9020 - YANG Data Model for Segment - Routing"; + prefix sr-cmn; + reference + "RFC 9020 - YANG Data Model for Segment Routing"; } + import ietf-segment-routing-mpls { - prefix "sr-mpls"; - reference "RFC 9020 - YANG Data Model for Segment - Routing"; + prefix sr-mpls; + reference + "RFC 9020 - YANG Data Model for Segment Routing"; } import ietf-ospf { - prefix "ospf"; - reference "RFC 9129 - YANG Data Model for the OSPF - Protocol"; + prefix ospf; + reference + "RFC 9129 - YANG Data Model for the OSPF Protocol"; } import ietf-ospfv3-extended-lsa { @@ -54,7 +59,7 @@ module ietf-ospf-sr { WG List: Author: Yingzhen Qu - + Author: Acee Lindem Author: Derek Yeung @@ -100,7 +105,7 @@ module ietf-ospf-sr { reference "RFC XXXX"; - revision 2023-07-09 { + revision 2023-11-19 { description "Initial revision."; reference @@ -269,6 +274,7 @@ module ietf-ospf-sr { } } } + grouping ospfv2-extended-prefix-range-tlvs { description "Extended prefix range TLV grouping."; reference @@ -401,7 +407,9 @@ module ietf-ospf-sr { description "Segment Identifier (SID) Flags."; } leaf algorithm { - type uint8; + type identityref { + base sr-cmn:prefix-sid-algorithm; + } description "The algorithm associated with the prefix-SID."; } @@ -836,7 +844,6 @@ module ietf-ospf-sr { description "This augmentation is only valid for OSPFv2."; } - description "SR specific TLVs for OSPFv2 type 9 opaque LSA."; @@ -845,6 +852,7 @@ module ietf-ospf-sr { uses local-block-tlvs; uses srms-preference-tlv; } + augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol/" + "ospf:ospf/ospf:areas/"