diff --git a/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2023-03-07.yang b/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2023-09-07.yang similarity index 73% rename from experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2023-03-07.yang rename to experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2023-09-07.yang index 09e3b2834..5f125d995 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2023-03-07.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-isis-srv6@2023-09-07.yang @@ -80,7 +80,7 @@ module ietf-isis-srv6 { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-03-07 { + revision 2023-09-07 { description "Initial revision."; reference @@ -90,43 +90,43 @@ module ietf-isis-srv6 { /* Identities */ identity SRV6_END_FUNC_TYPE { description - "Base identity type for srv6 endpoint function code points."; + "Base identity type for srv6 endpoint function code points."; } identity SRV6_END_FUNC_PSP_USP_USD { base "SRV6_END_FUNC_TYPE"; description - "End (May support PSP, USP, USD)."; + "End (May support PSP, USP, USD)."; } identity SRV6_END_X_FUNC_PSP_USP_USD { base "SRV6_END_FUNC_TYPE"; description - "End.X(May support PSP, USP, USD)"; + "End.X(May support PSP, USP, USD)"; } identity SRV6_END_T_FUNC_PSP_USP_USD { base "SRV6_END_FUNC_TYPE"; description - "END (May support PSP, USP, USD)"; + "END (May support PSP, USP, USD)"; } identity SRV6_END_FUNC_DX6 { base "SRV6_END_FUNC_TYPE"; description - "End.DX6."; + "End.DX6."; } identity SRV6_END_FUNC_DX4 { base "SRV6_END_FUNC_TYPE"; description - "End.DX4."; + "End.DX4."; } identity SRV6_END_FUNC_DT6 { base "SRV6_END_FUNC_TYPE"; description - "End.DT6."; + "End.DT6."; } identity SRV6_END_FUNC_DT4 { @@ -138,19 +138,81 @@ module ietf-isis-srv6 { identity SRV6_END_FUNC_DT64 { base "SRV6_END_FUNC_TYPE"; description - "End.DT64."; + "End.DT64."; } identity SRV6_END_FUNC_OP { base "SRV6_END_FUNC_TYPE"; description - "END.OP ."; + "END.OP ."; } identity SRV6_END_FUNC_OTP { base "SRV6_END_FUNC_TYPE"; description - "END.OTP ."; + "END.OTP ."; + } + + identity srv6-capability-bit { + description + "Base identity for SRv6 capability sub-TLV bits."; + reference + "RFC 9352: IS-IS Extensions to Support Segment Routing over + the IPv6 Data Plane"; + } + + identity o-bit { + base srv6-capability-bit; + description + "O-flag."; + reference + "RFC 9259: Operations, Administration, and Maintenance (OAM) + in Segment Routing over IPv6 (SRv6)"; + } + + identity srv6-end-sid-bit { + description + "Base identity for SRv6 End SID sub-TLV bits."; + } + + identity srv6-locator-bit { + description + "Base identity for SRv6 locator TLV bits."; + } + + identity d-bit { + base srv6-locator-bit; + description + "D-flag. up/down bit as described in RFC 5305."; + } + + identity srv6-endx-sid-bit { + description + "Base identity for SRv6 End.X SID sub-TLV bits."; + } + + identity b-bit { + base srv6-endx-sid-bit; + description + "B-flag. Backup flag. If set, the End.X sid is + eligible for protection."; + } + + identity s-bit { + base srv6-endx-sid-bit; + description + "S-flag. Set flag. When set, the End.X sid refers to + a set of adjacencies (and therefore May be assigned + to other adjacencies as well."; + } + + identity p-bit { + base srv6-endx-sid-bit; + description + "P-flag. Persistent flag. When set, the End.X sid is + persistently allocated, i.e., the End.x sid value + remains consistent across router restart and/or + interface flap."; } /* typedef */ @@ -163,58 +225,17 @@ module ietf-isis-srv6 { /* Features */ feature srv6-ti-lfa { description - "Enhance SRv6 FRR with ti-lfa - support"; + "Enhance SRv6 FRR with ti-lfa support"; } /* Groupings */ - grouping srv6-msds { - description - "means to advertise to advertise node/link specific - values for Maxium Sid Depths(MSD) of various types"; - container srv6-msd { - description - "Maximum SRv6 SID Depths."; - leaf max-segments-left { - type uint8; - description - "The Maximum Segments Left MSD Type specifies - the maximum value of the 'SL' field in the SRH - of a received packet before applying the - Endpoint behavior associated with a SID."; - } - leaf max-end-pop { - type uint8; - description - "The Maximum End Pop MSD Type specifies the maximum - number of SIDs in the SRH to which the router can - apply 'PSP' or 'USP' behavior, as defined in flavors."; - } - leaf max-h-encaps { - type uint8; - description - "The Maximum H.Encaps MSD Type specifies the maximum number - of SIDs that can be included as part of the 'H.Encaps' - behavior"; - } - leaf max-end-d { - type uint8; - description - "The maximum number of SIDs in an SRH when performing - decapsulation associated with 'End.Dx' functions - (e.g., 'End.DX6' and 'End.DT6')."; - } - } - } - grouping srv6-sid-structures { description "This group defines SRv6 SID Structure sub-sub-TLV."; container srv6-sid-structure { description "SRv6 SID Structure sub-sub-TLV is used to advertise - the length of each individual part of the SRv6 SID - as defined in [I-D.ietf-spring-srv6-network-programming]"; + the structure of the SRv6 SID as defined in RFC 8986."; leaf lb-length { type uint8; description @@ -246,18 +267,12 @@ module ietf-isis-srv6 { container v6-capability { description "SRv6 capability."; - leaf flags { - type bits { - bit o-flag { - position 1; - description - "If set, then the router is able to - use of the O-bit in the Segment Routing Header(SRH) - as defined in [draft-ietf-6man-segment-routing-header]."; - } + leaf-list flags { + type identityref { + base srv6-capability-bit; } description - "Flags."; + "SRv6 Capability sub-TLV flag bits list."; } } } @@ -268,10 +283,13 @@ module ietf-isis-srv6 { container endpoint-func { description "Srv6 Endpoint function Descriptor."; - leaf flags { - type uint8; + leaf-list flags { + type identityref { + base srv6-end-sid-bit; + } description - "No flags are currently being defined."; + "SRv6 End SID sub-TLV flag bits list. No flags + are currently being defined."; } leaf endpoint-func { type identityref { @@ -291,10 +309,12 @@ module ietf-isis-srv6 { grouping srv6-end-sid { description "SRv6 Segment Identifier(SID) with Endpoint functions."; - leaf flags { - type uint8; + leaf-list flags { + type identityref { + base srv6-end-sid-bit; + } description - "NO flags are currently being defined."; + "SRv6 end sid flags."; } uses srv6-endpoint-func; @@ -315,19 +335,14 @@ module ietf-isis-srv6 { range "0..4095"; } description - "Multitopology Identifier as defined in [RFC5120]."; + "Multitopology Identifier as defined in RFC5120."; } - leaf flags { - type bits { - bit d-flag { - position 0; - description - "When the locator is leaked from level-2 to level-1, - the d-flag must be set."; - } + leaf-list flags { + type identityref { + base srv6-locator-bit; } description - "Flags for srv6 locator tlv."; + "Flags for SRv6 locator TLV."; } leaf metric { @@ -371,33 +386,12 @@ module ietf-isis-srv6 { description "SRv6 sid associated with an adjacency."; - leaf func-flags { - type bits { - bit b-flag { - position 0; - description - "Backup flag. If set, the End.X sid is - eligible for protection."; - } - - bit s-flag { - position 1; - description - "Set flag. When set, the End.X sid refers to - a set of adjacencies (and therefore May be assigned - to other adjacencies as well."; - } - - bit p-flag { - position 2; - description - "Persistent flag. When set, the End.X sid is persistently - allocated, i.e., the End.x sid value remains consistent - across router restart and/or interface flap."; - } + leaf-list func-flags { + type identityref { + base srv6-endx-sid-bit; } description - "Flags for srv6 end x sid."; + "Flags for SRv6 end x SID."; } leaf algorithm { @@ -409,8 +403,8 @@ module ietf-isis-srv6 { leaf weight { type uint8; description - "The value represents the weight of the End.X sid - for the purpose of load balancing."; + "The value represents the weight of the End.X sid + for the purpose of load balancing."; } uses srv6-endpoint-func; @@ -441,19 +435,18 @@ module ietf-isis-srv6 { leaf value { type srv6-sid-value; description - "Value of the Adj-SID."; + "Value of the Adj-SID."; } leaf weight { type uint8; description - "Weight associated with - the End.X SID."; + "Weight associated with the End.X SID."; } leaf protection-requested { type boolean; description - "Set to True if the End.X SID - must be protected."; + "Set to True if the End.X SID + must be protected."; } leaf persistent { type boolean; @@ -465,20 +458,19 @@ module ietf-isis-srv6 { leaf algorithm { type uint8; description - "Associated algorithm."; + "Associated algorithm."; } uses srv6-endpoint-func; description - "List of End.X Segment IDs."; + "List of End.X Segment IDs."; } } /* Cfg */ augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol"+ "/isis:isis" { - when "/rt:routing/rt:control-plane-protocols/"+ - "rt:control-plane-protocol/rt:type = 'isis:isis'" { + when "derived-from-or-self(../rt:type, 'isis:isis')" { description "This augment ISIS routing protocol when used"; } @@ -491,8 +483,7 @@ module ietf-isis-srv6 { type boolean; default "false"; description - "Enables SRv6 - protocol extensions."; + "Enables SRv6 protocol extensions."; } leaf default-locator { @@ -531,7 +522,6 @@ module ietf-isis-srv6 { description "Enable SRv6 avoid-microloop.Depend on SR IPv6 Enable."; } - leaf srv6-rib-update-delay { type uint16 { range "1000..10000"; @@ -551,8 +541,7 @@ module ietf-isis-srv6 { augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol"+ "/isis:isis/isis:fast-reroute"{ - when "/rt:routing/rt:control-plane-protocols/"+ - "rt:control-plane-protocol/rt:type = 'isis:isis'"{ + when "derived-from-or-self(../../rt:type, 'isis:isis')" { description "This augment ISIS routing protocol when used"; } @@ -577,25 +566,24 @@ module ietf-isis-srv6 { "rt:control-plane-protocols/rt:control-plane-protocol"+ "/isis:isis/isis:database/isis:levels/isis:lsp"+ "/isis:router-capabilities" { - when "/rt:routing/rt:control-plane-protocols/"+ - "rt:control-plane-protocol/rt:type = 'isis:isis'" { + when "derived-from-or-self(../../../../../rt:type, 'isis:isis')" { description "This augment ISIS routing protocol when used"; } description - "This augments ISIS protocol router capability."; + "This augments ISIS protocol router capability."; uses srv6-capability; - uses srv6-msds; + uses srv6:srv6-msd-signaled; } augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol"+ "/isis:isis/isis:database/isis:levels/isis:lsp"+ "/isis:extended-is-neighbor/isis:neighbor" { - when "/rt:routing/rt:control-plane-protocols/"+ - "rt:control-plane-protocol/rt:type = 'isis:isis'" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { description - "This augment ISIS routing protocol when used."; + "This augment ISIS routing protocol when used."; } description "This augments ISIS protocol neighbor."; @@ -606,7 +594,7 @@ module ietf-isis-srv6 { key "sid"; uses srv6-adjacency-sid; description - "List of end-x sids."; + "List of end-x sids."; } } } @@ -614,8 +602,8 @@ module ietf-isis-srv6 { "rt:control-plane-protocols/rt:control-plane-protocol"+ "/isis:isis/isis:database/isis:levels/isis:lsp"+ "/isis:mt-is-neighbor/isis:neighbor" { - when "/rt:routing/rt:control-plane-protocols/"+ - "rt:control-plane-protocol/rt:type = 'isis:isis'" { + when "derived-from-or-self(../../../../../../rt:type," + + "'isis:isis')" { description "This augment ISIS routing protocol when used."; } @@ -627,8 +615,8 @@ module ietf-isis-srv6 { list end-x-sid { key "sid"; uses srv6-adjacency-sid; - description - "List of end-x sids."; + description + "List of end-x sids."; } } } @@ -636,8 +624,7 @@ module ietf-isis-srv6 { augment "/rt:routing/" + "rt:control-plane-protocols/rt:control-plane-protocol"+ "/isis:isis/isis:database/isis:levels/isis:lsp" { - when "/rt:routing/rt:control-plane-protocols/"+ - "rt:control-plane-protocol/rt:type = 'isis:isis'" { + when "derived-from-or-self(../../../../rt:type, 'isis:isis')" { description "This augment ISIS routing protocol when used."; } @@ -659,8 +646,8 @@ module ietf-isis-srv6 { "rt:control-plane-protocols/rt:control-plane-protocol"+ "/isis:isis/isis:interfaces/isis:interface" + "/isis:adjacencies/isis:adjacency" { - when "/rt:routing/rt:control-plane-protocols/"+ - "rt:control-plane-protocol/rt:type = 'isis:isis'" { + when "derived-from-or-self(../../../../../rt:type," + + "'isis:isis')" { description "This augment ISIS routing protocol when used."; } @@ -669,5 +656,6 @@ module ietf-isis-srv6 { with segment routing."; uses srv6-adjacency-state; } + /* Notifications */ } diff --git a/experimental/ietf-extracted-YANG-modules/ietf-vrrp@2023-03-08.yang b/experimental/ietf-extracted-YANG-modules/ietf-vrrp@2023-09-05.yang similarity index 99% rename from experimental/ietf-extracted-YANG-modules/ietf-vrrp@2023-03-08.yang rename to experimental/ietf-extracted-YANG-modules/ietf-vrrp@2023-09-05.yang index dd3561ef8..93f3e9226 100644 --- a/experimental/ietf-extracted-YANG-modules/ietf-vrrp@2023-03-08.yang +++ b/experimental/ietf-extracted-YANG-modules/ietf-vrrp@2023-09-05.yang @@ -64,7 +64,7 @@ module ietf-vrrp { described in BCP 14 (RFC 2119) (RFC 8174) when, and only when, they appear in all capitals, as shown here."; - revision 2023-03-08 { + revision 2023-09-05 { description "Initial revision."; reference @@ -771,7 +771,7 @@ module ietf-vrrp { type yang:counter32; description "The total number of times that this virtual router's - state has transitioned to 'master'."; + state has transitioned to 'Active'."; } leaf advertisement-rcvd {