<?xmlversion="1.0" encoding="US-ASCII"?>version='1.0' encoding='UTF-8'?> <!DOCTYPE rfcSYSTEM "rfc2629.dtd"> <?rfc toc="yes"?> <?rfc tocompact="yes"?> <?rfc tocdepth="3"?> <?rfc tocindent="yes"?> <?rfc symrefs="yes"?> <?rfc sortrefs="yes"?> <?rfc comments="yes"?> <?rfc inline="yes"?> <?rfc compact="yes"?> <?rfc subcompact="no"?>[ <!ENTITY nbsp " "> <!ENTITY zwsp "​"> <!ENTITY nbhy "‑"> <!ENTITY wj "⁠"> ]> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="exp" docName="draft-ietf-idr-bgp-ct-39"ipr="trust200902">number="9832" consensus="true" ipr="trust200902" obsoletes="" updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" symRefs="true" sortRefs="true" version="3"> <front> <title abbrev="BGP Classful Transport Planes">BGP Classful Transport Planes</title> <seriesInfo name="RFC" value="9832"/> <author fullname="Kaliraj Vairavakkalai" initials="K." role="editor" surname="Vairavakkalai"> <organization>Juniper Networks, Inc.</organization> <address> <postal> <street>1133 InnovationWay,</street>Way</street> <city>Sunnyvale</city> <region>CA</region> <code>94089</code><country>US</country><country>United States of America</country> </postal> <email>kaliraj@juniper.net</email> </address> </author> <author fullname="Natrajan Venkataraman" initials="N." role="editor" surname="Venkataraman"> <organization>Juniper Networks, Inc.</organization> <address> <postal> <street>1133 InnovationWay,</street>Way</street> <city>Sunnyvale</city> <region>CA</region> <code>94089</code><country>US</country><country>United States of America</country> </postal> <email>natv@juniper.net</email> </address> </author> <dateday="28" month="2"month="August" year="2025"/> <area>RTG</area> <workgroup>idr</workgroup> <!-- [rfced] Please insert any keywords (beyond those that appear in the title) for use on https://www.rfc-editor.org/search. --> <keyword>example</keyword> <!--[rfced] We see mention of the "TEAs Network Slices Framework" in the Abstract, may we update as follows to clarify the document you are mentioning? Original: These constructs can be used, for example, to realize the "IETF Network Slice" defined in TEAS Network Slices framework. Perhaps: These constructs can be used, for example, to realize the "IETF Network Slice" defined in the TEAS Network Slices framework (RFC 9543). --> <abstract> <t>This document specifies a mechanism referred to as"Intent Driven"Intent-Driven Service Mapping". The mechanism uses BGP to expressintent basedintent-based association of overlay routes with underlay routes having specific Traffic Engineering (TE) characteristics satisfying a certain Service Level Agreement (SLA). This is achieved by defining new constructs to group underlay routes with sufficiently similar TE characteristics into identifiable classes (called "TransportClasses"),Classes" or "TCs"), that overlay routes use as an ordered set to resolve reachability (Resolution Schemes) towards service endpoints. These constructs can be used, for example, to realize the "IETF Network Slice" defined in the TEAS Network Slices framework.</t> <t>Additionally, this document specifies protocol procedures for BGP that enable dissemination of service mapping information in a network that may span multiple cooperating administrative domains. These domains may be administered either by the same provider or by closely coordinating providers. A new BGP address family that leveragesRFC 4364 ("BGP/MPLSthe procedures described in "BGP/MPLS IP Virtual Private Networks(VPNs)") procedures(VPNs)" (RFC 4364) and follows the NLRI encoding described in RFC 8277 ("Using BGP to Bind MPLS Labels to Address Prefixes")NLRI encodingis defined to enable each advertised underlay route to be identified by its class. This new address family is called "BGP ClassfulTransport", a.k.a., BGP CT.</t>Transport" (or "BGP CT").</t> </abstract><note title="Requirements Language"> <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 <xref target="RFC2119"></xref> <xref target="RFC8174"></xref> when, and only when, they appear in all capitals, as shown here.</t> </note></front> <middle> <sectiontitle="Introduction">numbered="true" toc="default"> <name>Introduction</name> <t>Provider networks typically span across multiple domains where each domain can either represent an Autonomous System (AS) or an Interior Gateway Protocol (IGP) region within an AS. In these networks, several services are provisioned between different pairs of service endpoints (e.g., Provider Edge (PE)nodes),nodes) that caneitherbe either in the same domain or across different domains.</t> <t><xreftarget="RFC9315"></xref>target="RFC9315" format="default"/> defines "Intent"as, "Aas:</t> <blockquote><t>A set of operational goals (that a network should meet) and outcomes (that a network is supposed to deliver) defined in a declarative manner without specifying how to achieve or implementthem.".</t>them.</t></blockquote> <t> This document prescribes constructs and procedures to realize"Intent","Intent" and enable provider networks tobe able toforward service traffic based onservice specific intent,service-specific intent from end-to-end across service endpoints.</t> <t>The mechanisms described in this document achieve"Intent Driven"Intent-Driven Service Mapping" between any pair of service endpointsby:<list>by:</t> <ul spacing="normal"> <li> <t>Provisioning end-to-end "intent-aware" paths using BGP. For example,low latency path, best efforta low-latency path or a best-effort path.</t> </li> <li> <t>Expressing a desired intent. For example, uselow latencya low-latency path with a fallback to thebest effortbest-effort path.</t> </li> <li> <t>Forwarding service traffic "only" using end-to-end "intent-aware" paths honoring that desired intent.</t></list></t></li> </ul> <t>The constructs and procedures defined in this document apply equally to intra-ASas well asand inter-AS (a.k.a. multi-AS) deployments in the style of Option A, OptionBB, and Option C(Section 10, <xref target="RFC4364"/>) style deployments(<xref target="RFC4364" sectionFormat="of" section="10"/>) in provider networks.</t> <t>Such networks provision intra-domain transport tunnels between a pair of endpoints, typically a service node or a border node that service traffic traverses through. These tunnels are signaled using various tunneling protocols depending on the forwarding architecture used in the domain, which can be Multiprotocol Label Switching (MPLS), Internet Protocol version 4 (IPv4), or Internet Protocol version 6 (IPv6).</t> <t>The mechanisms defined in this document allow different tunneling technologies to becomeTransport ClassTC aware. These can be applied homogeneously to intra-domain tunneling technologies used in existing brownfield networks as well as new greenfield networks. For clarity, only some tunneling technologies are detailed in this document. In someexamplesexamples, only MPLS Traffic Engineering (TE)examples areis described. Other tunneling technologies have been described in detail in other documentsand(and only an overview has been included in thisdocument.document). For example, the details for Segment Routing over IPv6 (SRv6) are provided in <xreftarget="BGP-CT-SRv6"/>,target="I-D.ietf-idr-bgp-ct-srv6" format="default"/> and an overview is provided in <xreftarget="SRv6-Support"/>.</t>target="SRv6-Support" format="default"/>.</t> <t>Customers need to be able to express desired Intent to the network, and the network needs to have constructs able to enact the customer's intent. The network constructs defined in this document are used to classify and group these intra-domain tunnels based on various characteristics, like TE characteristics (e.g.,low latency),low-latency), into identifiable classes that can pass "intent-aware" traffic. These constructs enable services to signal their intent to use one or more identifiableclasses,classes and mechanisms to selectively map traffic onto "intent-aware" tunnels for these classes.</t> <t>This document introduces a new BGP address family called "BGP Classful Transport",thatwhich extends/stitches intent-aware intra-domain tunnels belonging to the same class across domainboundaries,boundaries to establish end-to-end intent-aware paths between service endpoints.</t> <t><xreftarget="Intent-Routing-Color"/>target="I-D.hr-spring-intentaware-routing-using-color" format="default"/> describes various use cases and applications of the procedures described in this document.</t> <t><xreftarget="Appendix C"/>target="Appendix_C" format="default"/> provides an outline of the design philosophy behind this specification. In particular, readers who are already familiar with one or more BGP VPN technologies may want to review this appendix before reading the main body of the specification.</t> </section> <sectiontitle="Terminology"> <t>ABR: Areanumbered="true" toc="default"> <name>Terminology</name> <section numbered="true" toc="default"> <name>Abbreviations</name> <dl spacing="normal" newline="false"> <dt>ABR:</dt><dd>Area Border Router(Readvertises(readvertises BGP CT or BGP LU routes withnext hop self)</t> <t>AFI: AddressNH self)</dd> <dt>AFI:</dt><dd>Address FamilyIdentifier</t> <t>AS: Autonomous System</t> <t>ASBR: AutonomousIdentifier</dd> <dt>AS:</dt><dd>Autonomous System</dd> <dt>ASBR:</dt><dd>Autonomous System BorderRouter</t> <t>ASN: AutonomousRouter</dd> <dt>ASN:</dt><dd>Autonomous SystemNumber</t> <t>BGP VPN: VPNsNumber</dd> <dt>BGP VPN:</dt><dd>VPNs built usingRD,RD or RT; architecture described inRFC4364</t> <t>BGP LU: BGP<xref target="RFC4364"/></dd> <dt>BGP LU:</dt><dd>BGP Labeled Unicast family (AFI/SAFIs 1/4,2/4)</t> <t>BGP CT: BGP2/4)</dd> <dt>BGP CT:</dt><dd>BGP Classful Transport family (AFI/SAFIs 1/76,2/76)</t> <t>BN: Border Node</t> <t>CBF: Class Based Forwarding</t> <t>CsC: Carrier serving2/76)</dd> <dt>BN:</dt><dd>Border Node</dd> <dt>CBF:</dt><dd>Class-Based Forwarding</dd> <dt>CCA:</dt><dd>Community Carrying Attribute</dd> <dt>CsC:</dt><dd>Carriers' Carriers (serving the CarrierVPN</t> <t>DSCP: DifferentiatedVPN)</dd> <dt>DSCP:</dt><dd>Differentiated Services CodePoint</t> <t>EP: Endpoint ofPoint</dd> <dt>EP:</dt><dd>Endpoint (of a tunnel,e.g.e.g., a loopback address in thenetwork</t> <t>EPE: Egressnetwork)</dd> <dt>EPE:</dt><dd>Egress PeerEngineering</t> <t>eSN: EgressEngineering</dd> <dt>eSN:</dt><dd>Egress ServiceNode</t> <t>FEC: ForwardingNode</dd> <dt>FEC:</dt><dd>Forwarding EquivalenceClass</t> <t>FRR: Fast ReRoute (Pre-programmed next hopClass</dd> <dt>FRR:</dt><dd>Fast Reroute (Preprogrammed NH leg inforwarding)</t> <t>iSN: Ingressforwarding)</dd> <dt>iSN:</dt><dd>Ingress ServiceNode</t> <t>L-ISIS: LabeledNode</dd> <dt>L-ISIS:</dt><dd>Labeled ISIS(RFC 8667)</t> <t>LSP: Label(see RFC 8667)</dd> <dt>LSP:</dt><dd>Label SwitchedPath</t> <t>MPLS: Multi ProtocolPath</dd> <dt>MPLS:</dt><dd>Multiprotocol LabelSwitching</t> <t>NLRI: NetworkSwitching</dd> <dt>NH:</dt><dd>Next Hop</dd> <dt>NLRI:</dt><dd>Network Layer ReachabilityInformation</t> <t>PE: Provider Edge</t> <t>PIC: Prefix scaleInformation</dd> <dt>PE:</dt><dd>Provider Edge</dd> <dt>PIC:</dt><dd>Prefix IndependentConvergence</t> <t>PNH: ProtocolConvergence</dd> <dt>PNH:</dt><dd>Protocol Next Hopaddress(address carried in a BGPUpdate message</t> <t>RD: Route Distinguisher</t> <t>RD:EP : BGP CT Prefix consisting of RouteUPDATE message)</dd> <dt>RD:</dt><dd>Route Distinguisher</dd> <dt>RD:EP:</dt><dd>Route Distinguisher andEndpoint</t> <t>RSVP-TE: ResourceEndpoint (in a BGP Prefix)</dd> <dt>RSVP-TE:</dt><dd>Resource Reservation Protocol - TrafficEngineering</t> <t>RT:Engineering</dd> <dt>RT:</dt><dd>Route Target (as used in Route Target extendedcommunity</t> <t>RTC: Routecommunity)</dd> <dt>RTC:</dt><dd>Route Target Constrain(RFC 4684)</t> <t>SAFI: Subsequent<xref target="RFC4684"/></dd> <dt>SAFI:</dt><dd>Subsequent Address FamilyIdentifier</t> <t>SID: Segment Identifier</t> <t>SLA: ServiceIdentifier</dd> <dt>SID:</dt><dd>Segment Identifier</dd> <dt>SLA:</dt><dd>Service LevelAgreement</t> <t>SN: Service Node</t> <t>SR: Segment Routing</t> <t>SRTE: SegmentAgreement</dd> <dt>SN:</dt><dd>Service Node</dd> <dt>SR:</dt><dd>Segment Routing</dd> <dt>SRTE:</dt><dd>Segment Routing TrafficEngineering</t> <t>TC: Transport Class</t> <t>TC ID: TransportEngineering</dd> <dt>TC:</dt><dd>Transport Class</dd> <dt>TC ID:</dt><dd>Transport Class Identifier</dd> <dt>TC-BE:</dt><dd>Transport ClassIdentifier</t> <t>TC-BE:- BestEffort Transport Class</t> <t>TE: Traffic Engineering</t> <t>TEA: TunnelEffort</dd> <dt>TE:</dt><dd>Traffic Engineering</dd> <dt>TEA:</dt><dd>Tunnel EncapsulationAttribute, attributeAttribute (attribute type code23</t> <t>TRDB: Transport23)</dd> <dt>TRDB:</dt><dd>Transport RouteDatabase</t> <t>UHP: UltimateDatabase</dd> <dt>UHP:</dt><dd>Ultimate HopPop</t> <t>VRF: VirtualPopping</dd> <dt>VRF:</dt><dd>Virtual Routing and Forwardingtable</t>(used with a table)</dd> </dl> </section> <sectiontitle="Definitionsnumbered="true" toc="default"> <name>Definitions andNotations"> <t>BGPNotations</name> <dl spacing="normal" newline="true"> <!--[rfced] In the following text snippets, please review the format of attributes for the following: a) Should all of these names be in all caps (for example, code 25 is in initial caps while code 8 is in all caps)? b) Should they all use "attribute type code", "BGP attribute code", or "attribute code" in their parentheticals? Or are these purposly different? Original: A BGP attribute that carries community. Examples of BGP CCAs are COMMUNITIES (attribute code 8), EXTENDED COMMUNITIES (attribute code 16), IPv6 Address Specific Extended CommunityCarrying(attribute code 25), and LARGE_COMMUNITY (attribute code 32). ... TEA: Tunnel Encapsulation Attribute(CCA) : A(attribute type code 23) ... It is carried in BGP extended community attribute (BGP attribute code 16). ... ..., or IPv6-address specific RT (BGP attribute code 25). ... ...UDP tunneling information is carried using the Tunnel Encapsulation Attribute (code 23)... --> <dt>BGP CCA:</dt><dd>A BGP attribute that carries community. Examples of BGPCCA are:CCAs are COMMUNITIES (attribute code 8), EXTENDED COMMUNITIES (attribute code 16), IPv6 Address Specific Extended Community (attribute code 25), and LARGE_COMMUNITY (attribute code32).</t> <t>color:0:100 : This32).</dd> <!--[rfced] Please review the use of "color field" in the following text and let us know if it should instead be "Color Value field" to match the use in RFC 9012. (Note that the quotations around field names depend on your response to that related question.) Original: ...with the Flags field set to 0 and the color field set to 100. Perhaps: ...with the "Flags" field set to 0 and the "Color Value" field set to 100. --> <dt>color:0:100:</dt><dd>This notation denotes a Colorextended communityExtended Community as defined inRFC 9012<xref target="RFC9012"/> with theFlags"Flags" field set to 0 and thecolor"Color" field set to100.</t> <t>End to End Tunnel: A100.</dd> <dt>End-to-End Tunnel:</dt><dd>A tunnel spanning several adjacent tunnel domains created by "stitching" them together using MPLS labels or an equivalent identifier based on the forwardingarchitecture.</t> <t>Import processing: Receive sidearchitecture.</dd> <dt>Import processing:</dt><dd>Receive-side processing of an overlay route, including things likeimport policyimport-policy application,resolution scheme selectionresolution-scheme selection, andnext hop resolution.</t> <t>Mapping Community: AnyNH resolution.</dd> <dt>Mapping Community:</dt><dd>Any BGP CCA (e.g., Community, Extended Community) on an overlay route that maps to a Resolution Scheme. For example, color:0:100,transport-target:0:100.</t> <t>Provider Namespace: Internaltransport-target:0:100.</dd> <dt>Provider Namespace:</dt><dd>Internal Infrastructure address space inProvidera provider network managed by theOperator.</t> <t>Resolution Scheme: AOperator.</dd> <dt>Resolution Scheme:</dt><dd>A construct comprising of an ordered set of TRDBs to resolvenext hop reachability,NH reachability for realizing a desiredintent.</t> <t>Service Family: Aintent.</dd> <dt>Service Family:</dt><dd>A BGP address family used for advertising routes for destinations in "data traffic". For example, AFI/SAFIs 1/1 or1/128.</t> <t>Service Prefix: A destinations1/128.</dd> <dt>Service Prefix:</dt><dd>A destination in "data traffic". Routes to these prefixes are carried in a Servicefamily.</t> <t>Transport Family: Afamily.</dd> <dt>Transport Family:</dt><dd>A BGP address family used for advertising tunnels, whichareare, inturnturn, used by service routes for resolution. For example, AFI/SAFIs 1/4 or1/76.</t> <t>Transport Tunnel : A1/76.</dd> <dt>Transport Tunnel:</dt><dd>A tunnel over which a service may place traffic. Such a tunnel can be provisioned or signaled using a variety of means. For example, Generic Routing Encapsulation (GRE), UDP, LDP, RSVP-TE, IGPFLEX-ALGOFlexible Algorithm (FLEX-ALGO), orSRTE.</t> <t>Transport,SRTE.</dd> <dt>Transport, TransportLayer: ALayer:</dt><dd>A layer in the network that contains Transport Tunnels and TransportFamilies.</t> <t>Tunnel Route: AFamilies.</dd> <dt>Tunnel Route:</dt><dd>A Route to Tunnel Destination/Endpoint that is installed at the headend (ingress) of thetunnel.</t> <t>Tunnel Domain: Atunnel.</dd> <dt>Tunnel Domain:</dt><dd>A domain of the network containingService Nodes (SNs)SNs andBorder Nodes (BNs)BNs under a single administrative control that has tunnels betweenthem.</t> <t>Brownfield network: Anthem.</dd> <dt>Brownfield network:</dt><dd>An existing network that is already in service, deploying a chosen set of technologies and hardware. Enhancements and upgrades to such network deployments protect return oninvestment,investment and should consider continuity ofservice.</t> <t>Greenfield network: Aservice.</dd> <dt>Greenfield network:</dt><dd>A new network deploymentwhichthat can makechoicechoices of new technology or hardware asneeded,needed with fewer constraints than brownfieldnetwork.</t> <t>Transport Class: Anetwork.</dd> <dt>Transport Class:</dt><dd>A construct to group transport tunnels offering similarSLA (Ref: Sec 4.1).</t> <t>TransportSLAs (see <xref target="tc-te"/>).</dd> <dt>Transport ClassRT: ART:</dt><dd>A Route TargetExtended Communityextended community used to identify a specific TransportClass.</t> <t>transport-target:0:100 : ThisClass.</dd> <dt>transport-target:0:100:</dt><dd>This notation denotes a Transport ClassRTRoute Target extended community as defined in this document with the "Transport Class ID" field set to100.</t> <t>Transport100.</dd> <dt>Transport RouteDatabase: AtDatabase:</dt><dd>At the SN and BN, a Transport Class has an associatedTransport Route DatabaseTRDB that collects itsTunnel Routes.</t> <t>Transport Plane: Antunnel routes.</dd> <dt>Transport Plane:</dt><dd>An end-to-end plane consisting of transport tunnels belonging to the same TransportClass.</t>Class.</dd> </dl> </section> <section numbered="true" toc="default"> <name>Requirements Language</name> <t> 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"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here. </t></section> </section> <sectiontitle="Architecture Overview">numbered="true" toc="default"> <name>Architecture Overview</name> <t>This section describes the BGP CT architecture with a briefillustration.</t>illustration:</t> <!--[rfced] Regarding figures, artwork, and SVG: a) Please review that all lines in <artwork> are 69 characters or less. If not, please consider how figures may be updated in order to fit this limitation (some warnings of outdenting from xml2rfc exist). b) FYI - the RPC does not edit SVG figures. If any changes are made to their ASCII equivalents, authors should incorporate these changes into the SVG and resubmit these changes to the RPC. --> <figuretitle="BGPanchor="ArchOv"> <name>BGP CT Overview with ExampleTopology" anchor="ArchOv"><artset><artwork type="svg"><svgTopology</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="496" width="560" viewBox="0 0 560 496" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 24,240 L 24,320" fill="none" stroke="black"/> <path d="M 424,64 L 424,96" fill="none" stroke="black"/> <path d="M 472,240 L 472,320" fill="none" stroke="black"/> <path d="M 240,32 L 344,32" fill="none" stroke="black"/> <path d="M 360,32 L 384,32" fill="none" stroke="black"/> <path d="M 104,64 L 176,64" fill="none" stroke="black"/> <path d="M 328,64 L 376,64" fill="none" stroke="black"/> <path d="M 72,112 L 88,112" fill="none" stroke="black"/> <path d="M 240,110 L 256,110" fill="none"stroke="black"/><pathstroke="black"/> <path d="M 240,114 L 256,114" fill="none" stroke="black"/> <path d="M 312,112 L 328,112" fill="none" stroke="black"/> <path d="M 104,192 L 168,192" fill="none" stroke="black"/> <path d="M 312,192 L 400,192" fill="none" stroke="black"/> <path d="M 40,224 L 48,224" fill="none" stroke="black"/> <path d="M 136,224 L 152,224" fill="none" stroke="black"/> <path d="M 360,224 L 376,224" fill="none" stroke="black"/> <path d="M 448,224 L 456,224" fill="none" stroke="black"/> <path d="M 48,240 L 64,240" fill="none" stroke="black"/> <path d="M 272,240 L 288,240" fill="none" stroke="black"/> <path d="M 48,288 L 64,288" fill="none" stroke="black"/> <path d="M 272,288 L 288,288" fill="none" stroke="black"/> <path d="M 40,336 L 48,336" fill="none" stroke="black"/> <path d="M 448,336 L 456,336" fill="none" stroke="black"/> <path d="M 56,80 L 72,112" fill="none" stroke="black"/> <path d="M 320,80 L 328,96" fill="none" stroke="black"/> <path d="M 376,64 L 384,48" fill="none" stroke="black"/> <path d="M 40,224 C 31.16936,224 24,231.16936 24,240" fill="none" stroke="black"/> <path d="M 456,224 C 464.83064,224 472,231.16936 472,240" fill="none" stroke="black"/> <path d="M 40,336 C 31.16936,336 24,328.83064 24,320" fill="none" stroke="black"/> <path d="M 456,336 C 464.83064,336 472,328.83064 472,320" fill="none" stroke="black"/> <path d="M 124,88 L 148,88" fill="none" stroke="black"/> <path d="M 364,88 L 388,88" fill="none" stroke="black"/> <path d="M 120,136 L 140,136" fill="none" stroke="black"/> <path d="M 360,136 L 380,136" fill="none" stroke="black"/> <polygon class="arrowhead" points="432,64 420,58.4 420,69.6" fill="black" transform="rotate(270,424,64)"/> <polygon class="arrowhead" points="408,192 396,186.4 396,197.6" fill="black" transform="rotate(0,400,192)"/> <polygon class="arrowhead" points="368,224 356,218.4 356,229.6" fill="black" transform="rotate(180,360,224)"/> <polygon class="arrowhead" points="368,32 356,26.4 356,37.6" fill="black" transform="rotate(180,360,32)"/> <polygon class="arrowhead" points="336,64 324,58.4 324,69.6" fill="black" transform="rotate(180,328,64)"/> <polygon class="arrowhead" points="280,288 268,282.4 268,293.6" fill="black" transform="rotate(180,272,288)"/> <polygon class="arrowhead" points="280,240 268,234.4 268,245.6" fill="black" transform="rotate(180,272,240)"/> <polygon class="arrowhead" points="144,224 132,218.4 132,229.6" fill="black" transform="rotate(180,136,224)"/> <polygon class="arrowhead" points="112,64 100,58.4 100,69.6" fill="black" transform="rotate(180,104,64)"/> <polygon class="arrowhead" points="56,288 44,282.4 44,293.6" fill="black" transform="rotate(180,48,288)"/> <polygon class="arrowhead" points="56,240 44,234.4 44,245.6" fill="black" transform="rotate(180,48,240)"/> <g class="text"> <text x="132" y="36">INET</text> <text x="212" y="36">[RR21]</text> <text x="352" y="36"><</text> <text x="412" y="36">[RR11]</text> <text x="144" y="52">Service</text> <text x="192" y="52">/</text> <text x="424" y="52">|</text> <text x="496" y="52">IP1,color:0:100</text> <text x="60" y="68">[PE21]</text> <text x="96" y="68"><</text> <text x="248" y="68">:</text> <text x="284" y="68">[SN11]</text> <text x="320" y="68"><</text> <text x="496" y="68">IP2,color:0:200</text> <text x="248" y="84">:</text> <text x="480" y="84">IP3,100:200</text> <text x="116" y="100">_(</text> <text x="148" y="100">.)</text> <text x="248" y="100">:</text> <text x="356" y="100">_(</text> <text x="388" y="100">.)</text> <text x="512" y="100">^^^^^^^^^^^</text> <text x="104" y="116">(</text> <text x="156" y="116">_)</text> <text x="204" y="116">--[BN21]</text> <text x="284" y="116">[BN11]</text> <text x="344" y="116">(</text> <text x="424" y="116">_)-[PE11]</text> <text x="504" y="116">Mapping</text> <text x="116" y="132">(.</text> <text x="144" y="132">)</text> <text x="248" y="132">:</text> <text x="356" y="132">(.</text> <text x="384" y="132">)</text> <text x="504" y="132">Community</text> <text x="248" y="148">Inter-AS-Link</text> <text x="248" y="164">:</text> <text x="248" y="180">[.......AS2:SR-TE........]:[.......AS1:RSVP-TE......]</text> <text x="200" y="196">Traffic</text> <text x="272" y="196">Direction</text> <text x="96" y="228">[PE21]--<</text> <text x="180" y="228">[BN21]</text> <text x="320" y="228">[BN21]--<</text> <text x="404" y="228">[BN11]</text> <text x="40" y="244"><</text> <text x="152" y="244">RD1:PE11(L3),PNH=BN21</text> <text x="248" y="244">:</text> <text x="264" y="244"><</text> <text x="376" y="244">RD1:PE11(L1),PNH=BN11</text> <text x="140" y="260">transport-target:0:100</text> <text x="248" y="260">:</text> <text x="364" y="260">transport-target:0:100</text> <text x="496" y="260">BGP</text> <text x="248" y="276">:</text> <text x="516" y="276">Classful</text> <text x="40" y="292"><</text> <text x="152" y="292">RD2:PE11(L4),PNH=BN21</text> <text x="248" y="292">:</text> <text x="264" y="292"><</text> <text x="376" y="292">RD2:PE11(L2),PNH=BN11</text> <text x="520" y="292">Transport</text> <text x="140" y="308">transport-target:0:200</text> <text x="248" y="308">:</text> <text x="364" y="308">transport-target:0:200</text> <text x="140" y="324">^^^^^^^^^^^^^^^^^^^^^^</text> <text x="440" y="324">^^^</text> <text x="112" y="340">Route</text> <text x="164" y="340">Target</text> <text x="200" y="340">&</text> <text x="336" y="340">Transport</text> <text x="400" y="340">Class</text> <text x="436" y="340">ID</text> <text x="112" y="356">Mapping</text> <text x="184" y="356">Community</text> <text x="32" y="388">Intents</text> <text x="76" y="388">at</text> <text x="108" y="388">SN11</text> <text x="144" y="388">and</text> <text x="184" y="388">PE21:</text> <text x="68" y="420">Scheme1:</text> <text x="156" y="420">color:0:100,</text> <text x="268" y="420">(TRDB[TC-100],</text> <text x="380" y="420">TRDB[TC-BE])</text> <text x="68" y="436">Scheme2:</text> <text x="156" y="436">color:0:200,</text> <text x="268" y="436">(TRDB[TC-200],</text> <text x="380" y="436">TRDB[TC-BE])</text> <text x="68" y="452">Scheme3:</text> <text x="172" y="452">100:200,</text> <text x="268" y="452">(TRDB[TC-100],</text> <text x="384" y="452">TRDB[TC-200])</text> <text x="64" y="468">^^^^^^^</text> <text x="236" y="468">^^^^</text> <text x="396" y="468">^^^^^^</text> <text x="44" y="484">Resolution</text> <text x="120" y="484">Schemes</text> <text x="208" y="484">Transport</text> <text x="272" y="484">Route</text> <text x="308" y="484">DB</text> <text x="384" y="484">Transport</text> <text x="448" y="484">Class</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ INET [RR21]--------------<<---[RR11] Service / / | IP1,color:0:100 [PE21] <<--------+ : [SN11] <<-----+ ^ IP2,color:0:200 \ ___ : \ ___ | IP3,100:200 \ _( .) : \ _( .) | ^^^^^^^^^^^ +-- ( _) --[BN21]===[BN11]--- ( _)-[PE11] Mapping (.__) : (.__) Community Inter-AS-Link : [.......AS2:SR-TE........]:[.......AS1:RSVP-TE......] ---------Traffic Direction-----------> .-- [PE21]--<<--[BN21] [BN21]--<<--[BN11] --. | <<--RD1:PE11(L3),PNH=BN21 : <<--RD1:PE11(L1),PNH=BN11 | | transport-target:0:100 : transport-target:0:100 | BGP | : | Classful | <<--RD2:PE11(L4),PNH=BN21 : <<--RD2:PE11(L2),PNH=BN11 | Transport | transport-target:0:200 : transport-target:0:200 | | ^^^^^^^^^^^^^^^^^^^^^^ ^^^ | '-- Route Target & Transport Class ID--' Mapping Community Intents at SN11 and PE21: Scheme1: color:0:100, (TRDB[TC-100], TRDB[TC-BE]) Scheme2: color:0:200, (TRDB[TC-200], TRDB[TC-BE]) Scheme3: 100:200, (TRDB[TC-100], TRDB[TC-200]) ^^^^^^^ ^^^^ ^^^^^^ Resolution Schemes Transport Route DB Transport Class]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>To achieve end-to-end"Intent Driven"Intent-Driven Service Mapping", this document defines the following constructs and BGPextensions:<list>extensions:</t> <ul spacing="normal"> <li> <t>The<xref target="tc">"Transport Class"</xref>"Transport Class" construct (see <xref target="tc" format="default"></xref>) to group underlay tunnels.</t> </li> <li> <t>The<xref target="Nexthop_Resoln_Schm">"Resolution Scheme"</xref>"Resolution Scheme" construct (see <xref target="Nexthop_Resoln_Schm" format="default"></xref>) for overlay routes with MappingCommunityCommunities to resolvenext hopNH reachability from either one or an ordered set of Transport Classes.</t> </li> <li> <t>The<xref target="ct-family">"BGP"BGP ClassfulTransport"</xref>Transport" (see <xref target="ct-family" format="default"></xref>) address family to extend these constructs to adjacent domains.</t></list><xref target="ArchOv"/></li> </ul> <t><xref target="ArchOv" format="default"/> depicts the intra-AS and inter-AS application of these constructs. Interactions between SN1 and PE11 describe the Intra-AS usage. Interactions between PE21 and PE11 describe the Inter-AS usage.</t> <t> The example topology is an Inter-AS option C(Section 10, <xref target="RFC4364"/>)network (<xref target="RFC4364" sectionFormat="of" section="10"/>) with two ASdomains,domains; each domain contains tunnels serving two Intents,e.g.e.g., 'low-latency' denoted by color 100 and 'high-bandwidth' denoted by color 200. AS1 isaan RSVP-TEnetwork,network; AS2 isaan SRTE network. BGP CT and BGP LU are transport families used between the two AS domains. IP1, IP2, and IP3 are service prefixes (AFI/SAFI: 1/1) behind egress PE11.</t> <t>PE21,SN11SN11, and PE11 are the SNs in this network. SN11 is an ingress PE withintra domainintra-domain reachability to PE11. PE21 is an ingress PE withinter domaininter-domain reachability to PE11.</t> <t>The tunneling mechanisms are made "Transport Class" aware. They publish their underlay tunnels for a Transport Class into an associated TRDB (see <xreftarget="trdb">"Transport Route Database" (TRDB)</xref>.target="trdb" format="default"></xref>). In <xreftarget="ArchOv"/>,target="ArchOv" format="default"/>, RSVP-TE publishes its underlay tunnels into TRDBs created for TransportClassClasses 100 and 200 at BN11 and SN11 within AS1; Similarly, SR-TE publishes its underlay tunnels into TRDBs created for TransportClassClasses 100 and 200 at PE21 within AS2.</t> <t>Resolution Schemes are used to realize Intent. A Resolution Scheme is identified by its "MappingCommunity",Community" and contains an ordered list of transport classes. Overlay routes carry an indication of the desired Intent using a BGPcommunitycommunity, which assumes the role of "Mapping Community".</t> <t>Egress SN "PE11" advertises service routes with desired MappingCommunity e.g.Community, e.g., color:0:100.</t> <t>For the Intra-AS case, SN1 maps this intra-AS route on RSVP-TE tunnels with TC ID 100 by using the Resolution Scheme for color:0:100.</t> <t>For the Inter-AS case, the underlay route in a TRDB is advertised in BGP to extend an underlay tunnel to adjacent domains. A new BGP transport family called "BGP Classful Transport", also known as BGP CT (AFI/SAFIs 1/76,2/76)2/76), is defined for this purpose. BGP CT makes it possible to advertise multiple tunnels to the same destination address, thus avoiding the need for multiple loopbacks on theEgress Service Node (eSN).</t>eSN.</t> <t>The BGP CT address family carries transport prefixes across tunnel domain boundaries. Its design and operation are analogous to BGP LU (AFI/SAFIs 1/4 or 2/4). It disseminates "Transport Class" information for the transport prefixes across the participating domains while avoiding the need of per-transport class loopback. This is not possible with BGP LU without using per-color loopback. This dissemination makes the end-to-end network a "Transport Class" aware tunneled network.</t> <t>In <xreftarget="ArchOv"/>,target="ArchOv" format="default"/>, BGP CT routes are originated at BN11 in AS1 withnext hopNH "self" towards BN21 in AS2 to extend available RSVP-TE tunnels for TransportClassClasses 100 and 200 in AS1. BN21 propagates these routes withnext hopNH "self" to PE21, which resolves the BGP CT routes over SRTE tunnels belonging to same transportclass. Thusclass, thus forming a BGP CT tunnel for each TC ID at PE21.</t> <t>PE21 maps the Inter-AS service routes received with color:0:100 from AS1 on BGP CT tunnel with TC ID 100 by using the Resolution Scheme for color:0:100. Note that this procedure is same as that followed by SN1 in the Intra-AS case.</t> <t>The following text illustrates how CT architecture provides tiered fallback options at a per-route granularity. <xreftarget="ArchOv"/>,target="ArchOv" format="default"/> shows the Resolution Schemes in use, which make the followingnext hopNH resolution happen at SN11 (Intra-AS) and PE21 (Inter-AS) for the service routes of prefixes IP1, IP2,IP3:<list>and IP3:</t> <ul spacing="normal"> <li> <t>Resolve IP1next hopNH over available tunnels in TRDB for Transport Class 100 with fallback to TRDB for best effort.</t> </li> <li> <t>Resolve IP2next hopNH over available tunnels in TRDB for Transport Class 200 with fallback to TRDB for best effort.</t> </li> <li> <t>Resolve IP3next hopNH over available tunnels in TRDB for Transport Class 100 with fallback to TRDB for Transport Class 200.</t></list>In</li> </ul> <t>In <xreftarget="ArchOv"/>,target="ArchOv" format="default"/>, SN11 resolves IP1,IP2IP2, and IP3 directly over RSVP-TE tunnels in AS1. PE21 resolves IP1,IP2IP2, and IP3 over extended BGP CT tunnels that resolve over SR-TE tunnels in AS2.</t> <t>This document describes procedures using MPLS forwarding architecture. However, these procedures would work in a similar manner for non-MPLS forwarding architectures as well. <xreftarget="SRv6-Support"/>target="SRv6-Support" format="default"/> describes the application of BGP CT over the SRv6 data plane.</t> </section> <section anchor="tc"title="Transport Class">numbered="true" toc="default"> <name>Transport Class</name> <t>Transport Class is a construct that groups transport tunnels offering similarSLASLAs within the administrative domain of a provider network or closely coordinated provider networks.</t> <t>A Transport Class is uniquely identified by a 32-bit "Transport ClassID",ID" that is assigned by the operator. The operator consistently provisions a Transport Class on participating nodes (SNs and BNs) in a domain with its unique Transport Class ID.</t> <t>A Transport Class is also configured with RD and import/export RT attributes. Creation of a Transport Class instantiates its corresponding TRDB and Resolution Schemes on that node.</t> <t>All nodes within a domain agree on a common Transport Class ID namespace. However, twoco-operatingcooperating domains may not always agree on the same namespace. Procedures to manage differences in Transport Class ID namespaces betweenco-operatingcooperating domains are specified in <xreftarget="non-agreeing"/>.</t>target="non-agreeing" format="default"/>.</t> <t>Transport Class ID conveys the Color of tunnels in a Transport Class. The terms'Transport"Transport ClassID'ID" and'Color'"Color" are used interchangeably in this document.</t> <section anchor="tc-te"title="Classifyingnumbered="true" toc="default"> <name>Classifying TEtunnels">Tunnels</name> <t>TE tunnels can be classified into a Transport Class based on the TE attributes they possess and the TE characteristics that the operator defines for that Transport Class. Due to the fact that multiple TE tunneling protocols exist, their TE attributes and characteristics may not be equal but sufficiently similar. Some examples of such classifications are asfollows:<list>follows:</t> <ul spacing="normal"> <li> <t>Tunnels (RSVP-TE, IGP FLEX-ALGO, SR-TE) that support latency sensitive routing.</t> </li> <li> <t>RSVP-TETunnelstunnels that only go over admin-group with Green links.</t> </li> <li> <t>Tunnels (RSVP-TE, SR-TE) that offerFast Reroute.</t>FRR.</t> </li> <li> <t>Tunnels (RSVP-TE, SR-TE) that share resources in the network based on Shared Risk Link Groups defined by TE policy.</t> </li> <li> <t>Tunnels (RSVP-TE, SR-TE, BGP CT) that avoid certain nodes in the network based on RSVP-TEERO,Explicit Route Object (ERO), SR-TEpolicypolicy, or BGP policy.</t></list></t></li> </ul> <t>An operator may configureaan SN/BN to classify a tunnel into an appropriate Transport Class. How exactly these tunnels are made Transport Class aware is implementation specific and outside the scope of this document.</t> <t>When a tunnel is made Transport Class aware, it causes the Tunnel Route to be installed in the corresponding TRDB of that Transport Class. These routes are used to resolve overlay routes, including BGP CT. The BGP CT routes may be further readvertised to adjacent domains to extend these tunnels. While readvertising BGP CT routes, the "Transport Class" identifier is encoded as part of the Transport Class RT, which is a new Route Target extended community defined in <xreftarget="tc-rt"/>.</t> <t>Atarget="tc-rt" format="default"/>.</t> <t>An SN/BN receiving the transport routes via BGP with sufficient signaling information to identify a Transport Class can associate those tunnel routestowith the corresponding Transport Class. For example, in BGP CT family routes, the Transport Class RT indicates the Transport Class. For BGP LU family routes, import processing based onCommunitiescommunities or Inter-AS source-peer may be used to place the route in the desired Transport Class.</t> <t>When the tunnel route is received via <xreftarget="SRTE"/>target="RFC9830" format="default"/> with "Color:Endpoint" as the NLRI that encodes the Transport Class as an integer 'Color' in its Policy Color field, the 'Color' is mapped to a Transport Class during the import processing. The SRTE tunnel route for this 'Endpoint' is installed in the corresponding TRDB. The SRTE tunnel will be extended by a BGP CT advertisement with NLRI 'RD:Endpoint', Transport ClassRTRT, and a new label. The MPLS swap route thus installed for the new label will pop the label and forward the decapsulated traffic into the path determined by the SRTE route for further encapsulation.</t> <t><xreftarget="PCEP-SRPOLICY"/>target="I-D.ietf-pce-segment-routing-policy-cp" format="default"/> extends the Path Computation Element Communication Protocol (PCEP) to signal attributes of an SR Policywhichthat include Color. This Color is mapped to a Transport Class thus associating the SR Policy with the desired Transport Class.</t> <t>Similarly, <xreftarget="PCEP-RSVP-COLOR"/>target="I-D.ietf-pce-pcep-color" format="default"/> extends PCEP to carry the Color attribute for its use with RSVP-TELSPs .LSPs. This Color is mapped to a Transport Class thus associating the RSVP-TE LSP with the desired Transport Class.</t> </section> <section anchor="trdb"title="Transport Route Database"> <t>A Transportnumbered="true" toc="default"> <name>Transport Route Database(TRDB)(TRDB)</name> <t>A TRDB is a logical collection of transport routes pertaining to the same Transport Class. In any node, every Transport Class has an associated TRDB. Resolution Schemes resolvenext hopNH reachability for EP using the transport routes within the scope of the TRDBs.</t> <t>TunnelendpointEP addresses(EP)in a TRDB belong to the"Provider Namespace"provider namespace representing the core transport region.</t> <t>An implementation may realize the TRDB as a "Routing Table" referred to in<eref target="https://www.rfc-editor.org/rfc/rfc4271#section-9.1.2.1">Section 9.1.2.1 of RFC4271</eref><xref target="RFC4271" sectionFormat="of" section="9.1.2.1"/>, which is used only for resolvingnext hopNH reachability in the control plane. An implementation may choose a different datastructure to realize this logical construct while still adhering to the procedures defined in this document. The tunnel routes in a TRDB require no footprint in the forwarding plane unless they are used to resolvea next hop.</t>an NH.</t> <t>SNs or BNs originate routes for the "Classful Transport" address family from the TRDB. These routes have "RD:Endpoint" in the NLRI, carry a Transport Class RT, and an MPLS label or equivalent identifier in different forwarding architecture. "Classful Transport" family routes received with Transport Class RT are installed into their respective TRDB.</t> </section> <section anchor="tc-rt"title=""Transport Class"numbered="true" toc="default"> <name>"Transport Class" Route Target ExtendedCommunity">Community</name> <t>This section defines a new type of RouteTarget,Target called a "Transport Class" Route TargetExtended Community; alsoextended community (also known as aTransport Target."Transport Target"). The procedures for use of this extended community with BGP CT routes (AFI/SAFI: 1/76 or 2/76) are described below.</t><t>The<!-- [rfced] We had a few questions related to the text below: a) We note that [RFC4360] doesn't appear to use the term "EXT-COMM". Please review the following citation for accuracy. b) Please also review this text for redundancy and let us know if/how this text may be rephrased (we have already removed the EXT-COMM link). Current: The "Transport Class" Route Target Extended Community is a transitive extended community [RFC4360] of extended type, which has the format as shown in Figure 2. --> <t>The "Transport Class" Route Target extended community is a transitive extended community <xreftarget="RFC4360">EXT-COMM</xref>target="RFC4360" format="default"></xref> of extended type, which has the format as shown in <xreftarget="TCExtCom"/>.</t>target="TCExtCom" format="default"/>.</t> <figureanchor="TCExtCom" suppress-title="false" title=""Transport Class"anchor="TCExtCom"> <name>"Transport Class" Route Target ExtendedCommunity">Community</name> <artwork align="left"xml:space="preserve">name="" type="" alt=""><![CDATA[ 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type= 0xa | SubType= 0x02 | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transport Class ID |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type:+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork> </figure> <dl spacing="normal" newline="false"> <dt>Type:</dt> <dd>A 1-octet fieldMUSTthat <bcp14>MUST</bcp14> be set to 0xa to indicate 'TransportClass'. SubType:Class'.</dd> <dt>SubType:</dt> <dd>A 1-octet fieldMUSTthat <bcp14>MUST</bcp14> be set to 0x2 to indicate 'RouteTarget'. Reserved:Target'.</dd> <dt>Reserved:</dt> <dd><t>A 2-octet reserved bitsfield. Thisfield.</t> <t>This fieldMUST<bcp14>MUST</bcp14> be set to zero ontransmission. Thistransmission.</t> <t>This fieldSHOULD<bcp14>SHOULD</bcp14> be ignored onreception,reception andMUST<bcp14>MUST</bcp14> be leftunaltered. Transportunaltered.</t> </dd> <dt>Transport ClassID: ThisID:</dt> <dd><t>This field is encoded in 4octets. Thisoctets.</t> <t>This field contains the "Transport Class" identifier, which is an unsigned 32-bitinteger. Thisinteger.</t> <t>This document reserves the Transport class ID value 0 to represent"Best Effortthe "Best-Effort Transport ClassID".</artwork> </figure>ID".</t></dd> </dl> <t>ATransport Class"Transport Class" Route TargetExtendedextended community with TC ID 100 is denoted as "transport-target:0:100".</t> <t>The VPN route import/export mechanisms specified in<xref target="RFC4364">BGP/MPLSBGP/MPLS IPVPNs</xref>VPNs (see <xref target="RFC4364" format="default"></xref>) and the Constrained Route Distribution mechanisms specified in<xref target="RFC4684">RouteRoute TargetConstrain</xref>Constrain (see <xref target="RFC4684" format="default"></xref>) are applied using the Route Target extended community. These mechanisms are applied to BGP CT routes (AFI/SAFI: 1/76 or 2/76) using the "Transport Class Route TargetExtendedextended community".</t> <t>A BGP speaker that implements procedures described in this document and <xreftarget="RFC4684">Route Target Constrain</xref> MUSTtarget="RFC4684" format="default"></xref> <bcp14>MUST</bcp14> also apply the RTC procedures to the Transport Class Route TargetExtendedextended communities carried on BGP CT routes (AFI/SAFI: 1/76 or 2/76). An RTC route is generated for each Route Target imported by locally provisioned Transport Classes.</t> <t>Further, when processing RT membership NLRIs containing a Transport Class Route TargetExtendedextended community received from external BGP peers, it is necessary to consider multipleEBGPExternal BGP (EBGP) paths for a given RTC prefix for building the outbound routefilter, andfilter: not just the best path. An implementationMAY<bcp14>MAY</bcp14> provide configuration to control how many EBGP RTC paths are considered.</t> <t>The Transport Class Route TargetExtendedextended community is carried on BGP CT family routes and is used to associate them with appropriate TRDBs at receiving BGP speakers. The Transport Target is carried unaltered on the BGP CT route across BGP CT negotiated sessions except for scenarios described in <xreftarget="non-agreeing"/>.target="non-agreeing" format="default"/>. Implementations should provide policy mechanisms to perform match, strip, or rewrite operations on a Transport Target just like any other BGP community.</t> <t>Defining a new type code for the Transport Class Route TargetExtendedextended community avoids conflicting with any VPN Route Target assignments already in use for service families.</t><t>This<!--[rfced] Should the names in the following paragraph (and anywhere they are mentioned throughout the document) be made more uniform (i.e., should Route Target be added to the first use of "extended community")? See a later question related to the quotation use as well. Original: This document also reserves the<xref target="tc-rt-nt">Non-TransitiveNon-Transitive version of Transport Class extendedcommunity</xref>community (Section 13.2.1.1.2) for future use. The "Non-Transitive Transport Class" Route Target Extended Community is not used. If received, it is considered equivalent in functionality to the Transitive Transport Class Route Target Extended Community, except for the difference in Transitive bit flag. Perhaps: This document also reserves the Non-Transitive version of the Transport Class Route Target extended community (Section 13.2.1.1.2) for future use. The Non-Transitive Transport Class Route Target extended community is not used. If received, it is considered equivalent in functionality to the Transitive Transport Class Route Target extended community, except for the difference in the Transitive bit flag. --> <t>This document also reserves the Non-Transitive version of the Transport Class extended community (see <xref target="tc-rt-nt" format="default"></xref>) for future use. The "Non-Transitive Transport Class" Route Target extended community is not used. If received, it is considered equivalent in functionality to the Transitive Transport Class Route Target extended community, except for the difference in Transitive bit flag.</t> </section> </section> <section anchor="Nexthop_Resoln_Schm"title="Resolution Scheme">numbered="true" toc="default"> <name>Resolution Scheme</name> <t>A Resolution Scheme is a construct that consists of a specific TRDB or an ordered set of TRDBs. An overlay route is associated with a resolution scheme during importprocessing,processing based on the Mapping Community in the route.</t> <t>Resolution Schemes enable a BGP speaker to resolvenext hopNH reachability for overlay routes over the appropriate underlay tunnels within the scope of the TRDBs. Longest Prefix Match (LPM) of thenext hopNH is performed within the identified TRDB.</t> <t>An implementation may provide an option for the overlay route to resolve overless preferredless-preferred Transport Classes, should the resolution over a primary Transport Class fail.</t> <t>To accomplish this, the "Resolution Scheme" is configured with the primary TransportClass,Class and an ordered list of fallback Transport Classes. Two Resolution Schemes are considered equivalent in Intent if they consist of the same ordered set of TRDBs.</t> <t>Operators must ensure that Resolution Schemes for a mapping community are provisioned consistently on various nodes participating in a BGP CTnetwork,network based on desired Intent and transport classes available in that domain.</t> <section anchor="Mapping_Comm"title="Mapping Community">numbered="true" toc="default"> <name>Mapping Community</name> <t>A "Mapping Community" is used to signal the desired Intent on an overlay route. At an ingress node receiving the route, it maps the overlay route to a "Resolution Scheme" used to resolve the route'snext hop.</t>NH.</t> <t>A Mapping Community is a "role" and not a new type of community; any BGP Community Carrying Attribute(e.g.(e.g., Community or Extended Community) may play thisrole, besidesrole in addition to the other roles it may already be playing. For example, the Transport Class Route TargetExtended Communityextended community plays a dualrole, being arole: as Route Targetas well asand a Mapping Community.</t> <t>Operator provisioning ensures that the ingress and egress SNs agree on the BGP CCA and community namespace to use for the Mapping Community.</t> <t>A Mapping Community maps to exactly one Resolution Scheme at a receiving BGP speaker. An implementationSHOULD<bcp14>SHOULD</bcp14> allowassociatingthe association of multiple Mapping Communities to a Resolution Scheme. This helps with renumbering and migration scenarios.</t> <!-- [rfced] We note that "color:0:100" isn't used in [RFC9012]. It's defined in this document (See Section 2.1. Definitions and Notations). Please review the citation in the following text for accuracy (or need of a possible rewording). Current: An example of mapping community is "color:0:100", described in [RFC9012], or the "transport-target:0:100" described in Section 4.3 in this document. --> <t>An example of a mapping community is "color:0:100", described in <xreftarget="RFC9012"/>,target="RFC9012" format="default"/>, or the "transport-target:0:100" described in <xreftarget="tc-rt"/> in this document.</t>target="tc-rt" format="default"/>.</t> <t>The first community on the overlay route that matches a Mapping Community of a locally configured Resolution Scheme is considered the effective Mapping Community for the route. The Resolution Scheme thus found is used when resolving the route's PNH. If a route contains more than one Mapping Community, it indicates that the route considers these distinct Mapping Communities as equivalent in Intent.</t><t>If<!--[rfced] If our addition of "exist" does not capture your intent, please review the original text and suggest another rephrase. Original: If more than one distinct Mapping Communities on an overlay route map to distinct Resolution Schemes with dissimilar Intents at a receiving node, it is considered a configuration error. Perhaps: If more than one distinct Mapping Community on an overlay route map to distinct Resolution Schemes with dissimilar Intents at a receiving node exist, it is considered a configuration error. --> <t>If more than one distinct Mapping Community on an overlay route map to distinct Resolution Schemes with dissimilar Intents at a receiving node, it is considered a configuration error.</t> <t>Since a route can carry multiple communities, but only a single Resolution Scheme can be in effect for the route on any given router, it is incumbent on the operator to ensure that communities attached to a route will map to the desired Resolution Scheme at each point in the network.</t> <t>It should be noted that the Mapping Community role does not require applying Route Target Constrain procedures specified inRFC 4684.</t><xref target="RFC4684"/>.</t> </section> </section> <section anchor="ct-family"title="BGPnumbered="true" toc="default"> <name>BGP Classful TransportFamily">Family</name> <t>The BGP Classful Transport (BGP CT) family uses the existing Address Family Identifier (AFI) of IPv4 or IPv6 and a new SAFI 76 "Classful Transport" that applies to both IPv4 and IPv6 AFIs.</t> <t>The AFI/SAFI 1/76MUST<bcp14>MUST</bcp14> be negotiated as per the Multiprotocol Extensions capability described inSection 8 of<xreftarget="RFC4760"/>target="RFC4760" sectionFormat="of" section="8"/> to be able to send and receive BGP CT routes for IPv4 endpoint prefixes.</t> <t>The AFI/SAFI 2/76MUST<bcp14>MUST</bcp14> be negotiated as per the Multiprotocol Extensions capability described inSection 8 of<xreftarget="RFC4760"/>target="RFC4760" sectionFormat="of" section="8"/> to be able to send and receive BGP CT routes for IPv6 endpoint prefixes.</t> <section anchor="ct-nlri"title="NLRI Encoding">numbered="true" toc="default"> <name>NLRI Encoding</name> <t>The "Classful Transport" SAFI NLRI has the same encoding as specified inSection 2 of<xreftarget="RFC8277"/>.</t>target="RFC8277" sectionFormat="of" section="2"/>.</t> <t>When the AFI/SAFI is 1/76, the Classful Transport NLRI Prefix consists of an 8-byte RD followed by an IPv4 prefix. When AFI/SAFI is 2/76, the Classful Transport NLRI Prefix consists of an 8-byte RD followed by an IPv6 prefix.</t> <t>The procedures described for AFI/SAFIs 1/4 or 1/128 inSection 2 of<xreftarget="RFC8277"/>target="RFC8277" sectionFormat="of" section="2"/> apply for AFI/SAFI 1/76 also. The procedures described for AFI/SAFIs 2/4 or 2/128 inSection 2 of<xreftarget="RFC8277"/>target="RFC8277" sectionFormat="of" section="2"/> apply for AFI/SAFI 2/76 also.</t> <t>BGP CT routesMAY<bcp14>MAY</bcp14> carry multiple labels in theNLRI,NLRI by negotiating the Multiple Labels Capability as described inSection 2.1 of<xreftarget="RFC8277"/></t>target="RFC8277" sectionFormat="of" section="2.1"/>.</t> <t>Properties received on a Classful Transport route include the Transport Class Route Target extended community, which is used to associate the route with the correct TRDBs on SNs and BNs in the network, and either an IPv4 or an IPv6next hop.</t>NH.</t> </section> <section anchor="ct-nhop"title="Nextnumbered="true" toc="default"> <name>Next HopEncoding">Encoding</name> <t>When the length of the Next hop Address field is 4, the next hop address isof typean IPv4 address.</t> <t>When the length of the Next hop Address field is 16 (or 32), the next hop address isof typean IPv6 address (potentially followed by the link-local IPv6 address of the next hop). This followsSection 3 in<xreftarget="RFC2545"/></t>target="RFC2545" sectionFormat="of" section="3"/>.</t> <t>When the length of Next hop Address field is 24 (or 48), the next hop address isof typea VPN-IPv6 with an 8-octet RD set to zero (potentially followed by the link-local VPN-IPv6 address of the next hop with an 8-octet RD set to zero). This followsSection 3.2.1.1 in<xreftarget="RFC4659"/></t>target="RFC4659" sectionFormat="of" section="3.2.1.1"/>.</t> <t>When the length of the Next hop Address field is 12, the next hop address isof typea VPN-IPv4 with 8-octet RD set to zero.</t> <t>If the length of the Next hop Address field contains any other values, it is considered an error and is handled via BGP session reset as per <xref section="7.11"target="RFC7606"/>.</t>target="RFC7606" format="default"/>.</t> </section> <!--[rfced] Because "information" is a noncount noun, it would be unusual to say "multiple information". How may we update? Perhaps "Multiple Types of Encapsulation Information"? Original: 6.3. Carrying multiple Encapsulation Information and ...route allows carrying multiple encapsulation information. --> <section anchor="CTMultiEncap"title="Carrying multiplenumbered="true" toc="default"> <name>Carrying Multiple EncapsulationInformation">Information</name> <t>To ease interoperability between nodes supporting different forwarding technologies, a BGP CT route allows carrying multiple encapsulation information.</t> <t>An MPLS Label is carried using the encoding in <xreftarget="RFC8277"/>.target="RFC8277" format="default"/>. A node that does not support MPLS forwarding advertises the special label 3 (Implicit NULL) in theRFC 8277MPLS Labelfield.field (see <xref target="RFC8277"/>). The Implicit NULL label carried in BGP CT route indicates to a receiving node that it should not impose any BGP CT label for this route.</t><t>The<!-- [rfced] We note that Section 3 of [RFC8669] uses "Prefix-SID" rather than "Prefix SID". May we update to make these consistent? Current: The SID information for SR with respect to MPLS Data Plane is carried as specified in Prefix SID attribute defined as part of Section 3 of [RFC8669]. --> <t>The SID information for SR with respect to the MPLS data plane is carried as specified in the Prefix SID attribute defined as part of <xreftarget="RFC8669"/>.</t>target="RFC8669" sectionFormat="of" section="3"/>.</t> <t>The SID information for SR with respect to SRv6Data Planedata plane is carried as specified in <xreftarget="SRv6-Support"/>.</t>target="SRv6-Support" format="default"/>.</t> <t>UDP tunneling information is carried using the Tunnel Encapsulation Attribute as specified in <xreftarget="RFC9012"/>.</t>target="RFC9012" format="default"/>.</t> </section> <sectiontitle="Comparisonnumbered="true" toc="default"> <name>Comparison with Other Familiesusing RFC-8277 Encoding">Using Encoding from RFC 8277</name> <t>AFI/SAFI 1/128 (MPLS-labeled VPN address) isan RFC8277 encodeda family encoded using <xref target="RFC8277"/> that carries service prefixes in the NLRI, where the prefixes come from the customer namespaces and are contextualized into separate user virtual service RIBs called VRFs as per[RFC4364].</t><xref target="RFC4364"/>.</t> <t>AFI/SAFI 1/4 (BGP LU) isan RFC8277 encodeda family encoded using <xref target="RFC8277"/> that carries transport prefixes in the NLRI, where the prefixes come from the provider namespace.</t> <t>AFI/SAFI 1/76 (Classful Transport SAFI) isan RFC8277 encodeda family encoded using <xref target="RFC8277"/> that carries transport prefixes in the NLRI, where the prefixes come from the provider namespace and are contextualized into separate TRDB, following mechanisms similar toRFC 4364<xref target="RFC4364"/> procedures.</t> <t>It is worth noting that AFI/SAFI 1/128 has been used to carry transport prefixes in "L3VPN Inter-AS Carrier's carrier" scenario as defined inSection 10 of<xreftarget="RFC4364"/>,target="RFC4364" sectionFormat="of" section="10"/>, where BGP LU/LDP prefixes in CsC VRF are advertised in AFI/SAFI 1/128 towards the remote-end client carrier.</t> <t>In this document, SAFI 76 (BGP CT) is used instead of reusing SAFI 128 (L3VPN) for AFIs 1 or 2 to carry these transport routes because it is operationally advantageous to segregate transport and service prefixes into separate address families. For example, such an approach allows operators to safely enable a "per-prefix"label allocationlabel-allocation scheme for Classful Transport prefixes, typically with a number of routes in the hundreds of thousands or less, without affecting SAFI 128 serviceprefixesprefixes, which may represent millions ofroutes,routes at the time of writing. The"per prefix" label allocation"per-prefix" label-allocation scheme localizes routing churn during topology changes.</t> <t>Service routes continue to be carried in their existing AFI/SAFIs without any change. For example, L3VPN (AFI/SAFI: 1/128 and 2/128), EVPN (AFI/SAFI: 25/70 ),VPLSVirtual Private LAN Service (VPLS) (AFI/SAFI: 25/65), or Internet (AFI/SAFI: 1/1 or 2/1). These service routes can resolve over BGP CT (AFI/SAFI: 1/76 or 2/76) transport routes.</t> <t>A new SAFI 76 for AFI 1 and AFI 2 also facilitates having a different distribution path of the transport family routes in a network than the service route distribution path. Service routes (Inet-VPN SAFI 128) are exchanged over an EBGP multihop session between ASes withnext hopthe NH unchanged; whereas Classful Transport routes (SAFI 76) are advertised over EBGP single-hop sessions with"next hopa "NH self" rewrite over inter-AS links.</t> <t>The BGP CT SAFI 76 for AFI 1 and 2 is conceptually similar to BGP LU SAFI4,4 in that it carries transport prefixes. The only difference is that it also carries in a Route Target an indication of which Transport Class the transport prefix belongsto,to and uses the RD to disambiguate multiple instances of the same transport prefix in a BGPUpdate.</t>UPDATE message.</t> </section> </section> <sectiontitle="Protocol Procedures">numbered="true" toc="default"> <name>Protocol Procedures</name> <t>This section summarizes the procedures followed by various nodes speaking Classful Transport family.</t> <sectiontitle="Preparingnumbered="true" toc="default"> <name>Preparing thenetworkNetwork todeployDeploy Classful Transportplanes"> <t><list>Planes</name> <t>It is the responsibility of the operators to decide the Transport Classes to enable and use in their network. They are also expected to allocate a Transport Class Route Target to identify each Transport Class.</t> <t>Operators configure the Transport Classes on the SNs and BNs in the network with Transport Class Route Targets and appropriateRoute-Distinguishers.</t>Route Distinguishers.</t> <t>ImplementationsMAY<bcp14>MAY</bcp14> provide automatic generation and assignment of RD, RT values. TheyMAY<bcp14>MAY</bcp14> also provide a way to manually override the automatic mechanism in order to deal with any conflicts that may arise with existing RD, RT values in different network domains participating in the deployment.</t></list></t></section> <sectiontitle="Originatingnumbered="true" toc="default"> <name>Originating Classful TransportRoutes"> <t><list>Routes</name> <t>BGP CT routes are sent only to BGP peers that have negotiated the Multiprotocol Extensions capability described inSection 8 of [RFC4760]<xref target="RFC4760" sectionFormat="of" section="8"/> to be able to send and receive BGP CT routes.</t> <t>At the ingress node of the tunnel's home domain, the tunneling protocols install tunnel routes in the TRDB associated with the Transport Class to which the tunnel belongs.</t><t>The<!--[rfced] Please review our updates to the text below and confirm that we have interpreted your list correctly (i.e., the BGP CT route is originated with RD:EP in the NLRI along with a Transport Class RT, and the endpoint being a protocol next hop). If this is not the intent, please provide another rephrase. Original: The egress node of the tunnel, i.e. the tunnel endpoint (EP), originates the BGP CT route with RD:EP in the NLRI, Transport Class RT and PNH as EP. Current: The egress node of the tunnel, i.e., the tunnel endpoint (EP), originates the BGP CT route with RD:EP in the NLRI, a Transport Class RT, and a PNH as the EP. --> <t>The egress node of the tunnel, i.e., the tunnel endpoint (EP), originates the BGP CT route with RD:EP in the NLRI, a Transport Class RT, and a PNH as the EP. This BGP CT route will be resolved over the tunnel route in TRDB at the ingress node. When the tunnel is up, the Classful Transport BGP route will become usable and getre-advertisedreadvertised by the ingress node to BGP peers in neighboring domains.</t> <t>Alternatively, the ingress node of the tunnel, which is also an ASBR/ABR in a tunnel's home domain, may originate the BGP CT route for the tunnel destination withNLRI RD:EP,RD:EP in the NLRI, attaching a Transport Class Route Target that identifies the Transport Class. This BGP CT route is advertised to EBGP peers and IBGP peers in neighboring domains.</t> <t>This originated routeSHOULD NOT<bcp14>SHOULD NOT</bcp14> be advertised to the IBGP core that contains the tunnel. This may be implemented by mechanisms such as policy configuration. The impact of not prohibiting such advertisements is outside the scope of this document.</t><t>Unique<t>A unique RDSHOULD<bcp14>SHOULD</bcp14> be used by the originator of a Classful Transport route to disambiguate the multiple BGP advertisements for a transport endpoint. An administrator may use duplicate RDs based on local choice, understanding the impact on path diversity and troubleshooting, as described in <xreftarget="rd-lbl-usage"/>.</t> </list></t>target="rd-lbl-usage" format="default"/>.</t> </section> <section anchor="CTingress"title="Processingnumbered="true" toc="default"> <name>Processing Classful Transport Routes by IngressNodes"> <list>Nodes</name> <t>Upon receipt of a BGP CT route with a PNH EP that is not directly connected(e.g.(e.g., an IBGP-route), a Mapping Community (the Transport Class RT) on the route is used to decide to which resolution scheme this route is to be mapped.</t> <t>The resolution scheme for a Transport Class RT with Transport Class ID "C1" contains the TRDB of a Transport Class with same ID. The administratorMAY<bcp14>MAY</bcp14> customize the resolution scheme for Transport Class ID "C1" to map to a different ordered list of TRDBs. If the resolution scheme for TC ID "C1" is not found, the resolution scheme containing the"Best Effort""Best-Effort" transport class TRDB is used.</t> <t>The routes in the TRDBs associated with a selected resolution scheme are used to resolve the received PNH EP. The order of TRDBs in the resolution scheme is followed when resolving the received PNH, such that a route in a backup TRDB is used only when a matching route was not found for EP in the primary TRDBs preceding it. This achieves the fallback desired by the resolution scheme.</t> <t>If the resolution process does not find a matching route for the EP in any of the associated TRDBs, the received BGP CT routeMUST<bcp14>MUST</bcp14> be considered unresolvable. (SeeRFC 4271, Section 9.1.2.1).</t><xref target="RFC4271" sectionFormat="of" section="9.1.2.1"/>.)</t> <t>The received BGP CT routeMUST<bcp14>MUST</bcp14> be added to the TRDB corresponding to the Transport Class"C1",ID "C1" if the transport class is provisioned locally. This step applies only if the Transport Class RT is received on a BGP CT family route. The RD in the BGP CT NLRI prefix RD:EP is ignored when the BGP CT route for EP is added to theTRDB,TRDB so that overlay routes can resolve over this BGP CT tunnel route by performing a lookup for the EP. Please note that a TRDB is a logical database of tunnel routes belonging to the same Transport ClassID, henceID; hence, itusesonly uses the EP as the lookup keywithout(without RD or TCID.</t>ID).</t> <t>If no Mapping Communitywasis found on a BGP CT route, thebest effortbest-effort resolution scheme is usedfor resolvingto resolve the route's next hop, and the BGP CT route is not added to any TRDB.</t></list></section> <sectiontitle="Readvertisingnumbered="true" toc="default"> <name>Readvertising Classful Transport Route by BorderNodes"> <list>Nodes</name> <t>This section describes the MPLS label handling when readvertising a BGP CT route withNext Hop set to Self."NH self". When readvertising a BGP CT route withNext Hop set to Self,"NH self", a BN allocates an MPLS label to advertise upstream in the Classful Transport NLRI. The BN also installs an MPLS route for that label that swaps the incoming label with the label received from the downstream BGP speaker (or pops the incoming label if the label received from the downstream BGP speaker was Implicit-NULL). The MPLS route then pushes received traffic to the transport tunnel or direct interface that the Classful Transport route's PNH resolved over.</t> <t>The labelSHOULD<bcp14>SHOULD</bcp14> be allocated with "per-prefix"label allocationlabel-allocation semantics. The IP prefix in the TRDB context (Transport-Class, IP-prefix) is used as the key todo per-prefix"per-prefix" label allocation. This helps in avoiding BGP CT route churn throughout the CT network when an instability (e.g., link failure) is experienced in a domain. The failure is not propagated further than the BN closest to the failure. If a differentlabel allocationlabel-allocation mode is used, the impact onend to endend-to-end convergence should be considered.</t> <t>The value of the advertised MPLS label is locallysignificant,significant and is dynamic by default. A BN may provide an option to allocate a value from a statically provisioned range. This can be achieved using a locally configured exportpolicy,policy or via mechanisms such as the ones described related to BGP Prefix-SID as described in BGP (see <xreftarget="RFC8669">BGP Prefix-SID</xref>.</t> </list>target="RFC8669" format="default"></xref>).</t> </section> <sectiontitle="Bordernumbered="true" toc="default"> <name>Border Nodes Receiving Classful Transport Routes onEBGP"> <list>EBGP</name> <t>If a route is received with a PNH that is known to be directly connected (for example, an EBGP single-hop neighbor address), the directly connected interface is checked for MPLS forwarding capability. No other next hop resolution process is performed since the inter-AS link can be used for any Transport Class.</t> <t>If the inter-AS links need to honor Transport Class, then the BNMUST<bcp14>MUST</bcp14> follow the procedures of an Ingress node (<xreftarget="CTingress"/>)target="CTingress" format="default"/>) and perform the next hop resolution process. In order to make the link Transport Class aware, the route to the directly connected PNH is installed in the TRDB belonging to the associated Transport Class.</t></list></section> <sectiontitle="Avoidingnumbered="true" toc="default"> <name>Avoiding Path Hiding Through RouteReflectors"> <list>Reflectors</name> <t>When multiple instances of a given RD:EP exist with different forwarding characteristics,thenBGP ADD-PATH (see <xreftarget="RFC7911">BGP ADD-PATH</xref>target="RFC7911" format="default"></xref>) is helpful.</t> <t>When multiple BNs exist such that they advertiseaan "RD:EP" prefix to Route Reflectors (RRs), the RRs may hide all but one of the BNs, unless BGP ADD-PATH (see <xreftarget="RFC7911">BGP ADD-PATH</xref>target="RFC7911" format="default"></xref>) is used for the Classful Transport family. This is similar to L3VPN Option B scenarios.</t> <t>Hence, BGP ADD-PATH (see <xreftarget="RFC7911">BGP ADD-PATH</xref> SHOULDtarget="RFC7911" format="default"></xref>) <bcp14>SHOULD</bcp14> be used for the Classful Transportfamily,family to avoidpath-hidingpath hiding through RRs so that the RR sends multiple CT routes for RD:EP to its clients. This improves the convergence time when the path via one of the multiple BNs fails.</t></list></section> <sectiontitle="Avoidingnumbered="true" toc="default"> <name>Avoiding Loops Between Route Reflectors in ForwardingPath"> <list>Paths</name> <t>A pair of redundant ABRs, each acting as an RR with the next hopself,set to itself, may choose each other as the best path instead of the upstream ASBR, causing atraffic forwardingtraffic-forwarding loop.</t> <t>This problem can happen for routes of any BGP address family, including BGP CT and BGP LU.</t> <t>Using one or more of the approaches described in <xreftarget="BGP-FWD-RR"/> softenstarget="I-D.ietf-idr-bgp-fwd-rr" format="default"/> lowers the possibility of such loops in a network with redundant ABRs.</t></list></section> <sectiontitle="Ingressnumbered="true" toc="default"> <name>Ingress Nodes Receiving Service Routes with a MappingCommunity"> <list>Community</name> <t>Upon receipt of a BGP service route (for example, AFI/SAFI: 1/1, 2/1) with a PNH as the EP that is not directly connected (for example, an IBGP-route), a Mapping Community (for example, a Color Extended Community) on the route is used to decide to which resolution scheme this route is to be mapped.</t> <t>The resolution scheme for a Color Extended Community with Color "C1" contains a TRDB for a Transport Class with sameID,ID followed by theBest EffortBest-Effort TRDB. The administratorMAY<bcp14>MAY</bcp14> customize the resolution scheme to map to a different ordered list of TRDBs. If the resolution scheme for TC ID "C1" is not found, the resolution scheme containing the"Best Effort""Best-Effort" transport class TRDB is used.</t> <t>If no Mapping Community was found on the overlay route, the "Best Effort" resolution scheme is used for resolving the route's next hop. This behavior is backward compatible to behavior of an implementation that does not follow procedures described in this document.</t> <t>The routes in the TRDBs associated with the selected resolution scheme are used to resolve the received PNH EP. The order of TRDBs in a resolution scheme is followed when resolving the received PNH, such that a route in a backup TRDB is used only when a matching route was not found for the EP in the primary TRDBs preceding it. This achieves the fallback desired by the resolution scheme.</t> <t>If the resolution process does not find a Tunnel Route for the EP in any of the Transport Route Databases, the service routeMUST<bcp14>MUST</bcp14> be consideredunresolvableunresolvable. (SeeRFC 4271, Section 9.1.2.1).</t> </list><xref target="RFC4271" sectionFormat="of" section="9.1.2.1"/>).</t> <t>Note: For an illustration of above procedures inaan MPLS network, refer to <xreftarget="CTProc"/>.</t>target="CTProc" format="default"/>.</t> </section> <sectiontitle="Best Effortnumbered="true" toc="default"> <name>Best-Effort TransportClass"> <list>Class</name> <t>It is also possible to represent'Best effort'a 'Best-effort' SLAalsoas a Transport Class.Today,At the time of writing, BGP LU is used to extend thebest effort intra domainbest-effort intra-domain tunnels to other domains.</t> <t>Alternatively, BGP CT may also be used to carry thebest effortbest-effort tunnels. This document reserves the Transport Class ID value 0 to represent"Best Effortthe "Best-Effort Transport Class ID". However, implementationsSHOULD<bcp14>SHOULD</bcp14> provide configuration to use a different value for this purpose. Procedures to manage differences in Transport Class ID namespaces between domains are provided in <xreftarget="non-agreeing"/>.</t>target="non-agreeing" format="default"/>.</t> <t>The"Best Effort"Best-Effort Transport Class ID" value is used in the "Transport Class ID" field of the Transport Route TargetExtended Communityextended community that is attached to the BGP CT route that advertises abest effortbest-effort tunnel endpoint.TheThus, the RTthusformed is called the"Best Effort"Best-Effort Transport Class Route Target".</t> <t>When a BN or SN receives a BGP CT route withBest EffortBest-Effort Transport Class Route Target as the mapping community, theBest effortBest-effort resolution scheme is used for resolving the BGP next hop, and the resultant route is installed in thebest effortbest-effort transport route database. If nobest effortbest-effort tunnel was found to resolve the BGP next hop, the BGP CT routeMUST<bcp14>MUST</bcp14> be consideredunusable,unusable and not be propagated further.</t> <t>When a BGP speaker receives an overlay route without any explicit Mapping Community, and absent local policy, thebest effortbest-effort resolution scheme is used for resolving the BGP next hop on the route. This behavior is backward compatible to behavior of an implementation that does not follow procedures described in this document.</t> <t>ImplementationsMAY<bcp14>MAY</bcp14> provide configuration to selectively install BGP CT routes to the Forwarding Information Base(FIB),(FIB) to provide reachability forcontrol planecontrol-plane peering towards endpoints in other domains.</t></list></section> <sectiontitle="Interactionanchor="bgp-att" numbered="true" toc="default"> <name>Interaction with BGP Attributes Specifying Next Hop Address andColor">Color</name> <t>The Tunnel Encapsulation Attribute, described in <xreftarget="RFC9012"/>target="RFC9012" format="default"/>, can be used to request a specific type of tunnel encapsulation. This attribute may apply to BGP service routes or transportroutes,routes including BGP Classful Transport family routes.</t> <t>It should be noted that in such cases "Transport Class ID/Color" can exist in multiple places on the same route, and a precedence order needs to be established to determine which Transport Class the route's next hop should resolve over. This document specifies the following order ofprecedence, more specificprecedence with more-specific scoping of Color preferred toless specificless-specific scoping:<list></t> <ul spacing="normal"> <li> <t>ColorSubTLV,sub-TLV in the Tunnel Encapsulation Attribute.</t> </li> <li> <t>Transport TargetExtended community,extended community on a BGP CT route.</t> </li> <li> <t>Color Extendedcommunity,Community on a BGP service route.</t></list></t></li> </ul> <t>Color specified in the ColorsubTLVsub-TLV in a TEA is amore specificmore-specific indication of "Transport Class ID/Color" than Mapping Community (Transport Target) on a BGP CT transport route,which iswhich, inturnturn, is more specific than aService route scopedService-route-scoped Mapping Community (Color Extendedcommunity).</t>Community).</t> <t>Any BGP attributes or mechanisms defined in future that carry Transport Class ID/Color on the route are expected to specify the order of precedence relative to the above.</t> </section> <sectiontitle="Applicabilitynumbered="true" toc="default"> <name>Applicability to FlowspecRedirect to IP">Redirect-to-IP</name> <t>Flowspec routes usingRedirect to IPredirect-to-IP next hopisare described in <xreftarget="FLOWSPEC-REDIR-IP"/></t>target="I-D.ietf-idr-flowspec-redirect-ip" format="default"/>.</t> <t>Such Flowspec BGP routes withRedirect to IPredirect-to-IP next hopMAY<bcp14>MAY</bcp14> be attached with a Mapping Community(e.g.(e.g., Color:0:100), which allows redirecting the flow traffic over a tunnel to the IP next hop satisfying the desired SLA(e.g.(e.g., Transport Class color 100).</t><t>Flowspec<t>The Flowspec BGP family acts as just another service that can make use of the BGP CT architecture to achieveFlow basedflow-based forwarding with SLAs.</t> </section> <section anchor="IPv6-Applicability"title="Applicabilitynumbered="true" toc="default"> <name>Applicability toIPv6">IPv6</name> <t>BGP CT procedures apply equally toIPv4IPv4- andIPv6 enabledIPv6-enabled Intra-AS or Inter-AS Option A, B, and Cnetwork.networks. This section describes the applicability of BGP CT to IPv6 at various layers.</t> <t>A network that is BGP CT enablednetworksupports IPv6 service families (for example, AFI/SAFI 2/1 or 2/128) and IPv6 transport signaling protocols like SRTEv6, LDPv6, or RSVP-TEv6.</t> <t>Procedures in this document also apply to a network with Pure IPv6 core, that uses MPLS forwarding for intra-domain tunnels and inter-AS links. The BGP CTv6 family (AFI/SAFI: 2/76) is used to carry global IPv6 address tunnel endpoints in the NLRI. Service family routes (for example, AFI/SAFI: 1/1, 2/1, 1/128, and 2/128) are also advertised with those Global IPv6 addresses as next hop.</t> <t>Procedures in this document also apply to a 6PE network with an IPv4 core,thatwhich uses MPLS forwarding for intra-domain tunnels and Inter-AS links. The BGP CTv6 family (AFI/SAFI: 2/76) is used to carry IPv4 Mapped IPv6 address tunnel endpoints in the NLRI. IPv6 Service family routes (for example, AFI/SAFI: 2/1, 2/128) are also advertised with those IPv4 Mapped IPv6 addresses as next hop.</t> <t>The PE-CE attachment circuits may use IPv4 addresses only, IPv6 addresses only, or both IPv4 and IPv6 addresses.</t><t/></section> <section anchor="SRv6-Support"title="SRv6 Support"> <t>BGPnumbered="true" toc="default"> <name>SRv6 Support</name> <t>The BGP CT family (AFI/SAFI 2/76) may be used to set up inter-domain tunnels of a certain TransportClass,Class when using a Segment Routing over IPv6 (SRv6) data plane on the inter-AS links or as an intra-AS tunneling mechanism.</t> <t>Details of SRv6 Endpoint behaviors used by BGP CT and the procedures are specified and illustrated in a separate document (see <xreftarget="BGP-CT-SRv6"/>, along with illustration.target="I-D.ietf-idr-bgp-ct-srv6" format="default"/>). As noted in that document, a BGP CT route update for SRv6 includes a BGP attribute containing SRv6 SID information(e.g. Prefix SID [RFC9252])(e.g., a BGP Prefix-SID <xref target="RFC9252"/>) with the Transposition scheme disabled.</t> </section> <section anchor="error-handling"title="Error Handling Considerations">numbered="true" toc="default"> <name>Error-Handling Considerations</name> <t>If a BGP speaker receives both Transitive and Non-Transitive (see <xreftarget="tc-rt-t">Transitive</xref>target="tc-rt-t" format="default"></xref> and <xreftarget="tc-rt-nt">Non-Transitive</xref>target="tc-rt-nt" format="default"></xref>, respectively) versions of a Transport Class extended community on a route, only the Transitive one is used.</t> <t>If a BGP speaker considers a received "Transport Class" extended community(Transitive(the Transitive or Non-Transitiveversion),version) or any other part of a BGP CT route invalid for some reason, but is able to successfully parse the NLRI and attributes,Treat-as-withdrawthe treat-as-withdraw approach from <xreftarget="RFC7606"/>target="RFC7606" format="default"/> is used. The route is kept as Unusable, with appropriate diagnostic information, to aid troubleshooting.</t> </section> </section> <section anchor="CTProc"title="Illustrationnumbered="true" toc="default"> <name>Illustration of BGP CTProcedures">Procedures</name> <t>This section illustrates BGP CT procedures in an Inter-AS Option C MPLS network.</t> <t>AllIllustrationsillustrations in this document make use of<xref target="RFC6890"/>IP addressranges.ranges as described in <xref target="RFC6890" format="default"/>. The range 192.0.2.0/24 is used to represent transport endpoints like loopback addresses. The range 203.0.113.0/24 is used to represent service route prefixes advertised in AFI/SAFIs: 1/1 or 1/128.</t> <t>Though this section illustratesusingthe use of IPv4, as described in <xreftarget="IPv6-Applicability"/>target="IPv6-Applicability" format="default"/>, these procedures work equally for IPv6as-well.</t>as well.</t> <sectiontitle="Reference Topology">numbered="true" toc="default"> <name>Reference Topology</name> <figuretitle="Multi-Domainanchor="CTProcTopo"> <name>Multi-Domain BGP CTNetwork" anchor="CTProcTopo"><artset><artwork type="svg"><svgNetwork</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="584" viewBox="0 0 584 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 128,48 L 128,96" fill="none" stroke="black"/> <path d="M 144,80 L 144,96" fill="none" stroke="black"/> <path d="M 144,128 L 144,176" fill="none" stroke="black"/> <path d="M 240,80 L 240,96" fill="none" stroke="black"/> <path d="M 240,128 L 240,176" fill="none" stroke="black"/> <path d="M 256,48 L 256,96" fill="none" stroke="black"/> <path d="M 272,80 L 272,96" fill="none" stroke="black"/> <path d="M 272,128 L 272,176" fill="none" stroke="black"/> <path d="M 448,80 L 448,96" fill="none" stroke="black"/> <path d="M 448,128 L 448,176" fill="none" stroke="black"/> <path d="M 464,48 L 464,96" fill="none" stroke="black"/> <path d="M 480,80 L 480,96" fill="none" stroke="black"/> <path d="M 480,128 L 480,176" fill="none" stroke="black"/> <path d="M 568,80 L 568,96" fill="none" stroke="black"/> <path d="M 568,128 L 568,176" fill="none" stroke="black"/> <path d="M 144,80 L 160,80" fill="none" stroke="black"/> <path d="M 224,80 L 240,80" fill="none" stroke="black"/> <path d="M 272,80 L 288,80" fill="none" stroke="black"/> <path d="M 432,80 L 448,80" fill="none" stroke="black"/> <path d="M 480,80 L 496,80" fill="none" stroke="black"/> <path d="M 552,80 L 568,80" fill="none" stroke="black"/> <path d="M 144,176 L 160,176" fill="none" stroke="black"/> <path d="M 224,176 L 240,176" fill="none" stroke="black"/> <path d="M 272,176 L 288,176" fill="none" stroke="black"/> <path d="M 432,176 L 448,176" fill="none" stroke="black"/> <path d="M 480,176 L 496,176" fill="none" stroke="black"/> <path d="M 552,176 L 568,176" fill="none" stroke="black"/> <path d="M 120,288 L 192,288" fill="none" stroke="black"/> <path d="M 352,288 L 448,288" fill="none" stroke="black"/> <path d="M 344,96 L 376,160" fill="none" stroke="black"/> <path d="M 336,160 L 368,96" fill="none" stroke="black"/> <polygon class="arrowhead" points="456,288 444,282.4 444,293.6" fill="black" transform="rotate(0,448,288)"/> <g class="text"> <text x="132" y="36">[RR26]</text> <text x="260" y="36">[RR27]</text> <text x="468" y="36">[RR16]</text> <text x="192" y="84">[ABR23]</text> <text x="360" y="84">[ASBR21]-[ASBR13]</text> <text x="524" y="84">[PE11]</text> <text x="80" y="116">[CE41]-[PE25]-[P28]</text> <text x="256" y="116">[P29]</text> <text x="464" y="116">[P15]</text> <text x="556" y="116">[CE31]</text> <text x="192" y="180">[ABR24]</text> <text x="360" y="180">[ASBR22]-[ASBR14]</text> <text x="524" y="180">[PE12]</text> <text x="56" y="228">:</text> <text x="120" y="228">AS2</text> <text x="192" y="228">:</text> <text x="280" y="228">AS2</text> <text x="352" y="228">:</text> <text x="528" y="228">:</text> <text x="32" y="244">AS4</text> <text x="56" y="244">:</text> <text x="124" y="244">region-1</text> <text x="192" y="244">:</text> <text x="276" y="244">region-2</text> <text x="352" y="244">:</text> <text x="424" y="244">AS1</text> <text x="528" y="244">:</text> <text x="568" y="244">AS3</text> <text x="56" y="260">:</text> <text x="192" y="260">:</text> <text x="352" y="260">:</text> <text x="528" y="260">:</text> <text x="52" y="292">203.0.113.41</text> <text x="232" y="292">Traffic</text> <text x="304" y="292">Direction</text> <text x="516" y="292">203.0.113.31</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ [RR26] [RR27] [RR16] | | | | | | | +--[ABR23]--+ | +--[ASBR21]-[ASBR13]--+ | +--[PE11]--+ | | | | | \ / | | | | [CE41]-[PE25]-[P28] [P29] \/ [P15] [CE31] | | | /\ | | | | | | / \ | | | | | | / \ | | | +--[ABR24]--+ +--[ASBR22]-[ASBR14]--+ +--[PE12]--+ : AS2 : AS2 : : AS4 : region-1 : region-2 : AS1 : AS3 : : : : 203.0.113.41 ---------- Traffic Direction ------------> 203.0.113.31]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>This example shows a provider MPLS network that consists of two ASes, AS1 andAS2. They are servingAS2, that serve customersAS3, AS4AS3 and AS4, respectively.TrafficThe traffic direction being described is from CE41 to CE31. CE31 may request a specific SLA(for example, mapped(mapped to Gold for this example), when traversing these provider networks.</t><t>AS2<!-- [rfced] Please confirm the following citation as [RFC9350] doesn't appear to use the term "ISIS Flex-Algo" (we note that it does contain the term "Flex-Algorithm"). Current: AS2 is further divided into two regions. There are three tunnel domains in provider's space: AS1 uses<xref target="RFC9350">ISIS Flex-Algo</xref>ISIS Flex-Algo [RFC9350] intra-domain tunnels. AS2 uses RSVP-TE intra-domain tunnels.MPLS--> <t>AS2 is further divided into two regions. There are three tunnel domains in the provider's space:</t> <ul> <li>AS1 uses ISIS Flex-Algo (see<xref target="RFC9350" format="default"></xref>) intra-domain tunnels. </li> <li>AS2 uses RSVP-TE intra-domain tunnels.</li> </ul> <t>MPLS forwarding is used within these domains and on inter-domain links.</t> <t>The network exposes two Transport Classes: "Gold" with Transport Class ID100,100 and "Bronze" with Transport Class ID 200. These Transport Classes are provisioned at the PEs and the Border nodes(ABRs,(ABRs and ASBRs) in the network.</t> <t>The following tunnels exist for the Gold TransportClass.<list>Class:</t> <ul spacing="normal"> <li> <t>PE25_to_ABR23_gold - RSVP-TE tunnel</t> </li> <li> <t>PE25_to_ABR24_gold - RSVP-TE tunnel</t> </li> <li> <t>ABR23_to_ASBR22_gold - RSVP-TE tunnel</t> </li> <li> <t>ASBR13_to_PE11_gold - SRTE tunnel</t> </li> <li> <t>ASBR14_to_PE11_gold - SRTE tunnel</t></list></t></li> </ul> <t>The following tunnels exist for Bronze TransportClass.<list>Class:</t> <ul spacing="normal"> <li> <t>PE25_to_ABR23_bronze - RSVP-TE tunnel</t> </li> <li> <t>ABR23_to_ASBR21_bronze - RSVP-TE tunnel</t> </li> <li> <t>ABR23_to_ASBR22_bronze - RSVP-TE tunnel</t> </li> <li> <t>ABR24_to_ASBR21_bronze - RSVP-TE tunnel</t> </li> <li> <t>ASBR13_to_PE12_bronze - ISIS FlexAlgo tunnel</t> </li> <li> <t>ASBR14_to_PE11_bronze - ISIS FlexAlgo tunnel</t></list></t></li> </ul> <t>These tunnels are either provisioned orauto-discoveredautodiscovered to belong to TransportClassesClass IDs 100 or 200.</t> </section> <sectiontitle="Service Layernumbered="true" toc="default"> <name>Service-Layer RouteExchange"> <t>ServiceExchange</name> <!--[rfced] Please review the use of a comma in the following situations: a) Between "1" and "128" in the following. We have seen 1/128 in the earlier parts of this document: are these different meanings? This occurs in more than one place. Original: Service nodes PE11, PE12 negotiate service families (AFI: 1 and SAFIs 1, 128) on the BGP session with RR16. b) Throughout Section 8.3 and elsewhere in the document, we replaced many commas with "and" as we believe this was the intended meaning. Please review and let us know any objections. --> <t>Service nodes PE11 and PE12 negotiate service families (AFI: 1 and SAFIs 1, 128) on the BGP session with RR16. Service helpers RR16 and RR26 exchange these service routes with the next hop unchanged over a multihop EBGP session between the twoAS.ASes. PE25 negotiates service families (AFI: 1 and SAFIs 1, 128) with RR26.</t> <t>The PEs see each other as the next hop in the BGPUpdateUPDATE message for the service family routes. BGP ADD-PATH send and receiveisare enabled on both directions on the EBGP multihop session between RR16 and RR26 for AFI:1 and SAFIs 1, 128. BGP ADD-PATH send is negotiated in the RR to PE direction in each AS. This is to avoidpath hiding ofthe path-hiding service routes atRR;the RR, i.e., AFI/SAFI 1/1 routes advertised by both PE11 andPE12. Or,PE12 or AFI/SAFI 1/128 routes originated by both PE11 and PE12 using the same RD.</t> <t>Forwarding happens using service routes installed at service nodes PE25, PE11, and PE12 only. Service routes received from CEs are not present in any other nodes' FIB in the network.</t> <t>As an example, CE31 advertises a route for prefix 203.0.113.31 with the next hop asselfitself toPE11,PE11 and PE12. CE31 can attach a Mapping Community Color:0:100 on thisroute,route to indicate its request for a Gold SLA. Or, PE11 can attach the same using locally configured policies.</t><t>Consider,<t>Consider CE31isgetting VPN service from PE11. The RD1:203.0.113.31 route is readvertised in AFI/SAFI 1/128 by PE11 with the next hopselfset to itself (192.0.2.11) and labelV-L1,V-L1 to RR16 with the Mapping Community Color:0:100 attached. RR16 advertises this route with the BGP ADD-PATH ID set toRR26RR26, which readvertises to PE25 with the next hop unchanged. Now, PE25 can resolve the PNH 192.0.2.11 using transport routes received in BGP CT or BGP LU.</t> <t>Using BGP ADD-PATH, service routes advertised by PE11 and PE12 for AFI:1 SAFIs 1, 128 reach PE25 via RR16, RR26 with the next hop unchanged, as PE11 or PE12.</t> <t>The IP FIB at the PE25 VRF will have a route for 203.0.113.31 with a next hop whenresolved,resolved that points to a Gold tunnel in the ingress domain.</t> </section> <sectiontitle="Transport Layernumbered="true" toc="default"> <name>Transport-Layer RoutePropagation">Propagation</name> <t>Egress nodesPE11,PE11 and PE12 negotiate a BGP CT family with transport ASBRsASBR13,ASBR13 and ASBR14. These egress nodes originate BGP CT routes for tunnel endpointaddresses,addresses that are advertised as a next hop in BGP service routes. In this example, both PEs participate in transport classes Gold and Bronze. The protocol procedures are explained using the Gold SLA transportplane andplane; the Bronze SLA transport plane is used to highlight thepath hidingpath-hiding aspects.</t><t>PE11<t>For Gold tunnels, PE11 is provisioned with transport class 100, RD value192.0.2.11:100192.0.2.11:100, and atransport-target:0:100 for Gold tunnels. And atransport-target:0:100. For Bronze tunnels, PE11 is provisioned with Transport class200 with200, RD value 192.0.2.11:200, and transport route target0:200 for Bronze tunnels.0:200. Similarly, for Gold tunnels, PE12 is provisioned with transport class 100, RD value192.0.2.12:100192.0.2.12:100, and atransport-target:0:100 for Gold tunnels. Andtransport-target:0:100. For Bronze tunnels, PE12 is provisioned with transport class 200, RD value192.0.2.12:200 with transport-target:0:200 for Bronze tunnels.192.0.2.12:200, and transport-target:0:200. Notethatthat, in this example, the BGP CT routes carry only the transport class routetarget,target and no IP address format route target.</t> <t>The RD value originated by an egress node is not modified by any BGP speakers when the route is readvertised to the ingress node. Thus, the RD can be used to identify the originator (unique RD provisioned) or set of originators (RD reused on multiple nodes).</t> <t>Similarly, these transport classes are also configured on ASBRs,ABRsABRs, and PEs with same Transport Route Target and unique RDs.</t> <t>ASBR13 and ASBR14 negotiate BGP CT family with transport ASBRsASBR21,ASBR21 and ASBR22 in neighboringAS. ASBR21,ASes. ASBR21 and ASBR22 negotiate BGP CT family with RR27 in region 2, which reflects BGP CT routes toABR23,ABR23 and ABR24.ABR23,ABR23 and ABR24 negotiate BGP CT family with Ingress node PE25 in region 1. The BGP LU family is also negotiated on these sessions alongside the BGP CT family. The BGP LU family carries"best effort""best-effort" transport classroutes,routes; BGP CT carriesGold,Gold and Bronze transport class routes.</t> <t>PE11 is provisioned to originate a BGP CT route for endpoint PE11, with a Gold SLA. This route is sent with NLRI RD prefix 192.0.2.11:100:192.0.2.11, Label B-L0, next hop192.0.2.11192.0.2.11, and aroute targetRoute Target extended community transport-target:0:100. Label B-L0 can either be Implicit Null (Label 3) orana UHP label.</t> <t>This route is received by ASBR13 and it resolves over the tunnel ASBR13_to_PE11_gold. The route is then readvertised by ASBR13 in BGP CT family to ASBRs ASBR21, ASBR22 according to export policy. This route is sent with same NLRI RD prefix 192.0.2.11:100:192.0.2.11, Label B-L1, the next hopself,set to itself, and transport-target:0:100. An MPLS swap route is installed at ASBR13 for B-L1 with a next hop pointing to ASBR13_to_PE11_gold tunnel.</t> <t>Similarly, ASBR14 also receives a BGP CT route for 192.0.2.11:100:192.0.2.11 fromPE11PE11, and it resolves over the tunnel ASBR14_to_PE11_gold. The route is then readvertised by ASBR14 in the BGP CT family to ASBRsASBR21,ASBR21 and ASBR22 according to export policy. This route is sent with the same NLRI RD prefix 192.0.2.11:100:192.0.2.11, Label B-L2, next hopself,set to itself, and transport-target:0:100. An MPLS swap route is installed at ASBR14 for B-L1 with a next hop pointing to ASBR14_to_PE11_gold tunnel.</t> <t>In the Bronze plane, the BGP CT route with a Bronze SLA to endpoint PE11 is originated by PE11 withaan NLRI containing RD prefix192.0.2.11:200:192.0.2.11,192.0.2.11:200:192.0.2.11 and an appropriate label. The use of distinct RDs for Gold and Bronze allows both Gold and Bronze advertisements to traversepath selection pinchpointspath-selection pinch points without any path hiding at RRs or ASBRs. Androute targetRoute Target extended community transport-target:0:200 lets the route resolve over Bronze tunnels in the network, similar to the process being described for the Gold SLA path.</t> <t>Moving back to the Gold plane, ASBR21 receives the Gold SLA BGP CT routes for NLRI RD prefix 192.0.2.11:100:192.0.2.11 over thesingle hopsingle-hop EBGP sessions fromASBR13, ASBR14,ASBR13 and ASBR14 and can compute ECMP/FRR towards them. ASBR21 readvertises the BGP CT route for 192.0.2.11:100:192.0.2.11 with a next hopselfset to itself (loopback address 192.0.2.21) to RR27, advertising a newlabellabel: B-L3. An MPLS swap route is installed for label B-L3 at ASBR21 to swap to receivedlabel B-L1,labels B-L1 and B-L2 and forward toASBR13,ASBR13 and ASBR14respectively,respectively; this is an ECMP route. RR27 readvertises this BGP CT route toABR23,ABR23 and ABR24 with the label and next hop unchanged.</t> <t>Similarly, ASBR22 receives BGP CT route 192.0.2.11:100:192.0.2.11 over thesingle hopsingle-hop EBGP sessions fromASBR13,ASBR13 and ASBR14, and it readvertises with the next hopselfset to itself (loopback address 192.0.2.22) to RR27, advertising a newlabellabel: B-L4. An MPLS swap route is installed for label B-L4 at ASBR22 to swap to receivedlabel B-L1,labels B-L1 and B-L2 and forward toASBR13, ASBR14ASBR13 and ASBR14, respectively. RR27 also readvertises this BGP CT routealsotoABR23,ABR23 and ABR24 with the label and next hop unchanged.</t> <t>BGP ADD-PATH is enabled for the BGP CT family on the sessions between RR27 andASBRs,the ASBRs and ABRs such that routes for 192.0.2.11:100:192.0.2.11 with the next hops ASBR21 and ASBR22 are reflected toABR23,ABR23 and ABR24 without any path hiding. Thus, ABR23 is given visibility of both available next hops for the Gold SLA.</t> <t>ABR23 receives the route with next hop192.0.2.21,192.0.2.21 and label B-L3 from RR27. The route target "transport-target:0:100" on this route acts as the MappingCommunity,Community and instructs ABR23 to strictly resolve the next hop using transport class 100 routes only. ABR23 is unable to find a route for 192.0.2.21 with transport class 100. Thus, it considers this route unusable and does not propagate it further. This prunes ASBR21 from the Gold SLA tunneled path.</t> <t>ABR23 also receives the route with next hop192.0.2.22,192.0.2.22 and label B-L4 from RR27. The route target "transport-target:0:100" on this route acts as the MappingCommunity,Community and instructs ABR23 to strictly resolve the next hop using transport class 100 routes only. ABR23 successfully resolves the next hop to point to ABR23_to_ASBR22_gold tunnel. ABR23 readvertises this BGP CT route with the next hopselfset to itself (loopback address 192.0.2.23) and a new label B-L5 to PE25.SwapA swap route for B-L5 is installed by ABR23 to swap to labelB-L4,B-L4 and forward into ABR23_to_ASBR22_gold tunnel.</t> <t>PE25 receives the BGP CT route for prefix 192.0.2.11:100:192.0.2.11 with label B-L5, next hop192.0.2.23192.0.2.23, and transport-target:0:100 from RR26.And itIt similarly resolves the next hop 192.0.2.23 over transport class 100, pushing labels associated with PE25_to_ABR23_gold tunnel.</t> <t>In this manner, the Gold transport LSP "ASBR13_to_PE11_gold" in the egress domain is extended by BGP CT until the ingress node PE25 in the ingress domain, to create an end-to-end Gold SLA path. MPLS swap routes are installed at ASBR13,ASBR22ASBR22, and ABR23, when propagating the PE11 BGP CT Gold transport class route 192.0.2.11:100:192.0.2.11 with next hopselfset to itself towards PE25.</t><t>The<t>Thus formed, the BGP CT LSPthus formed,originates inPE25,PE25 and terminates in ASBR13 (assuming PE11 advertised Implicit Null), traversing over the Gold underlay LSPs in each domain. ASBR13 uses UHP to stitch the BGP CT LSP into the "ASBR13_to_PE11_gold" LSP to traverse the last domain, thus satisfying Gold SLA end-to-end.</t> <t>When PE25 receives service routes from RR26 with next hop 192.0.2.11 and mapping community Color:0:100, it resolves over this BGP CT route 192.0.2.11:100:192.0.2.11. Thus, pushing labelB-L5,B-L5 and pushing as the top label the labels associated with PE25_to_ABR23_gold tunnel.</t> </section> <sectiontitle="Datanumbered="true" toc="default"> <name>Data PlaneView">View</name> <sectiontitle="Steady State">numbered="true" toc="default"> <name>Steady State</name> <t>This section describes how the data plane looks in steady state.</t> <t>CE41 transmits an IP packet with the destinationas203.0.113.31. On receiving this packet, PE25 performs a lookup in the IP FIB associated with the CE41 interface. This lookup yields the service route that pushes the VPN service label V-L1, BGP CT label B-L5, and labels for PE25_to_ABR23_gold tunnel. Thus, PE25 encapsulates the IP packet in an MPLS packet withlabellabels V-L1 (innermost), B-L5, and top labelasPE25_to_ABR23_gold tunnel. This MPLS packet is thus transmitted to ABR23 using the Gold SLA.</t> <t>ABR23 decapsulates the packet received on PE25_to_ABR23_gold tunnel asrequired,required and finds the MPLS packet with label B-L5. It performs a lookup for label B-L5 in the global MPLS FIB. This yields the route that swaps label B-L5 with labelB-L4,B-L4 and pushes the top label provided by ABR23_to_ASBR22_gold tunnel. Thus, ABR23 transmits the MPLS packet with label B-L4 toASBR22,ASBR22 on a tunnel that satisfies the Gold SLA.</t> <t>ASBR22 similarly performs a lookup for label B-L4 in the global MPLS FIB, finds the route that swaps label B-L4 with label B-L2, and forwards it to ASBR13 over the directly connected MPLS-enabled interface. This interface is a common resource not dedicated to any specific transport class, in this example.</t> <t>ASBR13 receives the MPLS packet with labelB-L2,B-L2 and performs a lookup in the MPLS FIB, finds the route that pops label B-L2, and pushes labels associated with ASBR13_to_PE11_gold tunnel. This transmits the MPLS packet with VPN label V-L1 to PE11 using a tunnel that preserves the Gold SLA in AS 1.</t> <t>PE11 receives the MPLS packet withV-L1,V-L1 and performs VPNforwarding. Thusforwarding, thus transmitting the original IP payload from CE41 to CE31. The payload has traversed path satisfying the Gold SLA end-to-end.</t> </section> <sectiontitle="Localnumbered="true" toc="default"> <name>Local Repair of PrimaryPath">Path</name> <t>This section describes how the data plane at ASBR22 reacts when the link between ASBR22 and ASBR13 experiences afailure,failure and an alternate path exists.</t> <t>Assuming the ASBR22_to_ASBR13 link goes down,such thattraffic with a Gold SLA going to PE11needswill need repair. ASBR22 has an alternate BGP CT route for 192.0.2.11:100:192.0.2.11 from ASBR14. This has been preprogrammed in forwarding by ASBR22 as an FRR backup next hop for label B-L4. This allows the Gold SLA traffic to be locally repaired at ASBR22 without the failure event propagated in the BGP CT network. In this case, ingress node PE25 will not know there was a failure, and traffic restoration will be independent of prefix scale (PIC).</t> </section> <sectiontitle="Absorbingnumbered="true" toc="default"> <name>Absorbing Failure of the Primary Path: Fallback toBest Effort Tunnels ">Best-Effort Tunnels</name> <t>This section describes how the data plane reacts when a Gold path experiences afailure,failure but no alternate path exists.</t> <t>Assume tunnel ABR23_to_ASBR22_gold goes down, such that now no end-to-end Gold path exists in the network. This makes the BGP CT route for RD prefix 192.0.2.11:100:192.0.2.11isunusable at ABR23. This makes ABR23 send a BGP withdrawal for 192.0.2.11:100:192.0.2.11 to PE25.</t> <t>The withdrawal for 192.0.2.11:100:192.0.2.11 allows PE25 to react to the loss of the Gold path to 192.0.2.11. Assuming PE25 is provisioned to usebest efforta best-effort transport class as the backup path, this withdrawal of a BGP CT route allows PE25 to adjust the next hop of the VPN Service-route to push the labels provided by the BGP LU route. That repairs the traffic to go via thebest effortbest-effort path. PE25 can also be provisioned to use the Bronze transport class as the backup path. The repair will happen in similar manner in that caseas-well.</t>as well.</t> <t>Traffic repair to absorb the failure happens at ingress nodePE25,PE25 in a service prefix scale independentmanner. This is called PIC.manner (PIC). The repair time will be proportional to time taken for withdrawing the BGP CT route.</t> <t>These examples demonstrate the various levels offailsafefail-safe mechanisms available to protect traffic in a BGP CT network.</t> </section> </section> </section> <sectiontitle="Scaling Considerations">numbered="true" toc="default"> <name>Scaling Considerations</name> <section anchor="secure-propagate"title="Avoidingnumbered="true" toc="default"> <name>Avoiding Unintended Spread of BGP CT Routes AcrossDomains"> <list>Domains</name> <t><xreftarget="RFC8212"/>target="RFC8212" format="default"/> suggests BGP speakers require explicit configuration of both BGP Import and Export Policies in order to receive or send routes over EBGP sessions.</t> <t>It is recommended to follow this for BGP CT routes. It will prohibit unintended advertisement of transport routes throughout the BGP CT transport domain, which may span across multiple AS domains. This will conserve usageofresources for MPLSlabellabels and nexthop resourceshops in the network. An ASBR of a domain can be provisioned to allow routes with only the Transport Route Targets that are required by SNs in the domain.</t></list></section> <sectiontitle="Constrainednumbered="true" toc="default"> <name>Constrained Distribution of PNHs to SNs (On-Demand NextHop)"> <list>Hop)</name> <t>This section describes how the number of Protocol NexthopsHops (PNHs) advertised toaan SN or BN can be constrained using BGP Classful Transport and RTC (see <xreftarget="RFC4684">Route Target Constrain (RTC)</xref>.</t>target="RFC4684" format="default"></xref>.</t> <!--[rfced] We note that this document uses TC ID to refer to a Transport Class Identifier in the Terminology section. Please review the use of TC (without ID) in the text below where it seems the expansion is "Transport Class identifier" and let us know if/how to update. Original: ...transport-target:0:<TC> and a RT carrying <eSN>:<TC>, where TC is the Transport Class identifier, and eSN is the IP address used by SN as BGP next hop in its service route advertisements. --> <t>An egress SNMAY<bcp14>MAY</bcp14> advertise a BGP CT route for RD:eSN with two Route Targets: transport-target:0:<TC> andaan RT carrying <eSN>:<TC>, where TC is the Transport Classidentifier,identifier and eSN is the IP address used by the SN as BGP next hop in its service route advertisements.</t> <t>Note that such use of theIP address specificIP-address-specific route target <eSN>:<TC> is optional in a BGP CT network. It is required only if there is a requirement to prune the propagation of the transport route for an egress node eSN to only the set of ingress nodes that need it. When only the RT of transport-target:0:<TC> is used, the pruning happens in granularity of Transport Class ID (Color),andnot BGP next hop; a BGP CT route will only be advertised into a domain with at least one PE that imports its transport class.</t> <t>The transport-target:0:<TC> is the new type of route target (Transport Class RT) defined in this document. It is carried in the BGP extended community attribute (BGP attribute code 16).</t> <t>The RT carrying <eSN>:<TC>MAY<bcp14>MAY</bcp14> be anIP-address specificIP-address-specific regular RT (BGP attribute code 16), or IPv6-address specific RT (BGP attribute code 25). It should be noted that the Local Administrator field of these RTs can only carry two octets ofinformation, and thusinformation; thus, the <TC> field in this approach is limited to a2 octets2-octet value. Future protocolextensionsextension work is needed to define a BGP CCA that canaccomodateaccommodate an IPv4/IPv6 address along with a4 octet4-octet Local Administrator field.</t> <t>An ingress SNMAY<bcp14>MAY</bcp14> import BGP CT routes with a Route Target carrying <eSN>:<TC>. The ingress SN may learn the eSN valueseitherbyconfiguration,configuration or it may discover them from the BGP next hop field in the BGP VPN service routes received from the eSN. A BGP ingress SN receiving a BGP service route with a next hop of eSN generatesaan RTC route for Route Target prefix <Origin ASN>:<eSN>/[80|176] in order to learn BGP CT transport routes to reach eSN. This allows constrained distribution of the transport routes to the PNHs actually required by iSN.</t> <t>When RTC is inuseuse, as described here, BGP CT routes will be constrained to follow the same path of propagation as the RTC routes. Therefore, a BN would learn the RTC routes advertised by ingress SNs and propagate further. This will allow constraining distribution of BGP CT routes for a PNH to only the necessary BNs in the network, closer to the egress SN.</t> <t>When the path of route propagation of BGP CT routes is the same as the RTC routes, a BN would learn the RTC routes advertised by ingress SNs and propagate further. This will allow constraining distribution of BGP CT routes for a PNH to only the necessary BNs in the network, closer to the egress SN.</t> <t>This mechanism provides"On Demand"On-Demand Nexthop"Hop" of BGP CT routes, whichhelphelps with the scaling of MPLS forwarding state at the SN and BN.</t> <t>However, the amount of state carried in RTC family may become proportional to the number of PNHs in the network. To strike a balance, the RTC route advertisements for <Origin ASN>:<eSN>/[80|176]MAY<bcp14>MAY</bcp14> be confined to the BNs in the home region of an ingress SN, or the BNs of a super core.</t> <t>Such a BN in the core of the network imports BGP CT routes with Transport-Target:0:<TC> and generates an RTC route for <Origin ASN>:0:<TC>/96, while not propagating the more specific RTC requests for specific PNHs. This lets the BN learn transport routes to all eSN nodes butconfineconfines their propagation to ingress SNs.</t></list></section> <sectiontitle="Limiting Thenumbered="true" toc="default"> <name>Limiting the Visibility Scope of PE Loopback asPNHs"> <list>PNHs</name> <t>It may be even more desirable to limit the number of PNHs that are globally visible in the network. This is possible using the mechanism described in <xreftarget="Appendix D"/>,target="Appendix_D" format="default"/>, such that advertisement of PE loopback addresses as next hops in BGP service routes is confined to the region they belong to. An anycast IP address called a "Context Protocol Nexthop" (or "CPNH") address abstracts the SNs in a region from other regions in the network.</t> <!--[rfced] We see the following similar sentences in back-to-back paragraphs. Please review and let us know if/how we can reduce redundancy. Original: This is possible using mechanism described in Appendix D, such that advertisement of PE loopback addresses as next-hop in BGP service routes is confined to the region they belong to. An anycast IP-address called "Context Protocol Nexthop Address" (CPNH) abstracts the SNs in a region from other regions in thenetwork.</t> <t>Suchnetwork. Such that advertisement of PE loopback addresses as next-hop in BGP service routes is confined to the region they belong to. An anycast IP-address called "Context Protocol Nexthop Address" (CPNH) abstracts the SNs in a region from other regions in the network. --> <t>Such that advertisement of PE loopback addresses as next hop in BGP service routes is confined to the region they belong to. An anycast IP-address called "Context Protocol Nexthop Address" (CPNH) abstracts the SNs in a region from other regions in the network.</t> <t>This provides much greater advantage in terms of scaling, convergence and security. Changes to implement this feature are required only on the local region's BNs and RRs, so legacy PE devices can also benefit from this approach.</t></list></section> </section> <sectiontitle="Operationsnumbered="true" toc="default"> <name>Operations and ManageabilityConsiderations">Considerations</name> <section anchor="mpls-oam"title="MPLS OAM">numbered="true" toc="default"> <name>MPLS OAM</name> <t>MPLSOAMOperations, Administration, and Maintenance (OAM) procedures specified in <xreftarget="RFC8029"/>target="RFC8029" format="default"/> also apply to BGP Classful Transport.</t> <t>The'TargetTarget FECStack'Stack sub-TLV for IPv4 Classful Transport has a Sub-Type of31744,31744 and a length of 13. The Value field consists of the RD advertised with the Classful Transport prefix, the IPv4 prefix (with trailing 0 bits to make 32 bits inall)all), and a prefix length encoded as shown in <xreftarget="FECv4"/>.</t>target="FECv4" format="default"/>.</t> <figureanchor="FECv4" suppress-title="false" title="Classfulanchor="FECv4"> <name>Classful Transport IPv4FEC">FEC</name> <artwork align="left"xml:space="preserve">name="" type="" alt=""><![CDATA[ 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Route Distinguisher | | (8 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 prefix | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix Length | Must Be Zero | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>]]></artwork> </figure> <t>The'TargetTarget FECStack'Stack sub-TLV for IPv6 Classful Transport has a Sub-Type of31745,31745 and a length of 25. The Value field consists of the RD advertised with the Classful Transport prefix, the IPv6 prefix (with trailing 0 bits to make 128 bits in all) and a prefix length encoded as shown in <xreftarget="FECv6"/>.</t>target="FECv6" format="default"/>.</t> <figureanchor="FECv6" suppress-title="false" title="Classfulanchor="FECv6"> <name>Classful Transport IPv6FEC">FEC</name> <artwork align="left"xml:space="preserve">name="" type="" alt=""><![CDATA[ 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Route Distinguisher | | (8 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 prefix | | | | | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix Length | Must Be Zero | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+</artwork>]]></artwork> </figure> <t>These prefix layouts are inherited from Sections3.2.5, 3.2.6 in<xreftarget="RFC8029"/></t>target="RFC8029" sectionFormat="bare" section="3.2.5"/> and <xref target="RFC8029" sectionFormat="bare" section="3.2.6"/> of <xref target="RFC8029" format="default"/>.</t> </section> <section anchor="rd-lbl-usage"title="Usagenumbered="true" toc="default"> <name>Usage ofRoute DistinguisherRD andLabel Allocation Modes">Label-Allocation Modes</name> <t>RDs aid in troubleshooting provider networks that deploy BGP CT, by uniquely identifying the originator of a route across an administrative domain that may either span multiple domains within a provider network or span closely coordinated provider networks.</t> <t>The use of RDs also provides an option for signaling forwarding diversity within the same Transport Class.AAn SN can advertise an EP with the same Transport Class in multiple BGP CT routes with unique RDs.</t> <t>For example, unique "RDx:EP1" prefixes can be advertised by an SN for an EP1 to different upstream BNs with uniqueforwarding specificforwarding-specific encapsulation (e.g.,Label),a Label) in order to collect traffic statistics at the SN for each BN. In the absence of an RD, duplicated TransportClass/ColorClass / Color values will be needed in the transport network to achieve such use cases.</t> <t>The allocation of RDs is done at the point of origin of the BGP CT route. This caneitherbe either an Egress SN or a BN. The default RD allocation mode is to use a unique RD per originating node for an EP. This mode allows for the ingress to uniquely identify each originated path. Alternatively, the same RD may be provisioned for multiple originators of the same EP. This mode can be used when the ingress does not require full visibility of all nodes originating an EP.</t> <t>A label is allocated for a BGP CT route when it is advertised with the next hopselfset to itself byaan SN or a BN. An implementation may use differentlabel allocationlabel-allocation modes with BGP CT.ThePer-prefix is the recommendedlabel allocationlabel-allocation modeis per-prefixas it provides better traffic convergence properties thanper-next hop label allocationa per-NH label-allocation mode. Furthermore, BGP CT offers two flavors for per-prefix labelallocation. Theallocation:</t> <ul spacing="normal"> <li>The first flavor assigns a label for each unique "RD,EP". TheEP".</li> <li>The second flavor assigns a label for each unique "Transport Class, EP" while ignoring theRD.</t>RD.</li> </ul> <t>In a BGP CT network, the number of routes at an Ingress PE is a function of unique EPs multiplied by BNs in the ingress domain thatdohave the next hopself.set to themselves. BGP CT provides flexible RD andLabel allocationlabel-allocation modes to address operational requirements in a multi-domain network. The impacts on the control plane and forwarding behavior for these modes are detailed with an example in <xreftarget="CTRouteVis">Managing Transport Route Visibility</xref></t>target="CTRouteVis" format="default"></xref>.</t> </section> <section anchor="CTRouteVis"title="Managing Transport Route Visibility">numbered="true" toc="default"> <name>Managing Transport-Route Visibility</name> <t>This section details the usage of BGP CT RD andlabel allocationlabel-allocation modes to calibrate the level of path visibility and the amount of route and label scale in a multi-domain network.</t> <t>Consider a multi-domain BGP CT network as illustrated in the following <xreftarget="MultiDomainNetwork"/>:</t>target="MultiDomainNetwork" format="default"/>:</t> <figuretitle="Managing Transport Routeanchor="MultiDomainNetwork"> <name>Managing Transport-Route Visibility inMulti Domain Network" anchor="MultiDomainNetwork"><artset><artwork type="svg"><svgMulti-Domain Networks</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="400" width="432" viewBox="0 0 432 400" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 80,112 L 80,176" fill="none" stroke="black"/> <path d="M 80,208 L 80,272" fill="none" stroke="black"/> <path d="M 136,80 L 136,96" fill="none" stroke="black"/> <path d="M 136,128 L 136,144" fill="none" stroke="black"/> <path d="M 136,240 L 136,256" fill="none" stroke="black"/> <path d="M 136,288 L 136,304" fill="none" stroke="black"/> <path d="M 288,128 L 288,176" fill="none" stroke="black"/> <path d="M 288,288 L 288,336" fill="none" stroke="black"/> <path d="M 136,80 L 216,80" fill="none" stroke="black"/> <path d="M 312,80 L 328,80" fill="none" stroke="black"/> <path d="M 80,112 L 112,112" fill="none" stroke="black"/> <path d="M 304,112 L 328,112" fill="none" stroke="black"/> <path d="M 136,144 L 216,144" fill="none" stroke="black"/> <path d="M 312,144 L 328,144" fill="none" stroke="black"/> <path d="M 288,176 L 328,176" fill="none" stroke="black"/> <path d="M 136,240 L 216,240" fill="none" stroke="black"/> <path d="M 312,240 L 328,240" fill="none" stroke="black"/> <path d="M 80,272 L 112,272" fill="none" stroke="black"/> <path d="M 304,272 L 328,272" fill="none" stroke="black"/> <path d="M 136,304 L 216,304" fill="none" stroke="black"/> <path d="M 312,304 L 328,304" fill="none" stroke="black"/> <path d="M 288,336 L 328,336" fill="none" stroke="black"/> <path d="M 48,368 L 128,368" fill="none" stroke="black"/> <path d="M 288,368 L 352,368" fill="none" stroke="black"/> <path d="M 304,288 L 312,304" fill="none" stroke="black"/> <path d="M 304,128 L 312,144" fill="none" stroke="black"/> <path d="M 304,96 L 312,80" fill="none" stroke="black"/> <path d="M 304,256 L 312,240" fill="none" stroke="black"/> <polygon class="arrowhead" points="360,368 348,362.4 348,373.6" fill="black" transform="rotate(0,352,368)"/> <g class="text"> <text x="92" y="36">......................</text> <text x="312" y="36">.............................</text> <text x="8" y="52">:</text> <text x="96" y="52">AS3</text> <text x="176" y="52">:</text> <text x="200" y="52">:</text> <text x="312" y="52">AS1</text> <text x="424" y="52">:</text> <text x="8" y="68">:</text> <text x="176" y="68">:</text> <text x="200" y="68">:</text> <text x="424" y="68">:</text> <text x="8" y="84">:</text> <text x="244" y="84">ASBR11</text> <text x="348" y="84">PE11</text> <text x="392" y="84">(EP1)</text> <text x="424" y="84">:</text> <text x="8" y="100">:</text> <text x="176" y="100">:</text> <text x="200" y="100">:</text> <text x="272" y="100">\</text> <text x="424" y="100">:</text> <text x="8" y="116">:</text> <text x="140" y="116">ASBR31</text> <text x="176" y="116">:</text> <text x="200" y="116">:</text> <text x="288" y="116">[P]</text> <text x="348" y="116">PE12</text> <text x="392" y="116">(EP2)</text> <text x="424" y="116">:</text> <text x="8" y="132">:</text> <text x="176" y="132">:</text> <text x="200" y="132">:</text> <text x="272" y="132">/</text> <text x="424" y="132">:</text> <text x="8" y="148">:</text> <text x="244" y="148">ASBR12</text> <text x="348" y="148">PE13</text> <text x="392" y="148">(EP3)</text> <text x="424" y="148">:</text> <text x="8" y="164">:</text> <text x="176" y="164">:</text> <text x="200" y="164">:</text> <text x="424" y="164">:</text> <text x="8" y="180">:</text> <text x="176" y="180">:</text> <text x="200" y="180">:</text> <text x="348" y="180">PE14</text> <text x="392" y="180">(EP4)</text> <text x="424" y="180">:</text> <text x="8" y="196">:</text> <text x="56" y="196">PE31--[P]</text> <text x="176" y="196">:</text> <text x="200" y="196">:</text> <text x="424" y="196">:</text> <text x="8" y="212">:</text> <text x="176" y="212">:</text> <text x="200" y="212">:</text> <text x="424" y="212">:</text> <text x="8" y="228">:</text> <text x="176" y="228">:</text> <text x="200" y="228">:</text> <text x="424" y="228">:</text> <text x="8" y="244">:</text> <text x="244" y="244">ASBR21</text> <text x="348" y="244">PE21</text> <text x="392" y="244">(EP5)</text> <text x="424" y="244">:</text> <text x="8" y="260">:</text> <text x="176" y="260">:</text> <text x="200" y="260">:</text> <text x="272" y="260">\</text> <text x="424" y="260">:</text> <text x="8" y="276">:</text> <text x="140" y="276">ASBR32</text> <text x="176" y="276">:</text> <text x="200" y="276">:</text> <text x="288" y="276">[P]</text> <text x="348" y="276">PE22</text> <text x="392" y="276">(EP6)</text> <text x="424" y="276">:</text> <text x="8" y="292">:</text> <text x="176" y="292">:</text> <text x="200" y="292">:</text> <text x="272" y="292">/</text> <text x="424" y="292">:</text> <text x="8" y="308">:</text> <text x="244" y="308">ASBR22</text> <text x="348" y="308">PE22</text> <text x="392" y="308">(EP7)</text> <text x="424" y="308">:</text> <text x="8" y="324">:</text> <text x="176" y="324">:</text> <text x="200" y="324">:</text> <text x="424" y="324">:</text> <text x="8" y="340">:</text> <text x="176" y="340">:</text> <text x="200" y="340">:</text> <text x="348" y="340">PE24</text> <text x="392" y="340">(EP8)</text> <text x="424" y="340">:</text> <text x="92" y="356">......................</text> <text x="312" y="356">.............................</text> <text x="168" y="372">Traffic</text> <text x="240" y="372">Direction</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ ...................... ............................. : AS3 : : AS1 : : : : : : +----------ASBR11 +--PE11 (EP1) : : | : : \ / : : +----ASBR31 : : [P]----PE12 (EP2) : : | | : : / | \ : : | +----------ASBR12 | +--PE13 (EP3) : : | : : | : : | : : +-----PE14 (EP4) : : PE31--[P] : : : : | : : : : | : : : : | +----------ASBR21 +--PE21 (EP5) : : | | : : \ / : : +----ASBR32 : : [P]----PE22 (EP6) : : | : : / | \ : : +----------ASBR22 | +--PE22 (EP7) : : : : | : : : : +-----PE24 (EP8) : ...................... ............................. ----------- Traffic Direction -------->]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>The following table provides a comparison of the BGP CT route and labelscale,scale for varyingendpoint pathendpoint-path visibility at ingress node PE31 for each TC. It analyzes scenarios where Unicast or Anycast EPs (EP-type) may be originated by different node roles (Origin), using different RD allocation modes(RD-Mode),(RD-Modes), and different Per-PrefixLabel allocationlabel-allocation modes(PP-Mode).</t>(PP-Modes).</t> <figuretitle="Routeanchor="RDLabelVis"> <name>Route and Path Visibility at IngressNode" anchor="RDLabelVis"><artset><artwork type="svg"><svgNode</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" width="432" viewBox="0 0 432 320" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 8,32 L 8,288" fill="none" stroke="black"/> <path d="M 80,32 L 80,288" fill="none" stroke="black"/> <path d="M 136,32 L 136,288" fill="none" stroke="black"/> <path d="M 200,32 L 200,288" fill="none" stroke="black"/> <path d="M 264,32 L 264,288" fill="none" stroke="black"/> <path d="M 344,32 L 344,288" fill="none" stroke="black"/> <path d="M 424,32 L 424,288" fill="none" stroke="black"/> <path d="M 8,32 L 424,32" fill="none" stroke="black"/> <path d="M 8,64 L 424,64" fill="none" stroke="black"/> <path d="M 16,144 L 72,144" fill="none" stroke="black"/> <path d="M 88,144 L 128,144" fill="none" stroke="black"/> <path d="M 144,144 L 192,144" fill="none" stroke="black"/> <path d="M 208,144 L 256,144" fill="none" stroke="black"/> <path d="M 272,144 L 336,144" fill="none" stroke="black"/> <path d="M 352,144 L 416,144" fill="none" stroke="black"/> <path d="M 8,288 L 424,288" fill="none" stroke="black"/> <g class="text"> <text x="40" y="52">EP-type</text> <text x="108" y="52">Origin</text> <text x="168" y="52">RD-Mode</text> <text x="232" y="52">PP-Mode</text> <text x="276" y="52">CT</text> <text x="316" y="52">Routes</text> <text x="356" y="52">CT</text> <text x="396" y="52">Labels</text> <text x="40" y="84">Unicast</text> <text x="92" y="84">SN</text> <text x="164" y="84">Unique</text> <text x="224" y="84">TC,EP</text> <text x="312" y="84">8</text> <text x="384" y="84">8</text> <text x="40" y="100">Unicast</text> <text x="92" y="100">SN</text> <text x="164" y="100">Unique</text> <text x="224" y="100">RD,EP</text> <text x="312" y="100">8</text> <text x="384" y="100">8</text> <text x="40" y="116">Unicast</text> <text x="92" y="116">BN</text> <text x="164" y="116">Unique</text> <text x="224" y="116">TC,EP</text> <text x="308" y="116">16</text> <text x="384" y="116">8</text> <text x="40" y="132">Unicast</text> <text x="92" y="132">BN</text> <text x="164" y="132">Unique</text> <text x="224" y="132">RD,EP</text> <text x="308" y="132">16</text> <text x="380" y="132">16</text> <text x="40" y="164">Anycast</text> <text x="92" y="164">SN</text> <text x="164" y="164">Unique</text> <text x="224" y="164">TC,EP</text> <text x="312" y="164">8</text> <text x="384" y="164">2</text> <text x="40" y="180">Anycast</text> <text x="92" y="180">SN</text> <text x="164" y="180">Unique</text> <text x="224" y="180">RD,EP</text> <text x="312" y="180">8</text> <text x="384" y="180">8</text> <text x="40" y="196">Anycast</text> <text x="92" y="196">SN</text> <text x="156" y="196">Same</text> <text x="224" y="196">TC,EP</text> <text x="312" y="196">2</text> <text x="384" y="196">2</text> <text x="40" y="212">Anycast</text> <text x="92" y="212">SN</text> <text x="156" y="212">Same</text> <text x="224" y="212">RD,EP</text> <text x="312" y="212">2</text> <text x="384" y="212">2</text> <text x="40" y="228">Anycast</text> <text x="92" y="228">BN</text> <text x="164" y="228">Unique</text> <text x="224" y="228">TC,EP</text> <text x="312" y="228">4</text> <text x="384" y="228">2</text> <text x="40" y="244">Anycast</text> <text x="92" y="244">BN</text> <text x="164" y="244">Unique</text> <text x="224" y="244">RD,EP</text> <text x="312" y="244">4</text> <text x="384" y="244">4</text> <text x="40" y="260">Anycast</text> <text x="92" y="260">BN</text> <text x="156" y="260">Same</text> <text x="224" y="260">TC,EP</text> <text x="312" y="260">2</text> <text x="384" y="260">2</text> <text x="40" y="276">Anycast</text> <text x="92" y="276">BN</text> <text x="156" y="276">Same</text> <text x="224" y="276">RD,EP</text> <text x="312" y="276">2</text> <text x="384" y="276">2</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ +--------+------+-------+-------+---------+---------+ |EP-type |Origin|RD-Mode|PP-Mode|CT Routes|CT Labels| +--------+------+-------+-------+---------+---------+ |Unicast |SN |Unique |TC,EP | 8 | 8 | |Unicast |SN |Unique |RD,EP | 8 | 8 | |Unicast |BN |Unique |TC,EP | 16 | 8 | |Unicast |BN |Unique |RD,EP | 16 | 16 | |--------|------|-------|-------|---------|---------| |Anycast |SN |Unique |TC,EP | 8 | 2 | |Anycast |SN |Unique |RD,EP | 8 | 8 | |Anycast |SN |Same |TC,EP | 2 | 2 | |Anycast |SN |Same |RD,EP | 2 | 2 | |Anycast |BN |Unique |TC,EP | 4 | 2 | |Anycast |BN |Unique |RD,EP | 4 | 4 | |Anycast |BN |Same |TC,EP | 2 | 2 | |Anycast |BN |Same |RD,EP | 2 | 2 | +--------+------+-------+-------+---------+---------+]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>Inthe table shown in<xreftarget="RDLabelVis"/>,target="RDLabelVis" format="default"/>, route scale at ingress node PE31 is proportional to path diversity in the ingress domain (number of ASBRs) and point of origination of the BGP CT route. TE granularity at ingress node PE31 is proportional to the number of unique CT labels received, which depends onPP-modethe PP-Mode and the path diversity in the ingress domain.</t> <t>Deploying unique RDs is stronglyRECOMMENDED<bcp14>RECOMMENDED</bcp14> because it helps in troubleshooting by uniquely identifying the originator of a route and avoidspath-hiding.</t>path hiding.</t> <t>In typicaldeploymentsdeployments, originating BGP CT routes at the egress node (SN) is recommended. In this model, using either an "RD, EP" or "TC, EP" Per-Prefixlabel allocationlabel-allocation mode repairs traffic locally at the nearest BN for any failures in thenetwork,network because the label value does not change.</t> <t>Originating at BNs with unique RDs induces more routes than when originating at egress SNs. In this model, use of the "TC, EP" Per-Prefixlabel allocationlabel-allocation mode repairs traffic locally at the nearest BN for any failures in thenetwork,network because the label value does not change.</t><t>The previous table in <xref target="RDLabelVis"/><t><xref target="RDLabelVis" format="default"/> demonstrates that BGP CT allows an operator to control how much path visibility and forwarding diversity is desired in thenetwork,network for both Unicast and Anycast endpoints.</t> </section> </section> <section anchor="CTdeploy"title="Deployment Considerations.">numbered="true" toc="default"> <name>Deployment Considerations</name> <sectiontitle="Coordinationnumbered="true" toc="default"> <name>Coordination Between Domains Using Different CommunityNamespaces">Namespaces</name> <t>Cooperating Inter-AS Option C domains may sometimes not agree on RT, RD, Mappingcommunitycommunity, or Transport Route Target values because of differences in community namespaces(e.g.(e.g., during network mergers or renumbering for expansion). Such deployments may deploy mechanisms to map and rewrite the Route Target values on domainboundaries,boundaries usingper ASBRper-ASBR import policies. This is no different than any other BGP VPN family. Mechanisms used in inter-AS VPN deployments may be leveraged with the Classful Transport family also.</t> <t>A resolution scheme allows association with multiple Mapping Communities. This minimizes service disruption during renumbering, networkmergermerger, or transition scenarios.</t> <t>The Transport Class Route TargetExtended Communityextended community is useful to avoid collision with regular Route Target namespace used by service routes.</t> </section> <sectiontitle="Managingnumbered="true" toc="default"> <name>Managing Intent at Service and Transportlayers.">Layers</name> <t><xreftarget="CTProc">Illustration of BGP CT Procedures </xref>target="CTProc" format="default"></xref> shows multiple domains that agree on a colorname spacenamespace (Agreeing Color Domains) and contain tunnels with an equivalent set of colors (Homogenous Color Domains).</t> <t>However, in the real world, this may not always be guaranteed. Two domains may independently manage their color namespaces; these are known as Non-Agreeing Color Domains. Two domains may have tunnels with unequal sets of colors; these are known as Heterogeneous Color Domains.</t> <t>This section describes how BGP CT is deployed in such scenarios to preserve end-to-end Intent. Examples described in this section use Inter-AS Option C domains. Similar mechanisms will work for Inter-AS Option A and Inter-AS Option B scenarios as well.</t> <sectiontitle="Service Layernumbered="true" toc="default"> <name>Service-Layer ColorManagement ">Management</name> <t>At the service layer, it is recommended that a global color namespace be maintained across multipleco-operatingcooperating domains. BGP CT allows indirection using resolution schemes to be able to maintain a global namespace in the service layer. This is possible even if each domain independently maintains its own local transport color namespace.</t> <t>As explained in <xreftarget="Nexthop_Resoln_Schm">Next Hop Resolution Scheme</xref> ,target="Nexthop_Resoln_Schm" format="default"></xref>, a mapping community carried on a service route maps to a resolution scheme. The mapping community values for the service route can be abstract and are not required to match the transport color namespace. This abstract mapping community value representing a globalservice layerservice-layer intent is mapped to a localtransport layertransport-layer intent available in each domain.</t> <t>In this manner, it is recommended to keep color namespace management at the service layer and the transport layer decoupled from each other. In the followingsectionssections, the service layer agrees on a single global namespace.</t> </section> <section anchor="non-agreeing"title="Non-Agreeingnumbered="true" toc="default"> <name>Non-Agreeing Color TransportDomains"> <t>Non-agreeing color domainsDomains</name> <t>Non-Agreeing Color Domains require a mapping community rewrite on each domain boundary. This rewrite helps to map one domain's color namespace to another domain's color namespace.</t> <t>The following example illustrates how traffic is stitched and SLA is preserved when domains don't use the same namespace at the transport layer. Each domain specifies the same SLA using different color values.</t> <figuretitle="Transportanchor="BGPCT_NON_AGREEING_COLOR_DOMAIN"> <name>Transport Layer withNon-agreeingNon-Agreeing ColorDomains" anchor="BGPCT_NON_AGREEING_COLOR_DOMAIN"><artset><artwork type="svg"><svgDomains</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="240" width="552" viewBox="0 0 552 240" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 72,96 L 96,96" fill="none" stroke="black"/> <path d="M 168,96 L 184,96" fill="none" stroke="black"/> <path d="M 248,96 L 288,96" fill="none" stroke="black"/> <path d="M 360,96 L 376,96" fill="none" stroke="black"/> <path d="M 440,96 L 488,96" fill="none" stroke="black"/> <path d="M 96,208 L 176,208" fill="none" stroke="black"/> <path d="M 336,208 L 400,208" fill="none" stroke="black"/> <polygon class="arrowhead" points="408,208 396,202.4 396,213.6" fill="black" transform="rotate(0,400,208)"/> <g class="text"> <text x="88" y="52">.....................</text> <text x="272" y="52">.......................</text> <text x="460" y="52">......................</text> <text x="8" y="68">:</text> <text x="96" y="68">Gold(100)</text> <text x="168" y="68">:</text> <text x="184" y="68">:</text> <text x="280" y="68">Gold(300)</text> <text x="360" y="68">:</text> <text x="376" y="68">:</text> <text x="472" y="68">Gold(500)</text> <text x="544" y="68">:</text> <text x="8" y="84">:</text> <text x="168" y="84">:</text> <text x="184" y="84">:</text> <text x="360" y="84">:</text> <text x="376" y="84">:</text> <text x="544" y="84">:</text> <text x="8" y="100">:</text> <text x="44" y="100">[PE11]</text> <text x="132" y="100">[ASBR11]</text> <text x="216" y="100">[ASBR21</text> <text x="324" y="100">[ASBR22]</text> <text x="408" y="100">[ASBR31</text> <text x="520" y="100">[PE31]:</text> <text x="8" y="116">:</text> <text x="168" y="116">:</text> <text x="184" y="116">:</text> <text x="360" y="116">:</text> <text x="376" y="116">:</text> <text x="544" y="116">:</text> <text x="8" y="132">:</text> <text x="88" y="132">AS1</text> <text x="168" y="132">:</text> <text x="184" y="132">:</text> <text x="280" y="132">AS2</text> <text x="360" y="132">:</text> <text x="376" y="132">:</text> <text x="464" y="132">AS3</text> <text x="544" y="132">:</text> <text x="8" y="148">:</text> <text x="168" y="148">:</text> <text x="184" y="148">:</text> <text x="360" y="148">:</text> <text x="376" y="148">:</text> <text x="544" y="148">:</text> <text x="8" y="164">:</text> <text x="104" y="164">Bronze(200)</text> <text x="168" y="164">:</text> <text x="184" y="164">:</text> <text x="272" y="164">Bronze(400)</text> <text x="360" y="164">:</text> <text x="376" y="164">:</text> <text x="464" y="164">Bronze(600)</text> <text x="544" y="164">:</text> <text x="88" y="180">.....................</text> <text x="272" y="180">.......................</text> <text x="460" y="180">......................</text> <text x="216" y="212">Traffic</text> <text x="288" y="212">Direction</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ ..................... ....................... ...................... : Gold(100) : : Gold(300) : : Gold(500) : : : : : : : : [PE11]----[ASBR11]---[ASBR21------[ASBR22]---[ASBR31-------[PE31]: : : : : : : : AS1 : : AS2 : : AS3 : : : : : : : : Bronze(200) : : Bronze(400) : : Bronze(600) : ..................... ....................... ...................... ----------- Traffic Direction -------->]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>In the topology shown in <xreftarget="BGPCT_NON_AGREEING_COLOR_DOMAIN"/>,target="BGPCT_NON_AGREEING_COLOR_DOMAIN" format="default"/>, we have three Autonomous Systems. All the nodes in the topology support BGP CT.</t><t>In AS1<ul spacing="normal"> <li>In AS1, the Gold SLA is represented by color 100 and Bronze by200.</t> <t>In AS2200.</li> <li>In AS2, the Gold SLA is represented by color 300 and Bronze by400.</t> <t>In AS3400.</li> <li>In AS3, the Gold SLA is represented by color 500 and Bronze by600.</t>600.</li> </ul> <t>Though the color values are different, they map to tunnels with sufficiently similar TE characteristics in each domain.</t> <t>The service route carries an abstract mapping community that maps to the required SLA. For example,Serviceservice routes that need to resolve over Gold transporttunnels,tunnels carry a mapping community color:0:100500. InAS3AS3, it maps to a resolution scheme containing a TRDB with color500 whereas500; inAS2AS2, it maps to a TRDB with color300300; and inAS1AS1, it maps to a TRDB with color 100. Coordination is needed to provision the resolution schemes in eachdomaindomain, as explained previously.</t> <t>At the AS boundary, the transport-class route-target is rewritten for the BGP CT routes. In the previous topology, at ASBR31, the transport-target:0:500 for Gold tunnels is rewritten to transport-target:0:300 and then advertised to ASBR22. Similarly, the transport-target:0:300 for Gold tunnels arere-writtenrewritten to transport-target:0:100 at ASBR21 before advertising to ASBR11. At PE11, the transport route received with transport-target:0:100 will be added to the color 100 TRDB. The service route received with mapping community color:0:100500 at PE1 maps to the Gold TRDB and resolves over this transport route.</t> <t>Inter-domain traffic forwarding in the previous topology works as explained in <xreftarget="CTProc"/>.</t>target="CTProc" format="default"/>.</t> <t>Transport-targetre-writerewrite requiresco-ordinationcoordination of color values between domains in the transport layer. This method avoids the need tore-writerewrite service route mapping communities, keeping the service layer homogenous and simple to manage. Coordinating Transport Class RT between two adjacent color domains at a time is easier than coordinatingservice layerservice-layer colors deployed in a global mesh of non-adjacent color domains. This basically allows localizing the problem to a pair of adjacent color domains and solving it.</t> </section> <sectiontitle="Heterogeneousnumbered="true" toc="default"> <name>Heterogeneous Agreeing Color TransportDomains">Domains</name> <t>In aheterogeneous domainsheterogeneous-domain scenario, it might not be possible to map aservice layerservice-layer intent to the matching transport color, as the color might not be locally available in a domain.</t> <t>The following example illustrates how traffic isstitched,stitched when a transit AS contains more shades for an SLA path compared to Ingress and Egress domains. This example shows how service routes can traverse through finer shades when available and take coarse shades otherwise.</t> <figuretitle="Transportanchor="BGPCT_HETERO_COLOR_DOMAIN"> <name>Transport Layer withHeterogenousHeterogeneous ColorDomains" anchor="BGPCT_HETERO_COLOR_DOMAIN"><artset><artwork type="svg"><svgDomains</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="256" width="552" viewBox="0 0 552 256" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 72,112 L 96,112" fill="none" stroke="black"/> <path d="M 168,112 L 184,112" fill="none" stroke="black"/> <path d="M 248,112 L 288,112" fill="none" stroke="black"/> <path d="M 360,112 L 376,112" fill="none" stroke="black"/> <path d="M 440,112 L 488,112" fill="none" stroke="black"/> <path d="M 120,224 L 200,224" fill="none" stroke="black"/> <path d="M 360,224 L 424,224" fill="none" stroke="black"/> <polygon class="arrowhead" points="432,224 420,218.4 420,229.6" fill="black" transform="rotate(0,424,224)"/> <g class="text"> <text x="88" y="52">.....................</text> <text x="272" y="52">.......................</text> <text x="460" y="52">......................</text> <text x="8" y="68">:</text> <text x="168" y="68">:</text> <text x="184" y="68">:</text> <text x="276" y="68">Gold1(101)</text> <text x="360" y="68">:</text> <text x="376" y="68">:</text> <text x="544" y="68">:</text> <text x="8" y="84">:</text> <text x="96" y="84">Gold(100)</text> <text x="168" y="84">:</text> <text x="184" y="84">:</text> <text x="276" y="84">Gold2(102)</text> <text x="360" y="84">:</text> <text x="376" y="84">:</text> <text x="464" y="84">Gold(100)</text> <text x="544" y="84">:</text> <text x="8" y="100">:</text> <text x="168" y="100">:</text> <text x="184" y="100">:</text> <text x="360" y="100">:</text> <text x="376" y="100">:</text> <text x="544" y="100">:</text> <text x="8" y="116">:</text> <text x="44" y="116">[PE11]</text> <text x="132" y="116">[ASBR11]</text> <text x="216" y="116">[ASBR21</text> <text x="324" y="116">[ASBR22]</text> <text x="408" y="116">[ASBR31</text> <text x="520" y="116">[PE31]:</text> <text x="8" y="132">:</text> <text x="168" y="132">:</text> <text x="184" y="132">:</text> <text x="360" y="132">:</text> <text x="376" y="132">:</text> <text x="544" y="132">:</text> <text x="8" y="148">:</text> <text x="56" y="148">Metro</text> <text x="112" y="148">Ingress</text> <text x="168" y="148">:</text> <text x="184" y="148">:</text> <text x="268" y="148">Core</text> <text x="360" y="148">:</text> <text x="376" y="148">:</text> <text x="432" y="148">Metro</text> <text x="484" y="148">Egress</text> <text x="544" y="148">:</text> <text x="8" y="164">:</text> <text x="168" y="164">:</text> <text x="184" y="164">:</text> <text x="360" y="164">:</text> <text x="376" y="164">:</text> <text x="544" y="164">:</text> <text x="8" y="180">:</text> <text x="88" y="180">AS1</text> <text x="168" y="180">:</text> <text x="184" y="180">:</text> <text x="280" y="180">AS2</text> <text x="360" y="180">:</text> <text x="376" y="180">:</text> <text x="464" y="180">AS3</text> <text x="544" y="180">:</text> <text x="88" y="196">.....................</text> <text x="272" y="196">.......................</text> <text x="460" y="196">......................</text> <text x="240" y="228">Traffic</text> <text x="312" y="228">Direction</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ ..................... ....................... ...................... : : : Gold1(101) : : : : Gold(100) : : Gold2(102) : : Gold(100) : : : : : : : : [PE11]----[ASBR11]---[ASBR21------[ASBR22]---[ASBR31-------[PE31]: : : : : : : : Metro Ingress : : Core : : Metro Egress : : : : : : : : AS1 : : AS2 : : AS3 : ..................... ....................... ...................... ----------- Traffic Direction -------->]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>Inthe preceding topology shown in<xreftarget="BGPCT_HETERO_COLOR_DOMAIN"/>,target="BGPCT_HETERO_COLOR_DOMAIN" format="default"/>, we have three Autonomous Systems. All the nodes in the topology support BGP CT.</t><t>In AS1<ul spacing="normal"> <li>In AS1, the Gold SLA is represented by color100.</t> <t>In AS2100.</li> <li>In AS2, Gold has finer shades: Gold1 by color 101 and Gold2 by color102.</t> <t>In AS3102.</li> <li>In AS3, the Gold SLA is represented by color100.</t>100.</li> </ul> <t>This problem can be solved by the twofollowing approaches:</t>approaches described in Sections <xref target="dup_tun_ap" format="counter"/> and <xref target="cust_res_scheme" format="counter"/>.</t> <sectiontitle="Duplicatenumbered="true" toc="default" anchor="dup_tun_ap"> <name>Duplicate TunnelsApproach">Approach</name> <t>In this approach, duplicate tunnels that satisfy the Gold SLA are configured in domains AS1 and AS3, but they are givenfine grainedfine-grained colors 101 and 102.</t> <t>These tunnels will be installed in TRDBs corresponding to transport classes ofcolorcolors 101 and 102.</t> <t>Overlay routes received with a mapping community(e.g.:(e.g., transport-target or color community) can resolve over these tunnels in the TRDB with matchingcolorcolors by using resolution schemes.</t> <t>This approach consumes more resources in the transport and forwardinglayer,layer because of the duplicate tunnels.</t> </section> <sectiontitle="Customizednumbered="true" toc="default" anchor="cust_res_scheme"> <name>Customized Resolution SchemesApproach">Approach</name> <t>In this approach, resolution schemes in domains AS1 and AS3 are customized to map the received mapping community (e.g., transport-target or color community) over available Gold SLA tunnels. This conserves resource usage with no additional state in the transport or forwarding planes.</t> <t>Service routes advertised by PE31 that need to resolve over Gold1 transport tunnels carry a mapping community color:0:101. In AS3 and AS1, where Gold1 is not available, it is mapped to color 100 TRDB using a customized resolution scheme. In AS2, Gold1 isavailableavailable, and it maps to color 101 TRDB.</t> <t>Similarly, service routes advertised by PE31 that need to resolve over Gold2 transport tunnels carry a mapping community color:0:102. In AS3 and AS1, where Gold2 is not available, it is mapped to color 100 TRDB using a customized resolution scheme. In AS2, Gold2 isavailableavailable, and it maps to color 102 TRDB.</t> <t>To facilitate this,SN/BNSNs/BNs in all threeASASes provision the transport classes 100,101101, and 102.SNSNs andBNBNs in AS1 and AS3 are provisioned with customized resolution schemes that resolve routes with transport-target:0:101 or transport-target:0:102 using color 100 TRDB.</t> <t>PE31 is provisioned to originate BGP CTrouteroutes with color 101 for endpoint PE31. This route is sent with an NLRI RD prefix RD1:PE31 androute targetRoute Target extended community transport-target:0:101.</t> <t>Similarly, PE31 is provisioned to originate BGP CTrouteroutes with color 102 for endpoint PE31. This route is sent with an NLRI RD prefix RD2:PE31 androute targetRoute Target extended community transport-target:0:102.</t><t>Following<t>The following description explains the remaining procedures with color 101 as an example.</t> <t>At ASBR31, the route target "transport-target:0:101" on this BGP CT routeinstructsgives instruction to add the route to color 101 TRDB. ASBR31 is provisioned with a customized resolution scheme that resolves the routes carrying mapping community transport-target:0:101 to resolve using color 100 TRDB. This route is thenre-advertisedreadvertised from color 101 TRDB to ASBR22 with route-target:0:101.</t> <t>At ASBR22, the BGP CT routes received with transport-target:0:101 will be added to color 101 TRDB and strictly resolve over tunnel routes in the same TRDB. This route isre-advertisedreadvertised to ASBR21 with transport-target:0:101.</t> <t>Similarly, at ASBR21, the BGP CT routes received with transport-target:0:101 will be added to color 101 TRDB and strictly resolve over tunnel routes in the same TRDB. This route isre-advertisedreadvertised to ASBR11 with transport-target:0:101.</t> <t>At ASBR11, the route target "transport-target:0:101" on this BGP CT routeinstructsgives instruction to add the route to color 101 TRDB. ASBR11 is provisioned with a customized resolution scheme that resolves the routes carrying transport-target:0:101 to use color 100 TRDB. This route is thenre-advertisedreadvertised from color 101 TRDB to PE11 with transport-target:0:101.</t> <t>At PE11, the route target "transport-target:0:101" on this BGP CT routeinstructsgives instruction to add the route to color 101 TRDB. PE11 is provisioned with a customized resolution scheme that resolves the routes carrying transport-target:0:101 to use color 100 TRDB.</t> <t>When PE11 receives the service route with the mapping communitycolor:0:101color:0:101, it directly resolves over the BGP CT route in color 101 TRDB,whichwhich, inturnturn, resolves over tunnel routes in color 100 TRDB.</t> <t>Similar processing is done for color 102 routes also at ASBR31, ASBR22, ASBR21,ASBR11ASBR11, and PE11.</t> <t>In doing so, PE11 can forward traffic via tunnels with color 101, color 102 in the coredomain,domain and color 100 in the metro domains.</t> </section> </section> </section> <sectiontitle="Migration Scenarios.">numbered="true" toc="default"> <name>Migration Scenarios</name> <sectiontitle="BGPnumbered="true" toc="default"> <name>BGP CT Islands Connected via BGP LUDomain">Domain</name> <t>This section explains how an end-to-end SLA can be achieved while transiting a domain that does not support BGP CT. BGP LU is used in such domains to connect the BGP CT islands.</t> <figuretitle="BGPanchor="BGPCTIsles"> <name>BGP CT in AS1 and AS3connectedConnected by BGP LU inAS2" anchor="BGPCTIsles"><artset><artwork type="svg"><svgAS2</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="520" viewBox="0 0 520 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 104,32 L 104,64" fill="none" stroke="black"/> <path d="M 424,32 L 424,64" fill="none" stroke="black"/> <path d="M 104,32 L 184,32" fill="none" stroke="black"/> <path d="M 320,32 L 424,32" fill="none" stroke="black"/> <path d="M 48,80 L 80,80" fill="none" stroke="black"/> <path d="M 144,80 L 200,80" fill="none" stroke="black"/> <path d="M 264,80 L 280,80" fill="none" stroke="black"/> <path d="M 344,80 L 392,80" fill="none" stroke="black"/> <path d="M 456,80 L 472,80" fill="none" stroke="black"/> <path d="M 128,112 L 144,112" fill="none" stroke="black"/> <path d="M 208,112 L 224,112" fill="none" stroke="black"/> <path d="M 328,112 L 344,112" fill="none" stroke="black"/> <path d="M 408,112 L 424,112" fill="none" stroke="black"/> <path d="M 24,128 L 40,128" fill="none" stroke="black"/> <path d="M 104,128 L 120,128" fill="none" stroke="black"/> <path d="M 224,128 L 240,128" fill="none" stroke="black"/> <path d="M 304,128 L 320,128" fill="none" stroke="black"/> <path d="M 400,128 L 416,128" fill="none" stroke="black"/> <path d="M 480,128 L 496,128" fill="none" stroke="black"/> <path d="M 120,160 L 184,160" fill="none" stroke="black"/> <path d="M 328,160 L 400,160" fill="none" stroke="black"/> <polygon class="arrowhead" points="504,128 492,122.4 492,133.6" fill="black" transform="rotate(0,496,128)"/> <polygon class="arrowhead" points="432,112 420,106.4 420,117.6" fill="black" transform="rotate(0,424,112)"/> <polygon class="arrowhead" points="408,160 396,154.4 396,165.6" fill="black" transform="rotate(0,400,160)"/> <polygon class="arrowhead" points="408,128 396,122.4 396,133.6" fill="black" transform="rotate(180,400,128)"/> <polygon class="arrowhead" points="336,112 324,106.4 324,117.6" fill="black" transform="rotate(180,328,112)"/> <polygon class="arrowhead" points="328,128 316,122.4 316,133.6" fill="black" transform="rotate(0,320,128)"/> <polygon class="arrowhead" points="232,128 220,122.4 220,133.6" fill="black" transform="rotate(180,224,128)"/> <polygon class="arrowhead" points="232,112 220,106.4 220,117.6" fill="black" transform="rotate(0,224,112)"/> <polygon class="arrowhead" points="136,112 124,106.4 124,117.6" fill="black" transform="rotate(180,128,112)"/> <polygon class="arrowhead" points="128,128 116,122.4 116,133.6" fill="black" transform="rotate(0,120,128)"/> <polygon class="arrowhead" points="32,128 20,122.4 20,133.6" fill="black" transform="rotate(180,24,128)"/> <g class="text"> <text x="204" y="36">EBGP</text> <text x="260" y="36">Multihop</text> <text x="308" y="36">CT</text> <text x="64" y="68">AS3</text> <text x="272" y="68">AS2</text> <text x="464" y="68">AS1</text> <text x="24" y="84">[PE31</text> <text x="112" y="84">ASBR31]</text> <text x="232" y="84">[ASBR22</text> <text x="312" y="84">ASBR21]</text> <text x="424" y="84">[ASBR11</text> <text x="496" y="84">PE11]</text> <text x="164" y="116">EBGP</text> <text x="196" y="116">LU</text> <text x="364" y="116">EBGP</text> <text x="396" y="116">LU</text> <text x="60" y="132">IBGP</text> <text x="92" y="132">CT</text> <text x="260" y="132">IBGP</text> <text x="292" y="132">LU</text> <text x="436" y="132">IBGP</text> <text x="468" y="132">CT</text> <text x="216" y="164">Traffic</text> <text x="288" y="164">Direction</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ +----------EBGP Multihop CT-------------+ | | AS3 | AS2 | AS1 [PE31-----ASBR31]--------[ASBR22---ASBR21]-------[ASBR11---PE11] <--EBGP LU--> <--EBGP LU--> <--IBGP CT--> <--IBGP LU--> <--IBGP CT--> ---------Traffic Direction--------->]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>In the preceding topology shown in <xreftarget="BGPCTIsles"/>,target="BGPCTIsles" format="default"/>, there are three ASdomains.domains: AS1 and AS3 support BGP CT, while AS2 does not support BGP CT.</t> <t>Nodes in AS1, AS2, and AS3 negotiate BGP LU family on IBGP sessions within the domain. Nodes in AS1 and AS3 negotiate BGP CT family on IBGP sessions within the domain. ASBR11 and ASBR21 as well as ASBR22 and ASBR31 negotiate BGP LU family on the EBGP session over directly connected inter-domain links. ASBR11 and ASBR31 have reachability to eachother’sother's loopbacks through BGP LU. ASBR11 and ASBR31 negotiate BGP CT family over a multihop EBGP session formed using BGP LU reachability.</t> <t>The following tunnels exist for the Gold TransportClass<list>Class</t> <ul spacing="normal"> <li> <t>PE11_to_ASBR11_gold - RSVP-TE tunnel</t> </li> <li> <t>ASBR11_to_PE11_gold - RSVP-TE tunnel</t> </li> <li> <t>PE31_to_ASBR31_gold - SRTE tunnel</t> </li> <li> <t>ASBR31_to_PE31_gold - SRTE tunnel</t></list></t></li> </ul> <t>The following tunnels exist for the Bronze TransportClass<list>Class</t> <ul spacing="normal"> <li> <t>PE11_to_ASBR11_bronze - RSVP-TE tunnel</t> </li> <li> <t>ASBR11_to_PE11_bronze - RSVP-TE tunnel</t> </li> <li> <t>PE31_to_ASBR31_bronze - SRTE tunnel</t> </li> <li> <t>ASBR31_to_PE31_bronze - SRTE tunnel</t></list></t></li> </ul> <t>These tunnels are provisioned to belong to Transport Classes Gold and Bronze, and they are advertised between ASBR31 and ASBR11 withNextthe next hopself.</t>set to themselves.</t> <t>In AS2,thatwhich does not support BGP CT, a separate loopback may be used on ASBR22 and ASBR21 to represent Gold and Bronze SLAs,viz.namely ASBR22_lpbk_gold, ASBR22_lpbk_bronze,ASBR21_lpbk_goldASBR21_lpbk_gold, and ASBR21_lpbk_bronze.</t> <t>Furthermore, the following tunnels exist in AS2 to satisfy the differentSLAs,SLAs usingper SLA loopback endpoints:<list>per-SLA-loopback endpoints:</t> <ul spacing="normal"> <li> <t>ASBR21_to_ASBR22_lpbk_gold - RSVP-TE tunnel</t> </li> <li> <t>ASBR22_to_ASBR21_lpbk_gold - RSVP-TE tunnel</t> </li> <li> <t>ASBR21_to_ASBR22_lpbk_bronze - RSVP-TE tunnel</t> </li> <li> <t>ASBR22_to_ASBR21_lpbk_bronze - RSVP-TE tunnel</t></list></t> <t>RD:PE11</li> </ul> <t>The RD:PE11 BGP CT route is originated from PE11 towards ASBR11 with transport-target 'gold.' ASBR11 readvertises this route with the next hop set to ASBR11_lpbk_gold on the EBGP multihop session towards ASBR31. ASBR11 originates a BGP LU route for endpoint ASBR11_lpbk_gold on an EBGP session to ASBR21 with a 'gold SLA'community,community and a BGP LU route for ASBR11_lpbk_bronze with a 'bronze SLA' community. The SLA community is used by ASBR31 to publish the BGP LU routes in the corresponding BGP CT TRDBs.</t> <t>ASBR21 readvertises the BGP LU route for endpoint ASBR11_lpbk_gold to ASBR22 with the next hop set by local policy config to the unique loopback ASBR21_lpbk_gold by matching the 'gold SLA' community received as part of BGP LU advertisement from ASBR11. ASBR22 receives this route and resolves the next hop over the ASBR22_to_ASBR21_lpbk_gold RSVP-TE tunnel. On successful resolution, ASBR22 readvertises this BGP LU route to ASBR31 with the next hopselfset to itself and a new label.</t> <t>ASBR31 adds the ASBR11_lpbk_gold route received via EBGP LU from ASBR22 to a 'gold' TRDB based on the received 'gold SLA' community. ASBR31 uses this 'gold' TRDB route to resolve the next hop ASBR11_lpbk_gold received on the BGP CT route with transport-target 'gold,' for the prefix RD:PE11 received over the EBGP multihop CT session, thus preserving the end-to-end SLA. Now ASBR31 readvertises the BGP CT route for RD:PE11 with the next hopas selfset to itself, thus stitching with the BGP LU LSP in AS2. Intra-domain traffic forwarding in AS1 and AS3 follows the procedures as explained in <xreftarget="CTProc">Illustration of CT Procedures</xref></t>target="CTProc" format="default"></xref>.</t> <t>In cases where an SLA cannot be preserved in AS2 becauseSLA specificSLA-specific tunnels and loopbacks don't exist in AS2, traffic can be carried over available SLAs(e.g.: best effort(e.g., best-effort SLA) by rewriting the next hop to an ASBR21 loopback assigned to the available SLA. This eases migration in case of a heterogeneous colordomains as-well.</t>domain as well.</t> </section> <sectiontitle="BGP CT -numbered="true" toc="default"> <name>BGP CT: InteroperabilitybetweenBetween MPLS and Other ForwardingTechnologies ">Technologies</name> <t>This section describes how nodes supporting dissimilar encapsulation technologies can interoperatewith each otherwhen using the BGP CT family.</t> <sectiontitle="Interopnumbered="true" toc="default"> <name>Interoperation Between MPLS and SRv6Nodes.">Nodes</name> <t>BGP speakers may carry MPLSlabellabels and SRv6SIDSIDs in BGP CT SAFI 76 forAFIsAFI 1 or 2 routes using protocol encoding as described in <xreftarget="CTMultiEncap">Carrying Multiple Encapsulation information</xref></t>target="CTMultiEncap" format="default"></xref>.</t> <t>MPLS Labels are carried usingRFC 8277 encoding,the encoding described in <xref target="RFC8277"/>, and SRv6SID isSIDs are carried using the Prefix SID attribute as specified in <xreftarget="SRv6-Support"/>.</t>target="SRv6-Support" format="default"/>.</t> <figuretitle="BGPanchor="BGPCT_MPLS_SRV6"> <name>BGP CTInterop betweenInteroperation Between MPLS and SRv6nodes" anchor="BGPCT_MPLS_SRV6"><artset><artwork type="svg"><svgNodes</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="336" viewBox="0 0 336 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 136,48 L 136,64" fill="none" stroke="black"/> <path d="M 136,96 L 136,112" fill="none" stroke="black"/> <path d="M 80,32 L 104,32" fill="none" stroke="black"/> <path d="M 136,48 L 192,48" fill="none" stroke="black"/> <path d="M 72,80 L 128,80" fill="none" stroke="black"/> <path d="M 144,80 L 192,80" fill="none" stroke="black"/> <path d="M 136,112 L 192,112" fill="none" stroke="black"/> <path d="M 24,144 L 56,144" fill="none" stroke="black"/> <path d="M 248,144 L 288,144" fill="none" stroke="black"/> <path d="M 104,32 L 124,72" fill="none" stroke="black"/> <polygon class="arrowhead" points="296,144 284,138.4 284,149.6" fill="black" transform="rotate(0,288,144)"/> <polygon class="arrowhead" points="32,144 20,138.4 20,149.6" fill="black" transform="rotate(180,24,144)"/> <g class="text"> <text x="64" y="36">RR1</text> <text x="204" y="52">R2</text> <text x="248" y="52">[MPLS</text> <text x="280" y="52">+</text> <text x="312" y="52">SRv6]</text> <text x="60" y="84">R1</text> <text x="136" y="84">P</text> <text x="204" y="84">R3</text> <text x="248" y="84">[MPLS</text> <text x="296" y="84">only]</text> <text x="24" y="100">[MPLS</text> <text x="56" y="100">+</text> <text x="88" y="100">SRv6]</text> <text x="204" y="116">R4</text> <text x="248" y="116">[SRv6</text> <text x="296" y="116">only]</text> <text x="120" y="148">Bidirectional</text> <text x="208" y="148">Traffic</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ RR1---+ \ +-------R2 [MPLS + SRv6] \ | R1--------P-------R3 [MPLS only] [MPLS + SRv6] | +-------R4 [SRv6 only] <---- Bidirectional Traffic ----->]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>This example shows a provider network with a mix of deviceswiththat have different forwarding capabilities. R1 and R2 support forwarding both MPLS and SRv6 packets. R3 supports forwarding MPLS packets only. R4 supports forwarding SRv6 packets only. All these nodes have a BGP session with Route ReflectorRR1RR1, which reflects routes between these nodes with the next hop unchanged. The BGP CT family is negotiated on these sessions.</t> <t>R1 and R2 send and receive both MPLSlabellabels and SRv6SIDSIDs in the BGP CT control plane routes. This allows them to be ingress and egress for both MPLS and SRv6 data planes. The MPLS label is carried usingRFC 8277 encoding,the encoding described in <xref target="RFC8277"/>, and an SRv6 SID is carried using the Prefix SID attribute as specified in <xreftarget="SRv6-Support"/>,target="SRv6-Support" format="default"/> without the Transposition Scheme. In this way, either MPLS or SRv6 forwarding can be used between R1 and R2.</t> <t>R1 and R3 send and receive an MPLS label in the BGP CT control plane routes usingRFC 8277 encoding.the encoding described in <xref target="RFC8277"/>. This allows them to be ingress and egress for MPLS data plane. R1 will carry an SRv6 SID inPrefix-SIDthe Prefix SID attribute, which will not be used by R3. In order to interoperate withMPLS onlyMPLS-only device R3, R1MUST NOT<bcp14>MUST NOT</bcp14> use the SRv6 Transposition scheme described in <xreftarget="RFC9252"/>.target="RFC9252" format="default"/>. The encoding suggested in <xreftarget="SRv6-Support"/>target="SRv6-Support" format="default"/> is used by R1. MPLS forwarding will be used between R1 and R3.</t> <t>R1 and R4 send and receive SRv6SIDSIDs in the BGP CT control plane routes using the BGPPrefix-SIDPrefix SID attribute, without a Transposition Scheme. This allows them to be ingress and egress for the SRv6 data plane. R4 will carry the special MPLSLabellabel with a value of 3 (Implicit-NULL) inRFC 8277 encoding,the encoding described in <xref target="RFC8277"/>, which tells R1 not to push any MPLS label for this BGP CT route towards R4. The MPLSLabellabel advertised by R1 inRFC 8277an NLRI as described in <xref target="RFC8277"/> will not be used by R4. SRv6 forwarding will be used between R1 and R4.</t> <t>Note that, in thisexample thatexample, R3 and R4 cannot communicate directly with eachother,other because they don't support a common forwarding technology. The BGP CT routes received atR3,R3 and R4 from each other will remainunusable,unusable due to incompatible forwarding technology.</t> </section> <sectiontitle="Interopnumbered="true" toc="default"> <name>Interop Between Nodes Supporting MPLS and UDPTunneling">Tunneling</name> <t>This section describes how nodes supporting MPLS forwarding can interoperate with other nodes supporting UDP (or IP)tunneling,tunneling when using BGP CT family.</t> <t>MPLS Labels are carried usingRFC 8277 encoding,the encoding described in <xref target="RFC8277"/>, and UDP (or IP) tunneling information is carried using the TEA attribute or the Encapsulation Extended Community as specified in <xreftarget="RFC9012"/>.</t>target="RFC9012" format="default"/>.</t> <figuretitle="BGPanchor="BGPCT_MPLS_UDP"> <name>BGP CT InteropbetweenBetween MPLS and UDPtunneling nodes" anchor="BGPCT_MPLS_UDP"><artset><artwork type="svg"><svgTunneling Nodes</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="176" width="328" viewBox="0 0 328 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 136,48 L 136,64" fill="none" stroke="black"/> <path d="M 136,96 L 136,112" fill="none" stroke="black"/> <path d="M 80,32 L 104,32" fill="none" stroke="black"/> <path d="M 136,48 L 192,48" fill="none" stroke="black"/> <path d="M 72,80 L 128,80" fill="none" stroke="black"/> <path d="M 144,80 L 192,80" fill="none" stroke="black"/> <path d="M 136,112 L 192,112" fill="none" stroke="black"/> <path d="M 24,144 L 56,144" fill="none" stroke="black"/> <path d="M 248,144 L 288,144" fill="none" stroke="black"/> <path d="M 104,32 L 124,72" fill="none" stroke="black"/> <polygon class="arrowhead" points="296,144 284,138.4 284,149.6" fill="black" transform="rotate(0,288,144)"/> <polygon class="arrowhead" points="32,144 20,138.4 20,149.6" fill="black" transform="rotate(180,24,144)"/> <g class="text"> <text x="64" y="36">RR1</text> <text x="204" y="52">R2</text> <text x="248" y="52">[MPLS</text> <text x="280" y="52">+</text> <text x="308" y="52">UDP]</text> <text x="60" y="84">R1</text> <text x="136" y="84">P</text> <text x="204" y="84">R3</text> <text x="248" y="84">[MPLS</text> <text x="296" y="84">only]</text> <text x="24" y="100">[MPLS</text> <text x="56" y="100">+</text> <text x="84" y="100">UDP]</text> <text x="204" y="116">R4</text> <text x="244" y="116">[UDP</text> <text x="288" y="116">only]</text> <text x="120" y="148">Bidirectional</text> <text x="208" y="148">Traffic</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ RR1---+ \ +-------R2 [MPLS + UDP] \ | R1--------P-------R3 [MPLS only] [MPLS + UDP] | +-------R4 [UDP only] <---- Bidirectional Traffic ----->]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>In this example, R1 and R2 support forwarding both MPLS and UDP tunneled packets. R3 supports forwarding MPLS packets only. R4 supports forwarding UDP tunneled packets only. All these nodes have BGP session with Route ReflectorRR1RR1, which reflects routes between these nodes with the next hop unchanged. The BGP CT family is negotiated on these sessions.</t> <t>R1 and R2 send and receive both MPLSlabellabels and UDP tunneling info in the BGP CT control plane routes. This allows them to be ingress and egress for both MPLS and UDP tunneling data planes. The MPLS label is carried usingRFC 8277 encoding.the encoding described in <xref target="RFC8277"/>. As specified in <xreftarget="RFC9012"/>,target="RFC9012" format="default"/>, UDP tunneling information is carried usingTEA attributethe Tunnel Encapsulation Attribute (code 23) or the "barebones" Tunnel TLV carried in Encapsulation Extended Community. Either MPLS or UDPtunneledtunnel forwarding can be used between R1 and R2.</t> <t>R1 and R3 send and receive MPLSlabellabels in the BGP CT control plane routes usingRFC 8277 encoding.the encoding described in <xref target="RFC8277"/>. This allows them to be ingress and egress for MPLS data plane. R1 will carry UDP tunneling info inTEA attribute,the TEA, which will not be used by R3. MPLS forwarding will be used between R1 and R3.</t> <t>R1 and R4 send and receive UDP tunneling info in the BGP CT control plane routes using the BGPTEA attribute.TEA. This allows them to be ingress and egress for UDP tunneled data plane. R4 will carry special MPLS Label with value 3 (Implicit-NULL) inRFC 8277 encoding,the encoding described in <xref target="RFC8277"/>, which tells R1 not to push any MPLS label for this BGP CT route towards R4. The MPLS Label advertised by R1 will not be used by R4. UDP tunneled forwarding will be used between R1 and R4.</t> <t>Note that, in thisexample thatexample, R3 and R4 cannot communicate directly with eachother,other because they don't support a common forwarding technology. The BGP CT routes received atR3,R3 and R4 from each other will remainunusable,unusable due to incompatible forwarding technology.</t> </section> </section> </section> <sectiontitle="MTU Considerations">numbered="true" toc="default"> <name>MTU Considerations</name> <t>Operators should coordinate the MTU of the intra-domain tunnels used to prevent Path MTU discovery problems that could appear in deployments. The encapsulation overhead due to the MPLS label stack or equivalent tunnel header in different forwarding architecture should also be considered when determining the Path MTU of the end-to-end BGP CT tunnel.</t><t>The document <xref target="INTAREA-TUNNELS"/><t><xref target="I-D.ietf-intarea-tunnels" format="default"/> discusses these considerations in more detail.</t> </section> <sectiontitle="Usenumbered="true" toc="default"> <name>Use ofDSCP">DSCP</name> <t>BGP CT specifies procedures forIntent DrivenIntent-Driven Service Mapping in a service providernetwork,network and defines the 'Transport Class' construct to represent an Intent.</t> <t>It may be desirable to allow a CE device to indicate in the data packet it sends what treatment it desires (the Intent) when the packet is forwarded within the provider network.</t> <t>Such an indication can be in the form of a DSCPcode point(see <xreftarget="RFC2474"/>target="RFC2474" format="default"/>) in the IP header.</t> <t>InRFC2474,<xref target="RFC2474"/>, a Forwarding Class Selector maps to a PHB (Per-hop Behavior). The Transport Class construct is a PHB at the transport layer.</t> <figuretitle="Exampleanchor="Intent_PE_CE"> <name>Example Topology with DSCP on PE-CELinks" anchor="Intent_PE_CE"><artset><artwork type="svg"><svgLinks</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="128" width="432" viewBox="0 0 432 128" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 152,32 L 176,32" fill="none" stroke="black"/> <path d="M 216,32 L 256,32" fill="none" stroke="black"/> <path d="M 96,48 L 128,48" fill="none" stroke="black"/> <path d="M 176,48 L 192,48" fill="none" stroke="black"/> <path d="M 224,48 L 248,48" fill="none" stroke="black"/> <path d="M 296,48 L 328,48" fill="none" stroke="black"/> <path d="M 152,64 L 168,64" fill="none" stroke="black"/> <path d="M 224,64 L 256,64" fill="none" stroke="black"/> <path d="M 96,96 L 128,96" fill="none" stroke="black"/> <path d="M 272,96 L 304,96" fill="none" stroke="black"/> <polygon class="arrowhead" points="312,96 300,90.4 300,101.6" fill="black" transform="rotate(0,304,96)"/> <polygon class="arrowhead" points="264,64 252,58.4 252,69.6" fill="black" transform="rotate(0,256,64)"/> <polygon class="arrowhead" points="264,32 252,26.4 252,37.6" fill="black" transform="rotate(0,256,32)"/> <g class="text"> <text x="196" y="36">Gold</text> <text x="72" y="52">[CE1]</text> <text x="152" y="52">[PE1]</text> <text x="208" y="52">[P]</text> <text x="272" y="52">[PE2]</text> <text x="352" y="52">[CE2]</text> <text x="196" y="68">Bronze</text> <text x="52" y="84">203.0.113.11</text> <text x="380" y="84">203.0.113.22</text> <text x="160" y="100">Traffic</text> <text x="232" y="100">direction</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ ----Gold-----> [CE1]-----[PE1]---[P]----[PE2]-----[CE2] ---Bronze----> 203.0.113.11 203.0.113.22 -----Traffic direction---->]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>Let PE1 be configured to map DSCP1 to the Gold Transportclass,class and DSCP2 to the Bronze Transport class. Based on the DSCPcode pointreceived on the IP traffic from the CE device, PE1 forwards the IP packet over a Gold or Bronze TC tunnel. Thus, the forwarding is not based on just the destination IPaddress,address but also theDSCP code point.DSCP. This is known asClass BasedClass-Based Forwarding (CBF).</t> <t>CBF is configured at the PE1 device, mapping the DSCP values to respective Transport Classes. This mapping (DSCP peering agreement) is communicated to CEdevicedevices byout of bandout-of-band mechanisms. This allows the administrator of CE1 to discover what transport classes exist in the providernetwork,network and which DSCPcodepointto encode so that traffic is forwarded using the desired Transport Class in the provided network. When the IP packet exits the provider network to CE2, PE2 resets the DSCPcode pointbased on the DSCP peering agreement with CE2.</t> </section> </section> <sectiontitle="Applicabilitynumbered="true" toc="default"> <name>Applicability to NetworkSlicing">Slicing</name> <t>In Network Slicing, the IETF Network Slice Controller(IETF NSC)(NSC) is responsible for customizing and setting up the underlying transport(e.g.(e.g., RSVP-TE, SRTE tunnels with desired characteristics) and resources (e.g.,polices/shapers)policies/shapers) in a transport network to create an IETF Network Slice.</t> <t>The Transport Class construct described in this document can be used to realize the "IETF Network Slice" described inSection 4 of<xreftarget="RFC9543"/></t>target="RFC9543" sectionFormat="of" section="4"/>.</t> <t>The NSC can use the Transport Class Identifier (Color value) to provision a transport tunnel in a specific IETF Network Slice.</t> <t>Furthermore, the NSC can use the Mapping Community on the service route to map traffic to the desired IETF Network Slice.</t> </section> <section anchor="IANA"title="IANA Considerations"> <t>Thisnumbered="true" toc="default"> <!--[rfced] We had the following questions related to the IANA Considerations section: a) We would like to make sure we understand the structure of the IANA Considerations section. Currently, we see: 13.1 and 13.2 - seem to add values to existing registries with some duplication to later sections (see question c below) 13.2.1-13.2.1.1.2 - all under a heading of "Existing Registries" 13.2.2 - 13.2.2 All under a heading of "New Registries" 13.3 - Adds two code points to an existing registry Perhaps we could update to something structured along the lines of updates to existing registries and creation of new ones? 13. IANA Considerations 13.1. Existing Registries 13.1.1. New BGP SAFI 13.1.2. New Format for BGP Extended Community 13.1.3. Registries for the "Type" Field 13.1.3.1. Transitive Types 13.1.3.2. Non-Transitive Types 13.1.4. MPLS OAM Code Points 13.2. New Registries 13.2.1. Transitive Transport Class Extended Community Sub-Types Registry 13.2.2. Non-Transitive Transport Class Extended Community Sub-Types Registry With something like the following text in Section 13 itself to introduce the actions: This documentmakesregisters values in existing registries and creates new registries as described in the followingrequestssubsections. NOTE: Please review our question c) below before responding. Please let us know if this restructuring would be agreeable. b) Please note that we have updated the capitalization (to lowercase) of the values in Tables 4 and 6 to match the use in the corresponding IANA registries. Please review and let us know any objections. c) Section 13.2 made us expect that 0xa would be registered in both the "BGP Transitive Extended Community Types" registry and the "BGP Non-Transitive Extended Community Types" registry. However, we do not see a registration of 0xa in the "BGP Non-Transitive Extended Community Types" registry at https://www.iana.org/assignments/bgp-extended-communities/bgp-extended-communities.xhtml#non-transitive. We do see an entry for "0x4a" for "Non-Transitive Transport Class", that is mentioned in the current Section 13.2.1.1.2. Please review this section for accuracy and redundancy with Sections 13.2.1.1.1 and 13.2.1.1.2 and let us know if/how we may update (or if we are just missing something on our end?). d) Section 13.2 says: Taking reference of [RFC7153] , the following assignments have been made: As none ofIANA.</t>the new entries in the registries list RFC 7153 as a reference themselves, should this text instead read: The registries below each reference RFC 7153. Or is there another way to rephrase? e) FYI - Any updates made to text that appears in IANA registries will be communicated by the RPC to IANA upon the completion of AUTH48. --> <name>IANA Considerations</name> <sectiontitle="Newnumbered="true" toc="default"> <name>New BGPSAFI">SAFI</name> <t>IANA has assignedaBGP SAFI code 76 for"Classful Transport". Value 76. IANA is requested to updatethereference to this document.</t> <figure> <artwork> Registry Group: Subsequent"Classful Transport SAFI".</t> <dl spacing="normal" newline="false"> <dt>Registry Group:</dt><dd>Subsequent Address Family Identifiers (SAFI)Parameters Registry Name: SAFI Values Value Description -------------+-------------------------- 76 Classful Transport SAFI </artwork> </figure>Parameters</dd> <dt>Registry Name:</dt><dd><t>SAFI Values</t> <table> <thead> <tr><th>Value</th><th>Description</th><th>Reference</th></tr> </thead> <tbody> <tr><td>76</td><td>Classful Transport SAFI</td><td>RFC 9832</td></tr> </tbody> </table> </dd> </dl> <t>This will be used to create newAFI,SAFIAFI/SAFI pairs forIPv4,IPv4 and IPv6 Classful Transportfamilies. viz:</t> <t><list style="symbols">families, namely:</t> <ul spacing="normal"> <li> <t>"IPv4, ClassfulTransport".Transport" AFI/SAFI = "1/76" for carrying IPv4 Classful Transport prefixes.</t> </li> <li> <t>"IPv6, ClassfulTransport".Transport" AFI/SAFI = "2/76" for carrying IPv6 Classful Transport prefixes.</t></list></t></li> </ul> </section> <sectiontitle="Newnumbered="true" toc="default"> <name>New Format for BGP ExtendedCommunity">Community</name> <t>IANA has assigned a Format type (Type high = 0xa) of Extended Community <xreftarget="RFC4360">EXT-COMM</xref>target="RFC4360" format="default"></xref> for the Transport Class from the followingregistries:<list>registries in the "Border Gateway Protocol (BGP) Extended Communities" registry group:</t> <ul spacing="normal"> <li> <t>the "BGP Transitive Extended Community Types"registry,registry and</t> </li> <li> <t>the "BGP Non-Transitive Extended Community Types" registry.</t></list></t></li> </ul> <t>The same low-order six bits have been assigned for both allocations.</t><t>IANA is requested to update the reference to this document.</t><t>This document uses this new Format with subtype 0x2 (route target), as a transitive extended community. The Route Target thus formed is called "Transport Class"route targetRoute Target extended community.</t> <t>The Non-Transitive Transport ClassExtendedextended community with subtype 0x2 (route target) is called the "Non-Transitive Transport Classroute targetRoute Target extended community".</t> <t>Taking a reference of <xreftarget="RFC7153"/> ,target="RFC7153" format="default"/>, thefollowingassignments in the following subsections have beenmade:</t>made.</t> <sectiontitle="Existing Registries">numbered="true" toc="default"> <name>Existing Registries</name> <sectiontitle="Registriesnumbered="true" toc="default"> <name>Registries for the"Type" Field">"Type" Field</name> <section anchor="tc-rt-t"title="Transitive Types">numbered="true" toc="default"> <name>Transitive Types</name> <t>This registry contains values of the high-order octet (the "Type" field) of a Transitive ExtendedCommunity.<figure> <artwork>Registry Group: BorderCommunity.</t> <dl spacing="normal" newline="false"> <dt>Registry Group:</dt><dd>Border Gateway Protocol (BGP) ExtendedCommunities Registry Name: BGPCommunities</dd> <dt>Registry Name:</dt><dd><t>BGP Transitive Extended CommunityTypes Type Value Name --------------+--------------- 0x0a Transport Class (Sub-TypesTypes</t> <table> <thead> <tr><th>Type Value</th><th>Name</th></tr> </thead> <tbody> <tr><td>0x0a</td><td>Transport Class</td></tr> </tbody> </table> <t>(Sub-Types are defined in the "Transitive Transport Class Extended Community Sub-Types"registry) </artwork> </figure></t>registry.)</t> </dd> </dl> </section> <section anchor="tc-rt-nt"title="Non-Transitive Types">numbered="true" toc="default"> <name>Non-Transitive Types</name> <t>This registry contains values of the high-order octet (the "Type" field) of aNon-transitiveNon-Transitive ExtendedCommunity.<figure> <artwork> Registry Group: BorderCommunity.</t> <dl spacing="normal" newline="false"> <dt>Registry Group:</dt><dd>Border Gateway Protocol (BGP) ExtendedCommunities Registry Name: BGPCommunities</dd> <dt>Registry Name:</dt><dd><t>BGP Non-Transitive Extended CommunityTypes Type Value Name --------------+-------------------------------- 0x4a Non-Transitive Transport Class (Sub-TypesTypes</t> <table> <thead> <tr><th>Type Value</th><th>Name</th></tr> </thead> <tbody> <tr><td>0x4a</td><td>Non-Transitive Transport Class</td></tr> </tbody> </table> <t>(Sub-Types are defined in the "Non-Transitive Transport Class Extended Community Sub-Types"registry) </artwork> </figure></t>registry.)</t> </dd> </dl> </section> </section> </section> <sectiontitle="New Registries">numbered="true" toc="default"> <name>New Registries</name> <sectiontitle="Transitivenumbered="true" toc="default"> <name>Transitive Transport Class Extended Community Sub-TypesRegistry">Registry</name> <t>IANAis requested to addhas added the following subregistry under the“Border"Border Gateway Protocol (BGP) ExtendedCommunities”:</t> <figure> <artwork> Registry Group: BorderCommunities" registry group:</t> <dl spacing="normal" newline="false"> <dt>Registry Group:</dt><dd>Border Gateway Protocol (BGP) ExtendedCommunities Registry Name: TransitiveCommunities</dd> <dt>Registry Name:</dt><dd>Transitive Transport Class Extended CommunitySub-Types Note:Sub-Types</dd> </dl> <t>Note: This registry contains values of the second octet (the "Sub-Type" field) of an extended community when the value of the first octet (the "Type" field) is0x0a. Range Registration Procedures -----------------+---------------------------- 0x00-0xBF First0x0a.</t> <table> <thead> <tr><th>Range</th><th>Registration Procedures</th></tr> </thead> <tbody> <tr><td>0x00-0xbf</td><td>First Come FirstServed 0xC0-0xFF IETF Review Sub-Type Value Name -----------------+-------------- 0x02 Route Target </artwork> </figure>Served</td></tr> <tr><td>0xc0-0xff</td><td>IETF Review</td></tr> </tbody> </table> <table> <thead> <tr><td>Sub-Type Value</td><td>Name</td></tr> </thead> <tbody> <tr><td>0x02</td><td>Route Target</td></tr> </tbody> </table> </section> <sectiontitle="Non-Transitivenumbered="true" toc="default"> <name>Non-Transitive Transport Class Extended Community Sub-TypesRegistry">Registry</name> <t>IANAis requested to addhas added the following subregistry under the“Border"Border Gateway Protocol (BGP) ExtendedCommunities”:</t> <figure> <artwork> Registry Group: BorderCommunities" registry group:</t> <dl spacing="normal" newline="false"> <dt>Registry Group:</dt><dd>Border Gateway Protocol (BGP) ExtendedCommunities Registry Name: Non-TransitiveCommunities</dd> <dt>Registry Name:</dt><dd>Non-Transitive Transport Class Extended CommunitySub-Types Note:Sub-Types</dd> </dl> <t>Note: This registry contains values of the second octet (the "Sub-Type" field) of an extended community when the value of the first octet (the "Type" field) is0x4a. Range Registration Procedures -----------------+---------------------------- 0x00-0xBF First0x4a.</t> <table> <thead> <tr><th>Range</th><th>Registration Procedures</th></tr> </thead> <tbody> <tr><td>0x00-0xbf</td><td>First Come FirstServed 0xC0-0xFF IETF Review Sub-Type Value Name -----------------+-------------- 0x02 Route Target </artwork> </figure>Served</td></tr> <tr><td>0xc0-0xff</td><td>IETF Review</td></tr> </tbody> </table> <table> <thead> <tr><th>Sub-Type Value</th><th>Name</th></tr> </thead> <tbody> <tr><td>0x02</td><td>Route Target</td></tr> </tbody> </table> </section> </section> </section> <sectiontitle="MPLSnumbered="true" toc="default"> <name>MPLS OAM CodePoints">Points</name> <t>The following two code points have been assigned for Target FEC Stack sub-TLVs:</t><t><list style="symbols"><ul spacing="normal"> <li> <t>IPv4 BGP Classful Transport</t> </li> <li> <t>IPv6 BGP Classful Transport</t></list><figure> <artwork> Registry Group: Multiprotocol</li> </ul> <dl spacing="normal" newline="false"> <dt>Registry Group:</dt><dd>Multiprotocol Label Switching (MPLS) Label Switched Paths (LSPs) PingParameters Registry Name: Sub-TLVsParameters</dd> <dt>Registry Name:</dt><dd><t>Sub-TLVs for TLV Types 1, 16, and21 Sub-Type Name -----------------+------------------------------ 31744 IPv421</t> <table> <thead> <tr><th>Sub-Type</th><th>Name</th></tr> </thead> <tbody> <tr><td>31744</td><td>IPv4 BGP ClassfulTransport 31745 IPv6Transport</td></tr> <tr><td>31745</td><td>IPv6 BGP ClassfulTransport </artwork> </figure></t> <t>IANATransport</td></tr> </tbody> </table> </dd> </dl> </section> </section> <!--[rfced] As Section 14.1 (Transport Class ID) isrequested to updateno longer in thereferenceIANA Considerations sections, we have made some updates to help the reader. Please review thisdocument.</t> </section> </section> <section anchor="local-registries" title="Registries maintained by this document">section carefully and let us know any concerns. --> <sectiontitle="Transportnumbered="true" toc="default"> <name>Transport ClassID">ID Registry</name> <t>This RFC documents the "Transport Class ID" registry and its assigned values. The value ranges in this registry are either assigned by this documentreservesor reserved for Private Use. Because the registry is complete, it is being published in this RFC rather than as an IANA-maintained registry. However, note that IANA-related terminology <xref target="BCP26" format="default"/> is used here.</t> <t>Registry Name: TransportclassClass ID</t> <t>The registration procedures are as follows:</t> <table> <thead> <tr><th>Value</th><th>Registration Procedure</th></tr> </thead> <tbody> <tr><td>0</td><td>IETF Review</td></tr> <tr><td>1-4294967295</td><td>Private Use</td></tr> </tbody> </table> <t>As shown in the table below, the Transport Class ID value 0 is Reserved to represent"Best Effortthe "Best-Effort Transport Class ID". This is used in the 'Transport Class ID' field of a Transport Route Target extended community that representsbest effortthe best-effort transport class.</t><t>Since all value ranges in this registry are already assigned or Private use, this registry will be maintained by this document. IANA does not need to maintain this registry.</t> <t><figure> <artwork> Registry Group: BGP Classful Transport (BGP CT) Registry Name: Transport Class ID Value Name -----------------+-------------------------------- 0 Best Effort<table> <thead> <tr><th>Value</th><th>Name</th></tr> </thead> <tbody> <tr><td>0</td><td>Best-Effort Transport ClassID 1-4294967295 Private Use Reference: This document. Registration Procedure(s) Value Registration Procedure -----------------+-------------------------------- 0 IETF Review 1-4294967295 Private Use </artwork> </figure></t>ID</td></tr> <tr><td>1-4294967295</td><td>Private Use</td></tr> </tbody> </table> <t>As noted inSec 4Sections <xref target="tc" format="counter"/> andSec 7.10,<xref target="bgp-att" format="counter"/>, 'Transport Class ID' is interchangeable with 'Color'. For purposes of backward compatibility with usage of a 'Color' field in a Colorextended communityExtended Community as specified in <xreftarget="RFC9012"/>target="RFC9012" format="default"/> and <xreftarget="RFC9256"/>,target="RFC9256" format="default"/>, the range 1-4294967295 uses 'Private Use' as the Registration Procedure.</t> </section></section><section anchor="Security"title="Security Considerations">numbered="true" toc="default"> <name>Security Considerations</name> <t>This document uses<xref target="RFC4760"/>the mechanisms from <xref target="RFC4760" format="default"/> to define new BGP address families (AFI/SAFI : 1/76 and 2/76) that carrytransport layertransport-layer endpoints. These address families are explicitly configured and negotiated between BGP speakers, which confines the propagation scope of this reachability information. These routes stay in the part of network where the new address family isnegotiated,negotiated and don't leak out into the Internet. </t> <t>Furthermore, procedures defined in <xreftarget="secure-propagate"/>target="secure-propagate" format="default"/> mitigate the risk of unintended propagation of BGP CT routes across Inter-AS boundaries even when a BGP CT family is negotiated. BGP import and export policies are used to control the BGP CT reachability information exchanged across AS boundaries. This mitigates the risk of advertising internal loopback addresses outside the administrative control of the provider network. </t> <t>This document does not change the underlying security issues inherent in the existing BGP protocol, such as those described in <xreftarget="RFC4271"/>target="RFC4271" format="default"/> and <xreftarget="RFC4272"/>.</t>target="RFC4272" format="default"/>.</t> <t>Additionally, BGP sessionsSHOULD<bcp14>SHOULD</bcp14> be protected using the TCP Authentication Option <xreftarget="RFC5925"/>target="RFC5925" format="default"/> and the Generalized TTL Security Mechanism <xreftarget="RFC5082"/>.</t>target="RFC5082" format="default"/>.</t> <t>Using a separate BGP family and new RT (Transport Class RT) minimizes the possibility of these routes mixing with service routes.</t> <t>If redistributing between SAFI 76 and SAFI 4 routes for AFIs 1 or 2, there is a possibility of SAFI 4 routes mixing with SAFI 1 service routes. To avoid such scenarios, it isRECOMMENDED<bcp14>RECOMMENDED</bcp14> that implementations support keeping SAFI 76 and SAFI 4 transport routes in separate transport RIBs, distinct from service RIB that contain SAFI 1 service routes.</t> <t>BGP CT routes distribute label binding using <xreftarget="RFC8277"/>target="RFC8277" format="default"/> for the MPLSdataplane and hencedata plane; hence, its security considerations apply.</t> <t>BGP CT routes distribute SRv6 SIDs for SRv6dataplanes and hencedata planes; hence, the security considerations ofSection 9.3 of<xreftarget="RFC9252"/>target="RFC9252" sectionFormat="of" section="9.3"/> apply. Moreover, the SRv6 SID transposition scheme is disabled in BGP CT, as described in <xreftarget="SRv6-Support"/>,target="SRv6-Support" format="default"/>, to mitigate the risk of misinterpreting transposed SRv6 SID information as an MPLS label.</t> <t>As <xreftarget="RFC4272"/>target="RFC4272" format="default"/> discusses, BGP is vulnerable to traffic-diversion attacks. This SAFIroutesroute adds a new means by which an attacker could cause the traffic to be diverted from its normal path. Potential consequences include "hijacking" of traffic (insertion of an undesired node in the path, which allows for inspection or modification of traffic, or avoidance of security controls) or denial of service (directing traffic to a node that doesn't desire to receive it).</t> <t>In order to mitigate the risk of the diversion of traffic from its intended destination, BGPsec solutions (<xreftarget="RFC8205"/>target="RFC8205" format="default"/> and Origin Validation <xreftarget="RFC8210"/><xref target="RFC6811"/>)target="RFC8210" format="default"/><xref target="RFC6811" format="default"/>) may be extended in future to work for non-Internet SAFIs (SAFIs other than 1).</t> <t>The restriction of the applicability of the BGP CT SAFI 76 to its intended well-defined scope and utilizing <xreftarget="RFC8212"/>target="RFC8212" format="default"/> limits the likelihood of traffic diversions.</t> </section> </middle> <back><references title="Normative References"> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8277.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7606.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2545.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.2474.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4659.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4272.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5082.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.5925.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6811.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4364.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4360.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4684.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.4760.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7911.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8669.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9012.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9252.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.7153.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8212.xml"?><displayreference target="I-D.ietf-idr-bgp-ct-srv6" to="BGP-CT-SRv6"/> <displayreference target="I-D.ietf-idr-bgp-fwd-rr" to="BGP-FWD-RR"/> <displayreference target="I-D.ietf-idr-multinexthop-attribute" to="MNH"/> <displayreference target="I-D.ietf-idr-flowspec-redirect-ip" to="FLOWSPEC-REDIR-IP"/> <displayreference target="I-D.kaliraj-bess-bgp-sig-private-mpls-labels" to="MPLS-NS"/> <displayreference target="I-D.hr-spring-intentaware-routing-using-color" to="Intent-Routing-Color"/> <displayreference target="I-D.ietf-pce-pcep-color" to="PCEP-RSVP-COLOR"/> <displayreference target="I-D.ietf-pce-segment-routing-policy-cp" to="PCEP-SRPOLICY"/> <displayreference target="I-D.gredler-idr-bgplu-epe" to="BGP-LU-EPE"/> <displayreference target="I-D.ietf-intarea-tunnels" to="INTAREA-TUNNELS"/> <references> <name>References</name> <references> <name>Normative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8277.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7606.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2545.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2474.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4659.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4272.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5082.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5925.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6811.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4364.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4360.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4684.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4760.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7911.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8669.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9012.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9252.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7153.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8029.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8212.xml"/> <!-- draft-ietf-idr-sr-policy-safi-13 companion document RFC 9830, in EDIT as of 04/11/25. Original cite tag [SRTE]. --> <referenceanchor="SRTE" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr-policy-safi-10">anchor="RFC9830" target="https://www.rfc-editor.org/info/rfc9830"> <front> <title>Advertising Segment Routing Policies in BGP</title> <authorfullname="Ketan" initials="" role="editor" surname="Talaulikar"/>initials="S." surname="Previdi" fullname="Stefano Previdi"> <organization>Huawei Technologies</organization> </author> <author initials="C." surname="Filsfils" fullname="Clarence Filsfils"> <organization>Cisco Systems</organization> </author> <authorfullname="Previdi" initials="S" surname="Previdi"/>initials="K." surname="Talaulikar" fullname="Ketan Talaulikar" role="editor"> <organization>Cisco Systems</organization> </author> <author initials="P." surname="Mattes" fullname="Paul Mattes"> <organization>Microsoft</organization> </author> <author initials="D." surname="Jain" fullname="Dhanendra Jain"> <organization>Google</organization> </author> <dateday="07" month="11" year="2024"/>month="August" year='2025'/> </front> <seriesInfo name="RFC" value="9830"/> <seriesInfo name="DOI" value="10.17487/RFC9830"/> </reference> </references><references title="Informative References"> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9350.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9315.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.6890.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9256.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8205.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.8210.xml"?> <?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference.RFC.9543.xml"?><references> <name>Informative References</name> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9350.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9315.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6890.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9256.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8205.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8210.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9543.xml"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml9/reference.BCP.26.xml"/> <!-- [BGP-CT-SRv6] draft-ietf-idr-bgp-ct-srv6-06 IESG State: Expired as of 8/15/25 --> <referenceanchor="BGP-CT-SRv6" target="https://tools.ietf.org/html/draft-ietf-idr-bgp-ct-srv6-05">anchor="I-D.ietf-idr-bgp-ct-srv6" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp-ct-srv6-06"> <front><title abbrev="BGP-CT-SRv6">BGP<title>BGP CT - Adaptation to SRv6 dataplane</title> <author initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakkalai"initials="" role="editor" surname="Vairavakkalai"/>role="editor"> <organization>Juniper Networks, Inc.</organization> </author> <authorfullname="Natarajaninitials="N." surname="Venkataraman" fullname="Natrajan Venkataraman"initials="" role="editor" surname="Venkataraman"/>role="editor"> <organization>Juniper Networks, Inc.</organization> </author> <dateday="25" month="4" year="2024"/>month="November" day="9" year="2024" /> </front> <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ct-srv6-06" /> </reference> <!-- [BGP-FWD-RR] draft-ietf-idr-bgp-fwd-rr-03 IESG State: Expired as of 08/15/25. --> <referenceanchor="BGP-FWD-RR" target="https://tools.ietf.org/html/draft-ietf-idr-bgp-fwd-rr-02">anchor="I-D.ietf-idr-bgp-fwd-rr" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-bgp-fwd-rr-03"> <front><title abbrev="BGP-FWD-RR">BGP<title>BGP Route Reflectorin Forwarding Path</title>with Next Hop Self</title> <author initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakkalai"initials="" role="editor" surname="Vairavakkalai"/>role="editor"> <organization>Juniper Networks, Inc.</organization> </author> <authorfullname="Natarajaninitials="N." surname="Venkataraman" fullname="Natrajan Venkataraman"initials="" role="editor" surname="Venkataraman"/>role="editor"> <organization>Juniper Networks, Inc.</organization> </author> <date month="September" day="17"month="3" year="2024"/>year="2024" /> </front> <seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-fwd-rr-03" /> </reference> <!-- [MNH] draft-ietf-idr-multinexthop-attribute-04 IESG State: I-D Exists as of 08/15/25. --> <referenceanchor="MNH" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-multinexthop-attribute-00">anchor="I-D.ietf-idr-multinexthop-attribute" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-multinexthop-attribute-04"> <front><title abbrev="MNH">BGP<title>BGP MultiNexthop Attribute</title> <author initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakkalai"initials="" role="editor" surname="Vairavakkalai"/> <date day="17" month="03" year="2024"/> </front> </reference> <reference anchor="FLOWSPEC-REDIR-IP" target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-flowspec-redirect-ip-03"> <front> <title abbrev="FLOWSPEC-REDIR-IP">BGP Flow-Spec Redirect to IP Action</title>role="editor"> <organization>Juniper Networks, Inc.</organization> </author> <authorfullname="Adam Simpson" initials="" role="editor" surname="Simpson"/> <date day="08" month="09" year="2024"/> </front> </reference> <reference anchor="MPLS-NS" target="https://datatracker.ietf.org/doc/html/draft-kaliraj-bess-bgp-sig-private-mpls-labels-09"> <front> <title abbrev="MPLS namespaces">BGP signalled MPLS namespaces</title>initials="J. M." surname="Jeganathan" fullname="Jeyananth Minto Jeganathan"> <organization>Juniper Networks, Inc.</organization> </author> <authorfullname="Kaliraj" initials="" role="editor" surname="Vairavakkalai"/> <date day="09" month="11" year="2024"/> </front> </reference> <reference anchor="Intent-Routing-Color" target="https://datatracker.ietf.org/doc/html/draft-hr-spring-intentaware-routing-using-color-03"> <front> <title abbrev="Intent-Routing-Color">Intent-aware Routing using Color</title>initials="M." surname="Nanduri" fullname="Mohan Nanduri"> <organization>Microsoft</organization> </author> <authorfullname="Shraddha" initials="" role="editor" surname="Hegde"/>initials="A. R." surname="Lingala" fullname="Avinash Reddy Lingala"> <organization>AT&T</organization> </author> <dateday="23" month="10" year="2023"/>month="March" day="25" year="2025" /> </front> <seriesInfo name="Internet-Draft" value="draft-ietf-idr-multinexthop-attribute-04" /> </reference> <!-- [FLOWSPEC-REDIR-IP] draft-ietf-idr-flowspec-redirect-ip-03 IESG State: Expired as of 08/15/25. Note to PE: Author name "akarch@cisco.com" matches info available on datatracker: https://datatracker.ietf.org/person/akarch@cisco.com --> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-idr-flowspec-redirect-ip.xml"/> <!-- [MPLS-NS] draft-kaliraj-bess-bgp-sig-private-mpls-labels-09 IESG State: I-D Exists as of 04/11/25. --> <!--[rfced] We note that the reference to draft-kaliraj-bess-bgp-sig-private-mpls-labels-09 has been replaced by draft-kaliraj-bess-bgp-mpls-namespaces. Please review this reference entry / citation and let us know if/how updates should be made.--> <referenceanchor="PCEP-RSVP-COLOR" target="https://datatracker.ietf.org/doc/html/draft-ietf-pce-pcep-color-11">anchor="I-D.kaliraj-bess-bgp-sig-private-mpls-labels" target="https://datatracker.ietf.org/doc/html/draft-kaliraj-bess-bgp-sig-private-mpls-labels-09"> <front><title abbrev="PCEP RSVP COLOR">Path Computation Element Protocol(PCEP) Extension for RSVP Color</title> <author fullname="Balaji" initials="" role="editor" surname="Rajagopalan"/><title>BGP Signaled MPLS Namespaces</title> <authorfullname="Vishnu" initials="Pavan" role="editor" surname="Beeram"/> <date day="17" month="02" year="2025"/> </front> </reference> <reference anchor="PCEP-SRPOLICY" target="https://www.ietf.org/archive/id/draft-ietf-pce-segment-routing-policy-cp-14.html"> <front> <title abbrev="PCEP SRPOLICY">PCEP Extensions for SR Policy Candidate Paths</title>initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakkalai" role="editor"> <organization>Juniper Networks, Inc.</organization> </author> <authorfullname="Mike" initials="" role="editor" surname="Koldychev"/>initials="J. M." surname="Jeganathan" fullname="Jeyananth Minto Jeganathan"> <organization>Juniper Networks, Inc.</organization> </author> <authorfullname="Siva" initials="" role="editor" surname="Sivabalan"/>initials="P." surname="Ramadenu" fullname="Praveen Ramadenu"> <organization>AT&T</organization> </author> <authorfullname="Colby" initials="" role="editor" surname="Barth"/>initials="I." surname="Means" fullname="Israel Means"> <organization>AT&T</organization> </author> <dateday="09" month="02" year="2024"/>month="November" day="9" year="2024" /> </front> <seriesInfo name="Internet-Draft" value="draft-kaliraj-bess-bgp-sig-private-mpls-labels-09" /> </reference> <!-- [Intent-Routing-Color] draft-hr-spring-intentaware-routing-using-color-04 IESG State: Expired as of 8/15/25 --> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.hr-spring-intentaware-routing-using-color.xml"/> <!-- [PCEP-RSVP-COLOR] draft-ietf-pce-pcep-color-12 IESG State: RFC Ed Queue RFC-Editor as of 8/15/25 --> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-pcep-color.xml"/> <!-- [PCEP-SRPOLICY] draft-ietf-pce-segment-routing-policy-cp-25 IESG State: RFC Ed Queue RFC-ED state as of 8/15/25 --> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-pce-segment-routing-policy-cp.xml"/> <!--[rfced] The citation tag [BGP-CT-UPDATE-PACKING-TEST] is a bit long. Might we update to something shorter?--> <reference anchor="BGP-CT-UPDATE-PACKING-TEST"target="https://raw.githubusercontent.com/ietf-wg-idr/draft-ietf-idr-bgp-ct/1a75d4d10d4df0f1fd7dcc041c2c868704b092c7/update-packing-test-results.txt">target="https://github.com/ietf-wg-idr/draft-ietf-idr-bgp-ct/blob/main/update-packing-test-results.txt"> <front><title abbrev="BGP-CT-UPDATE-PACKING-TEST">BGP CT Update packing Test Results</title> <author fullname="Kaliraj" initials="" role="editor" surname="Vairavakkalai"/><title>update-packing-test-results.txt</title> <author/> <date day="25" month="06" year="2023"/> </front> <refcontent>1a75d4d</refcontent> </reference> <!-- [BGP-LU-EPE] draft-gredler-idr-bgplu-epe-16 IESG State: I-D Exists as of 8/15/25 --> <referenceanchor="BGP-LU-EPE" target="https://datatracker.ietf.org/doc/html/draft-gredler-idr-bgplu-epe-15">anchor="I-D.gredler-idr-bgplu-epe" target="https://datatracker.ietf.org/doc/html/draft-gredler-idr-bgplu-epe-16"> <front><title abbrev="BGP LU EPE">Egress<title>Egress Peer Engineering using BGP-LU</title> <authorfullname="Hannes" initials="" role="editor" surname="Gredler"/> <date day="16" month="06" year="2023"/> </front> </reference> <reference anchor="INTAREA-TUNNELS" target="https://datatracker.ietf.org/doc/draft-ietf-intarea-tunnels/13/"> <front> <title abbrev="INTAREA-TUNNELS">IP Tunnels in the Internet Architecture</title>initials="H." surname="Gredler" fullname="Hannes Gredler" role="editor"> <organization>RtBrick Inc.</organization> </author> <authorfullname="Dr. Joseph D Touch" initials="" role="editor" surname="Touch"/>initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakkalai" role="editor"> <organization>Juniper Networks, Inc.</organization> </author> <authorfullname="Mark Townsley" initials="" role="editor" surname="Townsley"/>initials="C." surname="R" fullname="Chandrasekar R"> <organization>Juniper Networks, Inc.</organization> </author> <author initials="B." surname="Rajagopalan" fullname="Balaji Rajagopalan"> <organization>Juniper Networks, Inc.</organization> </author> <author initials="E." surname="Aries" fullname="Ebben Aries"> <organization>Juniper Networks, Inc.</organization> </author> <author initials="L." surname="Fang" fullname="Luyuan Fang"> <organization>eBay</organization> </author> <dateday="26" month="03" year="2023"/>month="October" day="14" year="2024" /> </front> <seriesInfo name="Internet-Draft" value="draft-gredler-idr-bgplu-epe-16" /> </reference> <!-- [INTAREA-TUNNELS] draft-ietf-intarea-tunnels-14 IESG State: I-D Exists in WG Last Call as of 8/15/25 --> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-intarea-tunnels.xml"/> </references> </references> <sectionanchor="Appendix A"anchor="Appendix_A" numbered="true"title="Extensibility considerations">toc="default"> <name>Extensibility Considerations</name> <sectiontitle="Signalingnumbered="true" toc="default"> <name>Signaling Intent over a PE-CE AttachmentCircuit">Circuit</name> <t>It may be desirable to allow a CE device to indicate in the data packet it sends what treatment it desires (the Intent) when the packet is forwarded within the provider network.</t><t>Section A.10 in <xref target="MNH">BGP MultiNexthop Attribute</xref><t><xref section="A.10" target="I-D.ietf-idr-multinexthop-attribute" format="default"></xref> describes some mechanisms that enable such signaling.</t> </section> <sectiontitle="BGPnumbered="true" toc="default"> <name>BGP CT EgressTE">TE</name> <t>Mechanisms described in <xreftarget="BGP-LU-EPE"/>target="I-D.gredler-idr-bgplu-epe" format="default"/> alsoappliesapply to the BGP CT family.</t> <t>The Peer/32 or Peer/128 EPE routeMAY<bcp14>MAY</bcp14> be originated in the BGP CT family with the appropriate Mapping Community(e.g.(e.g., transport-target:0:100), thus allowing an EPE path to the peer that satisfies the desired SLA.</t> </section> </section> <sectionanchor="Appendix B"anchor="Appendix_B" numbered="true"title="Applicabilitytoc="default"> <name>Applicability to Intra-AS anddifferentDifferent Inter-ASdeployments.">Deployments</name> <t>As described in <xreftarget="RFC4364">BGP VPN</xref> Section 10,section="10" target="RFC4364" format="default"></xref>, in an Option C network, service routes (VPN-IPv4) are neither maintained nor distributed by the ASBRs. Transport routes are maintained in the ASBRs and propagated in BGP LU or BGP CT.</t> <t><xreftarget="CTProc">Illustration of CT Procedures</xref>target="CTProc" format="default"></xref> illustrates how constructs of BGP CT work in an inter-AS Option C deployment. The BGP CT constructs: AFI/SAFI 1/76, TransportClassClass, and Resolution Scheme are used in an inter-AS Option C deployment.</t> <t>In Intra-AS and Inter-AS optionA,A and option B scenarios, AFI/SAFI 1/76 may not be used, but the Transport Class and Resolution Scheme mechanisms are used to provide service mapping.</t> <t>This section illustrates how BGP CT constructs work in Intra-AS and Inter-AS OptionA,A and B deployment scenarios.</t> <sectiontitle="Intra-AS usecase">numbered="true" toc="default"> <name>Intra-AS Use Case</name> <sectiontitle="Topology">numbered="true" toc="default"> <name>Topology</name> <figuretitle="BGPanchor="BGPCT_INTRA_AS"> <name>BGP CTIntra-AS" anchor="BGPCT_INTRA_AS"><artset><artwork type="svg"><svgIntra-AS</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="440" viewBox="0 0 440 208" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 200,48 L 200,64" fill="none" stroke="black"/> <path d="M 56,80 L 72,80" fill="none" stroke="black"/> <path d="M 128,80 L 176,80" fill="none" stroke="black"/> <path d="M 216,80 L 256,80" fill="none" stroke="black"/> <path d="M 312,80 L 352,80" fill="none" stroke="black"/> <path d="M 112,176 L 136,176" fill="none" stroke="black"/> <path d="M 296,176 L 328,176" fill="none" stroke="black"/> <polygon class="arrowhead" points="336,176 324,170.4 324,181.6" fill="black" transform="rotate(0,328,176)"/> <g class="text"> <text x="204" y="36">[RR11]</text> <text x="28" y="84">[CE21]</text> <text x="100" y="84">[PE11]</text> <text x="196" y="84">[P1]</text> <text x="284" y="84">[PE12]</text> <text x="380" y="84">[CE31]</text> <text x="72" y="116">:</text> <text x="312" y="116">:</text> <text x="32" y="132">AS2</text> <text x="72" y="132">:</text> <text x="200" y="132">...AS1...</text> <text x="312" y="132">:</text> <text x="368" y="132">AS3</text> <text x="72" y="148">:</text> <text x="312" y="148">:</text> <text x="52" y="180">203.0.113.21</text> <text x="176" y="180">Traffic</text> <text x="248" y="180">Direction</text> <text x="388" y="180">203.0.113.31</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ [RR11] | + [CE21]---[PE11]-------[P1]------[PE12]------[CE31] : : AS2 : ...AS1... : AS3 : : 203.0.113.21 ---- Traffic Direction ----> 203.0.113.31]]></artwork></artset></figure> <t>This example in <xref target="BGPCT_INTRA_AS"/>]]></artwork> </artset> </figure> <t><xref target="BGPCT_INTRA_AS" format="default"/> shows a provider network AutonomoussystemSystem, AS1. It serves customersAS2,AS2 and AS3. Traffic direction being described is CE21 to CE31. CE31 may request a specific SLA(e.g.(e.g., Gold for thistraffic),traffic) when traversing this provider network.</t> </section> <sectiontitle="Transport Layer">numbered="true" toc="default"> <name>Transport Layer</name> <t>AS1 uses RSVP-TE intra-domain tunnels between PE11 and PE12. And it uses LDP tunnels forbest effortbest-effort traffic.</t> <t>The network has two Transport classes: Gold with Transport Class ID100,100 and Bronze with Transport Class ID 200. These transport classes are provisioned at the PEs. This creates the Resolution Schemes for these transport classes at these PEs.</t><t>Following<t>The following tunnels exist for the Gold transportclass.<list>class:</t> <ul spacing="normal"> <li> <t>PE11_to_PE12_gold - RSVP-TE tunnel</t> </li> <li> <t>PE12_to_PE11_gold - RSVP-TE tunnel</t></list></t> <t>Following</li> </ul> <t>The following tunnels exist for Bronze transportclass.<list>class:</t> <ul spacing="normal"> <li> <t>PE11_to_PE12_bronze - RSVP-TE tunnel</t> </li> <li> <t>PE11_to_PE12_bronze - RSVP-TE tunnel</t></list></t></li> </ul> <t>These tunnels are provisioned to belong to transport class 100 or 200.</t> </section> <sectiontitle="Service Layer route exchange">numbered="true" toc="default"> <name>Service-Layer Route Exchange</name> <t>Service nodesPE11,PE11 and PE12 negotiate service families (AFI/SAFI 1/128) on the BGP session with RR11. Service helper RR11 reflects service routes between the two PEs with the next hop unchanged. There are no tunnels for transport-class 100 or 200 from RR11 to the PEs.</t> <t>Forwarding happens using service routes at service nodesPE11,PE11 and PE12. Routes received from CEs are not present in any other nodes' FIB in the provider network.</t> <t>CE31 advertises arouteroute, forexampleexample, prefix 203.0.113.31 with the next hopselfset to itself to PE12. CE31 can attach a Mapping Community Color:0:100 on thisroute,route to indicate its request for a Gold SLA. Or, PE12 can attach the same using locally configured policies.</t><t>Consider,<t>Consider CE31isgetting VPN service from PE12. The RD:203.0.113.31 route is readvertised in AFI/SAFI 1/128 by PE12 with the next hopselfset to itself (192.0.2.12) and labelV-L1,V-L1 to RR11 with the Mapping Community Color:0:100 attached. This AFI/SAFI 1/128 route reaches PE11 via RR11 with the next hop unchanged as PE12 and label V-L1. Now PE11 can resolve the PNH 192.0.2.12 using the PE11_to_PE12_gold RSVP TE LSP.</t> <t>The IP FIB at PE11 VRF will have a route for 203.0.113.31 with a next hop when resolved using the Resolution Scheme belonging to the mapping community Color:0:100, points to a PE11_to_PE12_gold tunnel.</t> <t>BGP CT AFI/SAFI 1/76 is not used in this Intra-AS deployment. But the Transport class and Resolution Scheme constructs are used to preserve end-to-end SLA.</t> </section> </section> <sectiontitle="Inter-AS optionnumbered="true" toc="default"> <name>Inter-AS Option Ausecase">Use Case</name> <sectiontitle="Topology">numbered="true" toc="default"> <name>Topology</name> <figuretitle="BGPanchor="BGPCT_INTERAS_A"> <name>BGP CT Inter-ASoption A" anchor="BGPCT_INTERAS_A"><artset><artwork type="svg"><svgOption A</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="624" viewBox="0 0 624 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 168,48 L 168,64" fill="none" stroke="black"/> <path d="M 408,48 L 408,64" fill="none" stroke="black"/> <path d="M 56,80 L 72,80" fill="none" stroke="black"/> <path d="M 128,80 L 152,80" fill="none" stroke="black"/> <path d="M 192,80 L 216,80" fill="none" stroke="black"/> <path d="M 288,80 L 304,80" fill="none" stroke="black"/> <path d="M 376,80 L 392,80" fill="none" stroke="black"/> <path d="M 432,80 L 448,80" fill="none" stroke="black"/> <path d="M 504,80 L 528,80" fill="none" stroke="black"/> <path d="M 184,176 L 232,176" fill="none" stroke="black"/> <path d="M 376,176 L 424,176" fill="none" stroke="black"/> <polygon class="arrowhead" points="432,176 420,170.4 420,181.6" fill="black" transform="rotate(0,424,176)"/> <g class="text"> <text x="172" y="36">[RR11]</text> <text x="412" y="36">[RR21]</text> <text x="28" y="84">[CE31]</text> <text x="100" y="84">[PE11]</text> <text x="172" y="84">[P1]</text> <text x="252" y="84">[ASBR11]</text> <text x="340" y="84">[ASBR21]</text> <text x="412" y="84">[P2]</text> <text x="476" y="84">[PE21]</text> <text x="556" y="84">[CE41]</text> <text x="72" y="116">:</text> <text x="296" y="116">:</text> <text x="512" y="116">:</text> <text x="32" y="132">AS3</text> <text x="72" y="132">:</text> <text x="200" y="132">..AS1..</text> <text x="296" y="132">:</text> <text x="376" y="132">..AS2..</text> <text x="512" y="132">:</text> <text x="560" y="132">AS4</text> <text x="72" y="148">:</text> <text x="296" y="148">:</text> <text x="512" y="148">:</text> <text x="52" y="180">203.0.113.31</text> <text x="264" y="180">Traffic</text> <text x="336" y="180">Direction</text> <text x="572" y="180">203.0.113.41</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ [RR11] [RR21] | | + + [CE31]---[PE11]----[P1]----[ASBR11]---[ASBR21]---[P2]---[PE21]----[CE41] : : : AS3 : ..AS1.. : ..AS2.. : AS4 : : : 203.0.113.31 -------Traffic Direction------> 203.0.113.41]]></artwork></artset></figure>]]></artwork> </artset> </figure> <t>This example in <xreftarget="BGPCT_INTERAS_A"/>target="BGPCT_INTERAS_A" format="default"/> shows two provider network Autonomous systems AS1, AS2. They serve L3VPN customers AS3, AS4 respectively. The ASBRs ASBR11 and ASBR21 have IP VRFs connected directly. The inter-AS link is IP enabled with no MPLS forwarding.</t> <t>Traffic direction being described is CE31 to CE41. CE41 may request a specific SLA(e.g.(e.g., Gold for this traffic), when traversing these provider core networks.</t> </section> <sectiontitle="Transport Layer">numbered="true" toc="default"> <name>Transport Layer</name> <t>AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR11. And LDP tunnels forbest effortbest-effort traffic. AS2 uses SRTE intra-domain tunnels between ASBR21 and PE21, and L-ISIS forbest effortbest-effort tunnels.</t> <t>The networks have two Transport classes: Gold with Transport Class ID 100, Bronze with Transport Class ID 200. These transport classes are provisioned at the PEs and ASBRs. This creates the Resolution Schemes for these transport classes at these PEs and ASBRs.</t> <t>Following tunnels exist for Gold transportclass.<list>class.</t> <ul spacing="normal"> <li> <t>PE11_to_ASBR11_gold - RSVP-TE tunnel</t> </li> <li> <t>ASBR11_to_PE11_gold - RSVP-TE tunnel</t> </li> <li> <t>PE21_to_ASBR21_gold - SRTE tunnel</t> </li> <li> <t>ASBR21_to_PE21_gold - SRTE tunnel</t></list></t></li> </ul> <t>Following tunnels exist for Bronze transportclass.<list>class.</t> <ul spacing="normal"> <li> <t>PE11_to_ASBR11_bronze - RSVP-TE tunnel</t> </li> <li> <t>ASBR11_to_PE11_bronze - RSVP-TE tunnel</t> </li> <li> <t>PE21_to_ASBR21_bronze - SRTE tunnel</t> </li> <li> <t>ASBR21_to_PE21_bronze - SRTE tunnel</t></list></t></li> </ul> <t>These tunnels are provisioned to belong to transport class 100 or 200.</t> </section> <sectiontitle="Servicenumbered="true" toc="default"> <name>Service Layerroute exchange">Route Exchange</name> <t>Service nodes PE11, ASBR11 negotiate service family (AFI/SAFI 1/128) on the BGP session with RR11. Service helper RR11 reflects service routes between the PE11 and ASBR11 with next hop unchanged.</t> <t>Similarly, in AS2 PE21, ASBR21 negotiate service family (AFI/SAFI 1/128) on the BGP session with RR21, which reflects service routes between the PE21 and ASBR21 with next hop unchanged.</t> <t>CE41 advertises a route for example prefix 203.0.113.41 with next hop self to PE21 VRF. CE41 can attach a Mapping Community Color:0:100 on this route, to indicate its request for Gold SLA. Or, PE21 can attach the same using locally configured policies.</t> <t>Consider, CE41 is getting VPN service from PE21. The RD:203.0.113.41 route is readvertised in AFI/SAFI 1/128 by PE21 with next hop self (203.0.113.21) and label V-L1 to RR21 with the Mapping Community Color:0:100 attached. This AFI/SAFI 1/128 route reaches ASBR21 via RR21 with the next hop unchanged as PE21 and label V-L1. Now ASBR21 can resolve the PNH 203.0.113.21 using ASBR21_to_PE21_gold SRTE LSP.</t> <t>The IP FIB at ASBR21 VRF will have a route for 203.0.113.41 with a next hop resolved using Resolution Scheme associated with mapping community Color:0:100, pointing to ASBR21_to_PE21_gold tunnel.</t> <t>This route is readvertised with the next hopselfset to itself by ASBR21 to ASBR11 on a BGP session in the VRF. The single-hop EBGP session endpoints are interface addresses. ASBR21 and ASBR11 act like a CE to each other. The previously mentioned process repeats inAS1,AS1 until the route reaches PE11 and resolves over the PE11_to_ASBR11_gold RSVP TE tunnel.</t> <t>Traffic traverses as an unlabeled IP packet on the following legs: CE31-PE11, ASBR11-ASBR21, PE21-CE41. And it uses MPLS forwarding insideAS1,the AS1 and AS2 core.</t> <t>BGP CT AFI/SAFI 1/76 is not used in this Inter-AS Option B deployment. But the Transport class and Resolution Scheme constructs are used to preserve an end-to-end SLA.</t> </section> </section> <sectiontitle="Inter-AS optionnumbered="true" toc="default"> <name>Inter-AS Option Busecase">Use Case</name> <sectiontitle="Topology">numbered="true" toc="default"> <name>Topology</name> <figuretitle="BGPanchor="BGPCT_INTERAS_B"> <name>BGP CT Inter-ASoption B" anchor="BGPCT_INTERAS_B"><artset><artwork type="svg"><svgOption B</name> <artset> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192" width="584" viewBox="0 0 584 192" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> <path d="M 168,48 L 168,64" fill="none" stroke="black"/> <path d="M 408,48 L 408,64" fill="none" stroke="black"/> <path d="M 56,80 L 72,80" fill="none" stroke="black"/> <path d="M 128,80 L 152,80" fill="none" stroke="black"/> <path d="M 192,80 L 216,80" fill="none" stroke="black"/> <path d="M 288,80 L 304,80" fill="none" stroke="black"/> <path d="M 376,80 L 392,80" fill="none" stroke="black"/> <path d="M 432,80 L 448,80" fill="none" stroke="black"/> <path d="M 504,80 L 528,80" fill="none" stroke="black"/> <path d="M 184,176 L 208,176" fill="none" stroke="black"/> <path d="M 368,176 L 400,176" fill="none" stroke="black"/> <polygon class="arrowhead" points="408,176 396,170.4 396,181.6" fill="black" transform="rotate(0,400,176)"/> <g class="text"> <text x="172" y="36">[RR13]</text> <text x="412" y="36">[RR23]</text> <text x="28" y="84">[CE31]</text> <text x="100" y="84">[PE11]</text> <text x="172" y="84">[P1]</text> <text x="252" y="84">[ASBR12]</text> <text x="340" y="84">[ASBR21]</text> <text x="412" y="84">[P2]</text> <text x="476" y="84">[PE22]</text> <text x="556" y="84">[CE41]</text> <text x="72" y="116">:</text> <text x="296" y="116">:</text> <text x="512" y="116">:</text> <text x="32" y="132">AS3</text> <text x="72" y="132">:</text> <text x="200" y="132">..AS1..</text> <text x="296" y="132">:</text> <text x="376" y="132">..AS2..</text> <text x="512" y="132">:</text> <text x="560" y="132">AS4</text> <text x="72" y="148">:</text> <text x="296" y="148">:</text> <text x="512" y="148">:</text> <text x="52" y="180">203.0.113.31</text> <text x="248" y="180">Traffic</text> <text x="320" y="180">Direction</text> <text x="524" y="180">203.0.113.41</text> </g> </svg></artwork><artwork type="ascii-art"><![CDATA[</artwork> <artwork type="ascii-art" name="" align="left" alt=""><![CDATA[ [RR13] [RR23] | | + + [CE31]---[PE11]----[P1]----[ASBR12]---[ASBR21]---[P2]---[PE22]----[CE41] : : : AS3 : ..AS1.. : ..AS2.. : AS4 : : : 203.0.113.31 ---- Traffic Direction ----> 203.0.113.41]]></artwork></artset></figure> <t>This example in <xref target="BGPCT_INTERAS_B"/>]]></artwork> </artset> </figure> <t><xref target="BGPCT_INTERAS_B" format="default"/> shows two provider network AutonomoussystemsSystems: AS1 and AS2. They serve L3VPN customers AS3 andAS4AS4, respectively. The ASBRs ASBR12 and ASBR21 don't have any IP VRFs. The inter-AS link isMPLS forwardingMPLS-forwarding enabled.</t> <t>Traffic direction being described is CE31 to CE41. CE41 may request a specific SLA(e.g.(e.g., Gold for thistraffic),traffic) when traversing these provider core networks.</t> </section> <sectiontitle="Transport Layer">numbered="true" toc="default"> <name>Transport Layer</name> <t>AS1 uses RSVP-TE intra-domain tunnels between PE11 andASBR21. AndASBR21 and LDP tunnels forbest effortbest-effort traffic. AS2 uses SRTE intra-domain tunnels between ASBR21 andPE22, andPE22 along with L-ISIS forbest effortbest-effort tunnels.</t> <t>The networks have two Transport classes: Gold with Transport Class ID100,100 and Bronze with Transport Class ID 200. These transport classes are provisioned at the PEs and ASBRs. This creates the Resolution Schemes for these transport classes at these PEs and ASBRs.</t><t>Following<t>The following tunnels exist for Gold transportclass.<list>class:</t> <ul spacing="normal"> <li> <t>PE11_to_ASBR12_gold - RSVP-TE tunnel</t> </li> <li> <t>ASBR12_to_PE11_gold - RSVP-TE tunnel</t> </li> <li> <t>PE22_to_ASBR21_gold - SRTE tunnel</t> </li> <li> <t>ASBR21_to_PE22_gold - SRTE tunnel</t></list></t> <t>Following</li> </ul> <t>The following tunnels exist for Bronze transportclass.<list>class:</t> <ul spacing="normal"> <li> <t>PE11_to_ASBR12_bronze - RSVP-TE tunnel</t> </li> <li> <t>ASBR12_to_PE11_bronze - RSVP-TE tunnel</t> </li> <li> <t>PE22_to_ASBR21_bronze - SRTE tunnel</t> </li> <li> <t>ASBR21_to_PE22_bronze - SRTE tunnel</t></list></t></li> </ul> <t>These tunnels are provisioned to belong to transport class 100 or 200.</t> </section> <sectiontitle="Service Layer route exchange">numbered="true" toc="default"> <name>Service-Layer Route Exchange</name> <t>Service nodesPE11,PE11 and ASBR12 negotiate service family (AFI/SAFI 1/128) on the BGP session with RR13. Service helper RR13 reflects service routes between the PE11 and ASBR12 with the next hop unchanged.</t> <t>Similarly, in AS2 PE22, ASBR21negotiatenegotiates service family (AFI/SAFI 1/128) on the BGP session with RR23, which reflects service routes betweenthePE22 and ASBR21 with the next hop unchanged.</t> <t>ASBR21 and ASBR12 negotiate AFI/SAFI 1/128 betweenthem,them and readvertise L3VPN routes with the next hopself,set to themselves, allocating new labels. The single-hop EBGP session endpoints are interface addresses.</t> <t>CE41 advertises arouteroute, forexampleexample, prefix 203.0.113.41 with the next hopselfset to itself to PE22 VRF. CE41 can attach a Mapping Community Color:0:100 on thisroute,route to indicate its request for the Gold SLA. Or, PE22 can attach the same using locally configured policies.</t><t>Consider,<t>Consider CE41isgetting VPN service from PE22. The RD:203.0.113.41 route is readvertised in AFI/SAFI 1/128 by PE22 with the next hopselfset to itself (192.0.2.22) and label V-L1 to RR23 with the Mapping Community Color:0:100 attached. This AFI/SAFI 1/128 route reaches ASBR21 via RR23 with the next hop unchanged as PE22 and label V-L1. Now ASBR21 can resolve the PNH 192.0.2.22 using ASBR21_to_PE22_gold SRTE LSP.</t> <t>Next, ASBR21 readvertises the RD:203.0.113.41 route with the next hopselfset to itself to ASBR12 with a newly allocated MPLS label V-L2. Forwarding for this label is installed to Swap V-L1, and Push labels for ASBR21_to_PE22_gold tunnel.</t> <t>ASBR12 further readvertises the RD:203.0.113.41 route via RR13 to PE11 with the next hopselfset to itself, 192.0.2.12. PE11 resolves the next hop 192.0.2.12 over PE11_to_ASBR12_gold RSVP TE tunnel.</t> <t>Traffic traverses as the IP packet on the following legs: CE31-PE11 and PE21-CE41. And it uses MPLS forwarding on the ASBR11-ASBR21link,link and inside the AS1-AS2 core.</t> <t>BGP CT AFI/SAFI 1/76 is not used in this Inter-AS Option B deployment. But the Transport class and Resolution Scheme constructs are used to preserve an end-to-end SLA.</t> </section> </section> </section> <sectionanchor="Appendix C"anchor="Appendix_C" numbered="true"title="Whytoc="default"> <name>Why reuseRFCRFCs 8277 andRFC 4364?"> <t>RFC 43644364?</name> <t><xref target="RFC4364"/> is one of the key design patterns produced by the networking industry. It introduced virtualization and allowed sharing of resources in the service provider space with multiple tenant networks, providing isolated and secureLayer3Layer 3 VPN services. This design pattern has been reused since to provide otherservice layerservice-layer virtualizations likeLayer2Layer 2 virtualization (VPLS, L2VPN, EVPN), ISO virtualization, ATM virtualization, and Flowspec VPN.</t> <t>It is to be noted that these services have different NLRIencoding.encodings. The L3VPN Service family that binds the MPLS label to an IP prefixuse RFC 8277 encoding,uses the encoding described in <xref target="RFC8277"/> and others define different NLRI encodings.</t> <t>BGP CT reusesRFC 4364the procedures described in <xref target="RFC4364"/> to slice a transport network into multiple transport planes that different service routes can bindto,to using color.</t> <t>BGP CT reusesRFC 8277<xref target="RFC8277"/> because it precisely fits the purpose.viz. In aThat is, in an MPLS network, BGP CT needs to bind the MPLS label for transportendpointsendpoints, which are IPv4 or IPv6 endpoints, and disambiguate between multiple instances of those endpoints in multiple transport planes. Hence, use of the RD:IP_Prefix and carrying a Label for it as specified inRFC 8277<xref target="RFC8277"/> works well for this purpose.</t> <t>Another advantage of using the precise encoding as defined inRFC 4364<xref target="RFC4364"/> andRFC 8277<xref target="RFC8277"/> is that it allowsto interoperateinteroperation with BGP speakers that support SAFI 128 for AFIs 1 or 2. This can be useful duringtransition,transition until all BGP speakers in the network support BGP CT.</t> <t>In the future, ifRFC 8277<xref target="RFC8277"/> evolves into a typedNLRI,NLRI that does not carry Label in the NLRI, BGP CT will be compatible with thatas-well.as well. In essence, BGP CT encoding is compatible with existing deployed technologies(RFC 4364, RFC 8277)(<xref target="RFC4364"/> and <xref target="RFC8277"/>) and will adapt to any changesRFC 8277mechanisms from <xref target="RFC8277"/> undergo in future.</t> <t>This approach leverages the benefits oftime testedtime-tested design patterns proposed inRFC 4364<xref target="RFC4364"/> andRFC 8277.<xref target="RFC8277"/>. Moreover, this approach greatly reduces operational training costs and protocol compatibilityconsiderations,considerations as it complements and works well with existing protocolmachineries. Thismachinery: this problem does not needreinventing the wheel witha brand new NLRI and procedures.</t> <t>BGP CT design also avoids overloadingRFC 8277the NLRI MPLS Label field from <xref target="RFC8277"/> with information related tonon MPLSthe non-MPLS dataplane,plane because it leads tobackward compatibilitybackward-compatibility issues.</t> <section numbered="true"title="Update packing considerations">toc="default"> <name>Update Packing Considerations</name> <t>BGP CT carries transport class as an attribute. This means routes that don't share the same transport class cannot be packed into the sameUpdateBGP UPDATE message. Update packing in BGP CT will be similar toRFC 8277family routes from <xref target="RFC8277"/> carrying attributes like communities or extended communities. Service families like AFI/SAFI 1/128 have considerably more scale than transport families like AFI/SAFI 1/4 or AFI/SAFI 1/76, which carry only loopbacks. Update packing mechanisms that scale for AFI/SAFI 1/128 routes will scale similarly for AFI/SAFI 1/76routes also.</t> <t>Section 6.3.2.1 of <xref target="Intent-Routing-Color"/>routes. </t> <t><xref section="6.3.2.1" target="I-D.hr-spring-intentaware-routing-using-color" format="default"/> suggests scaling numbers for a transport network where BGP CT can be deployed. Experiments were conducted with this scale to find the convergence time with BGP CT for those scaling numbers. Scenarios involving BGP CT carrying IPv4 and IPv6 endpoints with an MPLS label were tested. Tests with BGP CT IPv6 endpoints and SRv6 SID are planned.</t> <t>Tests were conducted with a 1.9 million BGP CT route scale (387K endpoints in 5 transport classes). Initial convergence time for all cases was less than 2 minutes, which compares favorably with user expectation for such a scale. This experiment proves that carryingtransport classtransport-class information as an attribute keeps BGP convergence within an acceptable range. Details of the experiment and test results are available in <xreftarget="BGP-CT-UPDATE-PACKING-TEST">BGP CT Update packing Test Results </xref>.</t>target="BGP-CT-UPDATE-PACKING-TEST" format="default"></xref>.</t> <t>Furthermore, even in today's BGP LUdeploymentsdeployments, each egress node originates a BGP LU route forit'sits loopback, with some attributes like community identifying the originating node orregion,region and an AIGP attribute. These attributes may be unique per egressnode, thusnode; thus, they do not help with update packing in transport family routes.</t> </section> </section> <sectionanchor="Appendix D"anchor="Appendix_D" numbered="true"title="Scaling usingtoc="default"> <name>Scaling Using BGP MPLSNamespaces">Namespaces</name> <t>This document considers the scaling scenario suggested inSection 6.3.2.1 of<xreftarget="Intent-Routing-Color"/>section="6.3.2.1" target="I-D.hr-spring-intentaware-routing-using-color" format="default"/> where 300K nodes exist in the network with 5 transport classes.</t> <t>This may result in 1.5M transport layer routes and MPLS transit routes in all Border Nodes in the network, which may overwhelm the nodes'MPLS forwardingMPLS-forwarding resources.</t><t>Section 6.2 of <xref target="MPLS-NS"/><t><xref section="6.2" target="I-D.kaliraj-bess-bgp-sig-private-mpls-labels" format="default"/> describes how MPLS Namespaces mechanism is used to scale such a network. This approach reduces the number of PNHs that are globally visible in the network, thus reducing forwarding resource usage network wide.Service routeService-route state is kept confined closer to network edge, and any churn is confined within the region containing the point of failure, which improves convergence also.</t> </section> <sectionanchor="Contributors"anchor="Acknowledgements" numbered="false"title="Contributors">toc="default"> <name>Acknowledgements</name> <t>The authors thank <contact fullname="Jeff Haas"/>, <contact fullname="John Scudder"/>, <contact fullname="Susan Hares"/>, <contact fullname="Dongjie (Jimmy)"/>, <contact fullname="Moses Nagarajah"/>, <contact fullname="Jeffrey (Zhaohui) Zhang"/>, <contact fullname="Joel Halpern"/>, <contact fullname="Jingrong Xie"/>, <contact fullname="Mohamed Boucadair"/>, <contact fullname="Greg Skinner"/>, <contact fullname="Simon Leinen"/>, <contact fullname="Navaneetha Krishnan"/>, <contact fullname="Ravi M R"/>, <contact fullname="Chandrasekar Ramachandran"/>, <contact fullname="Shradha Hegde"/>, <contact fullname="Colby Barth"/>, <contact fullname="Vishnu Pavan Beeram"/>, <contact fullname="Sunil Malali"/>, <contact fullname="William J Britto"/>, <contact fullname="R Shilpa"/>, <contact fullname="Ashish Kumar (FE)"/>, <contact fullname="Sunil Kumar Rawat"/>, <contact fullname="Abhishek Chakraborty"/>, <contact fullname="Richard Roberts"/>, <contact fullname="Krzysztof Szarkowicz"/>, <contact fullname="John E Drake"/>, <contact fullname="Srihari Sangli"/>, <contact fullname="Jim Uttaro"/>, <contact fullname="Luay Jalil"/>, <contact fullname="Keyur Patel"/>, <contact fullname="Ketan Talaulikar"/>, <contact fullname="Dhananjaya Rao"/>, <contact fullname="Swadesh Agarwal"/>, <contact fullname="Robert Raszuk"/>, <contact fullname="Ahmed Darwish"/>, <contact fullname="Aravind Srinivas Srinivasa Prabhakar"/>, <contact fullname="Moshiko Nayman"/>, <contact fullname="Chris Tripp"/>, <contact fullname="Gyan Mishra"/>, <contact fullname="Vijay Kestur"/>, and <contact fullname="Santosh Kolenchery"/> for all the valuable discussions, constructive criticisms, and review comments.</t> <t>The decision to not reuse SAFI 128 and create a new address family to carry these transport routes was based on suggestion made by <contact fullname="Richard Roberts"/> and <contact fullname="Krzysztof Szarkowicz"/>.</t> <t>Thanks to <contact fullname="John Scudder"/> for showing us with example how the Figures can be enhanced using SVG format.</t> </section> <!--[rfced] Please note that we have slightly modified the format of the Contributors section to make it more similar to the use in past RFCs and the guidance of RFC 7322 ("RFC Style Guide"). Please let us know any objections.--> <sectionanchor="Co-Authors"anchor="Contributors" numbered="false"title="Co-Authors">toc="default"> <name>Contributors</name> <t>The following people contributed substantially to the content of this document and should be considered coauthors:</t> <author fullname="Reshma Das" initials="D." surname="Das"> <organization>Juniper Networks, Inc.</organization> <address> <postal> <street>1133 InnovationWay,</street>Way</street> <city>Sunnyvale</city> <region>CA</region> <code>94089</code><country>US</country><country>United States of America</country> </postal> <email>dreshma@juniper.net</email> </address> </author> <author fullname="Israel Means" initials="I" surname="Means"> <organization abbrev="">AT&T</organization> <address> <postal> <street>2212 AvenidaMara,</street>Mara</street> <city>Chula Vista</city> <region>California</region> <code>91914</code><country>USA</country><country>United States of America</country> </postal> <email>israel.means@att.com</email> </address> </author> <author fullname="Csaba Mate" initials="CS" surname="Mate"> <organization abbrev="">KIFU, Hungarian NREN</organization> <address> <postal> <street>35 Vacistreet,</street>Street</street> <city>Budapest</city> <region/> <code>1134</code> <country>Hungary</country> </postal> <email>ietf@nop.hu</email> </address> </author> <author fullname="Deepak J Gowda" initials="J" surname="Gowda"> <organization abbrev="">Extreme Networks</organization> <address> <postal> <street>55 Commerce Valley Drive West, Suite300,</street>300</street> <city>Thornhill,Toronto,</city>Toronto</city> <region>Ontario</region> <code>L3T 7V9</code> <country>Canada</country> </postal> <email>dgowda@extremenetworks.com</email> </address> </author></section> <section anchor="Other Contributors" numbered="false" title="Other Contributors"><t>We also acknowledge the contribution of the following individuals:</t> <author fullname="Balaji Rajagopalan" initials="B." surname="Rajagopalan"> <organization>Juniper Networks, Inc.</organization> <address> <postal> <street>Electra, Exora Business Park~Marathahalli - Sarjapur Outer RingRoad,</street>Road</street> <city>Bangalore</city> <region>KA</region> <code>560103</code> <country>India</country> </postal> <email>balajir@juniper.net</email> </address> </author> <author fullname="Rajesh M" initials="M"> <organization>Juniper Networks, Inc.</organization> <address> <postal> <street>Electra, Exora Business Park~Marathahalli - Sarjapur Outer RingRoad,</street>Road</street> <city>Bangalore</city> <region>KA</region> <code>560103</code> <country>India</country> </postal> <email>mrajesh@juniper.net</email> </address> </author> <author fullname="Chaitanya Yadlapalli" initials="C" surname="Yadlapalli"> <organization abbrev="">AT&T</organization> <address> <postal> <street>200 S LaurelAve,</street> <city>Middletown,</city>Ave</street> <city>Middletown</city> <region>NJ</region> <code>07748</code><country>USA</country><country>United States of America</country> </postal> <email>cy098d@att.com</email> </address> </author> <author fullname="Mazen Khaddam" initials="M" surname="Khaddam"> <organization abbrev="">Cox Communications Inc.</organization> <address> <postal> <street/> <city>Atlanta</city> <region>GA</region> <code/><country>USA</country><country>United States of America</country> </postal> <email>mazen.khaddam@cox.com</email> </address> </author> <author fullname="Rafal Jan Szarecki" initials="R" surname="Szarecki"> <organizationabbrev="">Google.</organization>abbrev="">Google</organization> <address> <postal> <street>1160 N Mathilda Ave, Bldg5,</street> <city>Sunnyvale,</city>5</street> <city>Sunnyvale</city> <region>CA</region> <code>94089</code><country>USA</country><country>United States of America</country> </postal> <email>szarecki@google.com</email> </address> </author> <author fullname="Xiaohu Xu" initials="X" surname="Xu"> <organization abbrev="">China Mobile</organization> <address> <postal> <street/> <city>Beijing</city> <region/> <code/> <country>China</country> </postal> <email>xuxiaohu@cmss.chinamobile.com</email> </address> </author> </section></section> <section anchor="Acknowledgements" numbered="false" title="Acknowledgements"> <t>The authors thank Jeff Haas, John Scudder, Susan Hares, Dongjie (Jimmy), Moses Nagarajah, Jeffrey (Zhaohui) Zhang, Joel Halpern, Jingrong Xie, Mohamed Boucadair, Greg Skinner, Simon Leinen, Navaneetha Krishnan, Ravi M R, Chandrasekar Ramachandran, Shradha Hegde, Colby Barth, Vishnu Pavan Beeram, Sunil Malali, William J Britto, R Shilpa, Ashish Kumar (FE), Sunil Kumar Rawat, Abhishek Chakraborty, Richard Roberts, Krzysztof Szarkowicz, John E Drake, Srihari Sangli, Jim Uttaro, Luay Jalil, Keyur Patel, Ketan Talaulikar, Dhananjaya Rao, Swadesh Agarwal, Robert Raszuk, Ahmed Darwish, Aravind Srinivas Srinivasa Prabhakar, Moshiko Nayman, Chris Tripp, Gyan Mishra, Vijay Kestur, Santosh Kolenchery<!--[rfced] We had the following questions/comments related to abbreviation use throughout the document: a) Abbreviations that appeared without expansion have been expanded upon first use following guidance from RFC 7322 ("RFC Style Guide"). Please review these expansions forallaccuracy. b) We made some updates to thevaluable discussions, constructive criticisms,list of abbreviations in the Terminology section to match their use in past RFCs. We also flipped the expansion of TC-BE for a better 1:1 match between the abbreviation and the expansion. Please reviewcomments.</t> <t>The decisioncarefully and let us know any objections. c) We see BN expanded as "Border Node". Past use in RFCs points to "Boundary Node". Please review and let us know if any updates should be made. d) The term "Labeled ISIS" and the abbreviation "L-ISIS" don't appear in RFC 8867, and RFC 8867 does notreuseappear in the References section of this document. Please review the citation to this RFC in the Terminology section and let us know if/how to update. e) [RFC4684] uses "Route Target (RT) Constrain" rather than "Route Target Constrain (RTC)". We do see "Route Target Constraint (RTC)" in RFC 9125 (when citing RFC 4684). Please let us know if we should adopt the same form here (i.e., Route Target Constraint (RTC)). f) TC is expanded as Traffic Class in the companion documents (RFCs-to-be 9830 and 9831). This document expands it as Transport Class. Please review and let us know if we should make this consistent (see also TC ID and TC-BE). g) To follow the guidance at https://www.rfc-editor.org/styleguide/part2/#exp_abbrev, we will update to have the following abbreviations expanded on first use and then use the abbreviated form thereafter unless we hear objection: Transport Class (TC) Route Target (RT) Route Target Constrain (RTC) (see related query above) Community Carrying Attribute (CCA) BGP Classful Transport (BGP CT) Address Family Identifier (AFI) Route Distinguisher (RD) Endpoint (EP) Next Hop (NH) Transport Route Database (TRDB) Ingress Service Node (iSN) Egress Service Node (eSN) Autonomous System (AS) Per-Hop Behavior (PHB) --> <!--[rfced] We had the following questions related to terminology used throughout the document: a) Please note that we updated to use the following forms with relation to capitalization, hyphenation, etc. to match use/guidance in other documents in this cluster (see https://www.rfc-editor.org/cluster_info.php?cid=C534). Please review and let us know any objections: BGP UPDATE message Color Extended Community Route Target extended community data plane Please review the different treatment of "Extended Community" vs. "extended community" and confirm that this difference is intentional. b) Keeping point a) in mind, please review the names of the communities and extended communities throughout the document for consistency. We see varied use of quotation marks, places where words may be missing, differences in capitalization, etc. Examples below: Transport Class Route Target extended community vs. Transport Class extended community vs. "Transport Class" extended community (see also Transport Class Route Target vs. transport-class route-target) Transport Target Extended community transitive extended community vs. Transitive Extended Community Non-Transitive Extended Community vs. "Non-Transitive Transport Class" Route Target extended community vs. Non-Transitive Transport Class Extended community vs. "Non-Transitive Transport Class route target extended community" vs. Non-Transitive Transport Class vs. Non-Transitive version of the Transport Class extended community Mapping Community vs. Mapping community vs. mapping community Community vs. community (when used alone; see also communities) Extended Community vs. extended community (when used alone; see also extended communities) c) The following terminology seems to use inconsistent marking (i.e., capitalization, hyphenation, etc.) throughout the document. Please review these instances and consider if/how they may be made uniform: Resolution Scheme vs. resolution scheme vs. "Resolution Scheme" Route Target vs. route target Ingress domain vs. ingress domain Ingress node vs. ingress node Ingress PE vs. ingress PE (see also egress) Intent vs. intent Inter-AS vs. inter-AS (and Intra-AS vs. intra-AS) Option C vs. option c (and others like option b etc.) BGP Classful Transport vs. Classful Transport Classful Transport BGP route vs. Classful Transport route vs. BGP Classful Transport family routes Classful Transport NLRI vs. Classful Transport NLRI Prefix vs. Classful Transport prefix vs. "Classful Transport" SAFI NLRI Transport Tunnels vs. transport tunnels Transport-target vs. transport-target transport-target:0:100 vs. transport route target 0:200 vs. route target "transport-target:0:100" vs. transport class 100 routes Transport Family vs. Transport family vs. transport family (see also families) Transport class vs. transport class vs. Transport Class "Transport Class ID" field vs. "Transport Class" identifier Transport Class ID 100 vs. Transport Class 100 Color vs. color vs. 'Color' vs. "Color" (FYI 9830 is using Color) color:0:100500 vs. Color:0:100 Transposition scheme vs. transposition scheme vs. Transposition Scheme operator vs. Operator service family vs. Service family service route vs. Service route FLEX-ALGO vs. Flex-Algo vs. FlexAlgo MPLS label vs. MPLS Label Implicit-NULL vs. Implicit Null vs. Implicit NULL special label 3 (Implicit NULL) vs. value 3 (Implicit-NULL) RD:EP vs. "RD:EP" vs. 'RD:Endpoint' vs. "RD:Endpoint" vs. RD,EP vs. "RD, EP" (see also RD, RT) gold vs. Gold bronze vs. Bronze d) Terms including "best effort": we have updated these terms to appear as hyphenated when in attributive position (modifying a noun) but left them open otherwise. However, there is variance related to their quotation, capitalization, etc. remaining. Please review the terms and let us know if/how further updates for uniformity may be made (note: the list below includes our hyphenation changes). best-effort transport class vs. Best-Effort Transport Class "Best-Effort" transport class TRDB vs. Best-Effort TRDB vs. TRDB for best effort "best-effort" transport class routes vs. best-effort transport route 'Best-effort' SLA vs. best-effort SLA "Best-Effort Transport Class Route Target" vs. Best-Effort Transport Class Route Target "Best-Effort" Resolution Scheme vs. Best-effort resolution scheme vs. best-effort resolution scheme e) Please review the following similar instances and let us know if/how they should be made uniform. SAFI 76 (BGP CT) SAFI 76 "Classful Transport" AFI/SAFI 1/76 (Classful Transport SAFI) AFI/SAFI 1/128 (MPLS-labeled VPN address) Inet-VPN SAFI 128 SAFI 128 (L3VPN) f) There are many places in which quotation marks are used that we are uncertain of their meaning/purpose andcreatethey are inconsistent (appearing sometimes and not others or single quotes in some places while double or no quotes in others). Please review the use of quotation marks generally throughout the document. We suggest removing quotation marks unless they are absolutely necessary to convey anew address-familyspecific meaning (e.g., directly quoting another work). A few examples below from back-to-back sentences in which quotation seems tocarry these transport-routes was basedbe used inconsistently when used with "Transport Class Route Target Extended community". There are many other uses of quotation marks with many other terms to review. Original: These mechanisms are applied to BGP CT routes (AFI/SAFI: 1/76 or 2/76) using "Transport Class Route Target Extended community". vs. A BGP speaker that implements procedures described in this document and Route Target Constrain [RFC4684] MUST also apply the RTC procedures to the Transport Class Route Target Extended communities carried onsuggestion made by Richard RobertsBGP CT routes (AFI/SAFI: 1/76 or 2/76). andKrzysztof Szarkowicz.</t> <t>Thankssee the mixed use in this paragraph: This document also reserves the Non-Transitive version of Transport Class extended community (Section 13.2.1.1.2) for future use. The "Non-Transitive Transport Class" Route Target Extended Community is not used. If received, it is considered equivalent in functionality toJohn Scudderthe Transitive Transport Class Route Target Extended Community, except forshowingthe difference in Transitive bit flag. g) Other documents in this cluster do not use quotations around field names (and RFC-to-be 9830 chose to skip quotes for field names in AUTH48). As there is mixed use in this document, would you like to update to match this convention? Some examples: "Transport Class ID" field 'Transport Class ID' field Policy Color field Next hop Address field BGP next hop field Local Administrator field MPLS Label field <TC> field "Type" field Value field 'Color' field --> <!--[rfced] Please review uses of the slash "/" character in text and consider whether "and", "or", or "and/or" might be clearer for the reader. --> <!--[rfced] Please note that we have removed the linking of some terms in the document as links are provided in the citations immediately adjacent to the terms. Please let uswith example howknow any objections. --> <!-- [rfced] Please review theFigures can"Inclusive Language" portion of the online Style Guide <https://www.rfc-editor.org/styleguide/part2/#inclusive_language> and let us know if any changes are needed. Updates of this nature typically result in more precise language, which is helpful for readers. Note that our script did not flag any words in particular, but this should still beenhanced using SVG format.</t> </section>reviewed as a best practice. --> </back> </rfc>