rfc9832xml2.original.xml   rfc9832.xml 
<?xml version="1.0" encoding="US-ASCII"?> <?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?> <!DOCTYPE rfc [
<?rfc tocompact="yes"?> <!ENTITY nbsp "&#160;">
<?rfc tocdepth="3"?> <!ENTITY zwsp "&#8203;">
<?rfc tocindent="yes"?> <!ENTITY nbhy "&#8209;">
<?rfc symrefs="yes"?> <!ENTITY wj "&#8288;">
<?rfc sortrefs="yes"?> ]>
<?rfc comments="yes"?>
<?rfc inline="yes"?> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="exp" docName="draft-ie
<?rfc compact="yes"?> tf-idr-bgp-ct-39" number="9832" consensus="true" ipr="trust200902" obsoletes=""
<?rfc subcompact="no"?> updates="" submissionType="IETF" xml:lang="en" tocInclude="true" tocDepth="3" sy
<rfc category="exp" docName="draft-ietf-idr-bgp-ct-39" ipr="trust200902"> mRefs="true" sortRefs="true" version="3">
<front> <front>
<title abbrev="BGP Classful Transport Planes">BGP Classful Transport <title abbrev="BGP Classful Transport Planes">BGP Classful Transport
Planes</title> Planes</title>
<seriesInfo name="RFC" value="9832"/>
<author fullname="Kaliraj Vairavakkalai" initials="K." role="editor" <author fullname="Kaliraj Vairavakkalai" initials="K." role="editor" surname
surname="Vairavakkalai"> ="Vairavakkalai">
<organization>Juniper Networks, Inc.</organization> <organization>Juniper Networks, Inc.</organization>
<address> <address>
<postal> <postal>
<street>1133 Innovation Way,</street> <street>1133 Innovation Way</street>
<city>Sunnyvale</city> <city>Sunnyvale</city>
<region>CA</region> <region>CA</region>
<code>94089</code> <code>94089</code>
<country>United States of America</country>
<country>US</country>
</postal> </postal>
<email>kaliraj@juniper.net</email> <email>kaliraj@juniper.net</email>
</address> </address>
</author> </author>
<author fullname="Natrajan Venkataraman" initials="N." role="editor" surname
<author fullname="Natrajan Venkataraman" initials="N." role="editor" ="Venkataraman">
surname="Venkataraman">
<organization>Juniper Networks, Inc.</organization> <organization>Juniper Networks, Inc.</organization>
<address> <address>
<postal> <postal>
<street>1133 Innovation Way,</street> <street>1133 Innovation Way</street>
<city>Sunnyvale</city> <city>Sunnyvale</city>
<region>CA</region> <region>CA</region>
<code>94089</code> <code>94089</code>
<country>United States of America</country>
<country>US</country>
</postal> </postal>
<email>natv@juniper.net</email> <email>natv@juniper.net</email>
</address> </address>
</author> </author>
<date month="August" year="2025"/>
<date day="28" month="2" 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> <abstract>
<t>This document specifies a mechanism referred to as "Intent Driven <t>This document specifies a mechanism referred to as "Intent-Driven
Service Mapping". The mechanism uses BGP to express intent based Service Mapping". The mechanism uses BGP to express intent-based
association of overlay routes with underlay routes having specific association of overlay routes with underlay routes having specific
Traffic Engineering (TE) characteristics satisfying a certain Service Traffic Engineering (TE) characteristics satisfying a certain Service
Level Agreement (SLA). This is achieved by defining new constructs to Level Agreement (SLA). This is achieved by defining new constructs to
group underlay routes with sufficiently similar TE characteristics into group underlay routes with sufficiently similar TE characteristics into
identifiable classes (called "Transport Classes"), that overlay routes identifiable classes (called "Transport Classes" or "TCs"), that overlay r outes
use as an ordered set to resolve reachability (Resolution Schemes) use as an ordered set to resolve reachability (Resolution Schemes)
towards service endpoints. These constructs can be used, for example, to towards service endpoints. These constructs can be used, for example, to
realize the "IETF Network Slice" defined in TEAS Network Slices realize the "IETF Network Slice" defined in the TEAS Network Slices
framework.</t> framework.</t>
<t>Additionally, this document specifies protocol procedures for BGP <t>Additionally, this document specifies protocol procedures for BGP
that enable dissemination of service mapping information in a network that enable dissemination of service mapping information in a network
that may span multiple cooperating administrative domains. These domains that may span multiple cooperating administrative domains. These domains
may be administered either by the same provider or by closely may be administered either by the same provider or by closely
coordinating providers. A new BGP address family that leverages RFC 4364 coordinating providers. A new BGP address family that leverages the proced
("BGP/MPLS IP Virtual Private Networks (VPNs)") procedures and follows ures described in
RFC 8277 ("Using BGP to Bind MPLS Labels to Address Prefixes") NLRI "BGP/MPLS IP Virtual Private Networks (VPNs)" (RFC 4364) and follows the N
encoding is defined to enable each advertised underlay route to be LRI encoding described in
RFC 8277 ("Using BGP to Bind MPLS Labels to Address Prefixes") is defined
to enable each advertised underlay route to be
identified by its class. This new address family is called "BGP Classful identified by its class. This new address family is called "BGP Classful
Transport", a.k.a., BGP CT.</t> Transport" (or "BGP CT").</t>
</abstract> </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> </front>
<middle> <middle>
<section title="Introduction"> <section numbered="true" toc="default">
<name>Introduction</name>
<t>Provider networks typically span across multiple domains where each <t>Provider networks typically span across multiple domains where each
domain can either represent an Autonomous System (AS) or an Interior domain can either represent an Autonomous System (AS) or an Interior
Gateway Protocol (IGP) region within an AS. In these networks, several Gateway Protocol (IGP) region within an AS. In these networks, several
services are provisioned between different pairs of service endpoints services are provisioned between different pairs of service endpoints
(e.g., Provider Edge (PE) nodes), that can either be in the same domain (e.g., Provider Edge (PE) nodes) that can be either in the same domain
or across different domains.</t> or across different domains.</t>
<t><xref target="RFC9315" format="default"/> defines "Intent" as:</t>
<t><xref target="RFC9315"></xref> defines "Intent" as, "A set of operation <blockquote><t>A set of operational
al
goals (that a network should meet) and outcomes (that a network is suppose d goals (that a network should meet) and outcomes (that a network is suppose d
to deliver) defined in a declarative manner without specifying how to achi eve to deliver) defined in a declarative manner without specifying how to achi eve
or implement them.".</t> or implement them.</t></blockquote>
<t> This document prescribes constructs and procedures <t> This document prescribes constructs and procedures
to realize "Intent", and enable provider networks to be able to forward to realize "Intent" and enable provider networks to forward
service traffic based on service specific intent, end-to-end across servic service traffic based on service-specific intent from end-to-end across se
e rvice
endpoints.</t> endpoints.</t>
<t>The mechanisms described in this document achieve "Intent-Driven
<t>The mechanisms described in this document achieve "Intent Driven Service Mapping" between any pair of service endpoints by:</t>
Service Mapping" between any pair of service endpoints by:<list> <ul spacing="normal">
<li>
<t>Provisioning end-to-end "intent-aware" paths using BGP. For <t>Provisioning end-to-end "intent-aware" paths using BGP. For
example, low latency path, best effort path.</t> example, a low-latency path or a best-effort path.</t>
</li>
<t>Expressing a desired intent. For example, use low latency path <li>
with fallback to the best effort path.</t> <t>Expressing a desired intent. For example, use a low-latency path
with a fallback to the best-effort path.</t>
</li>
<li>
<t>Forwarding service traffic "only" using end-to-end "intent-aware" <t>Forwarding service traffic "only" using end-to-end "intent-aware"
paths honoring that desired intent.</t> paths honoring that desired intent.</t>
</list></t> </li>
</ul>
<t>The constructs and procedures defined in this document apply equally <t>The constructs and procedures defined in this document apply equally
to intra-AS as well as inter-AS (a.k.a. multi-AS) Option A, Option B and to intra-AS and inter-AS (a.k.a. multi-AS) deployments in the style of Opt
Option C (Section 10, <xref target="RFC4364"/>) style deployments in ion A, Option B, and
Option C (<xref target="RFC4364" sectionFormat="of" section="10"/>) in
provider networks.</t> provider networks.</t>
<t>Such networks provision intra-domain transport tunnels between a pair <t>Such networks provision intra-domain transport tunnels between a pair
of endpoints, typically a service node or a border node that service traff ic of endpoints, typically a service node or a border node that service traff ic
traverses through. These tunnels are signaled using various tunneling traverses through. These tunnels are signaled using various tunneling
protocols depending on the forwarding architecture used in the domain, protocols depending on the forwarding architecture used in the domain,
which can be Multiprotocol Label Switching (MPLS), Internet Protocol which can be Multiprotocol Label Switching (MPLS), Internet Protocol
version 4 (IPv4), or Internet Protocol version 6 (IPv6).</t> version 4 (IPv4), or Internet Protocol version 6 (IPv6).</t>
<t>The mechanisms defined in this document allow different tunneling <t>The mechanisms defined in this document allow different tunneling
technologies to become Transport Class aware. These can be applied technologies to become TC aware. These can be applied
homogeneously to intra-domain tunneling technologies used in existing homogeneously to intra-domain tunneling technologies used in existing
brownfield networks as well as new greenfield networks. For clarity, brownfield networks as well as new greenfield networks. For clarity,
only some tunneling technologies are detailed in this document. In some only some tunneling technologies are detailed in this document. In some
examples only MPLS Traffic Engineering (TE) examples are described. examples, only MPLS Traffic Engineering (TE) is described.
Other tunneling technologies have been described in detail in other Other tunneling technologies have been described in detail in other
documents and only an overview has been included in this document. For documents (and only an overview has been included in this document). For
example, the details for Segment Routing (SRv6) are provided in <xref example, the details for Segment Routing over IPv6 (SRv6) are provided in
target="BGP-CT-SRv6"/>, and an overview is provided in <xref <xref target="I-D.ietf-idr-bgp-ct-srv6" format="default"/> and an overview is pr
target="SRv6-Support"/>.</t> ovided in <xref target="SRv6-Support" format="default"/>.</t>
<t>Customers need to be able to express desired Intent to the network, <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 and the network needs to have constructs able to enact the customer's
intent. The network constructs defined in this document are used to intent. The network constructs defined in this document are used to
classify and group these intra-domain tunnels based on various classify and group these intra-domain tunnels based on various
characteristics, like TE characteristics (e.g., low latency), into characteristics, like TE characteristics (e.g., low-latency), into
identifiable classes that can pass "intent-aware" traffic. These identifiable classes that can pass "intent-aware" traffic. These
constructs enable services to signal their intent to use one or more constructs enable services to signal their intent to use one or more
identifiable classes, and mechanisms to selectively map traffic onto identifiable classes and mechanisms to selectively map traffic onto
"intent-aware" tunnels for these classes.</t> "intent-aware" tunnels for these classes.</t>
<t>This document introduces a new BGP address family called "BGP <t>This document introduces a new BGP address family called "BGP
Classful Transport", that extends/stitches intent-aware intra-domain Classful Transport", which extends/stitches intent-aware intra-domain
tunnels belonging to the same class across domain boundaries, to tunnels belonging to the same class across domain boundaries to
establish end-to-end intent-aware paths between service endpoints.</t> establish end-to-end intent-aware paths between service endpoints.</t>
<t><xref target="I-D.hr-spring-intentaware-routing-using-color" format="de
<t><xref target="Intent-Routing-Color"/> describes various use cases and fault"/> describes various use cases and
applications of the procedures described in this document.</t> applications of the procedures described in this document.</t>
<t><xref target="Appendix_C" format="default"/> provides an outline of the
<t><xref target="Appendix C"/> provides an outline of the design design
philosophy behind this specification. In particular, readers who are philosophy behind this specification. In particular, readers who are
already familiar with one or more BGP VPN technologies may want to already familiar with one or more BGP VPN technologies may want to
review this appendix before reading the main body of the review this appendix before reading the main body of the
specification.</t> specification.</t>
</section> </section>
<section numbered="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 BGP CT or BGP LU
routes with NH self)</dd>
<dt>AFI:</dt><dd>Address Family Identifier</dd>
<dt>AS:</dt><dd>Autonomous System</dd>
<dt>ASBR:</dt><dd>Autonomous System Border Router</dd>
<dt>ASN:</dt><dd>Autonomous System Number</dd>
<dt>BGP VPN:</dt><dd>VPNs built using RD or RT; architecture described
in <xref target="RFC4364"/></dd>
<dt>BGP LU:</dt><dd>BGP Labeled Unicast family (AFI/SAFIs 1/4, 2/4)</dd>
<dt>BGP CT:</dt><dd>BGP Classful Transport family (AFI/SAFIs 1/76, 2/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 Carrier VPN)</dd>
<dt>DSCP:</dt><dd>Differentiated Services Code Point</dd>
<dt>EP:</dt><dd>Endpoint (of a tunnel, e.g., a loopback address in the ne
twork)</dd>
<dt>EPE:</dt><dd>Egress Peer Engineering</dd>
<dt>eSN:</dt><dd>Egress Service Node</dd>
<dt>FEC:</dt><dd>Forwarding Equivalence Class</dd>
<dt>FRR:</dt><dd>Fast Reroute (Preprogrammed NH leg in forwarding)</dd>
<dt>iSN:</dt><dd>Ingress Service Node</dd>
<dt>L-ISIS:</dt><dd>Labeled ISIS (see RFC 8667)</dd>
<dt>LSP:</dt><dd>Label Switched Path</dd>
<dt>MPLS:</dt><dd>Multiprotocol Label Switching</dd>
<dt>NH:</dt><dd>Next Hop</dd>
<dt>NLRI:</dt><dd>Network Layer Reachability Information</dd>
<dt>PE:</dt><dd>Provider Edge</dd>
<dt>PIC:</dt><dd>Prefix Independent Convergence</dd>
<dt>PNH:</dt><dd>Protocol Next Hop (address carried in a BGP UPDATE messa
ge)</dd>
<dt>RD:</dt><dd>Route Distinguisher</dd>
<dt>RD:EP:</dt><dd>Route Distinguisher and
Endpoint (in a BGP Prefix)</dd>
<dt>RSVP-TE:</dt><dd>Resource Reservation Protocol - Traffic Engineering<
/dd>
<dt>RT:</dt><dd>Route Target (as used in Route Target extended community)
</dd>
<dt>RTC:</dt><dd>Route Target Constrain <xref target="RFC4684"/></dd>
<dt>SAFI:</dt><dd>Subsequent Address Family Identifier</dd>
<dt>SID:</dt><dd>Segment Identifier</dd>
<dt>SLA:</dt><dd>Service Level Agreement</dd>
<dt>SN:</dt><dd>Service Node</dd>
<dt>SR:</dt><dd>Segment Routing</dd>
<dt>SRTE:</dt><dd>Segment Routing Traffic Engineering</dd>
<dt>TC:</dt><dd>Transport Class</dd>
<dt>TC ID:</dt><dd>Transport Class Identifier</dd>
<dt>TC-BE:</dt><dd>Transport Class - Best Effort</dd>
<dt>TE:</dt><dd>Traffic Engineering</dd>
<dt>TEA:</dt><dd>Tunnel Encapsulation Attribute (attribute type code 23)<
/dd>
<dt>TRDB:</dt><dd>Transport Route Database</dd>
<dt>UHP:</dt><dd>Ultimate Hop Popping</dd>
<dt>VRF:</dt><dd>Virtual Routing and Forwarding (used with a table)</dd>
</dl>
</section>
<section numbered="true" toc="default">
<name>Definitions and Notations</name>
<section title="Terminology"> <dl spacing="normal" newline="true">
<t>ABR: Area Border Router (Readvertises BGP CT or BGP LU routes with
next hop self)</t>
<t>AFI: Address Family Identifier</t>
<t>AS: Autonomous System</t>
<t>ASBR: Autonomous System Border Router</t>
<t>ASN: Autonomous System Number</t>
<t>BGP VPN: VPNs built using RD, RT; architecture described in
RFC4364</t>
<t>BGP LU: BGP Labeled Unicast family (AFI/SAFIs 1/4, 2/4)</t>
<t>BGP CT: 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 serving Carrier VPN</t>
<t>DSCP: Differentiated Services Code Point</t>
<t>EP: Endpoint of a tunnel, e.g. a loopback address in the network</t>
<t>EPE: Egress Peer Engineering</t>
<t>eSN: Egress Service Node</t>
<t>FEC: Forwarding Equivalence Class</t>
<t>FRR: Fast ReRoute (Pre-programmed next hop leg in forwarding)</t>
<t>iSN: Ingress Service Node</t>
<t>L-ISIS: Labeled ISIS (RFC 8667)</t>
<t>LSP: Label Switched Path</t>
<t>MPLS: Multi Protocol Label Switching</t>
<t>NLRI: Network Layer Reachability Information</t>
<t>PE: Provider Edge</t>
<t>PIC: Prefix scale Independent Convergence</t>
<t>PNH: Protocol Next Hop address carried in a BGP Update message</t>
<t>RD: Route Distinguisher</t>
<t>RD:EP : BGP CT Prefix consisting of Route Distinguisher and
Endpoint</t>
<t>RSVP-TE: Resource Reservation Protocol - Traffic Engineering</t>
<t>RT: Route Target extended community</t>
<t>RTC: Route Target Constrain (RFC 4684)</t>
<t>SAFI: Subsequent Address Family Identifier</t>
<t>SID: Segment Identifier</t>
<t>SLA: Service Level Agreement</t>
<t>SN: Service Node</t>
<t>SR: Segment Routing</t>
<t>SRTE: Segment Routing Traffic Engineering</t>
<t>TC: Transport Class</t>
<t>TC ID: Transport Class Identifier</t>
<t>TC-BE: Best Effort Transport Class</t>
<t>TE: Traffic Engineering</t>
<t>TEA: Tunnel Encapsulation Attribute, attribute type code 23</t>
<t>TRDB: Transport Route Database</t>
<t>UHP: Ultimate Hop Pop</t> <!--[rfced] In the following text snippets, please review the format
of attributes for the following:
<t>VRF: Virtual Routing and Forwarding table</t> 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)?
<section title="Definitions and Notations"> b) Should they all use "attribute type code", "BGP attribute code", or
<t>BGP Community Carrying Attribute (CCA) : A BGP attribute that "attribute code" in their parentheticals? Or are these purposly
carries community. Examples of BGP CCA are: COMMUNITIES (attribute different?
code 8), EXTENDED COMMUNITIES (attribute code 16), IPv6 Address
Specific Extended Community (attribute code 25), LARGE_COMMUNITY
(attribute code 32).</t>
<t>color:0:100 : This notation denotes a Color extended community as Original:
defined in RFC 9012 with the Flags field set to 0 and the color field A BGP attribute that carries community. Examples of BGP CCAs are
set to 100.</t> COMMUNITIES (attribute code 8), EXTENDED COMMUNITIES (attribute code
16), IPv6 Address Specific Extended Community (attribute code 25), and
LARGE_COMMUNITY (attribute code 32).
<t>End to End Tunnel: A tunnel spanning several adjacent tunnel ...
domains created by "stitching" them together using MPLS labels or an
equivalent identifier based on the forwarding architecture.</t>
<t>Import processing: Receive side processing of an overlay route, TEA: Tunnel Encapsulation Attribute (attribute type code 23)
including things like import policy application, resolution scheme
selection and next hop resolution.</t>
<t>Mapping Community: 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: Internal Infrastructure address space in It is carried in BGP extended community attribute (BGP attribute code
Provider network managed by the Operator.</t> 16).
<t>Resolution Scheme: A construct comprising of an ordered set of ...
TRDBs to resolve next hop reachability, for realizing a desired
intent.</t>
<t>Service Family: A BGP address family used for advertising routes ..., or IPv6-address specific RT (BGP attribute code 25).
for destinations in "data traffic". For example, AFI/SAFIs 1/1 or
1/128.</t>
<t>Service Prefix: A destinations in "data traffic". Routes to these ...
prefixes are carried in a Service family.</t>
<t>Transport Family: A BGP address family used for advertising ...UDP tunneling information is carried using the Tunnel Encapsulation
tunnels, which are in turn used by service routes for resolution. For Attribute (code 23)...
example, AFI/SAFIs 1/4 or 1/76.</t>
<t>Transport Tunnel : 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,
IGP FLEX-ALGO or SRTE.</t>
<t>Transport, Transport Layer: A layer in the network that contains <dt>BGP CCA:</dt><dd>A BGP attribute
Transport Tunnels and Transport Families.</t> that carries community. Examples of BGP CCAs are COMMUNITIES
(attribute code 8), EXTENDED COMMUNITIES (attribute code 16), IPv6
Address Specific Extended Community (attribute code 25), and
LARGE_COMMUNITY (attribute code 32).</dd>
<t>Tunnel Route: A Route to Tunnel Destination/Endpoint that is <!--[rfced] Please review the use of "color field" in the following
installed at the headend (ingress) of the tunnel.</t> 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.)
<t>Tunnel Domain: A domain of the network containing Service Nodes Original:
(SNs) and Border Nodes (BNs) under a single administrative control
that has tunnels between them.</t>
<t>Brownfield network: An existing network that is already in service, ...with the Flags field set to 0 and the color field set to 100.
deploying a chosen set of technologies and hardware. Enhancements and
upgrades to such network deployments protect return on investment, and
should consider continuity of service.</t>
<t>Greenfield network: A new network deployment which can make choice Perhaps:
of new technology or hardware as needed, with fewer constraints than ...with the "Flags" field set to 0 and the "Color Value" field set to 100.
brownfield network.</t> -->
<dt>color:0:100:</dt><dd>This notation denotes a Color Extended
Community as defined in <xref target="RFC9012"/> with the "Flags" fiel
d set to 0 and
the "Color" field set to 100.</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 forwarding
architecture.</dd>
<dt>Import processing:</dt><dd>Receive-side processing of an overlay
route, including things like import-policy application, resolution-sch
eme selection, and NH resolution.</dd>
<t>Transport Class: A construct to group transport tunnels offering <dt>Mapping Community:</dt><dd>Any BGP CCA (e.g., Community,
similar SLA (Ref: Sec 4.1).</t> Extended Community) on an overlay route that maps to a Resolution
Scheme. For example, color:0:100, transport-target:0:100.</dd>
<dt>Provider Namespace:</dt><dd>Internal Infrastructure address
space in a provider network managed by the Operator.</dd>
<dt>Resolution Scheme:</dt><dd>A construct comprising of an ordered
set of TRDBs to resolve NH reachability for realizing a
desired intent.</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 or 1/128.</dd>
<dt>Service Prefix:</dt><dd>A destination in "data traffic". Routes
to these prefixes are carried in a Service family.</dd>
<dt>Transport Family:</dt><dd>A BGP address family used for
advertising tunnels, which are, in turn, used by service routes for
resolution. For example, AFI/SAFIs 1/4 or 1/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, IGP Flexible Algorithm (FLEX-ALGO), or SRTE.</dd>
<dt>Transport, Transport Layer:</dt><dd>A layer in the network that
contains Transport Tunnels and Transport Families.</dd>
<dt>Tunnel Route:</dt><dd>A Route to Tunnel Destination/Endpoint
that is installed at the headend (ingress) of the tunnel.</dd>
<dt>Tunnel Domain:</dt><dd>A domain of the network containing
SNs and BNs under a single
administrative control that has tunnels between them.</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 on investment and should consider continuity of
service.</dd>
<dt>Greenfield network:</dt><dd>A new network deployment that can
make choices of new technology or hardware as needed with fewer
constraints than brownfield network.</dd>
<dt>Transport Class:</dt><dd>A construct to group transport tunnels
offering similar SLAs (see <xref target="tc-te"/>).</dd>
<dt>Transport Class RT:</dt><dd>A Route Target extended community
used to identify a specific Transport Class.</dd>
<dt>transport-target:0:100:</dt><dd>This notation denotes a
Transport Class Route Target extended community as defined in this doc
ument
with the "Transport Class ID" field set to 100.</dd>
<dt>Transport Route Database:</dt><dd>At the SN and BN, a Transport
Class has an associated TRDB that collects its
tunnel routes.</dd>
<dt>Transport Plane:</dt><dd>An end-to-end plane consisting of
transport tunnels belonging to the same Transport 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&nbsp;14 <xref target="RFC2119"/> <xref
target="RFC8174"/> when, and only when, they appear in all capitals, as
shown here.
</t></section>
<t>Transport Class RT: A Route Target Extended Community used to </section>
identify a specific Transport Class.</t> <section numbered="true" toc="default">
<name>Architecture Overview</name>
<t>This section describes the BGP CT architecture with a brief
illustration:</t>
<t>transport-target:0:100 : This notation denotes a Transport Class RT <!--[rfced] Regarding figures, artwork, and SVG:
extended community as defined in this document with the "Transport
Class ID" field set to 100.</t>
<t>Transport Route Database: At the SN and BN, a Transport Class has a) Please review that all lines in <artwork> are 69 characters or
an associated Transport Route Database that collects its Tunnel less. If not, please consider how figures may be updated in order to
Routes.</t> fit this limitation (some warnings of outdenting from xml2rfc exist).
<t>Transport Plane: An end-to-end plane consisting of transport b) FYI - the RPC does not edit SVG figures. If any changes are made
tunnels belonging to the same Transport Class.</t> to their ASCII equivalents, authors should incorporate these changes
</section> into the SVG and resubmit these changes to the RPC.
</section>
<section title="Architecture Overview"> -->
<t>This section describes the BGP CT architecture with a brief
illustration.</t>
<figure title="BGP CT Overview with Example Topology" anchor="ArchOv"><artset><a <figure anchor="ArchOv">
rtwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height= <name>BGP CT Overview with Example Topology</name>
"496" width="560" viewBox="0 0 560 496" class="diagram" text-anchor="middle" fon <artset>
t-family="monospace" font-size="13px" stroke-linecap="round"> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://www
<path d="M 24,240 L 24,320" fill="none" stroke="black"/> .w3.org/2000/svg" version="1.1" height="496" width="560" viewBox="0 0 560 496" c
<path d="M 424,64 L 424,96" fill="none" stroke="black"/> lass="diagram" text-anchor="middle" font-family="monospace" font-size="13px" str
<path d="M 472,240 L 472,320" fill="none" stroke="black"/> oke-linecap="round">
<path d="M 240,32 L 344,32" fill="none" stroke="black"/> <path d="M 24,240 L 24,320" fill="none" stroke="black"/>
<path d="M 360,32 L 384,32" fill="none" stroke="black"/> <path d="M 424,64 L 424,96" fill="none" stroke="black"/>
<path d="M 104,64 L 176,64" fill="none" stroke="black"/> <path d="M 472,240 L 472,320" fill="none" stroke="black"/>
<path d="M 328,64 L 376,64" fill="none" stroke="black"/> <path d="M 240,32 L 344,32" fill="none" stroke="black"/>
<path d="M 72,112 L 88,112" fill="none" stroke="black"/> <path d="M 360,32 L 384,32" fill="none" stroke="black"/>
<path d="M 240,110 L 256,110" fill="none" stroke="black"/><path d="M 240,114 L 2 <path d="M 104,64 L 176,64" fill="none" stroke="black"/>
56,114" fill="none" stroke="black"/> <path d="M 328,64 L 376,64" fill="none" stroke="black"/>
<path d="M 312,112 L 328,112" fill="none" stroke="black"/> <path d="M 72,112 L 88,112" fill="none" stroke="black"/>
<path d="M 104,192 L 168,192" fill="none" stroke="black"/> <path d="M 240,110 L 256,110" fill="none" stroke="black"/>
<path d="M 312,192 L 400,192" fill="none" stroke="black"/> <path d="M 240,114 L 256,114" fill="none" stroke="black"/>
<path d="M 40,224 L 48,224" fill="none" stroke="black"/> <path d="M 312,112 L 328,112" fill="none" stroke="black"/>
<path d="M 136,224 L 152,224" fill="none" stroke="black"/> <path d="M 104,192 L 168,192" fill="none" stroke="black"/>
<path d="M 360,224 L 376,224" fill="none" stroke="black"/> <path d="M 312,192 L 400,192" fill="none" stroke="black"/>
<path d="M 448,224 L 456,224" fill="none" stroke="black"/> <path d="M 40,224 L 48,224" fill="none" stroke="black"/>
<path d="M 48,240 L 64,240" fill="none" stroke="black"/> <path d="M 136,224 L 152,224" fill="none" stroke="black"/>
<path d="M 272,240 L 288,240" fill="none" stroke="black"/> <path d="M 360,224 L 376,224" fill="none" stroke="black"/>
<path d="M 48,288 L 64,288" fill="none" stroke="black"/> <path d="M 448,224 L 456,224" fill="none" stroke="black"/>
<path d="M 272,288 L 288,288" fill="none" stroke="black"/> <path d="M 48,240 L 64,240" fill="none" stroke="black"/>
<path d="M 40,336 L 48,336" fill="none" stroke="black"/> <path d="M 272,240 L 288,240" fill="none" stroke="black"/>
<path d="M 448,336 L 456,336" fill="none" stroke="black"/> <path d="M 48,288 L 64,288" fill="none" stroke="black"/>
<path d="M 56,80 L 72,112" fill="none" stroke="black"/> <path d="M 272,288 L 288,288" fill="none" stroke="black"/>
<path d="M 320,80 L 328,96" fill="none" stroke="black"/> <path d="M 40,336 L 48,336" fill="none" stroke="black"/>
<path d="M 376,64 L 384,48" fill="none" stroke="black"/> <path d="M 448,336 L 456,336" 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 56,80 L 72,112" fill="none" stroke="black"/>
/> <path d="M 320,80 L 328,96" fill="none" stroke="black"/>
<path d="M 456,224 C 464.83064,224 472,231.16936 472,240" fill="none" stroke="bl <path d="M 376,64 L 384,48" fill="none" stroke="black"/>
ack"/> <path d="M 40,224 C 31.16936,224 24,231.16936 24,240" fill="none"
<path d="M 40,336 C 31.16936,336 24,328.83064 24,320" fill="none" stroke="black" stroke="black"/>
/> <path d="M 456,224 C 464.83064,224 472,231.16936 472,240" fill="no
<path d="M 456,336 C 464.83064,336 472,328.83064 472,320" fill="none" stroke="bl ne" stroke="black"/>
ack"/> <path d="M 40,336 C 31.16936,336 24,328.83064 24,320" fill="none"
<path d="M 124,88 L 148,88" fill="none" stroke="black"/> stroke="black"/>
<path d="M 364,88 L 388,88" fill="none" stroke="black"/> <path d="M 456,336 C 464.83064,336 472,328.83064 472,320" fill="no
<path d="M 120,136 L 140,136" fill="none" stroke="black"/> ne" stroke="black"/>
<path d="M 360,136 L 380,136" fill="none" stroke="black"/> <path d="M 124,88 L 148,88" fill="none" stroke="black"/>
<polygon class="arrowhead" points="432,64 420,58.4 420,69.6" fill="black" transf <path d="M 364,88 L 388,88" fill="none" stroke="black"/>
orm="rotate(270,424,64)"/> <path d="M 120,136 L 140,136" fill="none" stroke="black"/>
<polygon class="arrowhead" points="408,192 396,186.4 396,197.6" fill="black" tra <path d="M 360,136 L 380,136" fill="none" stroke="black"/>
nsform="rotate(0,400,192)"/> <polygon class="arrowhead" points="432,64 420,58.4 420,69.6" fill=
<polygon class="arrowhead" points="368,224 356,218.4 356,229.6" fill="black" tra "black" transform="rotate(270,424,64)"/>
nsform="rotate(180,360,224)"/> <polygon class="arrowhead" points="408,192 396,186.4 396,197.6" fi
<polygon class="arrowhead" points="368,32 356,26.4 356,37.6" fill="black" transf ll="black" transform="rotate(0,400,192)"/>
orm="rotate(180,360,32)"/> <polygon class="arrowhead" points="368,224 356,218.4 356,229.6" fi
<polygon class="arrowhead" points="336,64 324,58.4 324,69.6" fill="black" transf ll="black" transform="rotate(180,360,224)"/>
orm="rotate(180,328,64)"/> <polygon class="arrowhead" points="368,32 356,26.4 356,37.6" fill=
<polygon class="arrowhead" points="280,288 268,282.4 268,293.6" fill="black" tra "black" transform="rotate(180,360,32)"/>
nsform="rotate(180,272,288)"/> <polygon class="arrowhead" points="336,64 324,58.4 324,69.6" fill=
<polygon class="arrowhead" points="280,240 268,234.4 268,245.6" fill="black" tra "black" transform="rotate(180,328,64)"/>
nsform="rotate(180,272,240)"/> <polygon class="arrowhead" points="280,288 268,282.4 268,293.6" fi
<polygon class="arrowhead" points="144,224 132,218.4 132,229.6" fill="black" tra ll="black" transform="rotate(180,272,288)"/>
nsform="rotate(180,136,224)"/> <polygon class="arrowhead" points="280,240 268,234.4 268,245.6" fi
<polygon class="arrowhead" points="112,64 100,58.4 100,69.6" fill="black" transf ll="black" transform="rotate(180,272,240)"/>
orm="rotate(180,104,64)"/> <polygon class="arrowhead" points="144,224 132,218.4 132,229.6" fi
<polygon class="arrowhead" points="56,288 44,282.4 44,293.6" fill="black" transf ll="black" transform="rotate(180,136,224)"/>
orm="rotate(180,48,288)"/> <polygon class="arrowhead" points="112,64 100,58.4 100,69.6" fill=
<polygon class="arrowhead" points="56,240 44,234.4 44,245.6" fill="black" transf "black" transform="rotate(180,104,64)"/>
orm="rotate(180,48,240)"/> <polygon class="arrowhead" points="56,288 44,282.4 44,293.6" fill=
<g class="text"> "black" transform="rotate(180,48,288)"/>
<text x="132" y="36">INET</text> <polygon class="arrowhead" points="56,240 44,234.4 44,245.6" fill=
<text x="212" y="36">[RR21]</text> "black" transform="rotate(180,48,240)"/>
<text x="352" y="36">&lt;</text> <g class="text">
<text x="412" y="36">[RR11]</text> <text x="132" y="36">INET</text>
<text x="144" y="52">Service</text> <text x="212" y="36">[RR21]</text>
<text x="192" y="52">/</text> <text x="352" y="36">&lt;</text>
<text x="424" y="52">|</text> <text x="412" y="36">[RR11]</text>
<text x="496" y="52">IP1,color:0:100</text> <text x="144" y="52">Service</text>
<text x="60" y="68">[PE21]</text> <text x="192" y="52">/</text>
<text x="96" y="68">&lt;</text> <text x="424" y="52">|</text>
<text x="248" y="68">:</text> <text x="496" y="52">IP1,color:0:100</text>
<text x="284" y="68">[SN11]</text> <text x="60" y="68">[PE21]</text>
<text x="320" y="68">&lt;</text> <text x="96" y="68">&lt;</text>
<text x="496" y="68">IP2,color:0:200</text> <text x="248" y="68">:</text>
<text x="248" y="84">:</text> <text x="284" y="68">[SN11]</text>
<text x="480" y="84">IP3,100:200</text> <text x="320" y="68">&lt;</text>
<text x="116" y="100">_(</text> <text x="496" y="68">IP2,color:0:200</text>
<text x="148" y="100">.)</text> <text x="248" y="84">:</text>
<text x="248" y="100">:</text> <text x="480" y="84">IP3,100:200</text>
<text x="356" y="100">_(</text> <text x="116" y="100">_(</text>
<text x="388" y="100">.)</text> <text x="148" y="100">.)</text>
<text x="512" y="100">^^^^^^^^^^^</text> <text x="248" y="100">:</text>
<text x="104" y="116">(</text> <text x="356" y="100">_(</text>
<text x="156" y="116">_)</text> <text x="388" y="100">.)</text>
<text x="204" y="116">--[BN21]</text> <text x="512" y="100">^^^^^^^^^^^</text>
<text x="284" y="116">[BN11]</text> <text x="104" y="116">(</text>
<text x="344" y="116">(</text> <text x="156" y="116">_)</text>
<text x="424" y="116">_)-[PE11]</text> <text x="204" y="116">--[BN21]</text>
<text x="504" y="116">Mapping</text> <text x="284" y="116">[BN11]</text>
<text x="116" y="132">(.</text> <text x="344" y="116">(</text>
<text x="144" y="132">)</text> <text x="424" y="116">_)-[PE11]</text>
<text x="248" y="132">:</text> <text x="504" y="116">Mapping</text>
<text x="356" y="132">(.</text> <text x="116" y="132">(.</text>
<text x="384" y="132">)</text> <text x="144" y="132">)</text>
<text x="504" y="132">Community</text> <text x="248" y="132">:</text>
<text x="248" y="148">Inter-AS-Link</text> <text x="356" y="132">(.</text>
<text x="248" y="164">:</text> <text x="384" y="132">)</text>
<text x="248" y="180">[.......AS2:SR-TE........]:[.......AS1:RSVP-TE......]</tex <text x="504" y="132">Community</text>
t> <text x="248" y="148">Inter-AS-Link</text>
<text x="200" y="196">Traffic</text> <text x="248" y="164">:</text>
<text x="272" y="196">Direction</text> <text x="248" y="180">[.......AS2:SR-TE........]:[.......AS1:RSV
<text x="96" y="228">[PE21]--&lt;</text> P-TE......]</text>
<text x="180" y="228">[BN21]</text> <text x="200" y="196">Traffic</text>
<text x="320" y="228">[BN21]--&lt;</text> <text x="272" y="196">Direction</text>
<text x="404" y="228">[BN11]</text> <text x="96" y="228">[PE21]--&lt;</text>
<text x="40" y="244">&lt;</text> <text x="180" y="228">[BN21]</text>
<text x="152" y="244">RD1:PE11(L3),PNH=BN21</text> <text x="320" y="228">[BN21]--&lt;</text>
<text x="248" y="244">:</text> <text x="404" y="228">[BN11]</text>
<text x="264" y="244">&lt;</text> <text x="40" y="244">&lt;</text>
<text x="376" y="244">RD1:PE11(L1),PNH=BN11</text> <text x="152" y="244">RD1:PE11(L3),PNH=BN21</text>
<text x="140" y="260">transport-target:0:100</text> <text x="248" y="244">:</text>
<text x="248" y="260">:</text> <text x="264" y="244">&lt;</text>
<text x="364" y="260">transport-target:0:100</text> <text x="376" y="244">RD1:PE11(L1),PNH=BN11</text>
<text x="496" y="260">BGP</text> <text x="140" y="260">transport-target:0:100</text>
<text x="248" y="276">:</text> <text x="248" y="260">:</text>
<text x="516" y="276">Classful</text> <text x="364" y="260">transport-target:0:100</text>
<text x="40" y="292">&lt;</text> <text x="496" y="260">BGP</text>
<text x="152" y="292">RD2:PE11(L4),PNH=BN21</text> <text x="248" y="276">:</text>
<text x="248" y="292">:</text> <text x="516" y="276">Classful</text>
<text x="264" y="292">&lt;</text> <text x="40" y="292">&lt;</text>
<text x="376" y="292">RD2:PE11(L2),PNH=BN11</text> <text x="152" y="292">RD2:PE11(L4),PNH=BN21</text>
<text x="520" y="292">Transport</text> <text x="248" y="292">:</text>
<text x="140" y="308">transport-target:0:200</text> <text x="264" y="292">&lt;</text>
<text x="248" y="308">:</text> <text x="376" y="292">RD2:PE11(L2),PNH=BN11</text>
<text x="364" y="308">transport-target:0:200</text> <text x="520" y="292">Transport</text>
<text x="140" y="324">^^^^^^^^^^^^^^^^^^^^^^</text> <text x="140" y="308">transport-target:0:200</text>
<text x="440" y="324">^^^</text> <text x="248" y="308">:</text>
<text x="112" y="340">Route</text> <text x="364" y="308">transport-target:0:200</text>
<text x="164" y="340">Target</text> <text x="140" y="324">^^^^^^^^^^^^^^^^^^^^^^</text>
<text x="200" y="340">&amp;</text> <text x="440" y="324">^^^</text>
<text x="336" y="340">Transport</text> <text x="112" y="340">Route</text>
<text x="400" y="340">Class</text> <text x="164" y="340">Target</text>
<text x="436" y="340">ID</text> <text x="200" y="340">&amp;</text>
<text x="112" y="356">Mapping</text> <text x="336" y="340">Transport</text>
<text x="184" y="356">Community</text> <text x="400" y="340">Class</text>
<text x="32" y="388">Intents</text> <text x="436" y="340">ID</text>
<text x="76" y="388">at</text> <text x="112" y="356">Mapping</text>
<text x="108" y="388">SN11</text> <text x="184" y="356">Community</text>
<text x="144" y="388">and</text> <text x="32" y="388">Intents</text>
<text x="184" y="388">PE21:</text> <text x="76" y="388">at</text>
<text x="68" y="420">Scheme1:</text> <text x="108" y="388">SN11</text>
<text x="156" y="420">color:0:100,</text> <text x="144" y="388">and</text>
<text x="268" y="420">(TRDB[TC-100],</text> <text x="184" y="388">PE21:</text>
<text x="380" y="420">TRDB[TC-BE])</text> <text x="68" y="420">Scheme1:</text>
<text x="68" y="436">Scheme2:</text> <text x="156" y="420">color:0:100,</text>
<text x="156" y="436">color:0:200,</text> <text x="268" y="420">(TRDB[TC-100],</text>
<text x="268" y="436">(TRDB[TC-200],</text> <text x="380" y="420">TRDB[TC-BE])</text>
<text x="380" y="436">TRDB[TC-BE])</text> <text x="68" y="436">Scheme2:</text>
<text x="68" y="452">Scheme3:</text> <text x="156" y="436">color:0:200,</text>
<text x="172" y="452">100:200,</text> <text x="268" y="436">(TRDB[TC-200],</text>
<text x="268" y="452">(TRDB[TC-100],</text> <text x="380" y="436">TRDB[TC-BE])</text>
<text x="384" y="452">TRDB[TC-200])</text> <text x="68" y="452">Scheme3:</text>
<text x="64" y="468">^^^^^^^</text> <text x="172" y="452">100:200,</text>
<text x="236" y="468">^^^^</text> <text x="268" y="452">(TRDB[TC-100],</text>
<text x="396" y="468">^^^^^^</text> <text x="384" y="452">TRDB[TC-200])</text>
<text x="44" y="484">Resolution</text> <text x="64" y="468">^^^^^^^</text>
<text x="120" y="484">Schemes</text> <text x="236" y="468">^^^^</text>
<text x="208" y="484">Transport</text> <text x="396" y="468">^^^^^^</text>
<text x="272" y="484">Route</text> <text x="44" y="484">Resolution</text>
<text x="308" y="484">DB</text> <text x="120" y="484">Schemes</text>
<text x="384" y="484">Transport</text> <text x="208" y="484">Transport</text>
<text x="448" y="484">Class</text> <text x="272" y="484">Route</text>
</g> <text x="308" y="484">DB</text>
</svg> <text x="384" y="484">Transport</text>
</artwork><artwork type="ascii-art"><![CDATA[ <text x="448" y="484">Class</text>
</g>
</svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
INET [RR21]--------------<<---[RR11] INET [RR21]--------------<<---[RR11]
Service / / | IP1,color:0:100 Service / / | IP1,color:0:100
[PE21] <<--------+ : [SN11] <<-----+ ^ IP2,color:0:200 [PE21] <<--------+ : [SN11] <<-----+ ^ IP2,color:0:200
\ ___ : \ ___ | IP3,100:200 \ ___ : \ ___ | IP3,100:200
\ _( .) : \ _( .) | ^^^^^^^^^^^ \ _( .) : \ _( .) | ^^^^^^^^^^^
+-- ( _) --[BN21]===[BN11]--- ( _)-[PE11] Mapping +-- ( _) --[BN21]===[BN11]--- ( _)-[PE11] Mapping
(.__) : (.__) Community (.__) : (.__) Community
Inter-AS-Link Inter-AS-Link
: :
[.......AS2:SR-TE........]:[.......AS1:RSVP-TE......] [.......AS2:SR-TE........]:[.......AS1:RSVP-TE......]
skipping to change at line 536 skipping to change at line 553
'-- Route Target & Transport Class ID--' '-- Route Target & Transport Class ID--'
Mapping Community Mapping Community
Intents at SN11 and PE21: Intents at SN11 and PE21:
Scheme1: color:0:100, (TRDB[TC-100], TRDB[TC-BE]) Scheme1: color:0:100, (TRDB[TC-100], TRDB[TC-BE])
Scheme2: color:0:200, (TRDB[TC-200], TRDB[TC-BE]) Scheme2: color:0:200, (TRDB[TC-200], TRDB[TC-BE])
Scheme3: 100:200, (TRDB[TC-100], TRDB[TC-200]) Scheme3: 100:200, (TRDB[TC-100], TRDB[TC-200])
^^^^^^^ ^^^^ ^^^^^^ ^^^^^^^ ^^^^ ^^^^^^
Resolution Schemes Transport Route DB Transport Class Resolution Schemes Transport Route DB Transport Class
]]></artwork></artset></figure> ]]></artwork>
</artset>
<t>To achieve end-to-end "Intent Driven Service Mapping", this document </figure>
defines the following constructs and BGP extensions:<list> <t>To achieve end-to-end "Intent-Driven Service Mapping", this document
<t>The <xref target="tc">"Transport Class"</xref> construct to group defines the following constructs and BGP extensions:</t>
<ul spacing="normal">
<li>
<t>The "Transport Class" construct (see <xref target="tc" format="defa
ult"></xref>) to group
underlay tunnels.</t> underlay tunnels.</t>
</li>
<t>The <xref target="Nexthop_Resoln_Schm">"Resolution Scheme"</xref> <li>
construct for overlay routes with Mapping Community to resolve next <t>The "Resolution Scheme" construct (see <xref target="Nexthop_Resoln
hop reachability from either one or an ordered set of Transport _Schm" format="default"></xref>)
for overlay routes with Mapping Communities to resolve NH reachability
from either one or an ordered set of Transport
Classes.</t> Classes.</t>
</li>
<t>The <xref target="ct-family">"BGP Classful Transport"</xref> <li>
<t>The "BGP Classful Transport" (see <xref target="ct-family" format="
default"></xref>)
address family to extend these constructs to adjacent domains.</t> address family to extend these constructs to adjacent domains.</t>
</list><xref target="ArchOv"/> depicts the intra-AS and inter-AS </li>
</ul>
<t><xref target="ArchOv" format="default"/> depicts the intra-AS and inter
-AS
application of these constructs. Interactions between SN1 and PE11 describ e application of these constructs. Interactions between SN1 and PE11 describ e
the Intra-AS usage. Interactions between PE21 and PE11 describe the Inter- AS usage.</t> the Intra-AS usage. Interactions between PE21 and PE11 describe the Inter- AS usage.</t>
<t> The example topology is an Inter-AS
<t> The example topology is an Inter-AS option C network (<xref target="RFC4364" sectionFormat="of" section="10"/>
option C (Section 10, <xref target="RFC4364"/>) network with two AS domain ) with two AS domains;
s, each domain contains tunnels serving two Intents, e.g., 'low-latency' deno
each domain contains tunnels serving two Intents, e.g. 'low-latency' denot ted
ed by color 100 and 'high-bandwidth' denoted by color 200. AS1 is an RSVP-TE
by color 100 and 'high-bandwidth' denoted by color 200. AS1 is a RSVP-TE network; AS2 is an SRTE network. BGP CT and BGP LU are transport families
network, AS2 is a SRTE network. BGP CT and BGP LU are transport families used between the two AS domains. IP1, IP2, and IP3 are service prefixes
used between the two AS domains. IP1, IP2, IP3 are service prefixes
(AFI/SAFI: 1/1) behind egress PE11.</t> (AFI/SAFI: 1/1) behind egress PE11.</t>
<t>PE21, SN11, and PE11 are the SNs in this network. SN11 is an ingress
<t>PE21, SN11 and PE11 are the SNs in this network. SN11 is an ingress PE with intra-domain reachability to PE11. PE21 is an ingress PE with
PE with intra domain reachability to PE11. PE21 is an ingress PE with inter-domain reachability to PE11.</t>
inter domain reachability to PE11.</t>
<t>The tunneling mechanisms are made "Transport Class" aware. They <t>The tunneling mechanisms are made "Transport Class" aware. They
publish their underlay tunnels for a Transport Class into an associated publish their underlay tunnels for a Transport Class into an associated TR
<xref target="trdb">"Transport Route Database" (TRDB)</xref>. In <xref DB
target="ArchOv"/>, RSVP-TE publishes its underlay tunnels into TRDBs (see <xref target="trdb" format="default"></xref>). In <xref target="ArchO
created for Transport Class 100 and 200 at BN11 and SN11 within AS1; v" format="default"/>, RSVP-TE publishes its underlay tunnels into TRDBs
created for Transport Classes 100 and 200 at BN11 and SN11 within AS1;
Similarly, SR-TE publishes its underlay tunnels into TRDBs created for Similarly, SR-TE publishes its underlay tunnels into TRDBs created for
Transport Class 100 and 200 at PE21 within AS2.</t> Transport Classes 100 and 200 at PE21 within AS2.</t>
<t>Resolution Schemes are used to realize Intent. A Resolution Scheme is <t>Resolution Schemes are used to realize Intent. A Resolution Scheme is
identified by its "Mapping Community", and contains an ordered list of identified by its "Mapping Community" and contains an ordered list of
transport classes. Overlay routes carry an indication of the desired transport classes. Overlay routes carry an indication of the desired
Intent using a BGP community which assumes the role of "Mapping Community" Intent using a BGP community, which assumes the role of "Mapping Community
.</t> ".</t>
<t>Egress SN "PE11" advertises service routes with desired Mapping Commun
<t>Egress SN "PE11" advertises service routes with desired Mapping Commun ity, e.g., color:0:100.</t>
ity
e.g. color:0:100.</t>
<t>For the Intra-AS case, SN1 maps this intra-AS route on RSVP-TE <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> 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 <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 in BGP to extend an underlay tunnel to adjacent domains. A new BGP
transport family called "BGP Classful Transport", also known as BGP CT transport family called "BGP Classful Transport", also known as BGP CT
(AFI/SAFIs 1/76, 2/76) is defined for this purpose. BGP CT makes it (AFI/SAFIs 1/76, 2/76), is defined for this purpose. BGP CT makes it
possible to advertise multiple tunnels to the same destination address, possible to advertise multiple tunnels to the same destination address,
thus avoiding the need for multiple loopbacks on the Egress Service Node thus avoiding the need for multiple loopbacks on the eSN.</t>
(eSN).</t>
<t>The BGP CT address family carries transport prefixes across tunnel <t>The BGP CT address family carries transport prefixes across tunnel
domain boundaries. Its design and operation are analogous to BGP LU domain boundaries. Its design and operation are analogous to BGP LU
(AFI/SAFIs 1/4 or 2/4). It disseminates "Transport Class" information (AFI/SAFIs 1/4 or 2/4). It disseminates "Transport Class" information
for the transport prefixes across the participating domains while for the transport prefixes across the participating domains while
avoiding the need of per-transport class loopback. This is not possible avoiding the need of per-transport class loopback. This is not possible
with BGP LU without using per-color loopback. This dissemination makes with BGP LU without using per-color loopback. This dissemination makes
the end-to-end network a "Transport Class" aware tunneled network.</t> the end-to-end network a "Transport Class" aware tunneled network.</t>
<t>In <xref target="ArchOv" format="default"/>, BGP CT routes are originat
<t>In <xref target="ArchOv"/>, BGP CT routes are originated at BN11 in ed at BN11 in
AS1 with next hop "self" towards BN21 in AS2 to extend available RSVP-TE AS1 with NH "self" towards BN21 in AS2 to extend available RSVP-TE
tunnels for Transport Class 100 and 200 in AS1. BN21 propagates these tunnels for Transport Classes 100 and 200 in AS1. BN21 propagates these
routes with next hop "self" to PE21, which resolves the BGP CT routes routes with NH "self" to PE21, which resolves the BGP CT routes
over SRTE tunnels belonging to same transport class. Thus forming a over SRTE tunnels belonging to same transport class, thus forming a
BGP CT tunnel for each TC ID at PE21.</t> BGP CT tunnel for each TC ID at PE21.</t>
<t>PE21 maps the Inter-AS service routes received with color:0:100 from <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 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 color:0:100. Note that this procedure is same as that followed by SN1
in the Intra-AS case.</t> in the Intra-AS case.</t>
<t>The following text illustrates how CT architecture provides tiered <t>The following text illustrates how CT architecture provides tiered
fallback options at a per-route granularity. <xref target="ArchOv"/>, fallback options at a per-route granularity. <xref target="ArchOv" format=
shows the Resolution Schemes in use, which make the following next hop "default"/>
shows the Resolution Schemes in use, which make the following NH
resolution happen at SN11 (Intra-AS) and PE21 (Inter-AS) for the service resolution happen at SN11 (Intra-AS) and PE21 (Inter-AS) for the service
routes of prefixes IP1, IP2, IP3:<list> routes of prefixes IP1, IP2, and IP3:</t>
<t>Resolve IP1 next hop over available tunnels in TRDB for Transport <ul spacing="normal">
<li>
<t>Resolve IP1 NH over available tunnels in TRDB for Transport
Class 100 with fallback to TRDB for best effort.</t> Class 100 with fallback to TRDB for best effort.</t>
</li>
<t>Resolve IP2 next hop over available tunnels in TRDB for Transport <li>
<t>Resolve IP2 NH over available tunnels in TRDB for Transport
Class 200 with fallback to TRDB for best effort.</t> Class 200 with fallback to TRDB for best effort.</t>
</li>
<t>Resolve IP3 next hop over available tunnels in TRDB for Transport <li>
<t>Resolve IP3 NH over available tunnels in TRDB for Transport
Class 100 with fallback to TRDB for Transport Class 200.</t> Class 100 with fallback to TRDB for Transport Class 200.</t>
</list>In <xref target="ArchOv"/>, SN11 resolves IP1, IP2 and IP3 </li>
directly over RSVP-TE tunnels in AS1. PE21 resolves IP1, IP2 and IP3 </ul>
<t>In <xref target="ArchOv" format="default"/>, SN11 resolves IP1, IP2, an
d IP3
directly over RSVP-TE tunnels in AS1. PE21 resolves IP1, IP2, and IP3
over extended BGP CT tunnels that resolve over SR-TE tunnels in AS2.</t> over extended BGP CT tunnels that resolve over SR-TE tunnels in AS2.</t>
<t>This document describes procedures using MPLS forwarding <t>This document describes procedures using MPLS forwarding
architecture. However, these procedures would work in a similar manner architecture. However, these procedures would work in a similar manner
for non-MPLS forwarding architectures as well. <xref target="SRv6-Support" for non-MPLS forwarding architectures as well. <xref target="SRv6-Support"
/> format="default"/>
describes the application of BGP CT over SRv6 data plane.</t> describes the application of BGP CT over the SRv6 data plane.</t>
</section> </section>
<section anchor="tc" numbered="true" toc="default">
<section anchor="tc" title="Transport Class"> <name>Transport Class</name>
<t>Transport Class is a construct that groups transport tunnels offering <t>Transport Class is a construct that groups transport tunnels offering
similar SLA within the administrative domain of a provider network or similar SLAs within the administrative domain of a provider network or
closely coordinated provider networks.</t> closely coordinated provider networks.</t>
<t>A Transport Class is uniquely identified by a 32-bit "Transport Class <t>A Transport Class is uniquely identified by a 32-bit "Transport Class
ID", that is assigned by the operator. The operator consistently ID" that is assigned by the operator. The operator consistently
provisions a Transport Class on participating nodes (SNs and BNs) in a provisions a Transport Class on participating nodes (SNs and BNs) in a
domain with its unique Transport Class ID.</t> domain with its unique Transport Class ID.</t>
<t>A Transport Class is also configured with RD and import/export RT <t>A Transport Class is also configured with RD and import/export RT
attributes. Creation of a Transport Class instantiates its corresponding attributes. Creation of a Transport Class instantiates its corresponding
TRDB and Resolution Schemes on that node.</t> TRDB and Resolution Schemes on that node.</t>
<t>All nodes within a domain agree on a common Transport Class ID <t>All nodes within a domain agree on a common Transport Class ID
namespace. However, two co-operating domains may not always agree on the namespace. However, two cooperating domains may not always agree on the
same namespace. Procedures to manage differences in Transport Class ID same namespace. Procedures to manage differences in Transport Class ID
namespaces between co-operating domains are specified in <xref namespaces between cooperating domains are specified in <xref target="non-
target="non-agreeing"/>.</t> agreeing" format="default"/>.</t>
<t>Transport Class ID conveys the Color of tunnels in a Transport Class. <t>Transport Class ID conveys the Color of tunnels in a Transport Class.
The terms 'Transport Class ID' and 'Color' are used interchangeably in The terms "Transport Class ID" and "Color" are used interchangeably in
this document.</t> this document.</t>
<section anchor="tc-te" numbered="true" toc="default">
<section anchor="tc-te" title="Classifying TE tunnels"> <name>Classifying TE Tunnels</name>
<t>TE tunnels can be classified into a Transport Class based on the TE <t>TE tunnels can be classified into a Transport Class based on the TE
attributes they possess and the TE characteristics that the operator attributes they possess and the TE characteristics that the operator
defines for that Transport Class. Due to the fact that multiple TE defines for that Transport Class. Due to the fact that multiple TE
tunneling protocols exist, their TE attributes and characteristics may tunneling protocols exist, their TE attributes and characteristics may
not be equal but sufficiently similar. Some examples of such not be equal but sufficiently similar. Some examples of such
classifications are as follows:<list> classifications are as follows:</t>
<ul spacing="normal">
<li>
<t>Tunnels (RSVP-TE, IGP FLEX-ALGO, SR-TE) that support latency <t>Tunnels (RSVP-TE, IGP FLEX-ALGO, SR-TE) that support latency
sensitive routing.</t> sensitive routing.</t>
</li>
<t>RSVP-TE Tunnels that only go over admin-group with Green <li>
<t>RSVP-TE tunnels that only go over admin-group with Green
links.</t> links.</t>
</li>
<t>Tunnels (RSVP-TE, SR-TE) that offer Fast Reroute.</t> <li>
<t>Tunnels (RSVP-TE, SR-TE) that offer FRR.</t>
</li>
<li>
<t>Tunnels (RSVP-TE, SR-TE) that share resources in the network <t>Tunnels (RSVP-TE, SR-TE) that share resources in the network
based on Shared Risk Link Groups defined by TE policy.</t> 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 <t>Tunnels (RSVP-TE, SR-TE, BGP CT) that avoid certain nodes in
the network based on RSVP-TE ERO, SR-TE policy or BGP policy.</t> the network based on RSVP-TE Explicit Route Object (ERO), SR-TE poli
</list></t> cy, or BGP policy.</t>
</li>
<t>An operator may configure a SN/BN to classify a tunnel into an </ul>
<t>An operator may configure an SN/BN to classify a tunnel into an
appropriate Transport Class. How exactly these tunnels are made appropriate Transport Class. How exactly these tunnels are made
Transport Class aware is implementation specific and outside the scope Transport Class aware is implementation specific and outside the scope
of this document.</t> of this document.</t>
<t>When a tunnel is made Transport Class aware, it causes the Tunnel <t>When a tunnel is made Transport Class aware, it causes the Tunnel
Route to be installed in the corresponding TRDB of that Transport Route to be installed in the corresponding TRDB of that Transport
Class. These routes are used to resolve overlay routes, including BGP Class. These routes are used to resolve overlay routes, including BGP
CT. The BGP CT routes may be further readvertised to adjacent domains CT. The BGP CT routes may be further readvertised to adjacent domains
to extend these tunnels. While readvertising BGP CT routes, the to extend these tunnels. While readvertising BGP CT routes, the
"Transport Class" identifier is encoded as part of the Transport Class "Transport Class" identifier is encoded as part of the Transport Class
RT, which is a new Route Target extended community defined in <xref RT, which is a new Route Target extended community defined in <xref targ
target="tc-rt"/>.</t> et="tc-rt" format="default"/>.</t>
<t>An SN/BN receiving the transport routes via BGP with sufficient
<t>A SN/BN receiving the transport routes via BGP with sufficient
signaling information to identify a Transport Class can associate signaling information to identify a Transport Class can associate
those tunnel routes to the corresponding Transport Class. For example, those tunnel routes with the corresponding Transport Class. For example,
in BGP CT family routes, the Transport Class RT indicates the in BGP CT family routes, the Transport Class RT indicates the
Transport Class. For BGP LU family routes, import processing based on Transport Class. For BGP LU family routes, import processing based on
Communities or Inter-AS source-peer may be used to place the route in communities or Inter-AS source-peer may be used to place the route in
the desired Transport Class.</t> the desired Transport Class.</t>
<t>When the tunnel route is received via <xref target="RFC9830" format="
<t>When the tunnel route is received via <xref target="SRTE"/> with default"/> with
"Color:Endpoint" as the NLRI that encodes the Transport Class as an "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 integer 'Color' in its Policy Color field, the 'Color' is mapped to a
Transport Class during the import processing. The SRTE tunnel route Transport Class during the import processing. The SRTE tunnel route
for this 'Endpoint' is installed in the corresponding TRDB. The SRTE for this 'Endpoint' is installed in the corresponding TRDB. The SRTE
tunnel will be extended by a BGP CT advertisement with NLRI tunnel will be extended by a BGP CT advertisement with NLRI
'RD:Endpoint', Transport Class RT and a new label. The MPLS swap route 'RD:Endpoint', Transport Class RT, and a new label. The MPLS swap route
thus installed for the new label will pop the label and forward the thus installed for the new label will pop the label and forward the
decapsulated traffic into the path determined by the SRTE route for decapsulated traffic into the path determined by the SRTE route for
further encapsulation.</t> further encapsulation.</t>
<t><xref target="I-D.ietf-pce-segment-routing-policy-cp" format="default
<t><xref target="PCEP-SRPOLICY"/> extends Path Computation Element "/> extends the Path Computation Element
Communication Protocol (PCEP) to signal attributes of an SR Policy Communication Protocol (PCEP) to signal attributes of an SR Policy
which include Color. This Color is mapped to a Transport Class thus that include Color. This Color is mapped to a Transport Class thus
associating the SR Policy with the desired Transport Class.</t> associating the SR Policy with the desired Transport Class.</t>
<t>Similarly, <xref target="I-D.ietf-pce-pcep-color" format="default"/>
<t>Similarly, <xref target="PCEP-RSVP-COLOR"/> extends PCEP to carry extends PCEP to carry
the Color attribute for its use with RSVP-TE LSPs . This Color is the Color attribute for its use with RSVP-TE LSPs. This Color is
mapped to a Transport Class thus associating the RSVP-TE LSP with the mapped to a Transport Class thus associating the RSVP-TE LSP with the
desired Transport Class.</t> desired Transport Class.</t>
</section> </section>
<section anchor="trdb" numbered="true" toc="default">
<section anchor="trdb" title="Transport Route Database"> <name>Transport Route Database (TRDB)</name>
<t>A Transport Route Database (TRDB) is a logical collection of <t>A TRDB is a logical collection of
transport routes pertaining to the same Transport Class. In any node, transport routes pertaining to the same Transport Class. In any node,
every Transport Class has an associated TRDB. Resolution Schemes every Transport Class has an associated TRDB. Resolution Schemes
resolve next hop reachability for EP using the transport routes within resolve NH reachability for EP using the transport routes within
the scope of the TRDBs.</t> the scope of the TRDBs.</t>
<t>Tunnel EP addresses in a TRDB belong to the provider
<t>Tunnel endpoint addresses (EP) in a TRDB belong to the "Provider namespace representing the core transport region.</t>
Namespace" representing the core transport region.</t>
<t>An implementation may realize the TRDB as a "Routing Table" <t>An implementation may realize the TRDB as a "Routing Table"
referred in <eref referred to in <xref target="RFC4271" sectionFormat="of" section="9.1.2.
target="https://www.rfc-editor.org/rfc/rfc4271#section-9.1.2.1">Section 1"/>, which is used only for resolving NH
9.1.2.1 of RFC4271</eref> which is used only for resolving next hop reachability in the control plane. An implementation may choose a
reachability in control plane. An implementation may choose a
different datastructure to realize this logical construct while still different datastructure to realize this logical construct while still
adhering to the procedures defined in this document. The tunnel routes adhering to the procedures defined in this document. The tunnel routes
in a TRDB require no footprint in the forwarding plane unless they are in a TRDB require no footprint in the forwarding plane unless they are
used to resolve a next hop.</t> used to resolve an NH.</t>
<t>SNs or BNs originate routes for the "Classful Transport" address <t>SNs or BNs originate routes for the "Classful Transport" address
family from the TRDB. These routes have "RD:Endpoint" in the NLRI, family from the TRDB. These routes have "RD:Endpoint" in the NLRI,
carry a Transport Class RT, and an MPLS label or equivalent identifier carry a Transport Class RT, and an MPLS label or equivalent identifier
in different forwarding architecture. "Classful Transport" family in different forwarding architecture. "Classful Transport" family
routes received with Transport Class RT are installed into their routes received with Transport Class RT are installed into their
respective TRDB.</t> respective TRDB.</t>
</section> </section>
<section anchor="tc-rt" numbered="true" toc="default">
<section anchor="tc-rt" <name>"Transport Class" Route Target Extended Community</name>
title="&quot;Transport Class&quot; Route Target Extended Communit <t>This section defines a new type of Route Target called a
y"> "Transport Class" Route Target extended community (also known as a
<t>This section defines a new type of Route Target, called a "Transport Target"). The procedures for use of this extended community
"Transport Class" Route Target Extended Community; also known as a
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> with BGP CT routes (AFI/SAFI: 1/76 or 2/76) are described below.</t>
<t>The "Transport Class" Route Target Extended Community is a <!-- [rfced] We had a few questions related to the text below:
transitive extended community <xref target="RFC4360">EXT-COMM</xref>
of extended type, which has the format as shown in <xref
target="TCExtCom"/>.</t>
<figure anchor="TCExtCom" suppress-title="false" a) We note that [RFC4360] doesn't appear to use the term "EXT-COMM".
title="&quot;Transport Class&quot; Route Target Extended Communi Please review the following citation for accuracy.
ty">
<artwork align="left" xml:space="preserve"> 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 <xref target="RFC4360" format="default"></
xref>
of extended type, which has the format as shown in <xref target="TCExtCo
m" format="default"/>.</t>
<figure anchor="TCExtCom">
<name>"Transport Class" Route Target Extended Community</name>
<artwork align="left" name="" type="" alt=""><![CDATA[
0 1 2 3 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 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 | | Type= 0xa | SubType= 0x02 | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Transport Class ID | | Transport Class ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+]]></artwork>
</figure>
Type: 1-octet field MUST be set to 0xa to indicate 'Transport Class'.
SubType: 1-octet field MUST be set to 0x2 to indicate 'Route Target'.
Reserved: 2-octet reserved bits field. <dl spacing="normal" newline="false">
This field MUST be set to zero on transmission. <dt>Type:</dt>
This field SHOULD be ignored on reception, and <dd>A 1-octet field that <bcp14>MUST</bcp14> be set to 0xa to indicate
MUST be left unaltered. 'Transport Class'.</dd>
Transport Class ID: This field is encoded in 4 octets. <dt>SubType:</dt>
<dd>A 1-octet field that <bcp14>MUST</bcp14> be set to 0x2 to indicate
'Route Target'.</dd>
This field contains the "Transport Class" identifier, <dt>Reserved:</dt>
which is an unsigned 32-bit integer. <dd><t>A 2-octet reserved bits field.</t>
<t>This field <bcp14>MUST</bcp14> be set to zero on transmission.</t>
<t>This field <bcp14>SHOULD</bcp14> be ignored on reception and <bcp14
>MUST</bcp14> be left unaltered.</t>
</dd>
This document reserves the Transport class ID value 0 to <dt>Transport Class ID:</dt>
represent "Best Effort Transport Class ID".</artwork> <dd><t>This field is encoded in 4 octets.</t>
</figure> <t>This field contains the "Transport Class" identifier, which is an un
signed 32-bit integer.</t>
<t>This document reserves the Transport class ID value 0 to represent t
he "Best-Effort Transport Class ID".</t></dd>
</dl>
<t>A Transport Class Route Target Extended community with TC ID 100 <t>A "Transport Class" Route Target extended community with TC ID 100
is denoted as "transport-target:0:100".</t> is denoted as "transport-target:0:100".</t>
<t>The VPN route import/export mechanisms specified in BGP/MPLS IP VPNs
<t>The VPN route import/export mechanisms specified in <xref (see <xref target="RFC4364" format="default"></xref>) and the Constrained Route
target="RFC4364">BGP/MPLS IP VPNs</xref> and the Constrained Route Distribution mechanisms specified in Route Target Constrain (see <xref t
Distribution mechanisms specified in <xref target="RFC4684">Route arget="RFC4684" format="default"></xref>) are applied using the Route Target ext
Target Constrain</xref> are applied using the Route Target extended ended
community. These mechanisms are applied to BGP CT routes (AFI/SAFI: community. These mechanisms are applied to BGP CT routes (AFI/SAFI:
1/76 or 2/76) using "Transport Class Route Target Extended 1/76 or 2/76) using the "Transport Class Route Target extended
community".</t> community".</t>
<t>A BGP speaker that implements procedures described in this document <t>A BGP speaker that implements procedures described in this document
and <xref target="RFC4684">Route Target Constrain</xref> MUST also and <xref target="RFC4684" format="default"></xref> <bcp14>MUST</bcp14>
apply the RTC procedures to the Transport Class Route Target Extended also
apply the RTC procedures to the Transport Class Route Target extended
communities carried on BGP CT routes (AFI/SAFI: 1/76 or 2/76). An RTC 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 route is generated for each Route Target imported by locally
provisioned Transport Classes.</t> provisioned Transport Classes.</t>
<t>Further, when processing RT membership NLRIs containing a Transport
<t>Further, when processing RT membership NLRIs containing Transport Class Route Target extended community received from external BGP
Class Route Target Extended community received from external BGP peers, it is necessary to consider multiple External BGP (EBGP) paths fo
peers, it is necessary to consider multiple EBGP paths for a given RTC r a given RTC
prefix for building the outbound route filter, and not just the best prefix for building the outbound route filter: not just the best
path. An implementation MAY provide configuration to control how many path. An implementation <bcp14>MAY</bcp14> provide configuration to cont
rol how many
EBGP RTC paths are considered.</t> EBGP RTC paths are considered.</t>
<t>The Transport Class Route Target extended community is carried on
<t>The Transport Class Route Target Extended community is carried on
BGP CT family routes and is used to associate them with appropriate BGP CT family routes and is used to associate them with appropriate
TRDBs at receiving BGP speakers. The Transport Target is carried TRDBs at receiving BGP speakers. The Transport Target is carried
unaltered on the BGP CT route across BGP CT negotiated sessions except unaltered on the BGP CT route across BGP CT negotiated sessions except
for scenarios described in <xref target="non-agreeing"/>. for scenarios described in <xref target="non-agreeing" format="default"/ >.
Implementations should provide policy mechanisms to perform match, Implementations should provide policy mechanisms to perform match,
strip, or rewrite operations on a Transport Target just like any other strip, or rewrite operations on a Transport Target just like any other
BGP community.</t> BGP community.</t>
<t>Defining a new type code for the Transport Class Route Target <t>Defining a new type code for the Transport Class Route Target
Extended community avoids conflicting with any VPN Route Target extended community avoids conflicting with any VPN Route Target
assignments already in use for service families.</t> assignments already in use for service families.</t>
<t>This document also reserves the <xref <!--[rfced] Should the names in the following paragraph (and anywhere
target="tc-rt-nt">Non-Transitive version of Transport Class extended they are mentioned throughout the document) be made more uniform
community</xref> for future use. The "Non-Transitive Transport Class" (i.e., should Route Target be added to the first use of "extended
Route Target Extended Community is not used. If received, it is community")? See a later question related to the quotation use
as well.
Original:
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
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 Transpo
rt Class extended
community (see <xref target="tc-rt-nt" format="default"></xref>) for fut
ure 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 considered equivalent in functionality to the Transitive Transport
Class Route Target Extended Community, except for the difference in Class Route Target extended community, except for the difference in
Transitive bit flag.</t> Transitive bit flag.</t>
</section> </section>
</section> </section>
<section anchor="Nexthop_Resoln_Schm" numbered="true" toc="default">
<section anchor="Nexthop_Resoln_Schm" title="Resolution Scheme"> <name>Resolution Scheme</name>
<t>A Resolution Scheme is a construct that consists of a specific TRDB <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 or an ordered set of TRDBs. An overlay route is associated with a
resolution scheme during import processing, based on the Mapping resolution scheme during import processing based on the Mapping
Community in the route.</t> Community in the route.</t>
<t>Resolution Schemes enable a BGP speaker to resolve NH
<t>Resolution Schemes enable a BGP speaker to resolve next hop
reachability for overlay routes over the appropriate underlay tunnels reachability for overlay routes over the appropriate underlay tunnels
within the scope of the TRDBs. Longest Prefix Match (LPM) of the next within the scope of the TRDBs. Longest Prefix Match (LPM) of the NH is per
hop is performed within the identified TRDB.</t> formed within the identified TRDB.</t>
<t>An implementation may provide an option for the overlay route to <t>An implementation may provide an option for the overlay route to
resolve over less preferred Transport Classes, should the resolution resolve over less-preferred Transport Classes, should the resolution
over a primary Transport Class fail.</t> over a primary Transport Class fail.</t>
<t>To accomplish this, the "Resolution Scheme" is configured with the <t>To accomplish this, the "Resolution Scheme" is configured with the
primary Transport Class, and an ordered list of fallback Transport primary Transport Class and an ordered list of fallback Transport
Classes. Two Resolution Schemes are considered equivalent in Intent if Classes. Two Resolution Schemes are considered equivalent in Intent if
they consist of the same ordered set of TRDBs.</t> they consist of the same ordered set of TRDBs.</t>
<t>Operators must ensure that Resolution Schemes for a mapping community <t>Operators must ensure that Resolution Schemes for a mapping community
are provisioned consistently on various nodes participating in a BGP CT are provisioned consistently on various nodes participating in a BGP CT
network, based on desired Intent and transport classes available in that network based on desired Intent and transport classes available in that
domain.</t> domain.</t>
<section anchor="Mapping_Comm" numbered="true" toc="default">
<section anchor="Mapping_Comm" title="Mapping Community"> <name>Mapping Community</name>
<t>A "Mapping Community" is used to signal the desired Intent on an <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. At an ingress node receiving the route, it maps the
overlay route to a "Resolution Scheme" used to resolve the route's overlay route to a "Resolution Scheme" used to resolve the route's
next hop.</t> NH.</t>
<t>A Mapping Community is a "role" and not a new type of community; <t>A Mapping Community is a "role" and not a new type of community;
any BGP Community Carrying Attribute (e.g. Community or Extended any BGP Community Carrying Attribute (e.g., Community or Extended
Community) may play this role, besides the other roles it may already Community) may play this role in addition to the other roles it may alre
be playing. For example, the Transport Class Route Target Extended ady
Community plays a dual role, being a Route Target as well as a Mapping be playing. For example, the Transport Class Route Target extended
community plays a dual role: as Route Target and a Mapping
Community.</t> Community.</t>
<t>Operator provisioning ensures that the ingress and egress SNs agree <t>Operator provisioning ensures that the ingress and egress SNs agree
on the BGP CCA and community namespace to use for the Mapping on the BGP CCA and community namespace to use for the Mapping
Community.</t> Community.</t>
<t>A Mapping Community maps to exactly one Resolution Scheme at <t>A Mapping Community maps to exactly one Resolution Scheme at
receiving BGP speaker. An implementation SHOULD allow associating a receiving BGP speaker. An implementation <bcp14>SHOULD</bcp14> allow t he association of
multiple Mapping Communities to a Resolution Scheme. This helps with multiple Mapping Communities to a Resolution Scheme. This helps with
renumbering and migration scenarios.</t> renumbering and migration scenarios.</t>
<t>An example of mapping community is "color:0:100", described in <!-- [rfced] We note that "color:0:100" isn't used in [RFC9012]. It's
<xref target="RFC9012"/>, or the "transport-target:0:100" described in defined in this document (See Section 2.1. Definitions and
<xref target="tc-rt"/> in this document.</t> 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
<xref target="RFC9012" format="default"/>, or the "transport-target:0:10
0" described in
<xref target="tc-rt" format="default"/>.</t>
<t>The first community on the overlay route that matches a Mapping <t>The first community on the overlay route that matches a Mapping
Community of a locally configured Resolution Scheme is considered the Community of a locally configured Resolution Scheme is considered the
effective Mapping Community for the route. The Resolution Scheme thus effective Mapping Community for the route. The Resolution Scheme thus
found is used when resolving the route's PNH. If a route contains more found is used when resolving the route's PNH. If a route contains more
than one Mapping Community, it indicates that the route considers than one Mapping Community, it indicates that the route considers
these distinct Mapping Communities as equivalent in Intent.</t> these distinct Mapping Communities as equivalent in Intent.</t>
<t>If more than one distinct Mapping Communities on an overlay route <!--[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 map to distinct Resolution Schemes with dissimilar Intents at a
receiving node, it is considered a configuration error.</t> receiving node, it is considered a configuration error.</t>
<t>Since a route can carry multiple communities, but only a single <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, Resolution Scheme can be in effect for the route on any given router,
it is incumbent on the operator to ensure that communities attached it is incumbent on the operator to ensure that communities attached
to a route will map to the desired Resolution Scheme at each point to a route will map to the desired Resolution Scheme at each point
in the network.</t> in the network.</t>
<t>It should be noted that the Mapping Community role does not require <t>It should be noted that the Mapping Community role does not require
applying Route Target Constrain procedures specified in RFC 4684.</t> applying Route Target Constrain procedures specified in <xref target="RF C4684"/>.</t>
</section> </section>
</section> </section>
<section anchor="ct-family" numbered="true" toc="default">
<section anchor="ct-family" title="BGP Classful Transport Family"> <name>BGP Classful Transport Family</name>
<t>The BGP Classful Transport (BGP CT) family uses the existing Address <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 Family Identifier (AFI) of IPv4 or IPv6 and a new SAFI 76 "Classful
Transport" that applies to both IPv4 and IPv6 AFIs.</t> Transport" that applies to both IPv4 and IPv6 AFIs.</t>
<t>The AFI/SAFI 1/76 <bcp14>MUST</bcp14> be negotiated as per the Multipro
<t>The AFI/SAFI 1/76 MUST be negotiated as per the Multiprotocol tocol
Extensions capability described in Section 8 of <xref target="RFC4760"/> Extensions capability described in <xref target="RFC4760" sectionFormat="o
f" section="8"/>
to be able to send and receive BGP CT routes for IPv4 endpoint to be able to send and receive BGP CT routes for IPv4 endpoint
prefixes.</t> prefixes.</t>
<t>The AFI/SAFI 2/76 <bcp14>MUST</bcp14> be negotiated as per the Multipro
<t>The AFI/SAFI 2/76 MUST be negotiated as per the Multiprotocol tocol
Extensions capability described in Section 8 of <xref target="RFC4760"/> Extensions capability described in <xref target="RFC4760" sectionFormat="o
f" section="8"/>
to be able to send and receive BGP CT routes for IPv6 endpoint to be able to send and receive BGP CT routes for IPv6 endpoint
prefixes.</t> prefixes.</t>
<section anchor="ct-nlri" numbered="true" toc="default">
<section anchor="ct-nlri" title="NLRI Encoding"> <name>NLRI Encoding</name>
<t>The "Classful Transport" SAFI NLRI has the same encoding as <t>The "Classful Transport" SAFI NLRI has the same encoding as
specified in Section 2 of <xref target="RFC8277"/>.</t> specified in <xref target="RFC8277" sectionFormat="of" section="2"/>.</t
>
<t>When AFI/SAFI is 1/76, the Classful Transport NLRI Prefix consists <t>When the AFI/SAFI is 1/76, the Classful Transport NLRI Prefix consist
s
of an 8-byte RD followed by an IPv4 prefix. When AFI/SAFI is 2/76, the 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 Classful Transport NLRI Prefix consists of an 8-byte RD followed by an
IPv6 prefix.</t> IPv6 prefix.</t>
<t>The procedures described for AFI/SAFIs 1/4 or 1/128 in
<t>The procedures described for AFI/SAFIs 1/4 or 1/128 in Section 2 of <xref target="RFC8277" sectionFormat="of" section="2"/> apply for AFI/SA
<xref target="RFC8277"/> apply for AFI/SAFI 1/76 also. The procedures FI 1/76 also. The procedures
described for AFI/SAFIs 2/4 or 2/128 in Section 2 of <xref described for AFI/SAFIs 2/4 or 2/128 in <xref target="RFC8277" sectionFo
target="RFC8277"/> apply for AFI/SAFI 2/76 also.</t> rmat="of" section="2"/> apply for AFI/SAFI 2/76 also.</t>
<t>BGP CT routes <bcp14>MAY</bcp14> carry multiple labels in the NLRI by
<t>BGP CT routes MAY carry multiple labels in the NLRI, by negotiating negotiating
the Multiple Labels Capability as described in Section 2.1 of <xref the Multiple Labels Capability as described in <xref target="RFC8277" se
target="RFC8277"/></t> ctionFormat="of" section="2.1"/>.</t>
<t>Properties received on a Classful Transport route include the <t>Properties received on a Classful Transport route include the
Transport Class Route Target extended community, which is used to Transport Class Route Target extended community, which is used to
associate the route with the correct TRDBs on SNs and BNs in the associate the route with the correct TRDBs on SNs and BNs in the
network, and either an IPv4 or an IPv6 next hop.</t> network, and either an IPv4 or an IPv6 NH.</t>
</section> </section>
<section anchor="ct-nhop" numbered="true" toc="default">
<section anchor="ct-nhop" title="Next Hop Encoding"> <name>Next Hop Encoding</name>
<t>When the length of the Next hop Address field is 4, the next hop <t>When the length of the Next hop Address field is 4, the next hop
address is of type IPv4 address.</t> address is an IPv4 address.</t>
<t>When the length of the Next hop Address field is 16 (or 32), the next
<t>When the length of Next hop Address field is 16 (or 32), the next hop address is an IPv6 address (potentially followed by the
hop address is of type IPv6 address (potentially followed by the link-local IPv6 address of the next hop). This follows
link-local IPv6 address of the next hop). This follows Section 3 in <xref target="RFC2545" sectionFormat="of" section="3"/>.</t>
<xref target="RFC2545"/></t>
<t>When the length of Next hop Address field is 24 (or 48), the next <t>When the length of Next hop Address field is 24 (or 48), the next
hop address is of type VPN-IPv6 with an 8-octet RD set to zero hop address is a VPN-IPv6 with an 8-octet RD set to zero
(potentially followed by the link-local VPN-IPv6 address of the next (potentially followed by the link-local VPN-IPv6 address of the next
hop with an 8-octet RD set to zero). This follows Section 3.2.1.1 in hop with an 8-octet RD set to zero). This follows
<xref target="RFC4659"/></t> <xref 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 <t>When the length of the Next hop Address field is 12, the next hop
address is of type VPN-IPv4 with 8-octet RD set to zero.</t> address is a VPN-IPv4 with 8-octet RD set to zero.</t>
<t>If the length of the Next hop Address field contains any other <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 values, it is considered an error and is handled via BGP session reset
as per <xref section="7.11" target="RFC7606"/>.</t> as per <xref section="7.11" target="RFC7606" format="default"/>.</t>
</section> </section>
<section anchor="CTMultiEncap" <!--[rfced] Because "information" is a noncount noun, it would be
title="Carrying multiple Encapsulation Information"> 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" numbered="true" toc="default">
<name>Carrying Multiple Encapsulation Information</name>
<t>To ease interoperability between nodes supporting different <t>To ease interoperability between nodes supporting different
forwarding technologies, a BGP CT route allows carrying multiple forwarding technologies, a BGP CT route allows carrying multiple
encapsulation information.</t> encapsulation information.</t>
<t>An MPLS Label is carried using the encoding in <xref target="RFC8277"
<t>An MPLS Label is carried using the encoding in <xref format="default"/>. A node that does not support MPLS forwarding
target="RFC8277"/>. A node that does not support MPLS forwarding advertises the special label 3 (Implicit NULL) in the MPLS Label field (
advertises the special label 3 (Implicit NULL) in the RFC 8277 MPLS see <xref target="RFC8277"/>). The Implicit NULL label carried in BGP CT route i
Label field. The Implicit NULL label carried in BGP CT route indicates ndicates
to receiving node that it should not impose any BGP CT label for this to a receiving node that it should not impose any BGP CT label for this
route.</t> route.</t>
<t>The SID information for SR with respect to MPLS Data Plane is <!-- [rfced] We note that Section 3 of [RFC8669] uses "Prefix-SID"
carried as specified in Prefix SID attribute defined as part of rather than "Prefix SID". May we update to make these
Section 3 in <xref target="RFC8669"/>.</t> consistent?
<t>The SID information for SR with respect to SRv6 Data Plane is Current:
carried as specified in <xref target="SRv6-Support"/>.</t>
<t>UDP tunneling information is carried using Tunnel Encapsulation The SID information for SR with respect to MPLS Data Plane is carried
Attribute as specified in <xref target="RFC9012"/>.</t> as specified in Prefix SID attribute defined as part of Section 3 of
</section> [RFC8669].
<section title="Comparison with Other Families using RFC-8277 Encoding"> -->
<t>AFI/SAFI 1/128 (MPLS-labeled VPN address) is an RFC8277 encoded <t>The SID information for SR with respect to the MPLS data plane is
family that carries service prefixes in the NLRI, where the prefixes carried as specified in the Prefix SID attribute defined as part of
<xref target="RFC8669" sectionFormat="of" section="3"/>.</t>
<t>The SID information for SR with respect to SRv6 data plane is
carried as specified in <xref target="SRv6-Support" format="default"/>.<
/t>
<t>UDP tunneling information is carried using the Tunnel Encapsulation
Attribute as specified in <xref target="RFC9012" format="default"/>.</t>
</section>
<section numbered="true" toc="default">
<name>Comparison with Other Families Using Encoding from RFC 8277</name>
<t>AFI/SAFI 1/128 (MPLS-labeled VPN address) is a family encoded using <
xref target="RFC8277"/> that carries service prefixes in the NLRI, where the pre
fixes
come from the customer namespaces and are contextualized into separate come from the customer namespaces and are contextualized into separate
user virtual service RIBs called VRFs as per [RFC4364].</t> user virtual service RIBs called VRFs as per <xref target="RFC4364"/>.</
t>
<t>AFI/SAFI 1/4 (BGP LU) is an RFC8277 encoded family that carries <t>AFI/SAFI 1/4 (BGP LU) is a family encoded using <xref target="RFC8277
"/> that carries
transport prefixes in the NLRI, where the prefixes come from the transport prefixes in the NLRI, where the prefixes come from the
provider namespace.</t> provider namespace.</t>
<t>AFI/SAFI 1/76 (Classful Transport SAFI) is a family encoded using <xr
<t>AFI/SAFI 1/76 (Classful Transport SAFI) is an RFC8277 encoded ef target="RFC8277"/> that carries transport prefixes in the NLRI, where the pre
family that carries transport prefixes in the NLRI, where the prefixes fixes
come from the provider namespace and are contextualized into separate come from the provider namespace and are contextualized into separate
TRDB, following mechanisms similar to RFC 4364 procedures.</t> TRDB, following mechanisms similar to <xref target="RFC4364"/> procedure
s.</t>
<t>It is worth noting that AFI/SAFI 1/128 has been used to carry <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 transport prefixes in "L3VPN Inter-AS Carrier's carrier" scenario as
defined in Section 10 of <xref target="RFC4364"/>, where BGP LU/LDP defined in <xref target="RFC4364" sectionFormat="of" section="10"/>, whe re BGP LU/LDP
prefixes in CsC VRF are advertised in AFI/SAFI 1/128 towards the prefixes in CsC VRF are advertised in AFI/SAFI 1/128 towards the
remote-end client carrier.</t> remote-end client carrier.</t>
<t>In this document, SAFI 76 (BGP CT) is used instead of reusing SAFI <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 128 (L3VPN) for AFIs 1 or 2 to carry these transport routes because it
is operationally advantageous to segregate transport and service is operationally advantageous to segregate transport and service
prefixes into separate address families. For example, such an approach prefixes into separate address families. For example, such an approach
allows operators to safely enable "per-prefix" label allocation scheme allows operators to safely enable a "per-prefix" label-allocation scheme
for Classful Transport prefixes, typically with a number of routes in for Classful Transport prefixes, typically with a number of routes in
the hundreds of thousands or less, without affecting SAFI 128 service the hundreds of thousands or less, without affecting SAFI 128 service
prefixes which may represent millions of routes, at time of writing. prefixes, which may represent millions of routes at the time of writing.
The "per prefix" label allocation scheme localizes routing churn The "per-prefix" label-allocation scheme localizes routing churn
during topology changes.</t> during topology changes.</t>
<t>Service routes continue to be carried in their existing AFI/SAFIs <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), without any change. For example, L3VPN (AFI/SAFI: 1/128 and 2/128),
EVPN (AFI/SAFI: 25/70 ), VPLS (AFI/SAFI: 25/65), Internet (AFI/SAFI: EVPN (AFI/SAFI: 25/70 ), Virtual Private LAN Service (VPLS) (AFI/SAFI: 2 5/65), or Internet (AFI/SAFI:
1/1 or 2/1). These service routes can resolve over BGP CT (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> 1/76 or 2/76) transport routes.</t>
<t>A new SAFI 76 for AFI 1 and AFI 2 also facilitates having a <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 different distribution path of the transport family routes in a
network than the service route distribution path. Service routes network than the service route distribution path. Service routes
(Inet-VPN SAFI 128) are exchanged over an EBGP multihop session (Inet-VPN SAFI 128) are exchanged over an EBGP multihop session
between ASes with next hop unchanged; whereas Classful Transport between ASes with the NH unchanged; whereas Classful Transport
routes (SAFI 76) are advertised over EBGP single-hop sessions with routes (SAFI 76) are advertised over EBGP single-hop sessions with a
"next hop self" rewrite over inter-AS links.</t> "NH self" rewrite over inter-AS links.</t>
<t>The BGP CT SAFI 76 for AFI 1 and 2 is conceptually similar to BGP <t>The BGP CT SAFI 76 for AFI 1 and 2 is conceptually similar to BGP
LU SAFI 4, in that it carries transport prefixes. The only difference LU SAFI 4 in that it carries transport prefixes. The only difference
is that it also carries in a Route Target an indication of which is that it also carries in a Route Target an indication of which
Transport Class the transport prefix belongs to, and uses the RD to Transport Class the transport prefix belongs to and uses the RD to
disambiguate multiple instances of the same transport prefix in a BGP disambiguate multiple instances of the same transport prefix in a BGP
Update.</t> UPDATE message.</t>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Protocol Procedures"> <name>Protocol Procedures</name>
<t>This section summarizes the procedures followed by various nodes <t>This section summarizes the procedures followed by various nodes
speaking Classful Transport family.</t> speaking Classful Transport family.</t>
<section numbered="true" toc="default">
<name>Preparing the Network to Deploy Classful Transport Planes</name>
<section title="Preparing the network to deploy Classful Transport planes" <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
<t><list> allocate a Transport Class Route Target to identify each Transport
<t>It is responsibility of the operators to decide the Transport Class.</t>
Classes to enable and use in their network. They are also expected <t>Operators configure the Transport Classes on the SNs and BNs in the
to allocate a Transport Class Route Target to identify each network with Transport Class Route Targets and appropriate
Transport Class.</t> Route Distinguishers.</t>
<t>Implementations <bcp14>MAY</bcp14> provide automatic generation and
<t>Operators configure the Transport Classes on the SNs and BNs in assignment of RD, RT values. They <bcp14>MAY</bcp14> also provide a
the network with Transport Class Route Targets and appropriate way to manually override the automatic mechanism in order to deal with
Route-Distinguishers.</t> any conflicts that may arise with existing RD, RT values in different
network domains participating in the deployment.</t>
<t>Implementations MAY provide automatic generation and assignment
of RD, RT values. They MAY 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> </section>
<section numbered="true" toc="default">
<name>Originating Classful Transport Routes</name>
<section title="Originating Classful Transport Routes"> <t>BGP CT routes are sent only to BGP peers that have negotiated the
<t><list> Multiprotocol Extensions capability described in <xref
<t>BGP CT routes are sent only to BGP peers that have negotiated target="RFC4760" sectionFormat="of" section="8"/> to be able to send
the Multiprotocol Extensions capability described in Section 8 of and receive BGP CT routes.</t>
[RFC4760] 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>At the ingress node of the tunnel's home domain, the tunneling <!--[rfced] Please review our updates to the text below and confirm
protocols install tunnel routes in the TRDB associated with the that we have interpreted your list correctly (i.e., the BGP CT
Transport Class to which the tunnel belongs.</t> 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.
<t>The egress node of the tunnel, i.e. the tunnel endpoint (EP), Original:
originates the BGP CT route with RD:EP in the NLRI, Transport The egress node of the tunnel, i.e. the tunnel endpoint (EP),
Class RT and PNH as EP. This BGP CT route will be resolved over originates the BGP CT route with RD:EP in the NLRI, Transport Class RT
the tunnel route in TRDB at the ingress node. When the tunnel is and PNH as EP.
up, the Classful Transport BGP route will become usable and get
re-advertised by the ingress node to BGP peers in neighboring
domains.</t>
<t>Alternatively, the ingress node of the tunnel, which is also an Current:
ASBR/ABR in tunnel's home domain, may originate the BGP CT route
for the tunnel destination with NLRI RD:EP, 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 route SHOULD NOT be advertised to the IBGP core The egress node of the tunnel, i.e., the tunnel endpoint (EP),
that contains the tunnel. This may be implemented by mechanisms originates the BGP CT route with RD:EP in the NLRI, a Transport Class
such as policy configuration. The impact of not prohibiting such RT, and a PNH as the EP.
advertisements is outside the scope of this document.</t>
<t>Unique RD SHOULD 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 <xref
target="rd-lbl-usage"/>.</t>
</list></t>
</section>
<section anchor="CTingress" <t>The egress node of the tunnel, i.e., the tunnel endpoint (EP),
title="Processing Classful Transport Routes by Ingress Nodes"> originates the BGP CT route with RD:EP in the NLRI, a Transport Class RT
<list> ,
<t>Upon receipt of a BGP CT route with a PNH EP that is not directly and a PNH as the EP. This BGP CT route will be resolved over the tunnel
connected (e.g. an IBGP-route), a Mapping Community (the Transport route in TRDB at the ingress node. When the tunnel is up, the Classful
Transport BGP route will become usable and get readvertised 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 with RD:EP in the NLRI, attaching a Transport Cla
ss
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 route <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>A unique RD <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 <xref
target="rd-lbl-usage" format="default"/>.</t>
</section>
<section anchor="CTingress" numbered="true" toc="default">
<name>Processing Classful Transport Routes by Ingress Nodes</name>
<t>Upon receipt of a BGP CT route with a PNH EP that is not directly
connected (e.g., an IBGP-route), a Mapping Community (the Transport
Class RT) on the route is used to decide to which resolution scheme Class RT) on the route is used to decide to which resolution scheme
this route is to be mapped.</t> this route is to be mapped.</t>
<t>The resolution scheme for a Transport Class RT with Transport
<t>The resolution scheme for a Transport Class RT with Transport
Class ID "C1" contains the TRDB of a Transport Class with same ID. Class ID "C1" contains the TRDB of a Transport Class with same ID.
The administrator MAY customize the resolution scheme for Transport The administrator <bcp14>MAY</bcp14> customize the resolution scheme f
Class "C1" to map to a different ordered list of TRDBs. If the or 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 resolution scheme for TC ID "C1" is not found, the resolution scheme
containing the "Best Effort" transport class TRDB is used.</t> containing the "Best-Effort" transport class TRDB is used.</t>
<t>The routes in the TRDBs associated with a selected resolution
<t>The routes in the TRDBs associated with selected resolution
scheme are used to resolve the received PNH EP. The order of TRDBs scheme are used to resolve the received PNH EP. The order of TRDBs
in the resolution scheme is followed when resolving the received 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 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 route was not found for EP in the primary TRDBs preceding it. This
achieves the fallback desired by the resolution scheme.</t> achieves the fallback desired by the resolution scheme.</t>
<t>If the resolution process does not find a matching route for the
<t>If the resolution process does not find a matching route for EP EP
in any of the associated TRDBs, the received BGP CT route MUST be in any of the associated TRDBs, the received BGP CT route <bcp14>MUST<
considered unresolvable. (See RFC 4271, Section 9.1.2.1).</t> /bcp14> be
considered unresolvable. (See <xref target="RFC4271" sectionFormat="of
<t>The received BGP CT route MUST be added to the TRDB corresponding " section="9.1.2.1"/>.)</t>
to the Transport Class "C1", if the transport class is provisioned <t>The received BGP CT route <bcp14>MUST</bcp14> be added to the TRD
B corresponding
to the Transport Class ID "C1" if the transport class is provisioned
locally. This step applies only if the Transport Class RT is 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 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 the TRDB, RD:EP is ignored when the BGP CT route for EP is added to the TRDB
so that overlay routes can resolve over this BGP CT tunnel route by so that overlay routes can resolve over this BGP CT tunnel route by
performing a lookup for EP. Please note that a TRDB is a logical performing a lookup for the EP. Please note that a TRDB is a logical
database of tunnel routes belonging to the same Transport Class ID, database of tunnel routes belonging to the same Transport Class ID;
hence it uses only the EP as the lookup key without RD or TC ID.</t> hence, it only uses the EP as the lookup key (without RD or TC ID).</t
>
<t>If no Mapping Community was found on a BGP CT route, the best <t>If no Mapping Community is found on a BGP CT route, the best-effo
effort resolution scheme is used for resolving the route's next hop, rt resolution scheme is used to resolve the route's next hop,
and the BGP CT route is not added to any TRDB.</t> and the BGP CT route is not added to any TRDB.</t>
</list>
</section> </section>
<section numbered="true" toc="default">
<name>Readvertising Classful Transport Route by Border Nodes</name>
<section title="Readvertising Classful Transport Route by Border Nodes"> <t>This section describes the MPLS label handling when readvertising
<list> a BGP CT route with "NH self". When readvertising a BGP
<t>This section describes the MPLS label handling when readvertising CT route with "NH self", a BN allocates an MPLS label to
a BGP CT route with Next Hop set to Self. When readvertising a BGP advertise upstream in the Classful Transport NLRI. The BN also install
CT route with Next Hop set to Self, a BN allocates an MPLS label to s
advertise upstream in Classful Transport NLRI. The BN also installs
an MPLS route for that label that swaps the incoming label with the 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 received from the downstream BGP speaker (or pops the incoming
label if the label received from the downstream BGP speaker was label if the label received from the downstream BGP speaker was
Implicit-NULL). The MPLS route then pushes received traffic to the Implicit-NULL). The MPLS route then pushes received traffic to the
transport tunnel or direct interface that the Classful Transport transport tunnel or direct interface that the Classful Transport
route's PNH resolved over.</t> route's PNH resolved over.</t>
<t>The label <bcp14>SHOULD</bcp14> be allocated with "per-prefix" la
<t>The label SHOULD be allocated with "per-prefix" label allocation bel-allocation
semantics. The IP prefix in the TRDB context (Transport-Class, semantics. The IP prefix in the TRDB context (Transport-Class,
IP-prefix) is used as the key to do per-prefix label allocation. IP-prefix) is used as the key to "per-prefix" label allocation.
This helps in avoiding BGP CT route churn throughout the CT network This helps in avoiding BGP CT route churn throughout the CT network
when an instability (e.g., link failure) is experienced in a domain. when an instability (e.g., link failure) is experienced in a domain.
The failure is not propagated further than the BN closest to the The failure is not propagated further than the BN closest to the
failure. If a different label allocation mode is used, the impact on failure. If a different label-allocation mode is used, the impact on
end to end convergence should be considered.</t> end-to-end convergence should be considered.</t>
<t>The value of the advertised MPLS label is locally significant, <t>The value of the advertised MPLS label is locally significant
and is dynamic by default. A BN may provide an option to allocate a and is dynamic by default. A BN may provide an option to allocate a
value from a statically provisioned range. This can be achieved value from a statically provisioned range. This can be achieved
using locally configured export policy, or via mechanisms such as using a locally configured export policy or via mechanisms such as
the ones described in <xref target="RFC8669">BGP the ones described related to BGP Prefix-SID as described in BGP (see
Prefix-SID</xref>.</t> <xref target="RFC8669" format="default"></xref>).</t>
</list>
</section>
<section title="Border Nodes Receiving Classful Transport Routes on EBGP"> </section>
<list> <section numbered="true" toc="default">
<t>If a route is received with a PNH that is known to be directly <name>Border Nodes Receiving Classful Transport Routes on EBGP</name>
connected (for example, EBGP single-hop neighbor address), the <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 directly connected interface is checked for MPLS forwarding
capability. No other next hop resolution process is performed since capability. No other next hop resolution process is performed since
the inter-AS link can be used for any Transport Class.</t> 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 BN
<t>If the inter-AS links need to honor Transport Class, then the BN <bcp14>MUST</bcp14> follow the procedures of an Ingress node (<xref ta
MUST follow procedures of an Ingress node (<xref rget="CTingress" format="default"/>) and perform the next hop resolution process
target="CTingress"/>) and perform the next hop resolution process. .
In order to make the link Transport Class aware, the route to In order to make the link Transport Class aware, the route to the
directly connected PNH is installed in the TRDB belonging to the directly connected PNH is installed in the TRDB belonging to the
associated Transport Class.</t> associated Transport Class.</t>
</list>
</section>
<section title="Avoiding Path Hiding Through Route Reflectors"> </section>
<list> <section numbered="true" toc="default">
<t>When multiple instances of a given RD:EP exist with different <name>Avoiding Path Hiding Through Route Reflectors</name>
forwarding characteristics, then <xref target="RFC7911">BGP <t>When multiple instances of a given RD:EP exist with different
ADD-PATH</xref> is helpful.</t> forwarding characteristics, BGP ADD-PATH (see <xref target="RFC7911" f
ormat="default"></xref>) is helpful.</t>
<t>When multiple BNs exist such that they advertise a "RD:EP" prefix <t>When multiple BNs exist such that they advertise an "RD:EP" prefi x
to Route Reflectors (RRs), the RRs may hide all but one of the BNs, to Route Reflectors (RRs), the RRs may hide all but one of the BNs,
unless <xref target="RFC7911">BGP ADD-PATH</xref> is used for the unless BGP ADD-PATH (see <xref target="RFC7911" format="default"></xre f>) is used for the
Classful Transport family. This is similar to L3VPN Option B Classful Transport family. This is similar to L3VPN Option B
scenarios.</t> scenarios.</t>
<t>Hence, BGP ADD-PATH (see <xref target="RFC7911" format="default">
<t>Hence, <xref target="RFC7911">BGP ADD-PATH</xref> SHOULD be used </xref>) <bcp14>SHOULD</bcp14> be used
for Classful Transport family, to avoid path-hiding through RRs so for the Classful Transport family to avoid path hiding through RRs so
that the RR sends multiple CT routes for RD:EP to its clients. This 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 improves the convergence time when the path via one of the multiple
BNs fails.</t> BNs fails.</t>
</list>
</section>
<section title="Avoiding Loops Between Route Reflectors in Forwarding Path </section>
"> <section numbered="true" toc="default">
<list> <name>Avoiding Loops Between Route Reflectors in Forwarding Paths</name>
<t>A pair of redundant ABRs, each acting as an RR with next hop <t>A pair of redundant ABRs, each acting as an RR with the next hop
self, may choose each other as best path instead of the upstream set to itself, may choose each other as the best path instead of the u
ASBR, causing a traffic forwarding loop.</t> pstream
ASBR, causing a traffic-forwarding loop.</t>
<t>This problem can happen for routes of any BGP address family, <t>This problem can happen for routes of any BGP address family,
including BGP CT and BGP LU.</t> including BGP CT and BGP LU.</t>
<t>Using one or more of the approaches described in <xref target="I-
<t>Using one or more of the approaches described in <xref D.ietf-idr-bgp-fwd-rr" format="default"/> lowers the possibility of such loops i
target="BGP-FWD-RR"/> softens the possibility of such loops in a n a
network with redundant ABRs.</t> network with redundant ABRs.</t>
</list>
</section> </section>
<section numbered="true" toc="default">
<name>Ingress Nodes Receiving Service Routes with a Mapping Community</n
ame>
<section title="Ingress Nodes Receiving Service Routes with a Mapping Comm <t>Upon receipt of a BGP service route (for example, AFI/SAFI: 1/1,
unity"> 2/1) with a PNH as the EP that is not directly connected (for example,
<list> an IBGP-route), a Mapping Community (for example, a Color Extended
<t>Upon receipt of a BGP service route (for example, AFI/SAFI: 1/1,
2/1) with a PNH as EP that is not directly connected (for example,
an IBGP-route), a Mapping Community (for example, Color Extended
Community) on the route is used to decide to which resolution scheme Community) on the route is used to decide to which resolution scheme
this route is to be mapped.</t> this route is to be mapped.</t>
<t>The resolution scheme for a Color Extended Community with Color
<t>The resolution scheme for a Color Extended Community with Color "C1" contains a TRDB for a Transport Class with same ID followed by
"C1" contains a TRDB for a Transport Class with same ID, followed by the Best-Effort TRDB. The administrator <bcp14>MAY</bcp14> customize t
the Best Effort TRDB. The administrator MAY customize the resolution he resolution
scheme to map to a different ordered list of TRDBs. If the scheme to map to a different ordered list of TRDBs. If the
resolution scheme for TC ID "C1" is not found, the resolution scheme resolution scheme for TC ID "C1" is not found, the resolution scheme
containing the "Best Effort" transport class TRDB is used.</t> containing the "Best-Effort" transport class TRDB is used.</t>
<t>If no Mapping Community was found on the overlay route, the "Best
<t>If no Mapping Community was found on the overlay route, the "Best
Effort" resolution scheme is used for resolving the route's next Effort" resolution scheme is used for resolving the route's next
hop. This behavior is backward compatible to behavior of an hop. This behavior is backward compatible to behavior of an
implementation that does not follow procedures described in this implementation that does not follow procedures described in this
document.</t> document.</t>
<t>The routes in the TRDBs associated with the selected resolution
<t>The routes in the TRDBs associated with selected resolution
scheme are used to resolve the received PNH EP. The order of TRDBs scheme are used to resolve the received PNH EP. The order of TRDBs
in a resolution scheme is followed when resolving the received PNH, 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 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 route was not found for the EP in the primary TRDBs preceding it. This
achieves the fallback desired by the resolution scheme.</t> achieves the fallback desired by the resolution scheme.</t>
<t>If the resolution process does not find a Tunnel Route for the EP
<t>If the resolution process does not find a Tunnel Route for EP in in
any of the Transport Route Databases, the service route MUST be any of the Transport Route Databases, the service route <bcp14>MUST</b
considered unresolvable (See RFC 4271, Section 9.1.2.1).</t> cp14> be
</list> considered unresolvable. (See <xref target="RFC4271" sectionFormat="of
" section="9.1.2.1"/>).</t>
<t>Note: For an illustration of above procedures in a MPLS network, <t>Note: For an illustration of above procedures in an MPLS network,
refer to <xref target="CTProc"/>.</t> refer to <xref target="CTProc" format="default"/>.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Best Effort Transport Class"> <name>Best-Effort Transport Class</name>
<list> <t>It is also possible to represent a 'Best-effort' SLA as a Transpo
<t>It is possible to represent 'Best effort' SLA also as a Transport rt
Class. Today, BGP LU is used to extend the best effort intra domain Class. At the time of writing, BGP LU is used to extend the best-effor
t intra-domain
tunnels to other domains.</t> tunnels to other domains.</t>
<t>Alternatively, BGP CT may also be used to carry the best-effort
<t>Alternatively, BGP CT may also be used to carry the best effort
tunnels. This document reserves the Transport Class ID value 0 to tunnels. This document reserves the Transport Class ID value 0 to
represent "Best Effort Transport Class ID". However, implementations represent the "Best-Effort Transport Class ID". However, implementatio
SHOULD provide configuration to use a different value for this ns
<bcp14>SHOULD</bcp14> provide configuration to use a different value f
or this
purpose. Procedures to manage differences in Transport Class ID purpose. Procedures to manage differences in Transport Class ID
namespaces between domains are provided in <xref namespaces between domains are provided in <xref target="non-agreeing"
target="non-agreeing"/>.</t> format="default"/>.</t>
<t>The "Best-Effort Transport Class ID" value is used in the
<t>The "Best Effort Transport Class ID" value is used in the "Transport Class ID" field of the Transport Route Target extended
"Transport Class ID" field of Transport Route Target Extended community that is attached to the BGP CT route that advertises a
Community that is attached to the BGP CT route that advertises a best-effort tunnel endpoint. Thus, the RT formed is called the "Best-E
best effort tunnel endpoint. The RT thus formed is called the "Best ffort Transport Class Route Target".</t>
Effort Transport Class Route Target".</t> <t>When a BN or SN receives a BGP CT route with Best-Effort
Transport Class Route Target as the mapping community, the Best-effort
<t>When a BN or SN receives a BGP CT route with Best Effort resolution scheme is used for resolving the BGP next hop, and
Transport Class Route Target as the mapping community, the Best the resultant route is installed in the best-effort transport route
effort resolution scheme is used for resolving the BGP next hop, and database. If no best-effort tunnel was found to resolve the BGP next
the resultant route is installed in the best effort transport route hop, the BGP CT route <bcp14>MUST</bcp14> be considered unusable and n
database. If no best effort tunnel was found to resolve the BGP next ot be
hop, the BGP CT route MUST be considered unusable, and not be
propagated further.</t> propagated further.</t>
<t>When a BGP speaker receives an overlay route without any explicit
<t>When a BGP speaker receives an overlay route without any explicit Mapping Community, and absent local policy, the best-effort
Mapping Community, and absent local policy, the best effort
resolution scheme is used for resolving the BGP next hop on the resolution scheme is used for resolving the BGP next hop on the
route. This behavior is backward compatible to behavior of an route. This behavior is backward compatible to behavior of an
implementation that does not follow procedures described in this implementation that does not follow procedures described in this
document.</t> document.</t>
<t>Implementations <bcp14>MAY</bcp14> provide configuration to selec
<t>Implementations MAY provide configuration to selectively install tively install
BGP CT routes to the Forwarding Information Base (FIB), to provide BGP CT routes to the Forwarding Information Base (FIB) to provide
reachability for control plane peering towards endpoints in other reachability for control-plane peering towards endpoints in other
domains.</t> domains.</t>
</list>
</section>
<section title="Interaction with BGP Attributes Specifying Next Hop Addres </section>
s and Color"> <section anchor="bgp-att" numbered="true" toc="default">
<t>The Tunnel Encapsulation Attribute, described in <xref <name>Interaction with BGP Attributes Specifying Next Hop Address and Co
target="RFC9012"/> can be used to request a specific type of tunnel lor</name>
<t>The Tunnel Encapsulation Attribute, described in <xref target="RFC901
2" format="default"/>, can be used to request a specific type of tunnel
encapsulation. This attribute may apply to BGP service routes or encapsulation. This attribute may apply to BGP service routes or
transport routes, including BGP Classful Transport family routes.</t> transport routes including BGP Classful Transport family routes.</t>
<t>It should be noted that in such cases "Transport Class ID/Color" <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 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 needs to be established to determine which Transport Class the route's
next hop should resolve over. This document specifies the following next hop should resolve over. This document specifies the following
order of precedence, more specific scoping of Color preferred to less order of precedence with more-specific scoping of Color preferred to les
specific scoping: <list> s-specific scoping: </t>
<t>Color SubTLV, in Tunnel Encapsulation Attribute.</t> <ul spacing="normal">
<li>
<t>Transport Target Extended community, on BGP CT route.</t> <t>Color sub-TLV in the Tunnel Encapsulation Attribute.</t>
</li>
<t>Color Extended community, on BGP service route.</t> <li>
</list></t> <t>Transport Target extended community on a BGP CT route.</t>
</li>
<t>Color specified in the Color subTLV in a TEA is a more specific <li>
<t>Color Extended Community on a BGP service route.</t>
</li>
</ul>
<t>Color specified in the Color sub-TLV in a TEA is a more-specific
indication of "Transport Class ID/Color" than Mapping Community indication of "Transport Class ID/Color" than Mapping Community
(Transport Target) on a BGP CT transport route, which is in turn is (Transport Target) on a BGP CT transport route, which, in turn, is
more specific than a Service route scoped Mapping Community (Color more specific than a Service-route-scoped Mapping Community (Color
Extended community).</t> Extended Community).</t>
<t>Any BGP attributes or mechanisms defined in future that carry <t>Any BGP attributes or mechanisms defined in future that carry
Transport Class ID/Color on the route are expected to specify the Transport Class ID/Color on the route are expected to specify the
order of precedence relative to the above.</t> order of precedence relative to the above.</t>
</section> </section>
<section numbered="true" toc="default">
<name>Applicability to Flowspec Redirect-to-IP</name>
<section title="Applicability to Flowspec Redirect to IP"> <t>Flowspec routes using redirect-to-IP next hop are described in <xref
<t>Flowspec routes using Redirect to IP next hop is described in <xref target="I-D.ietf-idr-flowspec-redirect-ip" format="default"/>.</t>
target="FLOWSPEC-REDIR-IP"/></t> <t>Such Flowspec BGP routes with redirect-to-IP next hop <bcp14>MAY</bcp
14> be
<t>Such Flowspec BGP routes with Redirect to IP next hop MAY be attached with a Mapping Community (e.g., Color:0:100), which allows
attached with a Mapping Community (e.g. Color:0:100), which allows
redirecting the flow traffic over a tunnel to the IP next hop redirecting the flow traffic over a tunnel to the IP next hop
satisfying the desired SLA (e.g. Transport Class color 100).</t> satisfying the desired SLA (e.g., Transport Class color 100).</t>
<t>The Flowspec BGP family acts as just another service that can make us
<t>Flowspec BGP family acts as just another service that can make use e
of BGP CT architecture to achieve Flow based forwarding with SLAs.</t> of the BGP CT architecture to achieve flow-based forwarding with SLAs.</
t>
</section> </section>
<section anchor="IPv6-Applicability" numbered="true" toc="default">
<section anchor="IPv6-Applicability" title="Applicability to IPv6"> <name>Applicability to IPv6</name>
<t>BGP CT procedures apply equally to IPv4 and IPv6 enabled Intra-AS <t>BGP CT procedures apply equally to IPv4- and IPv6-enabled Intra-AS
or Inter-AS Option A, B, C network. This section describes or Inter-AS Option A, B, and C networks. This section describes
applicability of BGP CT to IPv6 at various layers.</t> the applicability of BGP CT to IPv6 at various layers.</t>
<t>A network that is BGP CT enabled supports IPv6 service families (for
<t>A BGP CT enabled network supports IPv6 service families (for
example, AFI/SAFI 2/1 or 2/128) and IPv6 transport signaling protocols example, AFI/SAFI 2/1 or 2/128) and IPv6 transport signaling protocols
like SRTEv6, LDPv6, RSVP-TEv6.</t> like SRTEv6, LDPv6, or RSVP-TEv6.</t>
<t>Procedures in this document also apply to a network with Pure IPv6 <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 core, that uses MPLS forwarding for intra-domain tunnels and inter-AS
links. BGP CTv6 family (AFI/SAFI: 2/76) is used to carry global IPv6 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 address tunnel endpoints in the NLRI. Service family routes (for
example, AFI/SAFI: 1/1, 2/1, 1/128, 2/128) are also advertised with example, AFI/SAFI: 1/1, 2/1, 1/128, and 2/128) are also advertised with
those Global IPv6 addresses as next hop.</t> those Global IPv6 addresses as next hop.</t>
<t>Procedures in this document also apply to a 6PE network with an <t>Procedures in this document also apply to a 6PE network with an
IPv4 core, that uses MPLS forwarding for intra-domain tunnels and IPv4 core, which uses MPLS forwarding for intra-domain tunnels and
Inter-AS links. BGP CTv6 family (AFI/SAFI: 2/76) is used to carry IPv4 Inter-AS links. The BGP CTv6 family (AFI/SAFI: 2/76) is used to carry IP
v4
Mapped IPv6 address tunnel endpoints in the NLRI. IPv6 Service family Mapped IPv6 address tunnel endpoints in the NLRI. IPv6 Service family
routes (for example, AFI/SAFI: 2/1, 2/128) are also advertised with routes (for example, AFI/SAFI: 2/1, 2/128) are also advertised with
those IPv4 Mapped IPv6 addresses as next hop.</t> those IPv4 Mapped IPv6 addresses as next hop.</t>
<t>The PE-CE attachment circuits may use IPv4 addresses only, IPv6 <t>The PE-CE attachment circuits may use IPv4 addresses only, IPv6
addresses only, or both IPv4 and IPv6 addresses.</t> addresses only, or both IPv4 and IPv6 addresses.</t>
<t/>
</section> </section>
<section anchor="SRv6-Support" numbered="true" toc="default">
<section anchor="SRv6-Support" title="SRv6 Support"> <name>SRv6 Support</name>
<t>BGP CT family (AFI/SAFI 2/76) may be used to set up inter-domain <t>The BGP CT family (AFI/SAFI 2/76) may be used to set up inter-domain
tunnels of a certain Transport Class, when using Segment Routing over tunnels of a certain Transport Class when using a Segment Routing over
IPv6 (SRv6) data plane on the inter-AS links or as an intra-AS IPv6 (SRv6) data plane on the inter-AS links or as an intra-AS
tunneling mechanism.</t> tunneling mechanism.</t>
<t>Details of SRv6 Endpoint behaviors used by BGP CT and the <t>Details of SRv6 Endpoint behaviors used by BGP CT and the
procedures are specified in a separate document <xref procedures are specified and illustrated in a separate document (see <xr
target="BGP-CT-SRv6"/>, along with illustration. As noted in that ef target="I-D.ietf-idr-bgp-ct-srv6" format="default"/>). As noted in that
document, BGP CT route update for SRv6 includes a BGP attribute document, a BGP CT route update for SRv6 includes a BGP attribute
containing SRv6 SID information (e.g. Prefix SID [RFC9252]) with containing SRv6 SID information (e.g., a BGP Prefix-SID <xref target="RF
C9252"/>) with the
Transposition scheme disabled.</t> Transposition scheme disabled.</t>
</section> </section>
<section anchor="error-handling" numbered="true" toc="default">
<section anchor="error-handling" title="Error Handling Considerations"> <name>Error-Handling Considerations</name>
<t>If a BGP speaker receives both <xref <t>If a BGP speaker receives both Transitive and Non-Transitive (see <xr
target="tc-rt-t">Transitive</xref> and <xref ef target="tc-rt-t" format="default"></xref> and <xref target="tc-rt-nt" format=
target="tc-rt-nt">Non-Transitive</xref> versions of Transport Class "default"></xref>, respectively) versions of a Transport Class
extended community on a route, only the Transitive one is used.</t> extended community on a route, only the Transitive one is used.</t>
<t>If a BGP speaker considers a received "Transport Class" extended <t>If a BGP speaker considers a received "Transport Class" extended
community (Transitive or Non-Transitive version), or any other part of community (the Transitive or Non-Transitive version) or any other part o f
a BGP CT route invalid for some reason, but is able to successfully a BGP CT route invalid for some reason, but is able to successfully
parse the NLRI and attributes, Treat-as-withdraw approach from <xref parse the NLRI and attributes, the treat-as-withdraw approach from <xref
target="RFC7606"/> is used. The route is kept as Unusable, with target="RFC7606" format="default"/> is used. The route is kept as Unusable, wit
h
appropriate diagnostic information, to aid troubleshooting.</t> appropriate diagnostic information, to aid troubleshooting.</t>
</section> </section>
</section> </section>
<section anchor="CTProc" numbered="true" toc="default">
<section anchor="CTProc" title="Illustration of BGP CT Procedures"> <name>Illustration of BGP CT Procedures</name>
<t>This section illustrates BGP CT procedures in an Inter-AS Option C <t>This section illustrates BGP CT procedures in an Inter-AS Option C
MPLS network.</t> MPLS network.</t>
<t>All illustrations in this document make use of IP address ranges as des
<t>All Illustrations in this document make use of <xref cribed in <xref target="RFC6890" format="default"/>. The range 192.0.2.0/24 is u
target="RFC6890"/> IP address ranges. The range 192.0.2.0/24 is used to sed to
represent transport endpoints like loopback addresses. The range represent transport endpoints like loopback addresses. The range
203.0.113.0/24 is used to represent service route prefixes advertised in 203.0.113.0/24 is used to represent service route prefixes advertised in
AFI/SAFIs: 1/1 or 1/128.</t> AFI/SAFIs: 1/1 or 1/128.</t>
<t>Though this section illustrates the use of IPv4, as described in <xref
<t>Though this section illustrates using IPv4, as described in <xref target="IPv6-Applicability" format="default"/>, these procedures work equally fo
target="IPv6-Applicability"/> these procedures work equally for IPv6 r IPv6
as-well.</t> as well.</t>
<section numbered="true" toc="default">
<section title="Reference Topology"> <name>Reference Topology</name>
<figure anchor="CTProcTopo">
<figure title="Multi-Domain BGP CT Network" anchor="CTProcTopo"><artset><artwork <name>Multi-Domain BGP CT Network</name>
type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="320" <artset>
width="584" viewBox="0 0 584 320" class="diagram" text-anchor="middle" font-fami <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://w
ly="monospace" font-size="13px" stroke-linecap="round"> ww.w3.org/2000/svg" version="1.1" height="320" width="584" viewBox="0 0 584 320"
<path d="M 128,48 L 128,96" fill="none" stroke="black"/> class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" s
<path d="M 144,80 L 144,96" fill="none" stroke="black"/> troke-linecap="round">
<path d="M 144,128 L 144,176" fill="none" stroke="black"/> <path d="M 128,48 L 128,96" fill="none" stroke="black"/>
<path d="M 240,80 L 240,96" fill="none" stroke="black"/> <path d="M 144,80 L 144,96" fill="none" stroke="black"/>
<path d="M 240,128 L 240,176" fill="none" stroke="black"/> <path d="M 144,128 L 144,176" fill="none" stroke="black"/>
<path d="M 256,48 L 256,96" fill="none" stroke="black"/> <path d="M 240,80 L 240,96" fill="none" stroke="black"/>
<path d="M 272,80 L 272,96" fill="none" stroke="black"/> <path d="M 240,128 L 240,176" fill="none" stroke="black"/>
<path d="M 272,128 L 272,176" fill="none" stroke="black"/> <path d="M 256,48 L 256,96" fill="none" stroke="black"/>
<path d="M 448,80 L 448,96" fill="none" stroke="black"/> <path d="M 272,80 L 272,96" fill="none" stroke="black"/>
<path d="M 448,128 L 448,176" fill="none" stroke="black"/> <path d="M 272,128 L 272,176" fill="none" stroke="black"/>
<path d="M 464,48 L 464,96" fill="none" stroke="black"/> <path d="M 448,80 L 448,96" fill="none" stroke="black"/>
<path d="M 480,80 L 480,96" fill="none" stroke="black"/> <path d="M 448,128 L 448,176" fill="none" stroke="black"/>
<path d="M 480,128 L 480,176" fill="none" stroke="black"/> <path d="M 464,48 L 464,96" fill="none" stroke="black"/>
<path d="M 568,80 L 568,96" fill="none" stroke="black"/> <path d="M 480,80 L 480,96" fill="none" stroke="black"/>
<path d="M 568,128 L 568,176" fill="none" stroke="black"/> <path d="M 480,128 L 480,176" fill="none" stroke="black"/>
<path d="M 144,80 L 160,80" fill="none" stroke="black"/> <path d="M 568,80 L 568,96" fill="none" stroke="black"/>
<path d="M 224,80 L 240,80" fill="none" stroke="black"/> <path d="M 568,128 L 568,176" fill="none" stroke="black"/>
<path d="M 272,80 L 288,80" fill="none" stroke="black"/> <path d="M 144,80 L 160,80" fill="none" stroke="black"/>
<path d="M 432,80 L 448,80" fill="none" stroke="black"/> <path d="M 224,80 L 240,80" fill="none" stroke="black"/>
<path d="M 480,80 L 496,80" fill="none" stroke="black"/> <path d="M 272,80 L 288,80" fill="none" stroke="black"/>
<path d="M 552,80 L 568,80" fill="none" stroke="black"/> <path d="M 432,80 L 448,80" fill="none" stroke="black"/>
<path d="M 144,176 L 160,176" fill="none" stroke="black"/> <path d="M 480,80 L 496,80" fill="none" stroke="black"/>
<path d="M 224,176 L 240,176" fill="none" stroke="black"/> <path d="M 552,80 L 568,80" fill="none" stroke="black"/>
<path d="M 272,176 L 288,176" fill="none" stroke="black"/> <path d="M 144,176 L 160,176" fill="none" stroke="black"/>
<path d="M 432,176 L 448,176" fill="none" stroke="black"/> <path d="M 224,176 L 240,176" fill="none" stroke="black"/>
<path d="M 480,176 L 496,176" fill="none" stroke="black"/> <path d="M 272,176 L 288,176" fill="none" stroke="black"/>
<path d="M 552,176 L 568,176" fill="none" stroke="black"/> <path d="M 432,176 L 448,176" fill="none" stroke="black"/>
<path d="M 120,288 L 192,288" fill="none" stroke="black"/> <path d="M 480,176 L 496,176" fill="none" stroke="black"/>
<path d="M 352,288 L 448,288" fill="none" stroke="black"/> <path d="M 552,176 L 568,176" fill="none" stroke="black"/>
<path d="M 344,96 L 376,160" fill="none" stroke="black"/> <path d="M 120,288 L 192,288" fill="none" stroke="black"/>
<path d="M 336,160 L 368,96" fill="none" stroke="black"/> <path d="M 352,288 L 448,288" fill="none" stroke="black"/>
<polygon class="arrowhead" points="456,288 444,282.4 444,293.6" fill="black" tra <path d="M 344,96 L 376,160" fill="none" stroke="black"/>
nsform="rotate(0,448,288)"/> <path d="M 336,160 L 368,96" fill="none" stroke="black"/>
<g class="text"> <polygon class="arrowhead" points="456,288 444,282.4 444,293.6"
<text x="132" y="36">[RR26]</text> fill="black" transform="rotate(0,448,288)"/>
<text x="260" y="36">[RR27]</text> <g class="text">
<text x="468" y="36">[RR16]</text> <text x="132" y="36">[RR26]</text>
<text x="192" y="84">[ABR23]</text> <text x="260" y="36">[RR27]</text>
<text x="360" y="84">[ASBR21]-[ASBR13]</text> <text x="468" y="36">[RR16]</text>
<text x="524" y="84">[PE11]</text> <text x="192" y="84">[ABR23]</text>
<text x="80" y="116">[CE41]-[PE25]-[P28]</text> <text x="360" y="84">[ASBR21]-[ASBR13]</text>
<text x="256" y="116">[P29]</text> <text x="524" y="84">[PE11]</text>
<text x="464" y="116">[P15]</text> <text x="80" y="116">[CE41]-[PE25]-[P28]</text>
<text x="556" y="116">[CE31]</text> <text x="256" y="116">[P29]</text>
<text x="192" y="180">[ABR24]</text> <text x="464" y="116">[P15]</text>
<text x="360" y="180">[ASBR22]-[ASBR14]</text> <text x="556" y="116">[CE31]</text>
<text x="524" y="180">[PE12]</text> <text x="192" y="180">[ABR24]</text>
<text x="56" y="228">:</text> <text x="360" y="180">[ASBR22]-[ASBR14]</text>
<text x="120" y="228">AS2</text> <text x="524" y="180">[PE12]</text>
<text x="192" y="228">:</text> <text x="56" y="228">:</text>
<text x="280" y="228">AS2</text> <text x="120" y="228">AS2</text>
<text x="352" y="228">:</text> <text x="192" y="228">:</text>
<text x="528" y="228">:</text> <text x="280" y="228">AS2</text>
<text x="32" y="244">AS4</text> <text x="352" y="228">:</text>
<text x="56" y="244">:</text> <text x="528" y="228">:</text>
<text x="124" y="244">region-1</text> <text x="32" y="244">AS4</text>
<text x="192" y="244">:</text> <text x="56" y="244">:</text>
<text x="276" y="244">region-2</text> <text x="124" y="244">region-1</text>
<text x="352" y="244">:</text> <text x="192" y="244">:</text>
<text x="424" y="244">AS1</text> <text x="276" y="244">region-2</text>
<text x="528" y="244">:</text> <text x="352" y="244">:</text>
<text x="568" y="244">AS3</text> <text x="424" y="244">AS1</text>
<text x="56" y="260">:</text> <text x="528" y="244">:</text>
<text x="192" y="260">:</text> <text x="568" y="244">AS3</text>
<text x="352" y="260">:</text> <text x="56" y="260">:</text>
<text x="528" y="260">:</text> <text x="192" y="260">:</text>
<text x="52" y="292">203.0.113.41</text> <text x="352" y="260">:</text>
<text x="232" y="292">Traffic</text> <text x="528" y="260">:</text>
<text x="304" y="292">Direction</text> <text x="52" y="292">203.0.113.41</text>
<text x="516" y="292">203.0.113.31</text> <text x="232" y="292">Traffic</text>
</g> <text x="304" y="292">Direction</text>
</svg> <text x="516" y="292">203.0.113.31</text>
</artwork><artwork type="ascii-art"><![CDATA[ </g>
</svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
[RR26] [RR27] [RR16] [RR26] [RR27] [RR16]
| | | | | |
| | | | | |
| +--[ABR23]--+ | +--[ASBR21]-[ASBR13]--+ | +--[PE11]--+ | +--[ABR23]--+ | +--[ASBR21]-[ASBR13]--+ | +--[PE11]--+
| | | | | \ / | | | | | | | | | \ / | | | |
[CE41]-[PE25]-[P28] [P29] \/ [P15] [CE31] [CE41]-[PE25]-[P28] [P29] \/ [P15] [CE31]
| | | /\ | | | | | | /\ | | |
| | | / \ | | | | | | / \ | | |
| | | / \ | | | | | | / \ | | |
+--[ABR24]--+ +--[ASBR22]-[ASBR14]--+ +--[PE12]--+ +--[ABR24]--+ +--[ASBR22]-[ASBR14]--+ +--[PE12]--+
: AS2 : AS2 : : : AS2 : AS2 : :
AS4 : region-1 : region-2 : AS1 : AS3 AS4 : region-1 : region-2 : AS1 : AS3
: : : : : : : :
203.0.113.41 ---------- Traffic Direction ------------> 203.0.113.31 203.0.113.41 ---------- Traffic Direction ------------> 203.0.113.31
]]></artwork>
]]></artwork></artset></figure> </artset>
</figure>
<t>This example shows a provider MPLS network that consists of two <t>This example shows a provider MPLS network that consists of two
ASes, AS1 and AS2. They are serving customers AS3, AS4 respectively. ASes, AS1 and AS2, that serve customers AS3 and AS4, respectively.
Traffic direction being described is CE41 to CE31. CE31 may request a The traffic direction being described is from CE41 to CE31. CE31 may req
specific SLA (for example, mapped to Gold for this example), when uest a
specific SLA (mapped to Gold for this example), when
traversing these provider networks.</t> traversing these provider networks.</t>
<!-- [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 ISIS Flex-Algo [RFC9350]
intra-domain tunnels. AS2 uses RSVP-TE intra-domain tunnels.
-->
<t>AS2 is further divided into two regions. There are three tunnel <t>AS2 is further divided into two regions. There are three tunnel
domains in provider's space: AS1 uses <xref target="RFC9350">ISIS domains in the provider's space:</t>
Flex-Algo</xref> intra-domain tunnels. AS2 uses RSVP-TE intra-domain <ul>
tunnels. MPLS forwarding is used within these domains and on <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> inter-domain links.</t>
<t>The network exposes two Transport Classes: "Gold" with Transport <t>The network exposes two Transport Classes: "Gold" with Transport
Class ID 100, "Bronze" with Transport Class ID 200. These Transport Class ID 100 and "Bronze" with Transport Class ID 200. These Transport
Classes are provisioned at the PEs and the Border nodes (ABRs, ASBRs) Classes are provisioned at the PEs and the Border nodes (ABRs and ASBRs)
in the network.</t> in the network.</t>
<t>The following tunnels exist for the Gold Transport Class:</t>
<t>The following tunnels exist for Gold Transport Class.<list> <ul spacing="normal">
<li>
<t>PE25_to_ABR23_gold - RSVP-TE tunnel</t> <t>PE25_to_ABR23_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>PE25_to_ABR24_gold - RSVP-TE tunnel</t> <t>PE25_to_ABR24_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>ABR23_to_ASBR22_gold - RSVP-TE tunnel</t> <t>ABR23_to_ASBR22_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR13_to_PE11_gold - SRTE tunnel</t> <t>ASBR13_to_PE11_gold - SRTE tunnel</t>
</li>
<li>
<t>ASBR14_to_PE11_gold - SRTE tunnel</t> <t>ASBR14_to_PE11_gold - SRTE tunnel</t>
</list></t> </li>
</ul>
<t>The following tunnels exist for Bronze Transport Class.<list> <t>The following tunnels exist for Bronze Transport Class:</t>
<ul spacing="normal">
<li>
<t>PE25_to_ABR23_bronze - RSVP-TE tunnel</t> <t>PE25_to_ABR23_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>ABR23_to_ASBR21_bronze - RSVP-TE tunnel</t> <t>ABR23_to_ASBR21_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>ABR23_to_ASBR22_bronze - RSVP-TE tunnel</t> <t>ABR23_to_ASBR22_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>ABR24_to_ASBR21_bronze - RSVP-TE tunnel</t> <t>ABR24_to_ASBR21_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR13_to_PE12_bronze - ISIS FlexAlgo tunnel</t> <t>ASBR13_to_PE12_bronze - ISIS FlexAlgo tunnel</t>
</li>
<li>
<t>ASBR14_to_PE11_bronze - ISIS FlexAlgo tunnel</t> <t>ASBR14_to_PE11_bronze - ISIS FlexAlgo tunnel</t>
</list></t> </li>
</ul>
<t>These tunnels are either provisioned or auto-discovered to belong <t>These tunnels are either provisioned or autodiscovered to belong
to Transport Classes 100 or 200.</t> to Transport Class IDs 100 or 200.</t>
</section> </section>
<section numbered="true" toc="default">
<name>Service-Layer Route Exchange</name>
<section title="Service Layer Route Exchange"> <!--[rfced] Please review the use of a comma in the following
<t>Service nodes PE11, PE12 negotiate service families (AFI: 1 and 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 SAFIs 1, 128) on the BGP session with RR16. Service helpers RR16 and
RR26 exchange these service routes with next hop unchanged over a RR26 exchange these service routes with the next hop unchanged over a
multihop EBGP session between the two AS. PE25 negotiates service multihop EBGP session between the two ASes. PE25 negotiates service
families (AFI: 1 and SAFIs 1, 128) with RR26.</t> families (AFI: 1 and SAFIs 1, 128) with RR26.</t>
<t>The PEs see each other as the next hop in the BGP UPDATE message for
<t>The PEs see each other as next hop in the BGP Update for the the
service family routes. BGP ADD-PATH send and receive is enabled on service family routes. BGP ADD-PATH send and receive are enabled on
both directions on the EBGP multihop session between RR16 and RR26 for 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 AFI:1 and SAFIs 1, 128. BGP ADD-PATH send is negotiated in the RR to
PE direction in each AS. This is to avoid path hiding of service PE direction in each AS. This is to avoid the path-hiding service
routes at RR; i.e., AFI/SAFI 1/1 routes advertised by both PE11 and routes at the RR, i.e., AFI/SAFI 1/1 routes advertised by both PE11 and
PE12. Or, AFI/SAFI 1/128 routes originated by both PE11 and PE12 using PE12 or AFI/SAFI 1/128 routes originated by both PE11 and PE12 using
same RD.</t> the same RD.</t>
<t>Forwarding happens using service routes installed at service nodes <t>Forwarding happens using service routes installed at service nodes
PE25, PE11, PE12 only. Service routes received from CEs are not PE25, PE11, and PE12 only. Service routes received from CEs are not
present in any other nodes' FIB in the network.</t> 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 <t>As an example, CE31 advertises a route for prefix 203.0.113.31 with
next hop as self to PE11, PE12. CE31 can attach a Mapping Community the next hop as itself to PE11 and PE12. CE31 can attach a Mapping Commu
Color:0:100 on this route, to indicate its request for Gold SLA. Or, nity
Color:0:100 on this route to indicate its request for a Gold SLA. Or,
PE11 can attach the same using locally configured policies.</t> PE11 can attach the same using locally configured policies.</t>
<t>Consider CE31 getting VPN service from PE11. The
<t>Consider, CE31 is getting VPN service from PE11. The
RD1:203.0.113.31 route is readvertised in AFI/SAFI 1/128 by PE11 with RD1:203.0.113.31 route is readvertised in AFI/SAFI 1/128 by PE11 with
next hop self (192.0.2.11) and label V-L1, to RR16 with the Mapping the next hop set to itself (192.0.2.11) and label V-L1 to RR16 with the
Community Color:0:100 attached. RR16 advertises this route with BGP Mapping
ADD-PATH ID to RR26 which readvertises to PE25 with next hop Community Color:0:100 attached. RR16 advertises this route with the BGP
ADD-PATH ID set to RR26, which readvertises to PE25 with the next hop
unchanged. Now, PE25 can resolve the PNH 192.0.2.11 using transport unchanged. Now, PE25 can resolve the PNH 192.0.2.11 using transport
routes received in BGP CT or BGP LU.</t> routes received in BGP CT or BGP LU.</t>
<t>Using BGP ADD-PATH, service routes advertised by PE11 and PE12 for <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 AFI:1 SAFIs 1, 128 reach PE25 via RR16, RR26 with the next hop
unchanged, as PE11 or PE12.</t> 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
<t>The IP FIB at PE25 VRF will have a route for 203.0.113.31 with a next hop when resolved that points to a Gold tunnel in the ingress
next hop when resolved, that points to a Gold tunnel in ingress
domain.</t> domain.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Transport Layer Route Propagation"> <name>Transport-Layer Route Propagation</name>
<t>Egress nodes PE11, PE12 negotiate BGP CT family with transport <t>Egress nodes PE11 and PE12 negotiate a BGP CT family with transport
ASBRs ASBR13, ASBR14. These egress nodes originate BGP CT routes for ASBRs ASBR13 and ASBR14. These egress nodes originate BGP CT routes for
tunnel endpoint addresses, that are advertised as next hop in BGP tunnel endpoint addresses that are advertised as a next hop in BGP
service routes. In this example, both PEs participate in transport service routes. In this example, both PEs participate in transport
classes Gold and Bronze. The protocol procedures are explained using classes Gold and Bronze. The protocol procedures are explained using
the Gold SLA transport plane and the Bronze SLA transport plane is the Gold SLA transport plane; the Bronze SLA transport plane is
used to highlight the path hiding aspects.</t> used to highlight the path-hiding aspects.</t>
<t>For Gold tunnels, PE11 is provisioned with transport class 100, RD va
<t>PE11 is provisioned with transport class 100, RD value lue
192.0.2.11:100 and a transport-target:0:100 for Gold tunnels. And a 192.0.2.11:100, and a transport-target:0:100. For Bronze tunnels, PE11 i
Transport class 200 with RD value 192.0.2.11:200, and transport route s provisioned with
target 0:200 for Bronze tunnels. Similarly, PE12 is provisioned with Transport class 200, RD value 192.0.2.11:200, and transport route
transport class 100, RD value 192.0.2.12:100 and a target 0:200. Similarly, for Gold tunnels, PE12 is provisioned with
transport-target:0:100 for Gold tunnels. And transport class 200, RD transport class 100, RD value 192.0.2.12:100, and a
value 192.0.2.12:200 with transport-target:0:200 for Bronze tunnels. transport-target:0:100. For Bronze tunnels, PE12 is provisioned with tr
Note that in this example, the BGP CT routes carry only the transport ansport class 200, RD
class route target, and no IP address format route target.</t> value 192.0.2.12:200, and transport-target:0:200.
Note that, in this example, the BGP CT routes carry only the transport
class route target and no IP address format route target.</t>
<t>The RD value originated by an egress node is not modified by any <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, BGP speakers when the route is readvertised to the ingress node. Thus,
the RD can be used to identify the originator (unique RD provisioned) the RD can be used to identify the originator (unique RD provisioned)
or set of originators (RD reused on multiple nodes).</t> or set of originators (RD reused on multiple nodes).</t>
<t>Similarly, these transport classes are also configured on ASBRs, <t>Similarly, these transport classes are also configured on ASBRs,
ABRs and PEs with same Transport Route Target and unique RDs.</t> ABRs, and PEs with same Transport Route Target and unique RDs.</t>
<t>ASBR13 and ASBR14 negotiate BGP CT family with transport ASBRs <t>ASBR13 and ASBR14 negotiate BGP CT family with transport ASBRs
ASBR21, ASBR22 in neighboring AS. ASBR21, ASBR22 negotiate BGP CT ASBR21 and ASBR22 in neighboring ASes. ASBR21 and ASBR22 negotiate BGP C
family with RR27 in region 2, which reflects BGP CT routes to ABR23, T
ABR24. ABR23, ABR24 negotiate BGP CT family with Ingress node PE25 in family with RR27 in region 2, which reflects BGP CT routes to ABR23 and
region 1. BGP LU family is also negotiated on these sessions alongside ABR24. ABR23 and ABR24 negotiate BGP CT family with Ingress node PE25 in
BGP CT family. BGP LU carries "best effort" transport class routes, region 1. The BGP LU family is also negotiated on these sessions alongsi
BGP CT carries Gold, Bronze transport class routes.</t> de the
BGP CT family. The BGP LU family carries "best-effort" transport class r
outes;
BGP CT carries Gold and Bronze transport class routes.</t>
<t>PE11 is provisioned to originate a BGP CT route for endpoint PE11, <t>PE11 is provisioned to originate a BGP CT route for endpoint PE11,
with Gold SLA. This route is sent with NLRI RD prefix 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 hop 192.0.2.11 and a route 192.0.2.11:100:192.0.2.11, Label B-L0, next hop 192.0.2.11, and a Route
target extended community transport-target:0:100. Label B-L0 can Target extended community transport-target:0:100. Label B-L0 can
either be Implicit Null (Label 3) or an UHP label.</t> either be Implicit Null (Label 3) or a UHP label.</t>
<t>This route is received by ASBR13 and it resolves over the tunnel <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 ASBR13_to_PE11_gold. The route is then readvertised by ASBR13 in BGP
CT family to ASBRs ASBR21, ASBR22 according to export policy. This 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, route is sent with same NLRI RD prefix 192.0.2.11:100:192.0.2.11,
Label B-L1, next hop self, and transport-target:0:100. MPLS swap route Label B-L1, the next hop set to itself, and transport-target:0:100. An M PLS swap route
is installed at ASBR13 for B-L1 with a next hop pointing to is installed at ASBR13 for B-L1 with a next hop pointing to
ASBR13_to_PE11_gold tunnel.</t> ASBR13_to_PE11_gold tunnel.</t>
<t>Similarly, ASBR14 also receives a BGP CT route for <t>Similarly, ASBR14 also receives a BGP CT route for
192.0.2.11:100:192.0.2.11 from PE11 and it resolves over the tunnel 192.0.2.11:100:192.0.2.11 from PE11, and it resolves over the tunnel
ASBR14_to_PE11_gold. The route is then readvertised by ASBR14 in BGP ASBR14_to_PE11_gold. The route is then readvertised by ASBR14 in the BGP
CT family to ASBRs ASBR21, ASBR22 according to export policy. This CT family to ASBRs 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, route is sent with the same NLRI RD prefix 192.0.2.11:100:192.0.2.11,
Label B-L2, next hop self, and transport-target:0:100. MPLS swap route Label B-L2, next hop 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 is installed at ASBR14 for B-L1 with a next hop pointing to
ASBR14_to_PE11_gold tunnel.</t> ASBR14_to_PE11_gold tunnel.</t>
<t>In the Bronze plane, the BGP CT route with a Bronze SLA to endpoint P
<t>In the Bronze plane, BGP CT route with Bronze SLA to endpoint PE11 E11
is originated by PE11 with a NLRI containing RD prefix is originated by PE11 with an NLRI containing RD prefix
192.0.2.11:200:192.0.2.11, and appropriate label. The use of distinct 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 RDs for Gold and Bronze allows both Gold and Bronze advertisements to
traverse path selection pinchpoints without any path hiding at RRs or traverse path-selection pinch points without any path hiding at RRs or
ASBRs. And route target extended community transport-target:0:200 lets ASBRs. And Route Target extended community transport-target:0:200 lets
the route resolve over Bronze tunnels in the network, similar to the the route resolve over Bronze tunnels in the network, similar to the
process being described for Gold SLA path.</t> process being described for the Gold SLA path.</t>
<t>Moving back to the Gold plane, ASBR21 receives the Gold SLA BGP CT <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 the single routes for NLRI RD prefix 192.0.2.11:100:192.0.2.11 over the single-hop
hop EBGP sessions from ASBR13, ASBR14, and can compute ECMP/FRR EBGP sessions from ASBR13 and ASBR14 and can compute ECMP/FRR
towards them. ASBR21 readvertises BGP CT route for towards them. ASBR21 readvertises the BGP CT route for
192.0.2.11:100:192.0.2.11 with next hop self (loopback address 192.0.2.11:100:192.0.2.11 with a next hop set to itself (loopback addres
192.0.2.21) to RR27, advertising a new label B-L3. An MPLS swap route s
is installed for label B-L3 at ASBR21 to swap to received label B-L1, 192.0.2.21) to RR27, advertising a new label: B-L3. An MPLS swap route
B-L2 and forward to ASBR13, ASBR14 respectively, this is an ECMP is installed for label B-L3 at ASBR21 to swap to received labels B-L1 an
route. RR27 readvertises this BGP CT route to ABR23, ABR24 with label d
B-L2 and forward to ASBR13 and ASBR14 respectively; this is an ECMP
route. RR27 readvertises this BGP CT route to ABR23 and ABR24 with the l
abel
and next hop unchanged.</t> and next hop unchanged.</t>
<t>Similarly, ASBR22 receives BGP CT route 192.0.2.11:100:192.0.2.11 <t>Similarly, ASBR22 receives BGP CT route 192.0.2.11:100:192.0.2.11
over the single hop EBGP sessions from ASBR13, ASBR14, and over the single-hop EBGP sessions from ASBR13 and ASBR14, and it
readvertises with next hop self (loopback address 192.0.2.22) to RR27, readvertises with the next hop set to itself (loopback address 192.0.2.2
advertising a new label B-L4. An MPLS swap route is installed for 2) to RR27,
label B-L4 at ASBR22 to swap to received label B-L1, B-L2 and forward advertising a new label: B-L4. An MPLS swap route is installed for
to ASBR13, ASBR14 respectively. RR27 readvertises this BGP CT route label B-L4 at ASBR22 to swap to received labels B-L1 and B-L2 and forwar
also to ABR23, ABR24 with label and next hop unchanged.</t> d
to ASBR13 and ASBR14, respectively. RR27 also readvertises this BGP CT r
<t>BGP ADD-PATH is enabled for BGP CT family on the sessions between oute
RR27 and ASBRs, ABRs such that routes for 192.0.2.11:100:192.0.2.11 to ABR23 and ABR24 with the label and next hop unchanged.</t>
with the next hops ASBR21 and ASBR22 are reflected to ABR23, ABR24 <t>BGP ADD-PATH is enabled for the BGP CT family on the sessions between
RR27 and 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 to ABR23 and ABR24
without any path hiding. Thus, ABR23 is given visibility of both without any path hiding. Thus, ABR23 is given visibility of both
available next hops for Gold SLA.</t> available next hops for the Gold SLA.</t>
<t>ABR23 receives the route with next hop 192.0.2.21 and label B-L3 from
<t>ABR23 receives the route with next hop 192.0.2.21, label B-L3 from
RR27. The route target "transport-target:0:100" on this route acts as RR27. The route target "transport-target:0:100" on this route acts as
Mapping Community, and instructs ABR23 to strictly resolve the next the Mapping Community and instructs ABR23 to strictly resolve the next
hop using transport class 100 routes only. ABR23 is unable to find a 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 for 192.0.2.21 with transport class 100. Thus, it considers this
route unusable and does not propagate it further. This prunes ASBR21 route unusable and does not propagate it further. This prunes ASBR21
from Gold SLA tunneled path.</t> from the Gold SLA tunneled path.</t>
<t>ABR23 also receives the route with next hop 192.0.2.22 and label B-L4
<t>ABR23 also receives the route with next hop 192.0.2.22, label B-L4
from RR27. The route target "transport-target:0:100" on this route from RR27. The route target "transport-target:0:100" on this route
acts as Mapping Community, and instructs ABR23 to strictly resolve the acts as the Mapping Community and instructs ABR23 to strictly resolve th e
next hop using transport class 100 routes only. ABR23 successfully next hop using transport class 100 routes only. ABR23 successfully
resolves the next hop to point to ABR23_to_ASBR22_gold tunnel. ABR23 resolves the next hop to point to ABR23_to_ASBR22_gold tunnel. ABR23
readvertises this BGP CT route with next hop self (loopback address readvertises this BGP CT route with the next hop set to itself (loopback
192.0.2.23) and a new label B-L5 to PE25. Swap route for B-L5 is address
installed by ABR23 to swap to label B-L4, and forward into 192.0.2.23) and a new label B-L5 to PE25. A swap route for B-L5 is
installed by ABR23 to swap to label B-L4 and forward into
ABR23_to_ASBR22_gold tunnel.</t> ABR23_to_ASBR22_gold tunnel.</t>
<t>PE25 receives the BGP CT route for prefix 192.0.2.11:100:192.0.2.11 <t>PE25 receives the BGP CT route for prefix 192.0.2.11:100:192.0.2.11
with label B-L5, next hop 192.0.2.23 and transport-target:0:100 from with label B-L5, next hop 192.0.2.23, and transport-target:0:100 from
RR26. And it similarly resolves the next hop 192.0.2.23 over transport RR26. It similarly resolves the next hop 192.0.2.23 over transport
class 100, pushing labels associated with PE25_to_ABR23_gold class 100, pushing labels associated with PE25_to_ABR23_gold
tunnel.</t> tunnel.</t>
<t>In this manner, the Gold transport LSP "ASBR13_to_PE11_gold" in the <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 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 ingress domain, to create an end-to-end Gold SLA path. MPLS swap
routes are installed at ASBR13, ASBR22 and ABR23, when propagating the routes are installed at ASBR13, ASBR22, and ABR23, when propagating the
PE11 BGP CT Gold transport class route 192.0.2.11:100:192.0.2.11 with PE11 BGP CT Gold transport class route 192.0.2.11:100:192.0.2.11 with
next hop self towards PE25.</t> next hop set to itself towards PE25.</t>
<t>Thus formed, the BGP CT LSP originates in PE25 and terminates in
<t>The BGP CT LSP thus formed, originates in PE25, and terminates in
ASBR13 (assuming PE11 advertised Implicit Null), traversing over the ASBR13 (assuming PE11 advertised Implicit Null), traversing over the
Gold underlay LSPs in each domain. ASBR13 uses UHP to stitch the BGP 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, CT LSP into the "ASBR13_to_PE11_gold" LSP to traverse the last domain,
thus satisfying Gold SLA end-to-end.</t> thus satisfying Gold SLA end-to-end.</t>
<t>When PE25 receives service routes from RR26 with next hop <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 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 label B-L5, and BGP CT route 192.0.2.11:100:192.0.2.11. Thus, pushing label B-L5 and
pushing as top label the labels associated with PE25_to_ABR23_gold pushing as the top label the labels associated with PE25_to_ABR23_gold
tunnel.</t> tunnel.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Data Plane View"> <name>Data Plane View</name>
<section title="Steady State"> <section numbered="true" toc="default">
<name>Steady State</name>
<t>This section describes how the data plane looks in steady <t>This section describes how the data plane looks in steady
state.</t> state.</t>
<t>CE41 transmits an IP packet with the destination 203.0.113.31. On
<t>CE41 transmits an IP packet with destination as 203.0.113.31. On
receiving this packet, PE25 performs a lookup in the IP FIB receiving this packet, PE25 performs a lookup in the IP FIB
associated with the CE41 interface. This lookup yields the service 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 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 labels for PE25_to_ABR23_gold tunnel. Thus, PE25 encapsulates the IP
packet in an MPLS packet with label V-L1 (innermost), B-L5, and top packet in an MPLS packet with labels V-L1 (innermost), B-L5, and top
label as PE25_to_ABR23_gold tunnel. This MPLS packet is thus label PE25_to_ABR23_gold tunnel. This MPLS packet is thus
transmitted to ABR23 using Gold SLA.</t> transmitted to ABR23 using the Gold SLA.</t>
<t>ABR23 decapsulates the packet received on PE25_to_ABR23_gold <t>ABR23 decapsulates the packet received on PE25_to_ABR23_gold
tunnel as required, and finds the MPLS packet with label B-L5. It tunnel as 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 performs a lookup for label B-L5 in the global MPLS FIB. This yields
the route that swaps label B-L5 with label B-L4, and pushes the top the route that swaps label B-L5 with label B-L4 and pushes the top
label provided by ABR23_to_ASBR22_gold tunnel. Thus, ABR23 transmits label provided by ABR23_to_ASBR22_gold tunnel. Thus, ABR23 transmits
the MPLS packet with label B-L4 to ASBR22, on a tunnel that the MPLS packet with label B-L4 to ASBR22 on a tunnel that
satisfies Gold SLA.</t> satisfies the Gold SLA.</t>
<t>ASBR22 similarly performs a lookup for label B-L4 in the global MPL
<t>ASBR22 similarly performs a lookup for label B-L4 in global MPLS S
FIB, finds the route that swaps label B-L4 with label B-L2, and FIB, finds the route that swaps label B-L4 with label B-L2, and
forwards to ASBR13 over the directly connected MPLS-enabled forwards it to ASBR13 over the directly connected MPLS-enabled
interface. This interface is a common resource not dedicated to any interface. This interface is a common resource not dedicated to any
specific transport class, in this example.</t> specific transport class, in this example.</t>
<t>ASBR13 receives the MPLS packet with label B-L2 and performs a
<t>ASBR13 receives the MPLS packet with label B-L2, and performs a lookup in the MPLS FIB, finds the route that pops label B-L2, and push
lookup in MPLS FIB, finds the route that pops label B-L2, and pushes es
labels associated with ASBR13_to_PE11_gold tunnel. This transmits labels associated with ASBR13_to_PE11_gold tunnel. This transmits
the MPLS packet with VPN label V-L1 to PE11 using a tunnel that the MPLS packet with VPN label V-L1 to PE11 using a tunnel that
preserves Gold SLA in AS 1.</t> preserves the Gold SLA in AS 1.</t>
<t>PE11 receives the MPLS packet with V-L1 and performs VPN
<t>PE11 receives the MPLS packet with V-L1, and performs VPN forwarding, thus transmitting the original IP payload from CE41 to
forwarding. Thus transmitting the original IP payload from CE41 to CE31. The payload has traversed path satisfying the Gold SLA
CE31. The payload has traversed path satisfying Gold SLA
end-to-end.</t> end-to-end.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Local Repair of Primary Path"> <name>Local Repair of Primary Path</name>
<t>This section describes how the data plane at ASBR22 reacts when <t>This section describes how the data plane at ASBR22 reacts when
the link between ASBR22 and ASBR13 experiences a failure, and an the link between ASBR22 and ASBR13 experiences a failure and an
alternate path exists.</t> alternate path exists.</t>
<t>Assuming the ASBR22_to_ASBR13 link goes down, traffic with
<t>Assuming ASBR22_to_ASBR13 link goes down, such that traffic with a Gold SLA going to PE11 will need repair. ASBR22 has an alternate BGP
Gold SLA going to PE11 needs repair. ASBR22 has an alternate BGP CT CT
route for 192.0.2.11:100:192.0.2.11 from ASBR14. This has been route for 192.0.2.11:100:192.0.2.11 from ASBR14. This has been
preprogrammed in forwarding by ASBR22 as FRR backup next hop for 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 label B-L4. This allows the Gold SLA traffic to be locally repaired
at ASBR22 without the failure event propagated in the BGP CT at ASBR22 without the failure event propagated in the BGP CT
network. In this case, ingress node PE25 will not know there was a network. In this case, ingress node PE25 will not know there was a
failure, and traffic restoration will be independent of prefix scale failure, and traffic restoration will be independent of prefix scale
(PIC).</t> (PIC).</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Absorbing Failure of Primary Path: Fallback to Best Effo <name>Absorbing Failure of the Primary Path: Fallback to Best-Effort T
rt Tunnels "> unnels</name>
<t>This section describes how the data plane reacts when a Gold path <t>This section describes how the data plane reacts when a Gold path
experiences a failure, but no alternate path exists.</t> experiences a failure but no alternate path exists.</t>
<t>Assume tunnel ABR23_to_ASBR22_gold goes down, such that now no <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 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.11 is unusable at ABR23. route for RD prefix 192.0.2.11:100:192.0.2.11 unusable at ABR23.
This makes ABR23 send a BGP withdrawal for 192.0.2.11:100:192.0.2.11 This makes ABR23 send a BGP withdrawal for 192.0.2.11:100:192.0.2.11
to PE25.</t> to PE25.</t>
<t>The withdrawal for 192.0.2.11:100:192.0.2.11 allows PE25 to react <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 to the loss of the Gold path to 192.0.2.11. Assuming PE25 is
provisioned to use best effort transport class as the backup path, provisioned to use a best-effort transport class as the backup path,
this withdrawal of BGP CT route allows PE25 to adjust the next hop 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 of the VPN Service-route to push the labels provided by the BGP LU
route. That repairs the traffic to go via the best effort path. PE25 route. That repairs the traffic to go via the best-effort path. PE25
can also be provisioned to use Bronze transport class as the backup can also be provisioned to use the Bronze transport class as the backu
p
path. The repair will happen in similar manner in that case path. The repair will happen in similar manner in that case
as-well.</t> as well.</t>
<t>Traffic repair to absorb the failure happens at ingress node <t>Traffic repair to absorb the failure happens at ingress node
PE25, in a service prefix scale independent manner. This is called PE25 in a service prefix scale independent manner (PIC). The repair ti
PIC. The repair time will be proportional to time taken for withdrawin me will be proportional to time taken for withdrawing
g
the BGP CT route.</t> the BGP CT route.</t>
<t>These examples demonstrate the various levels of fail-safe
<t>These examples demonstrate the various levels of failsafe
mechanisms available to protect traffic in a BGP CT network.</t> mechanisms available to protect traffic in a BGP CT network.</t>
</section> </section>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Scaling Considerations"> <name>Scaling Considerations</name>
<section anchor="secure-propagate" <section anchor="secure-propagate" numbered="true" toc="default">
title="Avoiding Unintended Spread of BGP CT Routes Across Domains <name>Avoiding Unintended Spread of BGP CT Routes Across Domains</name>
"> <t><xref target="RFC8212" format="default"/> suggests BGP speakers r
<list> equire explicit
<t><xref target="RFC8212"/> suggests BGP speakers require explicit
configuration of both BGP Import and Export Policies in order to configuration of both BGP Import and Export Policies in order to
receive or send routes over EBGP sessions.</t> receive or send routes over EBGP sessions.</t>
<t>It is recommended to follow this for BGP CT routes. It will
<t>It is recommended to follow this for BGP CT routes. It will
prohibit unintended advertisement of transport routes throughout the prohibit unintended advertisement of transport routes throughout the
BGP CT transport domain, which may span across multiple AS domains. BGP CT transport domain, which may span across multiple AS domains.
This will conserve usage of MPLS label and next hop resources in the This will conserve usage resources for MPLS labels and next hops in th e
network. An ASBR of a domain can be provisioned to allow routes with 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 only the Transport Route Targets that are required by SNs in the
domain.</t> domain.</t>
</list>
</section> </section>
<section numbered="true" toc="default">
<name>Constrained Distribution of PNHs to SNs (On-Demand Next Hop)</name
>
<t>This section describes how the number of Protocol Next Hops (PNHs
)
advertised to an SN or BN can be constrained using BGP Classful
Transport and RTC (see <xref target="RFC4684" format="default"></xref>
.</t>
<section title="Constrained Distribution of PNHs to SNs (On-Demand Next Ho <!--[rfced] We note that this document uses TC ID to refer to a
p)"> Transport Class Identifier in the Terminology section. Please
<list> review the use of TC (without ID) in the text below where it
<t>This section describes how the number of Protocol Next hops seems the expansion is "Transport Class identifier" and let us
advertised to a SN or BN can be constrained using BGP Classful know if/how to update.
Transport and <xref target="RFC4684">Route Target Constrain
(RTC)</xref>.</t>
<t>An egress SN MAY advertise a BGP CT route for RD:eSN with two Original:
Route Targets: transport-target:0:&lt;TC&gt; and a RT carrying ...transport-target:0:<TC> and a RT carrying <eSN>:<TC>, where TC is
&lt;eSN&gt;:&lt;TC&gt;, where TC is the Transport Class identifier, the Transport Class identifier, and eSN is the IP address used by SN
and eSN is the IP address used by SN as BGP next hop in its service as BGP next hop in its service route advertisements.
route advertisements.</t>
<t>Note that such use of the IP address specific route target -->
<t>An egress SN <bcp14>MAY</bcp14> advertise a BGP CT route for RD:e
SN with two
Route Targets: transport-target:0:&lt;TC&gt; and an RT carrying
&lt;eSN&gt;:&lt;TC&gt;, where TC is the Transport Class identifier
and eSN is the IP address used by the SN as BGP next hop in its servic
e
route advertisements.</t>
<t>Note that such use of the IP-address-specific route target
&lt;eSN&gt;:&lt;TC&gt; is optional in a BGP CT network. It is &lt;eSN&gt;:&lt;TC&gt; is optional in a BGP CT network. It is
required only if there is a requirement to prune the propagation of 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 the transport route for an egress node eSN to only the set of
ingress nodes that need it. When only RT of ingress nodes that need it. When only the RT of
transport-target:0:&lt;TC&gt; is used, the pruning happens in transport-target:0:&lt;TC&gt; is used, the pruning happens in
granularity of Transport Class ID (Color), and not BGP next hop; a granularity of Transport Class ID (Color), not BGP next hop; a
BGP CT route will only be advertised into a domain with at least one BGP CT route will only be advertised into a domain with at least one
PE that imports its transport class.</t> PE that imports its transport class.</t>
<t>The transport-target:0:&lt;TC&gt; is the new type of route target
<t>The transport-target:0:&lt;TC&gt; is the new type of route target (Transport Class RT) defined in this document. It is carried in the BG
(Transport Class RT) defined in this document. It is carried in BGP P
extended community attribute (BGP attribute code 16).</t> extended community attribute (BGP attribute code 16).</t>
<t>The RT carrying &lt;eSN&gt;:&lt;TC&gt; <bcp14>MAY</bcp14> be an I
<t>The RT carrying &lt;eSN&gt;:&lt;TC&gt; MAY be an IP-address P-address-specific regular RT (BGP attribute code 16), or IPv6-address
specific regular RT (BGP attribute code 16), or IPv6-address
specific RT (BGP attribute code 25). It should be noted that the specific RT (BGP attribute code 25). It should be noted that the
Local Administrator field of these RTs can only carry two octets of Local Administrator field of these RTs can only carry two octets of
information, and thus the &lt;TC&gt; field in this approach is information; thus, the &lt;TC&gt; field in this approach is
limited to a 2 octets value. Future protocol extensions work is limited to a 2-octet value. Future protocol extension work is
needed to define a BGP CCA that can accomodate an IPv4/IPv6 address needed to define a BGP CCA that can accommodate an IPv4/IPv6 address
along with a 4 octet Local Administrator field.</t> along with a 4-octet Local Administrator field.</t>
<t>An ingress SN <bcp14>MAY</bcp14> import BGP CT routes with a Rout
<t>An ingress SN MAY import BGP CT routes with Route Target carrying e Target carrying
&lt;eSN&gt;:&lt;TC&gt;. The ingress SN may learn the eSN values &lt;eSN&gt;:&lt;TC&gt;. The ingress SN may learn the eSN values
either by configuration, or it may discover them from the BGP next by configuration or it may discover them from the BGP next
hop field in the BGP VPN service routes received from eSN. A BGP hop field in the BGP VPN service routes received from the eSN. A BGP
ingress SN receiving a BGP service route with next hop of eSN ingress SN receiving a BGP service route with a next hop of eSN
generates a RTC route for Route Target prefix &lt;Origin generates an RTC route for Route Target prefix &lt;Origin
ASN&gt;:&lt;eSN&gt;/[80|176] in order to learn BGP CT transport ASN&gt;:&lt;eSN&gt;/[80|176] in order to learn BGP CT transport
routes to reach eSN. This allows constrained distribution of the routes to reach eSN. This allows constrained distribution of the
transport routes to the PNHs actually required by iSN.</t> transport routes to the PNHs actually required by iSN.</t>
<t>When RTC is in use, as described here, BGP CT routes will be
<t>When RTC is in use as described here, BGP CT routes will be
constrained to follow the same path of propagation as the RTC constrained to follow the same path of propagation as the RTC
routes. Therefore, a BN would learn the RTC routes advertised by routes. Therefore, a BN would learn the RTC routes advertised by
ingress SNs and propagate further. This will allow constraining ingress SNs and propagate further. This will allow constraining
distribution of BGP CT routes for a PNH to only the necessary BNs in distribution of BGP CT routes for a PNH to only the necessary BNs in
the network, closer to the egress SN.</t> the network, closer to the egress SN.</t>
<t>When the path of route propagation of BGP CT routes is the same
<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 as the RTC routes, a BN would learn the RTC routes advertised by
ingress SNs and propagate further. This will allow constraining ingress SNs and propagate further. This will allow constraining
distribution of BGP CT routes for a PNH to only the necessary BNs in distribution of BGP CT routes for a PNH to only the necessary BNs in
the network, closer to the egress SN.</t> the network, closer to the egress SN.</t>
<t>This mechanism provides "On-Demand Next Hop" of BGP CT routes,
<t>This mechanism provides "On Demand Next hop" of BGP CT routes, which helps with the scaling of MPLS forwarding state at the SN and
which help with the scaling of MPLS forwarding state at SN and
BN.</t> BN.</t>
<t>However, the amount of state carried in RTC family may become
<t>However, the amount of state carried in RTC family may become
proportional to the number of PNHs in the network. To strike a proportional to the number of PNHs in the network. To strike a
balance, the RTC route advertisements for &lt;Origin balance, the RTC route advertisements for &lt;Origin
ASN&gt;:&lt;eSN&gt;/[80|176] MAY be confined to the BNs in the home ASN&gt;:&lt;eSN&gt;/[80|176] <bcp14>MAY</bcp14> be confined to the BNs in the home
region of an ingress SN, or the BNs of a super core.</t> 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
<t>Such a BN in the core of the network imports BGP CT routes with
Transport-Target:0:&lt;TC&gt; and generates an RTC route for Transport-Target:0:&lt;TC&gt; and generates an RTC route for
&lt;Origin ASN&gt;:0:&lt;TC&gt;/96, while not propagating the more &lt;Origin ASN&gt;:0:&lt;TC&gt;/96, while not propagating the more
specific RTC requests for specific PNHs. This lets the BN learn specific RTC requests for specific PNHs. This lets the BN learn
transport routes to all eSN nodes but confine their propagation to transport routes to all eSN nodes but confines their propagation to
ingress SNs.</t> ingress SNs.</t>
</list>
</section>
<section title="Limiting The Visibility Scope of PE Loopback as PNHs"> </section>
<list> <section numbered="true" toc="default">
<t>It may be even more desirable to limit the number of PNHs that <name>Limiting the Visibility Scope of PE Loopback as 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 are globally visible in the network. This is possible using
mechanism described in <xref target="Appendix D"/>, such that the mechanism described in <xref target="Appendix_D" format="default"/
advertisement of PE loopback addresses as next-hop in BGP service >, such that
advertisement of PE loopback addresses as next hops in BGP service
routes is confined to the region they belong to. An anycast routes is confined to the region they belong to. An anycast
IP-address called "Context Protocol Nexthop Address" (CPNH) IP address called a "Context Protocol Nexthop" (or "CPNH") address
abstracts the SNs in a region from other regions in the network.</t> abstracts the SNs in a region from other regions in the network.</t>
<t>Such that advertisement of PE loopback addresses as next-hop in <!--[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 the network.
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 BGP service routes is confined to the region they belong to. An
anycast IP-address called "Context Protocol Nexthop Address" (CPNH) anycast IP-address called "Context Protocol Nexthop Address" (CPNH)
abstracts the SNs in a region from other regions in the network.</t> abstracts the SNs in a region from other regions in the network.</t>
<t>This provides much greater advantage in terms of scaling,
<t>This provides much greater advantage in terms of scaling,
convergence and security. Changes to implement this feature are convergence and security. Changes to implement this feature are
required only on the local region's BNs and RRs, so legacy PE required only on the local region's BNs and RRs, so legacy PE
devices can also benefit from this approach.</t> devices can also benefit from this approach.</t>
</list>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Operations and Manageability Considerations"> <name>Operations and Manageability Considerations</name>
<section anchor="mpls-oam" title="MPLS OAM"> <section anchor="mpls-oam" numbered="true" toc="default">
<t>MPLS OAM procedures specified in <xref target="RFC8029"/> also <name>MPLS OAM</name>
<t>MPLS Operations, Administration, and Maintenance (OAM) procedures spe
cified in <xref target="RFC8029" format="default"/> also
apply to BGP Classful Transport.</t> apply to BGP Classful Transport.</t>
<t>The Target FEC Stack sub-TLV for IPv4 Classful Transport has a
<t>The 'Target FEC Stack' sub-TLV for IPv4 Classful Transport has a Sub-Type of 31744 and a length of 13. The Value field consists of the
Sub-Type of 31744, and a length of 13. The Value field consists of the
RD advertised with the Classful Transport prefix, the IPv4 prefix RD advertised with the Classful Transport prefix, the IPv4 prefix
(with trailing 0 bits to make 32 bits in all) and a prefix length (with trailing 0 bits to make 32 bits in all), and a prefix length
encoded as shown in <xref target="FECv4"/>.</t> encoded as shown in <xref target="FECv4" format="default"/>.</t>
<figure anchor="FECv4">
<figure anchor="FECv4" suppress-title="false" <name>Classful Transport IPv4 FEC</name>
title="Classful Transport IPv4 FEC"> <artwork align="left" name="" type="" alt=""><![CDATA[
<artwork align="left" xml:space="preserve"> 0 1 2 3
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
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 |
| Route Distinguisher | | (8 octets) |
| (8 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 prefix |
| IPv4 prefix | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix Length | Must Be Zero |
| Prefix Length | Must Be Zero | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork>
</artwork>
</figure> </figure>
<t>The Target FEC Stack sub-TLV for IPv6 Classful Transport has a
<t>The 'Target FEC Stack' sub-TLV for IPv6 Classful Transport has a Sub-Type of 31745 and a length of 25. The Value field consists of the
Sub-Type of 31745, and a length of 25. The Value field consists of the
RD advertised with the Classful Transport prefix, the IPv6 prefix RD advertised with the Classful Transport prefix, the IPv6 prefix
(with trailing 0 bits to make 128 bits in all) and a prefix length (with trailing 0 bits to make 128 bits in all) and a prefix length
encoded as shown in <xref target="FECv6"/>.</t> encoded as shown in <xref target="FECv6" format="default"/>.</t>
<figure anchor="FECv6">
<figure anchor="FECv6" suppress-title="false" <name>Classful Transport IPv6 FEC</name>
title="Classful Transport IPv6 FEC"> <artwork align="left" name="" type="" alt=""><![CDATA[
<artwork align="left" xml:space="preserve"> 0 1 2 3
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
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 |
| Route Distinguisher | | (8 octets) |
| (8 octets) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv6 prefix |
| IPv6 prefix | | |
| | | |
| | | |
| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix Length | Must Be Zero |
| Prefix Length | Must Be Zero | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ ]]></artwork>
</artwork>
</figure> </figure>
<t>These prefix layouts are inherited from Sections <xref
<t>These prefix layouts are inherited from Sections 3.2.5, 3.2.6 in target="RFC8029" sectionFormat="bare" section="3.2.5"/> and <xref
<xref target="RFC8029"/></t> target="RFC8029" sectionFormat="bare" section="3.2.6"/> of <xref
target="RFC8029" format="default"/>.</t>
</section> </section>
<section anchor="rd-lbl-usage" numbered="true" toc="default">
<section anchor="rd-lbl-usage" <name>Usage of RD and Label-Allocation Modes</name>
title="Usage of Route Distinguisher and Label Allocation Modes">
<t>RDs aid in troubleshooting provider networks that deploy BGP CT, by <t>RDs aid in troubleshooting provider networks that deploy BGP CT, by
uniquely identifying the originator of a route across an uniquely identifying the originator of a route across an
administrative domain that may either span multiple domains within a administrative domain that may either span multiple domains within a
provider network or span closely coordinated provider networks.</t> provider network or span closely coordinated provider networks.</t>
<t>The use of RDs also provides an option for signaling forwarding <t>The use of RDs also provides an option for signaling forwarding
diversity within the same Transport Class. A SN can advertise an EP diversity within the same Transport Class. An SN can advertise an EP
with the same Transport Class in multiple BGP CT routes with unique with the same Transport Class in multiple BGP CT routes with unique
RDs.</t> RDs.</t>
<t>For example, unique "RDx:EP1" prefixes can be advertised by an SN <t>For example, unique "RDx:EP1" prefixes can be advertised by an SN
for an EP1 to different upstream BNs with unique forwarding specific for an EP1 to different upstream BNs with unique forwarding-specific
encapsulation (e.g., Label), in order to collect traffic statistics at encapsulation (e.g., a Label) in order to collect traffic statistics at
the SN for each BN. In absence of RD, duplicated Transport Class/Color the SN for each BN. In the absence of an RD, duplicated Transport Class
/ Color
values will be needed in the transport network to achieve such use values will be needed in the transport network to achieve such use
cases.</t> cases.</t>
<t>The allocation of RDs is done at the point of origin of the BGP CT <t>The allocation of RDs is done at the point of origin of the BGP CT
route. This can either be an Egress SN or a BN. The default RD route. This can be either an Egress SN or a BN. The default RD
allocation mode is to use a unique RD per originating node for an EP. 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 This mode allows for the ingress to uniquely identify each originated
path. Alternatively, the same RD may be provisioned for multiple path. Alternatively, the same RD may be provisioned for multiple
originators of the same EP. This mode can be used when the ingress 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> 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 <t>A label is allocated for a BGP CT route when it is advertised with
next hop self by a SN or a BN. An implementation may use different the next hop set to itself by an SN or a BN. An implementation may use d
label allocation modes with BGP CT. The recommended label allocation ifferent
mode is per-prefix as it provides better traffic convergence label-allocation modes with BGP CT. Per-prefix is the recommended label-
properties than per-next hop label allocation mode. Furthermore, BGP allocation
CT offers two flavors for per-prefix label allocation. The first mode as it provides better traffic convergence
flavor assigns a label for each unique "RD, EP". The second flavor properties than a per-NH label-allocation mode. Furthermore, BGP
CT offers two flavors for per-prefix label allocation:</t>
<ul spacing="normal">
<li>The first
flavor assigns a label for each unique "RD, EP".</li>
<li>The second flavor
assigns a label for each unique "Transport Class, EP" while ignoring assigns a label for each unique "Transport Class, EP" while ignoring
the RD.</t> the RD.</li>
</ul>
<t>In a BGP CT network, the number of routes at an Ingress PE is a <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 that do function of unique EPs multiplied by BNs in the ingress domain that have
next hop self. BGP CT provides flexible RD and Label allocation modes the
next hop set to themselves. BGP CT provides flexible RD and label-alloca
tion modes
to address operational requirements in a multi-domain network. The to address operational requirements in a multi-domain network. The
impacts on the control plane and forwarding behavior for these modes impacts on the control plane and forwarding behavior for these modes
are detailed with an example in <xref target="CTRouteVis">Managing are detailed with an example in <xref target="CTRouteVis" format="defaul
Transport Route Visibility</xref></t> t"></xref>.</t>
</section> </section>
<section anchor="CTRouteVis" numbered="true" toc="default">
<section anchor="CTRouteVis" title="Managing Transport Route Visibility"> <name>Managing Transport-Route Visibility</name>
<t>This section details the usage of BGP CT RD and label allocation <t>This section details the usage of BGP CT RD and label-allocation
modes to calibrate the level of path visibility and the amount of modes to calibrate the level of path visibility and the amount of
route and label scale in a multi-domain network.</t> route and label scale in a multi-domain network.</t>
<t>Consider a multi-domain BGP CT network as illustrated in the <t>Consider a multi-domain BGP CT network as illustrated in the
following <xref target="MultiDomainNetwork"/>:</t> following <xref target="MultiDomainNetwork" format="default"/>:</t>
<figure anchor="MultiDomainNetwork">
<figure title="Managing Transport Route Visibility in Multi Domain Network" anch <name>Managing Transport-Route Visibility in Multi-Domain Networks</na
or="MultiDomainNetwork"><artset><artwork type="svg"><svg xmlns="http://www.w3.o me>
rg/2000/svg" version="1.1" height="400" width="432" viewBox="0 0 432 400" class= <artset>
"diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-l <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://w
inecap="round"> ww.w3.org/2000/svg" version="1.1" height="400" width="432" viewBox="0 0 432 400"
<path d="M 80,112 L 80,176" fill="none" stroke="black"/> class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" s
<path d="M 80,208 L 80,272" fill="none" stroke="black"/> troke-linecap="round">
<path d="M 136,80 L 136,96" fill="none" stroke="black"/> <path d="M 80,112 L 80,176" fill="none" stroke="black"/>
<path d="M 136,128 L 136,144" fill="none" stroke="black"/> <path d="M 80,208 L 80,272" fill="none" stroke="black"/>
<path d="M 136,240 L 136,256" fill="none" stroke="black"/> <path d="M 136,80 L 136,96" fill="none" stroke="black"/>
<path d="M 136,288 L 136,304" fill="none" stroke="black"/> <path d="M 136,128 L 136,144" fill="none" stroke="black"/>
<path d="M 288,128 L 288,176" fill="none" stroke="black"/> <path d="M 136,240 L 136,256" fill="none" stroke="black"/>
<path d="M 288,288 L 288,336" fill="none" stroke="black"/> <path d="M 136,288 L 136,304" fill="none" stroke="black"/>
<path d="M 136,80 L 216,80" fill="none" stroke="black"/> <path d="M 288,128 L 288,176" fill="none" stroke="black"/>
<path d="M 312,80 L 328,80" fill="none" stroke="black"/> <path d="M 288,288 L 288,336" fill="none" stroke="black"/>
<path d="M 80,112 L 112,112" fill="none" stroke="black"/> <path d="M 136,80 L 216,80" fill="none" stroke="black"/>
<path d="M 304,112 L 328,112" fill="none" stroke="black"/> <path d="M 312,80 L 328,80" fill="none" stroke="black"/>
<path d="M 136,144 L 216,144" fill="none" stroke="black"/> <path d="M 80,112 L 112,112" fill="none" stroke="black"/>
<path d="M 312,144 L 328,144" fill="none" stroke="black"/> <path d="M 304,112 L 328,112" fill="none" stroke="black"/>
<path d="M 288,176 L 328,176" fill="none" stroke="black"/> <path d="M 136,144 L 216,144" fill="none" stroke="black"/>
<path d="M 136,240 L 216,240" fill="none" stroke="black"/> <path d="M 312,144 L 328,144" fill="none" stroke="black"/>
<path d="M 312,240 L 328,240" fill="none" stroke="black"/> <path d="M 288,176 L 328,176" fill="none" stroke="black"/>
<path d="M 80,272 L 112,272" fill="none" stroke="black"/> <path d="M 136,240 L 216,240" fill="none" stroke="black"/>
<path d="M 304,272 L 328,272" fill="none" stroke="black"/> <path d="M 312,240 L 328,240" fill="none" stroke="black"/>
<path d="M 136,304 L 216,304" fill="none" stroke="black"/> <path d="M 80,272 L 112,272" fill="none" stroke="black"/>
<path d="M 312,304 L 328,304" fill="none" stroke="black"/> <path d="M 304,272 L 328,272" fill="none" stroke="black"/>
<path d="M 288,336 L 328,336" fill="none" stroke="black"/> <path d="M 136,304 L 216,304" fill="none" stroke="black"/>
<path d="M 48,368 L 128,368" fill="none" stroke="black"/> <path d="M 312,304 L 328,304" fill="none" stroke="black"/>
<path d="M 288,368 L 352,368" fill="none" stroke="black"/> <path d="M 288,336 L 328,336" fill="none" stroke="black"/>
<path d="M 304,288 L 312,304" fill="none" stroke="black"/> <path d="M 48,368 L 128,368" fill="none" stroke="black"/>
<path d="M 304,128 L 312,144" fill="none" stroke="black"/> <path d="M 288,368 L 352,368" fill="none" stroke="black"/>
<path d="M 304,96 L 312,80" fill="none" stroke="black"/> <path d="M 304,288 L 312,304" fill="none" stroke="black"/>
<path d="M 304,256 L 312,240" fill="none" stroke="black"/> <path d="M 304,128 L 312,144" fill="none" stroke="black"/>
<polygon class="arrowhead" points="360,368 348,362.4 348,373.6" fill="black" tra <path d="M 304,96 L 312,80" fill="none" stroke="black"/>
nsform="rotate(0,352,368)"/> <path d="M 304,256 L 312,240" fill="none" stroke="black"/>
<g class="text"> <polygon class="arrowhead" points="360,368 348,362.4 348,373.6"
<text x="92" y="36">......................</text> fill="black" transform="rotate(0,352,368)"/>
<text x="312" y="36">.............................</text> <g class="text">
<text x="8" y="52">:</text> <text x="92" y="36">......................</text>
<text x="96" y="52">AS3</text> <text x="312" y="36">.............................</text>
<text x="176" y="52">:</text> <text x="8" y="52">:</text>
<text x="200" y="52">:</text> <text x="96" y="52">AS3</text>
<text x="312" y="52">AS1</text> <text x="176" y="52">:</text>
<text x="424" y="52">:</text> <text x="200" y="52">:</text>
<text x="8" y="68">:</text> <text x="312" y="52">AS1</text>
<text x="176" y="68">:</text> <text x="424" y="52">:</text>
<text x="200" y="68">:</text> <text x="8" y="68">:</text>
<text x="424" y="68">:</text> <text x="176" y="68">:</text>
<text x="8" y="84">:</text> <text x="200" y="68">:</text>
<text x="244" y="84">ASBR11</text> <text x="424" y="68">:</text>
<text x="348" y="84">PE11</text> <text x="8" y="84">:</text>
<text x="392" y="84">(EP1)</text> <text x="244" y="84">ASBR11</text>
<text x="424" y="84">:</text> <text x="348" y="84">PE11</text>
<text x="8" y="100">:</text> <text x="392" y="84">(EP1)</text>
<text x="176" y="100">:</text> <text x="424" y="84">:</text>
<text x="200" y="100">:</text> <text x="8" y="100">:</text>
<text x="272" y="100">\</text> <text x="176" y="100">:</text>
<text x="424" y="100">:</text> <text x="200" y="100">:</text>
<text x="8" y="116">:</text> <text x="272" y="100">\</text>
<text x="140" y="116">ASBR31</text> <text x="424" y="100">:</text>
<text x="176" y="116">:</text> <text x="8" y="116">:</text>
<text x="200" y="116">:</text> <text x="140" y="116">ASBR31</text>
<text x="288" y="116">[P]</text> <text x="176" y="116">:</text>
<text x="348" y="116">PE12</text> <text x="200" y="116">:</text>
<text x="392" y="116">(EP2)</text> <text x="288" y="116">[P]</text>
<text x="424" y="116">:</text> <text x="348" y="116">PE12</text>
<text x="8" y="132">:</text> <text x="392" y="116">(EP2)</text>
<text x="176" y="132">:</text> <text x="424" y="116">:</text>
<text x="200" y="132">:</text> <text x="8" y="132">:</text>
<text x="272" y="132">/</text> <text x="176" y="132">:</text>
<text x="424" y="132">:</text> <text x="200" y="132">:</text>
<text x="8" y="148">:</text> <text x="272" y="132">/</text>
<text x="244" y="148">ASBR12</text> <text x="424" y="132">:</text>
<text x="348" y="148">PE13</text> <text x="8" y="148">:</text>
<text x="392" y="148">(EP3)</text> <text x="244" y="148">ASBR12</text>
<text x="424" y="148">:</text> <text x="348" y="148">PE13</text>
<text x="8" y="164">:</text> <text x="392" y="148">(EP3)</text>
<text x="176" y="164">:</text> <text x="424" y="148">:</text>
<text x="200" y="164">:</text> <text x="8" y="164">:</text>
<text x="424" y="164">:</text> <text x="176" y="164">:</text>
<text x="8" y="180">:</text> <text x="200" y="164">:</text>
<text x="176" y="180">:</text> <text x="424" y="164">:</text>
<text x="200" y="180">:</text> <text x="8" y="180">:</text>
<text x="348" y="180">PE14</text> <text x="176" y="180">:</text>
<text x="392" y="180">(EP4)</text> <text x="200" y="180">:</text>
<text x="424" y="180">:</text> <text x="348" y="180">PE14</text>
<text x="8" y="196">:</text> <text x="392" y="180">(EP4)</text>
<text x="56" y="196">PE31--[P]</text> <text x="424" y="180">:</text>
<text x="176" y="196">:</text> <text x="8" y="196">:</text>
<text x="200" y="196">:</text> <text x="56" y="196">PE31--[P]</text>
<text x="424" y="196">:</text> <text x="176" y="196">:</text>
<text x="8" y="212">:</text> <text x="200" y="196">:</text>
<text x="176" y="212">:</text> <text x="424" y="196">:</text>
<text x="200" y="212">:</text> <text x="8" y="212">:</text>
<text x="424" y="212">:</text> <text x="176" y="212">:</text>
<text x="8" y="228">:</text> <text x="200" y="212">:</text>
<text x="176" y="228">:</text> <text x="424" y="212">:</text>
<text x="200" y="228">:</text> <text x="8" y="228">:</text>
<text x="424" y="228">:</text> <text x="176" y="228">:</text>
<text x="8" y="244">:</text> <text x="200" y="228">:</text>
<text x="244" y="244">ASBR21</text> <text x="424" y="228">:</text>
<text x="348" y="244">PE21</text> <text x="8" y="244">:</text>
<text x="392" y="244">(EP5)</text> <text x="244" y="244">ASBR21</text>
<text x="424" y="244">:</text> <text x="348" y="244">PE21</text>
<text x="8" y="260">:</text> <text x="392" y="244">(EP5)</text>
<text x="176" y="260">:</text> <text x="424" y="244">:</text>
<text x="200" y="260">:</text> <text x="8" y="260">:</text>
<text x="272" y="260">\</text> <text x="176" y="260">:</text>
<text x="424" y="260">:</text> <text x="200" y="260">:</text>
<text x="8" y="276">:</text> <text x="272" y="260">\</text>
<text x="140" y="276">ASBR32</text> <text x="424" y="260">:</text>
<text x="176" y="276">:</text> <text x="8" y="276">:</text>
<text x="200" y="276">:</text> <text x="140" y="276">ASBR32</text>
<text x="288" y="276">[P]</text> <text x="176" y="276">:</text>
<text x="348" y="276">PE22</text> <text x="200" y="276">:</text>
<text x="392" y="276">(EP6)</text> <text x="288" y="276">[P]</text>
<text x="424" y="276">:</text> <text x="348" y="276">PE22</text>
<text x="8" y="292">:</text> <text x="392" y="276">(EP6)</text>
<text x="176" y="292">:</text> <text x="424" y="276">:</text>
<text x="200" y="292">:</text> <text x="8" y="292">:</text>
<text x="272" y="292">/</text> <text x="176" y="292">:</text>
<text x="424" y="292">:</text> <text x="200" y="292">:</text>
<text x="8" y="308">:</text> <text x="272" y="292">/</text>
<text x="244" y="308">ASBR22</text> <text x="424" y="292">:</text>
<text x="348" y="308">PE22</text> <text x="8" y="308">:</text>
<text x="392" y="308">(EP7)</text> <text x="244" y="308">ASBR22</text>
<text x="424" y="308">:</text> <text x="348" y="308">PE22</text>
<text x="8" y="324">:</text> <text x="392" y="308">(EP7)</text>
<text x="176" y="324">:</text> <text x="424" y="308">:</text>
<text x="200" y="324">:</text> <text x="8" y="324">:</text>
<text x="424" y="324">:</text> <text x="176" y="324">:</text>
<text x="8" y="340">:</text> <text x="200" y="324">:</text>
<text x="176" y="340">:</text> <text x="424" y="324">:</text>
<text x="200" y="340">:</text> <text x="8" y="340">:</text>
<text x="348" y="340">PE24</text> <text x="176" y="340">:</text>
<text x="392" y="340">(EP8)</text> <text x="200" y="340">:</text>
<text x="424" y="340">:</text> <text x="348" y="340">PE24</text>
<text x="92" y="356">......................</text> <text x="392" y="340">(EP8)</text>
<text x="312" y="356">.............................</text> <text x="424" y="340">:</text>
<text x="168" y="372">Traffic</text> <text x="92" y="356">......................</text>
<text x="240" y="372">Direction</text> <text x="312" y="356">.............................</text>
</g> <text x="168" y="372">Traffic</text>
</svg> <text x="240" y="372">Direction</text>
</artwork><artwork type="ascii-art"><![CDATA[ </g>
</svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
...................... ............................. ...................... .............................
: AS3 : : AS1 : : AS3 : : AS1 :
: : : : : : : :
: +----------ASBR11 +--PE11 (EP1) : : +----------ASBR11 +--PE11 (EP1) :
: | : : \ / : : | : : \ / :
: +----ASBR31 : : [P]----PE12 (EP2) : : +----ASBR31 : : [P]----PE12 (EP2) :
: | | : : / | \ : : | | : : / | \ :
: | +----------ASBR12 | +--PE13 (EP3) : : | +----------ASBR12 | +--PE13 (EP3) :
: | : : | : : | : : | :
: | : : +-----PE14 (EP4) : : | : : +-----PE14 (EP4) :
skipping to change at line 2234 skipping to change at line 2263
: | : : : : | : : :
: | +----------ASBR21 +--PE21 (EP5) : : | +----------ASBR21 +--PE21 (EP5) :
: | | : : \ / : : | | : : \ / :
: +----ASBR32 : : [P]----PE22 (EP6) : : +----ASBR32 : : [P]----PE22 (EP6) :
: | : : / | \ : : | : : / | \ :
: +----------ASBR22 | +--PE22 (EP7) : : +----------ASBR22 | +--PE22 (EP7) :
: : : | : : : : | :
: : : +-----PE24 (EP8) : : : : +-----PE24 (EP8) :
...................... ............................. ...................... .............................
----------- Traffic Direction --------> ----------- Traffic Direction -------->
]]></artwork></artset></figure> ]]></artwork>
</artset>
</figure>
<t>The following table provides a comparison of the BGP CT route and <t>The following table provides a comparison of the BGP CT route and
label scale, for varying endpoint path visibility at ingress node PE31 label scale for varying endpoint-path visibility at ingress node PE31
for each TC. It analyzes scenarios where Unicast or Anycast EPs for each TC. It analyzes scenarios where Unicast or Anycast EPs
(EP-type) may be originated by different node roles (Origin), using (EP-type) may be originated by different node roles (Origin), using
different RD allocation modes (RD-Mode), and different Per-Prefix different RD allocation modes (RD-Modes), and different Per-Prefix
Label allocation modes (PP-Mode).</t> label-allocation modes (PP-Modes).</t>
<figure anchor="RDLabelVis">
<figure title="Route and Path Visibility at Ingress Node" anchor="RDLabelVis"><a <name>Route and Path Visibility at Ingress Node</name>
rtset><artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" <artset>
height="320" width="432" viewBox="0 0 432 320" class="diagram" text-anchor="mid <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://w
dle" font-family="monospace" font-size="13px" stroke-linecap="round"> ww.w3.org/2000/svg" version="1.1" height="320" width="432" viewBox="0 0 432 320"
<path d="M 8,32 L 8,288" fill="none" stroke="black"/> class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" s
<path d="M 80,32 L 80,288" fill="none" stroke="black"/> troke-linecap="round">
<path d="M 136,32 L 136,288" fill="none" stroke="black"/> <path d="M 8,32 L 8,288" fill="none" stroke="black"/>
<path d="M 200,32 L 200,288" fill="none" stroke="black"/> <path d="M 80,32 L 80,288" fill="none" stroke="black"/>
<path d="M 264,32 L 264,288" fill="none" stroke="black"/> <path d="M 136,32 L 136,288" fill="none" stroke="black"/>
<path d="M 344,32 L 344,288" fill="none" stroke="black"/> <path d="M 200,32 L 200,288" fill="none" stroke="black"/>
<path d="M 424,32 L 424,288" fill="none" stroke="black"/> <path d="M 264,32 L 264,288" fill="none" stroke="black"/>
<path d="M 8,32 L 424,32" fill="none" stroke="black"/> <path d="M 344,32 L 344,288" fill="none" stroke="black"/>
<path d="M 8,64 L 424,64" fill="none" stroke="black"/> <path d="M 424,32 L 424,288" fill="none" stroke="black"/>
<path d="M 16,144 L 72,144" fill="none" stroke="black"/> <path d="M 8,32 L 424,32" fill="none" stroke="black"/>
<path d="M 88,144 L 128,144" fill="none" stroke="black"/> <path d="M 8,64 L 424,64" fill="none" stroke="black"/>
<path d="M 144,144 L 192,144" fill="none" stroke="black"/> <path d="M 16,144 L 72,144" fill="none" stroke="black"/>
<path d="M 208,144 L 256,144" fill="none" stroke="black"/> <path d="M 88,144 L 128,144" fill="none" stroke="black"/>
<path d="M 272,144 L 336,144" fill="none" stroke="black"/> <path d="M 144,144 L 192,144" fill="none" stroke="black"/>
<path d="M 352,144 L 416,144" fill="none" stroke="black"/> <path d="M 208,144 L 256,144" fill="none" stroke="black"/>
<path d="M 8,288 L 424,288" fill="none" stroke="black"/> <path d="M 272,144 L 336,144" fill="none" stroke="black"/>
<g class="text"> <path d="M 352,144 L 416,144" fill="none" stroke="black"/>
<text x="40" y="52">EP-type</text> <path d="M 8,288 L 424,288" fill="none" stroke="black"/>
<text x="108" y="52">Origin</text> <g class="text">
<text x="168" y="52">RD-Mode</text> <text x="40" y="52">EP-type</text>
<text x="232" y="52">PP-Mode</text> <text x="108" y="52">Origin</text>
<text x="276" y="52">CT</text> <text x="168" y="52">RD-Mode</text>
<text x="316" y="52">Routes</text> <text x="232" y="52">PP-Mode</text>
<text x="356" y="52">CT</text> <text x="276" y="52">CT</text>
<text x="396" y="52">Labels</text> <text x="316" y="52">Routes</text>
<text x="40" y="84">Unicast</text> <text x="356" y="52">CT</text>
<text x="92" y="84">SN</text> <text x="396" y="52">Labels</text>
<text x="164" y="84">Unique</text> <text x="40" y="84">Unicast</text>
<text x="224" y="84">TC,EP</text> <text x="92" y="84">SN</text>
<text x="312" y="84">8</text> <text x="164" y="84">Unique</text>
<text x="384" y="84">8</text> <text x="224" y="84">TC,EP</text>
<text x="40" y="100">Unicast</text> <text x="312" y="84">8</text>
<text x="92" y="100">SN</text> <text x="384" y="84">8</text>
<text x="164" y="100">Unique</text> <text x="40" y="100">Unicast</text>
<text x="224" y="100">RD,EP</text> <text x="92" y="100">SN</text>
<text x="312" y="100">8</text> <text x="164" y="100">Unique</text>
<text x="384" y="100">8</text> <text x="224" y="100">RD,EP</text>
<text x="40" y="116">Unicast</text> <text x="312" y="100">8</text>
<text x="92" y="116">BN</text> <text x="384" y="100">8</text>
<text x="164" y="116">Unique</text> <text x="40" y="116">Unicast</text>
<text x="224" y="116">TC,EP</text> <text x="92" y="116">BN</text>
<text x="308" y="116">16</text> <text x="164" y="116">Unique</text>
<text x="384" y="116">8</text> <text x="224" y="116">TC,EP</text>
<text x="40" y="132">Unicast</text> <text x="308" y="116">16</text>
<text x="92" y="132">BN</text> <text x="384" y="116">8</text>
<text x="164" y="132">Unique</text> <text x="40" y="132">Unicast</text>
<text x="224" y="132">RD,EP</text> <text x="92" y="132">BN</text>
<text x="308" y="132">16</text> <text x="164" y="132">Unique</text>
<text x="380" y="132">16</text> <text x="224" y="132">RD,EP</text>
<text x="40" y="164">Anycast</text> <text x="308" y="132">16</text>
<text x="92" y="164">SN</text> <text x="380" y="132">16</text>
<text x="164" y="164">Unique</text> <text x="40" y="164">Anycast</text>
<text x="224" y="164">TC,EP</text> <text x="92" y="164">SN</text>
<text x="312" y="164">8</text> <text x="164" y="164">Unique</text>
<text x="384" y="164">2</text> <text x="224" y="164">TC,EP</text>
<text x="40" y="180">Anycast</text> <text x="312" y="164">8</text>
<text x="92" y="180">SN</text> <text x="384" y="164">2</text>
<text x="164" y="180">Unique</text> <text x="40" y="180">Anycast</text>
<text x="224" y="180">RD,EP</text> <text x="92" y="180">SN</text>
<text x="312" y="180">8</text> <text x="164" y="180">Unique</text>
<text x="384" y="180">8</text> <text x="224" y="180">RD,EP</text>
<text x="40" y="196">Anycast</text> <text x="312" y="180">8</text>
<text x="92" y="196">SN</text> <text x="384" y="180">8</text>
<text x="156" y="196">Same</text> <text x="40" y="196">Anycast</text>
<text x="224" y="196">TC,EP</text> <text x="92" y="196">SN</text>
<text x="312" y="196">2</text> <text x="156" y="196">Same</text>
<text x="384" y="196">2</text> <text x="224" y="196">TC,EP</text>
<text x="40" y="212">Anycast</text> <text x="312" y="196">2</text>
<text x="92" y="212">SN</text> <text x="384" y="196">2</text>
<text x="156" y="212">Same</text> <text x="40" y="212">Anycast</text>
<text x="224" y="212">RD,EP</text> <text x="92" y="212">SN</text>
<text x="312" y="212">2</text> <text x="156" y="212">Same</text>
<text x="384" y="212">2</text> <text x="224" y="212">RD,EP</text>
<text x="40" y="228">Anycast</text> <text x="312" y="212">2</text>
<text x="92" y="228">BN</text> <text x="384" y="212">2</text>
<text x="164" y="228">Unique</text> <text x="40" y="228">Anycast</text>
<text x="224" y="228">TC,EP</text> <text x="92" y="228">BN</text>
<text x="312" y="228">4</text> <text x="164" y="228">Unique</text>
<text x="384" y="228">2</text> <text x="224" y="228">TC,EP</text>
<text x="40" y="244">Anycast</text> <text x="312" y="228">4</text>
<text x="92" y="244">BN</text> <text x="384" y="228">2</text>
<text x="164" y="244">Unique</text> <text x="40" y="244">Anycast</text>
<text x="224" y="244">RD,EP</text> <text x="92" y="244">BN</text>
<text x="312" y="244">4</text> <text x="164" y="244">Unique</text>
<text x="384" y="244">4</text> <text x="224" y="244">RD,EP</text>
<text x="40" y="260">Anycast</text> <text x="312" y="244">4</text>
<text x="92" y="260">BN</text> <text x="384" y="244">4</text>
<text x="156" y="260">Same</text> <text x="40" y="260">Anycast</text>
<text x="224" y="260">TC,EP</text> <text x="92" y="260">BN</text>
<text x="312" y="260">2</text> <text x="156" y="260">Same</text>
<text x="384" y="260">2</text> <text x="224" y="260">TC,EP</text>
<text x="40" y="276">Anycast</text> <text x="312" y="260">2</text>
<text x="92" y="276">BN</text> <text x="384" y="260">2</text>
<text x="156" y="276">Same</text> <text x="40" y="276">Anycast</text>
<text x="224" y="276">RD,EP</text> <text x="92" y="276">BN</text>
<text x="312" y="276">2</text> <text x="156" y="276">Same</text>
<text x="384" y="276">2</text> <text x="224" y="276">RD,EP</text>
</g> <text x="312" y="276">2</text>
</svg> <text x="384" y="276">2</text>
</artwork><artwork type="ascii-art"><![CDATA[ </g>
</svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
+--------+------+-------+-------+---------+---------+ +--------+------+-------+-------+---------+---------+
|EP-type |Origin|RD-Mode|PP-Mode|CT Routes|CT Labels| |EP-type |Origin|RD-Mode|PP-Mode|CT Routes|CT Labels|
+--------+------+-------+-------+---------+---------+ +--------+------+-------+-------+---------+---------+
|Unicast |SN |Unique |TC,EP | 8 | 8 | |Unicast |SN |Unique |TC,EP | 8 | 8 |
|Unicast |SN |Unique |RD,EP | 8 | 8 | |Unicast |SN |Unique |RD,EP | 8 | 8 |
|Unicast |BN |Unique |TC,EP | 16 | 8 | |Unicast |BN |Unique |TC,EP | 16 | 8 |
|Unicast |BN |Unique |RD,EP | 16 | 16 | |Unicast |BN |Unique |RD,EP | 16 | 16 |
|--------|------|-------|-------|---------|---------| |--------|------|-------|-------|---------|---------|
|Anycast |SN |Unique |TC,EP | 8 | 2 | |Anycast |SN |Unique |TC,EP | 8 | 2 |
|Anycast |SN |Unique |RD,EP | 8 | 8 | |Anycast |SN |Unique |RD,EP | 8 | 8 |
|Anycast |SN |Same |TC,EP | 2 | 2 | |Anycast |SN |Same |TC,EP | 2 | 2 |
|Anycast |SN |Same |RD,EP | 2 | 2 | |Anycast |SN |Same |RD,EP | 2 | 2 |
|Anycast |BN |Unique |TC,EP | 4 | 2 | |Anycast |BN |Unique |TC,EP | 4 | 2 |
|Anycast |BN |Unique |RD,EP | 4 | 4 | |Anycast |BN |Unique |RD,EP | 4 | 4 |
|Anycast |BN |Same |TC,EP | 2 | 2 | |Anycast |BN |Same |TC,EP | 2 | 2 |
|Anycast |BN |Same |RD,EP | 2 | 2 | |Anycast |BN |Same |RD,EP | 2 | 2 |
+--------+------+-------+-------+---------+---------+ +--------+------+-------+-------+---------+---------+
]]></artwork></artset></figure> ]]></artwork>
</artset>
<t>In the table shown in <xref target="RDLabelVis"/>, route scale at </figure>
ingress node PE31 is proportional to path diversity in ingress domain <t>In <xref target="RDLabelVis" format="default"/>, route scale at
(number of ASBRs) and point of origination of BGP CT route. TE ingress node PE31 is proportional to path diversity in the ingress domai
n
(number of ASBRs) and point of origination of the BGP CT route. TE
granularity at ingress node PE31 is proportional to the number of granularity at ingress node PE31 is proportional to the number of
unique CT labels received, which depends on PP-mode and the path unique CT labels received, which depends on the PP-Mode and the path
diversity in ingress domain.</t> diversity in the ingress domain.</t>
<t>Deploying unique RDs is strongly <bcp14>RECOMMENDED</bcp14> because i
<t>Deploying unique RDs is strongly RECOMMENDED because it helps in t helps in
troubleshooting by uniquely identifying the originator of a route and troubleshooting by uniquely identifying the originator of a route and
avoids path-hiding.</t> avoids path hiding.</t>
<t>In typical deployments, originating BGP CT routes at the egress node
<t>In typical deployments originating BGP CT routes at the egress node (SN) is recommended. In this model, using either an "RD, EP" or "TC, EP"
(SN) is recommended. In this model, using either "RD, EP" or "TC, EP" Per-Prefix label-allocation mode repairs traffic locally at the
Per-Prefix label allocation mode repairs traffic locally at the nearest BN for any failures in the network because the label value
nearest BN for any failures in the network, because the label value
does not change.</t> does not change.</t>
<t>Originating at BNs with unique RDs induces more routes than when <t>Originating at BNs with unique RDs induces more routes than when
originating at egress SNs. In this model, use of "TC, EP" Per-Prefix originating at egress SNs. In this model, use of the "TC, EP" Per-Prefix
label allocation mode repairs traffic locally at the nearest BN for label-allocation mode repairs traffic locally at the nearest BN for
any failures in the network, because the label value does not any failures in the network because the label value does not
change.</t> change.</t>
<t><xref target="RDLabelVis" format="default"/> demonstrates that
<t>The previous table in <xref target="RDLabelVis"/> demonstrates that
BGP CT allows an operator to control how much path visibility and BGP CT allows an operator to control how much path visibility and
forwarding diversity is desired in the network, for both Unicast and forwarding diversity is desired in the network for both Unicast and
Anycast endpoints.</t> Anycast endpoints.</t>
</section> </section>
</section> </section>
<section anchor="CTdeploy" numbered="true" toc="default">
<section anchor="CTdeploy" title="Deployment Considerations."> <name>Deployment Considerations</name>
<section title="Coordination Between Domains Using Different Community Nam <section numbered="true" toc="default">
espaces"> <name>Coordination Between Domains Using Different Community Namespaces<
/name>
<t>Cooperating Inter-AS Option C domains may sometimes not agree on <t>Cooperating Inter-AS Option C domains may sometimes not agree on
RT, RD, Mapping community or Transport Route Target values because of RT, RD, Mapping community, or Transport Route Target values because of
differences in community namespaces (e.g. during network mergers or differences in community namespaces (e.g., during network mergers or
renumbering for expansion). Such deployments may deploy mechanisms to renumbering for expansion). Such deployments may deploy mechanisms to
map and rewrite the Route Target values on domain boundaries, using map and rewrite the Route Target values on domain boundaries using
per ASBR import policies. This is no different than any other BGP VPN per-ASBR import policies. This is no different than any other BGP VPN
family. Mechanisms used in inter-AS VPN deployments may be leveraged family. Mechanisms used in inter-AS VPN deployments may be leveraged
with the Classful Transport family also.</t> with the Classful Transport family also.</t>
<t>A resolution scheme allows association with multiple Mapping <t>A resolution scheme allows association with multiple Mapping
Communities. This minimizes service disruption during renumbering, Communities. This minimizes service disruption during renumbering,
network merger or transition scenarios.</t> network merger, or transition scenarios.</t>
<t>The Transport Class Route Target extended community is useful to
<t>The Transport Class Route Target Extended Community is useful to
avoid collision with regular Route Target namespace used by service avoid collision with regular Route Target namespace used by service
routes.</t> routes.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Managing Intent at Service and Transport layers."> <name>Managing Intent at Service and Transport Layers</name>
<t><xref target="CTProc">Illustration of BGP CT Procedures </xref> <t><xref target="CTProc" format="default"></xref>
shows multiple domains that agree on a color name space (Agreeing shows multiple domains that agree on a color namespace (Agreeing
Color Domains) and contain tunnels with equivalent set of colors Color Domains) and contain tunnels with an equivalent set of colors
(Homogenous Color Domains).</t> (Homogenous Color Domains).</t>
<t>However, in the real world, this may not always be guaranteed. Two <t>However, in the real world, this may not always be guaranteed. Two
domains may independently manage their color namespaces; these are domains may independently manage their color namespaces; these are
known as Non-Agreeing Color Domains. Two domains may have tunnels with known as Non-Agreeing Color Domains. Two domains may have tunnels with
unequal sets of colors; these are known as Heterogeneous Color unequal sets of colors; these are known as Heterogeneous Color
Domains.</t> Domains.</t>
<t>This section describes how BGP CT is deployed in such scenarios to <t>This section describes how BGP CT is deployed in such scenarios to
preserve end-to-end Intent. Examples described in this section use preserve end-to-end Intent. Examples described in this section use
Inter-AS Option C domains. Similar mechanisms will work for Inter-AS Inter-AS Option C domains. Similar mechanisms will work for Inter-AS
Option A and Inter-AS Option B scenarios as well.</t> Option A and Inter-AS Option B scenarios as well.</t>
<section numbered="true" toc="default">
<section title="Service Layer Color Management "> <name>Service-Layer Color Management</name>
<t>At the service layer, it is recommended that a global color <t>At the service layer, it is recommended that a global color
namespace be maintained across multiple co-operating domains. BGP CT namespace be maintained across multiple cooperating domains. BGP CT
allows indirection using resolution schemes to be able to maintain a allows indirection using resolution schemes to be able to maintain a
global namespace in the service layer. This is possible even if each global namespace in the service layer. This is possible even if each
domain independently maintains its own local transport color domain independently maintains its own local transport color
namespace.</t> namespace.</t>
<t>As explained in <xref target="Nexthop_Resoln_Schm" format="default"
<t>As explained in <xref target="Nexthop_Resoln_Schm">Next Hop ></xref>, a mapping community carried on a service
Resolution Scheme</xref> , a mapping community carried on a service
route maps to a resolution scheme. The mapping community values for route maps to a resolution scheme. The mapping community values for
the service route can be abstract and are not required to match the the service route can be abstract and are not required to match the
transport color namespace. This abstract mapping community value transport color namespace. This abstract mapping community value
representing a global service layer intent is mapped to a local representing a global service-layer intent is mapped to a local
transport layer intent available in each domain.</t> transport-layer intent available in each domain.</t>
<t>In this manner, it is recommended to keep color namespace <t>In this manner, it is recommended to keep color namespace
management at the service layer and the transport layer decoupled management at the service layer and the transport layer decoupled
from each other. In the following sections the service layer agrees from each other. In the following sections, the service layer agrees
on a single global namespace.</t> on a single global namespace.</t>
</section> </section>
<section anchor="non-agreeing" numbered="true" toc="default">
<section anchor="non-agreeing" <name>Non-Agreeing Color Transport Domains</name>
title="Non-Agreeing Color Transport Domains"> <t>Non-Agreeing Color Domains require a mapping community rewrite on
<t>Non-agreeing color domains require a mapping community rewrite on
each domain boundary. This rewrite helps to map one domain's color each domain boundary. This rewrite helps to map one domain's color
namespace to another domain's color namespace.</t> namespace to another domain's color namespace.</t>
<t>The following example illustrates how traffic is stitched and SLA <t>The following example illustrates how traffic is stitched and SLA
is preserved when domains don't use the same namespace at the is preserved when domains don't use the same namespace at the
transport layer. Each domain specifies the same SLA using different transport layer. Each domain specifies the same SLA using different
color values.</t> color values.</t>
<figure anchor="BGPCT_NON_AGREEING_COLOR_DOMAIN">
<figure title="Transport Layer with Non-agreeing Color Domains" anchor="BGPCT_NO <name>Transport Layer with Non-Agreeing Color Domains</name>
N_AGREEING_COLOR_DOMAIN"><artset><artwork type="svg"><svg xmlns="http://www.w3. <artset>
org/2000/svg" version="1.1" height="240" width="552" viewBox="0 0 552 240" class <artwork type="svg" name="" align="left" alt=""><svg xmlns="http:/
="diagram" text-anchor="middle" font-family="monospace" font-size="13px" stroke- /www.w3.org/2000/svg" version="1.1" height="240" width="552" viewBox="0 0 552 24
linecap="round"> 0" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px"
<path d="M 72,96 L 96,96" fill="none" stroke="black"/> stroke-linecap="round">
<path d="M 168,96 L 184,96" fill="none" stroke="black"/> <path d="M 72,96 L 96,96" fill="none" stroke="black"/>
<path d="M 248,96 L 288,96" fill="none" stroke="black"/> <path d="M 168,96 L 184,96" fill="none" stroke="black"/>
<path d="M 360,96 L 376,96" fill="none" stroke="black"/> <path d="M 248,96 L 288,96" fill="none" stroke="black"/>
<path d="M 440,96 L 488,96" fill="none" stroke="black"/> <path d="M 360,96 L 376,96" fill="none" stroke="black"/>
<path d="M 96,208 L 176,208" fill="none" stroke="black"/> <path d="M 440,96 L 488,96" fill="none" stroke="black"/>
<path d="M 336,208 L 400,208" fill="none" stroke="black"/> <path d="M 96,208 L 176,208" fill="none" stroke="black"/>
<polygon class="arrowhead" points="408,208 396,202.4 396,213.6" fill="black" tra <path d="M 336,208 L 400,208" fill="none" stroke="black"/>
nsform="rotate(0,400,208)"/> <polygon class="arrowhead" points="408,208 396,202.4 396,213.6
<g class="text"> " fill="black" transform="rotate(0,400,208)"/>
<text x="88" y="52">.....................</text> <g class="text">
<text x="272" y="52">.......................</text> <text x="88" y="52">.....................</text>
<text x="460" y="52">......................</text> <text x="272" y="52">.......................</text>
<text x="8" y="68">:</text> <text x="460" y="52">......................</text>
<text x="96" y="68">Gold(100)</text> <text x="8" y="68">:</text>
<text x="168" y="68">:</text> <text x="96" y="68">Gold(100)</text>
<text x="184" y="68">:</text> <text x="168" y="68">:</text>
<text x="280" y="68">Gold(300)</text> <text x="184" y="68">:</text>
<text x="360" y="68">:</text> <text x="280" y="68">Gold(300)</text>
<text x="376" y="68">:</text> <text x="360" y="68">:</text>
<text x="472" y="68">Gold(500)</text> <text x="376" y="68">:</text>
<text x="544" y="68">:</text> <text x="472" y="68">Gold(500)</text>
<text x="8" y="84">:</text> <text x="544" y="68">:</text>
<text x="168" y="84">:</text> <text x="8" y="84">:</text>
<text x="184" y="84">:</text> <text x="168" y="84">:</text>
<text x="360" y="84">:</text> <text x="184" y="84">:</text>
<text x="376" y="84">:</text> <text x="360" y="84">:</text>
<text x="544" y="84">:</text> <text x="376" y="84">:</text>
<text x="8" y="100">:</text> <text x="544" y="84">:</text>
<text x="44" y="100">[PE11]</text> <text x="8" y="100">:</text>
<text x="132" y="100">[ASBR11]</text> <text x="44" y="100">[PE11]</text>
<text x="216" y="100">[ASBR21</text> <text x="132" y="100">[ASBR11]</text>
<text x="324" y="100">[ASBR22]</text> <text x="216" y="100">[ASBR21</text>
<text x="408" y="100">[ASBR31</text> <text x="324" y="100">[ASBR22]</text>
<text x="520" y="100">[PE31]:</text> <text x="408" y="100">[ASBR31</text>
<text x="8" y="116">:</text> <text x="520" y="100">[PE31]:</text>
<text x="168" y="116">:</text> <text x="8" y="116">:</text>
<text x="184" y="116">:</text> <text x="168" y="116">:</text>
<text x="360" y="116">:</text> <text x="184" y="116">:</text>
<text x="376" y="116">:</text> <text x="360" y="116">:</text>
<text x="544" y="116">:</text> <text x="376" y="116">:</text>
<text x="8" y="132">:</text> <text x="544" y="116">:</text>
<text x="88" y="132">AS1</text> <text x="8" y="132">:</text>
<text x="168" y="132">:</text> <text x="88" y="132">AS1</text>
<text x="184" y="132">:</text> <text x="168" y="132">:</text>
<text x="280" y="132">AS2</text> <text x="184" y="132">:</text>
<text x="360" y="132">:</text> <text x="280" y="132">AS2</text>
<text x="376" y="132">:</text> <text x="360" y="132">:</text>
<text x="464" y="132">AS3</text> <text x="376" y="132">:</text>
<text x="544" y="132">:</text> <text x="464" y="132">AS3</text>
<text x="8" y="148">:</text> <text x="544" y="132">:</text>
<text x="168" y="148">:</text> <text x="8" y="148">:</text>
<text x="184" y="148">:</text> <text x="168" y="148">:</text>
<text x="360" y="148">:</text> <text x="184" y="148">:</text>
<text x="376" y="148">:</text> <text x="360" y="148">:</text>
<text x="544" y="148">:</text> <text x="376" y="148">:</text>
<text x="8" y="164">:</text> <text x="544" y="148">:</text>
<text x="104" y="164">Bronze(200)</text> <text x="8" y="164">:</text>
<text x="168" y="164">:</text> <text x="104" y="164">Bronze(200)</text>
<text x="184" y="164">:</text> <text x="168" y="164">:</text>
<text x="272" y="164">Bronze(400)</text> <text x="184" y="164">:</text>
<text x="360" y="164">:</text> <text x="272" y="164">Bronze(400)</text>
<text x="376" y="164">:</text> <text x="360" y="164">:</text>
<text x="464" y="164">Bronze(600)</text> <text x="376" y="164">:</text>
<text x="544" y="164">:</text> <text x="464" y="164">Bronze(600)</text>
<text x="88" y="180">.....................</text> <text x="544" y="164">:</text>
<text x="272" y="180">.......................</text> <text x="88" y="180">.....................</text>
<text x="460" y="180">......................</text> <text x="272" y="180">.......................</text>
<text x="216" y="212">Traffic</text> <text x="460" y="180">......................</text>
<text x="288" y="212">Direction</text> <text x="216" y="212">Traffic</text>
</g> <text x="288" y="212">Direction</text>
</svg> </g>
</artwork><artwork type="ascii-art"><![CDATA[ </svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
..................... ....................... ...................... ..................... ....................... ......................
: Gold(100) : : Gold(300) : : Gold(500) : : Gold(100) : : Gold(300) : : Gold(500) :
: : : : : : : : : : : :
: [PE11]----[ASBR11]---[ASBR21------[ASBR22]---[ASBR31-------[PE31]: : [PE11]----[ASBR11]---[ASBR21------[ASBR22]---[ASBR31-------[PE31]:
: : : : : : : : : : : :
: AS1 : : AS2 : : AS3 : : AS1 : : AS2 : : AS3 :
: : : : : : : : : : : :
: Bronze(200) : : Bronze(400) : : Bronze(600) : : Bronze(200) : : Bronze(400) : : Bronze(600) :
..................... ....................... ...................... ..................... ....................... ......................
----------- Traffic Direction --------> ----------- Traffic Direction -------->
]]></artwork></artset></figure> ]]></artwork>
<t>In the topology shown in <xref </artset>
target="BGPCT_NON_AGREEING_COLOR_DOMAIN"/>, we have three Autonomous </figure>
<t>In the topology shown in <xref target="BGPCT_NON_AGREEING_COLOR_DOM
AIN" format="default"/>, we have three Autonomous
Systems. All the nodes in the topology support BGP CT.</t> Systems. All the nodes in the topology support BGP CT.</t>
<t>In AS1 Gold SLA is represented by color 100 and Bronze by <ul spacing="normal">
200.</t> <li>In AS1, the Gold SLA is represented by color 100 and Bronze by
200.</li>
<t>In AS2 Gold SLA is represented by color 300 and Bronze by <li>In AS2, the Gold SLA is represented by color 300 and Bronze by
400.</t> 400.</li>
<li>In AS3, the Gold SLA is represented by color 500 and Bronze by
<t>In AS3 Gold SLA is represented by color 500 and Bronze by 600.</li>
600.</t> </ul>
<t>Though the color values are different, they map to tunnels with <t>Though the color values are different, they map to tunnels with
sufficiently similar TE characteristics in each domain.</t> sufficiently similar TE characteristics in each domain.</t>
<t>The service route carries an abstract mapping community that maps <t>The service route carries an abstract mapping community that maps
to the required SLA. For example, Service routes that need to to the required SLA. For example, service routes that need to
resolve over Gold transport tunnels, carry a mapping community resolve over Gold transport tunnels carry a mapping community
color:0:100500. In AS3 it maps to a resolution scheme containing color:0:100500. In AS3, it maps to a resolution scheme containing
TRDB with color 500 whereas in AS2 it maps to a TRDB with color 300 a TRDB with color 500; in AS2, it maps to a TRDB with color 300;
and in AS1 it maps to a TRDB with color 100. Coordination is needed and in AS1, it maps to a TRDB with color 100. Coordination is needed
to provision the resolution schemes in each domain as explained to provision the resolution schemes in each domain, as explained
previously.</t> previously.</t>
<t>At the AS boundary, the transport-class route-target is rewritten <t>At the AS boundary, the transport-class route-target is rewritten
for the BGP CT routes. In the previous topology, at ASBR31, the 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:500 for Gold tunnels is rewritten to
transport-target:0:300 and then advertised to ASBR22. Similarly, the transport-target:0:300 and then advertised to ASBR22. Similarly, the
transport-target:0:300 for Gold tunnels are re-written to transport-target:0:300 for Gold tunnels are rewritten to
transport-target:0:100 at ASBR21 before advertising to ASBR11. At transport-target:0:100 at ASBR21 before advertising to ASBR11. At
PE11, the transport route received with transport-target:0:100 will PE11, the transport route received with transport-target:0:100 will
be added to the color 100 TRDB. The service route received with 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 mapping community color:0:100500 at PE1 maps to the Gold TRDB and
resolves over this transport route.</t> resolves over this transport route.</t>
<t>Inter-domain traffic forwarding in the previous topology works as <t>Inter-domain traffic forwarding in the previous topology works as
explained in <xref target="CTProc"/>.</t> explained in <xref target="CTProc" format="default"/>.</t>
<t>Transport-target rewrite requires coordination of color values
<t>Transport-target re-write requires co-ordination of color values
between domains in the transport layer. This method avoids the need between domains in the transport layer. This method avoids the need
to re-write service route mapping communities, keeping the service to rewrite service route mapping communities, keeping the service
layer homogenous and simple to manage. Coordinating Transport Class layer homogenous and simple to manage. Coordinating Transport Class
RT between two adjacent color domains at a time is easier than RT between two adjacent color domains at a time is easier than
coordinating service layer colors deployed in a global mesh of coordinating service-layer colors deployed in a global mesh of
non-adjacent color domains. This basically allows localizing the non-adjacent color domains. This basically allows localizing the
problem to a pair of adjacent color domains and solving it.</t> problem to a pair of adjacent color domains and solving it.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Heterogeneous Agreeing Color Transport Domains"> <name>Heterogeneous Agreeing Color Transport Domains</name>
<t>In a heterogeneous domains scenario, it might not be possible to <t>In a heterogeneous-domain scenario, it might not be possible to
map a service layer intent to the matching transport color, as the map a service-layer intent to the matching transport color, as the
color might not be locally available in a domain.</t> color might not be locally available in a domain.</t>
<t>The following example illustrates how traffic is stitched when a
<t>The following example illustrates how traffic is stitched, when a
transit AS contains more shades for an SLA path compared to Ingress transit AS contains more shades for an SLA path compared to Ingress
and Egress domains. This example shows how service routes can and Egress domains. This example shows how service routes can
traverse through finer shades when available and take coarse shades traverse through finer shades when available and take coarse shades
otherwise.</t> otherwise.</t>
<figure anchor="BGPCT_HETERO_COLOR_DOMAIN">
<figure title="Transport Layer with Heterogenous Color Domains" anchor="BGPCT_HE <name>Transport Layer with Heterogeneous Color Domains</name>
TERO_COLOR_DOMAIN"><artset><artwork type="svg"><svg xmlns="http://www.w3.org/20 <artset>
00/svg" version="1.1" height="256" width="552" viewBox="0 0 552 256" class="diag <artwork type="svg" name="" align="left" alt=""><svg xmlns="http:/
ram" text-anchor="middle" font-family="monospace" font-size="13px" stroke-lineca /www.w3.org/2000/svg" version="1.1" height="256" width="552" viewBox="0 0 552 25
p="round"> 6" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px"
<path d="M 72,112 L 96,112" fill="none" stroke="black"/> stroke-linecap="round">
<path d="M 168,112 L 184,112" fill="none" stroke="black"/> <path d="M 72,112 L 96,112" fill="none" stroke="black"/>
<path d="M 248,112 L 288,112" fill="none" stroke="black"/> <path d="M 168,112 L 184,112" fill="none" stroke="black"/>
<path d="M 360,112 L 376,112" fill="none" stroke="black"/> <path d="M 248,112 L 288,112" fill="none" stroke="black"/>
<path d="M 440,112 L 488,112" fill="none" stroke="black"/> <path d="M 360,112 L 376,112" fill="none" stroke="black"/>
<path d="M 120,224 L 200,224" fill="none" stroke="black"/> <path d="M 440,112 L 488,112" fill="none" stroke="black"/>
<path d="M 360,224 L 424,224" fill="none" stroke="black"/> <path d="M 120,224 L 200,224" fill="none" stroke="black"/>
<polygon class="arrowhead" points="432,224 420,218.4 420,229.6" fill="black" tra <path d="M 360,224 L 424,224" fill="none" stroke="black"/>
nsform="rotate(0,424,224)"/> <polygon class="arrowhead" points="432,224 420,218.4 420,229.6
<g class="text"> " fill="black" transform="rotate(0,424,224)"/>
<text x="88" y="52">.....................</text> <g class="text">
<text x="272" y="52">.......................</text> <text x="88" y="52">.....................</text>
<text x="460" y="52">......................</text> <text x="272" y="52">.......................</text>
<text x="8" y="68">:</text> <text x="460" y="52">......................</text>
<text x="168" y="68">:</text> <text x="8" y="68">:</text>
<text x="184" y="68">:</text> <text x="168" y="68">:</text>
<text x="276" y="68">Gold1(101)</text> <text x="184" y="68">:</text>
<text x="360" y="68">:</text> <text x="276" y="68">Gold1(101)</text>
<text x="376" y="68">:</text> <text x="360" y="68">:</text>
<text x="544" y="68">:</text> <text x="376" y="68">:</text>
<text x="8" y="84">:</text> <text x="544" y="68">:</text>
<text x="96" y="84">Gold(100)</text> <text x="8" y="84">:</text>
<text x="168" y="84">:</text> <text x="96" y="84">Gold(100)</text>
<text x="184" y="84">:</text> <text x="168" y="84">:</text>
<text x="276" y="84">Gold2(102)</text> <text x="184" y="84">:</text>
<text x="360" y="84">:</text> <text x="276" y="84">Gold2(102)</text>
<text x="376" y="84">:</text> <text x="360" y="84">:</text>
<text x="464" y="84">Gold(100)</text> <text x="376" y="84">:</text>
<text x="544" y="84">:</text> <text x="464" y="84">Gold(100)</text>
<text x="8" y="100">:</text> <text x="544" y="84">:</text>
<text x="168" y="100">:</text> <text x="8" y="100">:</text>
<text x="184" y="100">:</text> <text x="168" y="100">:</text>
<text x="360" y="100">:</text> <text x="184" y="100">:</text>
<text x="376" y="100">:</text> <text x="360" y="100">:</text>
<text x="544" y="100">:</text> <text x="376" y="100">:</text>
<text x="8" y="116">:</text> <text x="544" y="100">:</text>
<text x="44" y="116">[PE11]</text> <text x="8" y="116">:</text>
<text x="132" y="116">[ASBR11]</text> <text x="44" y="116">[PE11]</text>
<text x="216" y="116">[ASBR21</text> <text x="132" y="116">[ASBR11]</text>
<text x="324" y="116">[ASBR22]</text> <text x="216" y="116">[ASBR21</text>
<text x="408" y="116">[ASBR31</text> <text x="324" y="116">[ASBR22]</text>
<text x="520" y="116">[PE31]:</text> <text x="408" y="116">[ASBR31</text>
<text x="8" y="132">:</text> <text x="520" y="116">[PE31]:</text>
<text x="168" y="132">:</text> <text x="8" y="132">:</text>
<text x="184" y="132">:</text> <text x="168" y="132">:</text>
<text x="360" y="132">:</text> <text x="184" y="132">:</text>
<text x="376" y="132">:</text> <text x="360" y="132">:</text>
<text x="544" y="132">:</text> <text x="376" y="132">:</text>
<text x="8" y="148">:</text> <text x="544" y="132">:</text>
<text x="56" y="148">Metro</text> <text x="8" y="148">:</text>
<text x="112" y="148">Ingress</text> <text x="56" y="148">Metro</text>
<text x="168" y="148">:</text> <text x="112" y="148">Ingress</text>
<text x="184" y="148">:</text> <text x="168" y="148">:</text>
<text x="268" y="148">Core</text> <text x="184" y="148">:</text>
<text x="360" y="148">:</text> <text x="268" y="148">Core</text>
<text x="376" y="148">:</text> <text x="360" y="148">:</text>
<text x="432" y="148">Metro</text> <text x="376" y="148">:</text>
<text x="484" y="148">Egress</text> <text x="432" y="148">Metro</text>
<text x="544" y="148">:</text> <text x="484" y="148">Egress</text>
<text x="8" y="164">:</text> <text x="544" y="148">:</text>
<text x="168" y="164">:</text> <text x="8" y="164">:</text>
<text x="184" y="164">:</text> <text x="168" y="164">:</text>
<text x="360" y="164">:</text> <text x="184" y="164">:</text>
<text x="376" y="164">:</text> <text x="360" y="164">:</text>
<text x="544" y="164">:</text> <text x="376" y="164">:</text>
<text x="8" y="180">:</text> <text x="544" y="164">:</text>
<text x="88" y="180">AS1</text> <text x="8" y="180">:</text>
<text x="168" y="180">:</text> <text x="88" y="180">AS1</text>
<text x="184" y="180">:</text> <text x="168" y="180">:</text>
<text x="280" y="180">AS2</text> <text x="184" y="180">:</text>
<text x="360" y="180">:</text> <text x="280" y="180">AS2</text>
<text x="376" y="180">:</text> <text x="360" y="180">:</text>
<text x="464" y="180">AS3</text> <text x="376" y="180">:</text>
<text x="544" y="180">:</text> <text x="464" y="180">AS3</text>
<text x="88" y="196">.....................</text> <text x="544" y="180">:</text>
<text x="272" y="196">.......................</text> <text x="88" y="196">.....................</text>
<text x="460" y="196">......................</text> <text x="272" y="196">.......................</text>
<text x="240" y="228">Traffic</text> <text x="460" y="196">......................</text>
<text x="312" y="228">Direction</text> <text x="240" y="228">Traffic</text>
</g> <text x="312" y="228">Direction</text>
</svg> </g>
</artwork><artwork type="ascii-art"><![CDATA[ </svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
..................... ....................... ...................... ..................... ....................... ......................
: : : Gold1(101) : : : : : : Gold1(101) : : :
: Gold(100) : : Gold2(102) : : Gold(100) : : Gold(100) : : Gold2(102) : : Gold(100) :
: : : : : : : : : : : :
: [PE11]----[ASBR11]---[ASBR21------[ASBR22]---[ASBR31-------[PE31]: : [PE11]----[ASBR11]---[ASBR21------[ASBR22]---[ASBR31-------[PE31]:
: : : : : : : : : : : :
: Metro Ingress : : Core : : Metro Egress : : Metro Ingress : : Core : : Metro Egress :
: : : : : : : : : : : :
: AS1 : : AS2 : : AS3 : : AS1 : : AS2 : : AS3 :
..................... ....................... ...................... ..................... ....................... ......................
----------- Traffic Direction --------> ----------- Traffic Direction -------->
]]></artwork></artset></figure> ]]></artwork>
</artset>
<t>In the preceding topology shown in <xref </figure>
target="BGPCT_HETERO_COLOR_DOMAIN"/>, we have three Autonomous <t>In <xref target="BGPCT_HETERO_COLOR_DOMAIN" format="default"/>, we
have three Autonomous
Systems. All the nodes in the topology support BGP CT.</t> Systems. All the nodes in the topology support BGP CT.</t>
<ul spacing="normal">
<t>In AS1 Gold SLA is represented by color 100.</t> <li>In AS1, the Gold SLA is represented by color 100.</li>
<li>In AS2, Gold has finer shades: Gold1 by color 101 and Gold2 by
<t>In AS2 Gold has finer shades: Gold1 by color 101 and Gold2 by color 102.</li>
color 102.</t> <li>In AS3, the Gold SLA is represented by color 100.</li>
</ul>
<t>In AS3 Gold SLA is represented by color 100.</t> <t>This problem can be solved by the two approaches described in Secti
ons <xref target="dup_tun_ap" format="counter"/> and <xref target="cust_res_sche
<t>This problem can be solved by the two following approaches:</t> me" format="counter"/>.</t>
<section numbered="true" toc="default" anchor="dup_tun_ap">
<section title="Duplicate Tunnels Approach"> <name>Duplicate Tunnels Approach</name>
<t>In this approach, duplicate tunnels that satisfy Gold SLA are <t>In this approach, duplicate tunnels that satisfy the Gold SLA are
configured in domains AS1 and AS3, but they are given fine grained configured in domains AS1 and AS3, but they are given fine-grained
colors 101 and 102.</t> colors 101 and 102.</t>
<t>These tunnels will be installed in TRDBs corresponding to <t>These tunnels will be installed in TRDBs corresponding to
transport classes of color 101 and 102.</t> transport classes of colors 101 and 102.</t>
<t>Overlay routes received with a mapping community (e.g.,
<t>Overlay routes received with mapping community (e.g.:
transport-target or color community) can resolve over these transport-target or color community) can resolve over these
tunnels in the TRDB with matching color by using resolution tunnels in the TRDB with matching colors by using resolution
schemes.</t> schemes.</t>
<t>This approach consumes more resources in the transport and <t>This approach consumes more resources in the transport and
forwarding layer, because of the duplicate tunnels.</t> forwarding layer because of the duplicate tunnels.</t>
</section> </section>
<section numbered="true" toc="default" anchor="cust_res_scheme">
<section title="Customized Resolution Schemes Approach"> <name>Customized Resolution Schemes Approach</name>
<t>In this approach, resolution schemes in domains AS1 and AS3 are <t>In this approach, resolution schemes in domains AS1 and AS3 are
customized to map the received mapping community (e.g., customized to map the received mapping community (e.g.,
transport-target or color community) over available Gold SLA transport-target or color community) over available Gold SLA
tunnels. This conserves resource usage with no additional state in tunnels. This conserves resource usage with no additional state in
the transport or forwarding planes.</t> the transport or forwarding planes.</t>
<t>Service routes advertised by PE31 that need to resolve over <t>Service routes advertised by PE31 that need to resolve over
Gold1 transport tunnels carry a mapping community color:0:101. In Gold1 transport tunnels carry a mapping community color:0:101. In
AS3 and AS1, where Gold1 is not available, it is mapped to color AS3 and AS1, where Gold1 is not available, it is mapped to color
100 TRDB using a customized resolution scheme. In AS2, Gold1 is 100 TRDB using a customized resolution scheme. In AS2, Gold1 is
available and it maps to color 101 TRDB.</t> available, and it maps to color 101 TRDB.</t>
<t>Similarly, service routes advertised by PE31 that need to <t>Similarly, service routes advertised by PE31 that need to
resolve over Gold2 transport tunnels carry a mapping community resolve over Gold2 transport tunnels carry a mapping community
color:0:102. In AS3 and AS1, where Gold2 is not available, it is 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 mapped to color 100 TRDB using a customized resolution scheme. In
AS2, Gold2 is available and it maps to color 102 TRDB.</t> AS2, Gold2 is available, and it maps to color 102 TRDB.</t>
<t>To facilitate this, SNs/BNs in all three ASes provision the
<t>To facilitate this, SN/BN in all three AS provision the transport classes 100, 101, and 102. SNs and BNs in AS1 and AS3 are
transport classes 100, 101 and 102. SN and BN in AS1 and AS3 are
provisioned with customized resolution schemes that resolve routes provisioned with customized resolution schemes that resolve routes
with transport-target:0:101 or transport-target:0:102 using color with transport-target:0:101 or transport-target:0:102 using color
100 TRDB.</t> 100 TRDB.</t>
<t>PE31 is provisioned to originate BGP CT routes with color 101
<t>PE31 is provisioned to originate BGP CT route with color 101 for endpoint PE31. This route is sent with an NLRI RD prefix RD1:PE3
for endpoint PE31. This route is sent with NLRI RD prefix RD1:PE31 1
and route target extended community transport-target:0:101.</t> and Route Target extended community transport-target:0:101.</t>
<t>Similarly, PE31 is provisioned to originate BGP CT routes with
<t>Similarly, PE31 is provisioned to originate BGP CT route with color 102 for endpoint PE31. This route is sent with an NLRI RD
color 102 for endpoint PE31. This route is sent with NLRI RD prefix RD2:PE31 and Route Target extended community
prefix RD2:PE31 and route target extended community
transport-target:0:102.</t> transport-target:0:102.</t>
<t>The following description explains the remaining procedures with
<t>Following description explains the remaining procedures with color 101 as an example.</t>
color 101 as example.</t>
<t>At ASBR31, the route target "transport-target:0:101" on this <t>At ASBR31, the route target "transport-target:0:101" on this
BGP CT route instructs to add the route to color 101 TRDB. ASBR31 BGP CT route gives instruction to add the route to color 101 TRDB. A
is provisioned with customized resolution scheme that resolves the SBR31
is provisioned with a customized resolution scheme that resolves the
routes carrying mapping community transport-target:0:101 to routes carrying mapping community transport-target:0:101 to
resolve using color 100 TRDB. This route is then re-advertised resolve using color 100 TRDB. This route is then readvertised
from color 101 TRDB to ASBR22 with route-target:0:101.</t> from color 101 TRDB to ASBR22 with route-target:0:101.</t>
<t>At ASBR22, the BGP CT routes received with <t>At ASBR22, the BGP CT routes received with
transport-target:0:101 will be added to color 101 TRDB and transport-target:0:101 will be added to color 101 TRDB and
strictly resolve over tunnel routes in the same TRDB. This route strictly resolve over tunnel routes in the same TRDB. This route
is re-advertised to ASBR21 with transport-target:0:101.</t> is readvertised to ASBR21 with transport-target:0:101.</t>
<t>Similarly, at ASBR21, the BGP CT routes received with <t>Similarly, at ASBR21, the BGP CT routes received with
transport-target:0:101 will be added to color 101 TRDB and transport-target:0:101 will be added to color 101 TRDB and
strictly resolve over tunnel routes in the same TRDB. This route strictly resolve over tunnel routes in the same TRDB. This route
is re-advertised to ASBR11 with transport-target:0:101.</t> is readvertised to ASBR11 with transport-target:0:101.</t>
<t>At ASBR11, the route target "transport-target:0:101" on this <t>At ASBR11, the route target "transport-target:0:101" on this
BGP CT route instructs to add the route to color 101 TRDB. ASBR11 BGP CT route gives instruction to add the route to color 101 TRDB. A SBR11
is provisioned with a customized resolution scheme that resolves is provisioned with a customized resolution scheme that resolves
the routes carrying transport-target:0:101 to use color 100 TRDB. the routes carrying transport-target:0:101 to use color 100 TRDB.
This route is then re-advertised from color 101 TRDB to PE11 with This route is then readvertised from color 101 TRDB to PE11 with
transport-target:0:101.</t> transport-target:0:101.</t>
<t>At PE11, the route target "transport-target:0:101" on this BGP <t>At PE11, the route target "transport-target:0:101" on this BGP
CT route instructs to add the route to color 101 TRDB. PE11 is CT route gives instruction to add the route to color 101 TRDB. PE11 is
provisioned with a customized resolution scheme that resolves the provisioned with a customized resolution scheme that resolves the
routes carrying transport-target:0:101 to use color 100 TRDB.</t> routes carrying transport-target:0:101 to use color 100 TRDB.</t>
<t>When PE11 receives the service route with the mapping community <t>When PE11 receives the service route with the mapping community
color:0:101 it directly resolves over the BGP CT route in color color:0:101, it directly resolves over the BGP CT route in color
101 TRDB, which in turn resolves over tunnel routes in color 100 101 TRDB, which, in turn, resolves over tunnel routes in color 100
TRDB.</t> TRDB.</t>
<t>Similar processing is done for color 102 routes also at ASBR31, <t>Similar processing is done for color 102 routes also at ASBR31,
ASBR22, ASBR21, ASBR11 and PE11.</t> ASBR22, ASBR21, ASBR11, and PE11.</t>
<t>In doing so, PE11 can forward traffic via tunnels with color <t>In doing so, PE11 can forward traffic via tunnels with color
101, color 102 in the core domain, and color 100 in the metro 101, color 102 in the core domain and color 100 in the metro
domains.</t> domains.</t>
</section> </section>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Migration Scenarios."> <name>Migration Scenarios</name>
<section title="BGP CT Islands Connected via BGP LU Domain"> <section numbered="true" toc="default">
<t>This section explains how end-to-end SLA can be achieved while <name>BGP CT Islands Connected via BGP LU 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 transiting a domain that does not support BGP CT. BGP LU is used in
such domains to connect the BGP CT islands.</t> such domains to connect the BGP CT islands.</t>
<figure anchor="BGPCTIsles">
<figure title="BGP CT in AS1 and AS3 connected by BGP LU in AS2" anchor="BGPCTIs <name>BGP CT in AS1 and AS3 Connected by BGP LU in AS2</name>
les"><artset><artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" versio <artset>
n="1.1" height="176" width="520" viewBox="0 0 520 176" class="diagram" text-anch <artwork type="svg" name="" align="left" alt=""><svg xmlns="http:/
or="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> /www.w3.org/2000/svg" version="1.1" height="176" width="520" viewBox="0 0 520 17
<path d="M 104,32 L 104,64" fill="none" stroke="black"/> 6" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px"
<path d="M 424,32 L 424,64" fill="none" stroke="black"/> stroke-linecap="round">
<path d="M 104,32 L 184,32" fill="none" stroke="black"/> <path d="M 104,32 L 104,64" fill="none" stroke="black"/>
<path d="M 320,32 L 424,32" fill="none" stroke="black"/> <path d="M 424,32 L 424,64" fill="none" stroke="black"/>
<path d="M 48,80 L 80,80" fill="none" stroke="black"/> <path d="M 104,32 L 184,32" fill="none" stroke="black"/>
<path d="M 144,80 L 200,80" fill="none" stroke="black"/> <path d="M 320,32 L 424,32" fill="none" stroke="black"/>
<path d="M 264,80 L 280,80" fill="none" stroke="black"/> <path d="M 48,80 L 80,80" fill="none" stroke="black"/>
<path d="M 344,80 L 392,80" fill="none" stroke="black"/> <path d="M 144,80 L 200,80" fill="none" stroke="black"/>
<path d="M 456,80 L 472,80" fill="none" stroke="black"/> <path d="M 264,80 L 280,80" fill="none" stroke="black"/>
<path d="M 128,112 L 144,112" fill="none" stroke="black"/> <path d="M 344,80 L 392,80" fill="none" stroke="black"/>
<path d="M 208,112 L 224,112" fill="none" stroke="black"/> <path d="M 456,80 L 472,80" fill="none" stroke="black"/>
<path d="M 328,112 L 344,112" fill="none" stroke="black"/> <path d="M 128,112 L 144,112" fill="none" stroke="black"/>
<path d="M 408,112 L 424,112" fill="none" stroke="black"/> <path d="M 208,112 L 224,112" fill="none" stroke="black"/>
<path d="M 24,128 L 40,128" fill="none" stroke="black"/> <path d="M 328,112 L 344,112" fill="none" stroke="black"/>
<path d="M 104,128 L 120,128" fill="none" stroke="black"/> <path d="M 408,112 L 424,112" fill="none" stroke="black"/>
<path d="M 224,128 L 240,128" fill="none" stroke="black"/> <path d="M 24,128 L 40,128" fill="none" stroke="black"/>
<path d="M 304,128 L 320,128" fill="none" stroke="black"/> <path d="M 104,128 L 120,128" fill="none" stroke="black"/>
<path d="M 400,128 L 416,128" fill="none" stroke="black"/> <path d="M 224,128 L 240,128" fill="none" stroke="black"/>
<path d="M 480,128 L 496,128" fill="none" stroke="black"/> <path d="M 304,128 L 320,128" fill="none" stroke="black"/>
<path d="M 120,160 L 184,160" fill="none" stroke="black"/> <path d="M 400,128 L 416,128" fill="none" stroke="black"/>
<path d="M 328,160 L 400,160" fill="none" stroke="black"/> <path d="M 480,128 L 496,128" fill="none" stroke="black"/>
<polygon class="arrowhead" points="504,128 492,122.4 492,133.6" fill="black" tra <path d="M 120,160 L 184,160" fill="none" stroke="black"/>
nsform="rotate(0,496,128)"/> <path d="M 328,160 L 400,160" fill="none" stroke="black"/>
<polygon class="arrowhead" points="432,112 420,106.4 420,117.6" fill="black" tra <polygon class="arrowhead" points="504,128 492,122.4 492,133.6
nsform="rotate(0,424,112)"/> " fill="black" transform="rotate(0,496,128)"/>
<polygon class="arrowhead" points="408,160 396,154.4 396,165.6" fill="black" tra <polygon class="arrowhead" points="432,112 420,106.4 420,117.6
nsform="rotate(0,400,160)"/> " fill="black" transform="rotate(0,424,112)"/>
<polygon class="arrowhead" points="408,128 396,122.4 396,133.6" fill="black" tra <polygon class="arrowhead" points="408,160 396,154.4 396,165.6
nsform="rotate(180,400,128)"/> " fill="black" transform="rotate(0,400,160)"/>
<polygon class="arrowhead" points="336,112 324,106.4 324,117.6" fill="black" tra <polygon class="arrowhead" points="408,128 396,122.4 396,133.6
nsform="rotate(180,328,112)"/> " fill="black" transform="rotate(180,400,128)"/>
<polygon class="arrowhead" points="328,128 316,122.4 316,133.6" fill="black" tra <polygon class="arrowhead" points="336,112 324,106.4 324,117.6
nsform="rotate(0,320,128)"/> " fill="black" transform="rotate(180,328,112)"/>
<polygon class="arrowhead" points="232,128 220,122.4 220,133.6" fill="black" tra <polygon class="arrowhead" points="328,128 316,122.4 316,133.6
nsform="rotate(180,224,128)"/> " fill="black" transform="rotate(0,320,128)"/>
<polygon class="arrowhead" points="232,112 220,106.4 220,117.6" fill="black" tra <polygon class="arrowhead" points="232,128 220,122.4 220,133.6
nsform="rotate(0,224,112)"/> " fill="black" transform="rotate(180,224,128)"/>
<polygon class="arrowhead" points="136,112 124,106.4 124,117.6" fill="black" tra <polygon class="arrowhead" points="232,112 220,106.4 220,117.6
nsform="rotate(180,128,112)"/> " fill="black" transform="rotate(0,224,112)"/>
<polygon class="arrowhead" points="128,128 116,122.4 116,133.6" fill="black" tra <polygon class="arrowhead" points="136,112 124,106.4 124,117.6
nsform="rotate(0,120,128)"/> " fill="black" transform="rotate(180,128,112)"/>
<polygon class="arrowhead" points="32,128 20,122.4 20,133.6" fill="black" transf <polygon class="arrowhead" points="128,128 116,122.4 116,133.6
orm="rotate(180,24,128)"/> " fill="black" transform="rotate(0,120,128)"/>
<g class="text"> <polygon class="arrowhead" points="32,128 20,122.4 20,133.6" f
<text x="204" y="36">EBGP</text> ill="black" transform="rotate(180,24,128)"/>
<text x="260" y="36">Multihop</text> <g class="text">
<text x="308" y="36">CT</text> <text x="204" y="36">EBGP</text>
<text x="64" y="68">AS3</text> <text x="260" y="36">Multihop</text>
<text x="272" y="68">AS2</text> <text x="308" y="36">CT</text>
<text x="464" y="68">AS1</text> <text x="64" y="68">AS3</text>
<text x="24" y="84">[PE31</text> <text x="272" y="68">AS2</text>
<text x="112" y="84">ASBR31]</text> <text x="464" y="68">AS1</text>
<text x="232" y="84">[ASBR22</text> <text x="24" y="84">[PE31</text>
<text x="312" y="84">ASBR21]</text> <text x="112" y="84">ASBR31]</text>
<text x="424" y="84">[ASBR11</text> <text x="232" y="84">[ASBR22</text>
<text x="496" y="84">PE11]</text> <text x="312" y="84">ASBR21]</text>
<text x="164" y="116">EBGP</text> <text x="424" y="84">[ASBR11</text>
<text x="196" y="116">LU</text> <text x="496" y="84">PE11]</text>
<text x="364" y="116">EBGP</text> <text x="164" y="116">EBGP</text>
<text x="396" y="116">LU</text> <text x="196" y="116">LU</text>
<text x="60" y="132">IBGP</text> <text x="364" y="116">EBGP</text>
<text x="92" y="132">CT</text> <text x="396" y="116">LU</text>
<text x="260" y="132">IBGP</text> <text x="60" y="132">IBGP</text>
<text x="292" y="132">LU</text> <text x="92" y="132">CT</text>
<text x="436" y="132">IBGP</text> <text x="260" y="132">IBGP</text>
<text x="468" y="132">CT</text> <text x="292" y="132">LU</text>
<text x="216" y="164">Traffic</text> <text x="436" y="132">IBGP</text>
<text x="288" y="164">Direction</text> <text x="468" y="132">CT</text>
</g> <text x="216" y="164">Traffic</text>
</svg> <text x="288" y="164">Direction</text>
</artwork><artwork type="ascii-art"><![CDATA[ </g>
</svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
+----------EBGP Multihop CT-------------+ +----------EBGP Multihop CT-------------+
| | | |
AS3 | AS2 | AS1 AS3 | AS2 | AS1
[PE31-----ASBR31]--------[ASBR22---ASBR21]-------[ASBR11---PE11] [PE31-----ASBR31]--------[ASBR22---ASBR21]-------[ASBR11---PE11]
<--EBGP LU--> <--EBGP LU--> <--EBGP LU--> <--EBGP LU-->
<--IBGP CT--> <--IBGP LU--> <--IBGP CT--> <--IBGP CT--> <--IBGP LU--> <--IBGP CT-->
---------Traffic Direction---------> ---------Traffic Direction--------->
]]></artwork></artset></figure> ]]></artwork>
</artset>
<t>In the preceding topology shown in <xref target="BGPCTIsles"/>, </figure>
there are three AS domains. AS1 and AS3 support BGP CT, while AS2 <t>In the preceding topology shown in <xref target="BGPCTIsles" format
="default"/>,
there are three AS domains: AS1 and AS3 support BGP CT, while AS2
does not support BGP CT.</t> does not support BGP CT.</t>
<t>Nodes in AS1, AS2, and AS3 negotiate BGP LU family on IBGP <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 sessions within the domain. Nodes in AS1 and AS3 negotiate BGP CT
family on IBGP sessions within the domain. ASBR11 and ASBR21 as well family on IBGP sessions within the domain. ASBR11 and ASBR21 as well
as ASBR22 and ASBR31 negotiate BGP LU family on the EBGP session as ASBR22 and ASBR31 negotiate BGP LU family on the EBGP session
over directly connected inter-domain links. ASBR11 and ASBR31 have over directly connected inter-domain links. ASBR11 and ASBR31 have
reachability to each other&rsquo;s loopbacks through BGP LU. ASBR11 reachability to each other's loopbacks through BGP LU. ASBR11
and ASBR31 negotiate BGP CT family over a multihop EBGP session and ASBR31 negotiate BGP CT family over a multihop EBGP session
formed using BGP LU reachability.</t> formed using BGP LU reachability.</t>
<t>The following tunnels exist for the Gold Transport Class</t>
<t>The following tunnels exist for Gold Transport Class<list> <ul spacing="normal">
<li>
<t>PE11_to_ASBR11_gold - RSVP-TE tunnel</t> <t>PE11_to_ASBR11_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR11_to_PE11_gold - RSVP-TE tunnel</t> <t>ASBR11_to_PE11_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>PE31_to_ASBR31_gold - SRTE tunnel</t> <t>PE31_to_ASBR31_gold - SRTE tunnel</t>
</li>
<li>
<t>ASBR31_to_PE31_gold - SRTE tunnel</t> <t>ASBR31_to_PE31_gold - SRTE tunnel</t>
</list></t> </li>
</ul>
<t>The following tunnels exist for Bronze Transport Class<list> <t>The following tunnels exist for the Bronze Transport Class</t>
<ul spacing="normal">
<li>
<t>PE11_to_ASBR11_bronze - RSVP-TE tunnel</t> <t>PE11_to_ASBR11_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR11_to_PE11_bronze - RSVP-TE tunnel</t> <t>ASBR11_to_PE11_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>PE31_to_ASBR31_bronze - SRTE tunnel</t> <t>PE31_to_ASBR31_bronze - SRTE tunnel</t>
</li>
<li>
<t>ASBR31_to_PE31_bronze - SRTE tunnel</t> <t>ASBR31_to_PE31_bronze - SRTE tunnel</t>
</list></t> </li>
</ul>
<t>These tunnels are provisioned to belong to Transport Classes Gold <t>These tunnels are provisioned to belong to Transport Classes Gold
and Bronze, and are advertised between ASBR31 and ASBR11 with Next and Bronze, and they are advertised between ASBR31 and ASBR11 with the
hop self.</t> next
hop set to themselves.</t>
<t>In AS2, that does not support BGP CT, a separate loopback may be <t>In AS2, which does not support BGP CT, a separate loopback may be
used on ASBR22 and ASBR21 to represent Gold and Bronze SLAs, viz. used on ASBR22 and ASBR21 to represent Gold and Bronze SLAs, namely
ASBR22_lpbk_gold, ASBR22_lpbk_bronze, ASBR21_lpbk_gold and ASBR22_lpbk_gold, ASBR22_lpbk_bronze, ASBR21_lpbk_gold, and
ASBR21_lpbk_bronze.</t> ASBR21_lpbk_bronze.</t>
<t>Furthermore, the following tunnels exist in AS2 to satisfy the <t>Furthermore, the following tunnels exist in AS2 to satisfy the
different SLAs, using per SLA loopback endpoints:<list> different SLAs using per-SLA-loopback endpoints:</t>
<ul spacing="normal">
<li>
<t>ASBR21_to_ASBR22_lpbk_gold - RSVP-TE tunnel</t> <t>ASBR21_to_ASBR22_lpbk_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR22_to_ASBR21_lpbk_gold - RSVP-TE tunnel</t> <t>ASBR22_to_ASBR21_lpbk_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR21_to_ASBR22_lpbk_bronze - RSVP-TE tunnel</t> <t>ASBR21_to_ASBR22_lpbk_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR22_to_ASBR21_lpbk_bronze - RSVP-TE tunnel</t> <t>ASBR22_to_ASBR21_lpbk_bronze - RSVP-TE tunnel</t>
</list></t> </li>
</ul>
<t>RD:PE11 BGP CT route is originated from PE11 towards ASBR11 with <t>The RD:PE11 BGP CT route is originated from PE11 towards ASBR11 wit
transport-target 'gold.' ASBR11 readvertises this route with next h
transport-target 'gold.' ASBR11 readvertises this route with the next
hop set to ASBR11_lpbk_gold on the EBGP multihop session towards hop set to ASBR11_lpbk_gold on the EBGP multihop session towards
ASBR31. ASBR11 originates BGP LU route for endpoint ASBR11_lpbk_gold ASBR31. ASBR11 originates a BGP LU route for endpoint ASBR11_lpbk_gold
on EBGP session to ASBR21 with a 'gold SLA' community, and BGP LU on an EBGP session to ASBR21 with a 'gold SLA' community and a BGP LU
route for ASBR11_lpbk_bronze with a 'bronze SLA' community. The SLA 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 community is used by ASBR31 to publish the BGP LU routes in the
corresponding BGP CT TRDBs.</t> corresponding BGP CT TRDBs.</t>
<t>ASBR21 readvertises the BGP LU route for endpoint <t>ASBR21 readvertises the BGP LU route for endpoint
ASBR11_lpbk_gold to ASBR22 with next hop set by local policy config ASBR11_lpbk_gold to ASBR22 with the next hop set by local policy confi g
to the unique loopback ASBR21_lpbk_gold by matching the 'gold SLA' to the unique loopback ASBR21_lpbk_gold by matching the 'gold SLA'
community received as part of BGP LU advertisement from ASBR11. community received as part of BGP LU advertisement from ASBR11.
ASBR22 receives this route and resolves the next hop over the ASBR22 receives this route and resolves the next hop over the
ASBR22_to_ASBR21_lpbk_gold RSVP-TE tunnel. On successful resolution, ASBR22_to_ASBR21_lpbk_gold RSVP-TE tunnel. On successful resolution,
ASBR22 readvertises this BGP LU route to ASBR31 with next hop self ASBR22 readvertises this BGP LU route to ASBR31 with the next hop set to itself
and a new label.</t> and a new label.</t>
<t>ASBR31 adds the ASBR11_lpbk_gold route received via EBGP LU from <t>ASBR31 adds the ASBR11_lpbk_gold route received via EBGP LU from
ASBR22 to 'gold' TRDB based on the received 'gold SLA' community. ASBR22 to a 'gold' TRDB based on the received 'gold SLA' community.
ASBR31 uses this 'gold' TRDB route to resolve the next hop ASBR31 uses this 'gold' TRDB route to resolve the next hop
ASBR11_lpbk_gold received on BGP CT route with transport-target ASBR11_lpbk_gold received on the BGP CT route with transport-target
'gold,' for the prefix RD:PE11 received over the EBGP multihop CT 'gold,' for the prefix RD:PE11 received over the EBGP multihop CT
session, thus preserving the end-to-end SLA. Now ASBR31 readvertises session, thus preserving the end-to-end SLA. Now ASBR31 readvertises
the BGP CT route for RD:PE11 with next hop as self thus stitching the BGP CT route for RD:PE11 with the next hop set to itself, thus sti tching
with the BGP LU LSP in AS2. Intra-domain traffic forwarding in AS1 with the BGP LU LSP in AS2. Intra-domain traffic forwarding in AS1
and AS3 follows the procedures as explained in <xref and AS3 follows the procedures as explained in <xref target="CTProc" f
target="CTProc">Illustration of CT Procedures</xref></t> ormat="default"></xref>.</t>
<t>In cases where an SLA cannot be preserved in AS2 because SLA-specif
<t>In cases where an SLA cannot be preserved in AS2 because SLA ic
specific tunnels and loopbacks don't exist in AS2, traffic can be tunnels and loopbacks don't exist in AS2, traffic can be
carried over available SLAs (e.g.: best effort SLA) by rewriting the carried over available SLAs (e.g., best-effort SLA) by rewriting the
next hop to ASBR21 loopback assigned to the available SLA. This next hop to an ASBR21 loopback assigned to the available SLA. This
eases migration in case of heterogeneous color domains as-well.</t> eases migration in case of a heterogeneous color domain as well.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="BGP CT - Interoperability between MPLS and Other Forward <name>BGP CT: Interoperability Between MPLS and Other Forwarding Techn
ing Technologies "> ologies</name>
<t>This section describes how nodes supporting dissimilar <t>This section describes how nodes supporting dissimilar
encapsulation technologies can interoperate with each other when encapsulation technologies can interoperate when
using BGP CT family.</t> using the BGP CT family.</t>
<section numbered="true" toc="default">
<section title="Interop Between MPLS and SRv6 Nodes."> <name>Interoperation Between MPLS and SRv6 Nodes</name>
<t>BGP speakers may carry MPLS label and SRv6 SID in BGP CT SAFI <t>BGP speakers may carry MPLS labels and SRv6 SIDs in BGP CT SAFI
76 for AFIs 1 or 2 routes using protocol encoding as described in 76 for AFI 1 or 2 routes using protocol encoding as described in
<xref target="CTMultiEncap">Carrying Multiple Encapsulation <xref target="CTMultiEncap" format="default"></xref>.</t>
information</xref></t> <t>MPLS Labels are carried using the encoding described in <xref tar
get="RFC8277"/>, and SRv6 SIDs
<t>MPLS Labels are carried using RFC 8277 encoding, and SRv6 SID are carried using the Prefix SID attribute as specified in <xref tar
is carried using Prefix SID attribute as specified in <xref get="SRv6-Support" format="default"/>.</t>
target="SRv6-Support"/>.</t> <figure anchor="BGPCT_MPLS_SRV6">
<name>BGP CT Interoperation Between MPLS and SRv6 Nodes</name>
<figure title="BGP CT Interop between MPLS and SRv6 nodes" anchor="BGPCT_MPLS_SR <artset>
V6"><artset><artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version <artwork type="svg" name="" align="left" alt=""><svg xmlns="http
="1.1" height="176" width="336" viewBox="0 0 336 176" class="diagram" text-ancho ://www.w3.org/2000/svg" version="1.1" height="176" width="336" viewBox="0 0 336
r="middle" font-family="monospace" font-size="13px" stroke-linecap="round"> 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13p
<path d="M 136,48 L 136,64" fill="none" stroke="black"/> x" stroke-linecap="round">
<path d="M 136,96 L 136,112" fill="none" stroke="black"/> <path d="M 136,48 L 136,64" fill="none" stroke="black"/>
<path d="M 80,32 L 104,32" fill="none" stroke="black"/> <path d="M 136,96 L 136,112" fill="none" stroke="black"/>
<path d="M 136,48 L 192,48" fill="none" stroke="black"/> <path d="M 80,32 L 104,32" fill="none" stroke="black"/>
<path d="M 72,80 L 128,80" fill="none" stroke="black"/> <path d="M 136,48 L 192,48" fill="none" stroke="black"/>
<path d="M 144,80 L 192,80" fill="none" stroke="black"/> <path d="M 72,80 L 128,80" fill="none" stroke="black"/>
<path d="M 136,112 L 192,112" fill="none" stroke="black"/> <path d="M 144,80 L 192,80" fill="none" stroke="black"/>
<path d="M 24,144 L 56,144" fill="none" stroke="black"/> <path d="M 136,112 L 192,112" fill="none" stroke="black"/>
<path d="M 248,144 L 288,144" fill="none" stroke="black"/> <path d="M 24,144 L 56,144" fill="none" stroke="black"/>
<path d="M 104,32 L 124,72" fill="none" stroke="black"/> <path d="M 248,144 L 288,144" fill="none" stroke="black"/>
<polygon class="arrowhead" points="296,144 284,138.4 284,149.6" fill="black" tra <path d="M 104,32 L 124,72" fill="none" stroke="black"/>
nsform="rotate(0,288,144)"/> <polygon class="arrowhead" points="296,144 284,138.4 284,149
<polygon class="arrowhead" points="32,144 20,138.4 20,149.6" fill="black" transf .6" fill="black" transform="rotate(0,288,144)"/>
orm="rotate(180,24,144)"/> <polygon class="arrowhead" points="32,144 20,138.4 20,149.6"
<g class="text"> fill="black" transform="rotate(180,24,144)"/>
<text x="64" y="36">RR1</text> <g class="text">
<text x="204" y="52">R2</text> <text x="64" y="36">RR1</text>
<text x="248" y="52">[MPLS</text> <text x="204" y="52">R2</text>
<text x="280" y="52">+</text> <text x="248" y="52">[MPLS</text>
<text x="312" y="52">SRv6]</text> <text x="280" y="52">+</text>
<text x="60" y="84">R1</text> <text x="312" y="52">SRv6]</text>
<text x="136" y="84">P</text> <text x="60" y="84">R1</text>
<text x="204" y="84">R3</text> <text x="136" y="84">P</text>
<text x="248" y="84">[MPLS</text> <text x="204" y="84">R3</text>
<text x="296" y="84">only]</text> <text x="248" y="84">[MPLS</text>
<text x="24" y="100">[MPLS</text> <text x="296" y="84">only]</text>
<text x="56" y="100">+</text> <text x="24" y="100">[MPLS</text>
<text x="88" y="100">SRv6]</text> <text x="56" y="100">+</text>
<text x="204" y="116">R4</text> <text x="88" y="100">SRv6]</text>
<text x="248" y="116">[SRv6</text> <text x="204" y="116">R4</text>
<text x="296" y="116">only]</text> <text x="248" y="116">[SRv6</text>
<text x="120" y="148">Bidirectional</text> <text x="296" y="116">only]</text>
<text x="208" y="148">Traffic</text> <text x="120" y="148">Bidirectional</text>
</g> <text x="208" y="148">Traffic</text>
</svg> </g>
</artwork><artwork type="ascii-art"><![CDATA[ </svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
RR1---+ RR1---+
\ +-------R2 [MPLS + SRv6] \ +-------R2 [MPLS + SRv6]
\ | \ |
R1--------P-------R3 [MPLS only] R1--------P-------R3 [MPLS only]
[MPLS + SRv6] | [MPLS + SRv6] |
+-------R4 [SRv6 only] +-------R4 [SRv6 only]
<---- Bidirectional Traffic -----> <---- Bidirectional Traffic ----->
]]></artwork></artset></figure> ]]></artwork>
</artset>
</figure>
<t>This example shows a provider network with a mix of devices <t>This example shows a provider network with a mix of devices
with different forwarding capabilities. R1 and R2 support that have different forwarding capabilities. R1 and R2 support
forwarding both MPLS and SRv6 packets. R3 supports forwarding MPLS forwarding both MPLS and SRv6 packets. R3 supports forwarding MPLS
packets only. R4 supports forwarding SRv6 packets only. All these packets only. R4 supports forwarding SRv6 packets only. All these
nodes have BGP session with Route Reflector RR1 which reflects nodes have a BGP session with Route Reflector RR1, which reflects
routes between these nodes with next hop unchanged. BGP CT family routes between these nodes with the next hop unchanged. The BGP CT f
amily
is negotiated on these sessions.</t> is negotiated on these sessions.</t>
<t>R1 and R2 send and receive both MPLS labels and SRv6 SIDs in the
<t>R1 and R2 send and receive both MPLS label and SRv6 SID in the
BGP CT control plane routes. This allows them to be ingress and BGP CT control plane routes. This allows them to be ingress and
egress for both MPLS and SRv6 data planes. MPLS label is carried egress for both MPLS and SRv6 data planes. The MPLS label is carried
using RFC 8277 encoding, and SRv6 SID is carried using Prefix SID using the encoding described in <xref target="RFC8277"/>, and an SRv
attribute as specified in <xref target="SRv6-Support"/>, without 6 SID is carried using the Prefix SID
attribute as specified in <xref target="SRv6-Support" format="defaul
t"/> without the
Transposition Scheme. In this way, either MPLS or SRv6 forwarding Transposition Scheme. In this way, either MPLS or SRv6 forwarding
can be used between R1 and R2.</t> can be used between R1 and R2.</t>
<t>R1 and R3 send and receive an MPLS label in the BGP CT control
<t>R1 and R3 send and receive MPLS label in the BGP CT control plane routes using the encoding described in <xref target="RFC8277"/
plane routes using RFC 8277 encoding. This allows them to be >. This allows them to be
ingress and egress for MPLS data plane. R1 will carry SRv6 SID in ingress and egress for MPLS data plane. R1 will carry an SRv6 SID in
Prefix-SID attribute, which will not be used by R3. In order to the Prefix SID attribute, which will not be used by R3. In order to
interoperate with MPLS only device R3, R1 MUST NOT use SRv6 interoperate with MPLS-only device R3, R1 <bcp14>MUST NOT</bcp14> us
Transposition scheme described in <xref target="RFC9252"/>. The e the SRv6
encoding suggested in <xref target="SRv6-Support"/> is used by R1. Transposition scheme described in <xref target="RFC9252" format="def
ault"/>. The
encoding suggested in <xref target="SRv6-Support" format="default"/>
is used by R1.
MPLS forwarding will be used between R1 and R3.</t> MPLS forwarding will be used between R1 and R3.</t>
<t>R1 and R4 send and receive SRv6 SIDs in the BGP CT control plane
<t>R1 and R4 send and receive SRv6 SID in the BGP CT control plane routes using the BGP Prefix SID attribute, without a Transposition
routes using BGP Prefix-SID attribute, without Transposition Scheme. This allows them to be ingress and egress for the SRv6 data
Scheme. This allows them to be ingress and egress for SRv6 data plane. R4 will carry the special MPLS label with a value of 3
plane. R4 will carry the special MPLS Label with value 3 (Implicit-NULL) in the encoding described in <xref target="RFC8277"/
(Implicit-NULL) in RFC 8277 encoding, which tells R1 not to push >, which tells R1 not to push
any MPLS label for this BGP CT route towards R4. The MPLS Label any MPLS label for this BGP CT route towards R4. The MPLS label
advertised by R1 in RFC 8277 NLRI will not be used by R4. SRv6 advertised by R1 in an NLRI as described in <xref target="RFC8277"/>
will not be used by R4. SRv6
forwarding will be used between R1 and R4.</t> forwarding will be used between R1 and R4.</t>
<t>Note that, in this example, R3 and R4 cannot communicate directly
<t>Note in this example that R3 and R4 cannot communicate directly with each other because they don't support a common forwarding
with each other, because they don't support a common forwarding technology. The BGP CT routes received at R3 and R4 from each other
technology. The BGP CT routes received at R3, R4 from each other will remain unusable due to incompatible forwarding
will remain unusable, due to incompatible forwarding
technology.</t> technology.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Interop Between Nodes Supporting MPLS and UDP Tunnelin <name>Interop Between Nodes Supporting MPLS and UDP Tunneling</name>
g">
<t>This section describes how nodes supporting MPLS forwarding can <t>This section describes how nodes supporting MPLS forwarding can
interoperate with other nodes supporting UDP (or IP) tunneling, interoperate with other nodes supporting UDP (or IP) tunneling
when using BGP CT family.</t> when using BGP CT family.</t>
<t>MPLS Labels are carried using the encoding described in <xref tar
<t>MPLS Labels are carried using RFC 8277 encoding, and UDP (or get="RFC8277"/>, and UDP (or
IP) tunneling information is carried using TEA attribute or the IP) tunneling information is carried using the TEA attribute or the
Encapsulation Extended Community as specified in <xref Encapsulation Extended Community as specified in <xref target="RFC90
target="RFC9012"/>.</t> 12" format="default"/>.</t>
<figure anchor="BGPCT_MPLS_UDP">
<figure title="BGP CT Interop between MPLS and UDP tunneling nodes" anchor="BGPC <name>BGP CT Interop Between MPLS and UDP Tunneling Nodes</name>
T_MPLS_UDP"><artset><artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" <artset>
version="1.1" height="176" width="328" viewBox="0 0 328 176" class="diagram" te <artwork type="svg" name="" align="left" alt=""><svg xmlns="http
xt-anchor="middle" font-family="monospace" font-size="13px" stroke-linecap="roun ://www.w3.org/2000/svg" version="1.1" height="176" width="328" viewBox="0 0 328
d"> 176" class="diagram" text-anchor="middle" font-family="monospace" font-size="13p
<path d="M 136,48 L 136,64" fill="none" stroke="black"/> x" stroke-linecap="round">
<path d="M 136,96 L 136,112" fill="none" stroke="black"/> <path d="M 136,48 L 136,64" fill="none" stroke="black"/>
<path d="M 80,32 L 104,32" fill="none" stroke="black"/> <path d="M 136,96 L 136,112" fill="none" stroke="black"/>
<path d="M 136,48 L 192,48" fill="none" stroke="black"/> <path d="M 80,32 L 104,32" fill="none" stroke="black"/>
<path d="M 72,80 L 128,80" fill="none" stroke="black"/> <path d="M 136,48 L 192,48" fill="none" stroke="black"/>
<path d="M 144,80 L 192,80" fill="none" stroke="black"/> <path d="M 72,80 L 128,80" fill="none" stroke="black"/>
<path d="M 136,112 L 192,112" fill="none" stroke="black"/> <path d="M 144,80 L 192,80" fill="none" stroke="black"/>
<path d="M 24,144 L 56,144" fill="none" stroke="black"/> <path d="M 136,112 L 192,112" fill="none" stroke="black"/>
<path d="M 248,144 L 288,144" fill="none" stroke="black"/> <path d="M 24,144 L 56,144" fill="none" stroke="black"/>
<path d="M 104,32 L 124,72" fill="none" stroke="black"/> <path d="M 248,144 L 288,144" fill="none" stroke="black"/>
<polygon class="arrowhead" points="296,144 284,138.4 284,149.6" fill="black" tra <path d="M 104,32 L 124,72" fill="none" stroke="black"/>
nsform="rotate(0,288,144)"/> <polygon class="arrowhead" points="296,144 284,138.4 284,149
<polygon class="arrowhead" points="32,144 20,138.4 20,149.6" fill="black" transf .6" fill="black" transform="rotate(0,288,144)"/>
orm="rotate(180,24,144)"/> <polygon class="arrowhead" points="32,144 20,138.4 20,149.6"
<g class="text"> fill="black" transform="rotate(180,24,144)"/>
<text x="64" y="36">RR1</text> <g class="text">
<text x="204" y="52">R2</text> <text x="64" y="36">RR1</text>
<text x="248" y="52">[MPLS</text> <text x="204" y="52">R2</text>
<text x="280" y="52">+</text> <text x="248" y="52">[MPLS</text>
<text x="308" y="52">UDP]</text> <text x="280" y="52">+</text>
<text x="60" y="84">R1</text> <text x="308" y="52">UDP]</text>
<text x="136" y="84">P</text> <text x="60" y="84">R1</text>
<text x="204" y="84">R3</text> <text x="136" y="84">P</text>
<text x="248" y="84">[MPLS</text> <text x="204" y="84">R3</text>
<text x="296" y="84">only]</text> <text x="248" y="84">[MPLS</text>
<text x="24" y="100">[MPLS</text> <text x="296" y="84">only]</text>
<text x="56" y="100">+</text> <text x="24" y="100">[MPLS</text>
<text x="84" y="100">UDP]</text> <text x="56" y="100">+</text>
<text x="204" y="116">R4</text> <text x="84" y="100">UDP]</text>
<text x="244" y="116">[UDP</text> <text x="204" y="116">R4</text>
<text x="288" y="116">only]</text> <text x="244" y="116">[UDP</text>
<text x="120" y="148">Bidirectional</text> <text x="288" y="116">only]</text>
<text x="208" y="148">Traffic</text> <text x="120" y="148">Bidirectional</text>
</g> <text x="208" y="148">Traffic</text>
</svg> </g>
</artwork><artwork type="ascii-art"><![CDATA[ </svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
RR1---+ RR1---+
\ +-------R2 [MPLS + UDP] \ +-------R2 [MPLS + UDP]
\ | \ |
R1--------P-------R3 [MPLS only] R1--------P-------R3 [MPLS only]
[MPLS + UDP] | [MPLS + UDP] |
+-------R4 [UDP only] +-------R4 [UDP only]
<---- Bidirectional Traffic -----> <---- Bidirectional Traffic ----->
]]></artwork></artset></figure> ]]></artwork>
</artset>
</figure>
<t>In this example, R1 and R2 support forwarding both MPLS and UDP <t>In this example, R1 and R2 support forwarding both MPLS and UDP
tunneled packets. R3 supports forwarding MPLS packets only. R4 tunneled packets. R3 supports forwarding MPLS packets only. R4
supports forwarding UDP tunneled packets only. All these nodes supports forwarding UDP tunneled packets only. All these nodes
have BGP session with Route Reflector RR1 which reflects routes have BGP session with Route Reflector RR1, which reflects routes
between these nodes with next hop unchanged. BGP CT family is between these nodes with the next hop unchanged. The BGP CT family i
s
negotiated on these sessions.</t> negotiated on these sessions.</t>
<t>R1 and R2 send and receive both MPLS labels and UDP tunneling
<t>R1 and R2 send and receive both MPLS label and UDP tunneling
info in the BGP CT control plane routes. This allows them to be info in the BGP CT control plane routes. This allows them to be
ingress and egress for both MPLS and UDP tunneling data planes. ingress and egress for both MPLS and UDP tunneling data planes.
MPLS label is carried using RFC 8277 encoding. As specified in The MPLS label is carried using the encoding described in <xref targ
<xref target="RFC9012"/>, UDP tunneling information is carried et="RFC8277"/>. As specified in
using TEA attribute (code 23) or the "barebones" Tunnel TLV <xref target="RFC9012" format="default"/>, UDP tunneling information
is carried
using the Tunnel Encapsulation Attribute (code 23) or the "barebones
" Tunnel TLV
carried in Encapsulation Extended Community. Either MPLS or UDP carried in Encapsulation Extended Community. Either MPLS or UDP
tunneled forwarding can be used between R1 and R2.</t> tunnel forwarding can be used between R1 and R2.</t>
<t>R1 and R3 send and receive MPLS labels in the BGP CT control
<t>R1 and R3 send and receive MPLS label in the BGP CT control plane routes using the encoding described in <xref target="RFC8277"/
plane routes using RFC 8277 encoding. This allows them to be >. This allows them to be
ingress and egress for MPLS data plane. R1 will carry UDP ingress and egress for MPLS data plane. R1 will carry UDP
tunneling info in TEA attribute, which will not be used by R3. tunneling info in the TEA, which will not be used by R3.
MPLS forwarding will be used between R1 and R3.</t> MPLS forwarding will be used between R1 and R3.</t>
<t>R1 and R4 send and receive UDP tunneling info in the BGP CT <t>R1 and R4 send and receive UDP tunneling info in the BGP CT
control plane routes using BGP TEA attribute. This allows them to control plane routes using the BGP TEA. This allows them to
be ingress and egress for UDP tunneled data plane. R4 will carry be ingress and egress for UDP tunneled data plane. R4 will carry
special MPLS Label with value 3 (Implicit-NULL) in RFC 8277 special MPLS Label with value 3 (Implicit-NULL) in the encoding desc
encoding, which tells R1 not to push any MPLS label for this BGP ribed 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 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 used by R4. UDP tunneled forwarding will be used between R1 and
R4.</t> R4.</t>
<t>Note that, in this example, R3 and R4 cannot communicate
<t>Note in this example that R3 and R4 cannot communicate directly with each other because they don't support a common
directly with each other, because they don't support a common forwarding technology. The BGP CT routes received at R3 and R4
forwarding technology. The BGP CT routes received at R3, R4 from each other will remain unusable due to incompatible
from each other will remain unusable, due to incompatible
forwarding technology.</t> forwarding technology.</t>
</section> </section>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="MTU Considerations"> <name>MTU Considerations</name>
<t>Operators should coordinate the MTU of the intra-domain tunnels <t>Operators should coordinate the MTU of the intra-domain tunnels
used to prevent Path MTU discovery problems that could appear in used to prevent Path MTU discovery problems that could appear in
deployments. The encapsulation overhead due to the MPLS label stack or deployments. The encapsulation overhead due to the MPLS label stack or
equivalent tunnel header in different forwarding architecture should equivalent tunnel header in different forwarding architecture should
also be considered when determining the Path MTU of the end-to-end BGP also be considered when determining the Path MTU of the end-to-end BGP
CT tunnel.</t> CT tunnel.</t>
<t><xref target="I-D.ietf-intarea-tunnels" format="default"/> discusses
<t>The document <xref target="INTAREA-TUNNELS"/> discusses these these
considerations in more detail.</t> considerations in more detail.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Use of DSCP"> <name>Use of DSCP</name>
<t>BGP CT specifies procedures for Intent Driven Service Mapping in a <t>BGP CT specifies procedures for Intent-Driven Service Mapping in a
service provider network, and defines 'Transport Class' construct to service provider network and defines the 'Transport Class' construct to
represent an Intent.</t> represent an Intent.</t>
<t>It may be desirable to allow a CE device to indicate in the data <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 packet it sends what treatment it desires (the Intent) when the packet
is forwarded within the provider network.</t> is forwarded within the provider network.</t>
<t>Such an indication can be in form of DSCP code point <xref <t>Such an indication can be in the form of a DSCP (see <xref target="RF
target="RFC2474"/> in the IP header.</t> C2474" format="default"/>) in the IP header.</t>
<t>In <xref target="RFC2474"/>, a Forwarding Class Selector maps to a PH
<t>In RFC2474, a Forwarding Class Selector maps to a PHB (Per-hop B (Per-hop
Behavior). The Transport Class construct is a PHB at transport Behavior). The Transport Class construct is a PHB at the transport
layer.</t> layer.</t>
<figure anchor="Intent_PE_CE">
<figure title="Example Topology with DSCP on PE-CE Links" anchor="Intent_PE_CE"> <name>Example Topology with DSCP on PE-CE Links</name>
<artset><artwork type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1. <artset>
1" height="128" width="432" viewBox="0 0 432 128" class="diagram" text-anchor="m <artwork type="svg" name="" align="left" alt=""><svg xmlns="http://w
iddle" font-family="monospace" font-size="13px" stroke-linecap="round"> ww.w3.org/2000/svg" version="1.1" height="128" width="432" viewBox="0 0 432 128"
<path d="M 152,32 L 176,32" fill="none" stroke="black"/> class="diagram" text-anchor="middle" font-family="monospace" font-size="13px" s
<path d="M 216,32 L 256,32" fill="none" stroke="black"/> troke-linecap="round">
<path d="M 96,48 L 128,48" fill="none" stroke="black"/> <path d="M 152,32 L 176,32" fill="none" stroke="black"/>
<path d="M 176,48 L 192,48" fill="none" stroke="black"/> <path d="M 216,32 L 256,32" fill="none" stroke="black"/>
<path d="M 224,48 L 248,48" fill="none" stroke="black"/> <path d="M 96,48 L 128,48" fill="none" stroke="black"/>
<path d="M 296,48 L 328,48" fill="none" stroke="black"/> <path d="M 176,48 L 192,48" fill="none" stroke="black"/>
<path d="M 152,64 L 168,64" fill="none" stroke="black"/> <path d="M 224,48 L 248,48" fill="none" stroke="black"/>
<path d="M 224,64 L 256,64" fill="none" stroke="black"/> <path d="M 296,48 L 328,48" fill="none" stroke="black"/>
<path d="M 96,96 L 128,96" fill="none" stroke="black"/> <path d="M 152,64 L 168,64" fill="none" stroke="black"/>
<path d="M 272,96 L 304,96" fill="none" stroke="black"/> <path d="M 224,64 L 256,64" fill="none" stroke="black"/>
<polygon class="arrowhead" points="312,96 300,90.4 300,101.6" fill="black" trans <path d="M 96,96 L 128,96" fill="none" stroke="black"/>
form="rotate(0,304,96)"/> <path d="M 272,96 L 304,96" fill="none" stroke="black"/>
<polygon class="arrowhead" points="264,64 252,58.4 252,69.6" fill="black" transf <polygon class="arrowhead" points="312,96 300,90.4 300,101.6" fi
orm="rotate(0,256,64)"/> ll="black" transform="rotate(0,304,96)"/>
<polygon class="arrowhead" points="264,32 252,26.4 252,37.6" fill="black" transf <polygon class="arrowhead" points="264,64 252,58.4 252,69.6" fil
orm="rotate(0,256,32)"/> l="black" transform="rotate(0,256,64)"/>
<g class="text"> <polygon class="arrowhead" points="264,32 252,26.4 252,37.6" fil
<text x="196" y="36">Gold</text> l="black" transform="rotate(0,256,32)"/>
<text x="72" y="52">[CE1]</text> <g class="text">
<text x="152" y="52">[PE1]</text> <text x="196" y="36">Gold</text>
<text x="208" y="52">[P]</text> <text x="72" y="52">[CE1]</text>
<text x="272" y="52">[PE2]</text> <text x="152" y="52">[PE1]</text>
<text x="352" y="52">[CE2]</text> <text x="208" y="52">[P]</text>
<text x="196" y="68">Bronze</text> <text x="272" y="52">[PE2]</text>
<text x="52" y="84">203.0.113.11</text> <text x="352" y="52">[CE2]</text>
<text x="380" y="84">203.0.113.22</text> <text x="196" y="68">Bronze</text>
<text x="160" y="100">Traffic</text> <text x="52" y="84">203.0.113.11</text>
<text x="232" y="100">direction</text> <text x="380" y="84">203.0.113.22</text>
</g> <text x="160" y="100">Traffic</text>
</svg> <text x="232" y="100">direction</text>
</artwork><artwork type="ascii-art"><![CDATA[ </g>
</svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
----Gold-----> ----Gold----->
[CE1]-----[PE1]---[P]----[PE2]-----[CE2] [CE1]-----[PE1]---[P]----[PE2]-----[CE2]
---Bronze----> ---Bronze---->
203.0.113.11 203.0.113.22 203.0.113.11 203.0.113.22
-----Traffic direction----> -----Traffic direction---->
]]></artwork></artset></figure> ]]></artwork>
</artset>
<t>Let PE1 be configured to map DSCP1 to Gold Transport class, and </figure>
DSCP2 to Bronze Transport class. Based on the DSCP code point received <t>Let PE1 be configured to map DSCP1 to the Gold Transport class and
on the IP traffic from CE device, PE1 forwards the IP packet over a DSCP2 to the Bronze Transport class. Based on the DSCP received
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 Gold or Bronze TC tunnel. Thus, the forwarding is not based on just
the destination IP address, but also the DSCP code point. This is the destination IP address but also the DSCP. This is
known as Class Based Forwarding (CBF).</t> known as Class-Based Forwarding (CBF).</t>
<t>CBF is configured at the PE1 device, mapping the DSCP values to <t>CBF is configured at the PE1 device, mapping the DSCP values to
respective Transport Classes. This mapping (DSCP peering agreement) is respective Transport Classes. This mapping (DSCP peering agreement) is
communicated to CE device by out of band mechanisms. This allows the communicated to CE devices by out-of-band mechanisms. This allows the
administrator of CE1 to discover what transport classes exist in the administrator of CE1 to discover what transport classes exist in the
provider network, and which DSCP codepoint to encode so that traffic provider network and which DSCP to encode so that traffic
is forwarded using the desired Transport Class in the provided is forwarded using the desired Transport Class in the provided
network. When the IP packet exits the provider network to CE2, PE2 network. When the IP packet exits the provider network to CE2, PE2
resets the DSCP code point based on DSCP peering agreement with resets the DSCP based on the DSCP peering agreement with
CE2.</t> CE2.</t>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Applicability to Network Slicing"> <name>Applicability to Network Slicing</name>
<t>In Network Slicing, the Network Slice Controller (IETF NSC) is <t>In Network Slicing, the IETF Network Slice Controller (NSC) is
responsible for customizing and setting up the underlying transport responsible for customizing and setting up the underlying transport
(e.g. RSVP-TE, SRTE tunnels with desired characteristics) and resources (e.g., RSVP-TE, SRTE tunnels with desired characteristics) and resources
(e.g., polices/shapers) in a transport network to create an IETF Network (e.g., policies/shapers) in a transport network to create an IETF Network
Slice.</t> Slice.</t>
<t>The Transport Class construct described in this document can be used <t>The Transport Class construct described in this document can be used
to realize the "IETF Network Slice" described in Section 4 of <xref to realize the "IETF Network Slice" described in <xref target="RFC9543" se
target="RFC9543"/></t> ctionFormat="of" section="4"/>.</t>
<t>The NSC can use the Transport Class Identifier (Color value) to <t>The NSC can use the Transport Class Identifier (Color value) to
provision a transport tunnel in a specific IETF Network Slice.</t> provision a transport tunnel in a specific IETF Network Slice.</t>
<t>Furthermore, the NSC can use the Mapping Community on the service <t>Furthermore, the NSC can use the Mapping Community on the service
route to map traffic to the desired IETF Network Slice.</t> route to map traffic to the desired IETF Network Slice.</t>
</section> </section>
<section anchor="IANA" numbered="true" toc="default">
<section anchor="IANA" title="IANA Considerations"> <!--[rfced] We had the following questions related to the IANA
<t>This document makes the following requests of IANA.</t> Considerations section:
<section title="New BGP SAFI">
<t>IANA has assigned a BGP SAFI code for "Classful Transport". Value
76. IANA is requested to update the reference to this document.</t>
<figure> a) We would like to make sure we understand the structure of the IANA
<artwork> Considerations section. Currently, we see:
Registry Group: Subsequent Address Family Identifiers (SAFI) Parameters
Registry Name: SAFI Values 13.1 and 13.2 - seem to add values to existing registries with some
duplication to later sections (see question c below)
Value Description 13.2.1-13.2.1.1.2 - all under a heading of "Existing Registries"
-------------+--------------------------
76 Classful Transport SAFI
</artwork>
</figure>
<t>This will be used to create new AFI,SAFI pairs for IPv4, IPv6 13.2.2 - 13.2.2 All under a heading of "New Registries"
Classful Transport families. viz:</t>
<t><list style="symbols"> 13.3 - Adds two code points to an existing registry
<t>"IPv4, Classful Transport". AFI/SAFI = "1/76" for carrying IPv4
Classful Transport prefixes.</t>
<t>"IPv6, Classful Transport". AFI/SAFI = "2/76" for carrying IPv6 Perhaps we could update to something structured along the lines of
Classful Transport prefixes.</t> updates to existing registries and creation of new ones?
</list></t>
</section>
<section title="New Format for BGP Extended Community"> 13. IANA Considerations
<t>IANA has assigned a Format type (Type high = 0xa) of Extended 13.1. Existing Registries
Community <xref target="RFC4360">EXT-COMM</xref> for Transport Class 13.1.1. New BGP SAFI
from the following registries:<list> 13.1.2. New Format for BGP Extended Community
<t>the "BGP Transitive Extended Community Types" registry, and</t> 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
<t>the "BGP Non-Transitive Extended Community Types" registry.</t> With something like the following text in Section 13 itself to
</list></t> introduce the actions:
<t>The same low-order six bits have been assigned for both This document registers values in existing registries and creates new
allocations.</t> registries as described in the following subsections.
<t>IANA is requested to update the reference to this document.</t> NOTE: Please review our question c) below before responding.
<t>This document uses this new Format with subtype 0x2 (route target), Please let us know if this restructuring would be agreeable.
as a transitive extended community. The Route Target thus formed is
called "Transport Class" route target extended community.</t>
<t>The Non-Transitive Transport Class Extended community with subtype b) Please note that we have updated the capitalization (to lowercase)
0x2 (route target) is called the "Non-Transitive Transport Class route of the values in Tables 4 and 6 to match the use in the corresponding
target extended community".</t> IANA registries. Please review and let us know any objections.
<t>Taking reference of <xref target="RFC7153"/> , the following c) Section 13.2 made us expect that 0xa would be registered in both
assignments have been made:</t> the "BGP Transitive Extended Community Types" registry and the "BGP
Non-Transitive Extended Community Types" registry.
<section title="Existing Registries"> However, we do not see a registration of 0xa in the "BGP
<section title="Registries for the &quot;Type&quot; Field"> Non-Transitive Extended Community Types" registry at
<section anchor="tc-rt-t" title="Transitive Types"> https://www.iana.org/assignments/bgp-extended-communities/bgp-extended-communiti
<t>This registry contains values of the high-order octet (the es.xhtml#non-transitive.
"Type" field) of a Transitive Extended Community.<figure>
<artwork>Registry Group: Border Gateway Protocol (BGP) Extende
d Communities
Registry Name: BGP Transitive Extended Community Types We do see an entry for "0x4a" for "Non-Transitive Transport Class",
that is mentioned in the current Section 13.2.1.1.2.
Type Value Name 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
0x0a Transport Class we are just missing something on our end?).
(Sub-Types are defined in the d) Section 13.2 says:
"Transitive Transport Class Extended Community Sub-Types"
registry) </artwork>
</figure></t>
</section>
<section anchor="tc-rt-nt" title="Non-Transitive Types"> Taking reference of [RFC7153] , the following assignments have been
<t>This registry contains values of the high-order octet (the made:
"Type" field) of a Non-transitive Extended Community.<figure>
<artwork> Registry Group: Border Gateway Protocol (BGP) Extend
ed Communities
Registry Name: BGP Non-Transitive Extended Community Types As none of the new entries in the registries list RFC 7153 as a
reference themselves, should this text instead read:
Type Value Name The registries below each reference RFC 7153.
--------------+--------------------------------
0x4a Non-Transitive Transport Class
(Sub-Types are defined in the Or is there another way to rephrase?
"Non-Transitive Transport Class Extended Community Sub-Types"
registry)
</artwork>
</figure></t>
</section>
</section>
</section>
<section title="New Registries"> e) FYI - Any updates made to text that appears in IANA registries will
<section title="Transitive Transport Class Extended Community Sub-Type be communicated by the RPC to IANA upon the completion of AUTH48.
s Registry">
<t>IANA is requested to add the following subregistry under the
&ldquo;Border Gateway Protocol (BGP) Extended
Communities&rdquo;:</t>
<figure> -->
<artwork> Registry Group: Border Gateway Protocol (BGP) Extended C
ommunities
Registry Name: Transitive Transport Class Extended Community Sub-Types <name>IANA Considerations</name>
<section numbered="true" toc="default">
<name>New BGP SAFI</name>
<t>IANA has assigned BGP SAFI code 76 for the "Classful Transport SAFI".
</t>
Note: <dl spacing="normal" newline="false">
This registry contains values of the second octet (the <dt>Registry Group:</dt><dd>Subsequent Address Family Identifiers (SAFI
"Sub-Type" field) of an extended community when the value of the ) Parameters</dd>
first octet (the "Type" field) is 0x0a. <dt>Registry Name:</dt><dd><t>SAFI Values</t>
Range Registration Procedures <table>
-----------------+---------------------------- <thead>
0x00-0xBF First Come First Served <tr><th>Value</th><th>Description</th><th>Reference</th></tr>
0xC0-0xFF IETF Review </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 new AFI/SAFI pairs for IPv4 and IPv6
Classful Transport families, namely:</t>
<ul spacing="normal">
<li>
<t>"IPv4, Classful Transport" AFI/SAFI = "1/76" for carrying IPv4
Classful Transport prefixes.</t>
</li>
<li>
<t>"IPv6, Classful Transport" AFI/SAFI = "2/76" for carrying IPv6
Classful Transport prefixes.</t>
</li>
</ul>
</section>
<section numbered="true" toc="default">
<name>New Format for BGP Extended Community</name>
<t>IANA has assigned a Format type (Type high = 0xa) of Extended
Community <xref target="RFC4360" format="default"></xref> for the Transp
ort Class
from the following registries in the "Border Gateway Protocol (BGP) Exte
nded Communities" registry group:</t>
<ul spacing="normal">
<li>
<t>the "BGP Transitive Extended Community Types" registry and</t>
</li>
<li>
<t>the "BGP Non-Transitive Extended Community Types" registry.</t>
</li>
</ul>
<t>The same low-order six bits have been assigned for both
allocations.</t>
Sub-Type Value Name <t>This document uses this new Format with subtype 0x2 (route target),
-----------------+-------------- as a transitive extended community. The Route Target thus formed is
0x02 Route Target called "Transport Class" Route Target extended community.</t>
</artwork> <t>The Non-Transitive Transport Class extended community with subtype
</figure> 0x2 (route target) is called the "Non-Transitive Transport Class Route
</section> Target extended community".</t>
<t>Taking a reference of <xref target="RFC7153" format="default"/>, the
assignments in the following subsections have been made.</t>
<section numbered="true" toc="default">
<name>Existing Registries</name>
<section numbered="true" toc="default">
<name>Registries for the "Type" Field</name>
<section anchor="tc-rt-t" numbered="true" toc="default">
<name>Transitive Types</name>
<t>This registry contains values of the high-order octet (the
"Type" field) of a Transitive Extended Community.</t>
<section title="Non-Transitive Transport Class Extended Community Sub- <dl spacing="normal" newline="false">
Types Registry"> <dt>Registry Group:</dt><dd>Border Gateway Protocol (BGP) Extende
<t>IANA is requested to add the following subregistry under the d Communities</dd>
&ldquo;Border Gateway Protocol (BGP) Extended <dt>Registry Name:</dt><dd><t>BGP Transitive Extended Community T
Communities&rdquo;:</t> ypes</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 Exte
nded Community Sub-Types" registry.)</t>
</dd>
</dl>
</section>
<section anchor="tc-rt-nt" numbered="true" toc="default">
<name>Non-Transitive Types</name>
<t>This registry contains values of the high-order octet (the
"Type" field) of a Non-Transitive Extended Community.</t>
<figure> <dl spacing="normal" newline="false">
<artwork> Registry Group: Border Gateway Protocol (BGP) Extended C <dt>Registry Group:</dt><dd>Border Gateway Protocol (BGP) Extende
ommunities d Communities</dd>
<dt>Registry Name:</dt><dd><t>BGP Non-Transitive Extended Communi
ty Types</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.)</t>
</dd>
</dl>
</section>
</section>
</section>
<section numbered="true" toc="default">
<name>New Registries</name>
<section numbered="true" toc="default">
<name>Transitive Transport Class Extended Community Sub-Types Regist
ry</name>
<t>IANA has added the following subregistry under the
"Border Gateway Protocol (BGP) Extended
Communities" registry group:</t>
<dl spacing="normal" newline="false">
<dt>Registry Group:</dt><dd>Border Gateway Protocol (BGP) Extende
d Communities</dd>
<dt>Registry Name:</dt><dd>Transitive Transport Class Extended Co
mmunity 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) is 0x0a.</t>
Registry Name: Non-Transitive Transport Class Extended Community Sub-Types <table>
<thead>
<tr><th>Range</th><th>Registration Procedures</th></tr>
</thead>
<tbody>
<tr><td>0x00-0xbf</td><td>First Come First 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>
Note: </section>
This registry contains values of the second octet (the <section numbered="true" toc="default">
"Sub-Type" field) of an extended community when the value of the <name>Non-Transitive Transport Class Extended Community Sub-Types Re
first octet (the "Type" field) is 0x4a. gistry</name>
<t>IANA has added the following subregistry under the
"Border Gateway Protocol (BGP) Extended
Communities" registry group:</t>
<dl spacing="normal" newline="false">
<dt>Registry Group:</dt><dd>Border Gateway Protocol (BGP) Extended
Communities</dd>
<dt>Registry Name:</dt><dd>Non-Transitive Transport Class Extended
Community 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) is 0x4a.</t>
Range Registration Procedures <table>
-----------------+---------------------------- <thead>
0x00-0xBF First Come First Served <tr><th>Range</th><th>Registration Procedures</th></tr>
0xC0-0xFF IETF Review </thead>
<tbody>
<tr><td>0x00-0xbf</td><td>First Come First Served</td></tr>
<tr><td>0xc0-0xff</td><td>IETF Review</td></tr>
</tbody>
</table>
Sub-Type Value Name <table>
-----------------+-------------- <thead>
0x02 Route Target <tr><th>Sub-Type Value</th><th>Name</th></tr>
</thead>
<tbody>
<tr><td>0x02</td><td>Route Target</td></tr>
</tbody>
</table>
</artwork>
</figure>
</section> </section>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="MPLS OAM Code Points"> <name>MPLS OAM Code Points</name>
<t>The following two code points have been assigned for Target FEC <t>The following two code points have been assigned for Target FEC
Stack sub-TLVs:</t> Stack sub-TLVs:</t>
<ul spacing="normal">
<t><list style="symbols"> <li>
<t>IPv4 BGP Classful Transport</t> <t>IPv4 BGP Classful Transport</t>
</li>
<li>
<t>IPv6 BGP Classful Transport</t> <t>IPv6 BGP Classful Transport</t>
</list><figure> </li>
<artwork> Registry Group: Multiprotocol Label Switching (MPLS) </ul>
Label Switched Paths (LSPs) Ping Parameters
Registry Name: Sub-TLVs for TLV Types 1, 16, and 21
Sub-Type Name
-----------------+------------------------------
31744 IPv4 BGP Classful Transport
31745 IPv6 BGP Classful Transport
</artwork> <dl spacing="normal" newline="false">
</figure></t> <dt>Registry Group:</dt><dd>Multiprotocol Label Switching (MPLS) Label
Switched Paths (LSPs) Ping Parameters</dd>
<dt>Registry Name:</dt><dd><t>Sub-TLVs for TLV Types 1, 16, and 21</t>
<table>
<thead>
<tr><th>Sub-Type</th><th>Name</th></tr>
</thead>
<tbody>
<tr><td>31744</td><td>IPv4 BGP Classful Transport</td></tr>
<tr><td>31745</td><td>IPv6 BGP Classful Transport</td></tr>
</tbody>
</table>
</dd>
</dl>
<t>IANA is requested to update the reference to this document.</t>
</section> </section>
</section> </section>
<section anchor="local-registries" title="Registries maintained by this document <!--[rfced] As Section 14.1 (Transport Class ID) is no longer in
"> the IANA Considerations sections, we have made some updates
<section title="Transport Class ID"> to help the reader. Please review this section carefully
<t>This document reserves the Transport class ID value 0 to represent and let us know any concerns. -->
"Best Effort Transport Class ID". This is used in the 'Transport Class
ID' field of Transport Route Target extended community that represents
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 <section numbered="true" toc="default">
<name>Transport Class 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 document
or reserved for Private Use. Because the registry is complete, it is being pub
lished in this RFC rather than as an IANA-maintained registry. However, note th
at IANA-related terminology <xref target="BCP26" format="default"/> is used here
.</t>
Value Name <t>Registry Name: Transport Class ID</t>
-----------------+--------------------------------
0 Best Effort Transport Class ID
1-4294967295 Private Use
Reference: This document. <t>The registration procedures are as follows:</t>
Registration Procedure(s) <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>
Value Registration Procedure <t>As shown in the table below, the Transport Class ID value 0 is Reserved to re
-----------------+-------------------------------- present the "Best-Effort Transport Class ID". This is used in the 'Transport Cl
0 IETF Review ass ID' field of a Transport Route Target extended community that represents the
1-4294967295 Private Use best-effort transport class.</t>
</artwork> <table>
</figure></t> <thead>
<tr><th>Value</th><th>Name</th></tr>
</thead>
<tbody>
<tr><td>0</td><td>Best-Effort Transport Class ID</td></tr>
<tr><td>1-4294967295</td><td>Private Use</td></tr>
</tbody>
</table>
<t>As noted in Sec 4 and Sec 7.10, 'Transport Class ID' is <t>As noted in Sections <xref target="tc" format="counter"/> and <xref
target="bgp-att" format="counter"/>, 'Transport Class ID' is
interchangeable with 'Color'. For purposes of backward compatibility interchangeable with 'Color'. For purposes of backward compatibility
with usage of 'Color' field in Color extended community as specified with usage of a 'Color' field in a Color Extended Community as specified
in <xref target="RFC9012"/> and <xref target="RFC9256"/>, the range in <xref target="RFC9012" format="default"/> and <xref
1-4294967295 uses 'Private Use' as Registration Procedure.</t> target="RFC9256" format="default"/>, the range 1-4294967295 uses
'Private Use' as the Registration Procedure.</t>
</section> </section>
</section> <section anchor="Security" numbered="true" toc="default">
<section anchor="Security" title="Security Considerations"> <name>Security Considerations</name>
<t>This document uses <xref target="RFC4760"/> mechanisms to define new <t>This document uses the mechanisms from <xref target="RFC4760" format="d
BGP address families (AFI/SAFI : 1/76 and 2/76) that carry transport efault"/> to define new
layer endpoints. These address families are explicitly configured and BGP address families (AFI/SAFI : 1/76 and 2/76) that carry transport-layer
endpoints. These address families are explicitly configured and
negotiated between BGP speakers, which confines the propagation scope of negotiated between BGP speakers, which confines the propagation scope of
this reachability information. These routes stay in the part of network this reachability information. These routes stay in the part of network
where the new address family is negotiated, and don't leak out into where the new address family is negotiated and don't leak out into
the Internet. </t> the Internet. </t>
<t>Furthermore, procedures defined in <xref target="secure-propagate" form
<t>Furthermore, procedures defined in <xref target="secure-propagate"/> mi at="default"/> mitigate
tigate
the risk of unintended propagation of BGP CT routes across Inter-AS the risk of unintended propagation of BGP CT routes across Inter-AS
boundaries even when BGP CT family is negotiated. BGP import and export po licies 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 A S boundaries. are used to control the BGP CT reachability information exchanged across A S boundaries.
This mitigates the risk of advertising internal loopback addresses outside the This mitigates the risk of advertising internal loopback addresses outside the
administrative control of the provider network. </t> administrative control of the provider network. </t>
<t>This document does not change the underlying security issues inherent <t>This document does not change the underlying security issues inherent
in the existing BGP protocol, such as those described in <xref in the existing BGP protocol, such as those described in <xref target="RFC
target="RFC4271"/> and <xref target="RFC4272"/>.</t> 4271" format="default"/> and <xref target="RFC4272" format="default"/>.</t>
<t>Additionally, BGP sessions <bcp14>SHOULD</bcp14> be protected using the
<t>Additionally, BGP sessions SHOULD be protected using TCP TCP
Authentication Option <xref target="RFC5925"/> and the Generalized TTL Authentication Option <xref target="RFC5925" format="default"/> and the Ge
Security Mechanism <xref target="RFC5082"/>.</t> neralized TTL
Security Mechanism <xref target="RFC5082" format="default"/>.</t>
<t>Using a separate BGP family and new RT (Transport Class RT) minimizes <t>Using a separate BGP family and new RT (Transport Class RT) minimizes
the possibility of these routes mixing with service routes.</t> 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, <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 there is a possibility of SAFI 4 routes mixing with SAFI 1 service
routes. To avoid such scenarios, it is RECOMMENDED that implementations routes. To avoid such scenarios, it is <bcp14>RECOMMENDED</bcp14> that imp lementations
support keeping SAFI 76 and SAFI 4 transport routes in separate support keeping SAFI 76 and SAFI 4 transport routes in separate
transport RIBs, distinct from service RIB that contain SAFI 1 service transport RIBs, distinct from service RIB that contain SAFI 1 service
routes.</t> routes.</t>
<t>BGP CT routes distribute label binding using <xref target="RFC8277" for
<t>BGP CT routes distribute label binding using <xref target="RFC8277"/> mat="default"/>
for MPLS dataplane and hence its security considerations apply.</t> for the MPLS data plane; hence, its security considerations apply.</t>
<t>BGP CT routes distribute SRv6 SIDs for SRv6 data planes; hence,
<t>BGP CT routes distribute SRv6 SIDs for SRv6 dataplanes and hence the security considerations of <xref target="RFC9252" sectionFormat="of" s
security considerations of Section 9.3 of <xref target="RFC9252"/> ection="9.3"/>
apply. Moreover, SRv6 SID transposition scheme is disabled in BGP CT, as apply. Moreover, the SRv6 SID transposition scheme is disabled in BGP CT,
described in <xref target="SRv6-Support"/>, to mitigate the risk of as
described in <xref target="SRv6-Support" format="default"/>, to mitigate t
he risk of
misinterpreting transposed SRv6 SID information as an MPLS label.</t> misinterpreting transposed SRv6 SID information as an MPLS label.</t>
<t>As <xref target="RFC4272" format="default"/> discusses, BGP is vulnerab
<t>As <xref target="RFC4272"/> discusses, BGP is vulnerable to le to
traffic-diversion attacks. This SAFI routes adds a new means by which an traffic-diversion attacks. This SAFI route adds a new means by which an
attacker could cause the traffic to be diverted from its normal path. attacker could cause the traffic to be diverted from its normal path.
Potential consequences include "hijacking" of traffic (insertion of an Potential consequences include "hijacking" of traffic (insertion of an
undesired node in the path, which allows for inspection or modification undesired node in the path, which allows for inspection or modification
of traffic, or avoidance of security controls) or denial of service of traffic, or avoidance of security controls) or denial of service
(directing traffic to a node that doesn't desire to receive it).</t> (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 <t>In order to mitigate the risk of the diversion of traffic from its
intended destination, BGPsec solutions (<xref target="RFC8205"/> and intended destination, BGPsec solutions (<xref target="RFC8205" format="def
Origin Validation <xref target="RFC8210"/><xref target="RFC6811"/>) may ault"/> and
Origin Validation <xref target="RFC8210" format="default"/><xref target="R
FC6811" format="default"/>) may
be extended in future to work for non-Internet SAFIs (SAFIs other than be extended in future to work for non-Internet SAFIs (SAFIs other than
1).</t> 1).</t>
<t>The restriction of the applicability of the BGP CT SAFI 76 to its <t>The restriction of the applicability of the BGP CT SAFI 76 to its
intended well-defined scope and utilizing <xref target="RFC8212"/> limits intended well-defined scope and utilizing <xref target="RFC8212" format="d efault"/> limits
the likelihood of traffic diversions.</t> the likelihood of traffic diversions.</t>
</section> </section>
</middle> </middle>
<back> <back>
<references title="Normative References"> <displayreference target="I-D.ietf-idr-bgp-ct-srv6" to="BGP-CT-SRv6"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <displayreference target="I-D.ietf-idr-bgp-fwd-rr" to="BGP-FWD-RR"/>
RFC.8277.xml"?> <displayreference target="I-D.ietf-idr-multinexthop-attribute" to="MNH"/>
<displayreference target="I-D.ietf-idr-flowspec-redirect-ip" to="FLOWSPEC-RE
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. DIR-IP"/>
RFC.7606.xml"?> <displayreference target="I-D.kaliraj-bess-bgp-sig-private-mpls-labels" to="
MPLS-NS"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <displayreference target="I-D.hr-spring-intentaware-routing-using-color" to=
RFC.2119.xml"?> "Intent-Routing-Color"/>
<displayreference target="I-D.ietf-pce-pcep-color" to="PCEP-RSVP-COLOR"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <displayreference target="I-D.ietf-pce-segment-routing-policy-cp" to="PCEP-S
RFC.2545.xml"?> RPOLICY"/>
<displayreference target="I-D.gredler-idr-bgplu-epe" to="BGP-LU-EPE"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <displayreference target="I-D.ietf-intarea-tunnels" to="INTAREA-TUNNELS"/>
RFC.2474.xml"?> <references>
<name>References</name>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <references>
RFC.4659.xml"?> <name>Normative References</name>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. 277.xml"/>
RFC.4271.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
606.xml"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
RFC.4272.xml"?> 119.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. 545.xml"/>
RFC.5082.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2
474.xml"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
RFC.5925.xml"?> 659.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. 271.xml"/>
RFC.6811.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
272.xml"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
RFC.4364.xml"?> 082.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.5
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. 925.xml"/>
RFC.4360.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
811.xml"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
RFC.4684.xml"?> 364.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. 360.xml"/>
RFC.4760.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
684.xml"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4
RFC.7911.xml"?> 760.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. 911.xml"/>
RFC.8669.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
669.xml"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
RFC.9012.xml"?> 012.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. 252.xml"/>
RFC.9252.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
174.xml"/>
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7
RFC.8174.xml"?> 153.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
<?rfc include="https://xml2rfc.tools.ietf.org/public/rfc/bibxml/reference. 029.xml"/>
RFC.7153.xml"?> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
212.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"?>
<reference anchor="SRTE"
target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-sr
-policy-safi-10">
<front>
<title>Advertising Segment Routing Policies in BGP</title>
<author fullname="Ketan" initials="" role="editor"
surname="Talaulikar"/>
<author fullname="Previdi" initials="S" surname="Previdi"/>
<date day="07" month="11" year="2024"/>
</front>
</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"?>
<reference anchor="BGP-CT-SRv6"
target="https://tools.ietf.org/html/draft-ietf-idr-bgp-ct-srv6-
05">
<front>
<title abbrev="BGP-CT-SRv6">BGP CT - Adaptation to SRv6
dataplane</title>
<author fullname="Kaliraj Vairavakkalai" initials="" role="editor"
surname="Vairavakkalai"/>
<author fullname="Natarajan Venkataraman" initials="" role="editor"
surname="Venkataraman"/>
<date day="25" month="4" year="2024"/>
</front>
</reference>
<reference anchor="BGP-FWD-RR"
target="https://tools.ietf.org/html/draft-ietf-idr-bgp-fwd-rr-0
2">
<front>
<title abbrev="BGP-FWD-RR">BGP Route Reflector in Forwarding
Path</title>
<author fullname="Kaliraj Vairavakkalai" initials="" role="editor"
surname="Vairavakkalai"/>
<author fullname="Natarajan Venkataraman" initials="" role="editor"
surname="Venkataraman"/>
<date day="17" month="3" year="2024"/>
</front>
</reference>
<reference anchor="MNH"
target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-mu
ltinexthop-attribute-00">
<front>
<title abbrev="MNH">BGP MultiNexthop Attribute</title>
<author fullname="Kaliraj Vairavakkalai" initials="" role="editor"
surname="Vairavakkalai"/>
<date day="17" month="03" year="2024"/> <!--
</front> draft-ietf-idr-sr-policy-safi-13
</reference> companion document RFC 9830, in EDIT as of 04/11/25.
Original cite tag [SRTE].
-->
<reference anchor="RFC9830" target="https://www.rfc-editor.org/info/rfc9830">
<front>
<title>Advertising Segment Routing Policies in BGP</title>
<author 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>
<author initials="K." surname="Talaulikar" fullname="Ketan Talaulikar" rol
e="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>
<date month="August" year='2025'/>
</front>
<seriesInfo name="RFC" value="9830"/>
<seriesInfo name="DOI" value="10.17487/RFC9830"/>
</reference>
<reference anchor="FLOWSPEC-REDIR-IP" </references>
target="https://datatracker.ietf.org/doc/html/draft-ietf-idr-fl <references>
owspec-redirect-ip-03"> <name>Informative References</name>
<front> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
<title abbrev="FLOWSPEC-REDIR-IP">BGP Flow-Spec Redirect to IP 350.xml"/>
Action</title> <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
315.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6
890.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
256.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
205.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8
210.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9
543.xml"/>
<xi:include href="https://bib.ietf.org/public/rfc/bibxml9/reference.BCP.2
6.xml"/>
<author fullname="Adam Simpson" initials="" role="editor" <!-- [BGP-CT-SRv6]
surname="Simpson"/> draft-ietf-idr-bgp-ct-srv6-06
IESG State: Expired as of 8/15/25
-->
<date day="08" month="09" year="2024"/> <reference anchor="I-D.ietf-idr-bgp-ct-srv6" target="https://datatracker.ietf.or
</front> g/doc/html/draft-ietf-idr-bgp-ct-srv6-06">
</reference> <front>
<title>BGP CT - Adaptation to SRv6 dataplane</title>
<author initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakka
lai" role="editor">
<organization>Juniper Networks, Inc.</organization>
</author>
<author initials="N." surname="Venkataraman" fullname="Natrajan Venkataram
an" role="editor">
<organization>Juniper Networks, Inc.</organization>
</author>
<date month="November" day="9" year="2024" />
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-ct-srv6-06" />
<reference anchor="MPLS-NS" </reference>
target="https://datatracker.ietf.org/doc/html/draft-kaliraj-bes
s-bgp-sig-private-mpls-labels-09">
<front>
<title abbrev="MPLS namespaces">BGP signalled MPLS
namespaces</title>
<author fullname="Kaliraj" initials="" role="editor" <!-- [BGP-FWD-RR]
surname="Vairavakkalai"/> draft-ietf-idr-bgp-fwd-rr-03
IESG State: Expired as of 08/15/25.
-->
<date day="09" month="11" year="2024"/> <reference anchor="I-D.ietf-idr-bgp-fwd-rr" target="https://datatracker.ietf.org
</front> /doc/html/draft-ietf-idr-bgp-fwd-rr-03">
</reference> <front>
<title>BGP Route Reflector with Next Hop Self</title>
<author initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakka
lai" role="editor">
<organization>Juniper Networks, Inc.</organization>
</author>
<author initials="N." surname="Venkataraman" fullname="Natrajan Venkataram
an" role="editor">
<organization>Juniper Networks, Inc.</organization>
</author>
<date month="September" day="17" year="2024" />
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-idr-bgp-fwd-rr-03" />
<reference anchor="Intent-Routing-Color" </reference>
target="https://datatracker.ietf.org/doc/html/draft-hr-spring-i
ntentaware-routing-using-color-03">
<front>
<title abbrev="Intent-Routing-Color">Intent-aware Routing using
Color</title>
<author fullname="Shraddha" initials="" role="editor" <!-- [MNH]
surname="Hegde"/> draft-ietf-idr-multinexthop-attribute-04
IESG State: I-D Exists as of 08/15/25.
-->
<date day="23" month="10" year="2023"/> <reference anchor="I-D.ietf-idr-multinexthop-attribute" target="https://datatrac
</front> ker.ietf.org/doc/html/draft-ietf-idr-multinexthop-attribute-04">
</reference> <front>
<title>BGP MultiNexthop Attribute</title>
<author initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakka
lai" role="editor">
<organization>Juniper Networks, Inc.</organization>
</author>
<author initials="J. M." surname="Jeganathan" fullname="Jeyananth Minto Je
ganathan">
<organization>Juniper Networks, Inc.</organization>
</author>
<author initials="M." surname="Nanduri" fullname="Mohan Nanduri">
<organization>Microsoft</organization>
</author>
<author initials="A. R." surname="Lingala" fullname="Avinash Reddy Lingala
">
<organization>AT&amp;T</organization>
</author>
<date month="March" day="25" year="2025" />
</front>
<seriesInfo name="Internet-Draft" value="draft-ietf-idr-multinexthop-attribut
e-04" />
<reference anchor="PCEP-RSVP-COLOR" </reference>
target="https://datatracker.ietf.org/doc/html/draft-ietf-pce-pc
ep-color-11">
<front>
<title abbrev="PCEP RSVP COLOR">Path Computation Element
Protocol(PCEP) Extension for RSVP Color</title>
<author fullname="Balaji" initials="" role="editor" <!-- [FLOWSPEC-REDIR-IP]
surname="Rajagopalan"/> draft-ietf-idr-flowspec-redirect-ip-03
IESG State: Expired as of 08/15/25.
<author fullname="Vishnu" initials="Pavan" role="editor" Note to PE: Author name "akarch@cisco.com" matches info available on
surname="Beeram"/> datatracker: https://datatracker.ietf.org/person/akarch@cisco.com
-->
<date day="17" month="02" year="2025"/> <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.i
</front> etf-idr-flowspec-redirect-ip.xml"/>
</reference>
<reference anchor="PCEP-SRPOLICY" <!-- [MPLS-NS]
target="https://www.ietf.org/archive/id/draft-ietf-pce-segment- draft-kaliraj-bess-bgp-sig-private-mpls-labels-09
routing-policy-cp-14.html"> IESG State: I-D Exists as of 04/11/25.
<front> -->
<title abbrev="PCEP SRPOLICY">PCEP Extensions for SR Policy
Candidate Paths</title>
<author fullname="Mike" initials="" role="editor" <!--[rfced] We note that the reference to
surname="Koldychev"/> 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.-->
<author fullname="Siva" initials="" role="editor" <reference anchor="I-D.kaliraj-bess-bgp-sig-private-mpls-labels" target="https:/
surname="Sivabalan"/> /datatracker.ietf.org/doc/html/draft-kaliraj-bess-bgp-sig-private-mpls-labels-09
">
<front>
<title>BGP Signaled MPLS Namespaces</title>
<author initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakka
lai" role="editor">
<organization>Juniper Networks, Inc.</organization>
</author>
<author initials="J. M." surname="Jeganathan" fullname="Jeyananth Minto Je
ganathan">
<organization>Juniper Networks, Inc.</organization>
</author>
<author initials="P." surname="Ramadenu" fullname="Praveen Ramadenu">
<organization>AT&amp;T</organization>
</author>
<author initials="I." surname="Means" fullname="Israel Means">
<organization>AT&amp;T</organization>
</author>
<date month="November" day="9" year="2024" />
</front>
<seriesInfo name="Internet-Draft" value="draft-kaliraj-bess-bgp-sig-private-m
pls-labels-09" />
<author fullname="Colby" initials="" role="editor" surname="Barth"/> </reference>
<date day="09" month="02" year="2024"/> <!-- [Intent-Routing-Color]
</front> draft-hr-spring-intentaware-routing-using-color-04
</reference> IESG State: Expired as of 8/15/25
-->
<xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.h
r-spring-intentaware-routing-using-color.xml"/>
<reference anchor="BGP-CT-UPDATE-PACKING-TEST" <!-- [PCEP-RSVP-COLOR]
target="https://raw.githubusercontent.com/ietf-wg-idr/draft-iet draft-ietf-pce-pcep-color-12
f-idr-bgp-ct/1a75d4d10d4df0f1fd7dcc041c2c868704b092c7/update-packing-test-result IESG State: RFC Ed Queue RFC-Editor as of 8/15/25
s.txt"> -->
<front>
<title abbrev="BGP-CT-UPDATE-PACKING-TEST">BGP CT Update packing
Test Results</title>
<author fullname="Kaliraj" initials="" role="editor" <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.i
surname="Vairavakkalai"/> etf-pce-pcep-color.xml"/>
<date day="25" month="06" year="2023"/> <!-- [PCEP-SRPOLICY]
</front> draft-ietf-pce-segment-routing-policy-cp-25
</reference> 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.i
etf-pce-segment-routing-policy-cp.xml"/>
<reference anchor="BGP-LU-EPE" <!--[rfced] The citation tag [BGP-CT-UPDATE-PACKING-TEST] is a bit
target="https://datatracker.ietf.org/doc/html/draft-gredler-idr long. Might we update to something shorter?-->
-bgplu-epe-15">
<front>
<title abbrev="BGP LU EPE">Egress Peer Engineering using
BGP-LU</title>
<author fullname="Hannes" initials="" role="editor" <reference anchor="BGP-CT-UPDATE-PACKING-TEST" target="https://github.co
surname="Gredler"/> m/ietf-wg-idr/draft-ietf-idr-bgp-ct/blob/main/update-packing-test-results.txt">
<front>
<title>update-packing-test-results.txt</title>
<author/>
<date day="25" month="06" year="2023"/>
</front>
<refcontent>1a75d4d</refcontent>
</reference>
<date day="16" month="06" year="2023"/> <!-- [BGP-LU-EPE]
</front> draft-gredler-idr-bgplu-epe-16
</reference> IESG State: I-D Exists as of 8/15/25
-->
<reference anchor="I-D.gredler-idr-bgplu-epe" target="https://datatracker.ietf.o
rg/doc/html/draft-gredler-idr-bgplu-epe-16">
<front>
<title>Egress Peer Engineering using BGP-LU</title>
<author initials="H." surname="Gredler" fullname="Hannes Gredler" role="ed
itor">
<organization>RtBrick Inc.</organization>
</author>
<author initials="K." surname="Vairavakkalai" fullname="Kaliraj Vairavakka
lai" role="editor">
<organization>Juniper Networks, Inc.</organization>
</author>
<author 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>
<date month="October" day="14" year="2024" />
</front>
<seriesInfo name="Internet-Draft" value="draft-gredler-idr-bgplu-epe-16" />
<reference anchor="INTAREA-TUNNELS" </reference>
target="https://datatracker.ietf.org/doc/draft-ietf-intarea-tun
nels/13/">
<front>
<title abbrev="INTAREA-TUNNELS">IP Tunnels in the Internet
Architecture</title>
<author fullname="Dr. Joseph D Touch" initials="" role="editor" <!-- [INTAREA-TUNNELS]
surname="Touch"/> draft-ietf-intarea-tunnels-14
IESG State: I-D Exists in WG Last Call as of 8/15/25
-->
<author fullname="Mark Townsley" initials="" role="editor" <xi:include href="https://bib.ietf.org/public/rfc/bibxml3/reference.I-D.i
surname="Townsley"/> etf-intarea-tunnels.xml"/>
<date day="26" month="03" year="2023"/> </references>
</front>
</reference>
</references> </references>
<section anchor="Appendix_A" numbered="true" toc="default">
<section anchor="Appendix A" numbered="true" <name>Extensibility Considerations</name>
title="Extensibility considerations"> <section numbered="true" toc="default">
<section title="Signaling Intent over PE-CE Attachment Circuit"> <name>Signaling Intent over a PE-CE Attachment Circuit</name>
<t>It may be desirable to allow a CE device to indicate in the data <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 packet it sends what treatment it desires (the Intent) when the packet
is forwarded within the provider network.</t> is forwarded within the provider network.</t>
<t><xref section="A.10" target="I-D.ietf-idr-multinexthop-attribute" for
<t>Section A.10 in <xref target="MNH">BGP MultiNexthop mat="default"></xref> describes some mechanisms that enable such
Attribute</xref> describes some mechanisms that enable such
signaling.</t> signaling.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="BGP CT Egress TE"> <name>BGP CT Egress TE</name>
<t>Mechanisms described in <xref target="BGP-LU-EPE"/> also applies to <t>Mechanisms described in <xref target="I-D.gredler-idr-bgplu-epe" form
at="default"/> also apply to the
BGP CT family.</t> BGP CT family.</t>
<t>The Peer/32 or Peer/128 EPE route <bcp14>MAY</bcp14> be originated in
<t>The Peer/32 or Peer/128 EPE route MAY be originated in BGP CT the BGP CT
family with appropriate Mapping Community (e.g. family with the appropriate Mapping Community (e.g.,
transport-target:0:100), thus allowing an EPE path to the peer that transport-target:0:100), thus allowing an EPE path to the peer that
satisfies the desired SLA.</t> satisfies the desired SLA.</t>
</section> </section>
</section> </section>
<section anchor="Appendix_B" numbered="true" toc="default">
<section anchor="Appendix B" numbered="true" <name>Applicability to Intra-AS and Different Inter-AS Deployments</name>
title="Applicability to Intra-AS and different Inter-AS deployments <t>As described in <xref section="10" target="RFC4364" format="default"></
."> xref>, in an Option C network, service routes (VPN-IPv4) are
<t>As described in <xref target="RFC4364">BGP VPN</xref> Section 10, in neither maintained nor distributed by the ASBRs. Transport routes are
an Option C network, service routes (VPN-IPv4) are neither maintained maintained in the ASBRs and propagated in BGP LU or BGP CT.</t>
nor distributed by the ASBRs. Transport routes are maintained in the <t><xref target="CTProc" format="default"></xref>
ASBRs and propagated in BGP LU or BGP CT.</t>
<t><xref target="CTProc">Illustration of CT Procedures</xref>
illustrates how constructs of BGP CT work in an inter-AS Option C illustrates how constructs of BGP CT work in an inter-AS Option C
deployment. The BGP CT constructs: AFI/SAFI 1/76, Transport Class and deployment. The BGP CT constructs: AFI/SAFI 1/76, Transport Class, and
Resolution Scheme are used in an inter-AS Option C deployment.</t> Resolution Scheme are used in an inter-AS Option C deployment.</t>
<t>In Intra-AS and Inter-AS option A and option B scenarios, AFI/SAFI 1/76
<t>In Intra-AS and Inter-AS option A, option B scenarios, AFI/SAFI 1/76
may not be used, but the Transport Class and Resolution Scheme may not be used, but the Transport Class and Resolution Scheme
mechanisms are used to provide service mapping.</t> mechanisms are used to provide service mapping.</t>
<t>This section illustrates how BGP CT constructs work in Intra-AS and <t>This section illustrates how BGP CT constructs work in Intra-AS and
Inter-AS Option A, B deployment scenarios.</t> Inter-AS Option A and B deployment scenarios.</t>
<section numbered="true" toc="default">
<section title="Intra-AS usecase"> <name>Intra-AS Use Case</name>
<section title="Topology"> <section numbered="true" toc="default">
<figure title="BGP CT Intra-AS" anchor="BGPCT_INTRA_AS"><artset><artwork type=" <name>Topology</name>
svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="208" width="4 <figure anchor="BGPCT_INTRA_AS">
40" viewBox="0 0 440 208" class="diagram" text-anchor="middle" font-family="mono <name>BGP CT Intra-AS</name>
space" font-size="13px" stroke-linecap="round"> <artset>
<path d="M 200,48 L 200,64" fill="none" stroke="black"/> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http:/
<path d="M 56,80 L 72,80" fill="none" stroke="black"/> /www.w3.org/2000/svg" version="1.1" height="208" width="440" viewBox="0 0 440 20
<path d="M 128,80 L 176,80" fill="none" stroke="black"/> 8" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px"
<path d="M 216,80 L 256,80" fill="none" stroke="black"/> stroke-linecap="round">
<path d="M 312,80 L 352,80" fill="none" stroke="black"/> <path d="M 200,48 L 200,64" fill="none" stroke="black"/>
<path d="M 112,176 L 136,176" fill="none" stroke="black"/> <path d="M 56,80 L 72,80" fill="none" stroke="black"/>
<path d="M 296,176 L 328,176" fill="none" stroke="black"/> <path d="M 128,80 L 176,80" fill="none" stroke="black"/>
<polygon class="arrowhead" points="336,176 324,170.4 324,181.6" fill="black" tra <path d="M 216,80 L 256,80" fill="none" stroke="black"/>
nsform="rotate(0,328,176)"/> <path d="M 312,80 L 352,80" fill="none" stroke="black"/>
<g class="text"> <path d="M 112,176 L 136,176" fill="none" stroke="black"/>
<text x="204" y="36">[RR11]</text> <path d="M 296,176 L 328,176" fill="none" stroke="black"/>
<text x="28" y="84">[CE21]</text> <polygon class="arrowhead" points="336,176 324,170.4 324,181.6
<text x="100" y="84">[PE11]</text> " fill="black" transform="rotate(0,328,176)"/>
<text x="196" y="84">[P1]</text> <g class="text">
<text x="284" y="84">[PE12]</text> <text x="204" y="36">[RR11]</text>
<text x="380" y="84">[CE31]</text> <text x="28" y="84">[CE21]</text>
<text x="72" y="116">:</text> <text x="100" y="84">[PE11]</text>
<text x="312" y="116">:</text> <text x="196" y="84">[P1]</text>
<text x="32" y="132">AS2</text> <text x="284" y="84">[PE12]</text>
<text x="72" y="132">:</text> <text x="380" y="84">[CE31]</text>
<text x="200" y="132">...AS1...</text> <text x="72" y="116">:</text>
<text x="312" y="132">:</text> <text x="312" y="116">:</text>
<text x="368" y="132">AS3</text> <text x="32" y="132">AS2</text>
<text x="72" y="148">:</text> <text x="72" y="132">:</text>
<text x="312" y="148">:</text> <text x="200" y="132">...AS1...</text>
<text x="52" y="180">203.0.113.21</text> <text x="312" y="132">:</text>
<text x="176" y="180">Traffic</text> <text x="368" y="132">AS3</text>
<text x="248" y="180">Direction</text> <text x="72" y="148">:</text>
<text x="388" y="180">203.0.113.31</text> <text x="312" y="148">:</text>
</g> <text x="52" y="180">203.0.113.21</text>
</svg> <text x="176" y="180">Traffic</text>
</artwork><artwork type="ascii-art"><![CDATA[ <text x="248" y="180">Direction</text>
<text x="388" y="180">203.0.113.31</text>
</g>
</svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
[RR11] [RR11]
| |
+ +
[CE21]---[PE11]-------[P1]------[PE12]------[CE31] [CE21]---[PE11]-------[P1]------[PE12]------[CE31]
: : : :
AS2 : ...AS1... : AS3 AS2 : ...AS1... : AS3
: : : :
203.0.113.21 ---- Traffic Direction ----> 203.0.113.31 203.0.113.21 ---- Traffic Direction ----> 203.0.113.31
]]></artwork></artset></figure> ]]></artwork>
</artset>
<t>This example in <xref target="BGPCT_INTRA_AS"/> shows a provider </figure>
network Autonomous system AS1. It serves customers AS2, AS3. Traffic <t><xref target="BGPCT_INTRA_AS" format="default"/> shows a provider
network Autonomous System, AS1. It serves customers AS2 and AS3. Traff
ic
direction being described is CE21 to CE31. CE31 may request a direction being described is CE21 to CE31. CE31 may request a
specific SLA (e.g. Gold for this traffic), when traversing this specific SLA (e.g., Gold for this traffic) when traversing this
provider network.</t> provider network.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Transport Layer"> <name>Transport Layer</name>
<t>AS1 uses RSVP-TE intra-domain tunnels between PE11 and PE12. And <t>AS1 uses RSVP-TE intra-domain tunnels between PE11 and PE12. And it
LDP tunnels for best effort traffic.</t> uses
LDP tunnels for best-effort traffic.</t>
<t>The network has two Transport classes: Gold with Transport Class <t>The network has two Transport classes: Gold with Transport Class
ID 100, Bronze with Transport Class ID 200. These transport classes ID 100 and Bronze with Transport Class ID 200. These transport classes
are provisioned at the PEs. This creates the Resolution Schemes for are provisioned at the PEs. This creates the Resolution Schemes for
these transport classes at these PEs.</t> these transport classes at these PEs.</t>
<t>The following tunnels exist for the Gold transport class:</t>
<t>Following tunnels exist for Gold transport class.<list> <ul spacing="normal">
<li>
<t>PE11_to_PE12_gold - RSVP-TE tunnel</t> <t>PE11_to_PE12_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>PE12_to_PE11_gold - RSVP-TE tunnel</t> <t>PE12_to_PE11_gold - RSVP-TE tunnel</t>
</list></t> </li>
</ul>
<t>Following tunnels exist for Bronze transport class.<list> <t>The following tunnels exist for Bronze transport class:</t>
<ul spacing="normal">
<li>
<t>PE11_to_PE12_bronze - RSVP-TE tunnel</t> <t>PE11_to_PE12_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>PE11_to_PE12_bronze - RSVP-TE tunnel</t> <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 <t>These tunnels are provisioned to belong to transport class 100 or
200.</t> 200.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Service Layer route exchange"> <name>Service-Layer Route Exchange</name>
<t>Service nodes PE11, PE12 negotiate service families (AFI/SAFI <t>Service nodes PE11 and PE12 negotiate service families (AFI/SAFI
1/128) on the BGP session with RR11. Service helper RR11 reflects 1/128) on the BGP session with RR11. Service helper RR11 reflects
service routes between the two PEs with next hop unchanged. There 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 are no tunnels for transport-class 100 or 200 from RR11 to the
PEs.</t> PEs.</t>
<t>Forwarding happens using service routes at service nodes PE11 and
<t>Forwarding happens using service routes at service nodes PE11,
PE12. Routes received from CEs are not present in any other nodes' PE12. Routes received from CEs are not present in any other nodes'
FIB in the provider network.</t> FIB in the provider network.</t>
<t>CE31 advertises a route, for example, prefix 203.0.113.31 with the
<t>CE31 advertises a route for example prefix 203.0.113.31 with next next
hop self to PE12. CE31 can attach a Mapping Community Color:0:100 on hop set to itself to PE12. CE31 can attach a Mapping Community Color:0
this route, to indicate its request for Gold SLA. Or, PE12 can :100 on
this route to indicate its request for a Gold SLA. Or, PE12 can
attach the same using locally configured policies.</t> attach the same using locally configured policies.</t>
<t>Consider CE31 getting VPN service from PE12. The
<t>Consider, CE31 is getting VPN service from PE12. The
RD:203.0.113.31 route is readvertised in AFI/SAFI 1/128 by PE12 with RD:203.0.113.31 route is readvertised in AFI/SAFI 1/128 by PE12 with
next hop self (192.0.2.12) and label V-L1, to RR11 with the Mapping the next hop set to itself (192.0.2.12) and label V-L1 to RR11 with th e Mapping
Community Color:0:100 attached. This AFI/SAFI 1/128 route reaches 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. 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 PE11_to_PE12_gold RSVP Now PE11 can resolve the PNH 192.0.2.12 using the PE11_to_PE12_gold RS VP
TE LSP.</t> TE LSP.</t>
<t>The IP FIB at PE11 VRF will have a route for 203.0.113.31 with a <t>The IP FIB at PE11 VRF will have a route for 203.0.113.31 with a
next hop when resolved using Resolution Scheme belonging to the next hop when resolved using the Resolution Scheme belonging to the
mapping community Color:0:100, points to a PE11_to_PE12_gold mapping community Color:0:100, points to a PE11_to_PE12_gold
tunnel.</t> tunnel.</t>
<t>BGP CT AFI/SAFI 1/76 is not used in this Intra-AS deployment. But <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 the Transport class and Resolution Scheme constructs are used to
preserve end-to-end SLA.</t> preserve end-to-end SLA.</t>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Inter-AS option A usecase"> <name>Inter-AS Option A Use Case</name>
<section title="Topology"> <section numbered="true" toc="default">
<figure title="BGP CT Inter-AS option A" anchor="BGPCT_INTERAS_A"><artset><artwo <name>Topology</name>
rk type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192 <figure anchor="BGPCT_INTERAS_A">
" width="624" viewBox="0 0 624 192" class="diagram" text-anchor="middle" font-fa <name>BGP CT Inter-AS Option A</name>
mily="monospace" font-size="13px" stroke-linecap="round"> <artset>
<path d="M 168,48 L 168,64" fill="none" stroke="black"/> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http:/
<path d="M 408,48 L 408,64" fill="none" stroke="black"/> /www.w3.org/2000/svg" version="1.1" height="192" width="624" viewBox="0 0 624 19
<path d="M 56,80 L 72,80" fill="none" stroke="black"/> 2" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px"
<path d="M 128,80 L 152,80" fill="none" stroke="black"/> stroke-linecap="round">
<path d="M 192,80 L 216,80" fill="none" stroke="black"/> <path d="M 168,48 L 168,64" fill="none" stroke="black"/>
<path d="M 288,80 L 304,80" fill="none" stroke="black"/> <path d="M 408,48 L 408,64" fill="none" stroke="black"/>
<path d="M 376,80 L 392,80" fill="none" stroke="black"/> <path d="M 56,80 L 72,80" fill="none" stroke="black"/>
<path d="M 432,80 L 448,80" fill="none" stroke="black"/> <path d="M 128,80 L 152,80" fill="none" stroke="black"/>
<path d="M 504,80 L 528,80" fill="none" stroke="black"/> <path d="M 192,80 L 216,80" fill="none" stroke="black"/>
<path d="M 184,176 L 232,176" fill="none" stroke="black"/> <path d="M 288,80 L 304,80" fill="none" stroke="black"/>
<path d="M 376,176 L 424,176" fill="none" stroke="black"/> <path d="M 376,80 L 392,80" fill="none" stroke="black"/>
<polygon class="arrowhead" points="432,176 420,170.4 420,181.6" fill="black" tra <path d="M 432,80 L 448,80" fill="none" stroke="black"/>
nsform="rotate(0,424,176)"/> <path d="M 504,80 L 528,80" fill="none" stroke="black"/>
<g class="text"> <path d="M 184,176 L 232,176" fill="none" stroke="black"/>
<text x="172" y="36">[RR11]</text> <path d="M 376,176 L 424,176" fill="none" stroke="black"/>
<text x="412" y="36">[RR21]</text> <polygon class="arrowhead" points="432,176 420,170.4 420,181.6
<text x="28" y="84">[CE31]</text> " fill="black" transform="rotate(0,424,176)"/>
<text x="100" y="84">[PE11]</text> <g class="text">
<text x="172" y="84">[P1]</text> <text x="172" y="36">[RR11]</text>
<text x="252" y="84">[ASBR11]</text> <text x="412" y="36">[RR21]</text>
<text x="340" y="84">[ASBR21]</text> <text x="28" y="84">[CE31]</text>
<text x="412" y="84">[P2]</text> <text x="100" y="84">[PE11]</text>
<text x="476" y="84">[PE21]</text> <text x="172" y="84">[P1]</text>
<text x="556" y="84">[CE41]</text> <text x="252" y="84">[ASBR11]</text>
<text x="72" y="116">:</text> <text x="340" y="84">[ASBR21]</text>
<text x="296" y="116">:</text> <text x="412" y="84">[P2]</text>
<text x="512" y="116">:</text> <text x="476" y="84">[PE21]</text>
<text x="32" y="132">AS3</text> <text x="556" y="84">[CE41]</text>
<text x="72" y="132">:</text> <text x="72" y="116">:</text>
<text x="200" y="132">..AS1..</text> <text x="296" y="116">:</text>
<text x="296" y="132">:</text> <text x="512" y="116">:</text>
<text x="376" y="132">..AS2..</text> <text x="32" y="132">AS3</text>
<text x="512" y="132">:</text> <text x="72" y="132">:</text>
<text x="560" y="132">AS4</text> <text x="200" y="132">..AS1..</text>
<text x="72" y="148">:</text> <text x="296" y="132">:</text>
<text x="296" y="148">:</text> <text x="376" y="132">..AS2..</text>
<text x="512" y="148">:</text> <text x="512" y="132">:</text>
<text x="52" y="180">203.0.113.31</text> <text x="560" y="132">AS4</text>
<text x="264" y="180">Traffic</text> <text x="72" y="148">:</text>
<text x="336" y="180">Direction</text> <text x="296" y="148">:</text>
<text x="572" y="180">203.0.113.41</text> <text x="512" y="148">:</text>
</g> <text x="52" y="180">203.0.113.31</text>
</svg> <text x="264" y="180">Traffic</text>
</artwork><artwork type="ascii-art"><![CDATA[ <text x="336" y="180">Direction</text>
<text x="572" y="180">203.0.113.41</text>
</g>
</svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
[RR11] [RR21] [RR11] [RR21]
| | | |
+ + + +
[CE31]---[PE11]----[P1]----[ASBR11]---[ASBR21]---[P2]---[PE21]----[CE41] [CE31]---[PE11]----[P1]----[ASBR11]---[ASBR21]---[P2]---[PE21]----[CE41]
: : : : : :
AS3 : ..AS1.. : ..AS2.. : AS4 AS3 : ..AS1.. : ..AS2.. : AS4
: : : : : :
203.0.113.31 -------Traffic Direction------> 203.0.113.41 203.0.113.31 -------Traffic Direction------> 203.0.113.41
]]></artwork></artset></figure> ]]></artwork>
</artset>
<t>This example in <xref target="BGPCT_INTERAS_A"/> shows two </figure>
<t>This example in <xref target="BGPCT_INTERAS_A" format="default"/> s
hows two
provider network Autonomous systems AS1, AS2. They serve L3VPN provider network Autonomous systems AS1, AS2. They serve L3VPN
customers AS3, AS4 respectively. The ASBRs ASBR11 and ASBR21 have IP customers AS3, AS4 respectively. The ASBRs ASBR11 and ASBR21 have IP
VRFs connected directly. The inter-AS link is IP enabled with no VRFs connected directly. The inter-AS link is IP enabled with no
MPLS forwarding.</t> MPLS forwarding.</t>
<t>Traffic direction being described is CE31 to CE41. CE41 may <t>Traffic direction being described is CE31 to CE41. CE41 may
request a specific SLA (e.g. Gold for this traffic), when traversing request a specific SLA (e.g., Gold for this traffic), when traversing
these provider core networks.</t> these provider core networks.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Transport Layer"> <name>Transport Layer</name>
<t>AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR11. <t>AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR11.
And LDP tunnels for best effort traffic. AS2 uses SRTE intra-domain And LDP tunnels for best-effort traffic. AS2 uses SRTE intra-domain
tunnels between ASBR21 and PE21, and L-ISIS for best effort tunnels between ASBR21 and PE21, and L-ISIS for best-effort
tunnels.</t> tunnels.</t>
<t>The networks have two Transport classes: Gold with Transport <t>The networks have two Transport classes: Gold with Transport
Class ID 100, Bronze with Transport Class ID 200. These transport Class ID 100, Bronze with Transport Class ID 200. These transport
classes are provisioned at the PEs and ASBRs. This creates the classes are provisioned at the PEs and ASBRs. This creates the
Resolution Schemes for these transport classes at these PEs and Resolution Schemes for these transport classes at these PEs and
ASBRs.</t> ASBRs.</t>
<t>Following tunnels exist for Gold transport class.</t>
<t>Following tunnels exist for Gold transport class.<list> <ul spacing="normal">
<li>
<t>PE11_to_ASBR11_gold - RSVP-TE tunnel</t> <t>PE11_to_ASBR11_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR11_to_PE11_gold - RSVP-TE tunnel</t> <t>ASBR11_to_PE11_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>PE21_to_ASBR21_gold - SRTE tunnel</t> <t>PE21_to_ASBR21_gold - SRTE tunnel</t>
</li>
<li>
<t>ASBR21_to_PE21_gold - SRTE tunnel</t> <t>ASBR21_to_PE21_gold - SRTE tunnel</t>
</list></t> </li>
</ul>
<t>Following tunnels exist for Bronze transport class.<list> <t>Following tunnels exist for Bronze transport class.</t>
<ul spacing="normal">
<li>
<t>PE11_to_ASBR11_bronze - RSVP-TE tunnel</t> <t>PE11_to_ASBR11_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR11_to_PE11_bronze - RSVP-TE tunnel</t> <t>ASBR11_to_PE11_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>PE21_to_ASBR21_bronze - SRTE tunnel</t> <t>PE21_to_ASBR21_bronze - SRTE tunnel</t>
</li>
<li>
<t>ASBR21_to_PE21_bronze - SRTE tunnel</t> <t>ASBR21_to_PE21_bronze - SRTE tunnel</t>
</list></t> </li>
</ul>
<t>These tunnels are provisioned to belong to transport class 100 or <t>These tunnels are provisioned to belong to transport class 100 or
200.</t> 200.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Service Layer route exchange"> <name>Service Layer Route Exchange</name>
<t>Service nodes PE11, ASBR11 negotiate service family (AFI/SAFI <t>Service nodes PE11, ASBR11 negotiate service family (AFI/SAFI
1/128) on the BGP session with RR11. Service helper RR11 reflects 1/128) on the BGP session with RR11. Service helper RR11 reflects
service routes between the PE11 and ASBR11 with next hop service routes between the PE11 and ASBR11 with next hop
unchanged.</t> unchanged.</t>
<t>Similarly, in AS2 PE21, ASBR21 negotiate service family (AFI/SAFI <t>Similarly, in AS2 PE21, ASBR21 negotiate service family (AFI/SAFI
1/128) on the BGP session with RR21, which reflects service routes 1/128) on the BGP session with RR21, which reflects service routes
between the PE21 and ASBR21 with next hop unchanged.</t> between the PE21 and ASBR21 with next hop unchanged.</t>
<t>CE41 advertises a route for example prefix 203.0.113.41 with next <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 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, Color:0:100 on this route, to indicate its request for Gold SLA. Or,
PE21 can attach the same using locally configured policies.</t> PE21 can attach the same using locally configured policies.</t>
<t>Consider, CE41 is getting VPN service from PE21. The <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 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 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 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. 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 Now ASBR21 can resolve the PNH 203.0.113.21 using
ASBR21_to_PE21_gold SRTE LSP.</t> ASBR21_to_PE21_gold SRTE LSP.</t>
<t>The IP FIB at ASBR21 VRF will have a route for 203.0.113.41 with <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 a next hop resolved using Resolution Scheme associated with mapping
community Color:0:100, pointing to ASBR21_to_PE21_gold tunnel.</t> community Color:0:100, pointing to ASBR21_to_PE21_gold tunnel.</t>
<t>This route is readvertised with the next hop set to itself by ASBR2
<t>This route is readvertised with next hop self by ASBR21 to ASBR11 1 to ASBR11
on BGP session in the VRF. The single-hop EBGP session endpoints are 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. interface addresses. ASBR21 and ASBR11 act like a CE to each other.
The previously mentioned process repeats in AS1, until the route The previously mentioned process repeats in AS1 until the route
reaches PE11 and resolves over PE11_to_ASBR11_gold RSVP TE reaches PE11 and resolves over the PE11_to_ASBR11_gold RSVP TE
tunnel.</t> tunnel.</t>
<t>Traffic traverses as an unlabeled IP packet on the following legs:
<t>Traffic traverses as unlabeled IP packet on the following legs: CE31-PE11, ASBR11-ASBR21, PE21-CE41. And it uses MPLS forwarding insid
CE31-PE11, ASBR11-ASBR21, PE21-CE41. And uses MPLS forwarding inside e the
AS1, AS2 core.</t> AS1 and AS2 core.</t>
<t>BGP CT AFI/SAFI 1/76 is not used in this Inter-AS Option B <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 deployment. But the Transport class and Resolution Scheme constructs
are used to preserve end-to-end SLA.</t> are used to preserve an end-to-end SLA.</t>
</section> </section>
</section> </section>
<section numbered="true" toc="default">
<section title="Inter-AS option B usecase"> <name>Inter-AS Option B Use Case</name>
<section title="Topology"> <section numbered="true" toc="default">
<figure title="BGP CT Inter-AS option B" anchor="BGPCT_INTERAS_B"><artset><artwo <name>Topology</name>
rk type="svg"><svg xmlns="http://www.w3.org/2000/svg" version="1.1" height="192 <figure anchor="BGPCT_INTERAS_B">
" width="584" viewBox="0 0 584 192" class="diagram" text-anchor="middle" font-fa <name>BGP CT Inter-AS Option B</name>
mily="monospace" font-size="13px" stroke-linecap="round"> <artset>
<path d="M 168,48 L 168,64" fill="none" stroke="black"/> <artwork type="svg" name="" align="left" alt=""><svg xmlns="http:/
<path d="M 408,48 L 408,64" fill="none" stroke="black"/> /www.w3.org/2000/svg" version="1.1" height="192" width="584" viewBox="0 0 584 19
<path d="M 56,80 L 72,80" fill="none" stroke="black"/> 2" class="diagram" text-anchor="middle" font-family="monospace" font-size="13px"
<path d="M 128,80 L 152,80" fill="none" stroke="black"/> stroke-linecap="round">
<path d="M 192,80 L 216,80" fill="none" stroke="black"/> <path d="M 168,48 L 168,64" fill="none" stroke="black"/>
<path d="M 288,80 L 304,80" fill="none" stroke="black"/> <path d="M 408,48 L 408,64" fill="none" stroke="black"/>
<path d="M 376,80 L 392,80" fill="none" stroke="black"/> <path d="M 56,80 L 72,80" fill="none" stroke="black"/>
<path d="M 432,80 L 448,80" fill="none" stroke="black"/> <path d="M 128,80 L 152,80" fill="none" stroke="black"/>
<path d="M 504,80 L 528,80" fill="none" stroke="black"/> <path d="M 192,80 L 216,80" fill="none" stroke="black"/>
<path d="M 184,176 L 208,176" fill="none" stroke="black"/> <path d="M 288,80 L 304,80" fill="none" stroke="black"/>
<path d="M 368,176 L 400,176" fill="none" stroke="black"/> <path d="M 376,80 L 392,80" fill="none" stroke="black"/>
<polygon class="arrowhead" points="408,176 396,170.4 396,181.6" fill="black" tra <path d="M 432,80 L 448,80" fill="none" stroke="black"/>
nsform="rotate(0,400,176)"/> <path d="M 504,80 L 528,80" fill="none" stroke="black"/>
<g class="text"> <path d="M 184,176 L 208,176" fill="none" stroke="black"/>
<text x="172" y="36">[RR13]</text> <path d="M 368,176 L 400,176" fill="none" stroke="black"/>
<text x="412" y="36">[RR23]</text> <polygon class="arrowhead" points="408,176 396,170.4 396,181.6
<text x="28" y="84">[CE31]</text> " fill="black" transform="rotate(0,400,176)"/>
<text x="100" y="84">[PE11]</text> <g class="text">
<text x="172" y="84">[P1]</text> <text x="172" y="36">[RR13]</text>
<text x="252" y="84">[ASBR12]</text> <text x="412" y="36">[RR23]</text>
<text x="340" y="84">[ASBR21]</text> <text x="28" y="84">[CE31]</text>
<text x="412" y="84">[P2]</text> <text x="100" y="84">[PE11]</text>
<text x="476" y="84">[PE22]</text> <text x="172" y="84">[P1]</text>
<text x="556" y="84">[CE41]</text> <text x="252" y="84">[ASBR12]</text>
<text x="72" y="116">:</text> <text x="340" y="84">[ASBR21]</text>
<text x="296" y="116">:</text> <text x="412" y="84">[P2]</text>
<text x="512" y="116">:</text> <text x="476" y="84">[PE22]</text>
<text x="32" y="132">AS3</text> <text x="556" y="84">[CE41]</text>
<text x="72" y="132">:</text> <text x="72" y="116">:</text>
<text x="200" y="132">..AS1..</text> <text x="296" y="116">:</text>
<text x="296" y="132">:</text> <text x="512" y="116">:</text>
<text x="376" y="132">..AS2..</text> <text x="32" y="132">AS3</text>
<text x="512" y="132">:</text> <text x="72" y="132">:</text>
<text x="560" y="132">AS4</text> <text x="200" y="132">..AS1..</text>
<text x="72" y="148">:</text> <text x="296" y="132">:</text>
<text x="296" y="148">:</text> <text x="376" y="132">..AS2..</text>
<text x="512" y="148">:</text> <text x="512" y="132">:</text>
<text x="52" y="180">203.0.113.31</text> <text x="560" y="132">AS4</text>
<text x="248" y="180">Traffic</text> <text x="72" y="148">:</text>
<text x="320" y="180">Direction</text> <text x="296" y="148">:</text>
<text x="524" y="180">203.0.113.41</text> <text x="512" y="148">:</text>
</g> <text x="52" y="180">203.0.113.31</text>
</svg> <text x="248" y="180">Traffic</text>
</artwork><artwork type="ascii-art"><![CDATA[ <text x="320" y="180">Direction</text>
<text x="524" y="180">203.0.113.41</text>
</g>
</svg>
</artwork>
<artwork type="ascii-art" name="" align="left" alt=""><![CDATA[
[RR13] [RR23] [RR13] [RR23]
| | | |
+ + + +
[CE31]---[PE11]----[P1]----[ASBR12]---[ASBR21]---[P2]---[PE22]----[CE41] [CE31]---[PE11]----[P1]----[ASBR12]---[ASBR21]---[P2]---[PE22]----[CE41]
: : : : : :
AS3 : ..AS1.. : ..AS2.. : AS4 AS3 : ..AS1.. : ..AS2.. : AS4
: : : : : :
203.0.113.31 ---- Traffic Direction ----> 203.0.113.41 203.0.113.31 ---- Traffic Direction ----> 203.0.113.41
]]></artwork></artset></figure> ]]></artwork>
</artset>
<t>This example in <xref target="BGPCT_INTERAS_B"/> shows two </figure>
provider network Autonomous systems AS1 and AS2. They serve L3VPN <t><xref target="BGPCT_INTERAS_B" format="default"/> shows two
customers AS3 and AS4 respectively. The ASBRs ASBR12 and ASBR21 provider network Autonomous Systems: AS1 and AS2. They serve L3VPN
don't have any IP VRFs. The inter-AS link is MPLS forwarding customers AS3 and AS4, respectively. The ASBRs ASBR12 and ASBR21
don't have any IP VRFs. The inter-AS link is MPLS-forwarding
enabled.</t> enabled.</t>
<t>Traffic direction being described is CE31 to CE41. CE41 may <t>Traffic direction being described is CE31 to CE41. CE41 may
request a specific SLA (e.g. Gold for this traffic), when traversing request a specific SLA (e.g., Gold for this traffic) when traversing
these provider core networks.</t> these provider core networks.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Transport Layer"> <name>Transport Layer</name>
<t>AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR21. <t>AS1 uses RSVP-TE intra-domain tunnels between PE11 and ASBR21
And LDP tunnels for best effort traffic. AS2 uses SRTE intra-domain and LDP tunnels for best-effort traffic. AS2 uses SRTE intra-domain
tunnels between ASBR21 and PE22, and L-ISIS for best effort tunnels between ASBR21 and PE22 along with L-ISIS for best-effort
tunnels.</t> tunnels.</t>
<t>The networks have two Transport classes: Gold with Transport <t>The networks have two Transport classes: Gold with Transport
Class ID 100, Bronze with Transport Class ID 200. These transport Class ID 100 and Bronze with Transport Class ID 200. These transport
classes are provisioned at the PEs and ASBRs. This creates the classes are provisioned at the PEs and ASBRs. This creates the
Resolution Schemes for these transport classes at these PEs and Resolution Schemes for these transport classes at these PEs and
ASBRs.</t> ASBRs.</t>
<t>The following tunnels exist for Gold transport class:</t>
<t>Following tunnels exist for Gold transport class.<list> <ul spacing="normal">
<li>
<t>PE11_to_ASBR12_gold - RSVP-TE tunnel</t> <t>PE11_to_ASBR12_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR12_to_PE11_gold - RSVP-TE tunnel</t> <t>ASBR12_to_PE11_gold - RSVP-TE tunnel</t>
</li>
<li>
<t>PE22_to_ASBR21_gold - SRTE tunnel</t> <t>PE22_to_ASBR21_gold - SRTE tunnel</t>
</li>
<li>
<t>ASBR21_to_PE22_gold - SRTE tunnel</t> <t>ASBR21_to_PE22_gold - SRTE tunnel</t>
</list></t> </li>
</ul>
<t>Following tunnels exist for Bronze transport class.<list> <t>The following tunnels exist for Bronze transport class:</t>
<ul spacing="normal">
<li>
<t>PE11_to_ASBR12_bronze - RSVP-TE tunnel</t> <t>PE11_to_ASBR12_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>ASBR12_to_PE11_bronze - RSVP-TE tunnel</t> <t>ASBR12_to_PE11_bronze - RSVP-TE tunnel</t>
</li>
<li>
<t>PE22_to_ASBR21_bronze - SRTE tunnel</t> <t>PE22_to_ASBR21_bronze - SRTE tunnel</t>
</li>
<li>
<t>ASBR21_to_PE22_bronze - SRTE tunnel</t> <t>ASBR21_to_PE22_bronze - SRTE tunnel</t>
</list></t> </li>
</ul>
<t>These tunnels are provisioned to belong to transport class 100 or <t>These tunnels are provisioned to belong to transport class 100 or
200.</t> 200.</t>
</section> </section>
<section numbered="true" toc="default">
<section title="Service Layer route exchange"> <name>Service-Layer Route Exchange</name>
<t>Service nodes PE11, ASBR12 negotiate service family (AFI/SAFI <t>Service nodes PE11 and ASBR12 negotiate service family (AFI/SAFI
1/128) on the BGP session with RR13. Service helper RR13 reflects 1/128) on the BGP session with RR13. Service helper RR13 reflects
service routes between the PE11 and ASBR12 with next hop service routes between the PE11 and ASBR12 with the next hop
unchanged.</t> unchanged.</t>
<t>Similarly, in AS2 PE22, ASBR21 negotiates service family (AFI/SAFI
<t>Similarly, in AS2 PE22, ASBR21 negotiate service family (AFI/SAFI
1/128) on the BGP session with RR23, which reflects service routes 1/128) on the BGP session with RR23, which reflects service routes
between the PE22 and ASBR21 with next hop unchanged.</t> between PE22 and ASBR21 with the next hop unchanged.</t>
<t>ASBR21 and ASBR12 negotiate AFI/SAFI 1/128 between them and
<t>ASBR21 and ASBR12 negotiate AFI/SAFI 1/128 between them, and readvertise L3VPN routes with the next hop set to themselves, allocati
readvertise L3VPN routes with next hop self, allocating new labels. ng new labels.
The single-hop EBGP session endpoints are interface addresses.</t> The single-hop EBGP session endpoints are interface addresses.</t>
<t>CE41 advertises a route, for example, prefix 203.0.113.41 with the
<t>CE41 advertises a route for example prefix 203.0.113.41 with next next
hop self to PE22 VRF. CE41 can attach a Mapping Community hop set to itself to PE22 VRF. CE41 can attach a Mapping Community
Color:0:100 on this route, to indicate its request for Gold SLA. Or, Color:0:100 on this route to indicate its request for the Gold SLA. Or
,
PE22 can attach the same using locally configured policies.</t> PE22 can attach the same using locally configured policies.</t>
<t>Consider CE41 getting VPN service from PE22. The
<t>Consider, CE41 is getting VPN service from PE22. The
RD:203.0.113.41 route is readvertised in AFI/SAFI 1/128 by PE22 with RD:203.0.113.41 route is readvertised in AFI/SAFI 1/128 by PE22 with
next hop self (192.0.2.22) and label V-L1 to RR23 with the Mapping the next hop set to itself (192.0.2.22) and label V-L1 to RR23 with th e Mapping
Community Color:0:100 attached. This AFI/SAFI 1/128 route reaches 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. 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 Now ASBR21 can resolve the PNH 192.0.2.22 using ASBR21_to_PE22_gold
SRTE LSP.</t> SRTE LSP.</t>
<t>Next, ASBR21 readvertises the RD:203.0.113.41 route with the next h
<t>Next, ASBR21 readvertises the RD:203.0.113.41 route with next hop op
self to ASBR12 with a newly allocated MPLS label V-L2. Forwarding set to itself to ASBR12 with a newly allocated MPLS label V-L2. Forwar
ding
for this label is installed to Swap V-L1, and Push labels for for this label is installed to Swap V-L1, and Push labels for
ASBR21_to_PE22_gold tunnel.</t> ASBR21_to_PE22_gold tunnel.</t>
<t>ASBR12 further readvertises the RD:203.0.113.41 route via RR13 to <t>ASBR12 further readvertises the RD:203.0.113.41 route via RR13 to
PE11 with next hop self 192.0.2.12. PE11 resolves the next hop PE11 with the next hop set to itself, 192.0.2.12. PE11 resolves the ne xt hop
192.0.2.12 over PE11_to_ASBR12_gold RSVP TE tunnel.</t> 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
<t>Traffic traverses as IP packet on the following legs: CE31-PE11 and PE21-CE41. And it uses MPLS forwarding on the ASBR11-ASBR21 link a
and PE21-CE41. And uses MPLS forwarding on ASBR11-ASBR21 link, and nd
inside AS1-AS2 core.</t> inside the AS1-AS2 core.</t>
<t>BGP CT AFI/SAFI 1/76 is not used in this Inter-AS Option B <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 deployment. But the Transport class and Resolution Scheme constructs
are used to preserve end-to-end SLA.</t> are used to preserve an end-to-end SLA.</t>
</section> </section>
</section> </section>
</section> </section>
<section anchor="Appendix_C" numbered="true" toc="default">
<section anchor="Appendix C" numbered="true" <name>Why reuse RFCs 8277 and 4364?</name>
title="Why reuse RFC 8277 and RFC 4364?"> <t><xref target="RFC4364"/> is one of the key design patterns produced by
<t>RFC 4364 is one of the key design patterns produced by networking the networking
industry. It introduced virtualization and allowed sharing of resources industry. It introduced virtualization and allowed sharing of resources
in service provider space with multiple tenant networks, providing in the service provider space with multiple tenant networks, providing
isolated and secure Layer3 VPN services. This design pattern has been isolated and secure Layer 3 VPN services. This design pattern has been
reused since to provide other service layer virtualizations like Layer2 reused since to provide other service-layer virtualizations like Layer 2
virtualization (VPLS, L2VPN, EVPN), ISO virtualization, ATM virtualization (VPLS, L2VPN, EVPN), ISO virtualization, ATM
virtualization, Flowspec VPN.</t> virtualization, and Flowspec VPN.</t>
<t>It is to be noted that these services have different NLRI encodings.
<t>It is to be noted that these services have different NLRI encoding. The L3VPN Service family that binds the MPLS label to an IP prefix uses th
L3VPN Service family that binds MPLS label to an IP prefix use RFC 8277 e encoding described in <xref target="RFC8277"/>
encoding, and others define different NLRI encodings.</t> and others define different NLRI encodings.</t>
<t>BGP CT reuses the procedures described in <xref target="RFC4364"/> to s
<t>BGP CT reuses RFC 4364 procedures to slice a transport network into lice a transport network into
multiple transport planes that different service routes can bind to, multiple transport planes that different service routes can bind to
using color.</t> using color.</t>
<t>BGP CT reuses <xref target="RFC8277"/> because it precisely fits the pu
<t>BGP CT reuses RFC 8277 because it precisely fits the purpose. viz. In rpose. That is, in
a MPLS network, BGP CT needs to bind MPLS label for transport endpoints an MPLS network, BGP CT needs to bind the MPLS label for transport endpoin
ts,
which are IPv4 or IPv6 endpoints, and disambiguate between multiple which are IPv4 or IPv6 endpoints, and disambiguate between multiple
instances of those endpoints in multiple transport planes. Hence, use of instances of those endpoints in multiple transport planes. Hence, use of t
RD:IP_Prefix and carrying a Label for it as specified in RFC 8277 works he
RD:IP_Prefix and carrying a Label for it as specified in <xref target="RFC
8277"/> works
well for this purpose.</t> well for this purpose.</t>
<t>Another advantage of using the precise encoding as defined in <xref
<t>Another advantage of using the precise encoding as defined in RFC target="RFC4364"/> and <xref target="RFC8277"/> is that it allows
4364 and RFC 8277 is that it allows to interoperate with BGP speakers interoperation with BGP speakers that support SAFI 128 for AFIs 1 or
that support SAFI 128 for AFIs 1 or 2. This can be useful during 2. This can be useful during transition until all BGP speakers in the
transition, until all BGP speakers in the network support BGP CT.</t> network support BGP CT.</t>
<t>In the future, if <xref target="RFC8277"/> evolves into a typed NLRI th
<t>In future, if RFC 8277 evolves into a typed NLRI, that does not carry at does not carry
Label in the NLRI, BGP CT will be compatible with that as-well. In Label in the NLRI, BGP CT will be compatible with that as well. In
essence, BGP CT encoding is compatible with existing deployed essence, BGP CT encoding is compatible with existing deployed
technologies (RFC 4364, RFC 8277) and will adapt to any changes RFC 8277 technologies (<xref target="RFC4364"/> and <xref target="RFC8277"/>) and w
mechanisms undergo in future.</t> ill adapt to any changes mechanisms from <xref target="RFC8277"/>
undergo in future.</t>
<t>This approach leverages the benefits of time tested design patterns <t>This approach leverages the benefits of time-tested design patterns
proposed in RFC 4364 and RFC 8277. Moreover, this approach greatly proposed in <xref target="RFC4364"/> and <xref target="RFC8277"/>. Moreove
r, this approach greatly
reduces operational training costs and protocol compatibility reduces operational training costs and protocol compatibility
considerations, as it complements and works well with existing protocol considerations as it complements and works well with existing protocol
machineries. This problem does not need reinventing the wheel with brand machinery: this problem does not need a brand
new NLRI and procedures.</t> new NLRI and procedures.</t>
<t>BGP CT design also avoids overloading the NLRI MPLS Label field from <x
<t>BGP CT design also avoids overloading RFC 8277 NLRI MPLS Label field ref target="RFC8277"/>
with information related to non MPLS data plane, because it leads to with information related to the non-MPLS data plane because it leads to
backward compatibility issues.</t> backward-compatibility issues.</t>
<section numbered="true" toc="default">
<section numbered="true" title="Update packing considerations"> <name>Update Packing Considerations</name>
<t>BGP CT carries transport class as an attribute. This means routes <t>BGP CT carries transport class as an attribute. This means routes
that don't share the same transport class cannot be packed into same that don't share the same transport class cannot be packed into the same
Update message. Update packing in BGP CT will be similar to RFC 8277 BGP UPDATE message. Update packing in BGP CT will be similar to family r
family routes carrying attributes like communities or extended outes from <xref target="RFC8277"/>
carrying attributes like communities or extended
communities. Service families like AFI/SAFI 1/128 have considerably 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, 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 which carry only loopbacks. Update packing mechanisms that scale for
AFI/SAFI 1/128 routes will scale similarly for AFI/SAFI 1/76 routes AFI/SAFI 1/128 routes will scale similarly for AFI/SAFI 1/76 routes.
also.</t> </t>
<t><xref section="6.3.2.1" target="I-D.hr-spring-intentaware-routing-usi
<t>Section 6.3.2.1 of <xref target="Intent-Routing-Color"/> suggests ng-color" format="default"/> suggests
scaling numbers for transport network where BGP CT can be deployed. scaling numbers for a transport network where BGP CT can be deployed.
Experiments were conducted with this scale to find the convergence Experiments were conducted with this scale to find the convergence
time with BGP CT for those scaling numbers. Scenarios involving BGP CT time with BGP CT for those scaling numbers. Scenarios involving BGP CT
carrying IPv4 and IPv6 endpoints with MPLS label were tested. Tests carrying IPv4 and IPv6 endpoints with an MPLS label were tested. Tests
with BGP CT IPv6 endpoints and SRv6 SID are planned.</t> 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
<t>Tests were conducted with 1.9 million BGP CT route scale (387K
endpoints in 5 transport classes). Initial convergence time for all endpoints in 5 transport classes). Initial convergence time for all
cases was less than 2 minutes, which compares favorably with user cases was less than 2 minutes, which compares favorably with user
expectation for such a scale. This experiment proves that carrying expectation for such a scale. This experiment proves that carrying
transport class information as an attribute keeps BGP convergence transport-class information as an attribute keeps BGP convergence
within acceptable range. Details of the experiment and test results within an acceptable range. Details of the experiment and test results
are available in <xref target="BGP-CT-UPDATE-PACKING-TEST">BGP CT are available in <xref target="BGP-CT-UPDATE-PACKING-TEST" format="defau
Update packing Test Results </xref>.</t> lt"></xref>.</t>
<t>Furthermore, even in today's BGP LU deployments, each egress node
<t>Furthermore, even in today's BGP LU deployments each egress node originates a BGP LU route for its loopback, with some attributes like
originates BGP LU route for it's loopback, with some attributes like community identifying the originating node or region and an AIGP
community identifying the originating node or region, and AIGP attribute. These attributes may be unique per egress node; thus, they do
attribute. These attributes may be unique per egress node, thus do not not
help with update packing in transport family routes.</t> help with update packing in transport family routes.</t>
</section> </section>
</section> </section>
<section anchor="Appendix_D" numbered="true" toc="default">
<section anchor="Appendix D" numbered="true" <name>Scaling Using BGP MPLS Namespaces</name>
title="Scaling using BGP MPLS Namespaces"> <t>This document considers the scaling scenario suggested in <xref section
<t>This document considers scaling scenario suggested in Section 6.3.2.1 ="6.3.2.1" target="I-D.hr-spring-intentaware-routing-using-color" format="defaul
of <xref target="Intent-Routing-Color"/> where 300K nodes exist in the t"/> where 300K nodes exist in the
network with 5 transport classes.</t> network with 5 transport classes.</t>
<t>This may result in 1.5M transport layer routes and MPLS transit <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 routes in all Border Nodes in the network, which may overwhelm the
nodes' MPLS forwarding resources.</t> nodes' MPLS-forwarding resources.</t>
<t><xref section="6.2" target="I-D.kaliraj-bess-bgp-sig-private-mpls-label
<t>Section 6.2 of <xref target="MPLS-NS"/> describes how MPLS Namespaces s" format="default"/> describes how MPLS Namespaces
mechanism is used to scale such a network. This approach reduces the mechanism is used to scale such a network. This approach reduces the
number of PNHs that are globally visible in the network, thus reducing number of PNHs that are globally visible in the network, thus reducing
forwarding resource usage network wide. Service route state is kept forwarding resource usage network wide. Service-route state is kept
confined closer to network edge, and any churn is confined within the confined closer to network edge, and any churn is confined within the
region containing the point of failure, which improves convergence region containing the point of failure, which improves convergence
also.</t> also.</t>
</section> </section>
<section anchor="Contributors" numbered="false" title="Contributors"> <section anchor="Acknowledgements" numbered="false" toc="default">
<section anchor="Co-Authors" numbered="false" title="Co-Authors"> <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.-->
<section anchor="Contributors" numbered="false" 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"> <author fullname="Reshma Das" initials="D." surname="Das">
<organization>Juniper Networks, Inc.</organization> <organization>Juniper Networks, Inc.</organization>
<address> <address>
<postal> <postal>
<street>1133 Innovation Way,</street> <street>1133 Innovation Way</street>
<city>Sunnyvale</city> <city>Sunnyvale</city>
<region>CA</region> <region>CA</region>
<code>94089</code> <code>94089</code>
<country>United States of America</country>
<country>US</country>
</postal> </postal>
<email>dreshma@juniper.net</email> <email>dreshma@juniper.net</email>
</address> </address>
</author> </author>
<author fullname="Israel Means" initials="I" surname="Means"> <author fullname="Israel Means" initials="I" surname="Means">
<organization abbrev="">AT&amp;T</organization> <organization abbrev="">AT&amp;T</organization>
<address> <address>
<postal> <postal>
<street>2212 Avenida Mara,</street> <street>2212 Avenida Mara</street>
<city>Chula Vista</city> <city>Chula Vista</city>
<region>California</region> <region>California</region>
<code>91914</code> <code>91914</code>
<country>United States of America</country>
<country>USA</country>
</postal> </postal>
<email>israel.means@att.com</email> <email>israel.means@att.com</email>
</address> </address>
</author> </author>
<author fullname="Csaba Mate" initials="CS" surname="Mate"> <author fullname="Csaba Mate" initials="CS" surname="Mate">
<organization abbrev="">KIFU, Hungarian NREN</organization> <organization abbrev="">KIFU, Hungarian NREN</organization>
<address> <address>
<postal> <postal>
<street>35 Vaci street,</street> <street>35 Vaci Street</street>
<city>Budapest</city> <city>Budapest</city>
<region/> <region/>
<code>1134</code> <code>1134</code>
<country>Hungary</country> <country>Hungary</country>
</postal> </postal>
<email>ietf@nop.hu</email> <email>ietf@nop.hu</email>
</address> </address>
</author> </author>
<author fullname="Deepak J Gowda" initials="J" surname="Gowda"> <author fullname="Deepak J Gowda" initials="J" surname="Gowda">
<organization abbrev="">Extreme Networks</organization> <organization abbrev="">Extreme Networks</organization>
<address> <address>
<postal> <postal>
<street>55 Commerce Valley Drive West, Suite 300,</street> <street>55 Commerce Valley Drive West, Suite 300</street>
<city>Thornhill, Toronto</city>
<city>Thornhill, Toronto,</city>
<region>Ontario</region> <region>Ontario</region>
<code>L3T 7V9</code> <code>L3T 7V9</code>
<country>Canada</country> <country>Canada</country>
</postal> </postal>
<email>dgowda@extremenetworks.com</email> <email>dgowda@extremenetworks.com</email>
</address> </address>
</author> </author>
</section> <t>We also acknowledge the contribution of the following individuals:</t>
<author fullname="Balaji Rajagopalan" initials="B." surname="Rajagopalan
<section anchor="Other Contributors" numbered="false" ">
title="Other Contributors">
<author fullname="Balaji Rajagopalan" initials="B."
surname="Rajagopalan">
<organization>Juniper Networks, Inc.</organization> <organization>Juniper Networks, Inc.</organization>
<address> <address>
<postal> <postal>
<street>Electra, Exora Business Park~Marathahalli - Sarjapur <street>Electra, Exora Business Park~Marathahalli - Sarjapur
Outer Ring Road,</street> Outer Ring Road</street>
<city>Bangalore</city> <city>Bangalore</city>
<region>KA</region> <region>KA</region>
<code>560103</code> <code>560103</code>
<country>India</country> <country>India</country>
</postal> </postal>
<email>balajir@juniper.net</email> <email>balajir@juniper.net</email>
</address> </address>
</author> </author>
<author fullname="Rajesh M" initials="M"> <author fullname="Rajesh M" initials="M">
<organization>Juniper Networks, Inc.</organization> <organization>Juniper Networks, Inc.</organization>
<address> <address>
<postal> <postal>
<street>Electra, Exora Business Park~Marathahalli - Sarjapur <street>Electra, Exora Business Park~Marathahalli - Sarjapur
Outer Ring Road,</street> Outer Ring Road</street>
<city>Bangalore</city> <city>Bangalore</city>
<region>KA</region> <region>KA</region>
<code>560103</code> <code>560103</code>
<country>India</country> <country>India</country>
</postal> </postal>
<email>mrajesh@juniper.net</email> <email>mrajesh@juniper.net</email>
</address> </address>
</author> </author>
<author fullname="Chaitanya Yadlapalli" initials="C" surname="Yadlapalli
<author fullname="Chaitanya Yadlapalli" initials="C" ">
surname="Yadlapalli">
<organization abbrev="">AT&amp;T</organization> <organization abbrev="">AT&amp;T</organization>
<address> <address>
<postal> <postal>
<street>200 S Laurel Ave,</street> <street>200 S Laurel Ave</street>
<city>Middletown</city>
<city>Middletown,</city>
<region>NJ</region> <region>NJ</region>
<code>07748</code> <code>07748</code>
<country>United States of America</country>
<country>USA</country>
</postal> </postal>
<email>cy098d@att.com</email> <email>cy098d@att.com</email>
</address> </address>
</author> </author>
<author fullname="Mazen Khaddam" initials="M" surname="Khaddam"> <author fullname="Mazen Khaddam" initials="M" surname="Khaddam">
<organization abbrev="">Cox Communications Inc.</organization> <organization abbrev="">Cox Communications Inc.</organization>
<address> <address>
<postal> <postal>
<street/> <street/>
<city>Atlanta</city> <city>Atlanta</city>
<region>GA</region> <region>GA</region>
<code/> <code/>
<country>United States of America</country>
<country>USA</country>
</postal> </postal>
<email>mazen.khaddam@cox.com</email> <email>mazen.khaddam@cox.com</email>
</address> </address>
</author> </author>
<author fullname="Rafal Jan Szarecki" initials="R" surname="Szarecki"> <author fullname="Rafal Jan Szarecki" initials="R" surname="Szarecki">
<organization abbrev="">Google.</organization> <organization abbrev="">Google</organization>
<address> <address>
<postal> <postal>
<street>1160 N Mathilda Ave, Bldg 5,</street> <street>1160 N Mathilda Ave, Bldg 5</street>
<city>Sunnyvale</city>
<city>Sunnyvale,</city>
<region>CA</region> <region>CA</region>
<code>94089</code> <code>94089</code>
<country>United States of America</country>
<country>USA</country>
</postal> </postal>
<email>szarecki@google.com</email> <email>szarecki@google.com</email>
</address> </address>
</author> </author>
<author fullname="Xiaohu Xu" initials="X" surname="Xu"> <author fullname="Xiaohu Xu" initials="X" surname="Xu">
<organization abbrev="">China Mobile</organization> <organization abbrev="">China Mobile</organization>
<address> <address>
<postal> <postal>
<street/> <street/>
<city>Beijing</city> <city>Beijing</city>
<region/> <region/>
<code/> <code/>
<country>China</country> <country>China</country>
</postal> </postal>
<email>xuxiaohu@cmss.chinamobile.com</email> <email>xuxiaohu@cmss.chinamobile.com</email>
</address> </address>
</author> </author>
</section> </section>
</section>
<section anchor="Acknowledgements" numbered="false" <!--[rfced] We had the following questions/comments related to
title="Acknowledgements"> abbreviation use throughout the document:
<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 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 a) Abbreviations that appeared without expansion have been expanded
carry these transport-routes was based on suggestion made by Richard upon first use following guidance from RFC 7322 ("RFC Style Guide").
Roberts and Krzysztof Szarkowicz.</t> Please review these expansions for accuracy.
b) We made some updates to the 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 review carefully 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 not appear 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 throughou
t 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-effor
t 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 and they 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 a specific meaning (e.g., directly
quoting another work).
A few examples below from back-to-back sentences in which quotation
seems to be 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 on BGP CT routes (AFI/SAFI: 1/76 or 2/76).
and see 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
to the Transitive Transport Class Route Target Extended Community,
except for the 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 us know any
objections. -->
<!-- [rfced] Please review the "Inclusive Language" portion of the
online Style Guide
<https://www.rfc-editor.org/styleguide/part2/#inclusive_language>
and let us know if any changes are needed. Updates of this
nature typically result in more precise language, which is
helpful for readers.
Note that our script did not flag any words in particular, but this
should still be reviewed as a best practice.
-->
<t>Thanks to John Scudder for showing us with example how the Figures
can be enhanced using SVG format.</t>
</section>
</back> </back>
</rfc> </rfc>
 End of changes. 803 change blocks. 
3274 lines changed or deleted 3893 lines changed or added

This html diff was produced by rfcdiff 1.48.