| rfc8663xml2.original.xml | rfc8663.xml | |||
|---|---|---|---|---|
| <?xml version="1.0" encoding="US-ASCII"?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" conse | ||||
| <!-- [rfced] updated by Chris /07/23/19 --> | nsus="true" docName="draft-ietf-mpls-sr-over-ip-07" indexInclude="true" ipr="tru | |||
| st200902" number="8663" prepTime="2019-12-04T21:02:22" scripts="Common,Latin" so | ||||
| <?rfc toc="yes"?> | rtRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true | |||
| <?rfc tocompact="yes"?> | " xml:lang="en"> | |||
| <?rfc tocdepth="3"?> | <link href="https://datatracker.ietf.org/doc/draft-ietf-mpls-sr-over-ip-07" re | |||
| <?rfc tocindent="yes"?> | l="prev"/> | |||
| <?rfc symrefs="yes"?> | <link href="https://dx.doi.org/10.17487/rfc8663" rel="alternate"/> | |||
| <?rfc sortrefs="yes"?> | <link href="urn:issn:2070-1721" rel="alternate"/> | |||
| <?rfc comments="yes"?> | ||||
| <?rfc inline="yes"?> | ||||
| <?rfc compact="yes"?> | ||||
| <?rfc subcompact="no"?> | ||||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd"> | ||||
| <rfc submissionType="IETF" category="std" consensus="yes" number="XXXX" ipr="tru | ||||
| st200902"> | ||||
| <front> | <front> | |||
| <title abbrev="SR-MPLS over IP">SR-MPLS over IP</title> | <title abbrev="SR-MPLS-over-IP">MPLS Segment Routing over IP</title> | |||
| <seriesInfo name="RFC" value="8663" stream="IETF"/> | ||||
| <author fullname="Xiaohu Xu" initials="X." surname="Xu"> | <author fullname="Xiaohu Xu" initials="X." surname="Xu"> | |||
| <organization>Alibaba, Inc</organization> | <organization showOnFrontPage="true">Alibaba, Inc</organization> | |||
| <address> | <address> | |||
| <email>xiaohu.xxh@alibaba-inc.com</email> | <email>xiaohu.xxh@alibaba-inc.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Stewart Bryant" initials="S." surname="Bryant"> | ||||
| <author fullname="Stewart Bryant" initials="S." surname="Bryant "> | <organization showOnFrontPage="true">Futurewei Technologies</organization> | |||
| <organization>Huawei</organization> | ||||
| <address> | <address> | |||
| <email>stewart.bryant@gmail.com</email> | <email>stewart.bryant@gmail.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Adrian Farrel" initials="A." surname="Farrel"> | ||||
| <author fullname="Adrian Farrel" initials="A." surname="Farrel "> | <organization showOnFrontPage="true">Old Dog Consulting</organization> | |||
| <organization>Old Dog Consulting</organization> | ||||
| <address> | <address> | |||
| <email>adrian@olddog.co.uk</email> | <email>adrian@olddog.co.uk</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Syed Hassan" initials="S." surname="Hassan"> | <author fullname="Syed Hassan" initials="S." surname="Hassan"> | |||
| <organization>Cisco</organization> | <organization showOnFrontPage="true">Cisco</organization> | |||
| <address> | <address> | |||
| <email>shassan@cisco.com</email> | <email>shassan@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Wim Henderickx" initials="W" surname="Henderickx"> | <author fullname="Wim Henderickx" initials="W" surname="Henderickx"> | |||
| <organization>Nokia</organization> | <organization showOnFrontPage="true">Nokia</organization> | |||
| <address> | <address> | |||
| <email>wim.henderickx@nokia.com</email> | <email>wim.henderickx@nokia.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Zhenbin Li" initials="Z." surname="Li"> | <author fullname="Zhenbin Li" initials="Z." surname="Li"> | |||
| <organization>Huawei</organization> | <organization showOnFrontPage="true">Huawei</organization> | |||
| <address> | <address> | |||
| <email>lizhenbin@huawei.com</email> | <email>lizhenbin@huawei.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <date month="12" year="2019"/> | ||||
| <keyword>MPLS-SR-over-IP, SR-MPLS-over-IP, MPLS-SR-over-UDP, SR-MPLS-over-UD | ||||
| P</keyword> | ||||
| <abstract pn="section-abstract"> | ||||
| <t pn="section-abstract-1">MPLS Segment Routing (SR-MPLS) is a method of s | ||||
| ource routing a packet | ||||
| through an MPLS data plane by imposing a stack of MPLS labels on the | ||||
| packet to specify the path together with any packet-specific | ||||
| instructions to be executed on it. | ||||
| <date year="2019" month="July"/> | SR-MPLS can be leveraged to realize a source-routing mechanism across | |||
| MPLS, IPv4, and IPv6 data planes by using an MPLS label stack as a | ||||
| <!-- [rfced] Please insert any keywords (beyond those that appear in | source-routing instruction set while making no changes to SR-MPLS | |||
| the title) for use on https://www.rfc-editor.org/search. --> | specifications and interworking with SR-MPLS implementations.</t> | |||
| <t pn="section-abstract-2">This document describes how SR-MPLS-capable rou | ||||
| <keyword>example</keyword> | ters and IP-only | |||
| routers can seamlessly coexist and interoperate through the use of | ||||
| <abstract> | SR-MPLS label stacks and IP encapsulation/tunneling such as MPLS-over-UDP | |||
| <t>MPLS Segment Routing (SR-MPLS) is an MPLS data plane-based source | ||||
| routing paradigm in which the sender of a packet is allowed to partially | ||||
| or completely specify the route the packet takes through the network by | ||||
| imposing stacked MPLS labels on the packet. SR-MPLS can be leveraged | ||||
| to realize a source routing mechanism across MPLS, IPv4, and IPv6 data | ||||
| planes by using an MPLS label stack as a source routing instruction set | ||||
| while making no changes to SR-MPLS specifications and interworking with | ||||
| SR-MPLS implementations.</t> | ||||
| <t>This document describes how SR-MPLS capable routers and IP-only | ||||
| routers can seamlessly co-exist and interoperate through the use of | ||||
| SR-MPLS label stacks and IP encapsulation/tunneling such as MPLS-in-UDP | ||||
| as defined in RFC 7510.</t> | as defined in RFC 7510.</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/rfc8663" 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-terminology"> | ||||
| Terminology</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-use-cases">Use Cases</xre | ||||
| f></t> | ||||
| </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-procedures-of-sr-mpls-ove | ||||
| r-">Procedures of SR-MPLS-over-IP</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-forwarding-en | ||||
| try-constructi">Forwarding Entry Construction</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-f | ||||
| ib-construction-example">FIB Construction Example</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-packet-forwar | ||||
| ding-procedure">Packet-Forwarding Procedures</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-p | ||||
| acket-forwarding-with-penu">Packet Forwarding with Penultimate Hop Popping</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-p | ||||
| acket-forwarding-without-p">Packet Forwarding without Penultimate Hop Popping</x | ||||
| ref></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-a | ||||
| dditional-forwarding-proce">Additional Forwarding Procedures</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-iana-considerations">IANA | ||||
| Considerations</xref></t> | ||||
| </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-security-considerations"> | ||||
| Security 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-references">References</x | ||||
| ref></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-normative-ref | ||||
| erences">Normative References</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-informative-r | ||||
| eferences">Informative References</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.7"> | ||||
| <t keepWithNext="true" pn="section-toc.1-1.7.1"><xref derivedContent | ||||
| ="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedC | ||||
| ontent="" format="title" sectionFormat="of" target="name-acknowledgements">Ackno | ||||
| wledgements</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.8"> | ||||
| <t keepWithNext="true" pn="section-toc.1-1.8.1"><xref derivedContent | ||||
| ="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedC | ||||
| ontent="" format="title" sectionFormat="of" target="name-contributors">Contribut | ||||
| ors</xref></t> | ||||
| </li> | ||||
| <li pn="section-toc.1-1.9"> | ||||
| <t keepWithNext="true" pn="section-toc.1-1.9.1"><xref derivedContent | ||||
| ="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedC | ||||
| ontent="" format="title" sectionFormat="of" target="name-authors-addresses">Auth | ||||
| ors' Addresses</xref></t> | ||||
| </li> | ||||
| </ul> | ||||
| </section> | ||||
| </toc> | ||||
| </front> | </front> | |||
| <middle> | <middle> | |||
| <section title="Introduction"> | <section numbered="true" toc="include" removeInRFC="false" pn="section-1"> | |||
| <t>MPLS Segment Routing (SR-MPLS) <xref | <name slugifiedName="name-introduction">Introduction</name> | |||
| target="RFCYYYY"/> is an MPLS data | <t pn="section-1-1">MPLS Segment Routing (SR-MPLS) <xref target="RFC8660" | |||
| plane-based source routing paradigm in which the sender of a packet is | format="default" sectionFormat="of" derivedContent="RFC8660"/> is a method of so | |||
| allowed to partially or completely specify the route the packet takes | urce routing a packet through an | |||
| through the network by imposing stacked MPLS labels on the packet. | MPLS data plane. This is achieved by the sender imposing a stack of MPLS | |||
| SR-MPLS uses an MPLS label stack to encode a source routing instruction | labels that partially or completely specify the path that the packet is | |||
| set. This can be used to realize a source routing mechanism that can | to take and any instructions to be executed on the packet as it passes | |||
| operate across MPLS, IPv4, and IPv6 data planes. This approach | through the network. | |||
| makes no changes to SR-MPLS specifications and allows interworking with | ||||
| SR-MPLS implementations. More specifically, the source routing | ||||
| instruction set information contained in a source routed packet could be | ||||
| uniformly encoded as an MPLS label stack no matter whether the underlay is | ||||
| IPv4, IPv6 (including Segment Routing for IPv6 (SRv6) [RFC8354]), or MPLS. | ||||
| </t> | ||||
| <t>This document describes how SR-MPLS capable routers and IP-only | ||||
| routers can seamlessly co-exist and interoperate through the use of | ||||
| SR-MPLS label stacks and IP encapsulation/tunneling such as MPLS-in-UDP | ||||
| <xref target="RFC7510"/>.</t> | ||||
| <t><xref target="usecases"/> describes various use cases for the | ||||
| tunneling SR-MPLS over IP. <xref target="procs"/> describes a typical | ||||
| application scenario and how the packet forwarding happens.</t> | ||||
| <section anchor="Abbreviations_Terminology" title="Terminology"> | ||||
| <t>This memo makes use of the terms defined in <xref | ||||
| target="RFC3031"/> and <xref | ||||
| target="RFCYYYY"/>.</t> | ||||
| <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | SR-MPLS uses an MPLS label stack to encode a sequence of source-routing | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | instructions. This can be used to realize a source-routing mechanism | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | that can operate across MPLS, IPv4, and IPv6 data planes. This approach | |||
| 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | makes no changes to SR-MPLS specifications and allows interworking with | |||
| when, they appear in all capitals, as shown here.</t> | SR-MPLS implementations. More specifically, the source-routing | |||
| instructions in a source-routed packet could be | ||||
| uniformly encoded as an MPLS label stack regardless of whether the | ||||
| underlay is IPv4, IPv6 (including Segment Routing for IPv6 (SRv6) <xref ta | ||||
| rget="RFC8354" format="default" sectionFormat="of" derivedContent="RFC8354"/>), | ||||
| or MPLS.</t> | ||||
| <t pn="section-1-2">This document describes how SR-MPLS-capable routers an | ||||
| d IP-only | ||||
| routers can seamlessly coexist and interoperate through the use of | ||||
| SR-MPLS label stacks and IP encapsulation/tunneling such as MPLS-over-UDP | ||||
| <xref target="RFC7510" format="default" sectionFormat="of" derivedContent= | ||||
| "RFC7510"/>.</t> | ||||
| <t pn="section-1-3"><xref target="usecases" format="default" sectionFormat | ||||
| ="of" derivedContent="Section 2"/> describes various use | ||||
| cases for tunneling SR-MPLS over IP. <xref target="procs" format="default" | ||||
| sectionFormat="of" derivedContent="Section 3"/> describes a typical application | ||||
| scenario and how the | ||||
| packet forwarding happens.</t> | ||||
| <section anchor="Abbreviations_Terminology" numbered="true" toc="include" | ||||
| removeInRFC="false" pn="section-1.1"> | ||||
| <name slugifiedName="name-terminology">Terminology</name> | ||||
| <t pn="section-1.1-1">This memo makes use of the terms defined in <xref | ||||
| target="RFC3031" format="default" sectionFormat="of" derivedContent="RFC3031"/> | ||||
| and <xref target="RFC8660" format="default" sectionFormat="of" derivedContent="R | ||||
| FC8660"/>.</t> | ||||
| <t pn="section-1.1-2"> | ||||
| The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | ||||
| "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14> | ||||
| ", | ||||
| "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", | ||||
| "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT 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" s | ||||
| ectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="defa | ||||
| ult" sectionFormat="of" derivedContent="RFC8174"/> when, and only when, they app | ||||
| ear in all capitals, as | ||||
| shown here. | ||||
| </t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="usecases" numbered="true" toc="include" removeInRFC="false" | ||||
| <section anchor="usecases" title="Use Cases"> | pn="section-2"> | |||
| <t>Tunneling SR-MPLS using IPv4 and/or IPv6 (including SRv6) tunnels is | <name slugifiedName="name-use-cases">Use Cases</name> | |||
| <t pn="section-2-1">Tunneling SR-MPLS using IPv4 and/or IPv6 (including SR | ||||
| v6) tunnels is | ||||
| useful at least in the use cases listed below. In all cases, this can be | useful at least in the use cases listed below. In all cases, this can be | |||
| enabled using an IP tunneling mechanism such as MPLS-in-UDP as described | enabled using an IP tunneling mechanism such as MPLS-over-UDP as described | |||
| in <xref target="RFC7510"/>. The tunnel selected MUST have its remote end | in <xref target="RFC7510" format="default" sectionFormat="of" derivedConte | |||
| point (destination) address equal to the address of the next SR-MPLS | nt="RFC7510"/>. The tunnel selected <bcp14>MUST</bcp14> have its remote | |||
| capable node identified as being on the SR path (i.e., the egress of the | endpoint (destination) address equal to the address of the next | |||
| active segment). The local end point (source) address is set to an address | node capable of SR-MPLS identified as being on the SR path (i.e., the | |||
| of the encapsulating node. <xref target="RFC7510"/> gives further advice | egress of the active segment). The local endpoint (source) address is | |||
| on how to set the source address if the UDP zero-checksum mode is used | set to an address of the encapsulating node. <xref target="RFC7510" format | |||
| with MPLS-in-UDP. Using UDP as the encapsulation may be particularly | ="default" sectionFormat="of" derivedContent="RFC7510"/> | |||
| beneficial because it is agnostic of the underlying transport.</t> | gives further advice on how to set the source address if the UDP | |||
| zero-checksum mode is used with MPLS-over-UDP. Using UDP as the | ||||
| <t><list style="symbols"> | encapsulation may be particularly beneficial because it is agnostic of | |||
| <t>Incremental deployment of the SR-MPLS technology may be | the underlying transport.</t> | |||
| <ul spacing="normal" bare="false" empty="false" pn="section-2-2"> | ||||
| <li pn="section-2-2.1"> | ||||
| <t pn="section-2-2.1.1">Incremental deployment of the SR-MPLS technolo | ||||
| gy may be | ||||
| facilitated by tunneling SR-MPLS packets across parts of a network | facilitated by tunneling SR-MPLS packets across parts of a network | |||
| that are not SR-MPLS as shown in <xref target="islandsFig"/>. This | that are not SR-MPLS as shown in <xref target="islandsFig" format="def ault" sectionFormat="of" derivedContent="Figure 1"/>. This | |||
| demonstrates how islands of SR-MPLS may be connected across a legacy | demonstrates how islands of SR-MPLS may be connected across a legacy | |||
| network. It may be particularly useful for joining sites (such as | network. It may be particularly useful for joining sites (such as | |||
| data centers). | data centers). | |||
| <figure anchor="islandsFig" | </t> | |||
| title="SR-MPLS in UDP to Tunnel Between SR-MPLS Sites"> | <figure anchor="islandsFig" align="left" suppress-title="false" pn="fi | |||
| <artwork><![CDATA[ | gure-1"> | |||
| <name slugifiedName="name-sr-mpls-over-udp-to-tunnel-">SR-MPLS-over- | ||||
| UDP to Tunnel between SR-MPLS Sites</name> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-2-2.1.2.1"> | ||||
| ________________________ | ________________________ | |||
| _______ ( ) _______ | _______ ( ) _______ | |||
| ( ) ( IP Network ) ( ) | ( ) ( IP Network ) ( ) | |||
| ( SR-MPLS ) ( ) ( SR-MPLS ) | ( SR-MPLS ) ( ) ( SR-MPLS ) | |||
| ( Network ) ( ) ( Network ) | ( Network ) ( ) ( Network ) | |||
| ( -------- -------- ) | ( -------- -------- ) | |||
| ( | Border | SR-in-UDP Tunnel | Border | ) | ( | Border | SR-in-UDP Tunnel | Border | ) | |||
| ( | Router |========================| Router | ) | ( | Router |========================| Router | ) | |||
| ( | R1 | | R2 | ) | ( | R1 | | R2 | ) | |||
| ( -------- -------- ) | ( -------- -------- ) | |||
| ( ) ( ) ( ) | ( ) ( ) ( ) | |||
| ( ) ( ) ( ) | ( ) ( ) ( ) | |||
| (_______) ( ) (_______) | (_______) ( ) (_______) | |||
| (________________________) | (________________________) | |||
| ]]></artwork> | </artwork> | |||
| </figure></t> | </figure> | |||
| </li> | ||||
| <t>If encoding of entropy (<xref target="RFC6790"/> is desired, IP | <li pn="section-2-2.2">If the encoding of entropy <xref target="RFC6790" | |||
| tunneling mechanisms that allow encoding of entropy, such as | format="default" sectionFormat="of" derivedContent="RFC6790"/> is desired, IP-t | |||
| MPLS-in-UDP encapsulation <xref target="RFC7510"/> where the source | unneling mechanisms that allow the | |||
| port of the UDP header is used as an entropy field, may be used to | encoding of entropy, such as MPLS-over-UDP encapsulation <xref target="R | |||
| maximize the utilization of ECMP and/or LAG, especially when it is | FC7510" format="default" sectionFormat="of" derivedContent="RFC7510"/> where the | |||
| difficult to make use of the entropy label mechanism. This is to be | source port of the UDP | |||
| contrasted with <xref target="RFC4023" /> where MPLS-in-IP does not | header is used as an entropy field, may be used to maximize the | |||
| provide for an entropy mechanism. Refer to <xref | utilization of Equal-Cost Multipath (ECMP) and/or Link Aggregation | |||
| target="ENTROPY-LABEL"/>) for more discussion | Groups (LAGs), especially when it is difficult to make use of the | |||
| about using entropy labels in SR-MPLS.</t> | entropy-label mechanism. This is to be contrasted with <xref target="RFC | |||
| 4023" format="default" sectionFormat="of" derivedContent="RFC4023"/> where MPLS- | ||||
| <t>Tunneling MPLS over IP provides a technology that enables SR in | over-IP does not provide | |||
| an IPv4 and/or IPv6 network where the routers do not support SRv6 | for an entropy mechanism. Refer to <xref target="RFC8662" format="defaul | |||
| capabilities <xref target="IPV6-SEGMENT"/> | t" sectionFormat="of" derivedContent="RFC8662"/>) for more discussion about usin | |||
| and where MPLS forwarding is not an option. This is shown in <xref | g entropy labels in | |||
| target="transitionFig"/>. <figure anchor="transitionFig" | SR-MPLS.</li> | |||
| title="SR-MPLS Enabled Within an IP Network"> | <li pn="section-2-2.3"> | |||
| <artwork><![CDATA[ | <t pn="section-2-2.3.1">Tunneling MPLS over IP provides a technology t | |||
| hat enables Segment | ||||
| __________________________________ | Routing (SR) in an IPv4 and/or IPv6 network where the routers do not | |||
| __( IP Network )__ | support SRv6 capabilities <xref target="I-D.ietf-6man-segment-routing- | |||
| __( )__ | header" format="default" sectionFormat="of" derivedContent="IPv6-SRH"/> and | |||
| ( -- -- -- ) | where MPLS forwarding is not an option. This is shown in <xref target= | |||
| -------- -- -- |SR| -- |SR| -- |SR| -- -------- | "transitionFig" format="default" sectionFormat="of" derivedContent="Figure 2"/>. | |||
| | Ingress| |IR| |IR| | | |IR| | | |IR| | | |IR| | Egress | | </t> | |||
| | SR | | | | | | | | | | | | | | | | | | SR | | <figure anchor="transitionFig" align="left" suppress-title="false" pn= | |||
| -------- -- -- | | -- | | -- | | -- -------- | "figure-2"> | |||
| (__ -- -- -- __) | <name slugifiedName="name-sr-mpls-enabled-within-an-i">SR-MPLS Enabl | |||
| (__ __) | ed within an IP Network</name> | |||
| (__________________________________) | <artwork name="" type="" align="left" alt="" pn="section-2-2.3.2.1"> | |||
| __________________________________ | ||||
| Key: | __( IP Network )__ | |||
| IR : IP-only Router | __( )__ | |||
| SR : SR-MPLS-capable Router | ( -- -- -- ) | |||
| == : SR-MPLS in UDP Tunnel | -------- -- -- |SR| -- |SR| -- |SR| -- -------- | |||
| | Ingress| |IR| |IR| | | |IR| | | |IR| | | |IR| | Egress| | ||||
| ]]></artwork> | -->| Router |===========| |======| |======| |======| Router|--> | |||
| </figure></t> | | SR | | | | | | | | | | | | | | | | | | SR | | |||
| -------- -- -- | | -- | | -- | | -- -------- | ||||
| (__ -- -- -- __) | ||||
| (__ __) | ||||
| (__________________________________) | ||||
| </list></t> | Key: | |||
| IR : IP-only Router | ||||
| SR : SR-MPLS-capable Router | ||||
| == : SR-MPLS-over-UDP Tunnel | ||||
| </artwork> | ||||
| </figure> | ||||
| </li> | ||||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="procs" numbered="true" toc="include" removeInRFC="false" pn | ||||
| <section anchor="procs" title="Procedures of SR-MPLS over IP"> | ="section-3"> | |||
| <t>This section describes the construction of forwarding information | <name slugifiedName="name-procedures-of-sr-mpls-over-">Procedures of SR-MP | |||
| LS-over-IP</name> | ||||
| <t pn="section-3-1">This section describes the construction of forwarding | ||||
| information | ||||
| base (FIB) entries and the forwarding behavior that allow the deployment | base (FIB) entries and the forwarding behavior that allow the deployment | |||
| of SR-MPLS when some routers in the network are IP only (i.e., do not | of SR-MPLS when some routers in the network are IP only (i.e., do not | |||
| support SR-MPLS). Note that the examples in <xref target="fibeg"/> and | support SR-MPLS). Note that the examples in Sections <xref target="fibeg" | |||
| <xref target="fwd"/> assume that OSPF or ISIS is enabled: in fact, other | format="counter" sectionFormat="of" derivedContent="3.1.1"/> and <xref target="f | |||
| mechanisms of discovery and advertisement could be used including other | wd" format="counter" sectionFormat="of" derivedContent="3.2"/> assume that | |||
| routing protocols (such as BGP) or a central controller.</t> | OSPF or IS-IS is enabled; in fact, other mechanisms of discovery and | |||
| advertisement could be used including other routing protocols (such as | ||||
| <section anchor="fib" title="Forwarding Entry Construction"> | BGP) or a central controller.</t> | |||
| <t>This sub-section describes the how to construct the forwarding | <section anchor="fib" numbered="true" toc="include" removeInRFC="false" pn | |||
| ="section-3.1"> | ||||
| <name slugifiedName="name-forwarding-entry-constructi">Forwarding Entry | ||||
| Construction</name> | ||||
| <t pn="section-3.1-1">This subsection describes how to construct the for | ||||
| warding | ||||
| information base (FIB) entry on an SR-MPLS-capable router when some or | information base (FIB) entry on an SR-MPLS-capable router when some or | |||
| all of the next-hops along the shortest path towards a prefix Segment | all of the next hops along the shortest path towards a prefix Segment | |||
| Identifier (prefix-SID) are IP-only routers. <xref target="fibeg" /> | Identifier (Prefix-SID) are IP-only routers. <xref target="fibeg" format | |||
| ="default" sectionFormat="of" derivedContent="Section 3.1.1"/> | ||||
| provides a concrete example of how the process applies when using OSPF | provides a concrete example of how the process applies when using OSPF | |||
| or ISIS.</t> | or IS-IS.</t> | |||
| <t pn="section-3.1-2">Consider router A that receives a labeled packet w | ||||
| <t>Consider router A that receives a labeled packet with top label | ith top label | |||
| L(E) that corresponds to the prefix-SID SID(E) of prefix P(E) | L(E) that corresponds to the Prefix-SID SID(E) of prefix P(E) | |||
| advertised by router E. Suppose the i-th next-hop router (termed NHi) | advertised by router E. Suppose the i-th next-hop router (termed NHi) | |||
| along the shortest path from router A toward SID(E) is not SR-MPLS | along the shortest path from router A toward SID(E) is not SR-MPLS | |||
| capable while both routers A and E are SR-MPLS capable. The following | capable while both routers A and E are SR-MPLS capable. The following | |||
| processing steps apply:</t> | processing steps apply:</t> | |||
| <ul spacing="normal" bare="false" empty="false" pn="section-3.1-3"> | ||||
| <t> | <li pn="section-3.1-3.1">Router E is SR-MPLS capable, so it advertises | |||
| <list style="symbols"> | a Segment Routing | |||
| <t>Router E is SR-MPLS capable, so it advertises a Segment Routing | Global Block (SRGB). The SRGB is defined in <xref target="RFC8402" f | |||
| Global Block (SRGB). The SRGB is defined in <xref target="RFC8402"/> | ormat="default" sectionFormat="of" derivedContent="RFC8402"/>. | |||
| . | ||||
| There are a number of ways that the advertisement can be achieved | There are a number of ways that the advertisement can be achieved | |||
| including IGPs, BGP, configuration/management protocols. For | including IGPs, BGP, and configuration/management protocols. For | |||
| example, see <xref target="DATACENTER-GATEWAY" />.</t> | example, see <xref target="I-D.ietf-bess-datacenter-gateway" format= | |||
| "default" sectionFormat="of" derivedContent="DC-GATEWAY"/>.</li> | ||||
| <t>When Router E advertises the prefix-SID SID(E) of prefix P(E) | <li pn="section-3.1-3.2">When Router E advertises the Prefix-SID SID(E | |||
| it MUST also advertise the encapsulation endpoint and the tunnel | ) of prefix P(E), it <bcp14>MUST</bcp14> | |||
| type of any tunnel used to reach E. This information is flooded | also advertise the egress endpoint address and the encapsulation type of any | |||
| domain wide.</t> | tunnel used to reach E. This information is flooded domain wide. | |||
| </li> | ||||
| <t>If A and E are in different routing domains then the information | <li pn="section-3.1-3.3">If A and E are in different routing domains, | |||
| MUST | then the information <bcp14>MUST</bcp14> | |||
| be flooded into both domains. How this is achieved depends on the | be flooded into both domains. How this is achieved depends on the | |||
| advertisement mechanism being used. The objective is that router A | advertisement mechanism being used. The objective is that router A | |||
| knows the characteristics of router E that originated the | knows the characteristics of router E that originated the | |||
| advertisement of SID(E).</t> | advertisement of SID(E).</li> | |||
| <li pn="section-3.1-3.4"> | ||||
| <t>Router A programs the FIB entry for prefix P(E) corresponding | <t pn="section-3.1-3.4.1">Router A programs the FIB entry for prefix | |||
| P(E) corresponding | ||||
| to the SID(E) according to whether a pop or swap action is advertise d | to the SID(E) according to whether a pop or swap action is advertise d | |||
| for the prefix. The resulting action may be: | for the prefix. The resulting action may be: | |||
| <list style="symbols"> | </t> | |||
| <t>pop the top label</t> | <ul spacing="normal" bare="false" empty="false" pn="section-3.1-3.4. | |||
| <t>swap the top label to a value equal to SID(E) plus the | 2"> | |||
| lower bound of the SRGB of E</t> | <li pn="section-3.1-3.4.2.1">pop the top label</li> | |||
| </list></t> | <li pn="section-3.1-3.4.2.2">swap the top label to a value equal t | |||
| </list></t> | o SID(E) plus the | |||
| lower bound of the SRGB of E</li> | ||||
| <t>Once constructed, the FIB can be used by a router to tell it how to | </ul> | |||
| </li> | ||||
| </ul> | ||||
| <t pn="section-3.1-4">Once constructed, the FIB can be used by a router | ||||
| to tell it how to | ||||
| process packets. It encapsulates the packets according to the | process packets. It encapsulates the packets according to the | |||
| appropriate encapsulation advertised for the segment and then it sends | appropriate encapsulation advertised for the segment and then sends | |||
| the packets towards the next hop NHi.</t> | the packets towards the next hop NHi.</t> | |||
| <section anchor="fibeg" numbered="true" toc="include" removeInRFC="false | ||||
| <section anchor="fibeg" title="FIB Construction Example"> | " pn="section-3.1.1"> | |||
| <t>This section is non-normative and provides a worked example of how | <name slugifiedName="name-fib-construction-example">FIB Construction E | |||
| a FIB might be constructed using OSPF and ISIS extensions. It is based | xample</name> | |||
| on the process described in <xref target="fib" />.</t> | <t pn="section-3.1.1-1">This section is non-normative and provides a w | |||
| orked example of how | ||||
| <t> | a FIB might be constructed using OSPF and IS-IS extensions. It is base | |||
| <list style="symbols"> | d | |||
| <t>Router E is SR-MPLS capable, so it advertises a Segment Routing | on the process described in <xref target="fib" format="default" sectio | |||
| nFormat="of" derivedContent="Section 3.1"/>.</t> | ||||
| <ul spacing="normal" bare="false" empty="false" pn="section-3.1.1-2"> | ||||
| <li pn="section-3.1.1-2.1">Router E is SR-MPLS capable, so it advert | ||||
| ises a Segment Routing | ||||
| Global Block (SRGB) using | Global Block (SRGB) using | |||
| <xref target="OSPF-EXTENSIONS"/> or | <xref target="RFC8665" format="default" sectionFormat="of" derived | |||
| <xref target="ISIS-EXTENSIONS"/>.</t> | Content="RFC8665"/> or | |||
| <xref target="RFC8667" format="default" sectionFormat="of" derived | ||||
| <t>When Router E advertises the prefix-SID SID(E) of prefix P(E) | Content="RFC8667"/>.</li> | |||
| it also advertises the encapsulation endpoint and the tunnel | <li pn="section-3.1.1-2.2">When Router E advertises the Prefix-SID S | |||
| ID(E) of prefix P(E), | ||||
| it also advertises the encapsulation endpoint address and the tunn | ||||
| el | ||||
| type of any tunnel used to reach E using | type of any tunnel used to reach E using | |||
| <xref target="ISIS-ENCAP"/> or | <xref target="I-D.ietf-isis-encapsulation-cap" format="default" se | |||
| <xref target="OSPF-ROUTER"/>.</t> | ctionFormat="of" derivedContent="ISIS-ENCAP"/> or | |||
| <xref target="I-D.ietf-ospf-encapsulation-cap" format="default" se | ||||
| <t>If A and E are in different domains then the information is | ctionFormat="of" derivedContent="OSPF-ENCAP"/>.</li> | |||
| <li pn="section-3.1.1-2.3"> | ||||
| <t pn="section-3.1.1-2.3.1">If A and E are in different domains, t | ||||
| hen the information is | ||||
| flooded into both domains and any intervening domains. | flooded into both domains and any intervening domains. | |||
| <list style="symbols"> | </t> | |||
| <t>The OSPF Tunnel Encapsulation TLV | <ul spacing="normal" bare="false" empty="false" pn="section-3.1.1- | |||
| <xref target="OSPF-ROUTER"/> or the ISIS | 2.3.2"> | |||
| Tunnel Encapsulation sub-TLV | <li pn="section-3.1.1-2.3.2.1">The OSPF Tunnel Encapsulations TL | |||
| <xref target="ISIS-ENCAP"/> is flooded | V | |||
| domain-wide.</t> | <xref target="I-D.ietf-ospf-encapsulation-cap" format="default | |||
| " sectionFormat="of" derivedContent="OSPF-ENCAP"/> or the IS-IS | ||||
| <t>The OSPF SID/label range TLV | Tunnel Encapsulation Type sub-TLV | |||
| <xref target="OSPF-EXTENSIONS"/> or | <xref target="I-D.ietf-isis-encapsulation-cap" format="default | |||
| the ISIS SR-Capabilities Sub-TLV | " sectionFormat="of" derivedContent="ISIS-ENCAP"/> is flooded | |||
| <xref target="ISIS-EXTENSIONS"/> is | domain wide.</li> | |||
| advertised domain-wide so that router A knows the | <li pn="section-3.1.1-2.3.2.2">The OSPF SID/Label Range TLV | |||
| characteristics of router E.</t> | <xref target="RFC8665" format="default" sectionFormat="of" der | |||
| ivedContent="RFC8665"/> or | ||||
| <t>When router E advertises the prefix P(E): | the IS-IS SR-Capabilities sub-TLV | |||
| <list style="symbols"> | <xref target="RFC8667" format="default" sectionFormat="of" der | |||
| <t>If router E is running ISIS it uses the extended | ivedContent="RFC8667"/> is | |||
| advertised domain wide so that router A knows the | ||||
| characteristics of router E.</li> | ||||
| <li pn="section-3.1.1-2.3.2.3"> | ||||
| <t pn="section-3.1.1-2.3.2.3.1">When router E advertises the p | ||||
| refix P(E): | ||||
| </t> | ||||
| <ul spacing="normal" bare="false" empty="false" pn="section-3. | ||||
| 1.1-2.3.2.3.2"> | ||||
| <li pn="section-3.1.1-2.3.2.3.2.1">If router E is running IS | ||||
| -IS, it uses the extended | ||||
| reachability TLV (TLVs 135, 235, 236, 237) and associates | reachability TLV (TLVs 135, 235, 236, 237) and associates | |||
| the IPv4/IPv6 or IPv4/IPv6 source router ID sub-TLV(s) | the IPv4/IPv6 or IPv4/IPv6 Source Router ID sub-TLV(s) | |||
| <xref target="RFC7794"/>.</t> | <xref target="RFC7794" format="default" sectionFormat="of" | |||
| derivedContent="RFC7794"/>.</li> | ||||
| <t>If router E is running OSPF it uses the OSPFv2 Extended | <li pn="section-3.1.1-2.3.2.3.2.2">If router E is running OS | |||
| Prefix Opaque LSA <xref target="RFC7684"/> and sets the | PF, it uses the OSPFv2 Extended | |||
| flooding scope to AS-wide.</t> | Prefix Opaque Link-State Advertisement (LSA) <xref target= | |||
| </list></t> | "RFC7684" format="default" sectionFormat="of" derivedContent="RFC7684"/> and set | |||
| s the | ||||
| <t>If router E is running ISIS and advertises the ISIS | flooding scope to Autonomous System (AS) wide.</li> | |||
| capability TLV (TLV 242) <xref target="RFC7981"/>, it sets the | </ul> | |||
| "router-ID" field to a valid value or includes an IPV6 | </li> | |||
| TE router-ID sub-TLV (TLV 12), or does both. The "S" bit | <li pn="section-3.1.1-2.3.2.4">If router E is running IS-IS and | |||
| (flooding scope) of the ISIS capability TLV (TLV 242) is set | advertises the IS-IS | |||
| to "1" .</t> | Router CAPABILITY TLV (TLV 242) <xref target="RFC7981" format= | |||
| </list></t> | "default" sectionFormat="of" derivedContent="RFC7981"/>, it sets the | |||
| "Router ID" field to a valid value or includes an IPv6 | ||||
| <t>Router A programs the FIB entry for prefix P(E) corresponding | TE Router ID sub-TLV (TLV 12), or it does both. The "S" bit | |||
| (flooding scope) of the IS-IS Router CAPABILITY TLV (TLV 242) | ||||
| is set | ||||
| to "1".</li> | ||||
| </ul> | ||||
| </li> | ||||
| <li pn="section-3.1.1-2.4"> | ||||
| <t pn="section-3.1.1-2.4.1">Router A programs the FIB entry for pr | ||||
| efix P(E) corresponding | ||||
| to the SID(E) according to whether a pop or swap action is adverti sed | to the SID(E) according to whether a pop or swap action is adverti sed | |||
| for the prefix as follows: | for the prefix as follows: | |||
| <list style="symbols"> | </t> | |||
| <t>If the NP flag in OSPF or the P flag in ISIS is clear: | <ul spacing="normal" bare="false" empty="false" pn="section-3.1.1- | |||
| <list style="empty"> | 2.4.2"> | |||
| <t>pop the top label</t> | <li pn="section-3.1.1-2.4.2.1"> | |||
| </list></t> | <t pn="section-3.1.1-2.4.2.1.1">If the No-PHP (NP) Flag in OSP | |||
| F or the Persistent (P) Flag in IS-IS is clear: | ||||
| <t>If the NP flag in OSPF or the P flag in ISIS is set: | </t> | |||
| <list style="empty"> | <ul empty="true" spacing="normal" bare="false" pn="section-3.1 | |||
| <t>swap the top label to a value equal to SID(E) plus the | .1-2.4.2.1.2"> | |||
| lower bound of the SRGB of E</t> | <li pn="section-3.1.1-2.4.2.1.2.1">pop the top label</li> | |||
| </list></t> | </ul> | |||
| </li> | ||||
| </list></t> | <li pn="section-3.1.1-2.4.2.2"> | |||
| <t pn="section-3.1.1-2.4.2.2.1">If the No-PHP (NP) Flag in OSP | ||||
| </list></t> | F or the Persistent (P) Flag in IS-IS is set: | |||
| </t> | ||||
| <t>When forwarding the packet according to the constructed FIB entry t | <ul empty="true" spacing="normal" bare="false" pn="section-3.1 | |||
| he | .1-2.4.2.2.2"> | |||
| <li pn="section-3.1.1-2.4.2.2.2.1">swap the top label to a v | ||||
| alue equal to SID(E) plus the | ||||
| lower bound of the SRGB of E</li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| </li> | ||||
| </ul> | ||||
| <t pn="section-3.1.1-3">When forwarding the packet according to the co | ||||
| nstructed FIB entry, the | ||||
| router encapsulates the packet according to the encapsulation as adver tised | router encapsulates the packet according to the encapsulation as adver tised | |||
| using the mechanisms described in <xref target="ISIS-ENCAP"/> | using the mechanisms described in <xref target="I-D.ietf-isis-encapsul | |||
| or <xref target="OSPF-ROUTER"/>). It then sends the | ation-cap" format="default" sectionFormat="of" derivedContent="ISIS-ENCAP"/> | |||
| or <xref target="I-D.ietf-ospf-encapsulation-cap" format="default" sec | ||||
| tionFormat="of" derivedContent="OSPF-ENCAP"/>. It then sends the | ||||
| packets towards the next hop NHi.</t> | packets towards the next hop NHi.</t> | |||
| <t pn="section-3.1.1-4">Note that <xref target="RFC7510" format="defau | ||||
| <t>Note that <xref target="RFC7510"/> specifies the use of port number | lt" sectionFormat="of" derivedContent="RFC7510"/> specifies the use of port numb | |||
| 6635 | er 6635 | |||
| to indicate that the payload of a UDP packet is MPLS, and port number 6636 for | to indicate that the payload of a UDP packet is MPLS, and port number 6636 for | |||
| MPLS-in-UDP utilizing DTLS. However, <xref target="ISIS-ENCAP"/> | MPLS-over-UDP utilizing DTLS. However, <xref target="I-D.ietf-isis-enc | |||
| and <xref target="OSPF-ROUTER"/> provide dynamic protocol | apsulation-cap" format="default" sectionFormat="of" derivedContent="ISIS-ENCAP"/ | |||
| mechanisms to configure the use any Dynamic Port for a tunnel that use | > | |||
| s UDP | and <xref target="I-D.ietf-ospf-encapsulation-cap" format="default" se | |||
| ctionFormat="of" derivedContent="OSPF-ENCAP"/> provide dynamic protocol | ||||
| mechanisms to configure the use of any Dynamic Port for a tunnel that | ||||
| uses UDP | ||||
| encapsulation. Nothing in this document prevents the use of an IGP or any other | encapsulation. Nothing in this document prevents the use of an IGP or any other | |||
| mechanism to negotiate the use of a Dynamic Port when UDP encapsulatio n is used | mechanism to negotiate the use of a Dynamic Port when UDP encapsulatio n is used | |||
| for SR-MPLS, but if no such mechanism is used then the port numbers sp | for SR-MPLS, but if no such mechanism is used, then the port numbers s | |||
| ecified in | pecified in | |||
| <xref target="RFC7510"/> are used.</t> | <xref target="RFC7510" format="default" sectionFormat="of" derivedCont | |||
| ent="RFC7510"/> are used.</t> | ||||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="fwd" numbered="true" toc="include" removeInRFC="false" pn | ||||
| <section anchor="fwd" title="Packet Forwarding Procedures"> | ="section-3.2"> | |||
| <t><xref target="RFC7510"/> specifies an IP-based encapsulation for | <name slugifiedName="name-packet-forwarding-procedure">Packet-Forwarding | |||
| MPLS, i.e., MPLS-in-UDP. This approach is applicable where IP-based | Procedures</name> | |||
| <t pn="section-3.2-1"><xref target="RFC7510" format="default" sectionFor | ||||
| mat="of" derivedContent="RFC7510"/> specifies an IP-based encapsulation for | ||||
| MPLS, i.e., MPLS-over-UDP. This approach is applicable where IP-based | ||||
| encapsulation for MPLS is required and further fine-grained load | encapsulation for MPLS is required and further fine-grained load | |||
| balancing of MPLS packets over IP networks over Equal-Cost Multipath | balancing of MPLS packets over IP networks over | |||
| (ECMP) and/or Link Aggregation Groups (LAGs) is also required. This | ECMP and/or LAGs is also required. This | |||
| section provides details about the forwarding procedure when | section provides details about the forwarding procedure when | |||
| UDP encapsulation is adopted for SR-MPLS over IP. Other encapsulation | UDP encapsulation is adopted for SR-MPLS-over-IP. Other encapsulation | |||
| and tunnelling mechanisms can be applied using similar techniques, | and tunneling mechanisms can be applied using similar techniques, | |||
| but for clarity this section uses UDP encapsulation as the exemplar.</t> | but for clarity, this section uses UDP encapsulation as the exemplar.</t | |||
| > | ||||
| <t>Nodes that are SR-MPLS capable can process SR-MPLS packets. Not all | <t pn="section-3.2-2">Nodes that are SR-MPLS capable can process SR-MPLS | |||
| packets. Not all | ||||
| of the nodes in an SR-MPLS domain are SR-MPLS capable. Some nodes may | of the nodes in an SR-MPLS domain are SR-MPLS capable. Some nodes may | |||
| be "legacy routers" that cannot handle SR-MPLS packets but can forward | be "legacy routers" that cannot handle SR-MPLS packets but can forward | |||
| IP packets. An SR-MPLS-capable node MAY advertise its capabilities | IP packets. A node capable of SR-MPLS <bcp14>MAY</bcp14> advertise its c | |||
| using the IGP as described in <xref target="procs"/>. There are six | apabilities | |||
| types of node in an SR-MPLS domain: <list style="symbols"> | using the IGP as described in <xref target="procs" format="default" sect | |||
| <t>Domain ingress nodes that receive packets and encapsulate them | ionFormat="of" derivedContent="Section 3"/>. There are six | |||
| types of nodes in an SR-MPLS domain: </t> | ||||
| <ul spacing="normal" bare="false" empty="false" pn="section-3.2-3"> | ||||
| <li pn="section-3.2-3.1">Domain ingress nodes that receive packets and | ||||
| encapsulate them | ||||
| for transmission across the domain. Those packets may be any | for transmission across the domain. Those packets may be any | |||
| payload protocol including native IP packets or packets that are | payload protocol including native IP packets or packets that are | |||
| already MPLS encapsulated.</t> | already MPLS encapsulated.</li> | |||
| <li pn="section-3.2-3.2">Legacy transit nodes that are IP routers but | ||||
| <t>Legacy transit nodes that are IP routers but that are not | that are not | |||
| SR-MPLS capable (i.e., are not able to perform segment | SR-MPLS capable (i.e., are not able to perform Segment | |||
| routing).</t> | Routing).</li> | |||
| <li pn="section-3.2-3.3">Transit nodes that are SR-MPLS capable but th | ||||
| <t>Transit nodes that are SR-MPLS capable but that are not | at are not | |||
| identified by a SID in the SID stack.</t> | identified by a SID in the SID stack.</li> | |||
| <li pn="section-3.2-3.4">Transit nodes that are SR-MPLS capable and ne | ||||
| <t>Transit nodes that are SR-MPLS capable and need to perform | ed to perform | |||
| SR-MPLS routing because they are identified by a SID in the SID | SR-MPLS routing because they are identified by a SID in the SID | |||
| stack.</t> | stack.</li> | |||
| <li pn="section-3.2-3.5">The penultimate node capable of SR-MPLS on th | ||||
| <t>The penultimate SR-MPLS capable node on the path that processes | e path that processes | |||
| the last SID on the stack on behalf of the domain egress node.</t> | the last SID on the stack on behalf of the domain egress node.</li> | |||
| <li pn="section-3.2-3.6">The domain egress node that forwards the payl | ||||
| <t>The domain egress node that forwards the payload packet for | oad packet for | |||
| ultimate delivery.</t> | ultimate delivery.</li> | |||
| </list></t> | </ul> | |||
| <section anchor="phpfwd" numbered="true" toc="include" removeInRFC="fals | ||||
| <section anchor="phpfwd" | e" pn="section-3.2.1"> | |||
| title="Packet Forwarding with Penultimate Hop Popping"> | <name slugifiedName="name-packet-forwarding-with-penu">Packet Forwardi | |||
| <t>The description in this section assumes that the label associated | ng with Penultimate Hop Popping</name> | |||
| with each prefix-SID is advertised by the owner of the prefix-SID as | <t pn="section-3.2.1-1">The description in this section assumes that t | |||
| a Penultimate Hop Popping (PHP) label. That is, if one of the IGP | he label associated | |||
| flooding mechanisms is used, the NP flag in OSPF or the P flag in | with each Prefix-SID is advertised by the owner of the Prefix-SID as | |||
| ISIS associated with the prefix-SID is not set.</t> | a Penultimate Hop-Popping (PHP) label. That is, if one of the IGP | |||
| flooding mechanisms is used, the NP-Flag in OSPF or the P-Flag in | ||||
| <figure anchor="phpfwdeg" title="Packet Forwarding Example with PHP"> | IS-IS associated with the Prefix-SID is not set.</t> | |||
| <artwork align="center"><![CDATA[ | <figure anchor="phpfwdeg" align="left" suppress-title="false" pn="figu | |||
| re-3"> | ||||
| <name slugifiedName="name-packet-forwarding-example-w">Packet-Forwar | ||||
| ding Example with PHP</name> | ||||
| <artwork align="center" name="" type="" alt="" pn="section-3.2.1-2.1 | ||||
| "> | ||||
| +-----+ +-----+ +-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ +-----+ +-----+ | |||
| | A +-------+ B +-------+ C +-------+ D +-------+ H | | | A +-------+ B +-------+ C +-------+ D +-------+ H | | |||
| +-----+ +--+--+ +--+--+ +--+--+ +-----+ | +-----+ +--+--+ +--+--+ +--+--+ +-----+ | |||
| | | | | | | | | |||
| | | | | | | | | |||
| +--+--+ +--+--+ +--+--+ | +--+--+ +--+--+ +--+--+ | |||
| | E +-------+ F +-------+ G | | | E +-------+ F +-------+ G | | |||
| +-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ | |||
| +--------+ | +--------+ | |||
| |IP(A->E)| | |IP(A->E)| | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| | UDP | |IP(E->G)| |IP(G->H)| | | UDP | |IP(E->G)| |IP(G->H)| | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| | L(G) | | UDP | | UDP | | | L(G) | | UDP | | UDP | | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| | L(H) | | L(H) | |Exp Null| | | L(H) | | L(H) | |Exp Null| | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| | Packet | ---> | Packet | ---> | Packet | | | Packet | ---> | Packet | ---> | Packet | | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| ]]></artwork> | </artwork> | |||
| </figure> | </figure> | |||
| <t pn="section-3.2.1-3">In the example shown in <xref target="phpfwdeg | ||||
| <t>In the example shown in <xref target="phpfwdeg"/>, assume that | " format="default" sectionFormat="of" derivedContent="Figure 3"/>, assume that | |||
| routers A, E, G and H are SR-MPLS-capable while the remaining | routers A, E, G, and H are capable of SR-MPLS while the remaining | |||
| routers (B, C, D and F) are only capable of forwarding IP packets. | routers (B, C, D, and F) are only capable of forwarding IP packets. | |||
| Routers A, E, G, and H advertise their Segment Routing related | Routers A, E, G, and H advertise their Segment Routing related | |||
| information, such as via IS-IS or OSPF.</t> | information, such as via IS-IS or OSPF.</t> | |||
| <t pn="section-3.2.1-4">Now assume that router A (the Domain ingress) | ||||
| <t>Now assume that router A (the Domain ingress) wants to send a | wants to send a | |||
| packet to router H (the Domain egress) via the explicit path | packet to router H (the Domain egress) via the explicit path | |||
| {E->G->H}. Router A will impose an MPLS label stack on the | {E->G->H}. Router A will impose an MPLS label stack on the | |||
| packet that corresponds to that explicit path. Since the next hop | packet that corresponds to that explicit path. Since the next hop | |||
| toward router E is only IP-capable (B is a legacy transit node), | toward router E is only IP capable (B is a legacy transit node), | |||
| router A replaces the top label (that indicated router E) with a | router A replaces the top label (that indicated router E) with a | |||
| UDP-based tunnel for MPLS (i.e., MPLS-over-UDP <xref | UDP-based tunnel for MPLS (i.e., MPLS-over-UDP <xref target="RFC7510" | |||
| target="RFC7510"/>) to router E and then sends the packet. In other | format="default" sectionFormat="of" derivedContent="RFC7510"/>) to router E and | |||
| then sends the packet. In other | ||||
| words, router A pops the top label and then encapsulates the MPLS | words, router A pops the top label and then encapsulates the MPLS | |||
| packet in a UDP tunnel to router E.</t> | packet in a UDP tunnel to router E.</t> | |||
| <t pn="section-3.2.1-5">When the IP-encapsulated MPLS packet arrives a | ||||
| <t>When the IP-encapsulated MPLS packet arrives at router E (which | t router E (which | |||
| is an SR-MPLS-capable transit node), router E strips the IP-based | is a transit node capable of SR-MPLS), router E strips the IP-based | |||
| tunnel header and then processes the decapsulated MPLS packet. The top | tunnel header and then processes the decapsulated MPLS packet. The top | |||
| label indicates that the packet must be forwarded toward router G. | label indicates that the packet must be forwarded toward router G. | |||
| Since the next hop toward router G is only IP-capable, router E | Since the next hop toward router G is only IP capable, router E | |||
| replaces the current top label with an MPLS-over-UDP tunnel toward | replaces the current top label with an MPLS-over-UDP tunnel toward | |||
| router G and sends it out. That is, router E pops the top label and | router G and sends it out. That is, router E pops the top label and | |||
| then encapsulates the MPLS packet in a UDP tunnel to router G.</t> | then encapsulates the MPLS packet in a UDP tunnel to router G.</t> | |||
| <t pn="section-3.2.1-6">When the packet arrives at router G, router G | ||||
| <t>When the packet arrives at router G, router G will strip the | will strip the | |||
| IP-based tunnel header and then process the decapsulated MPLS | IP-based tunnel header and then process the decapsulated MPLS | |||
| packet. The top label indicates that the packet must be forwarded | packet. The top label indicates that the packet must be forwarded | |||
| toward router H. Since the next hop toward router H is only | toward router H. Since the next hop toward router H is only | |||
| IP-capable (D is a legacy transit router), router G would replace | IP capable (D is a legacy transit router), router G would replace | |||
| the current top label with an MPLS-over-UDP tunnel toward router H | the current top label with an MPLS-over-UDP tunnel toward router H | |||
| and send it out. However, since router G reaches the bottom of the | and send it out. However, since router G reaches the bottom of the | |||
| label stack (G is the penultimate SR-MPLS capable node on the path) | label stack (G is the penultimate node capable of SR-MPLS on the path) , | |||
| this would leave the original packet that router A wanted to send to | this would leave the original packet that router A wanted to send to | |||
| router H encapsulated in UDP as if it was MPLS (i.e., with a UDP | router H encapsulated in UDP as if it was MPLS (i.e., with a UDP | |||
| header and destination port indicating MPLS) even though the | header and destination port indicating MPLS) even though the | |||
| original packet could have been any protocol. That is, the final | original packet could have been any protocol. That is, the final | |||
| SR-MPLS has been popped exposing the payload packet.</t> | SR-MPLS has been popped exposing the payload packet.</t> | |||
| <t pn="section-3.2.1-7">To handle this, when a router (here it is rout | ||||
| <t>To handle this, when a router (here it is router G) pops the | er G) pops the | |||
| final SR-MPLS label, it inserts an explicit null label <xref | final SR-MPLS label, it inserts an explicit NULL label <xref target="R | |||
| target="RFC3032"/> before encapsulating the packet in an | FC3032" format="default" sectionFormat="of" derivedContent="RFC3032"/> before en | |||
| capsulating the packet in an | ||||
| MPLS-over-UDP tunnel toward router H and sending it out. That is, | MPLS-over-UDP tunnel toward router H and sending it out. That is, | |||
| router G pops the top label, discovers it has reached the bottom of | router G pops the top label, discovers it has reached the bottom of | |||
| stack, pushes an explicit null label, and then encapsulates the MPLS | stack, pushes an explicit NULL label, and then encapsulates the MPLS | |||
| packet in a UDP tunnel to router H.</t> | packet in a UDP tunnel to router H.</t> | |||
| </section> | </section> | |||
| <section anchor="nophpfwd" numbered="true" toc="include" removeInRFC="fa | ||||
| <section anchor="nophpfwd" | lse" pn="section-3.2.2"> | |||
| title="Packet Forwarding without Penultimate Hop Popping"> | <name slugifiedName="name-packet-forwarding-without-p">Packet Forwardi | |||
| <t><xref target="nophpfwdeg"/> demonstrates the packet walk in the | ng without Penultimate Hop Popping</name> | |||
| case where the label associated with each prefix-SID advertised by | <t pn="section-3.2.2-1"><xref target="nophpfwdeg" format="default" sec | |||
| the owner of the prefix-SID is not a Penultimate Hop Popping (PHP) | tionFormat="of" derivedContent="Figure 4"/> demonstrates the packet walk in the | |||
| label (e.g., the the NP flag in OSPF or the P flag in ISIS | case where the label associated with each Prefix-SID advertised by | |||
| associated with the prefix-SID is set). Apart from the PHP function | the owner of the Prefix-SID is not a Penultimate Hop-Popping (PHP) | |||
| the roles of the routers is unchanged from <xref | label (e.g., the NP-Flag in OSPF or the P-Flag in IS-IS | |||
| target="phpfwd"/>.</t> | associated with the Prefix-SID is set). Apart from the PHP function, | |||
| the roles of the routers are unchanged from <xref target="phpfwd" form | ||||
| <figure anchor="nophpfwdeg" | at="default" sectionFormat="of" derivedContent="Section 3.2.1"/>.</t> | |||
| title="Packet Forwarding Example without PHP"> | <figure anchor="nophpfwdeg" align="left" suppress-title="false" pn="fi | |||
| <artwork align="center"><![CDATA[ | gure-4"> | |||
| <name slugifiedName="name-packet-forwarding-example-wi">Packet-Forwa | ||||
| rding Example without PHP</name> | ||||
| <artwork align="center" name="" type="" alt="" pn="section-3.2.2-2.1 | ||||
| "> | ||||
| +-----+ +-----+ +-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ +-----+ +-----+ | |||
| | A +-------+ B +-------+ C +--------+ D +--------+ H | | | A +-------+ B +-------+ C +--------+ D +--------+ H | | |||
| +-----+ +--+--+ +--+--+ +--+--+ +-----+ | +-----+ +--+--+ +--+--+ +--+--+ +-----+ | |||
| | | | | | | | | |||
| | | | | | | | | |||
| +--+--+ +--+--+ +--+--+ | +--+--+ +--+--+ +--+--+ | |||
| | E +-------+ F +--------+ G | | | E +-------+ F +--------+ G | | |||
| +-----+ +-----+ +-----+ | +-----+ +-----+ +-----+ | |||
| +--------+ | +--------+ | |||
| |IP(A->E)| | |IP(A->E)| | |||
| +--------+ +--------+ | +--------+ +--------+ | |||
| | UDP | |IP(E->G)| | | UDP | |IP(E->G)| | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| | L(E) | | UDP | |IP(G->H)| | | L(E) | | UDP | |IP(G->H)| | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| | L(G) | | L(G) | | UDP | | | L(G) | | L(G) | | UDP | | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| | L(H) | | L(H) | | L(H) | | | L(H) | | L(H) | | L(H) | | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| | Packet | ---> | Packet | ---> | Packet | | | Packet | ---> | Packet | ---> | Packet | | |||
| +--------+ +--------+ +--------+ | +--------+ +--------+ +--------+ | |||
| ]]></artwork> | </artwork> | |||
| </figure> | </figure> | |||
| <t pn="section-3.2.2-3">As can be seen from the figure, the SR-MPLS la | ||||
| <t>As can be seen from the figure, the SR-MPLS label for each | bel for each | |||
| segment is left in place until the end of the segment where it is | segment is left in place until the end of the segment where it is | |||
| popped and the next instruction is processed.</t> | popped and the next instruction is processed.</t> | |||
| </section> | </section> | |||
| <section anchor="addnlfwd" numbered="true" toc="include" removeInRFC="fa | ||||
| <section anchor="addnlfwd" title="Additional Forwarding Procedures"> | lse" pn="section-3.2.3"> | |||
| <t><list style="hanging"> | <name slugifiedName="name-additional-forwarding-proce">Additional Forw | |||
| <t hangText="Non-MPLS Interfaces:">Although the description in | arding Procedures</name> | |||
| the previous two sections is based on the use of prefix-SIDs, | <dl newline="false" spacing="normal" pn="section-3.2.3-1"> | |||
| <dt pn="section-3.2.3-1.1">Non-MPLS Interfaces:</dt> | ||||
| <dd pn="section-3.2.3-1.2">Although the description in | ||||
| the previous two sections is based on the use of Prefix-SIDs, | ||||
| tunneling SR-MPLS packets is useful when the top label of a | tunneling SR-MPLS packets is useful when the top label of a | |||
| received SR-MPLS packet indicates an adjacency-SID and the | received SR-MPLS packet indicates an Adjacency SID and the | |||
| corresponding adjacent node to that adjacency-SID is not capable | corresponding adjacent node to that Adjacency SID is not capable | |||
| of MPLS forwarding but can still process SR-MPLS packets. In | of MPLS forwarding but can still process SR-MPLS packets. In | |||
| this scenario the top label would be replaced by an IP tunnel | this scenario, the top label would be replaced by an IP tunnel | |||
| toward that adjacent node and then forwarded over the | toward that adjacent node and then forwarded over the | |||
| corresponding link indicated by the adjacency-SID.</t> | corresponding link indicated by the Adjacency SID.</dd> | |||
| <dt pn="section-3.2.3-1.3">When to Use IP-Based Tunnels:</dt> | ||||
| <t hangText="When to use IP-based Tunnels:">The description in | <dd pn="section-3.2.3-1.4">The description in | |||
| the previous two sections is based on the assumption that | the previous two sections is based on the assumption that | |||
| MPLS-over-UDP tunnel is used when the nexthop towards the next | an MPLS-over-UDP tunnel is used when the next hop towards the next | |||
| segment is not MPLS-enabled. However, even in the case where the | segment is not MPLS enabled. However, even in the case where the | |||
| nexthop towards the next segment is MPLS-capable, an | next hop towards the next segment is MPLS capable, an | |||
| MPLS-over-UDP tunnel towards the next segment could still be | MPLS-over-UDP tunnel towards the next segment could still be | |||
| used instead due to local policies. For instance, in the example | used instead due to local policies. For instance, in the example | |||
| as described in <xref target="nophpfwdeg"/>, assume F is now an | as described in <xref target="nophpfwdeg" format="default" section | |||
| SR-MPLS-capable transit node while all the other assumptions | Format="of" derivedContent="Figure 4"/>, assume F is now a | |||
| remain unchanged: since F is not identified by a SID in the stack | transit node capable of SR-MPLS while all the other assumptions | |||
| remain unchanged; since F is not identified by a SID in the stack | ||||
| and an MPLS-over-UDP tunnel is preferred to an MPLS LSP | and an MPLS-over-UDP tunnel is preferred to an MPLS LSP | |||
| according to local policies, router E replaces the current | according to local policies, router E replaces the current | |||
| top label with an MPLS-over-UDP tunnel toward router G and send | top label with an MPLS-over-UDP tunnel toward router G and sends | |||
| it out. (Note that if an MPLS LSP was preferred, the packet | it out. (Note that if an MPLS LSP was preferred, the packet | |||
| would be forwarded as native SR-MPLS.)</t> | would be forwarded as native SR-MPLS.)</dd> | |||
| <dt pn="section-3.2.3-1.5">IP Header Fields:</dt> | ||||
| <t hangText="IP Header Fields:">When encapsulating an MPLS | <dd pn="section-3.2.3-1.6">When encapsulating an MPLS | |||
| packet in UDP, the resulting packet is further encapsulated in | packet in UDP, the resulting packet is further encapsulated in | |||
| IP for transmission. IPv4 or IPv6 may be used according to the | IP for transmission. IPv4 or IPv6 may be used according to the | |||
| capabilities of the network. The address fields are set as | capabilities of the network. The address fields are set as | |||
| described in <xref target="usecases"/>. The other IP header | described in <xref target="usecases" format="default" sectionForma | |||
| fields (such as the ECN field <xref target="RFC6040"/>, the DSCP | t="of" derivedContent="Section 2"/>. The other IP header | |||
| code point <xref target="RFC2983"/>, or IPv6 Flow Label) on each | fields (such as the ECN field <xref target="RFC6040" format="defau | |||
| UDP-encapsulated segment SHOULD be configurable according to the | lt" sectionFormat="of" derivedContent="RFC6040"/>, the | |||
| operator's policy: they may be copied from the header of the | Differentiated Services Code Point (DSCP) <xref target="RFC2983" f | |||
| incoming packet; they may be promoted from the header of the | ormat="default" sectionFormat="of" derivedContent="RFC2983"/>, or IPv6 Flow Labe | |||
| payload packet; they may be set according to instructions | l) on each UDP-encapsulated | |||
| programmed to be associated with the SID; or they may be | segment <bcp14>SHOULD</bcp14> be configurable according to the ope | |||
| configured dependent on the outgoing interface and payload. The | rator's | |||
| TTL field setting in the encapsulating packet header is handled | policy; they may be copied from the header of the incoming | |||
| as described in [RFC7510] which refers to [RFC4023].</t> | packet; they may be promoted from the header of the payload | |||
| packet; they may be set according to instructions programmed to | ||||
| <t hangText="Entropy and ECMP:">When encapsulating an MPLS | be associated with the SID; or they may be configured dependent | |||
| on the outgoing interface and payload. The TTL field setting in | ||||
| the encapsulating packet header is handled as described in | ||||
| <xref target="RFC7510" format="default" sectionFormat="of" derived | ||||
| Content="RFC7510"/>, which refers to <xref target="RFC4023" format="default" sec | ||||
| tionFormat="of" derivedContent="RFC4023"/>.</dd> | ||||
| <dt pn="section-3.2.3-1.7">Entropy and ECMP:</dt> | ||||
| <dd pn="section-3.2.3-1.8">When encapsulating an MPLS | ||||
| packet with an IP tunnel header that is capable of encoding | packet with an IP tunnel header that is capable of encoding | |||
| entropy (such as <xref target="RFC7510"/>), the corresponding | entropy (such as <xref target="RFC7510" format="default" sectionFo | |||
| entropy field (the source port in the case of a UDP tunnel) MAY | rmat="of" derivedContent="RFC7510"/>), the corresponding | |||
| entropy field (the source port in the case of a UDP tunnel) <bcp14 | ||||
| >MAY</bcp14> | ||||
| be filled with an entropy value that is generated by the | be filled with an entropy value that is generated by the | |||
| encapsulator to uniquely identify a flow. However, what | encapsulator to uniquely identify a flow. However, what | |||
| constitutes a flow is locally determined by the encapsulator. For | constitutes a flow is locally determined by the encapsulator. For | |||
| instance, if the MPLS label stack contains at least one entropy | instance, if the MPLS label stack contains at least one entropy | |||
| label and the encapsulator is capable of reading that entropy | label and the encapsulator is capable of reading that entropy | |||
| label, the entropy label value could be directly copied to the | label, the entropy label value could be directly copied to the | |||
| source port of the UDP header. Otherwise, the encapsulator may | source port of the UDP header. Otherwise, the encapsulator may | |||
| have to perform a hash on the whole label stack or the five-tuple | have to perform a hash on the whole label stack or the five-tuple | |||
| of the SR-MPLS payload if the payload is determined as an IP packe t. | of the SR-MPLS payload if the payload is determined as an IP packe t. | |||
| To avoid re-performing the hash or hunting for the entropy label | To avoid recalculating the hash or hunting for the entropy label | |||
| each time the packet is encapsulated in a UDP tunnel it MAY be | each time the packet is encapsulated in a UDP tunnel, it <bcp14>MA | |||
| Y</bcp14> be | ||||
| desirable that the entropy value contained in the incoming | desirable that the entropy value contained in the incoming | |||
| packet (i.e., the UDP source port value) is retained when | packet (i.e., the UDP source port value) is retained when | |||
| stripping the UDP header and is re-used as the entropy value of | stripping the UDP header and is reused as the entropy value of | |||
| the outgoing packet.</t> | the outgoing packet.</dd> | |||
| <dt pn="section-3.2.3-1.9">Congestion Considerations:</dt> | ||||
| <t hangText="Congestion Considerations:">Section 5 of | <dd pn="section-3.2.3-1.10"> | |||
| <xref target="RFC7510" /> provides a detailed analysis of the | <xref target="RFC7510" sectionFormat="of" section="5" format="defa | |||
| ult" derivedLink="https://rfc-editor.org/rfc/rfc7510#section-5" derivedContent=" | ||||
| RFC7510"/> provides a detailed analysis of the | ||||
| implications of congestion in MPLS-over-UDP systems and builds | implications of congestion in MPLS-over-UDP systems and builds | |||
| on section 3.1.3 of <xref target="RFC8085" /> that describes | on <xref target="RFC8085" sectionFormat="of" section="3.1.3" forma t="default" derivedLink="https://rfc-editor.org/rfc/rfc8085#section-3.1.3" deriv edContent="RFC8085"/>, which describes | |||
| the congestion implications of UDP tunnels. All of those | the congestion implications of UDP tunnels. All of those | |||
| considerations apply to SR-MPLS-over-UDP tunnels as described | considerations apply to SR-MPLS-over-UDP tunnels as described | |||
| in this document. In particular, it should be noted that the | in this document. In particular, it should be noted that the | |||
| traffic carried in SR-MPLS flows is likely to be IP traffic.</t> | traffic carried in SR-MPLS flows is likely to be IP traffic.</dd> | |||
| </list></t> | </dl> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| </section> | </section> | |||
| <section anchor="IANA" numbered="true" toc="include" removeInRFC="false" pn= | ||||
| <section anchor="IANA" title="IANA Considerations"> | "section-4"> | |||
| <t>This document makes no requests for IANA action.</t> | <name slugifiedName="name-iana-considerations">IANA Considerations</name> | |||
| <t pn="section-4-1">This document has no IANA actions.</t> | ||||
| </section> | </section> | |||
| <section anchor="Security" numbered="true" toc="include" removeInRFC="false" | ||||
| <section anchor="Security" title="Security Considerations"> | pn="section-5"> | |||
| <t>The security consideration of <xref target="RFC8354"/> (which redirects | <name slugifiedName="name-security-considerations">Security Considerations | |||
| the reader to <xref target="RFC5095" />) and <xref target="RFC7510"/> | </name> | |||
| apply. DTLS <xref target="RFC6347"/> SHOULD be used where security is | <t pn="section-5-1">The security consideration of <xref target="RFC8354" f | |||
| needed on an MPLS-SR-over-UDP segment including when the IP segment crosse | ormat="default" sectionFormat="of" derivedContent="RFC8354"/> (which redirects | |||
| s | the reader to <xref target="RFC5095" format="default" sectionFormat="of" d | |||
| the public Internet or some other untrusted environment. <xref target="RFC | erivedContent="RFC5095"/>) and <xref target="RFC7510" format="default" sectionFo | |||
| 8402" /> | rmat="of" derivedContent="RFC7510"/> | |||
| provides security considerations for Segment Routing, and Section 8.1 of t | apply. DTLS <xref target="RFC6347" format="default" sectionFormat="of" der | |||
| hat | ivedContent="RFC6347"/> <bcp14>SHOULD</bcp14> be used where security is | |||
| document is particularly applicable to SR-MPLS.</t> | needed on an SR-MPLS-over-UDP segment including when the IP segment crosse | |||
| s | ||||
| <t>It is difficult for an attacker to pass a raw MPLS encoded packet | the public Internet or some other untrusted environment. <xref target="RFC | |||
| into a network and operators have considerable experience at excluding | 8402" format="default" sectionFormat="of" derivedContent="RFC8402"/> | |||
| such packets at the network boundaries, for example by excluding all | provides security considerations for Segment Routing, and <xref target="RF | |||
| C8402" sectionFormat="of" section="8.1" format="default" derivedLink="https://rf | ||||
| c-editor.org/rfc/rfc8402#section-8.1" derivedContent="RFC8402"/> is particularly | ||||
| applicable to SR-MPLS.</t> | ||||
| <t pn="section-5-2">It is difficult for an attacker to pass a raw MPLS-enc | ||||
| oded packet | ||||
| into a network, and operators have considerable experience in excluding | ||||
| such packets at the network boundaries, for example, by excluding all | ||||
| packets that are revealed to be carrying an MPLS packet as the payload | packets that are revealed to be carrying an MPLS packet as the payload | |||
| of IP tunnels. Further discussion of MPLS security is found in | of IP tunnels. Further discussion of MPLS security is found in | |||
| <xref target="RFC5920" />.</t> | <xref target="RFC5920" format="default" sectionFormat="of" derivedContent= | |||
| "RFC5920"/>.</t> | ||||
| <t>It is easy for a network ingress node to detect any attempt to smuggle | <t pn="section-5-3">It is easy for a network ingress node to detect any at | |||
| an IP | tempt to smuggle an IP | |||
| packet into the network since it would see that the UDP destination port | packet into the network since it would see that the UDP destination port | |||
| was set to MPLS, and such filtering SHOULD be applied. If, however, the | was set to MPLS, and such filtering <bcp14>SHOULD</bcp14> be applied. If, | |||
| mechanisms described in <xref target="OSPF-EXTENSIONS"/> | however, the | |||
| or <xref target="ISIS-EXTENSIONS"/> are applied, | mechanisms described in <xref target="RFC8665" format="default" sectionFor | |||
| mat="of" derivedContent="RFC8665"/> | ||||
| or <xref target="RFC8667" format="default" sectionFormat="of" derivedConte | ||||
| nt="RFC8667"/> are applied, | ||||
| a wider variety of UDP port numbers might be in use making port filtering | a wider variety of UDP port numbers might be in use making port filtering | |||
| harder.</t> | harder.</t> | |||
| <t pn="section-5-4">SR packets not having a destination address terminatin | ||||
| <t>SR packets not having a destination address terminating in the network | g in the network | |||
| would be transparently carried and would pose no different security risk t o | would be transparently carried and would pose no different security risk t o | |||
| the network under consideration than any other traffic.</t> | the network under consideration than any other traffic.</t> | |||
| <t pn="section-5-5">Where control-plane techniques are used (as described | ||||
| <t>Where control plane techniques are used (as described in <xref | in <xref target="procs" format="default" sectionFormat="of" derivedContent="Sect | |||
| target="procs"/>), it is important that these protocols are adequately | ion 3"/>), it is important that these protocols are adequately | |||
| secured for the environment in which they are run as discussed in | secured for the environment in which they are run as discussed in | |||
| <xref target="RFC6862" /> and <xref target="RFC5920" />.</t> | <xref target="RFC6862" format="default" sectionFormat="of" derivedContent= "RFC6862"/> and <xref target="RFC5920" format="default" sectionFormat="of" deriv edContent="RFC5920"/>.</t> | |||
| </section> | </section> | |||
| </middle> | ||||
| <section title="Contributors"> | <back> | |||
| <figure> | <displayreference target="I-D.ietf-bess-datacenter-gateway" to="DC-GATEWAY"/ | |||
| <artwork><![CDATA[Ahmed Bashandy | > | |||
| <displayreference target="I-D.ietf-ospf-encapsulation-cap" to="OSPF-ENCAP"/> | ||||
| <displayreference target="I-D.ietf-isis-encapsulation-cap" to="ISIS-ENCAP"/> | ||||
| <displayreference target="I-D.ietf-6man-segment-routing-header" to="IPv6-SRH | ||||
| "/> | ||||
| <references pn="section-6"> | ||||
| <name slugifiedName="name-references">References</name> | ||||
| <references pn="section-6.1"> | ||||
| <name slugifiedName="name-normative-references">Normative References</na | ||||
| me> | ||||
| <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 119" quoteTitle="true" derivedAnchor="RFC2119"> | ||||
| <front> | ||||
| <title>Key words for use in RFCs to Indicate Requirement Levels</tit | ||||
| le> | ||||
| <author initials="S." surname="Bradner" fullname="S. Bradner"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="1997" month="March"/> | ||||
| <abstract> | ||||
| <t>In many standards track documents several words are used to sig | ||||
| nify the requirements in the specification. These words are often capitalized. | ||||
| This document defines these words as they should be interpreted in IETF document | ||||
| s. This document specifies an Internet Best Current Practices for the Internet | ||||
| Community, and requests discussion and suggestions for improvements.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="2119"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2119"/> | ||||
| </reference> | ||||
| <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="RFC3032" target="https://www.rfc-editor.org/info/rfc3 | ||||
| 032" quoteTitle="true" derivedAnchor="RFC3032"> | ||||
| <front> | ||||
| <title>MPLS Label Stack Encoding</title> | ||||
| <author initials="E." surname="Rosen" fullname="E. Rosen"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="D." surname="Tappan" fullname="D. Tappan"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="G." surname="Fedorkow" fullname="G. Fedorkow"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="Y." surname="Rekhter" fullname="Y. Rekhter"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="D." surname="Farinacci" fullname="D. Farinacci"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="T." surname="Li" fullname="T. Li"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="A." surname="Conta" fullname="A. Conta"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2001" month="January"/> | ||||
| <abstract> | ||||
| <t>This document specifies the encoding to be used by an LSR in or | ||||
| der to transmit labeled packets on Point-to-Point Protocol (PPP) data links, on | ||||
| LAN data links, and possibly on other data links as well. This document also sp | ||||
| ecifies rules and procedures for processing the various fields of the label stac | ||||
| k encoding. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="3032"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC3032"/> | ||||
| </reference> | ||||
| <reference anchor="RFC4023" target="https://www.rfc-editor.org/info/rfc4 | ||||
| 023" quoteTitle="true" derivedAnchor="RFC4023"> | ||||
| <front> | ||||
| <title>Encapsulating MPLS in IP or Generic Routing Encapsulation (GR | ||||
| E)</title> | ||||
| <author initials="T." surname="Worster" fullname="T. Worster"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="Y." surname="Rekhter" fullname="Y. Rekhter"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="E." surname="Rosen" fullname="E. Rosen" role="edit | ||||
| or"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2005" month="March"/> | ||||
| <abstract> | ||||
| <t>Various applications of MPLS make use of label stacks with mult | ||||
| iple entries. In some cases, it is possible to replace the top label of the sta | ||||
| ck with an IP-based encapsulation, thereby enabling the application to run over | ||||
| networks that do not have MPLS enabled in their core routers. This document spe | ||||
| cifies two IP-based encapsulations: MPLS-in-IP and MPLS-in-GRE (Generic Routing | ||||
| Encapsulation). Each of these is applicable in some circumstances. [STANDARDS-T | ||||
| RACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="4023"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC4023"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5095" target="https://www.rfc-editor.org/info/rfc5 | ||||
| 095" quoteTitle="true" derivedAnchor="RFC5095"> | ||||
| <front> | ||||
| <title>Deprecation of Type 0 Routing Headers in IPv6</title> | ||||
| <author initials="J." surname="Abley" fullname="J. Abley"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="P." surname="Savola" fullname="P. Savola"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="G." surname="Neville-Neil" fullname="G. Neville-Ne | ||||
| il"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2007" month="December"/> | ||||
| <abstract> | ||||
| <t>The functionality provided by IPv6's Type 0 Routing Header can | ||||
| be exploited in order to achieve traffic amplification over a remote path for th | ||||
| e purposes of generating denial-of-service traffic. This document updates the I | ||||
| Pv6 specification to deprecate the use of IPv6 Type 0 Routing Headers, in light | ||||
| of this security concern. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5095"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5095"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6040" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 040" quoteTitle="true" derivedAnchor="RFC6040"> | ||||
| <front> | ||||
| <title>Tunnelling of Explicit Congestion Notification</title> | ||||
| <author initials="B." surname="Briscoe" fullname="B. Briscoe"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2010" month="November"/> | ||||
| <abstract> | ||||
| <t>This document redefines how the explicit congestion notificatio | ||||
| n (ECN) field of the IP header should be constructed on entry to and exit from a | ||||
| ny IP-in-IP tunnel. On encapsulation, it updates RFC 3168 to bring all IP-in-IP | ||||
| tunnels (v4 or v6) into line with RFC 4301 IPsec ECN processing. On decapsulat | ||||
| ion, it updates both RFC 3168 and RFC 4301 to add new behaviours for previously | ||||
| unused combinations of inner and outer headers. The new rules ensure the ECN fi | ||||
| eld is correctly propagated across a tunnel whether it is used to signal one or | ||||
| two severity levels of congestion; whereas before, only one severity level was s | ||||
| upported. Tunnel endpoints can be updated in any order without affecting pre-ex | ||||
| isting uses of the ECN field, thus ensuring backward compatibility. Nonetheless | ||||
| , operators wanting to support two severity levels (e.g., for pre-congestion not | ||||
| ification -- PCN) can require compliance with this new specification. A thoroug | ||||
| h analysis of the reasoning for these changes and the implications is included. | ||||
| In the unlikely event that the new rules do not meet a specific need, RFC 4774 | ||||
| gives guidance on designing alternate ECN semantics, and this document extends t | ||||
| hat to include tunnelling issues. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6040"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6040"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6347" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 347" quoteTitle="true" derivedAnchor="RFC6347"> | ||||
| <front> | ||||
| <title>Datagram Transport Layer Security Version 1.2</title> | ||||
| <author initials="E." surname="Rescorla" fullname="E. Rescorla"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="N." surname="Modadugu" fullname="N. Modadugu"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2012" month="January"/> | ||||
| <abstract> | ||||
| <t>This document specifies version 1.2 of the Datagram Transport L | ||||
| ayer Security (DTLS) protocol. The DTLS protocol provides communications privac | ||||
| y for datagram protocols. The protocol allows client/server applications to com | ||||
| municate in a way that is designed to prevent eavesdropping, tampering, or messa | ||||
| ge forgery. The DTLS protocol is based on the Transport Layer Security (TLS) pr | ||||
| otocol and provides equivalent security guarantees. Datagram semantics of the u | ||||
| nderlying transport are preserved by the DTLS protocol. This document updates D | ||||
| TLS 1.0 to work with TLS version 1.2. [STANDARDS-TRACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6347"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6347"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7510" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 510" quoteTitle="true" derivedAnchor="RFC7510"> | ||||
| <front> | ||||
| <title>Encapsulating MPLS in UDP</title> | ||||
| <author initials="X." surname="Xu" fullname="X. Xu"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="N." surname="Sheth" fullname="N. Sheth"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="L." surname="Yong" fullname="L. Yong"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R." surname="Callon" fullname="R. Callon"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="D." surname="Black" fullname="D. Black"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2015" month="April"/> | ||||
| <abstract> | ||||
| <t>This document specifies an IP-based encapsulation for MPLS, cal | ||||
| led MPLS-in-UDP for situations where UDP (User Datagram Protocol) encapsulation | ||||
| is preferred to direct use of MPLS, e.g., to enable UDP-based ECMP (Equal-Cost M | ||||
| ultipath) or link aggregation. The MPLS- in-UDP encapsulation technology must o | ||||
| nly be deployed within a single network (with a single network operator) or netw | ||||
| orks of an adjacent set of cooperating network operators where traffic is manage | ||||
| d to avoid congestion, rather than over the Internet where congestion control is | ||||
| required. Usage restrictions apply to MPLS-in-UDP usage for traffic that is no | ||||
| t congestion controlled and to UDP zero checksum usage with IPv6.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7510"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7510"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7684" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 684" quoteTitle="true" derivedAnchor="RFC7684"> | ||||
| <front> | ||||
| <title>OSPFv2 Prefix/Link Attribute Advertisement</title> | ||||
| <author initials="P." surname="Psenak" fullname="P. Psenak"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="H." surname="Gredler" fullname="H. Gredler"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R." surname="Shakir" fullname="R. Shakir"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="W." surname="Henderickx" fullname="W. Henderickx"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="J." surname="Tantsura" fullname="J. Tantsura"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="A." surname="Lindem" fullname="A. Lindem"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2015" month="November"/> | ||||
| <abstract> | ||||
| <t>OSPFv2 requires functional extension beyond what can readily be | ||||
| done with the fixed-format Link State Advertisements (LSAs) as described in RFC | ||||
| 2328. This document defines OSPFv2 Opaque LSAs based on Type-Length-Value (TLV | ||||
| ) tuples that can be used to associate additional attributes with prefixes or li | ||||
| nks. Depending on the application, these prefixes and links may or may not be a | ||||
| dvertised in the fixed-format LSAs. The OSPFv2 Opaque LSAs are optional and ful | ||||
| ly backward compatible.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7684"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7684"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7794" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 794" quoteTitle="true" derivedAnchor="RFC7794"> | ||||
| <front> | ||||
| <title>IS-IS Prefix Attributes for Extended IPv4 and IPv6 Reachabili | ||||
| ty</title> | ||||
| <author initials="L." surname="Ginsberg" fullname="L. Ginsberg" role | ||||
| ="editor"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="B." surname="Decraene" fullname="B. Decraene"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S." surname="Previdi" fullname="S. Previdi"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="X." surname="Xu" fullname="X. Xu"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="U." surname="Chunduri" fullname="U. Chunduri"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2016" month="March"/> | ||||
| <abstract> | ||||
| <t>This document introduces new sub-TLVs to support advertisement | ||||
| of IPv4 and IPv6 prefix attribute flags and the source router ID of the router t | ||||
| hat originated a prefix advertisement.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7794"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7794"/> | ||||
| </reference> | ||||
| <reference anchor="RFC7981" target="https://www.rfc-editor.org/info/rfc7 | ||||
| 981" quoteTitle="true" derivedAnchor="RFC7981"> | ||||
| <front> | ||||
| <title>IS-IS Extensions for Advertising Router Information</title> | ||||
| <author initials="L." surname="Ginsberg" fullname="L. Ginsberg"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S." surname="Previdi" fullname="S. Previdi"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="M." surname="Chen" fullname="M. Chen"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2016" month="October"/> | ||||
| <abstract> | ||||
| <t>This document defines a new optional Intermediate System to Int | ||||
| ermediate System (IS-IS) TLV named CAPABILITY, formed of multiple sub-TLVs, whic | ||||
| h allows a router to announce its capabilities within an IS-IS level or the enti | ||||
| re routing domain. This document obsoletes RFC 4971.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="7981"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC7981"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 174" quoteTitle="true" derivedAnchor="RFC8174"> | ||||
| <front> | ||||
| <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</ti | ||||
| tle> | ||||
| <author initials="B." surname="Leiba" fullname="B. Leiba"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2017" month="May"/> | ||||
| <abstract> | ||||
| <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 | ||||
| t only UPPERCASE usage of the key words have the defined special meanings.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="14"/> | ||||
| <seriesInfo name="RFC" value="8174"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8174"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8402" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 402" quoteTitle="true" derivedAnchor="RFC8402"> | ||||
| <front> | ||||
| <title>Segment Routing Architecture</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="L." surname="Ginsberg" fullname="L. Ginsberg"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="B." surname="Decraene" fullname="B. Decraene"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S." surname="Litkowski" fullname="S. Litkowski"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R." surname="Shakir" fullname="R. Shakir"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2018" month="July"/> | ||||
| <abstract> | ||||
| <t>Segment Routing (SR) leverages the source routing paradigm. A | ||||
| node steers a packet through an ordered list of instructions, called "segments". | ||||
| A segment can represent any instruction, topological or service based. A segm | ||||
| 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 | ||||
| l path, while maintaining per-flow state only at the ingress node(s) to the SR d | ||||
| omain.</t> | ||||
| <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 | ||||
| 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 | ||||
| d from the stack.</t> | ||||
| <t>SR can be applied to the IPv6 architecture, with a new type of | ||||
| 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 | ||||
| he active segment is indicated by the Destination Address (DA) of the packet. T | ||||
| he next active segment is indicated by a pointer in the new routing header.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8402"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8402"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8660" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 660" quoteTitle="true" derivedAnchor="RFC8660"> | ||||
| <front> | ||||
| <title>Segment Routing with the MPLS Data Plane</title> | ||||
| <seriesInfo name="RFC" value="8660"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8660"/> | ||||
| <author initials="A" surname="Bashandy" fullname="Ahmed Bashandy"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
| > | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S" surname="Previdi" fullname="Stefano Previdi"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S" surname="Litkowski" fullname="Stephane Litkowsk | ||||
| i"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R" surname="Shakir" fullname="Rob Shakir"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date month="December" year="2019"/> | ||||
| </front> | ||||
| </reference> | ||||
| </references> | ||||
| <references pn="section-6.2"> | ||||
| <name slugifiedName="name-informative-references">Informative References | ||||
| </name> | ||||
| <reference anchor="I-D.ietf-bess-datacenter-gateway" quoteTitle="true" t | ||||
| arget="https://tools.ietf.org/html/draft-ietf-bess-datacenter-gateway-04" derive | ||||
| dAnchor="DC-GATEWAY"> | ||||
| <front> | ||||
| <title>Gateway Auto-Discovery and Route Advertisement for Segment Ro | ||||
| uting Enabled Domain Interconnection</title> | ||||
| <author initials="A" surname="Farrel" fullname="Adrian Farrel"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="J" surname="Drake" fullname="John Drake"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="E" surname="Rosen" fullname="Eric Rosen"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="K" surname="Patel" fullname="Keyur Patel"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="L" surname="Jalil" fullname="Luay Jalil"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date month="August" day="21" year="2019"/> | ||||
| <abstract> | ||||
| <t>Data centers are critical components of the infrastructure used | ||||
| by network operators to provide services to their customers. Data centers are | ||||
| attached to the Internet or a backbone network by gateway routers. One data cen | ||||
| ter typically has more than one gateway for commercial, load balancing, and resi | ||||
| liency reasons. Segment Routing is a popular protocol mechanism for use within | ||||
| a data center, but also for steering traffic that flows between two data center | ||||
| sites. In order that one data center site may load balance the traffic it sends | ||||
| to another data center site, it needs to know the complete set of gateway route | ||||
| rs at the remote data center, the points of connection from those gateways to th | ||||
| e backbone network, and the connectivity across the backbone network. Segment R | ||||
| outing may also be operated in other domains, such as access networks. Those do | ||||
| mains also need to be connected across backbone networks through gateways. This | ||||
| document defines a mechanism using the BGP Tunnel Encapsulation attribute to al | ||||
| low each gateway router to advertise the routes to the prefixes in the Segment R | ||||
| outing domains to which it provides access, and also to advertise on behalf of e | ||||
| ach other gateway to the same Segment Routing domain.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-bess-datacenter-ga | ||||
| teway-04"/> | ||||
| <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-i | ||||
| etf-bess-datacenter-gateway-04.txt"/> | ||||
| <refcontent>Work in Progress</refcontent> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-6man-segment-routing-header" quoteTitle="tru | ||||
| e" target="https://tools.ietf.org/html/draft-ietf-6man-segment-routing-header-26 | ||||
| " derivedAnchor="IPv6-SRH"> | ||||
| <front> | ||||
| <title>IPv6 Segment Routing Header (SRH)</title> | ||||
| <author initials="C" surname="Filsfils" fullname="Clarence Filsfils" | ||||
| > | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="D" surname="Dukes" fullname="Darren Dukes"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S" surname="Previdi" fullname="Stefano Previdi"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="J" surname="Leddy" fullname="John Leddy"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S" surname="Matsushima" fullname="Satoru Matsushim | ||||
| a"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="D" surname="Voyer" fullname="Daniel Voyer"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date month="October" day="22" year="2019"/> | ||||
| <abstract> | ||||
| <t>Segment Routing can be applied to the IPv6 data plane using a n | ||||
| ew type of Routing Extension Header called the Segment Routing Header. This docu | ||||
| ment describes the Segment Routing Header and how it is used by Segment Routing | ||||
| capable nodes.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-6man-segment-routi | ||||
| ng-header-26"/> | ||||
| <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-i | ||||
| etf-6man-segment-routing-header-26.txt"/> | ||||
| <refcontent>Work in Progress</refcontent> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-isis-encapsulation-cap" quoteTitle="true" ta | ||||
| rget="https://tools.ietf.org/html/draft-ietf-isis-encapsulation-cap-01" derivedA | ||||
| nchor="ISIS-ENCAP"> | ||||
| <front> | ||||
| <title>Advertising Tunnelling Capability in IS-IS</title> | ||||
| <author initials="X" surname="Xu" fullname="Xiaohu Xu"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R" surname="Raszuk" fullname="Robert Raszuk"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="U" surname="Chunduri" fullname="Uma Chunduri"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="L" surname="Contreras" fullname="Luis Contreras"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="L" surname="Jalil" fullname="Luay Jalil"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date month="April" day="24" year="2017"/> | ||||
| <abstract> | ||||
| <t>Some networks use tunnels for a variety of reasons. A large va | ||||
| riety of tunnel types are defined and the ingress needs to select a type of tunn | ||||
| el which is supported by the egress. This document defines how to advertise egr | ||||
| ess tunnel capabilities in IS-IS Router Capability TLV.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-isis-encapsulation | ||||
| -cap-01"/> | ||||
| <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-i | ||||
| etf-isis-encapsulation-cap-01.txt"/> | ||||
| <refcontent>Work in Progress</refcontent> | ||||
| </reference> | ||||
| <reference anchor="I-D.ietf-ospf-encapsulation-cap" quoteTitle="true" ta | ||||
| rget="https://tools.ietf.org/html/draft-ietf-ospf-encapsulation-cap-09" derivedA | ||||
| nchor="OSPF-ENCAP"> | ||||
| <front> | ||||
| <title>The Tunnel Encapsulations OSPF Router Information</title> | ||||
| <author initials="X" surname="Xu" fullname="Xiaohu Xu"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R" surname="Raszuk" fullname="Robert Raszuk"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="L" surname="Contreras" fullname="Luis Contreras"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="L" surname="Jalil" fullname="Luay Jalil"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date month="October" day="10" year="2017"/> | ||||
| <abstract> | ||||
| <t>Networks use tunnels for a variety of reasons. A large variety | ||||
| of tunnel types are defined and the tunnel encapsulator router needs to select | ||||
| a type of tunnel which is supported by the tunnel decapsulator router. This doc | ||||
| ument defines how to advertise, in OSPF Router Information Link State Advertisem | ||||
| ent (LSAs), the list of tunnel encapsulations supported by the tunnel decapsulat | ||||
| or.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="Internet-Draft" value="draft-ietf-ospf-encapsulation | ||||
| -cap-09"/> | ||||
| <format type="TXT" target="http://www.ietf.org/internet-drafts/draft-i | ||||
| etf-ospf-encapsulation-cap-09.txt"/> | ||||
| <refcontent>Work in Progress</refcontent> | ||||
| </reference> | ||||
| <reference anchor="RFC2983" target="https://www.rfc-editor.org/info/rfc2 | ||||
| 983" quoteTitle="true" derivedAnchor="RFC2983"> | ||||
| <front> | ||||
| <title>Differentiated Services and Tunnels</title> | ||||
| <author initials="D." surname="Black" fullname="D. Black"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2000" month="October"/> | ||||
| <abstract> | ||||
| <t>This document considers the interaction of Differentiated Servi | ||||
| ces (diffserv) with IP tunnels of various forms. This memo provides information | ||||
| for the Internet community.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="2983"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC2983"/> | ||||
| </reference> | ||||
| <reference anchor="RFC5920" target="https://www.rfc-editor.org/info/rfc5 | ||||
| 920" quoteTitle="true" derivedAnchor="RFC5920"> | ||||
| <front> | ||||
| <title>Security Framework for MPLS and GMPLS Networks</title> | ||||
| <author initials="L." surname="Fang" fullname="L. Fang" role="editor | ||||
| "> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2010" month="July"/> | ||||
| <abstract> | ||||
| <t>This document provides a security framework for Multiprotocol L | ||||
| abel Switching (MPLS) and Generalized Multiprotocol Label Switching (GMPLS) Netw | ||||
| orks. This document addresses the security aspects that are relevant in the con | ||||
| text of MPLS and GMPLS. It describes the security threats, the related defensiv | ||||
| e techniques, and the mechanisms for detection and reporting. This document emp | ||||
| hasizes RSVP-TE and LDP security considerations, as well as inter-AS and inter-p | ||||
| rovider security considerations for building and maintaining MPLS and GMPLS netw | ||||
| orks across different domains or different Service Providers. This document is | ||||
| not an Internet Standards Track specification; it is published for informationa | ||||
| l purposes.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="5920"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC5920"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6790" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 790" quoteTitle="true" derivedAnchor="RFC6790"> | ||||
| <front> | ||||
| <title>The Use of Entropy Labels in MPLS Forwarding</title> | ||||
| <author initials="K." surname="Kompella" fullname="K. Kompella"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="J." surname="Drake" fullname="J. Drake"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S." surname="Amante" fullname="S. Amante"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="W." surname="Henderickx" fullname="W. Henderickx"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="L." surname="Yong" fullname="L. Yong"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2012" month="November"/> | ||||
| <abstract> | ||||
| <t>Load balancing is a powerful tool for engineering traffic acros | ||||
| s a network. This memo suggests ways of improving load balancing across MPLS ne | ||||
| tworks using the concept of "entropy labels". It defines the concept, describes | ||||
| why entropy labels are useful, enumerates properties of entropy labels that all | ||||
| ow maximal benefit, and shows how they can be signaled and used for various appl | ||||
| ications. This document updates RFCs 3031, 3107, 3209, and 5036. [STANDARDS-TR | ||||
| ACK]</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6790"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6790"/> | ||||
| </reference> | ||||
| <reference anchor="RFC6862" target="https://www.rfc-editor.org/info/rfc6 | ||||
| 862" quoteTitle="true" derivedAnchor="RFC6862"> | ||||
| <front> | ||||
| <title>Keying and Authentication for Routing Protocols (KARP) Overvi | ||||
| ew, Threats, and Requirements</title> | ||||
| <author initials="G." surname="Lebovitz" fullname="G. Lebovitz"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="M." surname="Bhatia" fullname="M. Bhatia"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="B." surname="Weis" fullname="B. Weis"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2013" month="March"/> | ||||
| <abstract> | ||||
| <t>Different routing protocols employ different mechanisms for sec | ||||
| uring protocol packets on the wire. While most already have some method for acc | ||||
| omplishing cryptographic message authentication, in many cases the existing meth | ||||
| ods are dated, vulnerable to attack, and employ cryptographic algorithms that ha | ||||
| ve been deprecated. The "Keying and Authentication for Routing Pr | ||||
| otocols" (KARP) effort aims to overhaul and improve these mechanisms. This docu | ||||
| ment does not contain protocol specifications. Instead, it defines the areas wh | ||||
| ere protocol specification work is needed. This document is a companion documen | ||||
| t to RFC 6518, "Keying and Authentication for Routing Protocols (KARP) Design Gu | ||||
| idelines"; together they form the guidance and instruction KARP design teams wil | ||||
| l use to review and overhaul routing protocol transport security.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="6862"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC6862"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8085" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 085" quoteTitle="true" derivedAnchor="RFC8085"> | ||||
| <front> | ||||
| <title>UDP Usage Guidelines</title> | ||||
| <author initials="L." surname="Eggert" fullname="L. Eggert"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="G." surname="Fairhurst" fullname="G. Fairhurst"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="G." surname="Shepherd" fullname="G. Shepherd"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2017" month="March"/> | ||||
| <abstract> | ||||
| <t>The User Datagram Protocol (UDP) provides a minimal message-pas | ||||
| sing transport that has no inherent congestion control mechanisms. This documen | ||||
| t provides guidelines on the use of UDP for the designers of applications, tunne | ||||
| ls, and other protocols that use UDP. Congestion control guidelines are a prima | ||||
| ry focus, but the document also provides guidance on other topics, including mes | ||||
| sage sizes, reliability, checksums, middlebox traversal, the use of Explicit Con | ||||
| gestion Notification (ECN), Differentiated Services Code Points (DSCPs), and por | ||||
| ts.</t> | ||||
| <t>Because congestion control is critical to the stable operation | ||||
| of the Internet, applications and other protocols that choose to use UDP as an I | ||||
| nternet transport must employ mechanisms to prevent congestion collapse and to e | ||||
| stablish some degree of fairness with concurrent traffic. They may also need to | ||||
| implement additional mechanisms, depending on how they use UDP.</t> | ||||
| <t>Some guidance is also applicable to the design of other protoco | ||||
| ls (e.g., protocols layered directly on IP or via IP-based tunnels), especially | ||||
| when these protocols do not themselves provide congestion control.</t> | ||||
| <t>This document obsoletes RFC 5405 and adds guidelines for multic | ||||
| ast UDP usage.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="BCP" value="145"/> | ||||
| <seriesInfo name="RFC" value="8085"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8085"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8354" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 354" quoteTitle="true" derivedAnchor="RFC8354"> | ||||
| <front> | ||||
| <title>Use Cases for IPv6 Source Packet Routing in Networking (SPRIN | ||||
| G)</title> | ||||
| <author initials="J." surname="Brzozowski" fullname="J. Brzozowski"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="J." surname="Leddy" fullname="J. Leddy"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="C." surname="Filsfils" fullname="C. Filsfils"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R." surname="Maglione" fullname="R. Maglione" role | ||||
| ="editor"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="M." surname="Townsley" fullname="M. Townsley"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <date year="2018" month="March"/> | ||||
| <abstract> | ||||
| <t>The Source Packet Routing in Networking (SPRING) architecture d | ||||
| escribes how Segment Routing can be used to steer packets through an IPv6 or MPL | ||||
| S network using the source routing paradigm. This document illustrates some use | ||||
| cases for Segment Routing in an IPv6-only environment.</t> | ||||
| </abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="8354"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8354"/> | ||||
| </reference> | ||||
| <reference anchor="RFC8662" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 662" quoteTitle="true" derivedAnchor="RFC8662"> | ||||
| <front> | ||||
| <title>Entropy Label for Source Packet Routing in Networking (SPRING | ||||
| ) Tunnels</title> | ||||
| <seriesInfo name="RFC" value="8662"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFC8662"/> | ||||
| <author initials="S" surname="Kini" fullname="Sriganesh Kini"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="K" surname="Kompella" fullname="Kireeti Kompella"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S" surname="Sivabalan" fullname="Siva Sivabalan"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="S" surname="Litkowski" fullname="Stephane Litkowsk | ||||
| i"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="R" surname="Shakir" fullname="Rob Shakir"> | ||||
| <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="RFC8665" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 665" quoteTitle="true" 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 Henderickx"> | ||||
| <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="RFC8667" target="https://www.rfc-editor.org/info/rfc8 | ||||
| 667" quoteTitle="true" 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" ro | ||||
| le="editor"> | ||||
| <organization showOnFrontPage="true"/> | ||||
| </author> | ||||
| <author initials="L" surname="Ginsberg" fullname="Les Ginsberg" role | ||||
| ="editor"> | ||||
| <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> | ||||
| <section anchor="Acknowledgements" numbered="false" toc="include" removeInRF | ||||
| C="false" pn="section-appendix.a"> | ||||
| <name slugifiedName="name-acknowledgements">Acknowledgements</name> | ||||
| <t pn="section-appendix.a-1">Thanks to Joel Halpern, Bruno Decraene, Loa A | ||||
| ndersson, | ||||
| Ron Bonica, Eric Rosen, Jim Guichard, Gunter Van De Velde, | ||||
| Andy Malis, Robert Sparks, and Al Morton for their insightful | ||||
| comments on this document.</t> | ||||
| <t pn="section-appendix.a-2">Additional thanks to Mirja Kuehlewind, Alvaro | ||||
| Retana, Spencer Dawkins, | ||||
| Benjamin Kaduk, Martin Vigoureux, Suresh Krishnan, and Eric Vyncke | ||||
| for careful reviews and resulting comments.</t> | ||||
| </section> | ||||
| <section numbered="false" toc="include" removeInRFC="false" pn="section-appe | ||||
| ndix.b"> | ||||
| <name slugifiedName="name-contributors">Contributors</name> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-1"> | ||||
| Ahmed Bashandy | ||||
| Individual | Individual | |||
| Email: abashandy.ietf@gmail.com | Email: abashandy.ietf@gmail.com | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-2"> | ||||
| Clarence Filsfils | Clarence Filsfils | |||
| Cisco | Cisco | |||
| Email: cfilsfil@cisco.com | Email: cfilsfil@cisco.com | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-3"> | ||||
| John Drake | John Drake | |||
| Juniper | Juniper | |||
| Email: jdrake@juniper.net | Email: jdrake@juniper.net | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-4"> | ||||
| Shaowen Ma | Shaowen Ma | |||
| Mellanox Technologies | Mellanox Technologies | |||
| Email: mashaowen@gmail.com | Email: mashaowen@gmail.com | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-5"> | ||||
| Mach Chen | Mach Chen | |||
| Huawei | Huawei | |||
| Email: mach.chen@huawei.com | Email: mach.chen@huawei.com | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-6"> | ||||
| Hamid Assarpour | Hamid Assarpour | |||
| Broadcom | Broadcom | |||
| Email:hamid.assarpour@broadcom.com | Email:hamid.assarpour@broadcom.com | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-7"> | ||||
| Robert Raszuk | Robert Raszuk | |||
| Bloomberg LP | Bloomberg LP | |||
| Email: robert@raszuk.net | Email: robert@raszuk.net | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-8"> | ||||
| Uma Chunduri | Uma Chunduri | |||
| Huawei | Huawei | |||
| Email: uma.chunduri@gmail.com | Email: uma.chunduri@gmail.com | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-9"> | ||||
| Luis M. Contreras | Luis M. Contreras | |||
| Telefonica I+D | Telefonica I+D | |||
| Email: luismiguel.contrerasmurillo@telefonica.com | Email: luismiguel.contrerasmurillo@telefonica.com | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-10"> | ||||
| Luay Jalil | Luay Jalil | |||
| Verizon | Verizon | |||
| Email: luay.jalil@verizon.com | Email: luay.jalil@verizon.com | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-11"> | ||||
| Gunter Van De Velde | Gunter Van De Velde | |||
| Nokia | Nokia | |||
| Email: gunter.van_de_velde@nokia.com | Email: gunter.van_de_velde@nokia.com | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-12"> | ||||
| Tal Mizrahi | Tal Mizrahi | |||
| Marvell | Marvell | |||
| Email: talmi@marvell.com | Email: talmi@marvell.com | |||
| </artwork> | ||||
| <artwork name="" type="" align="left" alt="" pn="section-appendix.b-13"> | ||||
| Jeff Tantsura | Jeff Tantsura | |||
| Individual | Apstra, Inc. | |||
| Email: jefftant@gmail.com | Email: jefftant.ietf@gmail.com | |||
| </artwork> | ||||
| ]]></artwork> | ||||
| </figure> | ||||
| </section> | </section> | |||
| <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc | ||||
| <section anchor="Acknowledgements" title="Acknowledgements"> | ="include" pn="section-appendix.c"> | |||
| <t>Thanks to Joel Halpern, Bruno Decraene, Loa Andersson, | <name slugifiedName="name-authors-addresses">Authors' Addresses</name> | |||
| Ron Bonica, Eric Rosen, Jim Guichard, Gunter Van De Velde, | <author fullname="Xiaohu Xu" initials="X." surname="Xu"> | |||
| Andy Malis, Robert Sparks, and Al Morton for their insightful | <organization showOnFrontPage="true">Alibaba, Inc</organization> | |||
| comments on this draft.</t> | <address> | |||
| <email>xiaohu.xxh@alibaba-inc.com</email> | ||||
| <t>Additional thanks to Mirja Kuehlewind, Alvaro Retana, Spencer Dawkins, | </address> | |||
| Benjamin Kaduk, Martin Vigoureux, Suresh Krishnan, and Éric Vyncke | </author> | |||
| for careful reviews and resulting comments.</t> | <author fullname="Stewart Bryant" initials="S." surname="Bryant"> | |||
| <organization showOnFrontPage="true">Futurewei Technologies</organizatio | ||||
| n> | ||||
| <address> | ||||
| <email>stewart.bryant@gmail.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author fullname="Adrian Farrel" initials="A." surname="Farrel"> | ||||
| <organization showOnFrontPage="true">Old Dog Consulting</organization> | ||||
| <address> | ||||
| <email>adrian@olddog.co.uk</email> | ||||
| </address> | ||||
| </author> | ||||
| <author fullname="Syed Hassan" initials="S." surname="Hassan"> | ||||
| <organization showOnFrontPage="true">Cisco</organization> | ||||
| <address> | ||||
| <email>shassan@cisco.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author fullname="Wim Henderickx" initials="W" surname="Henderickx"> | ||||
| <organization showOnFrontPage="true">Nokia</organization> | ||||
| <address> | ||||
| <email>wim.henderickx@nokia.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author fullname="Zhenbin Li" initials="Z." surname="Li"> | ||||
| <organization showOnFrontPage="true">Huawei</organization> | ||||
| <address> | ||||
| <email>lizhenbin@huawei.com</email> | ||||
| </address> | ||||
| </author> | ||||
| </section> | </section> | |||
| </middle> | ||||
| <back> | ||||
| <references title="Normative References"> | ||||
| <?rfc include="reference.RFC.2119"?> | ||||
| <?rfc include="reference.RFC.3031"?> | ||||
| <?rfc include="reference.RFC.3032"?> | ||||
| <?rfc include="reference.RFC.4023"?> | ||||
| <?rfc include="reference.RFC.5095"?> | ||||
| <?rfc include="reference.RFC.6040"?> | ||||
| <?rfc include="reference.RFC.6347"?> | ||||
| <?rfc include="reference.RFC.7510"?> | ||||
| <?rfc include="reference.RFC.7684"?> | ||||
| <?rfc include="reference.RFC.7794"?> | ||||
| <?rfc include="reference.RFC.7981"?> | ||||
| <?rfc include="reference.RFC.8174"?> | ||||
| <?rfc include="reference.RFC.8402"?> | ||||
| <!-- <?rfc include="reference.I-D.ietf-spring-segment-routing-mpls"?>; companion | ||||
| document RFC YYYY--> | ||||
| <reference anchor='RFCYYYY'> | ||||
| <front> | ||||
| <title>Segment Routing with MPLS data plane</title> | ||||
| <author initials='A' surname='Bashandy' fullname='Ahmed Bashandy'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='C' surname='Filsfils' fullname='Clarence Filsfils'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='S' surname='Previdi' fullname='Stefano Previdi'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='B' surname='Decraene' fullname='Bruno Decraene'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='S' surname='Litkowski' fullname='Stephane Litkowski'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='R' surname='Shakir' fullname='Rob Shakir'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='May' day='1' year='2019' /> | ||||
| <abstract><t>Segment Routing (SR) leverages the source routing paradigm. A node | ||||
| steers a packet through a controlled set of instructions, called segments, by p | ||||
| repending the packet with an SR header. In the MPLS dataplane, the SR header is | ||||
| instantiated through a label stack. This document specifies the forwarding beha | ||||
| vior to allow instantiating SR over the MPLS dataplane.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name="RFC" value="YYYY"/> | ||||
| <seriesInfo name="DOI" value="10.17487/RFCYYYY"/> | ||||
| </reference> | ||||
| </references> | ||||
| <references title="Informative References"> | ||||
| <?rfc include="reference.RFC.2983"?> | ||||
| <?rfc include="reference.RFC.5920"?> | ||||
| <?rfc include="reference.RFC.6790"?> | ||||
| <?rfc include="reference.RFC.6862"?> | ||||
| <?rfc include="reference.RFC.8085"?> | ||||
| <?rfc include="reference.RFC.8354"?> | ||||
| <!-- <?rfc include="reference.I-D.ietf-bess-datacenter-gateway"?>; I-D Exists -- | ||||
| > | ||||
| <reference anchor='DATACENTER-GATEWAY'> | ||||
| <front> | ||||
| <title>Gateway Auto-Discovery and Route Advertisement for Segment Routing Enable | ||||
| d Domain Interconnection</title> | ||||
| <author initials='A' surname='Farrel' fullname='Adrian Farrel'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='J' surname='Drake' fullname='John Drake'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='E' surname='Rosen' fullname='Eric Rosen'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='K' surname='Patel' fullname='Keyur Patel'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='L' surname='Jalil' fullname='Luay Jalil'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='February' day='26' year='2019' /> | ||||
| <abstract><t>Data centers are critical components of the infrastructure used by | ||||
| network operators to provide services to their customers. Data centers are atta | ||||
| ched to the Internet or a backbone network by gateway routers. One data center | ||||
| typically has more than one gateway for commercial, load balancing, and resilien | ||||
| cy reasons. Segment Routing is a popular protocol mechanism for use within a da | ||||
| ta center, but also for steering traffic that flows between two data center site | ||||
| s. In order that one data center site may load balance the traffic it sends to | ||||
| another data center site, it needs to know the complete set of gateway routers a | ||||
| t the remote data center, the points of connection from those gateways to the ba | ||||
| ckbone network, and the connectivity across the backbone network. Segment Routi | ||||
| ng may also be operated in other domains, such as access networks. Those domain | ||||
| s also need to be connected across backbone networks through gateways. This doc | ||||
| ument defines a mechanism using the BGP Tunnel Encapsulation attribute to allow | ||||
| each gateway router to advertise the routes to the prefixes in the Segment Routi | ||||
| ng domains to which it provides access, and also to advertise on behalf of each | ||||
| other gateway to the same Segment Routing domain.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='Work in Progress,' value='draft-ietf-bess-datacenter-gateway-0 | ||||
| 2' /> | ||||
| </reference> | ||||
| <!-- <?rfc include="reference.I-D.ietf-ospf-segment-routing-extensions"?>; RFC E | ||||
| d Queue --> | ||||
| <reference anchor='OSPF-EXTENSIONS'> | ||||
| <front> | ||||
| <title>OSPF Extensions for Segment Routing</title> | ||||
| <author initials='P' surname='Psenak' fullname='Peter Psenak' role="editor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='S' surname='Previdi' fullname='Stefano Previdi' role="editor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='C' surname='Filsfils' fullname='Clarence Filsfils'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='H' surname='Gredler' fullname='Hannes Gredler'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='R' surname='Shakir' fullname='Rob Shakir'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='W' surname='Henderickx' fullname='Wim Henderickx'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='J' surname='Tantsura' fullname='Jeff Tantsura'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='December' day='5' year='2018' /> | ||||
| <abstract><t>Segment Routing (SR) allows a flexible definition of end-to-end pat | ||||
| hs within IGP topologies by encoding paths as sequences of topological sub-paths | ||||
| , called "segments". These segments are advertised by the link-state routing pr | ||||
| otocols (IS-IS and OSPF). This draft describes the OSPFv2 extensions required f | ||||
| or Segment Routing.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='Work in Progress,' value='draft-ietf-ospf-segment-routing-exte | ||||
| nsions-27' /> | ||||
| </reference> | ||||
| <!-- <?rfc include="reference.I-D.ietf-isis-segment-routing-extensions"?>; RFC E | ||||
| d Queue --> | ||||
| <reference anchor='ISIS-EXTENSIONS'> | ||||
| <front> | ||||
| <title>IS-IS Extensions for Segment Routing</title> | ||||
| <author initials='S' surname='Previdi' fullname='Stefano Previdi' role="editor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='L' surname='Ginsberg' fullname='Les Ginsberg' role="editor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='C' surname='Filsfils' fullname='Clarence Filsfils'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='A' surname='Bashandy' fullname='Ahmed Bashandy'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='H' surname='Gredler' fullname='Hannes Gredler'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='B' surname='Decraene' fullname='Bruno Decraene'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='May' day='19' year='2019' /> | ||||
| <abstract><t>Segment Routing (SR) allows for a flexible definition of end-to-end | ||||
| paths within IGP topologies by encoding paths as sequences of topological sub-p | ||||
| aths, called "segments". These segments are advertised by the link-state routin | ||||
| g protocols (IS-IS and OSPF). This draft describes the necessary IS-IS extensio | ||||
| ns that need to be introduced for Segment Routing operating on an MPLS data-plan | ||||
| e.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='Work in Progress,' value='draft-ietf-isis-segment-routing-exte | ||||
| nsions-25' /> | ||||
| </reference> | ||||
| <!-- <?rfc include="reference.I-D.ietf-ospf-encapsulation-cap"?>; RFC Ed Queue - | ||||
| -> | ||||
| <reference anchor='OSPF-ROUTER'> | ||||
| <front> | ||||
| <title>The Tunnel Encapsulations OSPF Router Information</title> | ||||
| <author initials='X' surname='Xu' fullname='Xiaohu Xu' role="editor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='B' surname='Decraene' fullname='Bruno Decraene' role="editor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='R' surname='Raszuk' fullname='Robert Raszuk'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='L' surname='Contreras' fullname='Luis Contreras'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='L' surname='Jalil' fullname='Luay Jalil'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='October' day='10' year='2017' /> | ||||
| <abstract><t>Networks use tunnels for a variety of reasons. A large variety of | ||||
| tunnel types are defined and the tunnel encapsulator router needs to select a ty | ||||
| pe of tunnel which is supported by the tunnel decapsulator router. This documen | ||||
| t defines how to advertise, in OSPF Router Information Link State Advertisement | ||||
| (LSAs), the list of tunnel encapsulations supported by the tunnel decapsulator.< | ||||
| /t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='Work in Progress,' value='draft-ietf-ospf-encapsulation-cap-09 | ||||
| ' /> | ||||
| </reference> | ||||
| <!-- <?rfc include="reference.I-D.ietf-isis-encapsulation-cap"?>; Expired --> | ||||
| <reference anchor='ISIS-ENCAP'> | ||||
| <front> | ||||
| <title>Advertising Tunnelling Capability in IS-IS</title> | ||||
| <author initials='X' surname='Xu' fullname='Xiaohu Xu' role="editor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='B' surname='Decraene' fullname='Bruno Decraene'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='R' surname='Raszuk' fullname='Robert Raszuk'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='U' surname='Chunduri' fullname='Uma Chunduri'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='L' surname='Contreras' fullname='Luis Contreras'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='L' surname='Jalil' fullname='Luay Jalil'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='April' day='24' year='2017' /> | ||||
| <abstract><t>Some networks use tunnels for a variety of reasons. A large variet | ||||
| y of tunnel types are defined and the ingress needs to select a type of tunnel w | ||||
| hich is supported by the egress. This document defines how to advertise egress | ||||
| tunnel capabilities in IS-IS Router Capability TLV.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='Work in Progress,' value='draft-ietf-isis-encapsulation-cap-01 | ||||
| ' /> | ||||
| </reference> | ||||
| <!-- <?rfc include="reference.I-D.ietf-mpls-spring-entropy-label"?>; RFC Ed Queu | ||||
| e --> | ||||
| <reference anchor='ENTROPY-LABEL'> | ||||
| <front> | ||||
| <title>Entropy label for SPRING tunnels</title> | ||||
| <author initials='S' surname='Kini' fullname='Sriganesh Kini'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='K' surname='Kompella' fullname='Kireeti Kompella'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='S' surname='Sivabalan' fullname='Siva Sivabalan'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='S' surname='Litkowski' fullname='Stephane Litkowski'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='R' surname='Shakir' fullname='Rob Shakir'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='J' surname='Tantsura' fullname='Jeff Tantsura'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='July' day='16' year='2018' /> | ||||
| <abstract><t>Segment Routing (SR) leverages the source routing paradigm. A node | ||||
| steers a packet through an ordered list of instructions, called segments. Segm | ||||
| ent Routing can be applied to the Multi Protocol Label Switching (MPLS) data pla | ||||
| ne. Entropy label (EL) is a technique used in MPLS to improve load-balancing. | ||||
| This document examines and describes how ELs are to be applied to Segment Routin | ||||
| g MPLS.</t></abstract> | ||||
| </front> | ||||
| <seriesInfo name='Work in Progress,' value='draft-ietf-mpls-spring-entropy-label | ||||
| -12' /> | ||||
| </reference> | ||||
| <!-- <?rfc include="reference.I-D.ietf-6man-segment-routing-header"?>; AD Evalua | ||||
| tion::Revised I-D Needed for 2 days --> | ||||
| <reference anchor='IPV6-SEGMENT'> | ||||
| <front> | ||||
| <title>IPv6 Segment Routing Header (SRH)</title> | ||||
| <author initials='C' surname='Filsfils' fullname='Clarence Filsfils' role="edito | ||||
| r"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='D' surname='Dukes' fullname='Darren Dukes' role="editor"> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='S' surname='Previdi' fullname='Stefano Previdi'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='J' surname='Leddy' fullname='John Leddy'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='S' surname='Matsushima' fullname='Satoru Matsushima'> | ||||
| <organization /> | ||||
| </author> | ||||
| <author initials='d' surname='daniel.voyer@bell.ca' fullname='daniel.voyer@bell. | ||||
| ca'> | ||||
| <organization /> | ||||
| </author> | ||||
| <date month='June' day='13' year='2019' /> | ||||
| <abstract><t>Segment Routing can be applied to the IPv6 data plane using a new t | ||||
| ype of Routing Extension Header. This document describes the Segment Routing Ex | ||||
| tension Header and how it is used by Segment Routing capable nodes.</t></abstrac | ||||
| t> | ||||
| </front> | ||||
| <seriesInfo name='Work in Progress,' value='draft-ietf-6man-segment-routing-head | ||||
| er-21' /> | ||||
| </reference> | ||||
| </references> | ||||
| </back> | </back> | |||
| </rfc> | </rfc> | |||
| End of changes. 108 change blocks. | ||||
| 903 lines changed or deleted | 1692 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/ | ||||