rfc9902.original.xml   rfc9902.xml 
<?xml version='1.0' encoding='utf-8'?> <?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE rfc [ <!DOCTYPE rfc [
<!ENTITY nbsp "&#160;"> <!ENTITY nbsp "&#160;">
<!ENTITY zwsp "&#8203;"> <!ENTITY zwsp "&#8203;">
<!ENTITY nbhy "&#8209;"> <!ENTITY nbhy "&#8209;">
<!ENTITY wj "&#8288;"> <!ENTITY wj "&#8288;">
]> ]>
<?rfc strict="yes" ?>
<?rfc toc="yes"?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-isis-sr-yang
<?rfc tocdepth="3"?> -31" number="9902" ipr="trust200902" category="std" consensus="true" obsoletes="
<?rfc symrefs="yes"?> " updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3"
<?rfc sortrefs="yes" ?> symRefs="true" sortRefs="true" version="3">
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" docName="draft-ietf-isis-sr-yang
-31" ipr="trust200902" category="std" consensus="true" obsoletes="" updates="" s
ubmissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true"
sortRefs="true" version="3">
<!-- xml2rfc v2v3 conversion 3.13.1 -->
<front> <front>
<title abbrev="IS-IS SR MPLS YANG">A YANG Data Model for IS-IS Segment Routi ng over the MPLS Data Plane</title> <title abbrev="IS-IS SR MPLS YANG">A YANG Data Model for IS-IS Segment Routi ng over the MPLS Data Plane</title>
<seriesInfo name="Internet-Draft" value="draft-ietf-isis-sr-yang-31"/> <seriesInfo name="RFC" value="9902"/>
<author fullname="Stephane Litkowski" initials="S" surname="Litkowski"> <author fullname="Stephane Litkowski" initials="S" surname="Litkowski">
<organization>Cisco Systems</organization> <organization>Cisco Systems</organization>
<address> <address>
<email>slitkows.ietf@gmail.com</email> <email>slitkows.ietf@gmail.com</email>
</address> </address>
</author> </author>
<author fullname="Yingzhen Qu" initials="Y" surname="Qu"> <author fullname="Yingzhen Qu" initials="Y" surname="Qu">
<organization>Futurewei Technologies</organization> <organization>Futurewei Technologies</organization>
<address> <address>
<email>yingzhen.ietf@gmail.com</email> <email>yingzhen.ietf@gmail.com</email>
skipping to change at line 50 skipping to change at line 45
<address> <address>
<email>ingwherchen@mitre.org</email> <email>ingwherchen@mitre.org</email>
</address> </address>
</author> </author>
<author fullname="Jeff Tantsura" initials="J" surname="Tantsura"> <author fullname="Jeff Tantsura" initials="J" surname="Tantsura">
<organization>Nvidia</organization> <organization>Nvidia</organization>
<address> <address>
<email>jefftant.ietf@gmail.com</email> <email>jefftant.ietf@gmail.com</email>
</address> </address>
</author> </author>
<date/> <date month="November" year="2025"/>
<area/> <area>RTG</area>
<workgroup>LSR Working Group</workgroup> <workgroup>lsr</workgroup>
<!-- [rfced] Please insert any keywords (beyond those that appear in
the title) for use on https://www.rfc-editor.org/search. -->
<keyword>example</keyword>
<abstract> <abstract>
<t>This document defines a YANG data model that can be used to <t>This document defines a YANG data model that can be used to
manage IS-IS Extensions for Segment Routing over the MPLS data plane. manage IS-IS extensions for Segment Routing over the MPLS data plane.
</t> </t>
</abstract> </abstract>
</front> </front>
<middle> <middle>
<section anchor="introduction" toc="default" numbered="true"> <section anchor="introduction" toc="default" numbered="true">
<name>Overview</name> <name>Overview</name>
<t>This document defines a device YANG data model <xref target="RFC7950"/> that can be used to <t>This document defines a device YANG data model <xref target="RFC7950"/> that can be used to
manage IS-IS Extensions for Segment Routing <xref target="RFC8667" format="de fault"/> over the MPLS data plane. manage IS-IS extensions for Segment Routing <xref target="RFC8667" format="de fault"/> over the MPLS data plane.
It is an augmentation to the IS-IS YANG data model <xref target="RFC9130" for mat="default"/>.</t> It is an augmentation to the IS-IS YANG data model <xref target="RFC9130" for mat="default"/>.</t>
<t> The YANG data model in this document conforms to the Network Managemen t <t> The YANG data model in this document conforms to the Network Managemen t
Datastore Architecture (NMDA) <xref target="RFC8342" format="default"/>.</t> Datastore Architecture (NMDA) <xref target="RFC8342" format="default"/>.</
<section numbered="true" toc="default"> t>
<name>Requirements Language</name>
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL <!--[rfced] We note that BCP 14 key words are not used in this document.
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", Therefore, we have removed the keywords paragraph in Section 1.1 and in
"MAY", and "OPTIONAL" in this document are to be interpreted as the YANG module. We have also removed the references to RFCs 2119 and 8174.
described in BCP 14 <xref target="RFC2119" format="default"/> <xref targ -->
et="RFC8174" format="default"/>
when, and only when, they appear in all capitals, as shown here.</t>
</section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>Tree Diagrams</name> <name>Tree Diagrams</name>
<t>This document uses the graphical representation of data model <t>This document uses the graphical representation of a data model as
defined in <xref target="RFC8340" format="default"/>.</t> defined in <xref target="RFC8340" format="default"/>.</t>
</section> </section>
</section> </section>
<!--[rfced] This text in Section 2 reflects text in Section 1. As it is
repeating information, may we remove this text from Section 2?
Original (Section 1):
This document defines a device YANG data model [RFC7950] that can be
used to manage IS-IS Extensions for Segment Routing [RFC8667] over
the MPLS data plane. It is an augmentation to the IS-IS YANG data
model [RFC9130].
Original (Section 2):
This document defines a YANG data model for IS-IS Extensions for
Segment Routing over the MPLS data plane. It is an augmentation of
the IS-IS base model.
-->
<section anchor="design" toc="default" numbered="true"> <section anchor="design" toc="default" numbered="true">
<name>Design of the IS-IS MPLS Segment Routing Module</name> <name>Design of the IS-IS MPLS Segment Routing Module</name>
<t>This document defines a YANG data model for IS-IS Extensions for Segmen t Routing over the MPLS data plane. It <t>This document defines a YANG data model for IS-IS extensions for Segmen t Routing over the MPLS data plane. It
is an augmentation of the IS-IS base model.</t> is an augmentation of the IS-IS base model.</t>
<t>The IS-IS SR MPLS YANG module requires support for the base segment rou <t>The IS-IS SR MPLS YANG module requires support for the base Segment Rou
ting ting
module <xref target="RFC9020" format="default"/>, which defines the global se module <xref target="RFC9020" format="default"/>, which defines the global Se
gment gment
routing management independent of any specific routing protocol configuration Routing management independent of any specific routing protocol configuration
, and support of IS-IS base model <xref target="RFC9130" format="default"/> , and support of the IS-IS base model <xref target="RFC9130" format="default"/>,
which defines basic IS-IS configuration and state.</t> which defines the basic IS-IS configuration and state.</t>
<t>The ietf-isis-sr-mpls data module defines both the data nodes to configure <t>The "ietf-isis-sr-mpls" data model defines both the data nodes to configur
IS-IS segment routing MPLS extensions and the additions to the IS-IS Link e
State Protocol Data Units (LSPs) necessary to support MPLS segment routing.< IS-IS Segment Routing MPLS extensions and the additions to the IS-IS Link
/t> State Protocol Data Units (LSPs) necessary to support MPLS Segment Routing.<
/t>
<section anchor="spring-activation" toc="default" numbered="true"> <section anchor="spring-activation" toc="default" numbered="true">
<name>Segment Routing Activation</name> <name>Segment Routing Activation</name>
<t> <t>
Activation of IS-IS SR MPLS is done by setting the "enable" leaf to true. Activation of IS-IS SR MPLS is done by setting the "enable" leaf to true.
This triggers advertisement of SR MPLS extensions based on the co nfiguration parameters that have been This triggers advertisement of SR MPLS extensions based on the co nfiguration parameters that have been
set up using the base segment routing module. set up using the base Segment Routing module.
</t> </t>
</section> </section>
<section anchor="spring-ms" toc="default" numbered="true"> <section anchor="spring-ms" toc="default" numbered="true">
<name>Advertising Mapping Server Policy</name> <name>Advertising Mapping Server Policy</name>
<t> <t>
The base segment routing module defines mapping server policies. The base Segment Routing module defines mapping server policies.
By default, IS-IS will not advertise or process any mapping serve r entry. By default, IS-IS will not advertise or process any mapping serve r entry.
The IS-IS SR MPLS module allows the advertisement of one or multi ple mapping server policies through the "bindings/advertise/policies" leaf-list. The IS-IS SR MPLS module allows the advertisement of one or multi ple mapping server policies through the "bindings/advertise/policies" leaf-list.
The "bindings/receive" leaf controls the reception and process of mapping server entries. The "bindings/receive" leaf controls the reception and process of mapping server entries.
</t> </t>
</section> </section>
<section anchor="spring-ipfrr" toc="default" numbered="true"> <section anchor="spring-ipfrr" toc="default" numbered="true">
<name>IP Fast Reroute</name> <name>IP Fast Reroute</name>
<t> <t>
IS-IS SR MPLS model augments the fast-reroute container under int The IS-IS SR MPLS module augments the Fast Reroute (FRR) containe
erface. r under interface.
It brings the ability to activate TI-LFA (Topology Independent LF It brings the ability to activate Topology Independent Loop-Free
A) and also enhances remote LFA to use Alternate (TI-LFA) and also enhances Remote LFA (RLFA) to use
segment-routing tunneling instead of LDP. Segment Routing tunneling instead of LDP.
</t> </t>
</section> </section>
</section> </section>
<section anchor="isis-sr-yang" toc="default" numbered="true"> <section anchor="isis-sr-yang" toc="default" numbered="true">
<name>IS-IS MPLS Segment Routing over MPLS YANG Module</name> <name>IS-IS MPLS Segment Routing over MPLS YANG Module</name>
<!--[rfced] RFC 8402 is only cited in the YANG module. May we add a
citation to RFC 8402 to the this sentence preceding the YANG module
as well as add a reference in the Normative References section?
Original:
[RFC6991], [RFC8102], [RFC8294], [RFC8349], [RFC8667], [RFC9020],
[RFC9130], and [I-D.ietf-rtgwg-segment-routing-ti-lfa] are referenced
in the YANG module.
Perhaps:
[RFC6991], [RFC8102], [RFC8294], [RFC8349], [RFC8402], [RFC8667],
[RFC9020], [RFC9130], and [RFC9855] are referenced
in the YANG module.
...
[RFC8402] Filsfils, C., Ed., Previdi, S., Ed., Ginsberg, L.,
Decraene, B., Litkowski, S., and R. Shakir, "Segment
Routing Architecture", RFC 8402, DOI 10.17487/RFC8402,
July 2018, <https://www.rfc-editor.org/info/rfc8402>.
-->
<t> <t>
<xref target="RFC6991"/>, <xref target="RFC8102"/>, <xref target="RFC8 294"/>, <xref target="RFC8349"/>, <xref target="RFC6991"/>, <xref target="RFC8102"/>, <xref target="RFC8 294"/>, <xref target="RFC8349"/>,
<xref target="RFC8667"/>, <xref target="RFC9020"/>, <xref target="RFC 9130"/>, <xref target="RFC8667"/>, <xref target="RFC9020"/>, <xref target="RFC 9130"/>,
and <xref target="I-D.ietf-rtgwg-segment-routing-ti-lfa" format="defau lt"/> and <xref target="RFC9855" format="default"/>
are referenced in the YANG module. are referenced in the YANG module.
</t> </t>
<!--[rfced] These two sentences in the description clauses of the YANG
module are phrased similarly. Should they be rephrased to match? If yes,
should "IP" appear before "FRR" or before "interface"?
Original:
This augments ISIS interface level-1 IP FRR with TILFA.
...
This augments ISIS IP interface level-2 FRR with TILFA.
-->
<!--[rfced] We have updated this description text in the YANG module for
clarity. Please review and confirm that the intended meaning has not
been altered.
Original:
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.
Current:
A path providing a node with a disjoint path for SRLG
links from the primary path will be selected over
a path that doesn't provide an SRLG disjoint path.
-->
<figure> <figure>
<artwork><![CDATA[ <sourcecode name="ietf-isis-sr-mpls@2025-11-21.yang" type="yang" markers="tr
<CODE BEGINS> file "ietf-isis-sr-mpls@2025-05-06.yang" ue"><![CDATA[
module ietf-isis-sr-mpls { module ietf-isis-sr-mpls {
yang-version 1.1; yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:ietf-isis-sr-mpls"; namespace "urn:ietf:params:xml:ns:yang:ietf-isis-sr-mpls";
prefix isis-sr-mpls; prefix isis-sr-mpls;
import ietf-routing { import ietf-routing {
prefix rt; prefix rt;
reference reference
"RFC 8349: A YANG Data Model for Routing "RFC 8349: A YANG Data Model for Routing
Management (NMDA Version)"; Management (NMDA Version)";
skipping to change at line 198 skipping to change at line 257
<mailto:yingzhen.ietf@gmail.com> <mailto:yingzhen.ietf@gmail.com>
Author: Acee Lindem Author: Acee Lindem
<mailto:acee.ietf@gmail.com> <mailto:acee.ietf@gmail.com>
Author: Ing-Wher Chen Author: Ing-Wher Chen
<mailto:ingwherchen@mitre.org> <mailto:ingwherchen@mitre.org>
Author: Jeff Tantsura Author: Jeff Tantsura
<mailto:jefftant.ietf@gmail.com> <mailto:jefftant.ietf@gmail.com>
"; ";
description description
"The YANG module defines the generic configuration and "The YANG module defines the generic configuration and
operational state for Segment Routing ISIS extensions for the operational state for Segment Routing IS-IS extensions for the
MPLS data plane. MPLS data plane.
This YANG model conforms to the Network Management This YANG data model conforms to the Network Management
Datastore Architecture (NMDA) as described in RFC 8342. Datastore Architecture (NMDA) as described in RFC 8342.
Copyright (c) 2025 IETF Trust and the persons identified as Copyright (c) 2025 IETF Trust and the persons identified as
authors of the code. All rights reserved. authors of the code. All rights reserved.
Redistribution and use in source and binary forms, with or Redistribution and use in source and binary forms, with or
without modification, is permitted pursuant to, and subject to without modification, is permitted pursuant to, and subject to
the license terms contained in, the Revised BSD License set the license terms contained in, the Revised BSD License set
forth in Section 4.c of the IETF Trust's Legal Provisions forth in Section 4.c of the IETF Trust's Legal Provisions
Relating to IETF Documents Relating to IETF Documents
(https://trustee.ietf.org/license-info). (https://trustee.ietf.org/license-info).
This version of this YANG module is part of RFC XXXX This version of this YANG module is part of RFC 9902
(https://www.rfc-editor.org/info/rfcXXXX); see the RFC itself (https://www.rfc-editor.org/info/rfc9902); see the RFC itself
for full legal notices. for full legal notices.
The key words 'MUST', 'MUST NOT', 'REQUIRED', 'SHALL', 'SHALL This version of this YANG module is part of RFC 9902;
NOT', 'SHOULD', 'SHOULD NOT', 'RECOMMENDED', 'NOT RECOMMENDED',
'MAY', and 'OPTIONAL' in this document are to be interpreted as
described in BCP 14 (RFC 2119) (RFC 8174) when, and only when,
they appear in all capitals, as shown here.
This version of this YANG module is part of RFC XXXX;
see the RFC itself for full legal notices."; see the RFC itself for full legal notices.";
// RFC Ed.: Replace XXXX with actual RFC number and remove revision 2025-11-21 {
// this note
revision 2025-05-06 {
description description
"Initial revision."; "Initial revision.";
reference reference
"RFC XXXX: A YANG Data Model for IS-IS Segment Routing over "RFC 9902: A YANG Data Model for IS-IS Segment Routing over
the MPLS Data Plane"; the MPLS Data Plane";
} }
// RFC Ed.: Replace XXXX with actual RFC number.
// Also, replace '2025-04-22' with the module publication date
// in the format (YYYY-MM-DD) and remove this note.
/* Features */ /* Features */
feature remote-lfa-sr { feature remote-lfa-sr {
description description
"Enhance rLFA to use SR path."; "Enhance RLFA to use SR path.";
reference reference
"RFC 8102: Remote-LFA Node Protection and Manageability"; "RFC 8102: Remote-LFA Node Protection and Manageability";
} }
feature ti-lfa { feature ti-lfa {
description description
"Topology-Independent Loop-Free Alternate (TI-LFA) "Topology Independent Loop-Free Alternate (TI-LFA)
computation using segment routing."; computation using Segment Routing.";
reference reference
"draft-ietf-rtgwg-segment-routing-ti-lfa - "RFC 9855: Topology Independent Fast Reroute Using Segment
Topology-Independent Fast Reroute using Segment Routing"; Routing";
} }
/* Identities */ /* Identities */
identity sr-capability { identity sr-capability {
description description
"Base identity for ISIS SR-Capabilities sub-TLV flags"; "Base identity for IS-IS SR-Capabilities sub-TLV flags.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing"; "RFC 8667: IS-IS Extensions for Segment Routing";
} }
identity mpls-ipv4 { identity mpls-ipv4 {
base sr-capability; base sr-capability;
description description
"If set, then the router is capable of "If set, then the router is capable of
processing SR MPLS encapsulated IPv4 packets processing SR-MPLS-encapsulated IPv4 packets
on all interfaces."; on all interfaces.";
} }
identity mpls-ipv6 { identity mpls-ipv6 {
base sr-capability; base sr-capability;
description description
"If set, then the router is capable of "If set, then the router is capable of
processing SR MPLS encapsulated IPv6 packets processing SR-MPLS-encapsulated IPv6 packets
on all interfaces."; on all interfaces.";
} }
identity prefix-sid-flag { identity prefix-sid-flag {
description description
"Base identity for prefix SID sub-TLV flags."; "Base identity for Prefix Segment Identifier (Prefix-SID)
sub-TLV flags.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.1"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.1";
} }
identity r-flag { identity r-flag {
base prefix-sid-flag; base prefix-sid-flag;
description description
"Re-advertisement Flag."; "Re-advertisement Flag.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.1"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.1";
skipping to change at line 342 skipping to change at line 389
identity l-flag { identity l-flag {
base prefix-sid-flag; base prefix-sid-flag;
description description
"Local Flag."; "Local Flag.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.1"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.1";
} }
identity adj-sid-flag { identity adj-sid-flag {
description description
"Base identity for Adj-SID sub-TLV flags."; "Base identity for Adjacency Segment Identifier (Adj-SID)
sub-TLV flags.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2";
} }
identity f-flag { identity f-flag {
base adj-sid-flag; base adj-sid-flag;
description description
"Address-Family flag."; "Address-Family Flag.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2";
} }
identity b-flag { identity b-flag {
base adj-sid-flag; base adj-sid-flag;
description description
"Backup flag."; "Backup Flag.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2";
} }
identity vi-flag { identity vi-flag {
base adj-sid-flag; base adj-sid-flag;
description description
"Value/Index flag - corresponds to V-Flag in reference."; "Value/Index Flag - corresponds to V-Flag in reference.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2";
} }
identity lg-flag { identity lg-flag {
base adj-sid-flag; base adj-sid-flag;
description description
"Local/Global flag - corresponds to L-Flag in reference."; "Local/Global Flag - corresponds to L-Flag in reference.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2";
} }
identity s-flag { identity s-flag {
base adj-sid-flag; base adj-sid-flag;
description description
"Set flag - corresponds to S-Flag in reference.."; "Set Flag - corresponds to S-Flag in reference.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2";
} }
identity pe-flag { identity pe-flag {
base adj-sid-flag; base adj-sid-flag;
description description
"Persistent flag - corresponds to P-Flag in reference."; "Persistent Flag - corresponds to P-Flag in reference.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2";
} }
identity sid-binding-flag { identity sid-binding-flag {
description description
"Base identity for sid binding tlv flags."; "Base identity for SID Binding TLV flags.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4";
} }
identity af-flag { identity af-flag {
base sid-binding-flag; base sid-binding-flag;
description description
"Address-Family flag - corresponds to F-Flag in reference."; "Address-Family Flag - corresponds to F-Flag in reference.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4";
} }
identity m-flag { identity m-flag {
base sid-binding-flag; base sid-binding-flag;
description description
"Mirror Context flag."; "Mirror Context Flag.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4";
} }
identity sf-flag { identity sf-flag {
base sid-binding-flag; base sid-binding-flag;
description description
"S flag. If set, the binding label TLV should be flooded "S-Flag. If set, the Label Binding TLV should be flooded
across the entire routing domain - corresponds to S-Flag in across the entire routing domain - corresponds to S-Flag in
reference."; reference.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4";
} }
identity d-flag { identity d-flag {
base sid-binding-flag; base sid-binding-flag;
description description
"Leaking flag."; "Leaking Flag.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4";
} }
identity a-flag { identity a-flag {
base sid-binding-flag; base sid-binding-flag;
description description
"Attached flag."; "Attached Flag.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.4";
} }
/* Groupings */ /* Groupings */
grouping sid-tlv-encoding { grouping sid-tlv-encoding {
description description
"SID TLV Encoding - 20-bit label or 32-bit SID index whose "SID TLV Encoding - 20-bit label or 32-bit SID index whose
interpretation is dependent on the TLV length (3 for an interpretation is dependent on the TLV length (3 for an
MPLS label or 4 for a 32-bit value) or the TLV V-Flag and MPLS label or 4 for a 32-bit value) or the TLV V-Flag and
L-Flag settings: L-Flag settings:
If the V-Flag is set to 0 and L-Flag is set to 0: If the V-Flag is set to 0 and L-Flag is set to 0:
The SID/Index/Label field is a 4-octet index defining The SID/Index/Label field is a 4-octet index defining
the offset in the SID/Label space advertised by this the offset in the SID/Label space advertised by this
router. router.
If V-Flag is set to 1 and L-Flag is set to 1: The If the V-Flag is set to 1 and L-Flag is set to 1:
ID/Index/Label field is a 3-octet local label where the The SID/Index/Label field is a 3-octet local label where the
20 rightmost bits are used for encoding the label value."; 20 rightmost bits are used for encoding the label value.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, "RFC 8667: IS-IS Extensions for Segment Routing,
Section 2.1.1.1"; Section 2.1.1.1";
choice sid { choice sid {
case sid-label { case sid-label {
leaf label-value { leaf label-value {
type uint32 { type uint32 {
range "0 .. 1048575"; range "0 .. 1048575";
} }
description description
"A 20-bit MPLS Label"; "A 20-bit MPLS label.";
} }
} }
case sid-index { case sid-index {
leaf index-value { leaf index-value {
type uint32; type uint32;
description description
"Index into a label space advertised by this router."; "Index into a label space advertised by this router.";
} }
} }
description description
"Choice of either a 20-bit MPLS label or 32-bit index into "Choice of either a 20-bit MPLS label or 32-bit index into
an advertised label space."; an advertised label space.";
} }
} }
grouping sr-capability { grouping sr-capability {
description description
"SR capability grouping."; "SR-Capability grouping.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 3.1"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 3.1";
container sr-capability { container sr-capability {
description description
"SR Capability Flags."; "SR-Capability flags.";
leaf-list sr-capability-flag { leaf-list sr-capability-flag {
type identityref { type identityref {
base sr-capability; base sr-capability;
} }
description description
"SR Capability sub-TLV flags."; "SR-Capability sub-TLV flags.";
} }
container global-blocks { container global-blocks {
description description
"Segment Routing Global Blocks."; "Segment Routing Global Blocks.";
list global-block { list global-block {
description description
"Segment Routing Global Block."; "Segment Routing Global Block.";
leaf range-size { leaf range-size {
type rt-types:uint24; type rt-types:uint24;
description description
skipping to change at line 545 skipping to change at line 593
} }
} }
grouping srlb { grouping srlb {
description description
"SR Local Block grouping."; "SR Local Block grouping.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 3.3"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 3.3";
container local-blocks { container local-blocks {
description description
"List of SRLBs."; "List of Segment Routing Local Blocks (SRLBs).";
list local-block { list local-block {
description description
"Segment Routing Local Block."; "Segment Routing Local Block.";
leaf range-size { leaf range-size {
type rt-types:uint24; type rt-types:uint24;
description description
"The SID range."; "The SID range.";
} }
uses sid-tlv-encoding; uses sid-tlv-encoding;
} }
} }
} }
grouping srms-preference { grouping srms-preference {
description description
"The SRMS preference TLV is used to advertise "The SR Mapping Server (SRMS) Preference TLV is used to
a preference associated with the node that acts advertise a preference associated with the node that acts as
as an SR Mapping Server."; an SRMS.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 3.4"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 3.4";
container srms-preference { container srms-preference {
description description
"SRMS Preference TLV."; "SRMS Preference TLV.";
leaf preference { leaf preference {
type uint8; type uint8;
description description
"SRMS preference TLV, value from 0 to 255 with "SRMS Preference TLV, value from 0 to 255 with
255 being the most preferred."; 255 being the most preferred.";
} }
} }
} }
grouping adjacency-state { grouping adjacency-state {
description description
"This grouping extends adjacency state."; "This grouping extends adjacency state.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2";
skipping to change at line 596 skipping to change at line 644
"List of adjacency Segment IDs."; "List of adjacency Segment IDs.";
leaf value { leaf value {
type uint32; type uint32;
description description
"Value of the Adj-SID."; "Value of the Adj-SID.";
} }
leaf address-family { leaf address-family {
type iana-rt-types:address-family; type iana-rt-types:address-family;
description description
"Address-family associated with the "Address-family associated with the
segment ID"; segment ID.";
} }
leaf weight { leaf weight {
type uint8; type uint8;
description description
"Weight associated with "Weight associated with
the adjacency SID."; the adjacency SID.";
} }
leaf protection-requested { leaf protection-requested {
type boolean; type boolean;
description description
"Describe if the adjacency SID "Describe if the adjacency SID
must be protected."; must be protected.";
} }
} }
} }
grouping prefix-sid-sub-tlv { grouping prefix-sid-sub-tlv {
description description
"This grouping defines segment routing prefix segment "This grouping defines the Segment Routing Prefix Segment
identifier (prefix-sid) sub-tlv."; Identifier (Prefix-SID) sub-TLV.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.1"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.1";
container prefix-sid-sub-tlvs { container prefix-sid-sub-tlvs {
description description
"PrefixSID sub-tlvs."; "Prefix-SID sub-TLVs.";
list prefix-sid-sub-tlv { list prefix-sid-sub-tlv {
description description
"List of prefix-sid sub-tlvs."; "List of Prefix-SID sub-TLVs.";
container prefix-sid-flags { container prefix-sid-flags {
description description
"Describes flags associated with the "Describes flags associated with the
segment ID."; segment ID.";
leaf-list flag { leaf-list flag {
type identityref { type identityref {
base prefix-sid-flag; base prefix-sid-flag;
} }
description description
"Prefix SID sub-TLV flags."; "Prefix-SID sub-TLV flags.";
} }
} }
leaf algorithm { leaf algorithm {
type identityref { type identityref {
base sr-cmn:prefix-sid-algorithm; base sr-cmn:prefix-sid-algorithm;
} }
description description
"Algorithm to be used for path computation."; "Algorithm to be used for path computation.";
} }
uses sid-tlv-encoding; uses sid-tlv-encoding;
} }
} }
} }
grouping adjacency-segment-id { grouping adjacency-segment-id {
description description
"This grouping defines segment routing extensions "This grouping defines Segment Routing extensions
for adjacencies."; for adjacencies.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2"; "RFC 8667: IS-IS Extensions for Segment Routing, Section 2.2";
container adj-sid-sub-tlvs { container adj-sid-sub-tlvs {
description description
"Adj-SID optional sub-TLVs."; "Adj-SID optional sub-TLVs.";
list adj-sid-sub-tlv { list adj-sid-sub-tlv {
description description
"List of segments."; "List of segments.";
container adj-sid-flags { container adj-sid-flags {
skipping to change at line 682 skipping to change at line 730
leaf weight { leaf weight {
type uint8; type uint8;
description description
"The value represents the weight of the Adj-SID "The value represents the weight of the Adj-SID
for the purpose of load balancing."; for the purpose of load balancing.";
} }
leaf neighbor-id { leaf neighbor-id {
type isis:system-id; type isis:system-id;
description description
"Describes the system ID of the neighbor "Describes the system ID of the neighbor
associated with the SID value. This is only associated with the SID value. This is only
used on LAN adjacencies."; used on LAN adjacencies.";
} }
uses sid-tlv-encoding; uses sid-tlv-encoding;
} }
} }
} }
grouping sid-binding-tlv { grouping sid-binding-tlv {
description description
"SID/Label binding TLV, type 149."; "SID/Label Binding TLV, type 149.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, "RFC 8667: IS-IS Extensions for Segment Routing,
Section 2.4"; Section 2.4";
leaf prefix { leaf prefix {
type inet:ip-prefix; type inet:ip-prefix;
description description
"The prefix represents the Forwarding Equivalence "The prefix represents the Forwarding Equivalence
Class at the tail end of the advertised path."; Class at the tail end of the advertised path.";
} }
leaf range { leaf range {
type uint16; type uint16;
description description
"Provides the ability to specify a range of addresses "Provides the ability to specify a range of addresses
and their associated prefix-sids."; and their associated Prefix-SIDs.";
} }
container sid-binding-flags { container sid-binding-flags {
description description
"Binding TLV flags."; "Binding TLV flags.";
leaf-list flag { leaf-list flag {
type identityref { type identityref {
base sid-binding-flag; base sid-binding-flag;
} }
description description
"SID Binding TLV flags."; "SID Binding TLV flags.";
} }
} }
list prefix-sid-sub-tlvs { list prefix-sid-sub-tlvs {
description description
"List of prefix-sid sub-tlvs."; "List of Prefix-SID sub-TLVs.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, "RFC 8667: IS-IS Extensions for Segment Routing,
Section 2.4.4"; Section 2.4.4";
uses prefix-sid-sub-tlv; uses prefix-sid-sub-tlv;
} }
list sid-sub-tlv { list sid-sub-tlv {
description description
"List of prefix-sid sub-tlvs."; "List of Prefix-SID sub-TLVs.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, "RFC 8667: IS-IS Extensions for Segment Routing,
Section 2.4.5"; Section 2.4.5";
uses sid-tlv-encoding; uses sid-tlv-encoding;
} }
uses isis:unknown-tlvs; uses isis:unknown-tlvs;
} }
/* Configuration */ /* Configuration */
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis" { + "/isis:isis" {
when "derived-from-or-self(../rt:type, 'isis:isis')" { when "derived-from-or-self(../rt:type, 'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol configuration "This augments the IS-IS protocol configuration
with segment routing for the MPLS data plane."; with Segment Routing for the MPLS data plane.";
uses sr-mpls:sr-control-plane; uses sr-mpls:sr-control-plane;
container protocol-srgb { container protocol-srgb {
if-feature "sr-mpls:protocol-srgb"; if-feature "sr-mpls:protocol-srgb";
description description
"Per-protocol Segment Routing Global Block (SRGB)."; "Per-protocol Segment Routing Global Block (SRGB).";
reference reference
"RFC 8402: Segment Routing Architecture, Section 2"; "RFC 8402: Segment Routing Architecture, Section 2";
uses sr-cmn:srgb; uses sr-cmn:srgb;
} }
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:interfaces/isis:interface" { + "/isis:isis/isis:interfaces/isis:interface" {
when "derived-from-or-self(../../../rt:type, 'isis:isis')" { when "derived-from-or-self(../../../rt:type, 'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol configuration "This augments the IS-IS protocol configuration
with segment routing."; with Segment Routing.";
uses sr-mpls:igp-interface { uses sr-mpls:igp-interface {
augment "segment-routing/adjacency-sid/adj-sids" { augment "segment-routing/adjacency-sid/adj-sids" {
when "../../../isis:interface-type = 'broadcast'" { when "../../../isis:interface-type = 'broadcast'" {
description description
"This augments broadcast interface."; "This augments the broadcast interface.";
} }
description description
"This augments LAN interface adj-sid with system-id."; "This augments the LAN interface adj-sid with system-id.";
leaf neighbor-system-id { leaf neighbor-system-id {
type isis:system-id; type isis:system-id;
mandatory true; mandatory true;
description description
"Neighbor system ID."; "Neighbor system ID.";
} }
} }
} }
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:interfaces/isis:interface" + "/isis:isis/isis:interfaces/isis:interface"
+ "/isis:fast-reroute/isis:lfa" { + "/isis:fast-reroute/isis:lfa" {
when "derived-from-or-self(../../../../../rt:type," when "derived-from-or-self(../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS interface IP FRR with TILFA."; "This augments the IS-IS interface IP FRR with TI-LFA.";
container ti-lfa { container ti-lfa {
if-feature "ti-lfa"; if-feature "ti-lfa";
description description
"Topology Independent Loop Free Alternate "Topology Independent Loop-Free Alternate
(TI-LFA) support."; (TI-LFA) support.";
leaf enabled { leaf enabled {
type boolean; type boolean;
default "false"; default "false";
description description
"Enables TI-LFA computation."; "Enables TI-LFA computation.";
} }
container selection-tie-breakers { container selection-tie-breakers {
description description
"Configure path selection tie-breakers and their "Configure path selection tie-breakers and their
respective priorities for the TI-LFA computation."; respective priorities for the TI-LFA computation.";
container node-protection { container node-protection {
presence "Presence of container enables the node presence "Presence of container enables the node
protection tie-breaker"; protection tie-breaker.";
description description
"Enable node protection as a TI-LFA path "Enable node protection as a TI-LFA path
selection tie-breaker. A path providing node selection tie-breaker. A path providing node
protection will be selected over one that protection will be selected over one that
doesn't provide node protection."; doesn't provide node protection.";
leaf priority { leaf priority {
type uint8; type uint8;
default "128"; default "128";
description description
"Priority for node protection tie-breaker with "Priority for node protection tie-breaker with
a lower priority being more preferred."; a lower priority being more preferred.";
} }
} }
container srlg-disjoint { container srlg-disjoint {
presence "Presence of container enables the SRLG presence "Presence of container enables the SRLG
disjoint tie-breaker"; disjoint tie-breaker.";
description description
"Enable SRLG (Shared Resource Link Group) "Enable Shared Resource Link Group (SRLG)
disjoint as a TI-LFA path selection tie-breaker. disjoint as a TI-LFA path selection tie-breaker.
A path providing node a disjoint path for SRLG A path providing a node with a disjoint path for SRLG
links from the primary path will be selected over links from the primary path will be selected over
one that doesn't provide an SRLG disjoint path."; a path that doesn't provide an SRLG disjoint path.";
leaf priority { leaf priority {
type uint8; type uint8;
default "128"; default "128";
description description
"Priority for SRLG disjoint tie-breaker with "Priority for SRLG disjoint tie-breaker with
a lower priority being more preferred."; a lower priority being more preferred.";
} }
} }
} }
} }
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:interfaces/isis:interface" + "/isis:isis/isis:interfaces/isis:interface"
+ "/isis:fast-reroute/isis:lfa/isis:level-1" { + "/isis:fast-reroute/isis:lfa/isis:level-1" {
when "derived-from-or-self(../../../../../../rt:type," when "derived-from-or-self(../../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS interface level-1 IP FRR with TILFA."; "This augments the IS-IS interface level-1 IP FRR with
TI-LFA.";
container ti-lfa { container ti-lfa {
if-feature "ti-lfa"; if-feature "ti-lfa";
description description
"TI-LFA configuration."; "TI-LFA configuration.";
leaf enabled { leaf enabled {
type boolean; type boolean;
default "false"; default "false";
description description
"Enables TI-LFA computation."; "Enables TI-LFA computation.";
} }
} }
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:interfaces/isis:interface" + "/isis:isis/isis:interfaces/isis:interface"
+ "/isis:fast-reroute/isis:lfa/isis:level-2" { + "/isis:fast-reroute/isis:lfa/isis:level-2" {
when "derived-from-or-self(../../../../../../rt:type," when "derived-from-or-self(../../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS IP interface level-2 FRR with TILFA."; "This augments the IS-IS IP interface level-2 FRR with
TI-LFA.";
container ti-lfa { container ti-lfa {
if-feature "ti-lfa"; if-feature "ti-lfa";
description description
"TI-LFA configuration."; "TI-LFA configuration.";
leaf enabled { leaf enabled {
type boolean; type boolean;
default "false"; default "false";
description description
"Enables TI-LFA computation."; "Enables TI-LFA computation.";
} }
} }
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:interfaces/isis:interface" + "/isis:isis/isis:interfaces/isis:interface"
+ "/isis:fast-reroute/isis:lfa/isis:remote-lfa" { + "/isis:fast-reroute/isis:lfa/isis:remote-lfa" {
when "derived-from-or-self(../../../../../../rt:type," when "derived-from-or-self(../../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS remoteLFA config with "This augments the IS-IS Remote LFA configuration with
use of segment-routing path."; use of the Segment Routing path.";
leaf use-segment-routing-path { leaf use-segment-routing-path {
if-feature "remote-lfa-sr"; if-feature "remote-lfa-sr";
type boolean; type boolean;
default "false"; default "false";
description description
"Force remote LFA to use segment routing path instead of LDP "Force Remote LFA to use the Segment Routing path instead of
path. The value of this leaf is in effect only when LDP path. The value of this leaf is in effect only when
remote-lfa is enabled."; remote-lfa is enabled.";
} }
} }
/* Operational states */ /* Operational states */
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:interfaces/isis:interface" + "/isis:isis/isis:interfaces/isis:interface"
+ "/isis:adjacencies/isis:adjacency" { + "/isis:adjacencies/isis:adjacency" {
when "derived-from-or-self(../../../../../rt:type," when "derived-from-or-self(../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol configuration "This augments the IS-IS protocol configuration
with segment routing."; with Segment Routing.";
uses adjacency-state; uses adjacency-state;
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:database/isis:levels/isis:lsp" + "/isis:isis/isis:database/isis:levels/isis:lsp"
+ "/isis:router-capabilities/isis:router-capability" { + "/isis:router-capabilities/isis:router-capability" {
when "derived-from-or-self(../../../../../../rt:type," when "derived-from-or-self(../../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol LSDB router capability."; "This augments the IS-IS protocol Link State Database (LSDB)
router capability.";
uses sr-capability; uses sr-capability;
uses sr-algorithm; uses sr-algorithm;
uses srlb; uses srlb;
uses srms-preference; uses srms-preference;
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:database/isis:levels/isis:lsp" + "/isis:isis/isis:database/isis:levels/isis:lsp"
+ "/isis:extended-is-neighbor/isis:neighbor/isis:instances" + "/isis:extended-is-neighbor/isis:neighbor/isis:instances"
+ "/isis:instance" { + "/isis:instance" {
when "derived-from-or-self(../../../../../../../../rt:type," when "derived-from-or-self(../../../../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol LSDB neighbor."; "This augments the IS-IS protocol LSDB neighbor.";
uses adjacency-segment-id; uses adjacency-segment-id;
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:database/isis:levels/isis:lsp" + "/isis:isis/isis:database/isis:levels/isis:lsp"
+ "/isis:mt-is-neighbor/isis:neighbor/isis:instances" + "/isis:mt-is-neighbor/isis:neighbor/isis:instances"
+ "/isis:instance" { + "/isis:instance" {
when "derived-from-or-self(../../../../../../../../rt:type," when "derived-from-or-self(../../../../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol LSDB neighbor."; "This augments the IS-IS protocol LSDB neighbor.";
uses adjacency-segment-id; uses adjacency-segment-id;
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:database/isis:levels/isis:lsp" + "/isis:isis/isis:database/isis:levels/isis:lsp"
+ "/isis:extended-ipv4-reachability/isis:prefixes" { + "/isis:extended-ipv4-reachability/isis:prefixes" {
when "derived-from-or-self(../../../../../../rt:type," when "derived-from-or-self(../../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol LSDB prefix."; "This augments the IS-IS protocol LSDB prefix.";
uses prefix-sid-sub-tlv; uses prefix-sid-sub-tlv;
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:database/isis:levels/isis:lsp" + "/isis:isis/isis:database/isis:levels/isis:lsp"
+ "/isis:mt-extended-ipv4-reachability/isis:prefixes" { + "/isis:mt-extended-ipv4-reachability/isis:prefixes" {
when "derived-from-or-self(../../../../../../rt:type," when "derived-from-or-self(../../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol LSDB prefix."; "This augments the IS-IS protocol LSDB prefix.";
uses prefix-sid-sub-tlv; uses prefix-sid-sub-tlv;
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:database/isis:levels/isis:lsp" + "/isis:isis/isis:database/isis:levels/isis:lsp"
+ "/isis:ipv6-reachability/isis:prefixes" { + "/isis:ipv6-reachability/isis:prefixes" {
when "derived-from-or-self(../../../../../../rt:type," when "derived-from-or-self(../../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol LSDB prefix."; "This augments the IS-IS protocol LSDB prefix.";
uses prefix-sid-sub-tlv; uses prefix-sid-sub-tlv;
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:database/isis:levels/isis:lsp" + "/isis:isis/isis:database/isis:levels/isis:lsp"
+ "/isis:mt-ipv6-reachability/isis:prefixes" { + "/isis:mt-ipv6-reachability/isis:prefixes" {
when "derived-from-or-self(../../../../../../rt:type," when "derived-from-or-self(../../../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol LSDB prefix."; "This augments the IS-IS protocol LSDB prefix.";
uses prefix-sid-sub-tlv; uses prefix-sid-sub-tlv;
} }
augment "/rt:routing/" augment "/rt:routing/"
+ "rt:control-plane-protocols/rt:control-plane-protocol" + "rt:control-plane-protocols/rt:control-plane-protocol"
+ "/isis:isis/isis:database/isis:levels/isis:lsp" { + "/isis:isis/isis:database/isis:levels/isis:lsp" {
when "derived-from-or-self(../../../../rt:type," when "derived-from-or-self(../../../../rt:type,"
+ "'isis:isis')" { + "'isis:isis')" {
description description
"This augments ISIS routing protocol when used"; "This augments the IS-IS routing protocol when used.";
} }
description description
"This augments ISIS protocol LSDB."; "This augments the IS-IS protocol LSDB.";
container sid-binding-tlvs { container sid-binding-tlvs {
description description
"List of sid/label binding TLVs."; "List of SID/Label Binding TLVs.";
list sid-binding-tlv { list sid-binding-tlv {
key "prefix"; key "prefix";
description description
"Sid/label binding TLV, type 149."; "SID/Label Binding TLV, type 149.";
uses sid-binding-tlv; uses sid-binding-tlv;
} }
} }
container mt-sid-binding-tlvs { container mt-sid-binding-tlvs {
description description
"List of multi-topology sid/label binding TLVs."; "List of Multi-Topology SID/Label Binding TLVs.";
list mt-sid-binding-tlv { list mt-sid-binding-tlv {
key "prefix mt-id"; key "prefix mt-id";
description description
"Multi-Topology SID/Label binding TLV, type 150."; "Multi-Topology SID/Label Binding TLV, type 150.";
reference reference
"RFC 8667: IS-IS Extensions for Segment Routing, "RFC 8667: IS-IS Extensions for Segment Routing,
Section 2.5"; Section 2.5";
uses sid-binding-tlv; uses sid-binding-tlv;
leaf mt-id { leaf mt-id {
type uint16; type uint16;
description description
"A 12-bit field containing the non-zero ID "A 12-bit field containing the non-zero ID
of the topology."; of the topology.";
} }
} }
} }
} }
} }
<CODE ENDS> ]]></sourcecode>
]]></artwork>
</figure> </figure>
</section> </section>
<section anchor="Security" toc="default" numbered="true"> <section anchor="Security" toc="default" numbered="true">
<name>Security Considerations</name> <name>Security Considerations</name>
<!--[rfced] FYI, we have made some updates to the Security Considerations to
match Section 3.7 of draft-ietf-netmod-rfc8407bis-28. Please let us know
if any further updates are needed. We note some differences, specifically:
a) Should this sentence from the template be added? "There are no particularly s
ensitive RPC or action operations."
b) These paragraphs do not appear in the template. Please confirm they should re
main.
Original:
The ability to disable or enable IS-IS Segment Routing support and/or
change Segment Routing configurations can result in a Denial-of-
Service (DoS) attack, as this may cause traffic to be dropped or
misrouted. Please refer to Section 5 of [RFC8667] for more
information on Segment Routing extensions.
...
Unauthorized access to any data node of these subtrees can disclose
the operational state information of IS-IS protocol on a device.
-->
<!-- DNE begins -->
<t>This section is modeled after the template described in <xref
target="I-D.ietf-netmod-rfc8407bis" section="3.7" sectionFormat="of"/>.</t>
<t> <t>
The ietf-isis-sr-mpls YANG module defines a data model that is The "ietf-isis-sr-mpls" YANG module defines a data model that is
designed to be accessed via YANG-based management protocols, such as designed to be accessed via YANG-based management protocols, such as
NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These NETCONF <xref target="RFC6241"/> and RESTCONF <xref target="RFC8040"/>. These
YANG-based management YANG-based management protocols (1) have to use a secure transport layer
protocols (1) have to use a secure transport layer
(e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and QUIC < xref target="RFC9000"/>) and (2) have (e.g., SSH <xref target="RFC4252"/>, TLS <xref target="RFC8446"/>, and QUIC < xref target="RFC9000"/>) and (2) have
to use mutual authentication. to use mutual authentication.
</t> </t>
<t> <t>
The Network Configuration Access Control Model (NACM) <xref target="RFC8341" /> The Network Configuration Access Control Model (NACM) <xref target="RFC8341" />
provides the means to restrict access for particular NETCONF or provides the means to restrict access for particular NETCONF or
RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or
RESTCONF protocol operations and content. RESTCONF protocol operations and content.
</t> </t>
<t> <t>
There are a number of data nodes defined in this YANG module that are There are a number of data nodes defined in this YANG module that are
writable/creatable/deletable (i.e., "config true", which is the writable/creatable/deletable (i.e., "config true", which is the
default). All writable data nodes are likely to be reasonably default). All writable data nodes are likely to be
sensitive or vulnerable in some network environments. Write sensitive or vulnerable in some network environments. Write
operations (e.g., edit-config) and delete operations to these data operations (e.g., edit-config) and delete operations to these data
nodes without proper protection or authentication can have a negative nodes without proper protection or authentication can have a negative
effect on network operations. The following subtrees and data nodes effect on network operations. The following subtrees and data nodes
have particular sensitivities/vulnerabilities: have particular sensitivities/vulnerabilities:
</t> </t>
<ul empty="true" spacing="normal"> <!-- DNE ends -->
<ul spacing="normal">
<li>/isis:isis/segment-routing</li> <li>/isis:isis/segment-routing</li>
<li>/isis:isis/protocol-srgb</li> <li>/isis:isis/protocol-srgb</li>
<li>/isis:isis/isis:interfaces/isis:interface/segment-routing</li> <li>/isis:isis/isis:interfaces/isis:interface/segment-routing</li>
<li>/isis:isis/isis:interfaces/isis:interface/isis:fast-reroute/ti-lfa</ li> <li>/isis:isis/isis:interfaces/isis:interface/isis:fast-reroute/ti-lfa</ li>
</ul> </ul>
<t>The ability to disable or enable IS-IS Segment Routing support and/or c hange <t>The ability to disable or enable IS-IS Segment Routing support and/or c hange
Segment Routing configurations can result in a Denial-of-Service (DoS) a ttack, Segment Routing configurations can result in a Denial-of-Service (DoS) a ttack,
as this may cause traffic to be dropped or misrouted. Please refer to Se as this may cause traffic to be dropped or misrouted. Please refer to
ction 5 <xref target="RFC8667" section="5"/> for more information on Segment Routi
of <xref target="RFC8667"/> for more information on Segment Routing exte ng extensions.</t>
nsions.</t> <!-- DNE begins -->
<t>Some of the readable data nodes in the modules <t>Some of the readable data nodes in this YANG module
may be considered sensitive or vulnerable in some network environments. It is thus may be considered sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or notificati on) important to control read access (e.g., via get, get-config, or notificati on)
to these data nodes. to these data nodes. Specifically, the following subtrees and data nodes h ave particular sensitivities/vulnerabilities:
</t> </t>
<ul empty="true" spacing="normal"> <!-- DNE ends -->
<ul spacing="normal">
<li>/isis:router-capabilities/sr-capability</li> <li>/isis:router-capabilities/sr-capability</li>
<li>/isis:router-capabilities/sr-algorithms</li> <li>/isis:router-capabilities/sr-algorithms</li>
<li>/isis:router-capabilities/local-blocks</li> <li>/isis:router-capabilities/local-blocks</li>
<li>/isis:router-capabilities/srms-preference</li> <li>/isis:router-capabilities/srms-preference</li>
<li>And the augmentations to the ISIS link state database.</li> <li>and the augmentations to the IS-IS Link State Database.</li>
</ul> </ul>
<t>Unauthorized access to any data node of these subtrees can disclose <t>Unauthorized access to any data node of these subtrees can disclose
the operational state information of IS-IS protocol on a device.</t> the operational state information of the IS-IS protocol on a device.</t>
</section>
<section anchor="Acknowledgements" toc="default" numbered="true">
<name>Acknowledgements</name>
<t>
The authors would like to thank Pushpasis Sarkar, Derek Yeung,Yi Yang
for their major contributions to the draft. Also thank Reshad Rahman, To
m Petch,
and Renato Westphal for their thorough reviews and helpful comments.
</t>
<t>
The authors wish to thank Mohamed Boucadair and Ketan Talaulikar for
extensive AD reviews for the IESG Telechat. Thanks to Eric Vyncke
and Mahesh Jethanandani for review comments.</t>
<t>
Author affiliation with The MITRE Corporation is provided for
identification purposes only, and is not intended to convey or imply MIT
RE's
concurrence with, or support for, the positions, opinions or viewpoints
expressed. MITRE has agreed to this document for Public Release,
Distribution Unlimited, with Public Release Case Number 19-3033. This
approval allows the MITRE employee to release contributions externally a
nd
does not assert authority to publish.
</t>
</section> </section>
<section anchor="IANA" toc="default" numbered="true"> <section anchor="IANA" toc="default" numbered="true">
<name>IANA Considerations</name> <name>IANA Considerations</name>
<t>The IANA is requested to assign one new URI from the <t>The IANA has assigned one new URI in the
IETF XML registry (<xref target="RFC3688"/>): </t> "IETF XML Registry" <xref target="RFC3688"/>: </t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <dl spacing="compact" newline="false">
URI: urn:ietf:params:xml:ns:yang:ietf-isis-sr-mpls <dt>URI:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-isis-sr-mpls</dd>
Registrant Contact: The IESG. <dt>Registrant Contact:</dt><dd>The IESG.</dd>
XML: N/A, the requested URI is an XML namespace <dt>XML:</dt><dd>N/A; the requested URI is an XML namespace</dd>
]]></artwork> </dl>
<t>This document also requests one new YANG module name in the YANG Module <t>This document also registers one new YANG module name in the "YANG Modu
Names registry (<xref target="RFC6020" format="default"/>):</t> le Names" registry <xref target="RFC6020" format="default"/>:</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <dl spacing="compact" newline="false">
name: ietf-isis-sr-mpls <dt>Name:</dt><dd>ietf-isis-sr-mpls</dd>
namespace: urn:ietf:params:xml:ns:yang:ietf-isis-sr-mpls <dt>Maintained by IANA?</dt><dd>N</dd>
prefix: isis-sr-mpls <dt>Namespace:</dt><dd>urn:ietf:params:xml:ns:yang:ietf-isis-sr-mpls</dd>
maintained by IANA? N <dt>Prefix:</dt><dd>isis-sr-mpls</dd>
reference: RFC XXXX <dt>Reference:</dt><dd>RFC 9902</dd>
]]></artwork> </dl>
</section> </section>
</middle> </middle>
<back> <back>
<displayreference target="I-D.ietf-netmod-rfc8407bis" to="YANG-GUIDE"/>
<references> <references>
<name>References</name> <name>References</name>
<references> <references>
<name>Normative References</name> <name>Normative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.368
.2119.xml"/> 8.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.602
.3688.xml"/> 0.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.699
.4252.xml"/> 1.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.795
.6020.xml"/> 0.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.810
.6991.xml"/> 2.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.829
.7950.xml"/> 4.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.834
.8102.xml"/> 1.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.834
.8174.xml"/> 2.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.834
.8294.xml"/> 9.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.866
.8341.xml"/> 7.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.902
.8342.xml"/> 0.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.913
.8349.xml"/> 0.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.985
.8667.xml"/> 5.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.9020.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC
.9130.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ie
tf-rtgwg-segment-routing-ti-lfa.xml"/>
</references> </references>
<references> <references>
<name>Informative References</name> <name>Informative References</name>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.425
FC.6241.xml"/> 2.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.624
FC.8040.xml"/> 1.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.804
FC.8340.xml"/> 0.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.834
FC.8446.xml"/> 0.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.844
FC.8792.xml"/> 6.xml"/>
<xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.R <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.879
FC.9000.xml"/> 2.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.900
0.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ie
tf-netmod-rfc8407bis.xml"/>
</references> </references>
</references> </references>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>A Configuration Example</name> <name>A Configuration Example</name>
<t> <t>
The following is an XML example using the ISIS SR MPLS YANG module def ined in this document. The following is an XML example using the IS-IS SR MPLS YANG module de fined in this document.
</t> </t>
<t>Note: '\' line wrapping per <xref target="RFC8792" format="default"/> . </t> <t>Note: '\' line wrapping per <xref target="RFC8792" format="default"/> . </t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <sourcecode type="xml"><![CDATA[
<?xml version='1.0' encoding='UTF-8'?> <?xml version='1.0' encoding='UTF-8'?>
<interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces"> <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces">
<interface> <interface>
<name>eth0</name> <name>eth0</name>
<admin-status>up</admin-status> <admin-status>up</admin-status>
<oper-status>up</oper-status> <oper-status>up</oper-status>
<if-index>1</if-index> <if-index>1</if-index>
<statistics> <statistics>
<discontinuity-time>2024-10-27T14:30:00Z</discontinuity-time> <discontinuity-time>2024-10-27T14:30:00Z</discontinuity-time>
</statistics> </statistics>
skipping to change at line 1272 skipping to change at line 1330
ietf-isis-sr-mpls"> ietf-isis-sr-mpls">
<srgb> <srgb>
<lower-bound>4000</lower-bound> <lower-bound>4000</lower-bound>
<upper-bound>5000</upper-bound> <upper-bound>5000</upper-bound>
</srgb> </srgb>
</protocol-srgb> </protocol-srgb>
</isis> </isis>
</control-plane-protocol> </control-plane-protocol>
</control-plane-protocols> </control-plane-protocols>
</routing> </routing>
]]></artwork> ]]></sourcecode>
<t>The following is the same example using JSON format.</t> <t>The following is the same example using JSON format.</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <sourcecode type="json"><![CDATA[
{ {
"ietf-interfaces:interfaces": { "ietf-interfaces:interfaces": {
"interface": [ "interface": [
{ {
"name": "eth0", "name": "eth0",
"admin-status": "up", "admin-status": "up",
"oper-status": "up", "oper-status": "up",
"if-index": 1, "if-index": 1,
"statistics": { "statistics": {
"discontinuity-time": "2024-10-27T07:30:00-07:00" "discontinuity-time": "2024-10-27T07:30:00-07:00"
skipping to change at line 1335 skipping to change at line 1394
"upper-bound": 5000 "upper-bound": 5000
} }
] ]
} }
} }
} }
] ]
} }
} }
} }
]]></artwork> ]]></sourcecode>
</section> </section>
<section numbered="true" toc="default"> <section numbered="true" toc="default">
<name>IS-IS MPLS Segment Routing Module Tree</name> <name>IS-IS MPLS Segment Routing Module Tree</name>
<t>The figure below describes the overall structure of the ietf-isis-sr-mp ls <t>The figure below describes the overall structure of the "ietf-isis-sr-m pls"
YANG module:</t> YANG module:</t>
<artwork name="" type="" align="left" alt=""><![CDATA[ <sourcecode type="yangtree"><![CDATA[
augment /rt:routing/rt:control-plane-protocols augment /rt:routing/rt:control-plane-protocols
/rt:control-plane-protocol/isis:isis: /rt:control-plane-protocol/isis:isis:
+--rw segment-routing +--rw segment-routing
| +--rw enabled? boolean | +--rw enabled? boolean
| +--rw bindings {mapping-server}? | +--rw bindings {mapping-server}?
| +--rw advertise | +--rw advertise
| | +--rw policies* leafref | | +--rw policies* leafref
| +--rw receive? boolean | +--rw receive? boolean
+--rw protocol-srgb {sr-mpls:protocol-srgb}? +--rw protocol-srgb {sr-mpls:protocol-srgb}?
+--rw srgb* [lower-bound upper-bound] +--rw srgb* [lower-bound upper-bound]
skipping to change at line 1574 skipping to change at line 1633
| +--:(sid-label) | +--:(sid-label)
| | +--ro label-value? uint32 | | +--ro label-value? uint32
| +--:(sid-index) | +--:(sid-index)
| +--ro index-value? uint32 | +--ro index-value? uint32
+--ro unknown-tlvs +--ro unknown-tlvs
| +--ro unknown-tlv* [] | +--ro unknown-tlv* []
| +--ro type? uint16 | +--ro type? uint16
| +--ro length? uint16 | +--ro length? uint16
| +--ro value? yang:hex-string | +--ro value? yang:hex-string
+--ro mt-id uint16 +--ro mt-id uint16
]]></artwork> ]]></sourcecode>
</section> </section>
<section anchor="Acknowledgements" toc="default" numbered="false">
<name>Acknowledgements</name>
<t>
The authors would like to thank <contact fullname="Pushpasis Sarkar"/>,
<contact fullname="Derek Yeung"/>, and <contact fullname="Yi Yang"/>
for their major contributions to the document. Also thanks to <contact
fullname="Reshad Rahman"/>, <contact fullname="Tom Petch"/>,
and <contact fullname="Renato Westphal"/> for their thorough reviews and
helpful comments.
</t>
<t>
The authors wish to thank <contact fullname="Mohamed Boucadair"/> and <c
ontact fullname="Ketan Talaulikar"/> for
extensive AD reviews for the IESG Telechat. Thanks to <contact fullname
="Éric Vyncke"/>
and <contact fullname="Mahesh Jethanandani"/> for review comments.</t>
<t>
Author affiliation with The MITRE Corporation is provided for
identification purposes only and is not intended to convey or imply MITR
E's
concurrence with, or support for, the positions, opinions or viewpoints
expressed. MITRE has agreed to this document for Public Release,
Distribution Unlimited, with Public Release Case Number 19-3033. This
approval allows the MITRE employee to release contributions externally a
nd
does not assert authority to publish.
</t>
</section>
</back> </back>
<!--[rfced] Both the expansion and the acronym for the following terms are used
throughout the document. Would you like to update to using the expansion upon
first usage and the acronym for the rest of the document?
Adjacency Segment Identifier, adjacency SID, adjacency Segment ID (Adj-SID)
Link State Database (LSDB)
Remote LFA (RLFA)
Segment Routing (SR)
-->
<!--[rfced] Please review the "Inclusive Language" portion of the online
Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed. Updates of this nature typically
result in more precise language, which is helpful for readers.
Note that our script did not flag any words in particular, but this should
still be reviewed as a best practice.
-->
</rfc> </rfc>
 End of changes. 138 change blocks. 
280 lines changed or deleted 384 lines changed or added

This html diff was produced by rfcdiff 1.48.