rfc8661xml2.original.xml | rfc8661.xml | |||
---|---|---|---|---|
<?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse | |||
nsus="true" docName="draft-ietf-spring-segment-routing-ldp-interop-15" indexIncl | ||||
]> | ude="true" ipr="trust200902" number="8661" prepTime="2019-12-04T20:41:37" script | |||
<rfc number="8661" category="std" consensus="yes" | s="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth=" | |||
submissionType="IETF" ipr="trust200902"> | 3" tocInclude="true" xml:lang="en"> | |||
<?rfc compact="yes"?> | <link href="https://datatracker.ietf.org/doc/draft-ietf-spring-segment-routing | |||
-ldp-interop-15" rel="prev"/> | ||||
<?rfc text-list-symbols="-o*+"?> | <link href="https://dx.doi.org/10.17487/rfc8661" rel="alternate"/> | |||
<link href="urn:issn:2070-1721" rel="alternate"/> | ||||
<?rfc subcompact="no"?> | ||||
<?rfc sortrefs="yes"?> | ||||
<?rfc symrefs="yes"?> | ||||
<?rfc strict="yes"?> | ||||
<?rfc toc="yes"?> | ||||
<front> | <front> | |||
<title abbrev="Segment Routing and LDP">Segment Routing Interworking with | <title abbrev="Segment Routing and LDP">Segment Routing MPLS Interworking wi | |||
LDP</title> | th LDP</title> | |||
<seriesInfo name="RFC" value="8661" stream="IETF"/> | ||||
<author fullname="Ahmed Bashandy" initials="A." role="editor" | <author fullname="Ahmed Bashandy" initials="A." role="editor" surname="Basha | |||
surname="Bashandy"> | ndy"> | |||
<organization>Individual</organization> | <organization showOnFrontPage="true">Individual</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>United States of America</street> | <street>United States of America</street> | |||
</postal> | </postal> | |||
<email>abashandy.ietf@gmail.com</email> | <email>abashandy.ietf@gmail.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Clarence Filsfils" initials="C." role="editor" surname="Fi | ||||
<author fullname="Clarence Filsfils" initials="C." role="editor" | lsfils"> | |||
surname="Filsfils"> | <organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | |||
<organization>Cisco Systems, Inc.</organization> | ||||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Brussels</street> | <street>Brussels</street> | |||
<street>Belgium</street> | <street>Belgium</street> | |||
</postal> | </postal> | |||
<email>cfilsfil@cisco.com</email> | <email>cfilsfil@cisco.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Stefano Previdi" initials="S." surname="Previdi"> | <author fullname="Stefano Previdi" initials="S." surname="Previdi"> | |||
<organization>Cisco Systems, Inc.</organization> | <organization showOnFrontPage="true">Huawei Technologies</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>Italy</street> | <street>Italy</street> | |||
</postal> | </postal> | |||
<email>stefano@previdi.net</email> | <email>stefano@previdi.net</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Bruno Decraene" initials="B." surname="Decraene"> | <author fullname="Bruno Decraene" initials="B." surname="Decraene"> | |||
<organization>Orange</organization> | <organization showOnFrontPage="true">Orange</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>France</street> | <street>France</street> | |||
</postal> | </postal> | |||
<email>bruno.decraene@orange.com</email> | <email>bruno.decraene@orange.com</email> | |||
</address> | </address> | |||
</author> | </author> | |||
<author fullname="Stephane Litkowski" initials="S." surname="Litkowski"> | <author fullname="Stephane Litkowski" initials="S." surname="Litkowski"> | |||
<organization>Orange</organization> | <organization showOnFrontPage="true">Orange</organization> | |||
<address> | <address> | |||
<postal> | <postal> | |||
<street>France</street> | <street>France</street> | |||
</postal> | </postal> | |||
<email>slitkows.ietf@gmail.com</email> | ||||
<email>stephane.litkowski@orange.com</email> | ||||
</address> | </address> | |||
</author> | </author> | |||
<date month="12" year="2019"/> | ||||
<date month="September" year="2019"/> | <keyword>SR-MPLS</keyword> | |||
<abstract pn="section-abstract"> | ||||
<abstract> | <t pn="section-abstract-1">A Segment Routing (SR) node steers a packet thr | |||
<t>A Segment Routing (SR) node steers a packet through a controlled set | ough a controlled set | |||
of instructions, called segments, by prepending the packet with an SR | of instructions, called segments, by prepending the packet with an SR | |||
header. A segment can represent any instruction, topological or | header. A segment can represent any instruction, topological or | |||
service based. SR allows enforcing a flow through any topological path | service based. SR allows enforcing a flow through any topological path | |||
while maintaining per-flow state only at the ingress node to the SR | while maintaining per-flow state only at the ingress node to the SR | |||
domain.</t> | domain.</t> | |||
<t pn="section-abstract-2">The Segment Routing architecture can be directl | ||||
<t>The Segment Routing architecture can be directly applied to the MPLS | y applied to the MPLS | |||
data plane with no change in the forwarding plane. This document | data plane with no change in the forwarding plane. This document | |||
describes how Segment Routing operates in a network where LDP is | describes how Segment Routing MPLS operates in a network where LDP is | |||
deployed and in the case where SR-capable and non-SR-capable nodes | deployed and in the case where SR-capable and non-SR-capable nodes | |||
coexist.</t> | coexist.</t> | |||
</abstract> | </abstract> | |||
<boilerplate> | ||||
<section anchor="status-of-memo" numbered="false" removeInRFC="false" toc= | ||||
"exclude" pn="section-boilerplate.1"> | ||||
<name slugifiedName="name-status-of-this-memo">Status of This Memo</name | ||||
> | ||||
<t pn="section-boilerplate.1-1"> | ||||
This is an Internet Standards Track document. | ||||
</t> | ||||
<t pn="section-boilerplate.1-2"> | ||||
This document is a product of the Internet Engineering Task Force | ||||
(IETF). It represents the consensus of the IETF community. It has | ||||
received public review and has been approved for publication by | ||||
the Internet Engineering Steering Group (IESG). Further | ||||
information on Internet Standards is available in Section 2 of | ||||
RFC 7841. | ||||
</t> | ||||
<t pn="section-boilerplate.1-3"> | ||||
Information about the current status of this document, any | ||||
errata, and how to provide feedback on it may be obtained at | ||||
<eref target="https://www.rfc-editor.org/info/rfc8661" brackets="non | ||||
e"/>. | ||||
</t> | ||||
</section> | ||||
<section anchor="copyright" numbered="false" removeInRFC="false" toc="excl | ||||
ude" pn="section-boilerplate.2"> | ||||
<name slugifiedName="name-copyright-notice">Copyright Notice</name> | ||||
<t pn="section-boilerplate.2-1"> | ||||
Copyright (c) 2019 IETF Trust and the persons identified as the | ||||
document authors. All rights reserved. | ||||
</t> | ||||
<t pn="section-boilerplate.2-2"> | ||||
This document is subject to BCP 78 and the IETF Trust's Legal | ||||
Provisions Relating to IETF Documents | ||||
(<eref target="https://trustee.ietf.org/license-info" brackets="none | ||||
"/>) in effect on the date of | ||||
publication of this document. Please review these documents | ||||
carefully, as they describe your rights and restrictions with | ||||
respect to this document. Code Components extracted from this | ||||
document must include Simplified BSD License text as described in | ||||
Section 4.e of the Trust Legal Provisions and are provided without | ||||
warranty as described in the Simplified BSD License. | ||||
</t> | ||||
</section> | ||||
</boilerplate> | ||||
<toc> | ||||
<section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" p | ||||
n="section-toc.1"> | ||||
<name slugifiedName="name-table-of-contents">Table of Contents</name> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="section-to | ||||
c.1-1"> | ||||
<li pn="section-toc.1-1.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent | ||||
="1" format="counter" sectionFormat="of" target="section-1"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-introduction">Introductio | ||||
n</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.1.2"> | ||||
<li pn="section-toc.1-1.1.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.1.2.1.1"><xref derive | ||||
dContent="1.1" format="counter" sectionFormat="of" target="section-1.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-requirements- | ||||
language">Requirements Language</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent | ||||
="2" format="counter" sectionFormat="of" target="section-2"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-sr-ldp-ships-in-the-night | ||||
-c">SR-LDP Ships-in-the-Night Coexistence</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.2.2"> | ||||
<li pn="section-toc.1-1.2.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.2.2.1.1"><xref derive | ||||
dContent="2.1" format="counter" sectionFormat="of" target="section-2.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-mpls2mpls-mpl | ||||
s2ip-and-ip2mp">MPLS2MPLS, MPLS2IP, and IP2MPLS Coexistence</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.3"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent | ||||
="3" format="counter" sectionFormat="of" target="section-3"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-sr-and-ldp-interworking"> | ||||
SR and LDP Interworking</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.3.2"> | ||||
<li pn="section-toc.1-1.3.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.2.1.1"><xref derive | ||||
dContent="3.1" format="counter" sectionFormat="of" target="section-3.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-ldp-to-sr">LD | ||||
P to SR</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
ction-toc.1-1.3.2.1.2"> | ||||
<li pn="section-toc.1-1.3.2.1.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.2.1.2.1.1"><xre | ||||
f derivedContent="3.1.1" format="counter" sectionFormat="of" target="section-3.1 | ||||
.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-l | ||||
dp-to-sr-behavior">LDP to SR Behavior</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.3.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.2.2.1"><xref derive | ||||
dContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-sr-to-ldp">SR | ||||
to LDP</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="se | ||||
ction-toc.1-1.3.2.2.2"> | ||||
<li pn="section-toc.1-1.3.2.2.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.2.2.2.1.1"><xre | ||||
f derivedContent="3.2.1" format="counter" sectionFormat="of" target="section-3.2 | ||||
.1"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-s | ||||
egment-routing-mapping-ser">Segment Routing Mapping Server (SRMS)</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.3.2.2.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.2.2.2.2.1"><xre | ||||
f derivedContent="3.2.2" format="counter" sectionFormat="of" target="section-3.2 | ||||
.2"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-s | ||||
r-to-ldp-behavior">SR to LDP Behavior</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.3.2.2.2.3"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.3.2.2.2.3.1"><xre | ||||
f derivedContent="3.2.3" format="counter" sectionFormat="of" target="section-3.2 | ||||
.3"/>. <xref derivedContent="" format="title" sectionFormat="of" target="name-i | ||||
nteroperability-of-multipl">Interoperability of Multiple SRMSes and Prefix-SID A | ||||
dvertisements</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.4"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.1"><xref derivedContent | ||||
="4" format="counter" sectionFormat="of" target="section-4"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-sr-ldp-interworking-use-c | ||||
as">SR-LDP Interworking Use Cases</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.4.2"> | ||||
<li pn="section-toc.1-1.4.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.1.1"><xref derive | ||||
dContent="4.1" format="counter" sectionFormat="of" target="section-4.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-sr-protection | ||||
-of-ldp-based-">SR Protection of LDP-Based Traffic</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.4.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.2.1"><xref derive | ||||
dContent="4.2" format="counter" sectionFormat="of" target="section-4.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-eliminating-t | ||||
argeted-ldp-se">Eliminating Targeted LDP Sessions</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.4.2.3"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.3.1"><xref derive | ||||
dContent="4.3" format="counter" sectionFormat="of" target="section-4.3"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-guaranteed-fr | ||||
r-coverage">Guaranteed FRR Coverage</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.4.2.4"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.4.2.4.1"><xref derive | ||||
dContent="4.4" format="counter" sectionFormat="of" target="section-4.4"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-inter-as-opti | ||||
on-c-carriers-">Inter-AS Option C, Carrier's Carrier</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.5"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.5.1"><xref derivedContent | ||||
="5" format="counter" sectionFormat="of" target="section-5"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA | ||||
Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.6"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.6.1"><xref derivedContent | ||||
="6" format="counter" sectionFormat="of" target="section-6"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-manageability-considerati | ||||
on">Manageability Considerations</xref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.6.2"> | ||||
<li pn="section-toc.1-1.6.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.6.2.1.1"><xref derive | ||||
dContent="6.1" format="counter" sectionFormat="of" target="section-6.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-sr-and-ldp-co | ||||
existence">SR and LDP Coexistence</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.6.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.6.2.2.1"><xref derive | ||||
dContent="6.2" format="counter" sectionFormat="of" target="section-6.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-data-plane-ve | ||||
rification">Data-Plane Verification</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.7"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.7.1"><xref derivedContent | ||||
="7" format="counter" sectionFormat="of" target="section-7"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-security-considerations"> | ||||
Security Considerations</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.1"><xref derivedContent | ||||
="8" format="counter" sectionFormat="of" target="section-8"/>. <xref derivedCon | ||||
tent="" format="title" sectionFormat="of" target="name-references">References</x | ||||
ref></t> | ||||
<ul bare="true" empty="true" indent="2" spacing="compact" pn="sectio | ||||
n-toc.1-1.8.2"> | ||||
<li pn="section-toc.1-1.8.2.1"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.1.1"><xref derive | ||||
dContent="8.1" format="counter" sectionFormat="of" target="section-8.1"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-normative-ref | ||||
erences">Normative References</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.8.2.2"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.8.2.2.1"><xref derive | ||||
dContent="8.2" format="counter" sectionFormat="of" target="section-8.2"/>. <xre | ||||
f derivedContent="" format="title" sectionFormat="of" target="name-informative-r | ||||
eferences">Informative References</xref></t> | ||||
</li> | ||||
</ul> | ||||
</li> | ||||
<li pn="section-toc.1-1.9"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.9.1"><xref derivedContent | ||||
="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>. | ||||
<xref derivedContent="" format="title" sectionFormat="of" target="name-migrati | ||||
on-from-ldp-to-sr">Migration from LDP to SR</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.10"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.10.1"><xref derivedConten | ||||
t="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-acknowledgements">Ackn | ||||
owledgements</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.11"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.11.1"><xref derivedConten | ||||
t="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-contributors">Contribu | ||||
tors</xref></t> | ||||
</li> | ||||
<li pn="section-toc.1-1.12"> | ||||
<t keepWithNext="true" pn="section-toc.1-1.12.1"><xref derivedConten | ||||
t="" format="none" sectionFormat="of" target="section-appendix.d"/><xref derived | ||||
Content="" format="title" sectionFormat="of" target="name-authors-addresses">Aut | ||||
hors' Addresses</xref></t> | ||||
</li> | ||||
</ul> | ||||
</section> | ||||
</toc> | ||||
</front> | </front> | |||
<middle> | <middle> | |||
<section anchor="section-1" title="Introduction"> | <section anchor="sec-1" numbered="true" toc="include" removeInRFC="false" pn | |||
<t>Segment Routing, as described in <xref | ="section-1"> | |||
target="RFC8402"/>, can be used on top of the | <name slugifiedName="name-introduction">Introduction</name> | |||
MPLS data plane without any modification as described in <xref | <t pn="section-1-1">Segment Routing, as described in <xref target="RFC8402 | |||
target="RFC8660"/>.</t> | " format="default" sectionFormat="of" derivedContent="RFC8402"/>, can be used on | |||
top of the | ||||
<t>Segment Routing control plane can coexist with current label | MPLS data plane without any modification as described in <xref target="RFC | |||
distribution protocols such as LDP <xref target="RFC5036"/>.</t> | 8660" format="default" sectionFormat="of" derivedContent="RFC8660"/>.</t> | |||
<t pn="section-1-2">Segment Routing control plane can coexist with current | ||||
<t>This document outlines the mechanisms through which SR interworks | label | |||
distribution protocols such as LDP <xref target="RFC5036" format="default" | ||||
sectionFormat="of" derivedContent="RFC5036"/>.</t> | ||||
<t pn="section-1-3">This document outlines the mechanisms through which SR | ||||
interworks | ||||
with LDP in cases where a mix of SR-capable and non-SR-capable routers | with LDP in cases where a mix of SR-capable and non-SR-capable routers | |||
coexist within the same network and more precisely in the same routing | coexist within the same network and more precisely in the same routing | |||
domain.</t> | domain.</t> | |||
<t pn="section-1-4"><xref target="sec-2" format="default" sectionFormat="o | ||||
<t><xref target="section-2"/> describes the coexistence of SR with | f" derivedContent="Section 2"/> describes the coexistence of SR with | |||
other MPLS control-plane protocols. <xref target="section-4"/> documents | other MPLS control-plane protocols. <xref target="sec-4" format="default" | |||
sectionFormat="of" derivedContent="Section 3"/> documents | ||||
the interworking between SR and LDP in the case of nonhomogeneous | the interworking between SR and LDP in the case of nonhomogeneous | |||
deployment. <xref target="section-5"/> describes how a partial SR | deployment. <xref target="sec-5" format="default" sectionFormat="of" deriv edContent="Section 4"/> describes how a partial SR | |||
deployment can be used to provide SR benefits to LDP-based traffic | deployment can be used to provide SR benefits to LDP-based traffic | |||
including a possible application of SR in the context of interdomain | including a possible application of SR in the context of interdomain | |||
MPLS use cases. <xref target="Appendix-A"/> documents a method to | MPLS use cases. <xref target="Appendix-A" format="default" sectionFormat=" of" derivedContent="Appendix A"/> documents a method to | |||
migrate from LDP to SR-based MPLS tunneling.</t> | migrate from LDP to SR-based MPLS tunneling.</t> | |||
<t pn="section-1-5">Typically, an implementation will allow an operator to | ||||
<t>Typically, an implementation will allow an operator to select | select | |||
(through configuration) which of the described modes of SR and LDP | (through configuration) which of the described modes of SR and LDP | |||
coexistence to use.</t> | coexistence to use.</t> | |||
<section numbered="true" toc="include" removeInRFC="false" pn="section-1.1 | ||||
<section title="Requirements Language"> | "> | |||
<name slugifiedName="name-requirements-language">Requirements Language</ | ||||
<t> | name> | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL | <t pn="section-1.1-1"> | |||
NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", | The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQU | |||
"MAY", and "OPTIONAL" in this document are to be interpreted as | IRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOUL | |||
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> | D</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>N | |||
OT RECOMMENDED</bcp14>", | ||||
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to | ||||
be interpreted as | ||||
described in BCP 14 <xref target="RFC2119" format="default" sectionFormat="o | ||||
f" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFor | ||||
mat="of" derivedContent="RFC8174"/> | ||||
when, and only when, they appear in all capitals, as shown here. | when, and only when, they appear in all capitals, as shown here. | |||
</t> | </t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec-2" numbered="true" toc="include" removeInRFC="false" pn | ||||
<section anchor="section-2" title="SR/LDP Ships-in-the-Night Coexistence"> | ="section-2"> | |||
<t>"MPLS Control-Plane Client (MCC)" refers to any control-plane | <name slugifiedName="name-sr-ldp-ships-in-the-night-c">SR-LDP Ships-in-the | |||
-Night Coexistence</name> | ||||
<t pn="section-2-1">"MPLS Control-Plane Client (MCC)" refers to any contro | ||||
l-plane | ||||
protocol installing forwarding entries in the MPLS data plane. SR, LDP | protocol installing forwarding entries in the MPLS data plane. SR, LDP | |||
<xref target="RFC5036"/>, RSVP-TE <xref target="RFC3209"/>, BGP <xref | <xref target="RFC5036" format="default" sectionFormat="of" derivedContent= | |||
target="RFC8277"/>, etc., are examples of MCCs.</t> | "RFC5036"/>, RSVP-TE <xref target="RFC3209" format="default" sectionFormat="of" | |||
derivedContent="RFC3209"/>, BGP <xref target="RFC8277" format="default" sectionF | ||||
<t>An MCC, operating at node N, must ensure that the incoming label it | ormat="of" derivedContent="RFC8277"/>, etc., are examples of MCCs.</t> | |||
installs in the MPLS data plane of node N has been uniquely allocated to | <t pn="section-2-2">An MCC, operating at Node N, must ensure that the inco | |||
ming label it | ||||
installs in the MPLS data plane of Node N has been uniquely allocated to | ||||
itself.</t> | itself.</t> | |||
<t pn="section-2-3">Segment Routing makes use of the Segment Routing Globa | ||||
<t>Segment Routing makes use of the Segment Routing Global Block (SRGB, | l Block (SRGB, | |||
as defined in <xref target="RFC8402"/>) for the | as defined in <xref target="RFC8402" format="default" sectionFormat="of" d | |||
erivedContent="RFC8402"/>) for the | ||||
label allocation. The use of the SRGB allows SR to coexist with any | label allocation. The use of the SRGB allows SR to coexist with any | |||
other MCC.</t> | other MCC.</t> | |||
<t pn="section-2-4">This is clearly the case for the adjacency segment: it | ||||
<t>This is clearly the case for the adjacency segment: it is a local | is a local | |||
label allocated by the label manager, as is the case for for any MCC.</t> | label allocated by the label manager, as is the case for any MCC.</t> | |||
<t pn="section-2-5">This is clearly the case for the prefix segment: the l | ||||
<t>This is clearly the case for the prefix segment: the label manager | abel manager | |||
allocates the SRGB set of labels to the SR MCC client, and the operator | allocates the SRGB set of labels to the SR MCC client, and the operator | |||
ensures the unique allocation of each global prefix segment or label | ensures the unique allocation of each global prefix segment or label | |||
within the allocated SRGB set.</t> | within the allocated SRGB set.</t> | |||
<t pn="section-2-6">Note that this static label-allocation capability of t | ||||
<t>Note that this static label-allocation capability of the label | he label | |||
manager has existed for many years across several vendors and is | manager has existed for many years across several vendors and is | |||
therefore not new. Furthermore, note that the label manager's ability to | therefore not new. Furthermore, note that the label manager's ability to | |||
statically allocate a range of labels to a specific application is not | statically allocate a range of labels to a specific application is not | |||
new either. This is required for MPLS-TP operation. In this case, the | new either. This is required for MPLS-TP operation. In this case, the | |||
range is reserved by the label manager, and it is the MPLS-TP <xref | range is reserved by the label manager, and it is the MPLS-TP <xref target | |||
target="RFC5960"/> Network Management System (acting as an MCC) that ensur | ="RFC5960" format="default" sectionFormat="of" derivedContent="RFC5960"/> Networ | |||
es the unique | k Management System (acting as an MCC) that ensures the unique | |||
allocation of any label within the allocated range and the creation of | allocation of any label within the allocated range and the creation of | |||
the related MPLS forwarding entry.</t> | the related MPLS forwarding entry.</t> | |||
<t pn="section-2-7">Let us illustrate an example of ship-in-the-night (SIN | ||||
<t><list hangIndent="-1" style="hanging"> | ) coexistence. | |||
<t | </t> | |||
hangText="Let us illustrate an example of ship-in-the-night (SIN) coex | <figure anchor="ref-sin-coexistence" align="left" suppress-title="false" p | |||
istence."><vspace | n="figure-1"> | |||
blankLines="0"/></t> | <name slugifiedName="name-sin-coexistence">SIN Coexistence</name> | |||
</list></t> | <artwork name="" type="" align="left" alt="" pn="section-2-8.1"> | |||
<figure anchor="ref-sin-coexistence" title="SIN Coexistence"> | ||||
<artwork><![CDATA[ | ||||
PE2 PE4 | PE2 PE4 | |||
\ / | \ / | |||
PE1----A----B---C---PE3 | PE1----A----B---C---PE3 | |||
]]></artwork> | </artwork> | |||
</figure> | </figure> | |||
<t pn="section-2-9">The EVEN VPN service is supported by PE2 and PE4 while | ||||
<t>The EVEN VPN service is supported by PE2 and PE4 while the ODD VPN | the ODD VPN | |||
service is supported by PE1 and PE3. The operator wants to tunnel the | service is supported by PE1 and PE3. The operator wants to tunnel the | |||
ODD service via LDP and the EVEN service via SR.</t> | ODD service via LDP and the EVEN service via SR.</t> | |||
<t pn="section-2-10">This can be achieved in the following manner: | ||||
<t><list hangIndent="3" style="hanging"> | </t> | |||
<t hangText="This can be achieved in the following manner:"><vspace | <ul bare="false" empty="false" spacing="normal" pn="section-2-11"> | |||
blankLines="1"/> The operator configures PE1, PE2, PE3, and PE4 with | <li pn="section-2-11.1">The operator configures PE1, PE2, PE3, and PE4 w | |||
respective loopbacks 192.0.2.201/32, 192.0.2.202/32, 192.0.2.203/32, | ith respective loopbacks | |||
and 192.0.2.204/32. These PEs advertised their VPN routes with next-ho | 192.0.2.201/32, 192.0.2.202/32, 192.0.2.203/32, and 192.0.2.204/32. These PEs | |||
p set on their respective loopback address. <vspace | advertised their VPN routes with next hop set on their respective loopback | |||
blankLines="1"/> The operator configures A, B, C with respective | address. | |||
loopbacks 192.0.2.1/32, 192.0.2.2/32, 192.0.2.3/32. <vspace | </li> | |||
blankLines="1"/> The operator configures PE2, A, B, C, and PE4 with | <li pn="section-2-11.2">The operator configures A, B, C with respective | |||
SRGB [100, 300]. <vspace blankLines="1"/> The operator attaches the | loopbacks 192.0.2.1/32, | |||
respective Node Segment Identifiers (Node-SIDs, as defined in <xref | 192.0.2.2/32, 192.0.2.3/32. | |||
target="RFC8402"/>), 202, 101, 102, 103, and | </li> | |||
204, to the loopbacks of nodes PE2, A, B, C, and PE4. The Node-SIDs | <li pn="section-2-11.3">The operator configures PE2, A, B, C, and PE4 wi | |||
are configured to request Penultimate Hop Popping. <vspace | th SRGB [100, 300]. | |||
blankLines="1"/> PE1, A, B, C, and PE3 are LDP capable. <vspace | </li> | |||
blankLines="1"/> PE1 and PE3 are not SR capable.</t> | <li pn="section-2-11.4">The operator attaches the respective Node Segmen | |||
</list></t> | t Identifiers (Node SIDs, | |||
as defined in <xref target="RFC8402" format="default" sectionFormat="of" derived | ||||
<t>PE3 sends an ODD VPN route to PE1 with next-hop 192.0.2.203 and VPN | Content="RFC8402"/>), 202, 101, 102, 103, | |||
and 204, to the loopbacks of nodes PE2, A, B, C, and PE4. The Node SIDs are | ||||
configured to request Penultimate Hop Popping. | ||||
</li> | ||||
<li pn="section-2-11.5">PE1, A, B, C, and PE3 are LDP capable. | ||||
</li> | ||||
<li pn="section-2-11.6">PE1 and PE3 are not SR capable. | ||||
</li> | ||||
</ul> | ||||
<t pn="section-2-12">PE3 sends an ODD VPN route to PE1 with next-hop 192.0 | ||||
.2.203 and VPN | ||||
label 10001.</t> | label 10001.</t> | |||
<t pn="section-2-13">From an LDP viewpoint, PE1 received an LDP label bind | ||||
<t>From an LDP viewpoint, PE1 received an LDP label binding (1037) for a | ing (1037) for a | |||
forwarding equivalence class (FEC) 192.0.2.203/32 from its next-hop A; A | Forwarding Equivalence Class (FEC) 192.0.2.203/32 from its next-hop A; A | |||
received an LDP label binding (2048) for that FEC from its next-hop B; B | received an LDP label binding (2048) for that FEC from its next-hop B; B | |||
received an LDP label binding (3059) for that FEC from its next-hop C; | received an LDP label binding (3059) for that FEC from its next-hop C; | |||
and C received implicit-null LDP binding from its next-hop PE3.</t> | and C received implicit NULL LDP binding from its next-hop PE3.</t> | |||
<t pn="section-2-14">As a result, PE1 sends its traffic to the ODD service | ||||
<t>As a result, PE1 sends its traffic to the ODD service route | route | |||
advertised by PE3 to next-hop A with two labels: the top label is 1037 | advertised by PE3 to next-hop A with two labels: the top label is 1037 | |||
and the bottom label is 10001. Node A swaps 1037 with 2048 and forwards | and the bottom label is 10001. Node A swaps 1037 with 2048 and forwards | |||
to B; B swaps 2048 with 3059 and forwards to C; C pops 3059 and forwards | to B; B swaps 2048 with 3059 and forwards to C; C pops 3059 and forwards | |||
to PE3.</t> | to PE3.</t> | |||
<t pn="section-2-15">PE4 sends an EVEN VPN route to PE2 with next-hop 192. | ||||
<t>PE4 sends an EVEN VPN route to PE2 with next-hop 192.0.2.204 and VPN | 0.2.204 and VPN | |||
label 10002.</t> | label 10002.</t> | |||
<t pn="section-2-16">From an SR viewpoint, PE2 maps the IGP route 192.0.2. | ||||
<t>From an SR viewpoint, PE2 maps the IGP route 192.0.2.204/32 onto | 204/32 onto | |||
Node-SID 204; node A swaps 204 with 204 and forwards to B; B swaps 204 | Node SID 204; Node A swaps 204 with 204 and forwards to B; B swaps 204 | |||
with 204 and forwards to C; and C pops 204 and forwards to PE4.</t> | with 204 and forwards to C; and C pops 204 and forwards to PE4.</t> | |||
<t pn="section-2-17">As a result, PE2 sends its traffic to the VPN service | ||||
<t>As a result, PE2 sends its traffic to the VPN service route | route | |||
advertised by PE4 to next-hop A with two labels: the top label is 204 | advertised by PE4 to next-hop A with two labels: the top label is 204 | |||
and the bottom label is 10002. Node A swaps 204 with 204 and forwards to | and the bottom label is 10002. Node A swaps 204 with 204 and forwards to | |||
B. B swaps 204 with 204 and forwards to C. C pops 204 and forwards to | B. B swaps 204 with 204 and forwards to C. C pops 204 and forwards to | |||
PE4.</t> | PE4.</t> | |||
<t pn="section-2-18">The two modes of MPLS tunneling coexist. | ||||
<t><list hangIndent="3" style="hanging"> | </t> | |||
<t hangText="The two modes of MPLS tunneling coexist."><vspace | <ul empty="false" bare="false" spacing="normal" pn="section-2-19"> | |||
blankLines="1"/> The ODD service is tunneled from PE1 to PE3 through | <li pn="section-2-19.1">The ODD service is tunneled from PE1 to PE3 thro | |||
a continuous LDP LSP traversing A, B, and C. <vspace blankLines="1"/> | ugh a continuous LDP LSP | |||
The EVEN service is tunneled from PE2 to PE4 through a continuous SR | traversing A, B, and C. | |||
node segment traversing A, B, and C.</t> | </li> | |||
</list></t> | <li pn="section-2-19.2">The EVEN service is tunneled from PE2 to PE4 thr | |||
ough a continuous SR node | ||||
<section anchor="section-2.1" | segment traversing A, B, and C. | |||
title="MPLS2MPLS, MPLS2IP, and IP2MPLS Coexistence"> | </li> | |||
<t>MPLS2MPLS refers to the forwarding behavior where a router receives | </ul> | |||
<section anchor="sec-2.1" numbered="true" toc="include" removeInRFC="false | ||||
" pn="section-2.1"> | ||||
<name slugifiedName="name-mpls2mpls-mpls2ip-and-ip2mp">MPLS2MPLS, MPLS2I | ||||
P, and IP2MPLS Coexistence</name> | ||||
<t pn="section-2.1-1">MPLS2MPLS refers to the forwarding behavior where | ||||
a router receives | ||||
a labeled packet and switches it out as a labeled packet. Several | a labeled packet and switches it out as a labeled packet. Several | |||
MPLS2MPLS entries may be installed in the data plane for the same | MPLS2MPLS entries may be installed in the data plane for the same | |||
prefix.</t> | prefix.</t> | |||
<t pn="section-2.1-2">Let us examine A's MPLS forwarding table as an exa | ||||
<t><list hangIndent="3" style="hanging"> | mple:</t> | |||
<t | <ul empty="true" bare="false" spacing="normal" pn="section-2.1-3"> | |||
hangText="Let us examine A's MPLS forwarding table as an example:">< | <li pn="section-2.1-3.1"> | |||
vspace | <t pn="section-2.1-3.1.1">Incoming label: 1037</t> | |||
blankLines="1"/> Incoming label: 1037</t> | <ul empty="false" bare="false" spacing="normal" pn="section-2.1-3.1. | |||
</list></t> | 2"> | |||
<li pn="section-2.1-3.1.2.1">Outgoing label: 2048</li> | ||||
<figure> | <li pn="section-2.1-3.1.2.2">Outgoing next hop: B</li> | |||
<artwork><![CDATA[ | </ul> | |||
- outgoing label: 2048 | <t pn="section-2.1-3.1.3">Note: This entry is programmed by LDP for | |||
- outgoing next-hop: B | 192.0.2.203/32.</t> | |||
Note: this entry is programmed by LDP for 192.0.2.203/32 | </li> | |||
</ul> | ||||
Incoming label: 203 | <ul empty="true" bare="false" spacing="normal" pn="section-2.1-4"> | |||
<li pn="section-2.1-4.1"> | ||||
- outgoing label: 203 | <t pn="section-2.1-4.1.1">Incoming label: 203</t> | |||
- outgoing next-hop: B | <ul empty="false" bare="false" spacing="normal" pn="section-2.1-4.1. | |||
Note: this entry is programmed by SR for 192.0.2.203/32 | 2"> | |||
]]></artwork> | <li pn="section-2.1-4.1.2.1">Outgoing label: 203</li> | |||
</figure> | <li pn="section-2.1-4.1.2.2">Outgoing next hop: B</li> | |||
</ul> | ||||
<t>These two entries can coexist because their incoming label is | <t pn="section-2.1-4.1.3">Note: This entry is programmed by SR for 1 | |||
92.0.2.203/32.</t> | ||||
</li> | ||||
</ul> | ||||
<t pn="section-2.1-5">These two entries can coexist because their incomi | ||||
ng label is | ||||
unique. The uniqueness is guaranteed by the label manager allocation | unique. The uniqueness is guaranteed by the label manager allocation | |||
rules.</t> | rules.</t> | |||
<t pn="section-2.1-6">The same applies for the MPLS2IP forwarding entrie | ||||
<t>The same applies for the MPLS2IP forwarding entries. MPLS2IP is the | s. MPLS2IP is the | |||
forwarding behavior where a router receives a labeled IPv4/IPv6 packet | forwarding behavior where a router receives a labeled IPv4/IPv6 packet | |||
with one label only, pops the label, and switches the packet out as | with one label only, pops the label, and switches the packet out as | |||
IPv4/IPv6. For IP2MPLS coexistence, refer to <xref | IPv4/IPv6. For IP2MPLS coexistence, refer to <xref target="sec-7.1" form | |||
target="section-7.1"/>.</t> | at="default" sectionFormat="of" derivedContent="Section 6.1"/>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec-4" numbered="true" toc="include" removeInRFC="false" pn | ||||
<section anchor="section-4" title="SR and LDP Interworking"> | ="section-3"> | |||
<t>This section analyzes the case where SR is available in one part of | <name slugifiedName="name-sr-and-ldp-interworking">SR and LDP Interworking | |||
</name> | ||||
<t pn="section-3-1">This section analyzes the case where SR is available i | ||||
n one part of | ||||
the network and LDP is available in another part. It describes how a | the network and LDP is available in another part. It describes how a | |||
continuous MPLS tunnel can be built throughout the network.</t> | continuous MPLS tunnel can be built throughout the network.</t> | |||
<figure anchor="ref-sr-and-ldp-interworking" align="left" suppress-title=" | ||||
<figure anchor="ref-sr-and-ldp-interworking" | false" pn="figure-2"> | |||
title="SR and LDP Interworking"> | <name slugifiedName="name-sr-and-ldp-interworking-2">SR and LDP Interwor | |||
<artwork><![CDATA[ | king</name> | |||
<artwork name="" type="" align="left" alt="" pn="section-3-2.1"> | ||||
PE2 PE4 | PE2 PE4 | |||
\ / | \ / | |||
PE1----P5--P6--P7--P8---PE3 | PE1----P5--P6--P7--P8---PE3 | |||
]]></artwork> | ||||
</figure> | ||||
<t><list hangIndent="3" style="hanging"> | <-----SR----> | |||
<t hangText="Let us analyze the following example:"><vspace | <------LDP------> | |||
blankLines="1"/> P6, P7, P8, PE4, and PE3 are LDP capable. <vspace | </artwork> | |||
blankLines="1"/> PE1, PE2, P5, and P6 are SR capable. PE1, PE2, P5, | </figure> | |||
and P6 are configured with SRGB (100, 200) and respectively with | <t pn="section-3-3">Let us analyze the following example: | |||
node segments 101, 102, 105, and 106. <vspace blankLines="1"/> A | </t> | |||
service flow must be tunneled from PE1 to PE3 over a continuous MPLS | <ul bare="false" empty="false" spacing="normal" pn="section-3-4"> | |||
tunnel encapsulation and therefore, SR and LDP need to interwork.</t> | <li pn="section-3-4.1">P6, P7, P8, PE4, and PE3 are LDP capable. | |||
</list></t> | </li> | |||
<li pn="section-3-4.2">PE1, PE2, P5, and P6 are SR capable. PE1, PE2, P5 | ||||
<t/> | , and P6 are configured | |||
with SRGB (100, 200) and with node segments 101, 102, 105, and 106, respectively | ||||
<section anchor="section-4.1" title="LDP to SR"> | . | |||
<t>In this section, a right-to-left traffic flow is analyzed.</t> | </li> | |||
<li pn="section-3-4.3">A service flow must be tunneled from PE1 to PE3 o | ||||
<t>PE3 has learned a service route whose next-hop is PE1. PE3 has an | ver a continuous MPLS | |||
tunnel encapsulation; therefore, SR and LDP need to interwork. | ||||
</li> | ||||
</ul> | ||||
<section anchor="sec-4.1" numbered="true" toc="include" removeInRFC="false | ||||
" pn="section-3.1"> | ||||
<name slugifiedName="name-ldp-to-sr">LDP to SR</name> | ||||
<t pn="section-3.1-1">In this section, a right-to-left traffic flow is a | ||||
nalyzed.</t> | ||||
<t pn="section-3.1-2">PE3 has learned a service route whose next hop is | ||||
PE1. PE3 has an | ||||
LDP label binding from the next-hop P8 for the FEC "PE1". Therefore, PE3 | LDP label binding from the next-hop P8 for the FEC "PE1". Therefore, PE3 | |||
sends its service packet to P8 as per classic LDP behavior.</t> | sends its service packet to P8 as per classic LDP behavior.</t> | |||
<t pn="section-3.1-3">P8 has an LDP label binding from its next-hop P7 f | ||||
<t>P8 has an LDP label binding from its next-hop P7 for the FEC "PE1" | or the FEC "PE1" | |||
and therefore, P8 forwards to P7 as per classic LDP behavior.</t> | and therefore, P8 forwards to P7 as per classic LDP behavior.</t> | |||
<t pn="section-3.1-4">P7 has an LDP label binding from its next-hop P6 f | ||||
<t>P7 has an LDP label binding from its next-hop P6 for the FEC "PE1" | or the FEC "PE1" | |||
and therefore, P7 forwards to P6 as per classic LDP behavior.</t> | and therefore, P7 forwards to P6 as per classic LDP behavior.</t> | |||
<t pn="section-3.1-5">P6 does not have an LDP binding from its next-hop | ||||
<t>P6 does not have an LDP binding from its next-hop P5 for the FEC | P5 for the FEC | |||
"PE1". However, P6 has an SR node segment to the IGP route "PE1". | "PE1". However, P6 has an SR node segment to the IGP route "PE1". | |||
Hence, P6 forwards the packet to P5 and swaps its local LDP label for | Hence, P6 forwards the packet to P5 and swaps its local LDP label for | |||
FEC "PE1" by the equivalent node segment (i.e., 101).</t> | FEC "PE1" by the equivalent node segment (i.e., 101).</t> | |||
<t pn="section-3.1-6">P5 pops 101 (assuming PE1 advertised its node segm | ||||
<t>P5 pops 101 (assuming PE1 advertised its node segment 101 with the | ent 101 with the | |||
penultimate-pop flag set) and forwards to PE1.</t> | penultimate-pop flag set) and forwards to PE1.</t> | |||
<t pn="section-3.1-7">PE1 receives the tunneled packet and processes the | ||||
<t>PE1 receives the tunneled packet and processes the service | service | |||
label.</t> | label.</t> | |||
<t pn="section-3.1-8">The end-to-end MPLS tunnel is built by stitching a | ||||
<t>The end-to-end MPLS tunnel is built from an LDP LSP from PE3 to P6 | n LDP LSP from PE3 to P6 | |||
and the related node segment from P6 to PE1.</t> | and the related node segment from P6 to PE1.</t> | |||
<section anchor="sec-4.1.1" numbered="true" toc="include" removeInRFC="f | ||||
<section anchor="section-4.1.1" title="LDP to SR Behavior"> | alse" pn="section-3.1.1"> | |||
<t>It has to be noted that no additional signaling or state is | <name slugifiedName="name-ldp-to-sr-behavior">LDP to SR Behavior</name | |||
> | ||||
<t pn="section-3.1.1-1">It has to be noted that no additional signalin | ||||
g or state is | ||||
required in order to provide interworking in the direction LDP to | required in order to provide interworking in the direction LDP to | |||
SR.</t> | SR.</t> | |||
<t pn="section-3.1.1-2">An SR node having LDP neighbors <bcp14>MUST</b | ||||
<t>An SR node having LDP neighbors MUST create LDP bindings for each | cp14> create LDP bindings for each | |||
Prefix SID learned in the SR domain by treating SR-learned labels as | Prefix-SID learned in the SR domain by treating SR-learned labels as | |||
if they were learned through an LDP neighbor. In addition, for each | if they were learned through an LDP neighbor. In addition, for each | |||
FEC, the SR node stitches the incoming LDP label to the outgoing SR | FEC, the SR node stitches the incoming LDP label to the outgoing SR | |||
label. This has to be done in both LDP-independent and ordered label | label. This has to be done in both LDP-independent and ordered label | |||
distribution control modes as defined in <xref | distribution control modes as defined in <xref target="RFC5036" format | |||
target="RFC5036"/>.</t> | ="default" sectionFormat="of" derivedContent="RFC5036"/>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec-4.2" numbered="true" toc="include" removeInRFC="false | ||||
<section anchor="section-4.2" title="SR to LDP"> | " pn="section-3.2"> | |||
<t>In this section, the left-to-right traffic flow is analyzed.</t> | <name slugifiedName="name-sr-to-ldp">SR to LDP</name> | |||
<t pn="section-3.2-1">In this section, the left-to-right traffic flow is | ||||
<t>This section defines the Segment Routing Mapping Server (SRMS). The | analyzed.</t> | |||
<t pn="section-3.2-2">This section defines the Segment Routing Mapping S | ||||
erver (SRMS). The | ||||
SRMS is an IGP node advertising mapping between Segment Identifiers | SRMS is an IGP node advertising mapping between Segment Identifiers | |||
(SID) and prefixes advertised by other IGP nodes. The SRMS uses a | (SID) and prefixes advertised by other IGP nodes. The SRMS uses a | |||
dedicated IGP extension (IS-IS, OSPFv2, and OSPFv3), which is protocol | dedicated IGP extension (IS-IS, OSPFv2, and OSPFv3), which is protocol | |||
specific and defined in <xref | specific and defined in <xref target="RFC8665" format="default" sectionF | |||
target="RFC8665"/>, <xref | ormat="of" derivedContent="RFC8665"/>, <xref target="RFC8666" format="default" s | |||
target="RFC8666"/>, and <xref | ectionFormat="of" derivedContent="RFC8666"/>, and <xref target="RFC8667" format= | |||
target="RFC8667"/>.</t> | "default" sectionFormat="of" derivedContent="RFC8667"/>.</t> | |||
<t pn="section-3.2-3">The SRMS function of an SR-capable router allows d | ||||
<t>The SRMS function of an SR-capable router allows distribution of | istribution of | |||
mappings for prefixes not locally attached to the advertising router | mappings for prefixes not locally attached to the advertising router | |||
and therefore allows advertisement of mappings on behalf of | and therefore allows advertisement of mappings on behalf of | |||
non-SR-capable routers.</t> | non-SR-capable routers.</t> | |||
<t pn="section-3.2-4">The SRMS is a control-plane-only function that may | ||||
<t>The SRMS is a control-plane-only function that may be located | be located | |||
anywhere in the IGP flooding scope. At least one SRMS server MUST | anywhere in the IGP flooding scope. At least one SRMS server <bcp14>MUST | |||
exist in a routing domain to advertise Prefix SIDs on behalf of non&nbhy | </bcp14> | |||
;SR | exist in a routing domain to advertise Prefix-SIDs on behalf of non‑SR | |||
nodes, thereby allowing non-LDP routers to send and receive labeled | nodes, thereby allowing non-LDP routers to send and receive labeled | |||
traffic from LDP-only routers. Multiple SRMSes may be present in the | traffic from LDP-only routers. Multiple SRMSes may be present in the | |||
same network (for redundancy). This implies that there are multiple | same network (for redundancy). This implies that there are multiple | |||
ways a prefix-to-SID mapping can be advertised. Conflicts resulting | ways a prefix-to-SID mapping can be advertised. Conflicts resulting | |||
from inconsistent advertisements are addressed by <xref | from inconsistent advertisements are addressed by <xref target="RFC8660" | |||
target="RFC8660"/>.</t> | format="default" sectionFormat="of" derivedContent="RFC8660"/>.</t> | |||
<t pn="section-3.2-5">The example depicted in <xref target="ref-sr-and-l | ||||
<t>The example depicted in <xref target="ref-sr-and-ldp-interworking"/> | dp-interworking" format="default" sectionFormat="of" derivedContent="Figure 2"/> | |||
assumes that the operator | assumes that the operator | |||
configures P5 to act as a Segment Routing Mapping Server (SRMS) and | configures P5 to act as a Segment Routing Mapping Server and | |||
advertises the following mappings: (P7, 107), (P8, 108), (PE3, 103), | advertises the following mappings: (P7, 107), (P8, 108), (PE3, 103), | |||
and (PE4, 104).</t> | and (PE4, 104).</t> | |||
<t pn="section-3.2-6">The mappings advertised by one or more SRMSes resu | ||||
<t>The mappings advertised by one or more SRMSes result from local | lt from local | |||
policy information configured by the operator.</t> | policy information configured by the operator.</t> | |||
<t pn="section-3.2-7">If PE3 had been SR capable, the operator would hav | ||||
<t>If PE3 had been SR capable, the operator would have configured PE3 | e configured PE3 | |||
with node segment 103. Instead, as PE3 is not SR capable, the operator | with node segment 103. Instead, as PE3 is not SR capable, the operator | |||
configures that policy at the SRMS and it is the latter that | configures that policy at the SRMS and it is the latter that | |||
advertises the mapping.</t> | advertises the mapping.</t> | |||
<t pn="section-3.2-8">The Mapping Server Advertisements are only underst | ||||
<t>The mapping server advertisements are only understood by SR-capable | ood by SR-capable | |||
routers. The SR-capable routers install the related node segments in | routers. The SR-capable routers install the related node segments in | |||
the MPLS data plane exactly like the node segments had been advertised | the MPLS data plane exactly like the node segments had been advertised | |||
by the nodes themselves.</t> | by the nodes themselves.</t> | |||
<t pn="section-3.2-9">For example, PE1 installs the node segment 103 wit | ||||
<t>For example, PE1 installs the node segment 103 with next-hop P5 | h next-hop P5 | |||
exactly as if PE3 had advertised node segment 103.</t> | exactly as if PE3 had advertised node segment 103.</t> | |||
<t pn="section-3.2-10">PE1 has a service route whose next hop is PE3. PE | ||||
<t>PE1 has a service route whose next-hop is PE3. PE1 has a node | 1 has a node | |||
segment for that IGP route: 103 with next-hop P5. Hence, PE1 sends its | segment for that IGP route: 103 with next-hop P5. Hence, PE1 sends its | |||
service packet to P5 with two labels: the bottom label is the service | service packet to P5 with two labels: the bottom label is the service | |||
label and the top label is 103.</t> | label and the top label is 103.</t> | |||
<t pn="section-3.2-11">P5 swaps 103 for 103 and forwards to P6.</t> | ||||
<t>P5 swaps 103 for 103 and forwards to P6.</t> | <t pn="section-3.2-12">P6's next hop for the IGP route "PE3" is not SR c | |||
apable (P7 does | ||||
<t>P6's next-hop for the IGP route "PE3" is not SR capable (P7 does | ||||
not advertise the SR capability). However, P6 has an LDP label binding | not advertise the SR capability). However, P6 has an LDP label binding | |||
from that next-hop for the same FEC (e.g., LDP label 1037). Hence, P6 | from that next hop for the same FEC (e.g., LDP label 1037). Hence, P6 | |||
swaps 103 for 1037 and forwards to P7.</t> | swaps 103 for 1037 and forwards to P7.</t> | |||
<t pn="section-3.2-13">P7 swaps this label with the LDP label received f | ||||
<t>P7 swaps this label with the LDP label received from P8 and | rom P8 and | |||
forwards to P8.</t> | forwards to P8.</t> | |||
<t pn="section-3.2-14">P8 pops the LDP label and forwards to PE3.</t> | ||||
<t>P8 pops the LDP label and forwards to PE3.</t> | <t pn="section-3.2-15">PE3 receives the tunneled packet and processes th | |||
e service | ||||
<t>PE3 receives the tunneled packet and processes the service | ||||
label.</t> | label.</t> | |||
<t pn="section-3.2-16">The end-to-end MPLS tunnel is built by stitching | ||||
<t>The end-to-end MPLS tunnel is built from an SR node segment from | an SR node segment from | |||
PE1 to P6 and an LDP LSP from P6 to PE3.</t> | PE1 to P6 and an LDP LSP from P6 to PE3.</t> | |||
<t pn="section-3.2-17">SR-mapping advertisement for a given prefix provi | ||||
<t>SR-mapping advertisement for a given prefix provides no information | des no information | |||
about Penultimate Hop Popping. Other mechanisms, such as IGP-specific | about Penultimate Hop Popping. Other mechanisms, such as IGP-specific | |||
mechanisms (<xref target="RFC8665"/>, | mechanisms (<xref target="RFC8665" format="default" sectionFormat="of" d | |||
<xref target="RFC8666"/> and <xref | erivedContent="RFC8665"/>, | |||
target="RFC8667"/>), MAY be | <xref target="RFC8666" format="default" sectionFormat="of" derivedConten | |||
t="RFC8666"/>, and <xref target="RFC8667" format="default" sectionFormat="of" de | ||||
rivedContent="RFC8667"/>), <bcp14>MAY</bcp14> be | ||||
used to determine the Penultimate Hop Popping in such case.</t> | used to determine the Penultimate Hop Popping in such case.</t> | |||
<aside pn="section-3.2-18"> | ||||
<t>Note: In the previous example, Penultimate Hop Popping is not | <t pn="section-3.2-18.1">Note: In the previous example, Penultimate Ho | |||
performed at the SR/LDP border for segment 103 (PE3), because none of | p Popping is not | |||
performed at the SR-LDP border for segment 103 (PE3), because none of | ||||
the routers in the SR domain are Penultimate Hop for segment 103. In | the routers in the SR domain are Penultimate Hop for segment 103. In | |||
this case, P6 requires the presence of the segment 103 such as to map | this case, P6 requires the presence of the segment 103 such as to map | |||
it to the LDP label 1037.</t> | it to the LDP label 1037.</t> | |||
</aside> | ||||
<section anchor="section-4.2.1" | <section anchor="sec-4.2.1" numbered="true" toc="include" removeInRFC="f | |||
title="Segment Routing Mapping Server (SRMS)"> | alse" pn="section-3.2.1"> | |||
<t>This section specifies the concept and externally visible | <name slugifiedName="name-segment-routing-mapping-ser">Segment Routing | |||
functionality of a segment routing mapping server (SRMS).</t> | Mapping Server (SRMS)</name> | |||
<t pn="section-3.2.1-1">This section specifies the concept and externa | ||||
<t>The purpose of SRMS functionality is to support the | lly visible | |||
advertisement of Prefix SIDs to a prefix without the need to | functionality of a Segment Routing Mapping Server (SRMS).</t> | |||
<t pn="section-3.2.1-2">The purpose of SRMS functionality is to suppor | ||||
t the | ||||
advertisement of Prefix-SIDs to a prefix without the need to | ||||
explicitly advertise such assignment within a prefix reachability | explicitly advertise such assignment within a prefix reachability | |||
advertisement. Examples of explicit Prefix SID advertisement are the | advertisement. Examples of explicit Prefix-SID Advertisement are the | |||
Prefix SID sub-TLVs defined in <xref | Prefix-SID sub-TLVs defined in <xref target="RFC8665" format="default" | |||
target="RFC8665"/>, <xref | sectionFormat="of" derivedContent="RFC8665"/>, <xref target="RFC8666" format="d | |||
target="RFC8666"/>, and <xref | efault" sectionFormat="of" derivedContent="RFC8666"/>, and <xref target="RFC8667 | |||
target="RFC8667"/>.</t> | " format="default" sectionFormat="of" derivedContent="RFC8667"/>.</t> | |||
<t pn="section-3.2.1-3">The SRMS functionality allows assigning of Pre | ||||
<t>The SRMS functionality allows assigning of Prefix SIDs to | fix-SIDs to | |||
prefixes owned by non-SR-capable routers as well as to prefixes | prefixes owned by non-SR-capable routers as well as to prefixes | |||
owned by SR-capable nodes. It is the former capability that is | owned by SR-capable nodes. It is the former capability that is | |||
essential to the SR-LDP interworking described later in this | essential to the SR-LDP interworking described later in this | |||
section.</t> | section.</t> | |||
<t pn="section-3.2.1-4">The SRMS functionality consists of two functio | ||||
<t>The SRMS functionality consists of two functional blocks: the | nal blocks: the | |||
Mapping Server (MS) and Mapping Client (MC).</t> | Mapping Server (MS) and Mapping Client (MC).</t> | |||
<t pn="section-3.2.1-5">An MS is a node that advertises an SR mappings | ||||
<t>An MS is a node that advertises an SR mappings. Advertisements | . Advertisements | |||
sent by an MS define the assignment of a Prefix SID to a prefix | sent by an MS define the assignment of a Prefix-SID to a prefix | |||
independent of the advertisement of reachability to the prefix | independent of the advertisement of reachability to the prefix | |||
itself. An MS MAY advertise SR mappings for any prefix whether or | itself. An MS <bcp14>MAY</bcp14> advertise SR mappings for any prefix whether or | |||
not it advertises reachability for the prefix and irrespective of | not it advertises reachability for the prefix and irrespective of | |||
whether that prefix is advertised by or even reachable through any | whether that prefix is advertised by or even reachable through any | |||
router in the network.</t> | router in the network.</t> | |||
<t pn="section-3.2.1-6">An MC is a node that receives and uses the MS | ||||
<t>An MC is a node that receives and uses the MS mapping | mapping | |||
advertisements. Note that a node may be both an MS and an MC. An MC | advertisements. Note that a node may be both an MS and an MC. An MC | |||
interprets the SR-mapping advertisement as an assignment of a | interprets the SR-mapping advertisement as an assignment of a | |||
Prefix SID to a prefix. For a given prefix, if an MC receives an | Prefix-SID to a prefix. For a given prefix, if an MC receives an | |||
SR-mapping advertisement from a mapping server and also has received | SR-mapping advertisement from a Mapping Server and also has received | |||
a Prefix SID advertisement for that same prefix in a prefix | a Prefix-SID Advertisement for that same prefix in a prefix | |||
reachability advertisement, then the MC MUST prefer the SID | reachability advertisement, then the MC <bcp14>MUST</bcp14> prefer the | |||
SID | ||||
advertised in the prefix reachability advertisement over the | advertised in the prefix reachability advertisement over the | |||
mapping server advertisement, i.e., the mapping server advertisement | Mapping Server Advertisement, i.e., the Mapping Server Advertisement | |||
MUST be ignored for that prefix. Hence, assigning a Prefix SID to a | <bcp14>MUST</bcp14> be ignored for that prefix. Hence, assigning a Pre | |||
fix-SID to a | ||||
prefix using the SRMS functionality does not preclude assigning the | prefix using the SRMS functionality does not preclude assigning the | |||
same or different Prefix SID(s) to the same prefix using explicit | same or different Prefix-SID(s) to the same prefix using explicit | |||
Prefix SID advertisement such as the aforementioned Prefix SID | Prefix-SID Advertisement such as the aforementioned Prefix-SID | |||
sub-TLVs.</t> | sub-TLVs.</t> | |||
<t pn="section-3.2.1-7">For example, consider an IPv4 prefix advertise | ||||
<t>For example, consider an IPv4 prefix advertisement received by an | ment received by an | |||
IS&nbhy;IS router in the Extended IP reachability TLV (TLV 135). Suppo | IS‑IS router in the Extended IP reachability TLV (TLV 135). Suppose | |||
se | TLV 135 contained the Prefix-SID sub-TLV. If the router that | |||
TLV 135 contained the Prefix SID sub-TLV. If the router that | receives TLV 135 with the Prefix-SID sub-TLV also received an | |||
receives TLV 135 with the Prefix SID sub-TLV also received an | ||||
SR-mapping advertisement for the same prefix through the | SR-mapping advertisement for the same prefix through the | |||
SID/Label Binding TLV, then the receiving router must prefer the | SID/Label Binding TLV, then the receiving router must prefer the | |||
Prefix SID sub-TLV over the SID/Label Binding TLV for that | Prefix-SID sub-TLV over the SID/Label Binding TLV for that | |||
prefix. Refer to <xref | prefix. Refer to <xref target="RFC8667" format="default" sectionFormat | |||
target="RFC8667"/> for details | ="of" derivedContent="RFC8667"/> for details | |||
about the Prefix SID sub-TLV and SID/Label Binding TLV.</t> | about the Prefix-SID sub-TLV and SID/Label Binding TLV.</t> | |||
</section> | </section> | |||
<section anchor="sec-4.2.2" numbered="true" toc="include" removeInRFC="f | ||||
<section anchor="section-4.2.2" title="SR to LDP Behavior"> | alse" pn="section-3.2.2"> | |||
<t>SR to LDP interworking requires an SRMS as defined above.</t> | <name slugifiedName="name-sr-to-ldp-behavior">SR to LDP Behavior</name | |||
> | ||||
<t>Each SR-capable router installs in the MPLS data-plane Node-SIDs | <t pn="section-3.2.2-1">SR to LDP interworking requires an SRMS as def | |||
learned from the SRMS exactly like if these SIDs had been advertised | ined above.</t> | |||
<t pn="section-3.2.2-2">Each SR-capable router installs in the MPLS da | ||||
ta-plane Node SIDs | ||||
learned from the SRMS exactly as if these SIDs had been advertised | ||||
by the nodes themselves.</t> | by the nodes themselves.</t> | |||
<t pn="section-3.2.2-3">An SR node having LDP-only neighbors <bcp14>MU | ||||
<t>An SR node having LDP neighbors MUST stitch the incoming SR label | ST</bcp14> stitch the incoming SR label | |||
(whose SID is advertised by the SRMS) to the outgoing LDP label.</t> | (whose SID is advertised by the SRMS) to the outgoing LDP label.</t> | |||
<t pn="section-3.2.2-4">It has to be noted that the SR to LDP behavior | ||||
<t>It has to be noted that the SR to LDP behavior does not propagate | does not propagate | |||
the status of the LDP FEC that was signaled if LDP was configured | the status of the LDP FEC that was signaled by LDP when configured | |||
to use the ordered mode.</t> | in ordered mode.</t> | |||
<t pn="section-3.2.2-5">It has to be noted that in the case of SR to L | ||||
<t>It has to be noted that in the case of SR to LDP, the label | DP, the label | |||
binding is equivalent to the independent LDP Label Distribution | binding is equivalent to the independent LDP Label Distribution | |||
Control Mode <xref target="RFC5036"/> where a label is bound to a | Control Mode <xref target="RFC5036" format="default" sectionFormat="of " derivedContent="RFC5036"/> where a label is bound to a | |||
FEC independently from the received binding for the same FEC.</t> | FEC independently from the received binding for the same FEC.</t> | |||
</section> | </section> | |||
<section anchor="sec-4.2.3" numbered="true" toc="include" removeInRFC="f | ||||
<section anchor="section-4.2.3" | alse" pn="section-3.2.3"> | |||
title="Interoperability of Multiple SRMSes and Prefix SID Adver | <name slugifiedName="name-interoperability-of-multipl">Interoperabilit | |||
tisements"> | y of Multiple SRMSes and Prefix-SID Advertisements</name> | |||
<t>In the case of SR/LDP interoperability through the use of an SRMS, | <t pn="section-3.2.3-1">In the case of SR-LDP interoperability through | |||
the use of an SRMS, | ||||
mappings are advertised by one or more SRMSes.</t> | mappings are advertised by one or more SRMSes.</t> | |||
<t pn="section-3.2.3-2">SRMS functionality is implemented in the link- | ||||
<t>SRMS functionality is implemented in the link-state protocol (such | state protocol (such as | |||
as | ||||
IS-IS and OSPF). Link-state protocols allow propagation of updates | IS-IS and OSPF). Link-state protocols allow propagation of updates | |||
across area boundaries and, therefore, SRMS advertisements are | across area boundaries and, therefore, SRMS advertisements are | |||
propagated through the usual inter-area advertisement procedures in | propagated through the usual inter-area advertisement procedures in | |||
link-state protocols.</t> | link-state protocols.</t> | |||
<t pn="section-3.2.3-3">Multiple SRMSes can be provisioned in a networ | ||||
<t>Multiple SRMSes can be provisioned in a network for redundancy. | k for redundancy. | |||
Moreover, a preference mechanism may also be used among SRMSes to | Moreover, a preference mechanism may also be used among SRMSes to | |||
deploy a primary/secondary SRMS scheme allowing controlled | deploy a primary/secondary SRMS scheme allowing controlled | |||
modification or migration of SIDs.</t> | modification or migration of SIDs.</t> | |||
<t pn="section-3.2.3-4">The content of SRMS advertisement (i.e., mappi | ||||
<t>The content of SRMS advertisement (i.e., mappings) are a matter | ngs) are a matter | |||
of local policy determined by the operator. When multiple SRMSes are | of local policy determined by the operator. When multiple SRMSes are | |||
active, it is necessary that the information (mappings) advertised | active, it is necessary that the information (mappings) advertised | |||
by the different SRMSes is aligned and consistent. The following | by the different SRMSes is aligned and consistent. The following | |||
mechanism is applied to determine the preference of SRMS | mechanism is applied to determine the preference of SRMS | |||
advertisements:</t> | advertisements:</t> | |||
<t pn="section-3.2.3-5">If a node acts as an SRMS, it <bcp14>MAY</bcp1 | ||||
<t>If a node acts as an SRMS, it MAY advertise a preference to be | 4> advertise a preference to be | |||
associated with all SRMS SID advertisements sent by that node. The | associated with all SRMS SID Advertisements sent by that node. The | |||
means of advertising the preference is defined in the | means of advertising the preference is defined in the | |||
protocol-specific documents, e.g., <xref | protocol-specific documents, e.g., <xref target="RFC8665" format="defa | |||
target="RFC8665"/>, <xref | ult" sectionFormat="of" derivedContent="RFC8665"/>, <xref target="RFC8666" forma | |||
target="RFC8666"/>, and <xref | t="default" sectionFormat="of" derivedContent="RFC8666"/>, and <xref target="RFC | |||
target="RFC8667"/>. The | 8667" format="default" sectionFormat="of" derivedContent="RFC8667"/>. The | |||
preference value is an unsigned 8-bit integer with the following | preference value is an unsigned 8-bit integer with the following | |||
properties:</t> | properties:</t> | |||
<table anchor="table_1" align="center" pn="table-1"> | ||||
<t><list style="hanging"> | <tbody> | |||
<t>0 - Reserved value indicating advertisements from that node | <tr> | |||
MUST NOT be used.</t> | <td align="center" colspan="1" rowspan="1">0</td> | |||
<td align="left" colspan="1" rowspan="1">Reserved value indicati | ||||
<t>1 - 255 Preference value (255 is most preferred)</t> | ng advertisements from that | |||
</list>Advertisement of a preference value is optional. Nodes | node <bcp14>MUST NOT</bcp14> be used</td> | |||
</tr> | ||||
<tr> | ||||
<td align="center" colspan="1" rowspan="1">1-255</td> | ||||
<td align="left" colspan="1" rowspan="1">Preference value (255 i | ||||
s most preferred)</td> | ||||
</tr> | ||||
</tbody> | ||||
</table> | ||||
<t pn="section-3.2.3-7">Advertisement of a preference value is optiona | ||||
l. Nodes | ||||
that do not advertise a preference value are assigned a preference | that do not advertise a preference value are assigned a preference | |||
value of 128.</t> | value of 128.</t> | |||
<t pn="section-3.2.3-8">An MCC on a node receiving one or more SRMS ma | ||||
<t>An MCC on a node receiving one or more SRMS mapping advertisements | pping advertisements | |||
applies them as follows:</t> | applies them as follows:</t> | |||
<ul spacing="normal" bare="false" empty="false" pn="section-3.2.3-9"> | ||||
<t><list style="symbols"> | <li pn="section-3.2.3-9.1">For any prefix for which it did not recei | |||
<t>For any prefix for which it did not receive a Prefix SID | ve a Prefix-SID | |||
advertisement, the MCC applies the SRMS mapping advertisements | Advertisement, the MCC applies the SRMS mapping advertisements | |||
with the highest preference. The mechanism by which a Prefix SID | with the highest preference. The mechanism by which a Prefix-SID | |||
is advertised for a given prefix is defined in the protocol | is advertised for a given prefix is defined in the protocol | |||
specifications <xref target="RFC8665"/>, | specifications <xref target="RFC8665" format="default" sectionForm | |||
<xref target="RFC8666"/>, and | at="of" derivedContent="RFC8665"/>, | |||
<xref | <xref target="RFC8666" format="default" sectionFormat="of" derived | |||
target="RFC8667"/>.</t> | Content="RFC8666"/>, and | |||
<xref target="RFC8667" format="default" sectionFormat="of" derived | ||||
<t>If there is an incoming label collision as specified in <xref | Content="RFC8667"/>.</li> | |||
target="RFC8660"/>, apply the | <li pn="section-3.2.3-9.2">If there is an incoming label collision a | |||
steps specified in <xref | s specified in <xref target="RFC8660" format="default" sectionFormat="of" derive | |||
target="RFC8660"/> to resolve the | dContent="RFC8660"/>, apply the | |||
collision.</t> | steps specified in <xref target="RFC8660" format="default" section | |||
</list></t> | Format="of" derivedContent="RFC8660"/> to resolve the | |||
collision.</li> | ||||
<t>When the SRMS advertises mappings, an implementation should | </ul> | |||
<t pn="section-3.2.3-10">When the SRMS advertises mappings, an impleme | ||||
ntation should | ||||
provide a mechanism through which the operator determines which of | provide a mechanism through which the operator determines which of | |||
the IP2MPLS mappings are preferred among the one advertised by the | the IP2MPLS mappings are preferred among the one advertised by the | |||
SRMS and the ones advertised by LDP.</t> | SRMS and the ones advertised by LDP.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec-5" numbered="true" toc="include" removeInRFC="false" pn | ||||
<section anchor="section-5" title="SR/LDP Interworking Use Cases"> | ="section-4"> | |||
<t>SR can be deployed, for example, to enhance LDP transport. The SR | <name slugifiedName="name-sr-ldp-interworking-use-cas">SR-LDP Interworking | |||
Use Cases</name> | ||||
<t pn="section-4-1">SR can be deployed, for example, to enhance LDP transp | ||||
ort. The SR | ||||
deployment can be limited to the network region where the SR benefits | deployment can be limited to the network region where the SR benefits | |||
are most desired.</t> | are most desired.</t> | |||
<section anchor="sec-5.1" numbered="true" toc="include" removeInRFC="false | ||||
<section anchor="section-5.1" title="SR Protection of LDP-Based Traffic"> | " pn="section-4.1"> | |||
<t>In <xref target="ref-sr-ldp-interworking-example"/>, let us assume: | <name slugifiedName="name-sr-protection-of-ldp-based-">SR Protection of | |||
<list style="empty"> | LDP-Based Traffic</name> | |||
<t> | <t pn="section-4.1-1">In <xref target="ref-sr-ldp-interworking-example" | |||
All link costs are 10 except FG, which is 30.</t> | format="default" sectionFormat="of" derivedContent="Figure 3"/>, let us assume: | |||
<t> All routers are LDP capable.</t> | </t> | |||
<t> X, Y, and Z are PEs participating in an important service S.</t> | <ul empty="false" spacing="normal" bare="false" pn="section-4.1-2"> | |||
<t> The operator requires 50 msec link-based Fast Reroute (FRR) for ser | <li pn="section-4.1-2.1"> | |||
vice S.</t> | All link costs are 10 except FG, which is 30.</li> | |||
<t> A, B, C, D, E, F, and G are SR capable.</t> | <li pn="section-4.1-2.2"> All routers are LDP capable.</li> | |||
<t> X, Y, and Z are not SR capable, e.g., as part of a | <li pn="section-4.1-2.3"> X, Y, and Z are PEs participating in an impo | |||
rtant service S.</li> | ||||
<li pn="section-4.1-2.4"> The operator requires 50 msec link-based Fas | ||||
t Reroute (FRR) for service S.</li> | ||||
<li pn="section-4.1-2.5"> A, B, C, D, E, F, and G are SR capable.</li> | ||||
<li pn="section-4.1-2.6"> X, Y, and Z are not SR capable, e.g., as par | ||||
t of a | ||||
staged migration from LDP to SR, the operator deploys SR first in | staged migration from LDP to SR, the operator deploys SR first in | |||
a subpart of the network and then everywhere.</t> | a subpart of the network and then everywhere.</li> | |||
</list></t> | </ul> | |||
<figure anchor="ref-sr-ldp-interworking-example" align="left" suppress-t | ||||
<figure anchor="ref-sr-ldp-interworking-example" | itle="false" pn="figure-3"> | |||
title="SR/LDP Interworking Example"> | <name slugifiedName="name-sr-ldp-interworking-example">SR-LDP Interwor | |||
<artwork><![CDATA[ | king Example</name> | |||
<artwork name="" type="" align="left" alt="" pn="section-4.1-3.1"> | ||||
X | X | |||
| | | | |||
Y--A---B---E--Z | Y--A---B---E--Z | |||
| | \ | | | \ | |||
D---C--F--G | D---C--F--G | |||
30 | 30 | |||
]]></artwork> | </artwork> | |||
</figure> | </figure> | |||
<t pn="section-4.1-4">The operator would like to resolve the following i | ||||
<t><list hangIndent="3" style="hanging"> | ssues: | |||
<t | </t> | |||
hangText="The operator would like to resolve the following issues:"> | <ul empty="false" spacing="normal" bare="false" pn="section-4.1-5"> | |||
<vspace | <li pn="section-4.1-5.1">To protect the link BA along the shortest-pat | |||
blankLines="1"/> To protect the link BA along the shortest-path of | h of the important flow XY, | |||
the important flow XY, B requires a Remote Loop-Free Alternate | B requires a Remote Loop-Free Alternate (RLFA; see <xref target="RFC7490" format | |||
(RLFA; see <xref target="RFC7490"/>) repair tunnel to D and, therefo | ="default" sectionFormat="of" derivedContent="RFC7490"/>) repair tunnel to D and | |||
re, a | , therefore, a targeted LDP session | |||
targeted LDP session from B to D. Typically, network operators | from B to D. Typically, network operators prefer avoiding these dynamically | |||
prefer avoiding these dynamically established multi-hop LDP | established multi-hop LDP sessions in order to reduce the number of protocols | |||
sessions in order to reduce the number of protocols running in the | running in the network and, therefore, simplify network operations. | |||
network and, therefore, simplify network operations. <vspace | </li> | |||
blankLines="1"/> There is no LFA/RLFA solution to protect the link | <li pn="section-4.1-5.2">There is no LFA/RLFA solution to protect the | |||
BE along the shortest path of the important flow XZ. The operator | link BE along the shortest | |||
wants a guaranteed link-based FRR solution.</t> | path of the important flow XZ. The operator wants a guaranteed link-based FRR so | |||
</list></t> | lution. | |||
</li> | ||||
<t>The operator can meet these objectives by deploying SR only on A, | </ul> | |||
<t pn="section-4.1-6">The operator can meet these objectives by deployin | ||||
g SR only on A, | ||||
B, C, D, E, F, and G:</t> | B, C, D, E, F, and G:</t> | |||
<ul bare="false" empty="false" spacing="normal" pn="section-4.1-7"> | ||||
<t><list hangIndent="3" style="hanging"> | <li pn="section-4.1-7.1">The operator configures A, B, C, D, E, F, and | |||
<t>The operator configures A, B, C, D, E, F, and G with SRGB [100, | G with SRGB [100, 200] and | |||
200] and respective node segments 101, 102, 103, 104, 105, 106, and | with node segments 101, 102, 103, 104, 105, 106, and 107, respectively. | |||
107.</t> | </li> | |||
</list></t> | <li pn="section-4.1-7.2">The operator configures D as an SR Mapping Se | |||
rver with the following | ||||
<t><list hangIndent="3" style="hanging"> | policy mapping: (X, 201), (Y, 202), and (Z, 203). | |||
<t>The operator configures D as an SR Mapping Server with the | </li> | |||
following policy mapping: (X, 201), (Y, 202), and (Z, 203).</t> | <li pn="section-4.1-7.3">Each SR node automatically advertises a local | |||
</list></t> | adjacency segment for its | |||
IGP adjacencies. Specifically, F advertises adjacency segment 9001 for its | ||||
<t><list hangIndent="3" style="hanging"> | adjacency FG. | |||
<t>Each SR node automatically advertises a local adjacency segment | </li> | |||
for its IGP adjacencies. Specifically, F advertises adjacency | </ul> | |||
segment 9001 for its adjacency FG.</t> | <t pn="section-4.1-8">A, B, C, D, E, F, and G keep their LDP capability. | |||
</list></t> | Therefore, the | |||
<t>A, B, C, D, E, F, and G keep their LDP capability. Therefore, the | ||||
flows XY and XZ are transported over end-to-end LDP LSPs.</t> | flows XY and XZ are transported over end-to-end LDP LSPs.</t> | |||
<t pn="section-4.1-9">For example, LDP at B installs the following MPLS | ||||
<t>For example, LDP at B installs the following MPLS data-plane | data-plane | |||
entries:</t> | entries:</t> | |||
<ul empty="true" bare="false" spacing="normal" pn="section-4.1-10"> | ||||
<t><list hangIndent="3" style="hanging"> | <li pn="section-4.1-10.1"> | |||
<t | <t pn="section-4.1-10.1.1">Incoming label: local LDP label bound by | |||
hangText="Incoming label: local LDP label bound by B for FEC Y"><vsp | B for FEC Y</t> | |||
ace | <ul empty="false" bare="false" spacing="normal" pn="section-4.1-10.1 | |||
blankLines="0"/> Outgoing label: LDP label bound by A for FEC | .2"> | |||
Y<vspace blankLines="0"/> Outgoing next-hop: A</t> | <li pn="section-4.1-10.1.2.1">Outgoing label: LDP label bound by A | |||
for FEC Y</li> | ||||
<t | <li pn="section-4.1-10.1.2.2">Outgoing next hop: A</li> | |||
hangText="Incoming label: local LDP label bound by B for FEC Z"><vsp | </ul> | |||
ace | </li> | |||
blankLines="0"/>Outgoing label: LDP label bound by E for FEC | <li pn="section-4.1-10.2"> | |||
Z<vspace blankLines="0"/>Outgoing next-hop: E</t> | <t pn="section-4.1-10.2.1">Incoming label: local LDP label bound by | |||
</list></t> | B for FEC Z</t> | |||
<ul empty="false" bare="false" spacing="normal" pn="section-4.1-10.2 | ||||
<t>The novelty comes from how the backup chains are computed for these | .2"> | |||
<li pn="section-4.1-10.2.2.1">Outgoing label: LDP label bound by E | ||||
for FEC Z </li> | ||||
<li pn="section-4.1-10.2.2.2">Outgoing next hop: E </li> | ||||
</ul> | ||||
</li> | ||||
</ul> | ||||
<t pn="section-4.1-11">The novelty comes from how the backup chains are | ||||
computed for these | ||||
LDP-based entries. While LDP labels are used for the primary next- hop | LDP-based entries. While LDP labels are used for the primary next- hop | |||
and outgoing labels, SR information is used for the FRR construction. | and outgoing labels, SR information is used for the FRR construction. | |||
In steady state, the traffic is transported over LDP LSP. In transient | In steady state, the traffic is transported over LDP LSP. In transient | |||
FRR state, the traffic is backup thanks to the SR-enhanced | FRR state, the traffic is backup thanks to the SR-enhanced | |||
capabilities.</t> | capabilities.</t> | |||
<t pn="section-4.1-12">The RLFA paths are dynamically precomputed as def | ||||
<t>The RLFA paths are dynamically precomputed as defined in <xref | ined in <xref target="RFC7490" format="default" sectionFormat="of" derivedConten | |||
target="RFC7490"/>. Typically, implementations allow to enable an RLFA | t="RFC7490"/>. Typically, implementations allow to enable an RLFA | |||
mechanism through a simple configuration command that triggers both | mechanism through a simple configuration command that triggers both | |||
the precomputation and installation of the repair path. The details | the precomputation and installation of the repair path. The details | |||
on how RLFA mechanisms are implemented and configured is outside the | on how RLFA mechanisms are implemented and configured is outside the | |||
scope of this document and not relevant to the aspects of SR/LDP | scope of this document and not relevant to the aspects of SR-LDP | |||
interwork explained in this document.</t> | interwork explained in this document.</t> | |||
<t pn="section-4.1-13">This helps meet the requirements of the operator: | ||||
<!-- hmm how about "maintain guaranteed FRR coverage"?--> | </t> | |||
<t><list hangIndent="3" style="hanging"> | <ul bare="false" empty="false" spacing="normal" pn="section-4.1-14"> | |||
<t | <li pn="section-4.1-14.1">Eliminate targeted LDP sessions. | |||
hangText="This helps meet the requirements of the operator:"><vspace | </li> | |||
blankLines="1"/> Eliminate targeted LDP sessions. <vspace | <li pn="section-4.1-14.2">Provide guaranteed FRR coverage. | |||
blankLines="1"/> Guaranteed FRR coverage. <vspace blankLines="1"/> | </li> | |||
Keep the traffic over LDP LSP in steady state. <vspace | <li pn="section-4.1-14.3">Keep the traffic over LDP LSP in steady stat | |||
blankLines="1"/> Partially deploy SR only where needed.</t> | e. | |||
</list></t> | </li> | |||
<li pn="section-4.1-14.4">Partially deploy SR only where needed. | ||||
</li> | ||||
</ul> | ||||
</section> | </section> | |||
<section anchor="sec-5.2" numbered="true" toc="include" removeInRFC="false | ||||
<section anchor="section-5.2" title="Eliminating Targeted LDP Sessions"> | " pn="section-4.2"> | |||
<t>B's MPLS entry to Y becomes:</t> | <name slugifiedName="name-eliminating-targeted-ldp-se">Eliminating Targe | |||
ted LDP Sessions</name> | ||||
<figure> | <t pn="section-4.2-1">B's MPLS entry to Y becomes:</t> | |||
<artwork><![CDATA[ | <ul empty="true" bare="false" spacing="normal" pn="section-4.2-2"> | |||
- Incoming label: local LDP label bound by B for FEC Y | <li pn="section-4.2-2.1"> | |||
Outgoing label: LDP label bound by A for FEC Y | <t pn="section-4.2-2.1.1">Incoming label: local LDP label bound by B | |||
Backup outgoing label: SR node segment for Y {202} | for FEC Y</t> | |||
Outgoing next-hop: A | <ul empty="false" bare="false" spacing="normal" pn="section-4.2-2.1. | |||
Backup next-hop: repair tunnel: node segment to D {104} | 2"> | |||
with outgoing next-hop: C | <li pn="section-4.2-2.1.2.1">Outgoing label: LDP label bound by A | |||
]]></artwork> | for FEC Y</li> | |||
</figure> | <li pn="section-4.2-2.1.2.2">Backup outgoing label: SR node segmen | |||
t for Y {202}</li> | ||||
<t>It has to be noted that D is selected as a Remote Loop-Free Alternate | <li pn="section-4.2-2.1.2.3">Outgoing next hop: A</li> | |||
(RLFA) as defined in <xref target="RFC7490"/>.</t> | <li pn="section-4.2-2.1.2.4">Backup next hop: repair tunnel: node | |||
segment to D {104} with outgoing | ||||
<t>In steady state, X sends its Y-destined traffic to B with a top | next hop: C</li> | |||
</ul> | ||||
</li> | ||||
</ul> | ||||
<t pn="section-4.2-3">It has to be noted that D is selected as a Remote | ||||
Loop-Free Alternate | ||||
(RLFA) as defined in <xref target="RFC7490" format="default" sectionForm | ||||
at="of" derivedContent="RFC7490"/>.</t> | ||||
<t pn="section-4.2-4">In steady state, X sends its Y-destined traffic to | ||||
B with a top | ||||
label, which is the LDP label bound by B for FEC Y. B swaps that top | label, which is the LDP label bound by B for FEC Y. B swaps that top | |||
label for the LDP label bound by A for FEC Y and forwards to A. A pops | label for the LDP label bound by A for FEC Y and forwards to A. A pops | |||
the LDP label and forwards to Y.</t> | the LDP label and forwards to Y.</t> | |||
<t pn="section-4.2-5">Upon failure of the link BA, B swaps the incoming | ||||
<t>Upon failure of the link BA, B swaps the incoming top label with | top label with | |||
the node segment for Y (202) and sends the packet onto a repair tunnel | the node segment for Y (202) and sends the packet onto a repair tunnel | |||
to D (node segment 104). Thus, B sends the packet to C with the label | to D (node segment 104). Thus, B sends the packet to C with the label | |||
stack {104, 202}. C pops the node segment 104 and forwards to D. D | stack {104, 202}. C pops the node segment 104 and forwards to D. D | |||
swaps 202 for 202 and forwards to A. A's next-hop to Y is not SR | swaps 202 for 202 and forwards to A. A's next hop to Y is not SR | |||
capable, and therefore, node A swaps the incoming node segment 202 to th | capable, and therefore, Node A swaps the incoming node segment 202 to th | |||
e | e | |||
LDP label announced by its next-hop (in this case, implicit null).</t> | LDP label announced by its next hop (in this case, implicit NULL).</t> | |||
<t pn="section-4.2-6">After IGP convergence, B's MPLS entry to Y will be | ||||
<t>After IGP convergence, B's MPLS entry to Y will become:</t> | come:</t> | |||
<ul empty="true" bare="false" spacing="normal" pn="section-4.2-7"> | ||||
<figure> | <li pn="section-4.2-7.1"> | |||
<artwork><![CDATA[ | <t pn="section-4.2-7.1.1">Incoming label: local LDP label bound by B | |||
- Incoming label: local LDP label bound by B for FEC Y | for FEC Y</t> | |||
Outgoing label: LDP label bound by C for FEC Y | <ul empty="false" bare="false" spacing="normal" pn="section-4.2-7.1. | |||
Outgoing next-hop: C]]></artwork> | 2"> | |||
</figure> | <li pn="section-4.2-7.1.2.1">Outgoing label: LDP label bound by C | |||
for FEC Y</li> | ||||
<t/> | <li pn="section-4.2-7.1.2.2">Outgoing next hop: C</li> | |||
</ul> | ||||
<t>And the traffic XY travels again over the LDP LSP.</t> | </li> | |||
</ul> | ||||
<t>Conclusion: the operator has eliminated the need for targeted LDP | <t pn="section-4.2-8">And the traffic XY travels again over the LDP LSP. | |||
</t> | ||||
<t pn="section-4.2-9">Conclusion: the operator has eliminated the need f | ||||
or targeted LDP | ||||
sessions (no longer required) and the steady-state traffic is still | sessions (no longer required) and the steady-state traffic is still | |||
transported over LDP. The SR deployment is confined to the area where | transported over LDP. The SR deployment is confined to the area where | |||
these benefits are required.</t> | these benefits are required.</t> | |||
<t pn="section-4.2-10">Despite that, in general, an implementation would | ||||
<t>Despite that, in general, an implementation would not require a | not require a | |||
manual configuration of targeted LDP sessions. However, it is always a | manual configuration of targeted LDP sessions. However, it is always a | |||
gain if the operator is able to reduce the set of protocol sessions | gain if the operator is able to reduce the set of protocol sessions | |||
running on the network infrastructure.</t> | running on the network infrastructure.</t> | |||
</section> | </section> | |||
<section anchor="sec-5.3" numbered="true" toc="include" removeInRFC="false | ||||
<section anchor="section-5.3" title="Guaranteed FRR Coverage"> | " pn="section-4.3"> | |||
<t>As mentioned in <xref target="section-5.1"/>, in the example | <name slugifiedName="name-guaranteed-frr-coverage">Guaranteed FRR Covera | |||
topology described in <xref target="ref-sr-ldp-interworking-example"/>, | ge</name> | |||
there is no RLFA-based solution for | <t pn="section-4.3-1">As mentioned in <xref target="sec-5.1" format="def | |||
ault" sectionFormat="of" derivedContent="Section 4.1"/>, in the example | ||||
topology described in <xref target="ref-sr-ldp-interworking-example" for | ||||
mat="default" sectionFormat="of" derivedContent="Figure 3"/>, there is no RLFA-b | ||||
ased solution for | ||||
protecting the traffic flow YZ against the failure of link BE because | protecting the traffic flow YZ against the failure of link BE because | |||
there is no intersection between the extended P-space and Q-space (see | there is no intersection between the extended P-space and Q-space (see | |||
<xref target="RFC7490"/> for details). However:</t> | <xref target="RFC7490" format="default" sectionFormat="of" derivedConten | |||
t="RFC7490"/> for details). However:</t> | ||||
<t><list style="symbols"> | <ul spacing="normal" bare="false" empty="false" pn="section-4.3-2"> | |||
<t>G belongs to the Q space of Z.</t> | <li pn="section-4.3-2.1">G belongs to the Q space of Z.</li> | |||
<li pn="section-4.3-2.2">G can be reached from B via a "repair SR path | ||||
<t>G can be reached from B via a "repair SR path" {106, 9001} that | " {106, 9001} that | |||
is not affected by failure of link BE. (The method by which G and | is not affected by failure of link BE. (The method by which G and | |||
the repair tunnel to it from B are identified are outside the scope of | the repair tunnel to it from B are identified are outside the scope of | |||
this document.)</t> | this document.)</li> | |||
</list></t> | </ul> | |||
<t pn="section-4.3-3">B's MPLS entry to Z becomes:</t> | ||||
<t>B's MPLS entry to Z becomes:</t> | <ul empty="true" bare="false" spacing="normal" pn="section-4.3-4"> | |||
<li pn="section-4.3-4.1"> | ||||
<figure> | <t pn="section-4.3-4.1.1">Incoming label: local LDP label bound by B | |||
<artwork><![CDATA[ | for FEC Z</t> | |||
- Incoming label: local LDP label bound by B for FEC Z | <ul empty="false" bare="false" spacing="normal" pn="section-4.3-4.1. | |||
Outgoing label: LDP label bound by E for FEC Z | 2"> | |||
Backup outgoing label: SR node segment for Z {203} | <li pn="section-4.3-4.1.2.1">Outgoing label: LDP label bound by E | |||
Outgoing next-hop: E | for FEC Z</li> | |||
Backup next-hop: repair tunnel to G: {106, 9001} | <li pn="section-4.3-4.1.2.2">Backup outgoing label: SR node segmen | |||
]]></artwork></figure> | t for Z {203}</li> | |||
<li pn="section-4.3-4.1.2.3">Outgoing next hop: E</li> | ||||
<t> | <li pn="section-4.3-4.1.2.4">Backup next hop: repair tunnel to G: | |||
<list style="empty"><t><list style="empty"><t> | {106, 9001}</li> | |||
</ul> | ||||
</li> | ||||
</ul> | ||||
<ul empty="true" spacing="normal" bare="false" pn="section-4.3-5"> | ||||
<li pn="section-4.3-5.1"> | ||||
G is reachable from B via the combination of a | G is reachable from B via the combination of a | |||
node segment to F {106} and an adjacency segment | node segment to F {106} and an adjacency segment | |||
FG {9001} | FG {9001}. | |||
</t> | </li> | |||
<t> | <li pn="section-4.3-5.2"> | |||
Note that {106, 107} would have equally work. | Note that {106, 107} would have equally worked. | |||
Indeed, in many cases, P's shortest path to Q is | Indeed, in many cases, P's shortest path to Q is | |||
over the link PQ. The adjacency segment from P to | over the link PQ. The adjacency segment from P to | |||
Q is required only in very rare topologies where | Q is required only in very rare topologies where | |||
the shortest-path from P to Q is not via the link | the shortest-path from P to Q is not via the link | |||
PQ. | PQ. | |||
</t> | </li> | |||
</list></t></list> | </ul> | |||
<t pn="section-4.3-6"> | ||||
In steady state, X sends its Z-destined traffic to B with a top | In steady state, X sends its Z-destined traffic to B with a top | |||
label, which is the LDP label bound by B for FEC Z. B swaps that top | label, which is the LDP label bound by B for FEC Z. B swaps that top | |||
label for the LDP label bound by E for FEC Z and forwards to E. E pops | label for the LDP label bound by E for FEC Z and forwards to E. E pops | |||
the LDP label and forwards to Z.</t> | the LDP label and forwards to Z.</t> | |||
<t pn="section-4.3-7">Upon failure of the link BE, B swaps the incoming | ||||
<t>Upon failure of the link BE, B swaps the incoming top label with | top label with | |||
the node segment for Z (203) and sends the packet onto a repair tunnel | the node segment for Z (203) and sends the packet onto a repair tunnel | |||
to G (node segment 106 followed by adjacency segment 9001). Thus, B | to G (node segment 106 followed by adjacency segment 9001). Thus, B | |||
sends the packet to C with the label stack {106, 9001, 203}. C pop s | sends the packet to C with the label stack {106, 9001, 203}. C pops | |||
the node segment 106 and forwards to F. F pops the adjacency segment | the node segment 106 and forwards to F. F pops the adjacency segment | |||
9001 and forwards to G. G swaps 203 for 203 and forwards to E. E's | 9001 and forwards to G. G swaps 203 for 203 and forwards to E. E's | |||
next-hop to Z is not SR capable, and thus, E swaps the incoming node | next hop to Z is not SR capable, and thus, E swaps the incoming node | |||
segment 203 for the LDP label announced by its next-hop (in this case, | segment 203 for the LDP label announced by its next hop (in this case, | |||
implicit null).</t> | implicit NULL).</t> | |||
<t pn="section-4.3-8">After IGP convergence, B's MPLS entry to Z will be | ||||
<t>After IGP convergence, B's MPLS entry to Z will become:</t> | come:</t> | |||
<ul empty="true" bare="false" spacing="normal" pn="section-4.3-9"> | ||||
<figure> | <li pn="section-4.3-9.1"> | |||
<artwork><![CDATA[ | <t pn="section-4.3-9.1.1">Incoming label: local LDP label bound by B | |||
- Incoming label: local LDP label bound by B for FEC Z | for FEC Z</t> | |||
Outgoing label: LDP label bound by C for FEC Z | <ul empty="false" bare="false" spacing="normal" pn="section-4.3-9.1. | |||
Outgoing next-hop: C]]></artwork> | 2"> | |||
</figure> | <li pn="section-4.3-9.1.2.1">Outgoing label: LDP label bound by C | |||
for FEC Z </li> | ||||
<t/> | <li pn="section-4.3-9.1.2.2">Outgoing next hop: C </li> | |||
</ul> | ||||
<t>And the traffic XZ travels again over the LDP LSP.</t> | </li> | |||
</ul> | ||||
<t>Conclusions:</t> | <t pn="section-4.3-10">And the traffic XZ travels again over the LDP LSP | |||
.</t> | ||||
<t><list style="symbols"> | <t pn="section-4.3-11">Conclusions:</t> | |||
<t>the operator has eliminated its second problem: guaranteed FRR | <ul spacing="normal" bare="false" empty="false" pn="section-4.3-12"> | |||
<li pn="section-4.3-12.1">the operator has eliminated its second probl | ||||
em: guaranteed FRR | ||||
coverage is provided. The steady-state traffic is still | coverage is provided. The steady-state traffic is still | |||
transported over LDP. The SR deployment is confined to the area | transported over LDP. The SR deployment is confined to the area | |||
where these benefits are required.</t> | where these benefits are required.</li> | |||
<li pn="section-4.3-12.2">FRR coverage has been achieved without any s | ||||
<t>FRR coverage has been achieved without any signaling for | ignaling for | |||
setting up the repair LSP and without setting up a targeted LDP | setting up the repair LSP and without setting up a targeted LDP | |||
session between B and G.</t> | session between B and G.</li> | |||
</list></t> | </ul> | |||
</section> | </section> | |||
<section anchor="sec-5.4" numbered="true" toc="include" removeInRFC="false | ||||
<section anchor="section-5.4" | " pn="section-4.4"> | |||
title="Inter-AS Option C, Carrier's Carrier"> | <name slugifiedName="name-inter-as-option-c-carriers-">Inter-AS Option C | |||
<t>In inter-AS Option C <xref target="RFC4364"/>, two interconnected | , Carrier's Carrier</name> | |||
<t pn="section-4.4-1">In inter-AS Option C <xref target="RFC4364" format | ||||
="default" sectionFormat="of" derivedContent="RFC4364"/>, two interconnected | ||||
ASes sets up inter-AS MPLS connectivity. SR may be independently | ASes sets up inter-AS MPLS connectivity. SR may be independently | |||
deployed in each AS.</t> | deployed in each AS.</t> | |||
<figure anchor="ref-inter-as-option-c" align="left" suppress-title="fals | ||||
<figure anchor="ref-inter-as-option-c" title="Inter-AS Option C"> | e" pn="figure-4"> | |||
<artwork><![CDATA[ | <name slugifiedName="name-inter-as-option-c">Inter-AS Option C</name> | |||
<artwork name="" type="" align="left" alt="" pn="section-4.4-2.1"> | ||||
PE1---R1---B1---B2---R2---PE2 | PE1---R1---B1---B2---R2---PE2 | |||
<-----------> <-----------> | <-----------> <-----------> | |||
AS1 AS2 | AS1 AS2 | |||
]]></artwork> | </artwork> | |||
</figure> | </figure> | |||
<t pn="section-4.4-3">In Inter-AS Option C, B2 advertises to B1 a labele | ||||
<t>In Inter-AS Option C, B2 advertises to B1 a labeled BGP route <xref | d BGP route <xref target="RFC8277" format="default" sectionFormat="of" derivedCo | |||
target="RFC8277"/> for PE2, and B1 reflects it to its internal peers, | ntent="RFC8277"/> for PE2, and B1 reflects it to its | |||
e.g., PE1. PE1 learns from a service route reflector a service | internal peers, e.g., PE1. PE1 learns from a service route reflector a | |||
route whose next-hop is PE2. PE1 resolves that service route on the | service route whose next hop is PE2. PE1 resolves that service route | |||
labeled BGP route to PE2. That labeled BGP route to PE2 is itself | on the labeled BGP route to PE2. That labeled BGP route to PE2 is | |||
resolved on the AS1 IGP route to B1.</t> | itself resolved on the AS1 IGP route to B1.</t> | |||
<t pn="section-4.4-4">If AS1 operates SR, then the tunnel from PE1 to B1 | ||||
<t>If AS1 operates SR, then the tunnel from PE1 to B1 is provided by | is provided by | |||
the node segment from PE1 to B1.</t> | the node segment from PE1 to B1.</t> | |||
<t pn="section-4.4-5">PE1 sends a service packet with three labels: the | ||||
<t>PE1 sends a service packet with three labels: the top one is the | top one is the | |||
node segment to B1, the next one is the label in the labeled BGP route | node segment to B1, the next one is the label in the labeled BGP route | |||
provided by B1 for the route "PE2", and the bottom one is the service | provided by B1 for the route "PE2", and the bottom one is the service | |||
label allocated by PE2.</t> | label allocated by PE2.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec-6" numbered="true" toc="include" removeInRFC="false" pn | ||||
<section anchor="section-6" title="IANA Considerations"> | ="section-5"> | |||
<t> This document has no IANA actions. </t> | <name slugifiedName="name-iana-considerations">IANA Considerations</name> | |||
<t pn="section-5-1"> This document has no IANA actions. </t> | ||||
</section> | </section> | |||
<section anchor="sec-7" numbered="true" toc="include" removeInRFC="false" pn | ||||
<section anchor="section-7" title="Manageability Considerations"> | ="section-6"> | |||
<section anchor="section-7.1" title="SR and LDP Coexistence"> | <name slugifiedName="name-manageability-consideration">Manageability Consi | |||
<t>When both SR and LDP coexist, the following applies:</t> | derations</name> | |||
<section anchor="sec-7.1" numbered="true" toc="include" removeInRFC="false | ||||
<t><list style="symbols"> | " pn="section-6.1"> | |||
<t>If both SR and LDP propose an IP2MPLS entry for the same IP | <name slugifiedName="name-sr-and-ldp-coexistence">SR and LDP Coexistence | |||
prefix, then by default the LDP route SHOULD be selected. This is | </name> | |||
<t pn="section-6.1-1">When both SR and LDP coexist, the following applie | ||||
s:</t> | ||||
<ul spacing="normal" bare="false" empty="false" pn="section-6.1-2"> | ||||
<li pn="section-6.1-2.1">If both SR and LDP propose an IP2MPLS entry f | ||||
or the same IP | ||||
prefix, then by default the LDP route <bcp14>SHOULD</bcp14> be selec | ||||
ted. This is | ||||
because it is expected that SR is introduced into networks that | because it is expected that SR is introduced into networks that | |||
contain routers that do not support SR. Hence, by having a behavior | contain routers that do not support SR. Hence, by having a behavior | |||
that prefers LDP over SR, traffic flow is unlikely to be | that prefers LDP over SR, traffic flow is unlikely to be | |||
disrupted</t> | disrupted.</li> | |||
<li pn="section-6.1-2.2">A local policy on a router <bcp14>MUST</bcp14 | ||||
<t>A local policy on a router MUST allow to prefer the SR-provided | > allow to prefer the SR-provided | |||
IP2MPLS entry.</t> | IP2MPLS entry.</li> | |||
<li pn="section-6.1-2.3">Note that this policy <bcp14>MAY</bcp14> be l | ||||
<t>Note that this policy MAY be locally defined. There is no | ocally defined. There is no | |||
requirement that all routers use the same policy.</t> | requirement that all routers use the same policy.</li> | |||
</list></t> | </ul> | |||
</section> | </section> | |||
<section anchor="sec-7.3" numbered="true" toc="include" removeInRFC="false | ||||
<section anchor="section-7.3" title="Data-Plane Verification"> | " pn="section-6.2"> | |||
<t>When Label switch paths (LSPs) are defined by stitching LDP LSPs | <name slugifiedName="name-data-plane-verification">Data-Plane Verificati | |||
on</name> | ||||
<t pn="section-6.2-1">When Label switch paths (LSPs) are defined by stit | ||||
ching LDP LSPs | ||||
with SR LSPs, it is necessary to have mechanisms allowing the | with SR LSPs, it is necessary to have mechanisms allowing the | |||
verification of the LSP connectivity as well as validation of the | verification of the LSP connectivity as well as validation of the | |||
path. These mechanisms are described in <xref target="RFC8287"/>.</t> | path. These mechanisms are described in <xref target="RFC8287" format="d efault" sectionFormat="of" derivedContent="RFC8287"/>.</t> | |||
</section> | </section> | |||
</section> | </section> | |||
<section anchor="sec-8" numbered="true" toc="include" removeInRFC="false" pn | ||||
<section anchor="section-8" title="Security Considerations"> | ="section-7"> | |||
<t>This document does not introduce any change to the MPLS data plane | <name slugifiedName="name-security-considerations">Security Considerations | |||
<xref target="RFC3031"/> and therefore no additional security of the | </name> | |||
<t pn="section-7-1">This document does not introduce any change to the MPL | ||||
S data plane | ||||
<xref target="RFC3031" format="default" sectionFormat="of" derivedContent= | ||||
"RFC3031"/> and therefore no additional security of the | ||||
MPLS data plane is required.</t> | MPLS data plane is required.</t> | |||
<t pn="section-7-2"> | ||||
<!-- [rfced] Please clarify this text. Perhaps this is the result | ||||
of a copy/paste error. How should it be rewritten? | ||||
Original: | ||||
Because this document recognizes | ||||
that reachability, which presents a different risk profile. This | ||||
document miscofiguration and/or programming may result in false or | ||||
conflicting also specifies a mechanism by which the ill effects of | ||||
advertising label binding advertisements, thereby compromising | ||||
traffic conflicting label bindings can be mitigated. In particular, | ||||
forwarding, the document recommends strict configuration/ | ||||
advertisements from the node advertising the IP reachability is more | ||||
programmability control as well as montoring the SID advertised and | ||||
preferred than the centralized one. log/error messages by the | ||||
operator to avoid or at least significantly minimize the possibility | ||||
of such risk. | ||||
new suggestions from authors: | ||||
"This document recognizes that errors in configuration and/or programming may | ||||
result in false or conflicting label binding advertisements compromising | ||||
traffic forwarding. Therefore, this document recommends the operator the | ||||
strict configuration/programmability control, the monitoring of the advertised | ||||
SIDs, the preference of an IP reachability SID advertisement over a | ||||
centralized SID advertisement and the logging of any error message in order to | ||||
avoid, or at least significantly minimize, the possibility of such risk." | ||||
<t> | ||||
This document introduces another form of label binding advertisements. The | This document introduces another form of label binding advertisements. The | |||
security associated with these advertisements is part of the security applied | security associated with these advertisements is part of the security applied | |||
to routing protocols such as IS-IS <xref target="RFC5304"/> and OSPF <xref | to routing protocols such as IS-IS <xref target="RFC5304" format="default" secti | |||
target="RFC5709"/>, which both optionally make use of cryptographic | onFormat="of" derivedContent="RFC5304"/> | |||
authentication mechanisms. This form of advertisement is more centralized, on | and OSPF <xref target="RFC5709" format="default" sectionFormat="of" derivedConte | |||
behalf of the node advertising the IP reachability, which presents a different | nt="RFC5709"/>, which both optionally make | |||
risk profile. This document also specifies a mechanism by which the ill | use of cryptographic authentication mechanisms. This form of advertisement is | |||
effects of advertising conflicting label bindings can be mitigated. In | more centralized, on behalf of the node advertising the IP reachability, which | |||
particular, advertisements from the node advertising the IP reachability is | presents a different risk profile. This document also specifies a mechanism by | |||
more preferred than the centralized one. Because this document recognizes that | which the ill effects of advertising conflicting label bindings can be | |||
reachability, which presents a different risk profile. This document | mitigated. In particular, advertisements from the node advertising the IP | |||
misconfiguration and/or programming may result in false or conflicting also | reachability is more preferred than the centralized one. This document | |||
specifies a mechanism by which the ill effects of advertising label binding | recognizes that errors in configuration and/or programming may result in false | |||
advertisements, thereby compromising traffic conflicting label bindings can be | or conflicting label binding advertisements compromising traffic | |||
mitigated. In particular, forwarding, the document recommends strict | forwarding. Therefore, this document recommends the operator implement strict | |||
configuration/ advertisements from the node advertising the IP reachability is | configuration/programmability control, the monitoring of the advertised SIDs, | |||
more programmability control as well as monitoring the SID advertised and | the preference of an IP reachability SID Advertisement over a centralized SID | |||
preferred than the centralized one. log/error messages by the operator to | Advertisement, and the logging of any error message in order to avoid, or at | |||
avoid or at least significantly minimize the possibility of such risk.</t> | least significantly minimize, the possibility of such risk. | |||
</t> | ||||
</section> | </section> | |||
</middle> | </middle> | |||
<back> | <back> | |||
<references title="Normative References"> | <references pn="section-8"> | |||
<name slugifiedName="name-references">References</name> | ||||
<?rfc include="reference.RFC.2119" ?> | <references pn="section-8.1"> | |||
<?rfc include="reference.RFC.8174"?> | <name slugifiedName="name-normative-references">Normative References</na | |||
me> | ||||
<?rfc include="reference.RFC.5036" ?> | <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | |||
<?rfc include="reference.RFC.8402" ?> | 119" quoteTitle="true" derivedAnchor="RFC2119"> | |||
<front> | ||||
<!-- draft-ietf-spring-segment-routing-mpls in C340 --> | <title>Key words for use in RFCs to Indicate Requirement Levels</tit | |||
<reference anchor="RFC8660" target="https://www.rfc-editor.org/info/rfc8660"> | le> | |||
<front> | <author initials="S." surname="Bradner" fullname="S. Bradner"> | |||
<title>Segment Routing with MPLS Data Plane</title> | <organization showOnFrontPage="true"/> | |||
<author initials='A' surname='Bashandy' fullname="Ahmed Bashandy" role="editor"> | </author> | |||
<organization/> | <date year="1997" month="March"/> | |||
</author> | <abstract> | |||
<author initials='C' surname='Filsfils' fullname='Clarence Filsfils' role="edito | <t>In many standards track documents several words are used to sig | |||
r"> | nify the requirements in the specification. These words are often capitalized. | |||
<organization/> | This document defines these words as they should be interpreted in IETF document | |||
</author> | s. This document specifies an Internet Best Current Practices for the Internet | |||
<author initials='S' surname='Previdi' fullname="Stefano Previdi"> | Community, and requests discussion and suggestions for improvements.</t> | |||
<organization/> | </abstract> | |||
</author> | </front> | |||
<author initials='B' surname='Decraene' fullname='Bruno Decraene'> | <seriesInfo name="BCP" value="14"/> | |||
<organization/> | <seriesInfo name="RFC" value="2119"/> | |||
</author> | <seriesInfo name="DOI" value="10.17487/RFC2119"/> | |||
<author initials='S' surname='Litkowski' fullname='Stephane Litkowski'> | </reference> | |||
<organization/> | <reference anchor="RFC5036" target="https://www.rfc-editor.org/info/rfc5 | |||
</author> | 036" quoteTitle="true" derivedAnchor="RFC5036"> | |||
<author initials='R' surname='Shakir' fullname='Rob Shakir'> | <front> | |||
<organization/> | <title>LDP Specification</title> | |||
</author> | <author initials="L." surname="Andersson" fullname="L. Andersson" ro | |||
<date month='September' year='2019'/> | le="editor"> | |||
</front> | <organization showOnFrontPage="true"/> | |||
<seriesInfo name="RFC" value="8660"/> | </author> | |||
<seriesInfo name="DOI" value="10.17487/RFC8660"/> | <author initials="I." surname="Minei" fullname="I. Minei" role="edit | |||
</reference> | or"> | |||
<organization showOnFrontPage="true"/> | ||||
</references> | </author> | |||
<author initials="B." surname="Thomas" fullname="B. Thomas" role="ed | ||||
<references title="Informative References"> | itor"> | |||
<organization showOnFrontPage="true"/> | ||||
<?rfc include="reference.RFC.8355" ?> | </author> | |||
<?rfc include="reference.RFC.3031" ?> | <date year="2007" month="October"/> | |||
<?rfc include="reference.RFC.8287" ?> | <abstract> | |||
<?rfc include="reference.RFC.3209" ?> | <t>The architecture for Multiprotocol Label Switching (MPLS) is de | |||
<?rfc include="reference.RFC.4364" ?> | scribed in RFC 3031. A fundamental concept in MPLS is that two Label Switching | |||
<?rfc include="reference.RFC.5304" ?> | Routers (LSRs) must agree on the meaning of the labels used to forward traffic b | |||
<?rfc include="reference.RFC.5709" ?> | etween and through them. This common understanding is achieved by using a set o | |||
<?rfc include="reference.RFC.5960" ?> | f procedures, called a label distribution protocol, by which one LSR informs ano | |||
<?rfc include="reference.RFC.7490" ?> | ther of label bindings it has made. This document defines a set of such procedu | |||
<?rfc include="reference.RFC.8277" ?> | res called LDP (for Label Distribution Protocol) by which LSRs distribute labels | |||
to support MPLS forwarding along normally routed paths. [STANDARDS-TRACK]</t> | ||||
<!-- I-D.ietf-isis-segment-routing-extensions: I-D exists --> | </abstract> | |||
<reference anchor='RFC8667'> | </front> | |||
<front> | <seriesInfo name="RFC" value="5036"/> | |||
<title>IS-IS Extensions for Segment Routing</title> | <seriesInfo name="DOI" value="10.17487/RFC5036"/> | |||
</reference> | ||||
<author initials='S' surname='Previdi' fullname='Stefano Previdi'> | <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | |||
<organization /> | 174" quoteTitle="true" derivedAnchor="RFC8174"> | |||
</author> | <front> | |||
<title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
<author initials='L' surname='Ginsberg' fullname='Les Ginsberg'> | tle> | |||
<organization /> | <author initials="B." surname="Leiba" fullname="B. Leiba"> | |||
</author> | <organization showOnFrontPage="true"/> | |||
</author> | ||||
<author initials='C' surname='Filsfils' fullname='Clarence Filsfils'> | <date year="2017" month="May"/> | |||
<organization /> | <abstract> | |||
</author> | <t>RFC 2119 specifies common key words that may be used in protoco | |||
l specifications. This document aims to reduce the ambiguity by clarifying tha | ||||
<author initials='A' surname='Bashandy' fullname='Ahmed Bashandy'> | t only UPPERCASE usage of the key words have the defined special meanings.</t> | |||
<organization /> | </abstract> | |||
</author> | </front> | |||
<seriesInfo name="BCP" value="14"/> | ||||
<author initials='H' surname='Gredler' fullname='Hannes Gredler'> | <seriesInfo name="RFC" value="8174"/> | |||
<organization /> | <seriesInfo name="DOI" value="10.17487/RFC8174"/> | |||
</author> | </reference> | |||
<reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8 | ||||
<author initials='B' surname='Decraene' fullname='Bruno Decraene'> | 402" quoteTitle="true" derivedAnchor="RFC8402"> | |||
<organization /> | <front> | |||
</author> | <title>Segment Routing Architecture</title> | |||
<author initials="C." surname="Filsfils" fullname="C. Filsfils" role | ||||
<date month='September' year='2019' /> | ="editor"> | |||
<organization showOnFrontPage="true"/> | ||||
</front> | </author> | |||
<author initials="S." surname="Previdi" fullname="S. Previdi" role=" | ||||
<seriesInfo name='RFC' value='8667' /> | editor"> | |||
<seriesInfo name='DOI' value='10.17487/RFC8667'/> | <organization showOnFrontPage="true"/> | |||
</reference> | </author> | |||
<author initials="L." surname="Ginsberg" fullname="L. Ginsberg"> | ||||
<!-- &I-D.ietf-ospf-ospfv3-segment-routing-extensions;--> | <organization showOnFrontPage="true"/> | |||
</author> | ||||
<reference anchor="RFC8666"> | <author initials="B." surname="Decraene" fullname="B. Decraene"> | |||
<front> | <organization showOnFrontPage="true"/> | |||
<title>OSPFv3 Extensions for Segment Routing</title> | </author> | |||
<author initials="S." surname="Litkowski" fullname="S. Litkowski"> | ||||
<author initials='P' surname='Psenak' fullname='Peter Psenak' role="editor"> | <organization showOnFrontPage="true"/> | |||
<organization /> | </author> | |||
</author> | <author initials="R." surname="Shakir" fullname="R. Shakir"> | |||
<organization showOnFrontPage="true"/> | ||||
<author initials='S' surname='Previdi' fullname='Stefano Previdi'> | </author> | |||
<organization /> | <date year="2018" month="July"/> | |||
</author> | <abstract> | |||
<t>Segment Routing (SR) leverages the source routing paradigm. A | ||||
<date month='September' year='2019' /> | node steers a packet through an ordered list of instructions, called "segments". | |||
A segment can represent any instruction, topological or service based. A segm | ||||
</front> | ent can have a semantic local to an SR node or global within an SR domain. SR p | |||
rovides a mechanism that allows a flow to be restricted to a specific topologica | ||||
<seriesInfo name='RFC' value='8666' /> | l path, while maintaining per-flow state only at the ingress node(s) to the SR d | |||
<seriesInfo name='DOI' value='10.17487/RFC8666'/> | omain.</t> | |||
</reference> | <t>SR can be directly applied to the MPLS architecture with no cha | |||
nge to the forwarding plane. A segment is encoded as an MPLS label. An ordered | ||||
<!-- I-D.ietf-ospf-segment-routing-extensions: I-D exists --> | list of segments is encoded as a stack of labels. The segment to process is on | |||
the top of the stack. Upon completion of a segment, the related label is poppe | ||||
<reference anchor="RFC8665"> | d from the stack.</t> | |||
<front> | <t>SR can be applied to the IPv6 architecture, with a new type of | |||
<title>OSPF Extensions for Segment Routing</title> | routing header. A segment is encoded as an IPv6 address. An ordered list of se | |||
gments is encoded as an ordered list of IPv6 addresses in the routing header. T | ||||
<author initials='P' surname='Psenak' fullname='Peter Psenak' role="editor"> | he active segment is indicated by the Destination Address (DA) of the packet. T | |||
<organization /> | he next active segment is indicated by a pointer in the new routing header.</t> | |||
</author> | </abstract> | |||
</front> | ||||
<author initials='S' surname='Previdi' fullname='Stefano Previdi' role="editor"> | <seriesInfo name="RFC" value="8402"/> | |||
<organization /> | <seriesInfo name="DOI" value="10.17487/RFC8402"/> | |||
</author> | </reference> | |||
<reference anchor="RFC8660" target="https://www.rfc-editor.org/info/rfc8 | ||||
<author initials='C' surname='Filsfils' fullname='Clarence Filsfils'> | 660" quoteTitle="true" derivedAnchor="RFC8660"> | |||
<organization /> | <front> | |||
</author> | <title>Segment Routing with MPLS Data Plane</title> | |||
<seriesInfo name="RFC" value="8660"/> | ||||
<author initials='H' surname='Gredler' fullname='Hannes Gredler'> | <seriesInfo name="DOI" value="10.17487/RFC8660"/> | |||
<organization /> | <author initials="A" surname="Bashandy" fullname="Ahmed Bashandy" ro | |||
</author> | le="editor"> | |||
<organization showOnFrontPage="true"/> | ||||
<author initials='R' surname='Shakir' fullname='Rob Shakir'> | </author> | |||
<organization /> | <author initials="C" surname="Filsfils" fullname="Clarence | |||
</author> | Filsfils" role="editor"> | |||
<organization showOnFrontPage="true"/> | ||||
<author initials='W' surname='Henderickx' fullname='Wim Henderickx'> | </author> | |||
<organization /> | <author initials="S" surname="Previdi" fullname="Stefano Previdi"> | |||
</author> | <organization showOnFrontPage="true"/> | |||
</author> | ||||
<author initials='J' surname='Tantsura' fullname='Jeff Tantsura'> | <author initials="B" surname="Decraene" fullname="Bruno Decraene"> | |||
<organization /> | <organization showOnFrontPage="true"/> | |||
</author> | </author> | |||
<author initials="S" surname="Litkowski" fullname="Stephane | ||||
<date month='September' year='2019' /> | Litkowski"> | |||
<organization showOnFrontPage="true"/> | ||||
</front> | </author> | |||
<author initials="R" surname="Shakir" fullname="Rob Shakir"> | ||||
<seriesInfo name='RFC' value='8665' /> | <organization showOnFrontPage="true"/> | |||
<seriesInfo name='DOI' value='10.17487/RFC8665'/> | </author> | |||
</reference> | <date month="December" year="2019"/> | |||
</front> | ||||
</reference> | ||||
</references> | ||||
<references pn="section-8.2"> | ||||
<name slugifiedName="name-informative-references">Informative References | ||||
</name> | ||||
<reference anchor="RFC3031" target="https://www.rfc-editor.org/info/rfc3 | ||||
031" quoteTitle="true" derivedAnchor="RFC3031"> | ||||
<front> | ||||
<title>Multiprotocol Label Switching Architecture</title> | ||||
<author initials="E." surname="Rosen" fullname="E. Rosen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A." surname="Viswanathan" fullname="A. Viswanathan | ||||
"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Callon" fullname="R. Callon"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2001" month="January"/> | ||||
<abstract> | ||||
<t>This document specifies the architecture for Multiprotocol Labe | ||||
l Switching (MPLS). [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3031"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3031"/> | ||||
</reference> | ||||
<reference anchor="RFC3209" target="https://www.rfc-editor.org/info/rfc3 | ||||
209" quoteTitle="true" derivedAnchor="RFC3209"> | ||||
<front> | ||||
<title>RSVP-TE: Extensions to RSVP for LSP Tunnels</title> | ||||
<author initials="D." surname="Awduche" fullname="D. Awduche"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="L." surname="Berger" fullname="L. Berger"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="D." surname="Gan" fullname="D. Gan"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="T." surname="Li" fullname="T. Li"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="V." surname="Srinivasan" fullname="V. Srinivasan"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="G." surname="Swallow" fullname="G. Swallow"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2001" month="December"/> | ||||
<abstract> | ||||
<t>This document describes the use of RSVP (Resource Reservation P | ||||
rotocol), including all the necessary extensions, to establish label-switched pa | ||||
ths (LSPs) in MPLS (Multi-Protocol Label Switching). Since the flow along an LS | ||||
P is completely identified by the label applied at the ingress node of the path, | ||||
these paths may be treated as tunnels. A key application of LSP tunnels is tra | ||||
ffic engineering with MPLS as specified in RFC 2702. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="3209"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC3209"/> | ||||
</reference> | ||||
<reference anchor="RFC4364" target="https://www.rfc-editor.org/info/rfc4 | ||||
364" quoteTitle="true" derivedAnchor="RFC4364"> | ||||
<front> | ||||
<title>BGP/MPLS IP Virtual Private Networks (VPNs)</title> | ||||
<author initials="E." surname="Rosen" fullname="E. Rosen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="Y." surname="Rekhter" fullname="Y. Rekhter"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2006" month="February"/> | ||||
<abstract> | ||||
<t>This document describes a method by which a Service Provider ma | ||||
y use an IP backbone to provide IP Virtual Private Networks (VPNs) for its custo | ||||
mers. This method uses a "peer model", in which the customers' edge routers (CE | ||||
routers) send their routes to the Service Provider's edge routers (PE routers); | ||||
there is no "overlay" visible to the customer's routing algorithm, and CE route | ||||
rs at different sites do not peer with each other. Data packets are tunneled th | ||||
rough the backbone, so that the core routers do not need to know the VPN routes. | ||||
[STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="4364"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC4364"/> | ||||
</reference> | ||||
<reference anchor="RFC5304" target="https://www.rfc-editor.org/info/rfc5 | ||||
304" quoteTitle="true" derivedAnchor="RFC5304"> | ||||
<front> | ||||
<title>IS-IS Cryptographic Authentication</title> | ||||
<author initials="T." surname="Li" fullname="T. Li"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Atkinson" fullname="R. Atkinson"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2008" month="October"/> | ||||
<abstract> | ||||
<t>This document describes the authentication of Intermediate Syst | ||||
em to Intermediate System (IS-IS) Protocol Data Units (PDUs) using the Hashed Me | ||||
ssage Authentication Codes - Message Digest 5 (HMAC-MD5) algorithm as found in R | ||||
FC 2104. IS-IS is specified in International Standards Organization (ISO) 10589 | ||||
, with extensions to support Internet Protocol version 4 (IPv4) described in RFC | ||||
1195. The base specification includes an authentication mechanism that allows | ||||
for multiple authentication algorithms. The base specification only specifies t | ||||
he algorithm for cleartext passwords. This document replaces RFC 3567.</t> | ||||
<t>This document proposes an extension to that specification that | ||||
allows the use of the HMAC-MD5 authentication algorithm to be used in conjunctio | ||||
n with the existing authentication mechanisms. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5304"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5304"/> | ||||
</reference> | ||||
<reference anchor="RFC5709" target="https://www.rfc-editor.org/info/rfc5 | ||||
709" quoteTitle="true" derivedAnchor="RFC5709"> | ||||
<front> | ||||
<title>OSPFv2 HMAC-SHA Cryptographic Authentication</title> | ||||
<author initials="M." surname="Bhatia" fullname="M. Bhatia"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="V." surname="Manral" fullname="V. Manral"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="M." surname="Fanto" fullname="M. Fanto"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="White" fullname="R. White"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="M." surname="Barnes" fullname="M. Barnes"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="T." surname="Li" fullname="T. Li"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Atkinson" fullname="R. Atkinson"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2009" month="October"/> | ||||
<abstract> | ||||
<t>This document describes how the National Institute of Standards | ||||
and Technology (NIST) Secure Hash Standard family of algorithms can be used wit | ||||
h OSPF version 2's built-in, cryptographic authentication mechanism. This updat | ||||
es, but does not supercede, the cryptographic authentication mechanism specified | ||||
in RFC 2328. [STANDARDS-TRACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5709"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5709"/> | ||||
</reference> | ||||
<reference anchor="RFC5960" target="https://www.rfc-editor.org/info/rfc5 | ||||
960" quoteTitle="true" derivedAnchor="RFC5960"> | ||||
<front> | ||||
<title>MPLS Transport Profile Data Plane Architecture</title> | ||||
<author initials="D." surname="Frost" fullname="D. Frost" role="edit | ||||
or"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Bryant" fullname="S. Bryant" role="ed | ||||
itor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="M." surname="Bocci" fullname="M. Bocci" role="edit | ||||
or"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2010" month="August"/> | ||||
<abstract> | ||||
<t>The Multiprotocol Label Switching Transport Profile (MPLS-TP) i | ||||
s the set of MPLS protocol functions applicable to the construction and operatio | ||||
n of packet-switched transport networks. This document specifies the subset of | ||||
these functions that comprises the MPLS-TP data plane: the architectural layer c | ||||
oncerned with the encapsulation and forwarding of packets within an MPLS-TP netw | ||||
ork.</t> | ||||
<t>This document is a product of a joint Internet Engineering Task | ||||
Force (IETF) / International Telecommunication Union Telecommunication Standard | ||||
ization Sector (ITU-T) effort to include an MPLS Transport Profile within the IE | ||||
TF MPLS and Pseudowire Emulation Edge-to-Edge (PWE3) architectures to support th | ||||
e capabilities and functionalities of a packet transport network. [STANDARDS-TR | ||||
ACK]</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="5960"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC5960"/> | ||||
</reference> | ||||
<reference anchor="RFC7490" target="https://www.rfc-editor.org/info/rfc7 | ||||
490" quoteTitle="true" derivedAnchor="RFC7490"> | ||||
<front> | ||||
<title>Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)</title> | ||||
<author initials="S." surname="Bryant" fullname="S. Bryant"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C." surname="Filsfils" fullname="C. Filsfils"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Previdi" fullname="S. Previdi"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="M." surname="Shand" fullname="M. Shand"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="N." surname="So" fullname="N. So"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2015" month="April"/> | ||||
<abstract> | ||||
<t>This document describes an extension to the basic IP fast rerou | ||||
te mechanism, described in RFC 5286, that provides additional backup connectivit | ||||
y for point-to-point link failures when none can be provided by the basic mechan | ||||
isms.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="7490"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC7490"/> | ||||
</reference> | ||||
<reference anchor="RFC8277" target="https://www.rfc-editor.org/info/rfc8 | ||||
277" quoteTitle="true" derivedAnchor="RFC8277"> | ||||
<front> | ||||
<title>Using BGP to Bind MPLS Labels to Address Prefixes</title> | ||||
<author initials="E." surname="Rosen" fullname="E. Rosen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2017" month="October"/> | ||||
<abstract> | ||||
<t>This document specifies a set of procedures for using BGP to ad | ||||
vertise that a specified router has bound a specified MPLS label (or a specified | ||||
sequence of MPLS labels organized as a contiguous part of a label stack) to a s | ||||
pecified address prefix. This can be done by sending a BGP UPDATE message whose | ||||
Network Layer Reachability Information field contains both the prefix and the M | ||||
PLS label(s) and whose Next Hop field identifies the node at which said prefix i | ||||
s bound to said label(s). This document obsoletes RFC 3107.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8277"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8277"/> | ||||
</reference> | ||||
<reference anchor="RFC8287" target="https://www.rfc-editor.org/info/rfc8 | ||||
287" quoteTitle="true" derivedAnchor="RFC8287"> | ||||
<front> | ||||
<title>Label Switched Path (LSP) Ping/Traceroute for Segment Routing | ||||
(SR) IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with MPLS Data Pla | ||||
nes</title> | ||||
<author initials="N." surname="Kumar" fullname="N. Kumar" role="edit | ||||
or"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C." surname="Pignataro" fullname="C. Pignataro" ro | ||||
le="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="G." surname="Swallow" fullname="G. Swallow"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="N." surname="Akiya" fullname="N. Akiya"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Kini" fullname="S. Kini"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="M." surname="Chen" fullname="M. Chen"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2017" month="December"/> | ||||
<abstract> | ||||
<t>A Segment Routing (SR) architecture leverages source routing an | ||||
d tunneling paradigms and can be directly applied to the use of a Multiprotocol | ||||
Label Switching (MPLS) data plane. A node steers a packet through a controlled | ||||
set of instructions called "segments" by prepending the packet with an SR header | ||||
.</t> | ||||
<t>The segment assignment and forwarding semantic nature of SR rai | ||||
ses additional considerations for connectivity verification and fault isolation | ||||
for a Label Switched Path (LSP) within an SR architecture. This document illustr | ||||
ates the problem and defines extensions to perform LSP Ping and Traceroute for S | ||||
egment Routing IGP-Prefix and IGP-Adjacency Segment Identifiers (SIDs) with an M | ||||
PLS data plane.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8287"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8287"/> | ||||
</reference> | ||||
<reference anchor="RFC8355" target="https://www.rfc-editor.org/info/rfc8 | ||||
355" quoteTitle="true" derivedAnchor="RFC8355"> | ||||
<front> | ||||
<title>Resiliency Use Cases in Source Packet Routing in Networking ( | ||||
SPRING) Networks</title> | ||||
<author initials="C." surname="Filsfils" fullname="C. Filsfils" role | ||||
="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S." surname="Previdi" fullname="S. Previdi" role=" | ||||
editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="B." surname="Decraene" fullname="B. Decraene"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R." surname="Shakir" fullname="R. Shakir"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date year="2018" month="March"/> | ||||
<abstract> | ||||
<t>This document identifies and describes the requirements for a s | ||||
et of use cases related to Segment Routing network resiliency on Source Packet R | ||||
outing in Networking (SPRING) networks.</t> | ||||
</abstract> | ||||
</front> | ||||
<seriesInfo name="RFC" value="8355"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8355"/> | ||||
</reference> | ||||
<reference anchor="RFC8665" quoteTitle="true" target="https://doi.org/10 | ||||
.17487/RFC8665" derivedAnchor="RFC8665"> | ||||
<front> | ||||
<title>OSPF Extensions for Segment Routing</title> | ||||
<seriesInfo name="RFC" value="8665"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8665"/> | ||||
<author initials="P" surname="Psenak" fullname="Peter Psenak" role=" | ||||
editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S" surname="Previdi" fullname="Stefano Previdi" ro | ||||
le="editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C" surname="Filsfils" fullname="Clarence | ||||
Filsfils"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="H" surname="Gredler" fullname="Hannes Gredler"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="R" surname="Shakir" fullname="Rob Shakir"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="W" surname="Henderickx" fullname="Wim Hend | ||||
erickx"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="J" surname="Tantsura" fullname="Jeff Tantsura"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="December" year="2019"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="RFC8666" quoteTitle="true" target="https://doi.org/10 | ||||
.17487/RFC8666" derivedAnchor="RFC8666"> | ||||
<front> | ||||
<title>OSPFv3 Extensions for Segment Routing</title> | ||||
<seriesInfo name="RFC" value="8666"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8666"/> | ||||
<author initials="P" surname="Psenak" fullname="Peter Psenak" role=" | ||||
editor"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="S" surname="Previdi" fullname="Stefano Previdi"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="December" year="2019"/> | ||||
</front> | ||||
</reference> | ||||
<reference anchor="RFC8667" quoteTitle="true" target="https://doi.org/10 | ||||
.17487/RFC8667" derivedAnchor="RFC8667"> | ||||
<front> | ||||
<title>IS-IS Extensions for Segment Routing</title> | ||||
<seriesInfo name="RFC" value="8667"/> | ||||
<seriesInfo name="DOI" value="10.17487/RFC8667"/> | ||||
<author initials="S" surname="Previdi" fullname="Stefano Previdi"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="L" surname="Ginsberg" fullname="Les Ginsberg"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="C" surname="Filsfils" fullname="Clarence | ||||
Filsfils"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="A" surname="Bashandy" fullname="Ahmed Bashandy"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="H" surname="Gredler" fullname="Hannes Gredler"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
<organization showOnFrontPage="true"/> | ||||
</author> | ||||
<date month="December" year="2019"/> | ||||
</front> | ||||
</reference> | ||||
</references> | ||||
</references> | </references> | |||
<section anchor="Appendix-A" numbered="true" toc="include" removeInRFC="fals | ||||
<section anchor="Appendix-A" title="Migration from LDP to SR"> | e" pn="section-appendix.a"> | |||
<figure anchor="ref-migration" title="Migration"> | <name slugifiedName="name-migration-from-ldp-to-sr">Migration from LDP to | |||
<artwork><![CDATA[ | SR</name> | |||
<figure anchor="ref-migration" align="left" suppress-title="false" pn="fig | ||||
ure-5"> | ||||
<name slugifiedName="name-migration">Migration</name> | ||||
<artwork name="" type="" align="left" alt="" pn="section-appendix.a-1.1" | ||||
> | ||||
PE2 PE4 | PE2 PE4 | |||
\ / | \ / | |||
PE1----P5--P6--P7---PE3 | PE1----P5--P6--P7---PE3 | |||
]]></artwork> | </artwork> | |||
</figure> | </figure> | |||
<t pn="section-appendix.a-2">Several migration techniques are possible. Th | ||||
<t>Several migration techniques are possible. The technique described | e technique described | |||
here is inspired by the commonly used method to migrate from one IGP to | here is inspired by the commonly used method to migrate from one IGP to | |||
another.</t> | another.</t> | |||
<t pn="section-appendix.a-3">At time T0, all the routers run LDP. Any serv | ||||
<t>At time T0, all the routers run LDP. Any service is tunneled from an | ice is tunneled from an | |||
ingress PE to an egress PE over a continuous LDP LSP.</t> | ingress PE to an egress PE over a continuous LDP LSP.</t> | |||
<t pn="section-appendix.a-4">At time T1, all the routers are upgraded to S | ||||
<t>At time T1, all the routers are upgraded to SR. They are configured | R. They are configured | |||
with the SRGB range [100, 300]. PE1, PE2, PE3, PE4, P5, P6, and P7 are | with the SRGB range [100, 300]. PE1, PE2, PE3, PE4, P5, P6, and P7 are | |||
respectively configured with the node segments 101, 102, 103, 104, 105, | respectively configured with the node segments 101, 102, 103, 104, 105, | |||
106, and 107 (attached to their service-recursing loopback).</t> | 106, and 107 (attached to their service-recursing loopback). | |||
</t> | ||||
<t><list hangIndent="3" style="hanging"> | <aside pn="section-appendix.a-5"> | |||
<t>At this time, the service traffic is still tunneled over LDP LSPs. | <t pn="section-appendix.a-5.1"> | |||
Note: At this time, the service traffic is still tunneled over LDP LSP | ||||
s. | ||||
For example, PE1 has an SR node segment to PE3 and an LDP LSP to PE3. | For example, PE1 has an SR node segment to PE3 and an LDP LSP to PE3. | |||
As seen earlier, however, the LDP IP2MPLS encapsulation is | As seen earlier, however, the LDP IP2MPLS encapsulation is | |||
preferred by default. However, it has to be noted that the SR infrastr ucture is | preferred by default. However, it has to be noted that the SR infrastr ucture is | |||
usable, e.g., for Fast Reroute (FRR) or IGP Loop-Free Convergence to | usable, e.g., for Fast Reroute (FRR) or IGP Loop-Free Convergence to | |||
protect existing IP and LDP traffic. FRR mechanisms are described in | protect existing IP and LDP traffic. FRR mechanisms are described in | |||
<xref target="RFC8355"/>.</t> | <xref target="RFC8355" format="default" sectionFormat="of" derivedCont | |||
</list></t> | ent="RFC8355"/>. | |||
</t> | ||||
<t>At time T2, the operator enables the local policy at PE1 to prefer SR | </aside> | |||
<t pn="section-appendix.a-6">At time T2, the operator enables the local po | ||||
licy at PE1 to prefer SR | ||||
IP2MPLS encapsulation over LDP IP2MPLS.</t> | IP2MPLS encapsulation over LDP IP2MPLS.</t> | |||
<ul empty="true" indent="3" bare="false" spacing="normal" pn="section-appe | ||||
<t><list hangIndent="3" style="hanging"> | ndix.a-7"> | |||
<t>The service from PE1 to any other PE is now riding over SR. All | <li pn="section-appendix.a-7.1">The service from PE1 to any other PE is | |||
other service traffic is still transported over LDP LSPs.</t> | now riding over SR. All | |||
</list></t> | other service traffic is still transported over LDP LSPs.</li> | |||
</ul> | ||||
<t>At time T3, gradually, the operator enables the preference for SR | <t pn="section-appendix.a-8">At time T3, gradually, the operator enables t | |||
he preference for SR | ||||
IP2MPLS encapsulation across all the edge routers.</t> | IP2MPLS encapsulation across all the edge routers.</t> | |||
<ul empty="true" indent="3" bare="false" spacing="normal" pn="section-appe | ||||
<t><list hangIndent="3" style="hanging"> | ndix.a-9"> | |||
<t>All the service traffic is now transported over SR. LDP is still | <li pn="section-appendix.a-9.1">All the service traffic is now transport | |||
operational and services could be reverted to LDP.</t> | ed over SR. LDP is still | |||
</list></t> | operational and services could be reverted to LDP.</li> | |||
</ul> | ||||
<t><list hangIndent="3" style="hanging"> | <t pn="section-appendix.a-10">At time T4, LDP is unconfigured from all rou | |||
<t/> | ters.</t> | |||
</list></t> | ||||
<t>At time T4, LDP is unconfigured from all routers.</t> | ||||
</section> | </section> | |||
<section anchor="sec-9" numbered="false" toc="include" removeInRFC="false" p | ||||
<section anchor="section-9" title="Acknowledgements" numbered= "no"> | n="section-appendix.b"> | |||
<t>The authors would like to thank Pierre Francois, Ruediger Geib, and | <name slugifiedName="name-acknowledgements">Acknowledgements</name> | |||
<t pn="section-appendix.b-1">The authors would like to thank Pierre Franco | ||||
is, Ruediger Geib, and | ||||
Alexander Vainshtein for their contributions to the content of this | Alexander Vainshtein for their contributions to the content of this | |||
document.</t> | document.</t> | |||
</section> | </section> | |||
<section anchor="sec-10" numbered="false" toc="include" removeInRFC="false" | ||||
<section anchor="section-10" title="Contributors" numbered="no"> | pn="section-appendix.c"> | |||
<figure> | <name slugifiedName="name-contributors">Contributors</name> | |||
<artwork><![CDATA[ | <artwork name="" type="" align="left" alt="" pn="section-appendix.c-1"> | |||
Edward Crabbe | Edward Crabbe | |||
Individual | Individual | |||
Email: edward.crabbe@gmail.com | Email: edward.crabbe@gmail.com</artwork> | |||
<artwork name="" type="" align="left" alt="" pn="section-appendix.c-2"> | ||||
Igor Milojevic | Igor Milojevic | |||
Email: milojevicigor@gmail.com | Email: milojevicigor@gmail.com</artwork> | |||
<artwork name="" type="" align="left" alt="" pn="section-appendix.c-3"> | ||||
Saku Ytti | Saku Ytti | |||
TDC | TDC | |||
Email: saku@ytti.fi | Email: saku@ytti.fi</artwork> | |||
<artwork name="" type="" align="left" alt="" pn="section-appendix.c-4"> | ||||
Rob Shakir | Rob Shakir | |||
Email: robjs@google.com | Email: robjs@google.com</artwork> | |||
<artwork name="" type="" align="left" alt="" pn="section-appendix.c-5"> | ||||
Martin Horneffer | Martin Horneffer | |||
Deutsche Telekom | Deutsche Telekom | |||
Email: Martin.Horneffer@telekom.de | Email: Martin.Horneffer@telekom.de</artwork> | |||
<artwork name="" type="" align="left" alt="" pn="section-appendix.c-6"> | ||||
Wim Henderickx | Wim Henderickx | |||
Nokia | Nokia | |||
Email: wim.henderickx@nokia.com | Email: wim.henderickx@nokia.com</artwork> | |||
<artwork name="" type="" align="left" alt="" pn="section-appendix.c-7"> | ||||
Jeff Tantsura | Jeff Tantsura | |||
Apstra, Inc. | Apstra, Inc. | |||
Email: jefftant.ietf@gmail.com | Email: jefftant.ietf@gmail.com</artwork> | |||
<artwork name="" type="" align="left" alt="" pn="section-appendix.c-8"> | ||||
Les Ginsberg | Les Ginsberg | |||
Cisco Systems | Cisco Systems | |||
Email: ginsberg@cisco.com]]></artwork> | Email: ginsberg@cisco.com</artwork> | |||
</figure> | </section> | |||
<section anchor="authors-addresses" numbered="false" removeInRFC="false" toc | ||||
="include" pn="section-appendix.d"> | ||||
<name slugifiedName="name-authors-addresses">Authors' Addresses</name> | ||||
<author fullname="Ahmed Bashandy" initials="A." role="editor" surname="Bas | ||||
handy"> | ||||
<organization showOnFrontPage="true">Individual</organization> | ||||
<address> | ||||
<postal> | ||||
<street>United States of America</street> | ||||
</postal> | ||||
<email>abashandy.ietf@gmail.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Clarence Filsfils" initials="C." role="editor" surname=" | ||||
Filsfils"> | ||||
<organization showOnFrontPage="true">Cisco Systems, Inc.</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Brussels</street> | ||||
<street>Belgium</street> | ||||
</postal> | ||||
<email>cfilsfil@cisco.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Stefano Previdi" initials="S." surname="Previdi"> | ||||
<organization showOnFrontPage="true">Huawei Technologies</organization> | ||||
<address> | ||||
<postal> | ||||
<street>Italy</street> | ||||
</postal> | ||||
<email>stefano@previdi.net</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Bruno Decraene" initials="B." surname="Decraene"> | ||||
<organization showOnFrontPage="true">Orange</organization> | ||||
<address> | ||||
<postal> | ||||
<street>France</street> | ||||
</postal> | ||||
<email>bruno.decraene@orange.com</email> | ||||
</address> | ||||
</author> | ||||
<author fullname="Stephane Litkowski" initials="S." surname="Litkowski"> | ||||
<organization showOnFrontPage="true">Orange</organization> | ||||
<address> | ||||
<postal> | ||||
<street>France</street> | ||||
</postal> | ||||
<email>slitkows.ietf@gmail.com</email> | ||||
</address> | ||||
</author> | ||||
</section> | </section> | |||
</back> | </back> | |||
</rfc> | </rfc> | |||
End of changes. 163 change blocks. | ||||
899 lines changed or deleted | 1672 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |